Wîkîferheng kuwiktionary https://ku.wiktionary.org/wiki/Destp%C3%AAk MediaWiki 1.47.0-wmf.14 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 kurdî 0 3096 6329033 6324401 2026-08-11T11:52:56Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329033 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|-î}}. ==== Binêre herwiha ==== {{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}} avp8k6beq8rbn1i6bhajsurh6wvpbnj kurmancî 0 3101 6329036 6310778 2026-08-11T11:53:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329036 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şandxane=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}} 5fankpd0r8ouda23gsuulvcdo1wconu 0 3574 6329039 6310993 2026-08-11T11:53:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329039 wikitext text/x-wiki {{bnr-h|ku|kü|Ku}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/kʰuː/}} ** (''[[rojhilatî]]'') {{IPA|ku|/kʰʉː/}} === Hoker === [[Wêne:Sin_mapa.svg|thumb|250px|''kû'' anku çi [[der]]/[[cih]]]] {{hoker|ku}} # [[çi]] [[cih]]î, [[çi]] [[der]]ê, [[kîj]] [[cih]]î, [[kîjan]] [[der]]ê #: ''Mala te li '''kû''' ye? #: ''Tu diçî '''kû'''?'' #: ''Ew ji '''kû''' tê''? #: ''Hûn ji '''kû''' ne?'' #:: Hûn xelkê kû derê ne? #: ''Ew çû '''kû'''?'' #: ''Hûn ji '''kû''' hatin?'' #: ''Tu li '''kû''' yî?'' ==== Bi alfabeyên din ==== * {{ku-ar|کوو}} * {{ku-kr|ку}} ==== Formên alternatîv ==== * [[ku]] (3), [[kû derê]], [[kûva]], [[kûve]], [[kûde]], [[kî derê]], [[kîrê]], [[kêrê]], [[kîve]], [[kwîve]], [[kû ve]], [[kû derê]], [[kû de]], [[kî derê]], [[kur]], [[kuva]] ==== Jê ==== * [[di kû de]] * [[di kû re]] * [[ji kû]] * [[li kû]] ==== Etîmolojî ==== [[hevreh|Hevreha]] soranî {{g|ckb|کوێ|tr=-}} (kwê), farisî {{g|fa|کجا}} (ko-[[cih|ca]]) û forma kevnar {{g|fa|کو}} (kû), avestayî [[𐬐𐬎𐬛𐬁‎]] (kudā) sanskrîtî [[कुह]] (kúha) û [[कुत्र]] (kútra), hindî [[किधर]] (kidhar), rusî [[куда́]] (kudá), sirbokroatî [[ку̀да]] / ''[[kùda]]'', ukraynî [[куди́]] (kudý), çekî ''[[kudy]]'', albanî ''[[ku]]'', latviyayî û lîtwanî ''[[kur]]'', latînî ''[[quō]]'', norwecî ''[[kvar]], [[kor]]'', danmarkî ''[[hvor]]'', swêdî ''[[var]]'', îngilîzî ''[[where]]'', almanî ''[[wo]]'' ... hemû ji {{ji|ine-pro|ku|-}} *''[[kʷu-]], *[[kʷo-]]'' (kû, li kû, çi cih?), têkilî ''[[kʷís]]'' ([[çi]]; [[kî]]). ==== Bide ber ==== * [[ku]] * [[ko]] ==== Bi zaravayên din ==== * {{Z|ckb}}: {{g|ckb|کوێ}} * {{Z|zza}}: [[kamca]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|waar}} * {{Z|sq}}: {{W+|sq|ku}} * {{Z|de}}: {{W+|de|wo}} * {{Z|am}}: {{W-|am|የት|tr=yet}} * {{Z|bm}}: {{W--|bm|min}} * {{Z|bi}}: {{W--|bi|we}} * {{Z|br}}: {{W-|br|pelecʼh}} * {{Z|zh}}: {{W+|zh|哪儿|tr=nǎr}}, {{W+|zh|哪里|tr=nǎli}} * {{Z|dmr}}: {{W--|dmr|ˈladanmaiˈje}} * {{Z|da}}: {{W+|da|hvor}} * {{Z|id}}: {{W+|id|mana}} * {{Z|arz}}: {{W--|arz|فين|tr=fên}} * {{Z|ar}}: {{W|ar|أين}} (eyne) * {{Z|eo}}: {{W+|eo|kie}} * {{Z|fa}}: {{W|fa|کجا|tr=koca}} * {{Z|fo}}: {{W-|fo|hvar}} * {{Z|fi}}: {{W|fi|missä}} (li kû), {{W|fi|mistä}} (ji kû), {{W|fi|mihin}} (kû), {{W|fi|minne}} (kû) * {{Z|fr}}: {{W|fr|où}} * {{Z|got}}: {{W--|got|𐍈𐌰𐍂|tr=ƕar}} * {{Z|ka}}: {{W-|ka|სად|tr=sad}} * {{Z|hi}}: {{W+|hi|कहाँ|tr=kahā̃}} * {{Z|nl}}: {{W+|nl|waar}} * {{Z|he}}: {{W+|he|אי}} * {{Z|idi}}: {{W--|idi|anyo}} * {{Z|io}}: {{W+|io|ube}} * {{Z|en}}: {{W+|en|where}} * {{Z|iu}}: {{W-|iu|ᓇᐅᒃ|tr=[[nauk]]}}, {{W-|iu|ᓇᒥ|tr=[[nami]]}}, {{W-|iu|ᓇᓂ|tr=[[nani]]}} * {{Z|it}}: {{W+|it|dove}}, {{W+|it|ove}} * {{Z|is}}: {{W+|is|hvar}}, {{W+|is|hvert}} * {{Z|ja}}: {{W+|ja|どこ|tr=doko}} * {{Z|ca}}: {{W+|ca|on}} * {{Z|wni}}: {{W--|wni|hapvi}} * {{Z|swb}}: {{W--|swb|hav̄i|tr=havi}} * {{Z|ko}}: {{W+|ko|어디|tr=eodi}} * {{Z|co}}: {{W+|co|duve}}, {{W+|co|induva}} * {{Z|rcf}}: {{W--|rcf|ousa}}, {{W--|rcf|kel-koté}} * {{Z|lkt}}: {{W--|lkt|tokiya}} * {{Z|la}}: {{W+|la|ubi}} * {{Z|lv}}: {{W|lv|kur}} * {{Z|ln}}: {{W-|ln|wápi}} * {{Z|li}}: {{W-|li|woe}} * {{Z|lt}}: {{W|lt|kur}} * {{Z|lb}}: {{W+|lb|wou}} * {{Z|mt}}: {{W+|mt|fejn}} * {{Z|moh}}: {{W--|moh|ka' nón:we}} * {{Z|ngh}}: {{W--|ngh|kidyaxe}} * {{Z|nb}}: {{W+|nb|hvor}} * {{Z|nn}}: {{W+|no|kvar}} * {{Z|oc}}: {{W+|oc|ont}} * {{Z|oia}}: {{W--|oia|te}}, {{W--|oia|tenai}} * {{Z|pis}}: {{W--|pis|we}} * {{Z|pcd}}: {{W--|pcd|d’us}}, {{W--|pcd|d’us qu’}}, {{W--|pcd|adus}}, {{W--|pcd|ù}} * {{Z|pih}}: {{W--|pih|webaut}} * {{Z|pl}}: {{W+|pl|gdzie}} * {{Z|pt}}: {{W+|pt|onde}} * {{Z|kk}}: {{W+|kk|қайда|tr=qayda}} * {{Z|ru}}: {{W+|ru|где|tr=gde}}, {{W+|ru|куда|tr=kuda}} * {{Z|se}}: {{W--|se|gos}} * {{Z|sh}}: {{W+|sh|gdje}} * {{Z|so}}: {{W-|so|halka}} * {{Z|es}}: {{W+|es|dónde}} * {{Z|sv}}: {{W+|sv|var}} * {{Z|shy}}: {{W--|shy|mani}} * {{Z|zdj}}: {{W--|zdj|nɗahu}}, {{W--|zdj|nɗa}}, {{W--|zdj|nɗahupvi}}, {{W--|zdj|nɗapvi}} * {{Z|cjs}}: {{W--|cjs|қайда}} * {{Z|tl}}: {{W-|tl|saán}}, {{W-|tl|násaán}} * {{Z|th}}: {{W+|th|สถานที่|tr=S̄t̄hān thī̀}} * {{Z|crh}}: {{W--|crh|qayerde}}, {{W--|crh|qayda}} * {{Z|tr}}: {{W|tr|nerede}} (li kû), {{W|tr|nereye}} (kû), {{W|tr|nereden}} (ji kû) * {{Z|tpi}}: {{W|tpi|we}} * [[valensî]]: [[aón]] * {{Z|wa}}: {{W|wa|wiss}} * {{Z|kjh}}: {{W--|kjh|хайда}} * {{Z|el}}: {{W+|el|πού|tr=pú}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[gav|Gava]] [[pez]] û [[bi taybetî]] [[mih]] [[ser]]ê [[xwe]] dikine [[ber]] [[hev]] û [[li hev]] [[kom bûn|kom dibin]]. #* {{jêder-malper|ku|jêgirtin=Li germê pez ê serê xwe di ber hev ke, bi rê nare. Ew ketina '''kûyê'''.|nivîskar=Mem Xelîkan|url=http://www.mifikan.com/Cand-huner/mem-xelikan.htm|sernav=Germîya Arê Şivanan|malper=mifikan.com|sal=2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} {{werger-bin}} jzeht1ct4k5kcaedqs64z62qosq5qly hay 0 3803 6328974 6325903 2026-08-11T11:50:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328974 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-hay.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[aga]], [[zanîn]], [[xeber]], [[ageh]], [[agah]], [[enformasyon]] #: {{mk|ku|'''Hay''' ji xwe hebin.|Li xwe hişyar bin. / Li xwe miqate bin.|rêz=1}} #: {{mk|ku|'''Haya''' min jê nîne.|Ez qet nizanim. / Min qet nebihîstiye.|rêz=1}} #* {{jêder-malper|ku|jêgirtin=Baş guh bidin min, li van der û doran gurekî pir fenek û zalim heye. Dibê '''haya''' we baş ji we hebe, rojekê neyê we nexapîne.|nivîskar={{w|Zinarê Xamo}}|sernav=Şengê û Pengê (çîrok)|url=https://zinarexamo.blogspot.com/2011/03/senge-u-penge.html|malper=zinarexamo.blogspot.com|sal=2011}} #* {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Gava ko ewan bihîstî mizgîn</br>'''Hay''' dan bi tebayî xelq û xwazgîn</br>Hindek 'ulema û hin di 'adil}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|های}} ==== Formên alternatîv ==== {{kol3|ku | {{hw|ku|haj||Dêrsim}} | ha }} ==== Jê ==== {{kol3|ku|cure=Jê |hay hebûn<q:lêker> |hay dan<q:lêker> |haydan<q:navdêr> |bêhay |bihay |haydar |haydarî |lêhaybûn }} ==== Etîmolojî ==== Bi ya Cheung, ji {{q|ku|agahî}}, lê eva jî ne yeqîn e. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Bescheid}} {{n}}, {{W|de|Information}} {{mê}}, {{W|de|Kenntnis}} {{mê}} * {{Z|fa}}: {{W|fa|توجه}}, {{W|fa|آگاهی}}, {{W|fa|باخبری}} * {{Z|en}}: {{W|en|aviso}}, {{W|en|attention}} * {{Z|tr}}: {{W|tr|bal}}, {{W|tr|bilgi}}, {{W|tr|enformasyon}}, {{W|tr|malumat}}, {{W|tr|haber}}, {{W|tr|bili}} {{werger-bin}} == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-hay.ogg|dever=DYA}} === Navdêr === {{navdêr|en}} # [[ka]], [[giya]]yê [[hişk]] #* {{bêmînak|en}} # [[borxî]] yê [[miselis]] #* {{bêmînak|en}} == {{ziman|tr}} == ==== Mane ==== # [[hey]] == {{ziman|vi}} == === Girêdek === {{girêdek|vi}} # [[yan#ku|yan]], [[an#ku|an]] #* {{bêmînak|vi}} mts3z7sy8swggc27p5el40114ojj6i9 ajokar 0 3866 6328772 5842984 2026-08-11T00:25:04Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328772 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=mn}} # {{bnr|ajovan}} #* {{jêder-malper|ku|jêgirtin=Hevalê '''ajokar''' li korona moronayê ho venade û zilêm li tomofîlê (otomobîl) siwar dike.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Etîmolojî ==== Ji {{qertaf|ku|ajo|-kar}}. 4j3a2t5j86lnw93icdnd3ftpoesxe9u hebûn 0 3876 6328975 6327641 2026-08-11T11:50:47Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328975 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-hebûn.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk-tablo|form=ngh|borî=he-bû- |niha.1y=heme |niha.2y=heyî |niha.3y=heye|niha.p=hene |borî.1y=hebûm|borî.2y=hebûyî|borî.3y=hebû|borî.p=hebûn |imp.y=hebe|imp.p=hebin }} {{lêker|ku|c=p-ngh}} # [[xwedî|Xwediya/ê]] tiştekî bûn, [[xudan]]a/ê tiştekî bûn. #: {{mk|ku|Wî çend bira '''hebûn'''?}} #: {{mk|ku|Min gelek kitêb '''hene'''.}} #* {{bêmînak|ku}} # [[peyda|Peyda]] bûn, li [[der]]ekê [[bûn]]. #: {{mk|ku|Sê kes li wir '''hebûn'''.}} #* {{jêder-pirtûk|ku|jêgirtin=Û şev diherike. Lê tevî şevê, tevî tariya şevê, tevî girseya ewran ku xwe dilivînin, stêr '''hene''', heyv '''heye''', ronahiya wan '''heye'''.|nivîskar={{w|Mehmet Uzun}}|sernav=Ronî mîna evînê, tarî mîna mirinê|sal=2005|rûpel=134}} #* {{jêder-malper|ku|jêgirtin=Bikir '''hebe''' bazara kurdî ewê geştir bibe. Dibê em bikirên kurdî zêde bikin.|malper=zinarexamo.blogspot.com|nivîskar=Zinarê Xamo|sernav= Bikir hebe bazara kurdî ewê geştir bibe|sal=2023|url=https://zinarexamo.blogspot.com/2023/05/bikir-hebe-bazara-kurdi-ewe-gestir-bibe.html}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Ma bi bala hilkişêtin 'aqibet çî bit selab<br>Ehremin te'lîm-i da bû Ebyedî dest tê '''hebû'''<br>Pir bi vê te'lîm û rayê hatibû çûbû xitab}} ==== Bi alfabeyên din ==== * {{ku-ar|هه‌بوون}} ==== Formên alternatîv ==== * {{hw|ku|hebîn}} {{i|[[Behdînan]], bo nimûne Zaxo}} * {{hw|ku|hebün}} / {{hw|ku|hebwîn}} {{i|Behdînan, bo nimûne Barzan û Zêbar}} * {{hw|ku|heyîn}} * {{hw|ku|hevûn}} {{i|bi taybetî devokên rojavayî û serhedî}} * {{hw|ku|hewûn}} {{i|bi taybetî devokên rojavayî û serhedî}} ==== Dijmane ==== * {{g|ku|nebûn}} * {{g|ku|tine bûn}}, {{g|ku|tune bûn}} * {{g|ku|nîn bûn}} ==== Jê ==== {{kol2|ku | hebûnî | heyber | heyberî }} ==== Etîmolojî ==== Ji {{pêş|ku|he-|bûn}}. [[hevreh|Hevreha]] {{hv|ckb|هەبوون}}, {{hv|zza|estene}}, belûçî {{hv|fa|استن|esten}} û {{hv|fa|هستن|hesten}}, beramberî [[e]] (wek "ew e") + [[bûn]]. Lê ne hevreha almanî {{q|de|haben}} yan îngilîzî {{q|en|have}} e. ==== Werger ==== {{werger-ser|peyda bûn, mewcûd bûn, berdest bûn, sax bûn, jîndar bûn}} * {{Z|af}}: {{W+|af|bestaan}} * {{Z|sq}}: {{W+|sq|ekzistoj}} * {{Z|de}}: {{W+|de|bestehen}}, {{W+|de|existieren}} * {{Z|ast}}: {{W-|ast|esistir}}, {{W-|ast|existir}} * {{Z|az}}: {{W-|az|var olmaq}}, {{W-|az|mövcüd olmaq}} * {{Z|be}}: {{W-|be|існава́ць}} * {{Z|bg}}: {{W+|bg|съществувам}} * {{Z|cs}}: {{W+|cs|být}}, {{W+|cs|existovat}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|存在|tr=cyun4 zoi6}} *: {{Z|cmn}}: {{W+|cmn|存在|tr=cúnzài}} *: {{Z|nan}}: {{W+|nan|存在|tr=chûn-chāi / chûn-chǎi}} * {{Z|da}}: {{W+|da|eksistere}}, {{W+|da|bestå}} * {{Z|ar}}: {{W-|ar|وُجِدَ}} * {{Z|hy}}: {{W-|hy|գոյություն ունենալ}}, {{W+|hy|լինել}} * {{Z|eo}}: {{W+|eo|ekzisti}} * {{Z|et}}: {{W-|et|eksisteerima}}, {{W-|et|olemas olema}}, {{W-|et|olelema}} * {{Z|fa}}: {{W+|fa|زیستن|tr=zistan}}, {{W+|fa|وجود داشتن|tr=vojud dâštan}}, {{W+|fa|هستادن}} * {{Z|fo}}: {{W+|fo|vera}}, {{W-|fo|vera til}}, {{W-|fo|finnast}} * {{Z|fi}}: {{W+|fi|olla}}, {{W-|fi|olla olemassa}} * {{Z|fr}}: {{W+|fr|exister}} * {{Z|gl}}: {{W+|gl|existir}} * {{Z|ka}}: {{W-|ka|არსებობა}} * {{Z|hi}}: {{W-|hi|ज़िन्दा होना}} * {{Z|nl}}: {{W+|nl|bestaan}} * {{Z|io}}: {{W+|io|existar}} * {{Z|ang}}: {{W+|ang|wesan}}, {{W-|ang|bēon}} * {{Z|en}}: {{W+|en|exist}}, {{W-|en|there be}} * {{Z|ia}}: {{W-|ia|exister}} * {{Z|ga}}: {{W-|ga|bí ann}} * {{Z|it}}: {{W+|it|esistere}} * {{Z|ja}}: {{W-|ja|存在する|tr=そんざいする, sonzai suru}} * {{Z|ca}}: {{W+|ca|existir}} * {{Z|qu}}: {{W+|qu|kay}} * {{Z|ky}}: {{W-|ky|бар болуу}} * {{Z|ko}}: {{W+|ko|존재하다}} * {{Z|lad}}: {{W-|lad|egzistir}} * {{Z|la}}: {{W+|la|existō}}, {{W+|la|exsistō}}, {{W+|la|sum}}, {{W+|la|exsto}}, {{W+|la|consto}}, {{W-|la|exto}}, {{W-|la|compareo}} * {{Z|lv}}: {{W-|lv|eksistēt}}, {{W-|lv|pastāvēt}} * {{Z|mk}}: {{W-|mk|егзисти́ра|impf|pf}}, {{W-|mk|постои|impf}} * {{Z|ms}}: {{W+|ms|wujud}} * {{Z|mt}}: {{W-|mt|eżista}} * {{Z|mi}}: {{W-|mi|tiari}}, {{W-|mi|tiari}} * {{Z|hu}}: {{W+|hu|van}}, {{W+|hu|létezik}}, {{W+|hu|él}} * {{Z|egy}}: {{W-|egy|wnn}} * {{Z|nci}}: {{W-|nci|oncah}}, {{W-|nci|cah}} * {{Z|no}}: {{W+|no|eksistere}}, {{W+|no|bestå}} * {{Z|oc}}: {{W+|oc|existir}} * {{Z|uz}}: {{W-|uz|mavjud boʻlmoq}}, {{W-|uz|bor boʻlmoq}} * {{Z|pl}}: {{W+|pl|istnieć}}, {{W+|pl|egzystować}} * {{Z|pt}}: {{W+|pt|existir}} * {{Z|kk}}: {{W-|kk|бар болу}} * {{Z|ro}}: {{W+|ro|exista}} * {{Z|ru}}: {{W-|ru|существова́ть}} * {{Z|sh}}: {{W+|sh|póstojati}}, {{W+|sh|egzistírati}}, {{W+|sh|òpstojati}}, {{W+|sh|bȉvstvovati}} * {{Z|sco}}: {{W-|sco|exeest}} * {{Z|sk}}: {{W-|sk|jestvovať}}, {{W-|sk|existovať}} * {{Z|sl}}: {{W+|sl|obstajati|impf}} * {{Z|es}}: {{W+|es|existir}} * {{Z|sv}}: {{W+|sv|existera}}, {{W+|sv|bestå}} * {{Z|tg}}: {{W+|tg|зистан}}, {{W-|tg|вуҷуд доштан}} * {{Z|th}}: {{W-|th|มีอยู่}} * {{Z|tr}}: {{W+|tr|var olmak}} * {{Z|uk}}: {{W-|uk|існува́ти}} * {{Z|vi}}: {{W+|vi|tồn tại}} * {{Z|vo}}: {{W+|vo|dabinön}} * {{Z|cy}}: {{W+|cy|bodoli}} * {{Z|km}}: {{W+|km|មាន|tr=mien|sc=Khmr}} * {{Z|yi}}: {{W-|yi|עקסיסטירן}} * {{Z|el}}: {{W+|el|υπάρχω}}, {{W+|el|υφίσταμαι}} *: Kevn: {{W-|grc|ὑπάρχω}} {{werger-bin}} :{{werger çavkanî|en|exist|beş=Ev beşa Wergerê|oldid=74220055}} {{werger-ser|xwedî bûn, di dest de bûn}} * {{Z|sq}}: {{W+|sq|kam}} * {{Z|pdc}}: {{W-|pdc|hawwe}} * {{Z|de}}: {{W+|de|haben}}, {{W+|de|besitzen}} *: {{Z|gsw}}: {{W-|gsw|haa}} * {{Z|alt}}: {{W-|alt|бар}} * {{Z|abs}}: {{W-|abs|pung}} * {{Z|an}}: {{W+|an|tener}}, {{W+|an|haber}} * {{Z|rup}}: {{W-|rup|am}} * {{Z|ast}}: {{W+|ast|tener}} * {{Z|eu}}: {{W-|eu|eduki}} * {{Z|be}}: {{W+|be|мець|impf}}, {{q|be|у}} * {{Z|br}}: {{W+|br|kaout}}, {{W-|br|endevout}} * {{Z|bg}}: {{W-|bg|и́мам|impf}} * Burmese: {{W+|my|မှာ}} {{W+|my|ရှိ}}; * {{Z|roa-brg}}: {{W-|roa-brg|aivoi}} * {{Z|cs}}: {{W+|cs|mít|impf}} * {{Z|chr}}: {{W-|chr|ᎤᎭ}}, {{W-|chr|ᎤᏁᎭ}}, {{W-|chr|ᎤᏩᎧᎭ}}, {{W-|chr|ᎤᎾᎠ}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|有|tr=jau5}} *: {{Z|dng}}: {{W-|dng|ю}} *: {{Z|gan}}: {{W-|gan|有|tr=iu3}} *: {{Z|hak}}: {{W-|hak|有|tr=yû}} *: {{Z|cjy}}: {{W-|cjy|有|tr=iou2}} *: {{Z|cmn}}: {{W+|cmn|有|tr=yǒu}}, {{W-|cmn|擁有|tr=yōngyǒu}} *: {{Z|cdo}}: {{W-|cdo|有|tr=ô, īu}} *: {{Z|wuu}}: {{W-|wuu|有}} *: {{Z|hsn}}: {{W-|hsn|有|tr=iou3}} * {{Z|ckt}}: {{W-|ckt|рытык|tr=rytyk}} * {{Z|dlm}}: {{W-|dlm|avar}} * {{Z|da}}: {{W+|da|have}} * {{Z|egl}}: {{W-|egl|avêreg}} * {{Z|id}}: {{W+|id|punya}} * {{Z|ar}}: {{W+|ar|مَلَكَ}}, {{W-|ar|اِمْتَلَكَ}}, {{W-|ar|تَمَلَّكَ}} * {{Z|hy}}: {{W+|hy|ունենալ}} * {{Z|eo}}: {{W+|eo|havi}} * {{Z|ext}}: {{W-|ext|tenel}} * {{Z|fa}}: {{W+|fa|داشتن|tr=dâštan}} * {{Z|fo}}: {{W+|fo|hava}} * {{Z|fi}}: {{W+|fi| olla}}, {{W+|fi|omistaa}}, {{W+|fi|omata}} * {{Z|roa-fcm}}: {{W-|roa-fcm|aivoi}} * {{Z|frp}}: {{W-|frp|avêr}} * {{Z|fro}}: {{W-|fro|avoir}}, {{W-|fro|aveir}} * {{Z|fr}}: {{W+|fr|avoir}} * {{Z|fur}}: {{W-|fur|vê}} * {{Z|frr}}: *: {{Z|frr}}: {{W-|frr|haa}} *: {{Z|frr}}: {{W-|frr|heewe}} *: {{Z|frr}}: {{W-|frr|hoa}} * {{Z|fy}}: {{W-|fy|hawwe}} * {{Z|gl}}: {{W+|gl|ter}} * {{Z|roa-gal}}: {{W-|roa-gal|avair}} * {{Z|kld}}: {{W-|kld|-baraay}} * {{Z|got}}: {{W-|got|𐌷𐌰𐌱𐌰𐌽}} * {{Z|ka}}: {{W-|ka|ფლობს}}, {{W-|ka|აქვს}}, {{W-|ka|ჰყავს}} * {{Z|hi}}: {{W+|hi|रखना}}, {{W+|hi|पास|cuda=...के पास}}, {{W+|hi|के|cuda=...के}} * {{Z|nl}}: {{W+|nl|hebben}} * {{Z|hrx}}: {{W-|hrx|hon}} * {{Z|ang}}: {{W-|ang|habban}} * {{Z|en}}: {{W+|en|have}} * {{Z|ia}}: {{W+|ia|haber}} * Îrlandî: {{W-|ga|bí}} {{W-|ga|ag}} *: {{Z|sga}}: {{W-|sga|at·tá}}, {{W-|sga|techtaid}} * {{Z|ist}}: {{W-|ist|avì}} * {{Z|it}}: {{W+|it|avere}}, {{W+|it|tenere}} * {{Z|ium}}: {{W-|ium|maaih}} * {{Z|is}}: {{W+|is|eiga}}, {{W+|is|vera með}} * {{Z|ja}}: {{W+|ja|持つ|tr=もつ, motsu}}; {{W+|ja|ある|tr=aru}}, {{W+|ja|いる|tr=iru}} * {{Z|kab}}: {{W-|kab|sɛu}}, {{W-|kab|ɣur}} * {{Z|kl}}: {{W-|kl|qar}} * {{Z|csb}}: {{W-|csb|miec}} * {{Z|ca}}: {{W+|ca|tenir}} * {{Z|ky}}: {{W+|ky|бар}}, {{W+|ky|болуу}} * {{Z|ko}}: {{W+|ko|있다}}, {{W+|ko|가지다}}, {{W+|ko|갖다}} * {{Z|la}}: {{W+|la|habeō}}, {{W+|la|teneo}}, {{W-|la|possideo}}, {{W+|la|sum}} * {{Z|lv}}: {{W+|lv|būt}} with dative, {{W-|lv|piederēt}} with dative * {{Z|lo}}: {{W-|lo|ມີ}} * {{Z|li}}: {{W+|li|höbbe}}, {{W-|li|han}} * {{Z|lt}}: {{W+|lt|turėti}} * {{Z|lmo}}: {{W-|lmo|avè}} * {{Z|roa-lor}}: {{W-|roa-lor|ahoir}} * {{Z|khb}}: {{W-|khb|ᦙᦲ}} * {{Z|mhn}}: {{W-|mhn|hom}} * {{Z|mk}}: {{W-|mk|има|impf}} * {{Z|ms}}: {{W+|ms|ada}}, {{W-|ms|punya}}, {{W-|ms|mempunyai}} * Maltese: ''use'' [[preposition]] {{W-|mt|għand}} + [[pronominal]] [[suffix]], e.g. {{W-|mt|għandi|tr=I have}}, {{W-|mt|għandek|tr=you have}}, {{W-|mt|għandu|tr=he has}}, etc. * {{Z|mi}}: {{W-|mi|whai}} * {{Z|hu}}: {{W+|hu|van}}, {{W+|hu|bír}}, {{W+|hu|birtokol}} * {{Z|mn}}: {{W+|mn|байх}} * {{Z|nah}}: {{W-|nah|quipi}} * {{Z|nap}}: {{W-|nap|avé}}, {{W-|nap|tené}} * {{Z|nv}}: {{W-|nv|bee hólǫ́}} * {{Z|nds}}: {{W+|nds|hebben}} * {{Z|ne}}: {{W-|ne|...[[सँग]] [[हुनु]]}}, {{ne-l|राख्नु}} * {{Z|nrf}}: {{W-|nrf|aver}}, {{W-|nrf|aveir}}, {{W-|nrf|avaer}} * {{Z|no}}: {{W+|no|ha}} * {{Z|oj}}: {{W-|oj|ayaan}}, {{W-|oj|ayaaw}} * {{Z|pro}}: {{W-|pro|aver}} * {{Z|oc}}: {{W+|oc|aver}} * {{Z|pms}}: {{W-|pms|avèj}} * {{Z|pcd}}: {{W-|pcd|avoèr}} * {{Z|pl}}: {{W+|pl|mieć|impf}} * {{Z|roa-opt}}: {{W-|roa-opt|tẽer}} * {{Z|pt}}: {{W+|pt|ter}} * {{Z|rm}}: {{W-|rm|avair}}, {{W-|rm|aver}}, {{W-|rm|haver}}, {{W-|rm|aveir}} * {{Z|ro}}: {{W+|ro|avea}} * {{Z|ru}}: {{W-|ru|име́ть}} * {{Z|osx}}: {{W-|osx|hebbian}} * {{Z|sc}}: {{W-|sc|àere}}, {{W-|sc|ai}}, {{W-|sc|àiri}}, {{W-|sc|jùcchere}}, {{W-|sc|giùghere}}, {{W-|sc|tènnere}}, {{W-|sc|tènniri}} * {{Z|scn}}: {{W+|scn|aviri}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|имати|impf}} *: Latînî: {{W+|sh|imati|impf}} * {{Z|sco}}: {{W-|sco|hae}} * {{Z|cu}}: {{W-|cu|имѣти}} * {{Z|sk}}: {{W+|sk|mať|impf}} * {{Z|sl}}: {{W+|sl|imeti|impf}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|měś}} *: {{Z|hsb}}: {{W+|hsb|měć}} * {{Z|es}}: {{W+|es|tener}} * {{Z|sv}}: {{W+|sv|äga}}, {{W+|sv|ha}} * {{Z|roa-cha}}: {{W-|roa-cha|aouâr}} * {{Z|shn}}: {{W-|shn|မီး}} * {{Z|tg}}: {{W+|tg|доштан}} * {{Z|tl}}: {{W-|tl|magkaroón}} * {{Z|sou}}: {{W-|sou|ยัง}} * {{Z|nod}}: {{W-|nod|ᨾᩦ|tr=mi}} * {{Z|th}}: {{W+|th|มี}} * {{Z|tzm}}: {{W-|tzm|ⴻⵍ}} * {{Z|tr}}: {{W+|tr|sahip olmak}} * {{Z|bo}}: {{W-|bo|ལ་དོན}} * {{Z|ur}}: {{W-|ur|پاس|tr=... ke pās|cuda=... کے پاس}} * {{Z|uk}}: {{W-|uk|ма́ти|impf}} * {{Z|vi}}: {{W+|vi|có}} * {{Z|vo}}: {{W+|vo|labön}} * {{Z|wym}}: {{W-|wym|hon}} * {{Z|km}}: {{W+|km|មាន}} * {{Z|yai}}: {{W-|yai|дорак}} * {{Z|yi}}: {{W-|yi|האָבן}} * {{Z|el}}: {{W+|el|έχω}} *: {{Z|grc}}: {{W-|grc|ἔχω}}, {{W-|grc|κέκτημαι}} * {{Z|zea}}: {{W-|zea|è}} * {{Z|za}}: {{W-|za|miz}} * {{Z|zu}}: {{W-|zu|na-}} {{werger-bin}} :{{werger çavkanî|en|have|beş=Ev beşa Wergerê|oldid=75666156}} === Navdêr === {{navdêr|ku|z=m}} # [[bûnewerî]], di [[jiyan]]ê de bûn, [[jîndarî]], [[wicûd]], [[heyîn]], [[peydabûn]] #: {{mk|ku|'''Hebûna''' kurdan li Ewropayê.}} # [[mal|Mal]], [[milk]], [[zengînî]], [[dewlemendî]], [[dewlet]], tiştên mirovî hene #: {{mk|ku|'''Hebûna''' mal û milk.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Dijmane ==== * {{g|ku|nebûn}} * {{g|ku|tinebûn}} * {{g|ku|tinetî}} ==== Werger ==== {{werger-ser|xwedîbûn, xwedîtî, milkiyet, mal}} * {{Z|bg}}: {{W+|bg|притежание|nt}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|佔有|tr=zhànyǒu}} * {{Z|ar}}: {{W-|ar|مُلْكِيّة|m}}, {{W-|ar|حَوْزَة}}, {{W-|ar|عُهْدَة|m}} * {{Z|fi}}: {{W+|fi|omistajuus}} * {{Z|fr}}: {{W+|fr|possession|m}}, {{W+|fr|propriété|m}} * {{Z|gd}}: {{W-|gd|sealbhachadh|n}} * {{Z|nl}}: {{W+|nl|bezit|nt}}, {{W+|nl|bezittingen|p}} * {{Z|ang}}: {{W-|ang|ǣht|m}} * {{Z|enm}}: {{W-|enm|warisoun}} * {{Z|en}}: {{W+|en|possession}} * {{Z|ga}}: {{W-|ga|seilbh|m}} * {{Z|it}}: {{W+|it|possesso|n}} * {{Z|ja}}: {{W+|ja|保持|tr=hoji|sc=Jpan}}, {{W+|ja|保有|tr=hoyū|sc=Jpan}}, {{W+|ja|所持|tr=shoji|sc=Jpan}}, {{W+|ja|所有|tr=shoyū|sc=Jpan}} * {{Z|ca}}: {{W+|ca|propietat|m}}, {{W+|ca|possessió|m}} * {{Z|hu}}: {{W+|hu|birtoklás}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|eierskap|nt}} * {{Z|pl}}: {{W+|pl|posiadanie|nt}} * {{Z|pt}}: {{W+|pt|possessão|m}}, {{W+|pt|posse}} * {{Z|ro}}: {{W+|ro|posesiune|m}}, {{W+|ro|proprietate}}, {{W+|ro|stăpânire|m}} * {{Z|ru}}: {{W-|ru|облада́ние|nt}}, {{W-|ru|владе́ние|nt}} * {{Z|es}}: {{W-|es|tenencia|m}}, {{W-|es|posesión civil|m}} * {{Z|sv}}: {{W+|sv|innehav|nt}} * {{Z|el}}: {{W+|el|κατοχή|m|sc=Grek}}, {{W+|el|ιδιοκτησία|m|sc=Grek}}, {{W+|el|κυριότητα|m|sc=Grek}} *: Kevn: {{W-|grc|κτῆσις|m}}, {{W-|grc|κατοχή|m}} {{werger-bin}} :{{werger çavkanî|en|possession|beş=Ev beşa Wergerê|oldid=75424291}} {{werger-ser|peydabûn, wucûd}} * {{Z|sq}}: {{W+|sq|qenie|m}}, {{W+|sq|ekzistencë|m}} * {{Z|de}}: {{W+|de|Existenz|m}}, {{W+|de|Dasein|nt}}, {{W+|de|Sein|nt}} * {{Z|ast}}: {{W-|ast|esistencia|m}} * {{Z|az}}: {{W+|az|varlıq}}, {{W-|az|mövcudluq}} * {{Z|be}}: {{W-|be|існава́нне|nt|sc=Cyrl}}, {{W-|be|быццё|nt|sc=Cyrl}} * {{Z|bn}}: {{W+|bn|অস্তিত্ব}}, {{W+|bn|ওজুদ}} * {{Z|bg}}: {{W-|bg|съществу́ване|nt}}, {{W+|bg|битие|nt}} * {{Z|my}}: {{W+|my|ဇာတ်}} * {{Z|cs}}: {{W+|cs|existence|m}}, {{W+|cs|bytí|nt}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|存在|tr=cyun4 zoi6}} *: {{Z|cmn}}: {{W+|cmn|存在|tr=cúnzài}} * {{Z|da}}: {{W-|da|eksistens}}, {{W-|da|tilværelse}} * {{Z|id}}: {{W+|id|eksistensi}}, [[ada]]nya, [[ada|keberadaan]] * {{Z|ar}}: {{W+|ar|وُجُود|n}} *: {{Z|arz}}: {{W-|arz|وجود|n|tr=wugūd}} * {{Z|hy}}: {{W+|hy|գոյություն}} * {{Z|eo}}: {{W-|eo|ekzistado}}, {{W-|eo|ekzisto}} * {{Z|et}}: {{W-|et|olemasolu}} * {{Z|fax}}: {{W-|fax|ixistencia|m}}, {{W-|fax|existencia|m}} * {{Z|fa}}: {{W+|fa|هستی|tr=hasti}}, {{W+|fa|بوش|tr=boveš}} * {{Z|fi}}: {{W+|fi|olemassaolo}} * {{Z|fr}}: {{W+|fr|existence|m}} * {{Z|gl}}: {{W+|gl|existencia|m}} * {{Z|gu}}: {{W-|gu|અસ્તિત્વ}} * {{Z|ka}}: {{W-|ka|არსებობა|sc=Geor}} * {{Z|hi}}: {{W+|hi|अस्तित्व|n}}, {{W+|hi|भाव|n}} * {{Z|nl}}: {{W+|nl|bestaan|nt}}, {{W+|nl|voorkomen|nt}} * {{Z|he}}: {{W-|he|קִיּוּם|n|tr=kiyúm}} * {{Z|en}}: {{W+|en|existence}} * {{Z|ia}}: {{W-|ia|existentia}} * {{Z|it}}: {{W+|it|esistenza|m}} * {{Z|is}}: {{W+|is|tilvera|m}} * {{Z|ja}}: {{W+|ja|存在|tr=そんざい, sonzaí}} * {{Z|ca}}: {{W+|ca|existència|m}} * {{Z|ky}}: {{W+|ky|жашоо}} * {{Z|ko}}: {{W+|ko|존재}} * {{Z|la}}: {{W-|la|exsistentia|m}} * {{Z|lv}}: {{W-|lv|eksistence|m}}, {{W-|lv|pastāvēšana|m}}, {{W+|lv|esamība|m}} * {{Z|lo}}: {{W-|lo|ຊີບ}}, {{W-|lo|ຊີວະ}}, {{W-|lo|ຊີວັງ}}, {{W-|lo|ຊີວາລັຍ}}, {{W+|lo|ຊີວິດ}}, {{W-|lo|ພະວາພົບ}}, {{W-|lo|ພາວະ}} * {{Z|lt}}: {{W-|lt|egzistavimas}}, ''syn'': [[buvimas]], {{W-|lt|egzistencija|m}} * {{Z|mk}}: {{W-|mk|постоење|nt|sc=Cyrl}}, {{W-|mk|битие|nt|sc=Cyrl}} * {{Z|mt}}: {{W-|mt|eżistenza|m}} * {{Z|mi}}: {{W-|mi|tauoranga}}, {{W-|mi|kaiaotanga}} * {{Z|hu}}: {{W+|hu|lét}}, {{W+|hu|létezés}} * {{Z|nrf}}: {{W-|nrf|beays|n}} * {{Z|no}}: {{W-|no|eksistens|n}}, {{W+|no|tilværelse|n}} * {{Z|oc}}: {{W+|oc|existéncia|m}} * {{Z|pl}}: {{W+|pl|egzystencja|m}}, {{W+|pl|istnienie|nt}} * {{Z|pt}}: {{W+|pt|existência|m}} * {{Z|kk}}: {{W-|kk|тіршілік}}, {{W-|kk|болмыс}} * {{Z|ro}}: {{W+|ro|existență|m}} * {{Z|ru}}: {{W-|ru|существова́ние|nt}}, {{W-|ru|бытие́|nt}}, {{W-|ru|экзисте́нция|m|tr=ekzistɛ́ncija}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|постојање|nt}}, {{W-|sh|битисање|nt}}, {{W-|sh|егзистенција|m}} *: Latînî: {{W+|sh|postojanje|nt}}, {{W-|sh|bitisanje|nt}}, {{W+|sh|egzistencija|m}} * {{Z|sk}}: {{W-|sk|existencia|m}}, {{W+|sk|bytie|nt}} * {{Z|sl}}: {{W-|sl|obstoj|n}}, {{W+|sl|bitje|nt}} * {{Z|es}}: {{W+|es|existencia|m}} * {{Z|sv}}: {{W+|sv|existens|g}}, {{W+|sv|tillvaro|g}} * {{Z|tg}}: {{W+|tg|ҳастӣ}} * {{Z|tl}}: {{W-|tl|kamayhan}}, {{W-|tl|kamayrunan}} * {{Z|th}}: {{W-|th|การดำรงอยู่}}, {{W+|th|ชีพ}}, {{W+|th|ชีวะ}}, {{W-|th|ชีวา}}, {{W+|th|ชีวิต}} * {{Z|tr}}: {{W+|tr|varlık}}, {{W+|tr|varoluş}}, {{W+|tr|egzistans}} * {{Z|uk}}: {{W-|uk|існува́ння|nt|sc=Cyrl}}, {{W-|uk|буття́|nt|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|tồn tại}} * {{Z|yi}}: {{W-|yi|עקסיסטענץ|m}} * {{Z|el}}: {{W+|el|ύπαρξη}} {{werger-bin}} :{{werger çavkanî|en|existence|beş=Ev beşa Wergerê|oldid=73500005}} 98nrknr9pt0esfmvpxv9ku3b7y3zefe karîn 0 3979 6328744 6309680 2026-08-10T22:54:20Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328744 wikitext text/x-wiki {{bnr-h|Karîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-karîn.wav|dever=Amed}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|karîn|form=gerguhêz|niha=kar|borî=karî}} [[Wêne:Olympic-style weight lifting training.JPG|thumb|Ev kes '''dikarin''' tiştên [[giran]] [[hilgirtin|hilgirin]].]] {{lêker|ku|c=x-gh}}, {{k-ya nerm}} # [[hêz|Hêz]] / [[taqet]] yan [[hinêr]] yan [[derfet]] / [[delîv]] yan [[zanîn]] hebûn bo kirina tiştekî. #: {{hevmane|ku|şiyan}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Tu narê firqetê zanî</br>'''Dikarim''' ez tehemmul kim</br>Diyarê kohê Qendîl im}} # [[qezenc kirin]], [[jê birin]], [[bi ser ketin]]: #: {{mk|ku|Di avjenîyê de min '''karî''' te.}} ==== Notên bikaranînê ==== {{veşêre-ser|Notên bikaranînê}} Lêkerên "karîn/kanîn" (anku "şiyan", "hêz hebûn") û "zanîn" bi hin awayan ji lêkerên din yên kurmancî cuda ditewin. Bo nimûne di dema niha de di hin devokan de pêşqertafa "di-" nakeve pêşiya wan. Loma "ez di-kim, tu di-bêjî, ew di-xwe" lê "ez karim, tu zanî, ew kane" (li cihê "ez dikarim, tu dizanî, ew dikane"). Herwiha neyînîkirina wan ne bi "na-" ya giştî lê bi "ni-" ye: Loma "ez na-kim, tu na-çî, ew na-bêje" lê "ez ni-zanim, tu ni-karî, ew nikane". Herwiha di rewşên din de jî hin cudahî hene. Ji hemû lêkerên din re di raweya şertî de (kondîsyonal yan subjunktîv) bi giştî lêker bi formûlaya "bi- + rehê dema niha + qertafa kesandinê ne": "ez bi-ç-im, tu bi-k-î, ew bi-bêj-e". Ev qaydeya giştî di hin devokan de dîsa li gel lêkerên "karîn/kanîn" û "zanîn" jî li kar e: "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e". Lê di hin devokan de jî ew bi formûlaya "rehê dema niha + -i- + -b- + qertafa kesandinê" tê çêkirin: "ez kar-i-b-im, tu zan-i-bî, ew kan-i-b-e". Di hin devokan de jî îcar ev herdu qayde di heman demê de tên bikaranîn: "ez bi-zan-i-b-im, tu bi-kar-i-bî". Lê ji van awarteyiyan tenê "ni-" ya neyînîkirinê di kurmancî de di hemû devokan de awrte ye. Lê awarteyiyên din tenê di hin devokan de hene. Devokên din qeydeyên giştî bi kar tînin. Loma divê em di mesela "di-" de li gor qaydeya giştî biçin: "ez dikarim" ne "ez karim". Herwiha ji ber ku "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e" li gor qaydeya giştî ne û formên wek "ez zan-i-bim, tu kar-i-bî, ew kan-i-be" yan jî "ez bi-zan-i-bim, tu bi-kar-i-bî, ew bi-kar-i-be" awarte ne, divê em wek "bizanim, bikarî, bikane" tercih bikin. Herwiha ev ''karibû'' bi teşeya raboriya dûr ''karîbû'' hemanî nayê lêvandin. {{veşêre-bin}} ==== Bi alfabeyên din ==== * {{ku-ar|کارین}} * {{ku-kr|карин}} ==== Formên alternatîv ==== * [[kanîn]] * [[kaynîn]] (kurmanciya Xorasanê) ==== Jê ==== * [[kara]] ==== Etîmolojî ==== Ji {{ji|hy|ku|-}}{{çp}}, bi ermeniya rojava {{g|hy|կարնալ|tr=arenal/garenal}}, ermeniya rojhilat {{g|hy|կարողանալ|tr=karoġanal}}, têkilî ermeniya kevn {{g|xcl|կարող|tr=karoł|w=[[xurt]], [[bihêz]]}} ji {{g|xcl|կար|tr=kar|w=[[hêz]], [[îmkan]]}}. Di lêkera ermenî de di nava peyvê de hem "r" û hem jî "n" heye loma di hin devokên kurmancî de "karîn" û di hinan de jî "kanîn" e. Di devokên kurmancî yên dûrî ermenî de û di zaravayên din yên kurdî û di zimanên din yên îranî de peyda nabe loma ihtimala ku ji ermenî be gelekî mezin e. Bi hin devokên kurmancî [[şiyan]] e ku [[hevreh]]a [[şiyan]] ([[mimkin]] bûn) ya soranî, [[şayed]] ya ji farisî û [[şikayene, eşkayene, şayene]] ya zazakî ye. Di soranî de [[tiwanîn]] (rehê dema niha "-tiwan-") e ku hevreha {{g|fa|توانستن|tr=tevanesten}} ya farisî ye ku rehê wê yê dema niha "-tevan-" e. Ne têkilî [[can]] (bixwîne: ken yan kan) ya îngilîzî û hevrehên wê yên zimanên cermenî ye ji ber ku eger ew hevreh bûna, "k" ya proto-hindûewropî divê di kurdî de bûbûya "s" û di zimanên cermenî de jî "h". Idiaya [[Şablon:Beghyani|Beghyani]], ku dibêje ji [[kirin]] e, bi ti [[belge]]yan nehatiye [[peyitandin]]. [[Şablon:Hesendost|Hesendost]] bi xeletî li ber peyva "tevanisten" ya farisî nivîsiye: "kirmaşanî: twanîn, karîn, û: karîn, kan, kanî". Di rastiyê de li ber "karîn, -kan-, kanî" diviyabû ku "kurmancî" hatibûya nivîsîn. Bi Kirmaşanî û lekî [[tüenîn]] / [[tüenisin]] e. Peyva ermenî jî ji zimanekî gurcî-zanî wergirtiye<ref>Ačaṙean, Hračʿeay (1973), “կռիւ”, in Hayerēn armatakan baṙaran [Armenian Etymological Dictionary] (in Armenian), volume II, 2nd edition, a reprint of the original 1926–1935 seven-volume edition, Yerevan: University Press, rûpel 671b http://www.nayiri.com/imagedDictionaryBrowser.jsp?dictionaryId=7&printPage=671&volume=2</ref>, ji proto-gurcî-zanî {{q|ccs-gzn-pro|*ḳar-|w=[[bestin]]}}, ji proto-kartvelî ''[[*ḳar-]]'' ku bûye [[lazî]] {{g|lzz|ო-კორ-უ|tr=o-ǩor-u|w=bestin}}, mingrelî {{g|xmf|კჷრ-უ-ა|w=bestin}}, gurcî {{g|ka|კრვა|tr=ḳrva}}<ref>Klimov, G. A. (1998) Etymological Dictionary of the Kartvelian Languages (Trends in linguistics. Documentation; 16), New York, Berlin: Mouton de Gruyter, rûpel 86 https://archive.org/details/KlimovEtymological/Klimov?view=theater#page/n102/mode/1up</ref><ref>Fähnrich, Heinz (2007) Kartwelisches Etymologisches Wörterbuch [Kartvelian Etymological Dictionary] (Handbuch der Orientalistik; VIII.18) (in German), Leiden, Boston: Brill, rûpel 222 https://archive.org/details/Fahnrich_2007/page/n221/mode/1up?view=theater</ref>... Ev dikare bê maneya ku ew peyveke substrat a hevpar e ku ketiye ermenî û hin zaravayên kurdî ji zimanên [[Qefqaz]]î, lê ew ne[[vebirî]] ye. Herwiha bi zimanê [[partî]] hatiye qeydkirin ku lêkera {{q|ku|kirin}} bo diyarkirina [[pêkanî|pêkaniya]] tiştek jî li kar bûye.<ref>Dictionary Of Manichean Middle Persian & Parthian by Durkin-Meisterernst, Desmond, rûpel 206, '''kr-, qr- Pa lkar-1 vtr. "to do, make'. Used as an auxiliary verb following a pp. in the 'potentialis', to indicate a possibility, eg MKG(726i fr'm](r)g kyrd kr'n "if- I could make (her) forgetful"''', https://archive.org/details/DictionaryOfMMP/page/n236/mode/1up?q=could</ref>mînak: "''framereg kird keran''" = (ku min wê) bikariya [[bîroke]] bikim (framereg: [[bîroke]] - ji reha fremûşten/ji bîr kirin / kird: kir - dema bihûrî a sade / keran: bikim - kesê yekjimar ê 1. dema niha a bilanî). Di soranî de jî rrewşa pasîf a lêkera "{{g|ckb|کردن}}" wek hevwateya {{g|ckb|شیان|w=mimkin bûn}} tê bikaranîn (wek "dekirêt rû bidat" = "tê kirin ku rû de" anku [[pêkan]] e ku rû de) an jî "deyekat" = ew wî dike/ew dikare... lê ne wek hevmaneya {{g|ckb|tiwanîn|sc=Latn|w=karîn}}. Anku ne ku di zimanên îranî ên din de peyda nabe, [[nexasma]] di zimanên kurdî de. ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W-|sq|mund}}, {{W+|sq|mundem}} * {{Z|de}}: {{W+|de|können}} *: {{Z|gsw}}: {{W-|gsw|chöne}} * {{Z|an}}: {{W-|an|poder}} * {{Z|rup}}: {{W-|rup|pot}} * Assamese: *: {{Z|as}}: {{W-|as|পাৰা}} *: {{Z|as}}: {{W-|as|পৰা}} * {{Z|ast}}: {{W+|ast|poder}} * {{Z|az}}: {{W+|az|bilmək}}, {{W+|az|bacarmaq}} * {{Z|eu}}: {{W-|eu|ahal izan}} * {{Z|be}}: {{W-|be|магчы́|impf}}, {{W-|be|змагчы́|pf}}; {{W-|be|уме́ць|impf}}, {{W-|be|ўмець|impf}}, {{W-|be|суме́ць|pf}} * {{Z|br}}: {{W-|br|gallout}} * {{Z|bg}}: {{W-|bg|мо́га|impf}}, {{W-|bg|уме́я|impf}} * {{Z|my}}: {{W+|my|နိုင်|sc=Mymr}} * {{Z|cs}}: {{W-|cs|moci}}, {{W-|cs|umět}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|識得|tr=sik1 dak1}} *: {{Z|cmn}}: {{W+|cmn|會|tr=huì}}, {{W+|cmn|能|tr=néng}}, /{{W+|cmn|不了|tr=-buliǎo}}}}, {{W+|cmn|能夠|tr=nénggòu}} *: {{Z|nan}}: {{W+|nan|會得|tr=ē-tit}}, {{W+|nan|會當|tr=ē-tàng}}, {{W-|nan|會凍|tr=ē-tàng}} * {{Z|dlm}}: {{W-|dlm|potar}} * {{Z|da}}: {{W-|da|kunne}} * {{Z|id}}: {{W+|id|boleh}}, {{W+|id|bisa}} * {{Z|ar}}: {{W-|ar|قَدَرَ}}, {{W-|ar|اِسْتَطَاعَ}}, {{W-|ar|أَمْكَنَ}} *: {{Z|arz}}: {{W-|arz|قدر|tr=ʾadar|sc=Arab}} * {{Z|hy}}: {{W+|hy|կարողանալ}}, {{W+|hy|կրնալ}} * {{Z|eo}}: {{W+|eo|povi}} * {{Z|et}}: {{W-|et|osata}}, {{W-|et|võima}} * {{Z|fa}}: {{W-|fa|توانستن|tr=tavânestan}}, {{W-|fa|قادر بودن}} * {{Z|fo}}: {{W+|fo|kunna}} * {{Z|fi}}: {{W+|fi|osata}}, {{W+|fi|voida}}, {{W+|fi|pystyä}} * {{Z|frp}}: {{W-|frp|povêr}}, {{W-|frp|possêr}} * {{Z|fr}}: {{W+|fr|pouvoir}} * {{Z|fur}}: {{W-|fur|podê}} * {{Z|frr}}: {{W-|frr|koone}}, {{W-|frr|kön}}, {{W-|frr|kan}} * {{Z|ofs}}: {{W-|ofs|kunna}} * {{Z|stq}}: {{W-|stq|konne}} * {{Z|gd}}: {{W-|gd|'s urrainn do}}, {{W-|gd|faod}} * {{Z|gl}}: {{W+|gl|poder}} * {{Z|roa-gal}}: {{W-|roa-gal|póeir}} * {{Z|got}}: {{W-|got|𐌼𐌰𐌲𐌰𐌽}}, {{W-|got|𐌺𐌿𐌽𐌽𐌰𐌽}} * {{Z|ka}}: {{W-|ka|შეუძლია}} * {{Z|ht}}: {{W-|ht|ka}}, {{W-|ht|kapab}}, {{W-|ht|kab}} * {{Z|hi}}: {{W-|hi|सकना}}, {{W-|hi|समर्थ होना}} * {{Z|nl}}: {{W+|nl|kunnen}}, {{W+|nl|vermogen}} * {{Z|he}}: {{W+|he|יכול|n|tr=yakhól|cuda=יכול / יָכֹל}}, {{W-|he|מסוגל|n|tr=m'sugál|cuda=מסוגל / מְסֻגָּל}} * {{Z|ang}}: {{W-|ang|magan}}, {{W-|ang|cunnan}} * {{Z|ga}}: {{W-|ga|is féidir le}}, {{W-|ga|tig le}}, {{W-|ga|féad}}, {{W-|ga|bí}} {{W-|ga|in ann}} *: {{Z|sga}}: {{W-|sga|con·icc}} * {{Z|it}}: {{W+|it|potere}}, {{W+|it|riuscire}}, {{W+|it|sapere}} * {{Z|is}}: {{W+|is|geta}} * {{Z|ja}}: {{W+|ja|できる|tr=dekiru|sc=Jpan}}, {{W+|ja|れる|cuda=-れる|tr=-reru|sc=Jpan}}, {{W+|ja|られる|cuda=-られる|tr=-rareru|sc=Jpan}} * {{Z|kn}}: {{W+|kn|ಬಹುದು}} * {{Z|ca}}: {{W-|ca|poder}}, {{W-|ca|poguer}} * {{Z|qu}}: {{W+|qu|atiy}} * {{Z|gil}}: {{W-|gil|kona}} * {{Z|ko}}: {{W-|ko|수|cuda=...을/ᄅ 수 있다|tr=...-l su itda}}, {{W+|ko|eu}} * {{Z|kw}}: {{W-|kw|gallos}} * {{Z|la}}: {{W+|la|possum}}, {{W-|la|queo}}, {{W+|la|scio}} * {{Z|lv}}: {{W+|lv|prast}}, {{W+|lv|spēt}}, {{W+|lv|varēt}} * {{Z|lo}}: {{W-|lo|ໄດ້}} * {{Z|lt}}: {{W+|lt|galėti}} * {{Z|liv}}: {{W-|liv|mȯistõ}}, {{W-|liv|võidõ}} * {{Z|khb}}: {{W-|khb|ᦺᦡᧉ}} * {{Z|lb}}: {{W+|lb|kënnen}} * {{Z|mk}}: {{W-|mk|може}} * {{Z|ml}}: {{W-|ml|കഴിയും}} * {{Z|ms}}: {{W-|ms|dapat}}, {{W-|ms|boleh}}, {{W+|ms|bisa}} * {{Z|mt}}: {{W-|mt|seta'}} * {{Z|gv}}: {{W-|gv|jarg}} * {{Z|hu}}: {{W+|hu|tud}}, {{W+|hu|képes}} * {{Z|mn}}: {{W+|mn|чадах}}, {{W-|mn|ᠴᠢᠳᠠᠬᠤ}} * {{Z|nah}}: {{W-|nah|huelīti}} * {{Z|nap}}: {{W-|nap|putè}} * {{Z|nds}}: {{W-|nds|könen}} * {{Z|no}}: {{W+|no|kunne}} * {{Z|oc}}: {{W-|oc|pòder}}, {{W-|oc|podre}} * {{Z|ppl}}: {{W-|ppl|weli}}, {{W-|ppl|hueli}} * {{Z|pl}}: {{W+|pl|móc}}, {{W+|pl|umieć}}, {{W+|pl|potrafić}} * {{Z|pt}}: {{W+|pt|conseguir}}, {{W+|pt|saber}} * {{Z|rm}}: {{W-|rm|pudair}}, {{W-|rm|puder}}, {{W-|rm|pudeir}} * {{Z|ro}}: {{W+|ro|putea}} * {{Z|ru}}: {{W+|ru|мочь|impf}}, {{W+|ru|смочь|pf}}, {{W-|ru|уме́ть|impf}}, {{W-|ru|быть в состоя́нии}} * {{Z|osx}}: {{W-|osx|kunnan}} * {{Z|sc}}: {{W-|sc|podere}}, {{W-|sc|podi}}, {{W-|sc|podiri}}, {{W-|sc|pori}}, {{W-|sc|porrere}}, {{W-|sc|potere}} * {{Z|scn}}: {{W+|scn|putiri}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|моћи}}, {{W-|sh|умети}}, {{W-|sh|умјети}} *: Latînî: {{W+|sh|moći}}, {{W+|sh|umeti}}, {{W+|sh|umjeti}} * {{Z|syl}}: {{W-|syl|ꠙꠣꠞꠣ}} * {{Z|sk}}: {{W-|sk|môcť}} * {{Z|sl}}: {{W+|sl|moči}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|móc}} * {{Z|es}}: {{W+|es|poder}}, {{W+|es|saber}} * {{Z|sv}}: {{W+|sv|kunna}} * {{Z|zdj}}: {{W-|zdj|djua|cuda=udjua}} * {{Z|ta}}: {{W-|ta|செய்யக்கூடிய}} * {{Z|th}}: {{W+|th|ได้}}, {{W+|th|ย่อม}}, {{W+|th|สามารถ}} * {{Z|otk}}: {{W-|otk|𐰆|ts=u-}} * {{Z|tr}}: {{W+|tr|-ebilmek}}, {{W+|tr|-abilmek}} {{W+|tr|yenmek}} * {{Z|txb}}: {{W-|txb|yāt-}} * {{Z|ur}}: {{W-|ur|سکنا|tr=saknā|sc=ur-Arab}} * {{Z|uk}}: {{W-|uk|могти́|impf}}, {{W-|uk|змогти́|pf}}; {{W-|uk|вмі́ти|impf}}, {{W-|uk|умі́ти|impf}}, {{W-|uk|зумі́ти|pf}} * {{Z|vec}}: {{W-|vec|poder}} * {{Z|vi}}: {{W+|vi|có thể}}, {{W+|vi|được}} * {{Z|wa}}: {{W+|wa|poleur}}, {{W+|wa|saveur}}, {{W+|wa|sawè}} * {{Z|cy}}: {{W+|cy|gallu}}, {{W+|cy|medru}} * {{Z|km}}: {{W+|km|បាន|tr=baan}} * {{Z|yi}}: {{W-|yi|קענען}} * {{Z|esu}}: {{W-|esu|-yugnga}} * {{Z|el}}: {{W+|el|μπορώ}}, {{W+|el|δύναμαι}} *: Kevn: {{W-|grc|δύναμαι}} * {{Z|za}}: {{W-|za|maenz}} * {{Z|ase}}: {{W-|ase|S@Sternumhigh-PalmDown-S@Sternumhigh-PalmDown S@Chesthigh-PalmDown-S@Chesthigh-PalmDown}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[şiyan]], [[taqet]], [[hêz]], [[qudret]] #* {{mk|ku|Bi serketinê wî '''karîna''' xwe nîşan da.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W|tr|edebilme}}, {{W|tr|yapabilme}}, {{W|tr|güç}}, {{W|tr|kudret}}, {{W|tr|erk}}, {{W|tr|yapabilme}}, {{W|tr|nüfuz}} {{werger-bin}} {{bend}} === Lêker 2 === {{lêker|ku|c=x-ngh}} # [[girîn]] #: {{mk|ku|Çêla zer ji birsan '''karî'''.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|cry}} * {{Z|tr}}: {{W|tr|ağlamak}} {{werger-bin}} === Çavkanî === {{çavkanî}} sclcjxrjlhfj2g02fxrv5ids6fxqo96 6328745 6328744 2026-08-10T22:54:44Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328745 wikitext text/x-wiki {{bnr-h|Karîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-karîn.wav|dever=Amed}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|karîn|form=gerguhêz|niha=kar|borî=karî}} [[Wêne:Olympic-style weight lifting training.JPG|thumb|Ev kes '''dikarin''' tiştên [[giran]] [[hilgirtin|hilgirin]].]] {{lêker|ku|c=x-gh}}, {{k-ya nerm}} # [[hêz|Hêz]] / [[taqet]] yan [[hinêr]] yan [[derfet]] / [[delîv]] yan [[zanîn]] hebûn bo kirina tiştekî. #: {{hevmane|ku|şiyan}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Tu narê firqetê zanî</br>'''Dikarim''' ez tehemmul kim</br>Diyarê kohê Qendîl im}} # [[qezenc kirin]], [[jê birin]], [[bi ser ketin]]: #: {{mk|ku|Di avjenîyê de min '''karî''' te.}} ==== Notên bikaranînê ==== {{veşêre-ser|Notên bikaranînê}} Lêkerên "karîn/kanîn" (anku "şiyan", "hêz hebûn") û "zanîn" bi hin awayan ji lêkerên din yên kurmancî cuda ditewin. Bo nimûne di dema niha de di hin devokan de pêşqertafa "di-" nakeve pêşiya wan. Loma "ez di-kim, tu di-bêjî, ew di-xwe" lê "ez karim, tu zanî, ew kane" (li cihê "ez dikarim, tu dizanî, ew dikane"). Herwiha neyînîkirina wan ne bi "na-" ya giştî lê bi "ni-" ye: Loma "ez na-kim, tu na-çî, ew na-bêje" lê "ez ni-zanim, tu ni-karî, ew nikane". Herwiha di rewşên din de jî hin cudahî hene. Ji hemû lêkerên din re di raweya şertî de (kondîsyonal yan subjunktîv) bi giştî lêker bi formûlaya "bi- + rehê dema niha + qertafa kesandinê ne": "ez bi-ç-im, tu bi-k-î, ew bi-bêj-e". Ev qaydeya giştî di hin devokan de dîsa li gel lêkerên "karîn/kanîn" û "zanîn" jî li kar e: "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e". Lê di hin devokan de jî ew bi formûlaya "rehê dema niha + -i- + -b- + qertafa kesandinê" tê çêkirin: "ez kar-i-b-im, tu zan-i-bî, ew kan-i-b-e". Di hin devokan de jî îcar ev herdu qayde di heman demê de tên bikaranîn: "ez bi-zan-i-b-im, tu bi-kar-i-bî". Lê ji van awarteyiyan tenê "ni-" ya neyînîkirinê di kurmancî de di hemû devokan de awrte ye. Lê awarteyiyên din tenê di hin devokan de hene. Devokên din qeydeyên giştî bi kar tînin. Loma divê em di mesela "di-" de li gor qaydeya giştî biçin: "ez dikarim" ne "ez karim". Herwiha ji ber ku "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e" li gor qaydeya giştî ne û formên wek "ez zan-i-bim, tu kar-i-bî, ew kan-i-be" yan jî "ez bi-zan-i-bim, tu bi-kar-i-bî, ew bi-kar-i-be" awarte ne, divê em wek "bizanim, bikarî, bikane" tercih bikin. Herwiha ev ''karibû'' bi teşeya raboriya dûr ''karîbû'' hemanî nayê lêvandin. {{veşêre-bin}} ==== Bi alfabeyên din ==== * {{ku-ar|کارین}} * {{ku-kr|карин}} ==== Formên alternatîv ==== * [[kanîn]] * {{hw|ku|kaynîn||kurmanciya Xorasanê}} ==== Jê ==== * [[kara]] ==== Etîmolojî ==== Ji {{ji|hy|ku|-}}{{çp}}, bi ermeniya rojava {{g|hy|կարնալ|tr=arenal/garenal}}, ermeniya rojhilat {{g|hy|կարողանալ|tr=karoġanal}}, têkilî ermeniya kevn {{g|xcl|կարող|tr=karoł|w=[[xurt]], [[bihêz]]}} ji {{g|xcl|կար|tr=kar|w=[[hêz]], [[îmkan]]}}. Di lêkera ermenî de di nava peyvê de hem "r" û hem jî "n" heye loma di hin devokên kurmancî de "karîn" û di hinan de jî "kanîn" e. Di devokên kurmancî yên dûrî ermenî de û di zaravayên din yên kurdî û di zimanên din yên îranî de peyda nabe loma ihtimala ku ji ermenî be gelekî mezin e. Bi hin devokên kurmancî [[şiyan]] e ku [[hevreh]]a [[şiyan]] ([[mimkin]] bûn) ya soranî, [[şayed]] ya ji farisî û [[şikayene, eşkayene, şayene]] ya zazakî ye. Di soranî de [[tiwanîn]] (rehê dema niha "-tiwan-") e ku hevreha {{g|fa|توانستن|tr=tevanesten}} ya farisî ye ku rehê wê yê dema niha "-tevan-" e. Ne têkilî [[can]] (bixwîne: ken yan kan) ya îngilîzî û hevrehên wê yên zimanên cermenî ye ji ber ku eger ew hevreh bûna, "k" ya proto-hindûewropî divê di kurdî de bûbûya "s" û di zimanên cermenî de jî "h". Idiaya [[Şablon:Beghyani|Beghyani]], ku dibêje ji [[kirin]] e, bi ti [[belge]]yan nehatiye [[peyitandin]]. [[Şablon:Hesendost|Hesendost]] bi xeletî li ber peyva "tevanisten" ya farisî nivîsiye: "kirmaşanî: twanîn, karîn, û: karîn, kan, kanî". Di rastiyê de li ber "karîn, -kan-, kanî" diviyabû ku "kurmancî" hatibûya nivîsîn. Bi Kirmaşanî û lekî [[tüenîn]] / [[tüenisin]] e. Peyva ermenî jî ji zimanekî gurcî-zanî wergirtiye<ref>Ačaṙean, Hračʿeay (1973), “կռիւ”, in Hayerēn armatakan baṙaran [Armenian Etymological Dictionary] (in Armenian), volume II, 2nd edition, a reprint of the original 1926–1935 seven-volume edition, Yerevan: University Press, rûpel 671b http://www.nayiri.com/imagedDictionaryBrowser.jsp?dictionaryId=7&printPage=671&volume=2</ref>, ji proto-gurcî-zanî {{q|ccs-gzn-pro|*ḳar-|w=[[bestin]]}}, ji proto-kartvelî ''[[*ḳar-]]'' ku bûye [[lazî]] {{g|lzz|ო-კორ-უ|tr=o-ǩor-u|w=bestin}}, mingrelî {{g|xmf|კჷრ-უ-ა|w=bestin}}, gurcî {{g|ka|კრვა|tr=ḳrva}}<ref>Klimov, G. A. (1998) Etymological Dictionary of the Kartvelian Languages (Trends in linguistics. Documentation; 16), New York, Berlin: Mouton de Gruyter, rûpel 86 https://archive.org/details/KlimovEtymological/Klimov?view=theater#page/n102/mode/1up</ref><ref>Fähnrich, Heinz (2007) Kartwelisches Etymologisches Wörterbuch [Kartvelian Etymological Dictionary] (Handbuch der Orientalistik; VIII.18) (in German), Leiden, Boston: Brill, rûpel 222 https://archive.org/details/Fahnrich_2007/page/n221/mode/1up?view=theater</ref>... Ev dikare bê maneya ku ew peyveke substrat a hevpar e ku ketiye ermenî û hin zaravayên kurdî ji zimanên [[Qefqaz]]î, lê ew ne[[vebirî]] ye. Herwiha bi zimanê [[partî]] hatiye qeydkirin ku lêkera {{q|ku|kirin}} bo diyarkirina [[pêkanî|pêkaniya]] tiştek jî li kar bûye.<ref>Dictionary Of Manichean Middle Persian & Parthian by Durkin-Meisterernst, Desmond, rûpel 206, '''kr-, qr- Pa lkar-1 vtr. "to do, make'. Used as an auxiliary verb following a pp. in the 'potentialis', to indicate a possibility, eg MKG(726i fr'm](r)g kyrd kr'n "if- I could make (her) forgetful"''', https://archive.org/details/DictionaryOfMMP/page/n236/mode/1up?q=could</ref>mînak: "''framereg kird keran''" = (ku min wê) bikariya [[bîroke]] bikim (framereg: [[bîroke]] - ji reha fremûşten/ji bîr kirin / kird: kir - dema bihûrî a sade / keran: bikim - kesê yekjimar ê 1. dema niha a bilanî). Di soranî de jî rrewşa pasîf a lêkera "{{g|ckb|کردن}}" wek hevwateya {{g|ckb|شیان|w=mimkin bûn}} tê bikaranîn (wek "dekirêt rû bidat" = "tê kirin ku rû de" anku [[pêkan]] e ku rû de) an jî "deyekat" = ew wî dike/ew dikare... lê ne wek hevmaneya {{g|ckb|tiwanîn|sc=Latn|w=karîn}}. Anku ne ku di zimanên îranî ên din de peyda nabe, [[nexasma]] di zimanên kurdî de. ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W-|sq|mund}}, {{W+|sq|mundem}} * {{Z|de}}: {{W+|de|können}} *: {{Z|gsw}}: {{W-|gsw|chöne}} * {{Z|an}}: {{W-|an|poder}} * {{Z|rup}}: {{W-|rup|pot}} * Assamese: *: {{Z|as}}: {{W-|as|পাৰা}} *: {{Z|as}}: {{W-|as|পৰা}} * {{Z|ast}}: {{W+|ast|poder}} * {{Z|az}}: {{W+|az|bilmək}}, {{W+|az|bacarmaq}} * {{Z|eu}}: {{W-|eu|ahal izan}} * {{Z|be}}: {{W-|be|магчы́|impf}}, {{W-|be|змагчы́|pf}}; {{W-|be|уме́ць|impf}}, {{W-|be|ўмець|impf}}, {{W-|be|суме́ць|pf}} * {{Z|br}}: {{W-|br|gallout}} * {{Z|bg}}: {{W-|bg|мо́га|impf}}, {{W-|bg|уме́я|impf}} * {{Z|my}}: {{W+|my|နိုင်|sc=Mymr}} * {{Z|cs}}: {{W-|cs|moci}}, {{W-|cs|umět}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|識得|tr=sik1 dak1}} *: {{Z|cmn}}: {{W+|cmn|會|tr=huì}}, {{W+|cmn|能|tr=néng}}, /{{W+|cmn|不了|tr=-buliǎo}}}}, {{W+|cmn|能夠|tr=nénggòu}} *: {{Z|nan}}: {{W+|nan|會得|tr=ē-tit}}, {{W+|nan|會當|tr=ē-tàng}}, {{W-|nan|會凍|tr=ē-tàng}} * {{Z|dlm}}: {{W-|dlm|potar}} * {{Z|da}}: {{W-|da|kunne}} * {{Z|id}}: {{W+|id|boleh}}, {{W+|id|bisa}} * {{Z|ar}}: {{W-|ar|قَدَرَ}}, {{W-|ar|اِسْتَطَاعَ}}, {{W-|ar|أَمْكَنَ}} *: {{Z|arz}}: {{W-|arz|قدر|tr=ʾadar|sc=Arab}} * {{Z|hy}}: {{W+|hy|կարողանալ}}, {{W+|hy|կրնալ}} * {{Z|eo}}: {{W+|eo|povi}} * {{Z|et}}: {{W-|et|osata}}, {{W-|et|võima}} * {{Z|fa}}: {{W-|fa|توانستن|tr=tavânestan}}, {{W-|fa|قادر بودن}} * {{Z|fo}}: {{W+|fo|kunna}} * {{Z|fi}}: {{W+|fi|osata}}, {{W+|fi|voida}}, {{W+|fi|pystyä}} * {{Z|frp}}: {{W-|frp|povêr}}, {{W-|frp|possêr}} * {{Z|fr}}: {{W+|fr|pouvoir}} * {{Z|fur}}: {{W-|fur|podê}} * {{Z|frr}}: {{W-|frr|koone}}, {{W-|frr|kön}}, {{W-|frr|kan}} * {{Z|ofs}}: {{W-|ofs|kunna}} * {{Z|stq}}: {{W-|stq|konne}} * {{Z|gd}}: {{W-|gd|'s urrainn do}}, {{W-|gd|faod}} * {{Z|gl}}: {{W+|gl|poder}} * {{Z|roa-gal}}: {{W-|roa-gal|póeir}} * {{Z|got}}: {{W-|got|𐌼𐌰𐌲𐌰𐌽}}, {{W-|got|𐌺𐌿𐌽𐌽𐌰𐌽}} * {{Z|ka}}: {{W-|ka|შეუძლია}} * {{Z|ht}}: {{W-|ht|ka}}, {{W-|ht|kapab}}, {{W-|ht|kab}} * {{Z|hi}}: {{W-|hi|सकना}}, {{W-|hi|समर्थ होना}} * {{Z|nl}}: {{W+|nl|kunnen}}, {{W+|nl|vermogen}} * {{Z|he}}: {{W+|he|יכול|n|tr=yakhól|cuda=יכול / יָכֹל}}, {{W-|he|מסוגל|n|tr=m'sugál|cuda=מסוגל / מְסֻגָּל}} * {{Z|ang}}: {{W-|ang|magan}}, {{W-|ang|cunnan}} * {{Z|ga}}: {{W-|ga|is féidir le}}, {{W-|ga|tig le}}, {{W-|ga|féad}}, {{W-|ga|bí}} {{W-|ga|in ann}} *: {{Z|sga}}: {{W-|sga|con·icc}} * {{Z|it}}: {{W+|it|potere}}, {{W+|it|riuscire}}, {{W+|it|sapere}} * {{Z|is}}: {{W+|is|geta}} * {{Z|ja}}: {{W+|ja|できる|tr=dekiru|sc=Jpan}}, {{W+|ja|れる|cuda=-れる|tr=-reru|sc=Jpan}}, {{W+|ja|られる|cuda=-られる|tr=-rareru|sc=Jpan}} * {{Z|kn}}: {{W+|kn|ಬಹುದು}} * {{Z|ca}}: {{W-|ca|poder}}, {{W-|ca|poguer}} * {{Z|qu}}: {{W+|qu|atiy}} * {{Z|gil}}: {{W-|gil|kona}} * {{Z|ko}}: {{W-|ko|수|cuda=...을/ᄅ 수 있다|tr=...-l su itda}}, {{W+|ko|eu}} * {{Z|kw}}: {{W-|kw|gallos}} * {{Z|la}}: {{W+|la|possum}}, {{W-|la|queo}}, {{W+|la|scio}} * {{Z|lv}}: {{W+|lv|prast}}, {{W+|lv|spēt}}, {{W+|lv|varēt}} * {{Z|lo}}: {{W-|lo|ໄດ້}} * {{Z|lt}}: {{W+|lt|galėti}} * {{Z|liv}}: {{W-|liv|mȯistõ}}, {{W-|liv|võidõ}} * {{Z|khb}}: {{W-|khb|ᦺᦡᧉ}} * {{Z|lb}}: {{W+|lb|kënnen}} * {{Z|mk}}: {{W-|mk|може}} * {{Z|ml}}: {{W-|ml|കഴിയും}} * {{Z|ms}}: {{W-|ms|dapat}}, {{W-|ms|boleh}}, {{W+|ms|bisa}} * {{Z|mt}}: {{W-|mt|seta'}} * {{Z|gv}}: {{W-|gv|jarg}} * {{Z|hu}}: {{W+|hu|tud}}, {{W+|hu|képes}} * {{Z|mn}}: {{W+|mn|чадах}}, {{W-|mn|ᠴᠢᠳᠠᠬᠤ}} * {{Z|nah}}: {{W-|nah|huelīti}} * {{Z|nap}}: {{W-|nap|putè}} * {{Z|nds}}: {{W-|nds|könen}} * {{Z|no}}: {{W+|no|kunne}} * {{Z|oc}}: {{W-|oc|pòder}}, {{W-|oc|podre}} * {{Z|ppl}}: {{W-|ppl|weli}}, {{W-|ppl|hueli}} * {{Z|pl}}: {{W+|pl|móc}}, {{W+|pl|umieć}}, {{W+|pl|potrafić}} * {{Z|pt}}: {{W+|pt|conseguir}}, {{W+|pt|saber}} * {{Z|rm}}: {{W-|rm|pudair}}, {{W-|rm|puder}}, {{W-|rm|pudeir}} * {{Z|ro}}: {{W+|ro|putea}} * {{Z|ru}}: {{W+|ru|мочь|impf}}, {{W+|ru|смочь|pf}}, {{W-|ru|уме́ть|impf}}, {{W-|ru|быть в состоя́нии}} * {{Z|osx}}: {{W-|osx|kunnan}} * {{Z|sc}}: {{W-|sc|podere}}, {{W-|sc|podi}}, {{W-|sc|podiri}}, {{W-|sc|pori}}, {{W-|sc|porrere}}, {{W-|sc|potere}} * {{Z|scn}}: {{W+|scn|putiri}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|моћи}}, {{W-|sh|умети}}, {{W-|sh|умјети}} *: Latînî: {{W+|sh|moći}}, {{W+|sh|umeti}}, {{W+|sh|umjeti}} * {{Z|syl}}: {{W-|syl|ꠙꠣꠞꠣ}} * {{Z|sk}}: {{W-|sk|môcť}} * {{Z|sl}}: {{W+|sl|moči}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|móc}} * {{Z|es}}: {{W+|es|poder}}, {{W+|es|saber}} * {{Z|sv}}: {{W+|sv|kunna}} * {{Z|zdj}}: {{W-|zdj|djua|cuda=udjua}} * {{Z|ta}}: {{W-|ta|செய்யக்கூடிய}} * {{Z|th}}: {{W+|th|ได้}}, {{W+|th|ย่อม}}, {{W+|th|สามารถ}} * {{Z|otk}}: {{W-|otk|𐰆|ts=u-}} * {{Z|tr}}: {{W+|tr|-ebilmek}}, {{W+|tr|-abilmek}} {{W+|tr|yenmek}} * {{Z|txb}}: {{W-|txb|yāt-}} * {{Z|ur}}: {{W-|ur|سکنا|tr=saknā|sc=ur-Arab}} * {{Z|uk}}: {{W-|uk|могти́|impf}}, {{W-|uk|змогти́|pf}}; {{W-|uk|вмі́ти|impf}}, {{W-|uk|умі́ти|impf}}, {{W-|uk|зумі́ти|pf}} * {{Z|vec}}: {{W-|vec|poder}} * {{Z|vi}}: {{W+|vi|có thể}}, {{W+|vi|được}} * {{Z|wa}}: {{W+|wa|poleur}}, {{W+|wa|saveur}}, {{W+|wa|sawè}} * {{Z|cy}}: {{W+|cy|gallu}}, {{W+|cy|medru}} * {{Z|km}}: {{W+|km|បាន|tr=baan}} * {{Z|yi}}: {{W-|yi|קענען}} * {{Z|esu}}: {{W-|esu|-yugnga}} * {{Z|el}}: {{W+|el|μπορώ}}, {{W+|el|δύναμαι}} *: Kevn: {{W-|grc|δύναμαι}} * {{Z|za}}: {{W-|za|maenz}} * {{Z|ase}}: {{W-|ase|S@Sternumhigh-PalmDown-S@Sternumhigh-PalmDown S@Chesthigh-PalmDown-S@Chesthigh-PalmDown}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[şiyan]], [[taqet]], [[hêz]], [[qudret]] #* {{mk|ku|Bi serketinê wî '''karîna''' xwe nîşan da.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W|tr|edebilme}}, {{W|tr|yapabilme}}, {{W|tr|güç}}, {{W|tr|kudret}}, {{W|tr|erk}}, {{W|tr|yapabilme}}, {{W|tr|nüfuz}} {{werger-bin}} {{bend}} === Lêker 2 === {{lêker|ku|c=x-ngh}} # [[girîn]] #: {{mk|ku|Çêla zer ji birsan '''karî'''.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|cry}} * {{Z|tr}}: {{W|tr|ağlamak}} {{werger-bin}} === Çavkanî === {{çavkanî}} ahdbmg1tt0iwi9kwi5wl55o5dhgb90f 6328746 6328745 2026-08-10T22:55:36Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328746 wikitext text/x-wiki {{bnr-h|Karîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-karîn.wav|dever=Amed}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|karîn|form=gerguhêz|niha=kar|borî=karî}} [[Wêne:Olympic-style weight lifting training.JPG|thumb|Ev kes '''dikarin''' tiştên [[giran]] [[hilgirtin|hilgirin]].]] {{lêker|ku|c=x-gh}}, {{k-ya nerm}} # [[hêz|Hêz]] / [[taqet]] yan [[hinêr]] yan [[derfet]] / [[delîv]] yan [[zanîn]] hebûn bo kirina tiştekî. #: {{hevmane|ku|şiyan}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Tu narê firqetê zanî</br>'''Dikarim''' ez tehemmul kim</br>Diyarê kohê Qendîl im}} # [[qezenc kirin]], [[jê birin]], [[bi ser ketin]]: #: {{mk|ku|Di avjenîyê de min '''karî''' te.}} ==== Notên bikaranînê ==== {{veşêre-ser|Notên bikaranînê}} Lêkerên "karîn/kanîn" (anku "şiyan", "hêz hebûn") û "zanîn" bi hin awayan ji lêkerên din yên kurmancî cuda ditewin. Bo nimûne di dema niha de di hin devokan de pêşqertafa "di-" nakeve pêşiya wan. Loma "ez di-kim, tu di-bêjî, ew di-xwe" lê "ez karim, tu zanî, ew kane" (li cihê "ez dikarim, tu dizanî, ew dikane"). Herwiha neyînîkirina wan ne bi "na-" ya giştî lê bi "ni-" ye: Loma "ez na-kim, tu na-çî, ew na-bêje" lê "ez ni-zanim, tu ni-karî, ew nikane". Herwiha di rewşên din de jî hin cudahî hene. Ji hemû lêkerên din re di raweya şertî de (kondîsyonal yan subjunktîv) bi giştî lêker bi formûlaya "bi- + rehê dema niha + qertafa kesandinê ne": "ez bi-ç-im, tu bi-k-î, ew bi-bêj-e". Ev qaydeya giştî di hin devokan de dîsa li gel lêkerên "karîn/kanîn" û "zanîn" jî li kar e: "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e". Lê di hin devokan de jî ew bi formûlaya "rehê dema niha + -i- + -b- + qertafa kesandinê" tê çêkirin: "ez kar-i-b-im, tu zan-i-bî, ew kan-i-b-e". Di hin devokan de jî îcar ev herdu qayde di heman demê de tên bikaranîn: "ez bi-zan-i-b-im, tu bi-kar-i-bî". Lê ji van awarteyiyan tenê "ni-" ya neyînîkirinê di kurmancî de di hemû devokan de awrte ye. Lê awarteyiyên din tenê di hin devokan de hene. Devokên din qeydeyên giştî bi kar tînin. Loma divê em di mesela "di-" de li gor qaydeya giştî biçin: "ez dikarim" ne "ez karim". Herwiha ji ber ku "ez bi-zan-im, tu bi-kar-î, ew bi-kan-e" li gor qaydeya giştî ne û formên wek "ez zan-i-bim, tu kar-i-bî, ew kan-i-be" yan jî "ez bi-zan-i-bim, tu bi-kar-i-bî, ew bi-kar-i-be" awarte ne, divê em wek "bizanim, bikarî, bikane" tercih bikin. Herwiha ev ''karibû'' bi teşeya raboriya dûr ''karîbû'' hemanî nayê lêvandin. {{veşêre-bin}} ==== Bi alfabeyên din ==== * {{ku-ar|کارین}} * {{ku-kr|карин}} ==== Formên alternatîv ==== * [[kanîn]] * {{hw|ku|kaynîn||kurmanciya Xorasanê}} ==== Jê ==== * [[kara]] ==== Etîmolojî ==== Ji {{ji|hy|ku|-}}{{çp}}, bi ermeniya rojava {{g|hy|կարնալ|tr=arenal/garenal}}, ermeniya rojhilat {{g|hy|կարողանալ|tr=karoġanal}}, têkilî ermeniya kevn {{g|xcl|կարող|tr=karoł|w=[[xurt]], [[bihêz]]}} ji {{g|xcl|կար|tr=kar|w=[[hêz]], [[îmkan]]}}. {{veşêre-ser}} Di lêkera ermenî de di nava peyvê de hem "r" û hem jî "n" heye loma di hin devokên kurmancî de "karîn" û di hinan de jî "kanîn" e. Di devokên kurmancî yên dûrî ermenî de û di zaravayên din yên kurdî û di zimanên din yên îranî de peyda nabe loma ihtimala ku ji ermenî be gelekî mezin e. Bi hin devokên kurmancî [[şiyan]] e ku [[hevreh]]a [[şiyan]] ([[mimkin]] bûn) ya soranî, [[şayed]] ya ji farisî û [[şikayene, eşkayene, şayene]] ya zazakî ye. Di soranî de [[tiwanîn]] (rehê dema niha "-tiwan-") e ku hevreha {{g|fa|توانستن|tr=tevanesten}} ya farisî ye ku rehê wê yê dema niha "-tevan-" e. Ne têkilî [[can]] (bixwîne: ken yan kan) ya îngilîzî û hevrehên wê yên zimanên cermenî ye ji ber ku eger ew hevreh bûna, "k" ya proto-hindûewropî divê di kurdî de bûbûya "s" û di zimanên cermenî de jî "h". Idiaya [[Şablon:Beghyani|Beghyani]], ku dibêje ji [[kirin]] e, bi ti [[belge]]yan nehatiye [[peyitandin]]. [[Şablon:Hesendost|Hesendost]] bi xeletî li ber peyva "tevanisten" ya farisî nivîsiye: "kirmaşanî: twanîn, karîn, û: karîn, kan, kanî". Di rastiyê de li ber "karîn, -kan-, kanî" diviyabû ku "kurmancî" hatibûya nivîsîn. Bi Kirmaşanî û lekî [[tüenîn]] / [[tüenisin]] e. Peyva ermenî jî ji zimanekî gurcî-zanî wergirtiye<ref>Ačaṙean, Hračʿeay (1973), “կռիւ”, in Hayerēn armatakan baṙaran [Armenian Etymological Dictionary] (in Armenian), volume II, 2nd edition, a reprint of the original 1926–1935 seven-volume edition, Yerevan: University Press, rûpel 671b http://www.nayiri.com/imagedDictionaryBrowser.jsp?dictionaryId=7&printPage=671&volume=2</ref>, ji proto-gurcî-zanî {{q|ccs-gzn-pro|*ḳar-|w=[[bestin]]}}, ji proto-kartvelî ''[[*ḳar-]]'' ku bûye [[lazî]] {{g|lzz|ო-კორ-უ|tr=o-ǩor-u|w=bestin}}, mingrelî {{g|xmf|კჷრ-უ-ა|w=bestin}}, gurcî {{g|ka|კრვა|tr=ḳrva}}<ref>Klimov, G. A. (1998) Etymological Dictionary of the Kartvelian Languages (Trends in linguistics. Documentation; 16), New York, Berlin: Mouton de Gruyter, rûpel 86 https://archive.org/details/KlimovEtymological/Klimov?view=theater#page/n102/mode/1up</ref><ref>Fähnrich, Heinz (2007) Kartwelisches Etymologisches Wörterbuch [Kartvelian Etymological Dictionary] (Handbuch der Orientalistik; VIII.18) (in German), Leiden, Boston: Brill, rûpel 222 https://archive.org/details/Fahnrich_2007/page/n221/mode/1up?view=theater</ref>... Ev dikare bê maneya ku ew peyveke substrat a hevpar e ku ketiye ermenî û hin zaravayên kurdî ji zimanên [[Qefqaz]]î, lê ew ne[[vebirî]] ye. Herwiha bi zimanê [[partî]] hatiye qeydkirin ku lêkera {{q|ku|kirin}} bo diyarkirina [[pêkanî|pêkaniya]] tiştek jî li kar bûye.<ref>Dictionary Of Manichean Middle Persian & Parthian by Durkin-Meisterernst, Desmond, rûpel 206, '''kr-, qr- Pa lkar-1 vtr. "to do, make'. Used as an auxiliary verb following a pp. in the 'potentialis', to indicate a possibility, eg MKG(726i fr'm](r)g kyrd kr'n "if- I could make (her) forgetful"''', https://archive.org/details/DictionaryOfMMP/page/n236/mode/1up?q=could</ref>mînak: "''framereg kird keran''" = (ku min wê) bikariya [[bîroke]] bikim (framereg: [[bîroke]] - ji reha fremûşten/ji bîr kirin / kird: kir - dema bihûrî a sade / keran: bikim - kesê yekjimar ê 1. dema niha a bilanî). Di soranî de jî rrewşa pasîf a lêkera "{{g|ckb|کردن}}" wek hevwateya {{g|ckb|شیان|w=mimkin bûn}} tê bikaranîn (wek "dekirêt rû bidat" = "tê kirin ku rû de" anku [[pêkan]] e ku rû de) an jî "deyekat" = ew wî dike/ew dikare... lê ne wek hevmaneya {{g|ckb|tiwanîn|sc=Latn|w=karîn}}. Anku ne ku di zimanên îranî ên din de peyda nabe, [[nexasma]] di zimanên kurdî de. {{veşêre-bin}} ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W-|sq|mund}}, {{W+|sq|mundem}} * {{Z|de}}: {{W+|de|können}} *: {{Z|gsw}}: {{W-|gsw|chöne}} * {{Z|an}}: {{W-|an|poder}} * {{Z|rup}}: {{W-|rup|pot}} * Assamese: *: {{Z|as}}: {{W-|as|পাৰা}} *: {{Z|as}}: {{W-|as|পৰা}} * {{Z|ast}}: {{W+|ast|poder}} * {{Z|az}}: {{W+|az|bilmək}}, {{W+|az|bacarmaq}} * {{Z|eu}}: {{W-|eu|ahal izan}} * {{Z|be}}: {{W-|be|магчы́|impf}}, {{W-|be|змагчы́|pf}}; {{W-|be|уме́ць|impf}}, {{W-|be|ўмець|impf}}, {{W-|be|суме́ць|pf}} * {{Z|br}}: {{W-|br|gallout}} * {{Z|bg}}: {{W-|bg|мо́га|impf}}, {{W-|bg|уме́я|impf}} * {{Z|my}}: {{W+|my|နိုင်|sc=Mymr}} * {{Z|cs}}: {{W-|cs|moci}}, {{W-|cs|umět}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|識得|tr=sik1 dak1}} *: {{Z|cmn}}: {{W+|cmn|會|tr=huì}}, {{W+|cmn|能|tr=néng}}, /{{W+|cmn|不了|tr=-buliǎo}}}}, {{W+|cmn|能夠|tr=nénggòu}} *: {{Z|nan}}: {{W+|nan|會得|tr=ē-tit}}, {{W+|nan|會當|tr=ē-tàng}}, {{W-|nan|會凍|tr=ē-tàng}} * {{Z|dlm}}: {{W-|dlm|potar}} * {{Z|da}}: {{W-|da|kunne}} * {{Z|id}}: {{W+|id|boleh}}, {{W+|id|bisa}} * {{Z|ar}}: {{W-|ar|قَدَرَ}}, {{W-|ar|اِسْتَطَاعَ}}, {{W-|ar|أَمْكَنَ}} *: {{Z|arz}}: {{W-|arz|قدر|tr=ʾadar|sc=Arab}} * {{Z|hy}}: {{W+|hy|կարողանալ}}, {{W+|hy|կրնալ}} * {{Z|eo}}: {{W+|eo|povi}} * {{Z|et}}: {{W-|et|osata}}, {{W-|et|võima}} * {{Z|fa}}: {{W-|fa|توانستن|tr=tavânestan}}, {{W-|fa|قادر بودن}} * {{Z|fo}}: {{W+|fo|kunna}} * {{Z|fi}}: {{W+|fi|osata}}, {{W+|fi|voida}}, {{W+|fi|pystyä}} * {{Z|frp}}: {{W-|frp|povêr}}, {{W-|frp|possêr}} * {{Z|fr}}: {{W+|fr|pouvoir}} * {{Z|fur}}: {{W-|fur|podê}} * {{Z|frr}}: {{W-|frr|koone}}, {{W-|frr|kön}}, {{W-|frr|kan}} * {{Z|ofs}}: {{W-|ofs|kunna}} * {{Z|stq}}: {{W-|stq|konne}} * {{Z|gd}}: {{W-|gd|'s urrainn do}}, {{W-|gd|faod}} * {{Z|gl}}: {{W+|gl|poder}} * {{Z|roa-gal}}: {{W-|roa-gal|póeir}} * {{Z|got}}: {{W-|got|𐌼𐌰𐌲𐌰𐌽}}, {{W-|got|𐌺𐌿𐌽𐌽𐌰𐌽}} * {{Z|ka}}: {{W-|ka|შეუძლია}} * {{Z|ht}}: {{W-|ht|ka}}, {{W-|ht|kapab}}, {{W-|ht|kab}} * {{Z|hi}}: {{W-|hi|सकना}}, {{W-|hi|समर्थ होना}} * {{Z|nl}}: {{W+|nl|kunnen}}, {{W+|nl|vermogen}} * {{Z|he}}: {{W+|he|יכול|n|tr=yakhól|cuda=יכול / יָכֹל}}, {{W-|he|מסוגל|n|tr=m'sugál|cuda=מסוגל / מְסֻגָּל}} * {{Z|ang}}: {{W-|ang|magan}}, {{W-|ang|cunnan}} * {{Z|ga}}: {{W-|ga|is féidir le}}, {{W-|ga|tig le}}, {{W-|ga|féad}}, {{W-|ga|bí}} {{W-|ga|in ann}} *: {{Z|sga}}: {{W-|sga|con·icc}} * {{Z|it}}: {{W+|it|potere}}, {{W+|it|riuscire}}, {{W+|it|sapere}} * {{Z|is}}: {{W+|is|geta}} * {{Z|ja}}: {{W+|ja|できる|tr=dekiru|sc=Jpan}}, {{W+|ja|れる|cuda=-れる|tr=-reru|sc=Jpan}}, {{W+|ja|られる|cuda=-られる|tr=-rareru|sc=Jpan}} * {{Z|kn}}: {{W+|kn|ಬಹುದು}} * {{Z|ca}}: {{W-|ca|poder}}, {{W-|ca|poguer}} * {{Z|qu}}: {{W+|qu|atiy}} * {{Z|gil}}: {{W-|gil|kona}} * {{Z|ko}}: {{W-|ko|수|cuda=...을/ᄅ 수 있다|tr=...-l su itda}}, {{W+|ko|eu}} * {{Z|kw}}: {{W-|kw|gallos}} * {{Z|la}}: {{W+|la|possum}}, {{W-|la|queo}}, {{W+|la|scio}} * {{Z|lv}}: {{W+|lv|prast}}, {{W+|lv|spēt}}, {{W+|lv|varēt}} * {{Z|lo}}: {{W-|lo|ໄດ້}} * {{Z|lt}}: {{W+|lt|galėti}} * {{Z|liv}}: {{W-|liv|mȯistõ}}, {{W-|liv|võidõ}} * {{Z|khb}}: {{W-|khb|ᦺᦡᧉ}} * {{Z|lb}}: {{W+|lb|kënnen}} * {{Z|mk}}: {{W-|mk|може}} * {{Z|ml}}: {{W-|ml|കഴിയും}} * {{Z|ms}}: {{W-|ms|dapat}}, {{W-|ms|boleh}}, {{W+|ms|bisa}} * {{Z|mt}}: {{W-|mt|seta'}} * {{Z|gv}}: {{W-|gv|jarg}} * {{Z|hu}}: {{W+|hu|tud}}, {{W+|hu|képes}} * {{Z|mn}}: {{W+|mn|чадах}}, {{W-|mn|ᠴᠢᠳᠠᠬᠤ}} * {{Z|nah}}: {{W-|nah|huelīti}} * {{Z|nap}}: {{W-|nap|putè}} * {{Z|nds}}: {{W-|nds|könen}} * {{Z|no}}: {{W+|no|kunne}} * {{Z|oc}}: {{W-|oc|pòder}}, {{W-|oc|podre}} * {{Z|ppl}}: {{W-|ppl|weli}}, {{W-|ppl|hueli}} * {{Z|pl}}: {{W+|pl|móc}}, {{W+|pl|umieć}}, {{W+|pl|potrafić}} * {{Z|pt}}: {{W+|pt|conseguir}}, {{W+|pt|saber}} * {{Z|rm}}: {{W-|rm|pudair}}, {{W-|rm|puder}}, {{W-|rm|pudeir}} * {{Z|ro}}: {{W+|ro|putea}} * {{Z|ru}}: {{W+|ru|мочь|impf}}, {{W+|ru|смочь|pf}}, {{W-|ru|уме́ть|impf}}, {{W-|ru|быть в состоя́нии}} * {{Z|osx}}: {{W-|osx|kunnan}} * {{Z|sc}}: {{W-|sc|podere}}, {{W-|sc|podi}}, {{W-|sc|podiri}}, {{W-|sc|pori}}, {{W-|sc|porrere}}, {{W-|sc|potere}} * {{Z|scn}}: {{W+|scn|putiri}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|моћи}}, {{W-|sh|умети}}, {{W-|sh|умјети}} *: Latînî: {{W+|sh|moći}}, {{W+|sh|umeti}}, {{W+|sh|umjeti}} * {{Z|syl}}: {{W-|syl|ꠙꠣꠞꠣ}} * {{Z|sk}}: {{W-|sk|môcť}} * {{Z|sl}}: {{W+|sl|moči}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|móc}} * {{Z|es}}: {{W+|es|poder}}, {{W+|es|saber}} * {{Z|sv}}: {{W+|sv|kunna}} * {{Z|zdj}}: {{W-|zdj|djua|cuda=udjua}} * {{Z|ta}}: {{W-|ta|செய்யக்கூடிய}} * {{Z|th}}: {{W+|th|ได้}}, {{W+|th|ย่อม}}, {{W+|th|สามารถ}} * {{Z|otk}}: {{W-|otk|𐰆|ts=u-}} * {{Z|tr}}: {{W+|tr|-ebilmek}}, {{W+|tr|-abilmek}} {{W+|tr|yenmek}} * {{Z|txb}}: {{W-|txb|yāt-}} * {{Z|ur}}: {{W-|ur|سکنا|tr=saknā|sc=ur-Arab}} * {{Z|uk}}: {{W-|uk|могти́|impf}}, {{W-|uk|змогти́|pf}}; {{W-|uk|вмі́ти|impf}}, {{W-|uk|умі́ти|impf}}, {{W-|uk|зумі́ти|pf}} * {{Z|vec}}: {{W-|vec|poder}} * {{Z|vi}}: {{W+|vi|có thể}}, {{W+|vi|được}} * {{Z|wa}}: {{W+|wa|poleur}}, {{W+|wa|saveur}}, {{W+|wa|sawè}} * {{Z|cy}}: {{W+|cy|gallu}}, {{W+|cy|medru}} * {{Z|km}}: {{W+|km|បាន|tr=baan}} * {{Z|yi}}: {{W-|yi|קענען}} * {{Z|esu}}: {{W-|esu|-yugnga}} * {{Z|el}}: {{W+|el|μπορώ}}, {{W+|el|δύναμαι}} *: Kevn: {{W-|grc|δύναμαι}} * {{Z|za}}: {{W-|za|maenz}} * {{Z|ase}}: {{W-|ase|S@Sternumhigh-PalmDown-S@Sternumhigh-PalmDown S@Chesthigh-PalmDown-S@Chesthigh-PalmDown}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[şiyan]], [[taqet]], [[hêz]], [[qudret]] #* {{mk|ku|Bi serketinê wî '''karîna''' xwe nîşan da.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W|tr|edebilme}}, {{W|tr|yapabilme}}, {{W|tr|güç}}, {{W|tr|kudret}}, {{W|tr|erk}}, {{W|tr|yapabilme}}, {{W|tr|nüfuz}} {{werger-bin}} {{bend}} === Lêker 2 === {{lêker|ku|c=x-ngh}} # [[girîn]] #: {{mk|ku|Çêla zer ji birsan '''karî'''.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|cry}} * {{Z|tr}}: {{W|tr|ağlamak}} {{werger-bin}} === Çavkanî === {{çavkanî}} aieqqxr64wsjes1spom7wmdqo9jam8p evd 0 4048 6328758 6292912 2026-08-10T23:55:46Z M Ali Kara 10150 /* Navdêr */ 6328758 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * [[']]evd * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-evd.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # [[benî]], [[kole]], kesa/ê [[neçar]] e hemî jiyana xwe [[belaş]] bo kesek din [[xebitîn|dixebite]] ango [[kar]] dike #* {{bêmînak|ku}} # kesa/ê ku [[maf]] nîne bi xwe [[biryar]]an li ser karên xwe bide #* {{bêmînak|ku}} # kesa/ê [[binemrî]] [[xweda|Xwedê]] yan [[xweda]]yan #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌ڤد}} ==== Formên alternatîv ==== {{kol3|ku |'abd |ebd |'ebd |'evd }} ==== Dijmane ==== {{kol3|ku |azad |serbest }} ==== Bide ber ==== {{kol3|ku |[[xulam]], [[noker]], [[bindest]], [[benî]], [[girtî]], [[dîl]], [[zindanî]] |[[rizgar]], [[serbest]], [[serbixwe]], [[xweser]], [[berdayî]] }} ==== Jê ==== {{kol3|ku|cure=Jê |kirin evd<q:lêker> |evdbûn<q:navdêr> |Evdal |Evdile |evdî |evdîtî }} ==== Etîmolojî ==== Ji {{ji|ar|ku|عبد}} ('ebd), [[hevreh]]a aramî [[ܥܒܕܐ]] / [[עבדא]] ('ebda), erebiya başûrî ya kevirî [[𐩲𐩨𐩵]] ('bd), îbrî [[עבד]] (êved). Ji heman rehî: [[abid]], [[abide]], [[ibadet]], [[ibadetullah]], [[me'bûd]], [[me'bed]], [[ubûdiyet]]... ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Diener}} {{n}} * {{Z|fa}}: {{W|fa|عبد}}, {{W|fa|بنده}}, {{W|fa|غلام بنده}} * {{Z|en}}: {{W|en|slave}} * {{Z|tr}}: {{W|tr|kul}} {{werger-bin}} lgvhfmr54kgz9ir9wp5mrzrs5ipi5b3 6328763 6328758 2026-08-11T00:12:40Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6328763 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{g|ku|'}}evd * {{ku-IPA|'evd}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-evd.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesê [[neçar]] e [[hemî|hemî]] [[jiyan|jiyana]] xwe [[belaş]] bo kesek din [[xebitîn|dixebite]]. #: {{hevmane|ku|benî|kole}} #* {{bêmînak|ku}} # Kesê ku [[maf]] nîne bi xwe [[biryar]]an li ser karên xwe bide. #* {{bêmînak|ku}} # Kesê [[binemrî]] [[xweda|Xwedê]] yan [[xweda]]yan. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌ڤد}} ==== Formên alternatîv ==== {{kol3|ku |'abd |ebd |'ebd |'evd }} ==== Dijmane ==== {{kol3|ku |azad |serbest }} ==== Bide ber ==== {{kol3|ku |[[xulam]], [[noker]], [[bindest]], [[benî]], [[girtî]], [[dîl]], [[zindanî]] |[[rizgar]], [[serbest]], [[serbixwe]], [[xweser]], [[berdayî]] }} ==== Jê ==== {{kol3|ku|cure=Jê |kirin evd<q:lêker> |evdbûn<q:navdêr> |Evdal |Evdile |evdî |evdîtî }} ==== Etîmolojî ==== Ji {{ji|ar|ku|عبد}} ('ebd), hevreha {{hv|arc|ܥܒܕܐ}} / [[עבדא]] ('ebda), erebiya başûrî ya kevirî [[𐩲𐩨𐩵]] ('bd), {{hv|he|עבד}} (êved). Ji heman rehî: [[abid]], [[abide]], [[ibadet]], [[ibadetullah]], [[me'bûd]], [[me'bed]], [[ubûdiyet]]... ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Diener}} {{n}} * {{Z|fa}}: {{W|fa|عبد}}, {{W|fa|بنده}}, {{W|fa|غلام بنده}} * {{Z|en}}: {{W|en|slave}} * {{Z|tr}}: {{W|tr|kul}} {{werger-bin}} rwuarxzrgj279xoasijj893wtvc4vwg 6328843 6328763 2026-08-11T00:41:29Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328843 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{g|ku|'}}evd * {{ku-IPA|'evd}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-evd.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesê [[neçar]] e [[hemî|hemî]] [[jiyan|jiyana]] xwe [[belaş]] bo kesek din [[xebitîn|dixebite]]. #: {{hevmane|ku|benî|kole}} #* {{bêmînak|ku}} # Kesê ku [[maf]] nîne bi xwe [[biryar]]an li ser karên xwe bide. #* {{bêmînak|ku}} # Kesê [[binemrî]] [[xweda|Xwedê]] yan [[xweda]]yan. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌ڤد}} ==== Formên alternatîv ==== {{kol3|ku |'abd |ebd |'ebd |'evd }} ==== Dijmane ==== {{kol3|ku |azad |serbest }} ==== Jê ==== {{kol3|ku|cure=Jê |kirin evd<q:lêker> |evdbûn<q:navdêr> |Evdal |Evdile |evdî |evdîtî }} ==== Etîmolojî ==== Ji {{ji|ar|ku|عبد}} ('ebd), hevreha {{hv|arc|ܥܒܕܐ}} / [[עבדא]] ('ebda), erebiya başûrî ya kevirî [[𐩲𐩨𐩵]] ('bd), {{hv|he|עבד}} (êved). Ji heman rehî: [[abid]], [[abide]], [[ibadet]], [[ibadetullah]], [[me'bûd]], [[me'bed]], [[ubûdiyet]]... ==== Bide ber ==== {{kol3|ku |[[xulam]], [[noker]], [[bindest]], [[benî]], [[girtî]], [[dîl]], [[zindanî]] |[[rizgar]], [[serbest]], [[serbixwe]], [[xweser]], [[berdayî]] }} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Diener}} {{n}} * {{Z|fa}}: {{W|fa|عبد}}, {{W|fa|بنده}}, {{W|fa|غلام بنده}} * {{Z|en}}: {{W|en|slave}} * {{Z|tr}}: {{W|tr|kul}} {{werger-bin}} ai2nurq6nrsjn081tpuwtvpxgwje73h 6328856 6328843 2026-08-11T01:12:10Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328856 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{g|ku|'}}evd * {{ku-IPA|'evd}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-evd.wav|dever=Wan}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesê [[neçar]] e [[hemî]] [[jiyan]]a xwe [[belaş]] bo kesek din [[xebitîn|dixebite]]. #: {{hevmane|ku|benî|kole}} #* {{bêmînak|ku}} # Kesê ku [[maf]] nîne bi xwe [[biryar]]an li ser karên xwe bide. #* {{bêmînak|ku}} # Kesê [[binemrî]] [[xweda|Xwedê]] yan [[xweda]]yan. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌ڤد}} ==== Formên alternatîv ==== {{kol3|ku |'abd |ebd |'ebd |'evd }} ==== Dijmane ==== {{kol3|ku |azad |serbest }} ==== Jê ==== {{kol3|ku|cure=Jê |kirin evd<q:lêker> |evdbûn<q:navdêr> |Evdal |Evdile |evdî |evdîtî }} ==== Etîmolojî ==== Ji {{ji|ar|ku|عبد}} ('ebd), hevreha {{hv|arc|ܥܒܕܐ}} / [[עבדא]] ('ebda), erebiya başûrî ya kevirî [[𐩲𐩨𐩵]] ('bd), {{hv|he|עבד}} (êved). Ji heman rehî: [[abid]], [[abide]], [[ibadet]], [[ibadetullah]], [[me'bûd]], [[me'bed]], [[ubûdiyet]]... ==== Bide ber ==== {{kol3|ku |[[xulam]], [[noker]], [[bindest]], [[benî]], [[girtî]], [[dîl]], [[zindanî]] |[[rizgar]], [[serbest]], [[serbixwe]], [[xweser]], [[berdayî]] }} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Diener}} {{n}} * {{Z|fa}}: {{W|fa|عبد}}, {{W|fa|بنده}}, {{W|fa|غلام بنده}} * {{Z|en}}: {{W|en|slave}} * {{Z|tr}}: {{W|tr|kul}} {{werger-bin}} ak8wufol79n3abb2mgidp5ntsk5kwae bizin 0 5362 6328821 6301948 2026-08-11T00:29:12Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328821 wikitext text/x-wiki {{bnr-h|bizîn|bîzin}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/bɪ'zɪn/}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-bizin.wav|dever=Amed}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bizin.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Domestic goat kid in capeweed.jpg|thumb|300px|Bizinek]] {{navdêr|ku|z=m}} # {{f|ku|guhandar}} [[heywan|Heywan]]eke [[kedî]] ya [[guhandar]] û [[têr-mû]] ye. #* {{jêder-malper|ku|jêgirtin=Di nav kerîyê pez de '''bizineke''' nebixêr, nesitirî, ziyankar û çilek hebû, wexta kerî nêzî zevîyekî biçûya '''bizina''' ziyankar Kolê berê xwe dida zeviyê zerar didayê.|sernav=Remo û Bizina çilek|sal=2012|url=https://demacirok.wordpress.com/2012/11/08/remo-u-bizina-cilek/|malper=demacirok.wordpress.com}} #* {{jêder-kovar|ku|jêgirtin='''Bizina''' pîrê çu çolê<br>Lê da berf û bagerê<br>Piriq derket ji malê<br>He! he!...|kovar=Hawar |sernav=Bizina Pîrê |nivîskar= Herekol Azîzan |weşanxane=Nûdem|hejmar=8|sal=1932-1933|rûpel=3|cîld=1}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|بزن}} * {{ku-kr|бьзьн}} ==== Formên alternatîv ==== * [[bizn]] ==== Navê zanistî ==== * ''[[Capra hircus]]'' ==== Jê ==== * [[bizinkûvî]] * [[bizinmişk]] ==== Têkildar ==== {{stûn| * [[nêrî]] * [[karik]] * [[gîsk]] * [[kerî]] * [[kewal]] * [[sewal]] * [[terş]] * [[tewal]] * [[tiştîr]] / [[tiştûr]] }} ==== Etîmolojî ==== Hevreh soranî {{g|ckb|بزن|tr=bizin, bizn}}, kurdiya başûrî {{q|sdh|bizin|sc=Latn}}, lekî {{q|lki|bizin|sc=Latn}} û {{q|lki|biz|sc=Latn}}, zazakî {{q|zza|bize}}, hewramî {{q|hac|بزه‌|tr=bize}}, belûçî {{g|bal|بز‎|tr=buz}}, farisî {{g|fa|بز}} (berê "buz", niha "boz"), tacikî {{g|tg|буз|tr=buz}}, pertî ''wiz'', pêştûyî {{g|pa|وز‎|tr=wiz}}, pehlewî {{g|pal|𐮱𐮵𐮿‎|tr=bûz}}, avestayî {{g|ae|𐬠𐬏𐬰𐬀‎|tr=būze|w=[[beran]], ?[[nêrî]]}}, ermenî {{g|hy|բուծ|tr=bûç|w=[[karik]]}}, sanskrîtî {{g|sa|बुक्क|tr=bukke|w=[[nêrî]]}}, îngilîziya kevn {{q|agn|buc}} / {{q|ang|bucca|w=[[nêrî]]}}, îngilîziya nû {{q|en|buck|w=heywanê nêr}}, almanî {{q|de|Bock|w=[[nêrî]], heywanê nêr}}, holendî {{q|nl|bok|w=[[nêrî]]}}, swêdî {{q|sv|bock|w=[[nêrî]]}}, danmarkî {{q|da|buk}}, norwecî {{q|no|bukk}}... hemû ji {{ji|ine-pro|ku|*bʰuǵ-}}. Peyva îranî wek {{g|xcl|բզաք|tr=bzakʿ}} ketibû ermeniya kevn. {{q|ku|-in}} ya dawiya peyva ''bizin'' [[paşgir]]eke kevnar e ku peyvan dike [[mê]] û belkî [[hevreh]]a paşgira çalak ya almanî {{q|ku|-in}} û ya ne-çalak ya îngilîzî {{q|en|-en}} be. Binêre {{q|ku|nogin}} û dibe ku herwiha {{q|ku|kîr kujin}}. ;{{biçûk|Çavkanî: * {{Rastorgujeva|r=191-192}} * {{Horn|r=49}} * {{Watkins|r=13}} * {{Etymonline}} * {{Pokorny|r=161}} }} ==== Bide ber ==== * [[mih]], [[mî]] ==== Zayend ==== {{agadarî}} ''Bizin'' bi maneya heywana kedî ya mê peyvek zayendmê ye: ''bizina me, bizineke spî''... Lê ew herwiha wek peyvek zayendnêr jî tê bikaranîn: ''Biz(i)nê me li çolê diçere.'' Li vê derê ew bi maneya [[terş]] e anku hem bizin û hem jî [[nêrî]]. ==== Cûnên bizin û mihan ==== * [[hoş]], [[poş]]: bizna têkde reş û guhboz. * [[hemis]], [[himbis]]: bizna reşa navçav û alekên wê gîxên spî yan sorekî vekirî pêde hatîn û binzik û dehmen spî yan sor. * [[hemdanî]]: cûnekî pezî ye: cûnê pezekî guhdirêj û guhpan û hirîkurt û dûngşor e. * [[çûr]], [[çûr]]: cûne bizneka hûr û têrşîr û mûxelek e, mûyê wê merez e, şel û şepik jê diêne çêkirin. * [[çal]]: bizna hemû leşê wê reş, tenê enîya wê pinîyeka spî lê.. * [[kerîs]], [[kurrîs]]: miha guhên wê qut û kurtik. * [[kewîs]], [[kewîsar]], [[kewîser]]: miha leşê wê spî û navçav zîwanî pinîyên reş yan sor lê û guhên wê boz. Gelek cûn jê hene * [[riser]]: miha rengê navçavan di navbera reş û qehweyî de yan bi ser reşekî xwelîkî ve.. * [[tebeş]]: Miha navçav û ser û guh pêk ve reng xwelîkî. ;{{biçûk|Çavkanî: * Îsmaîl Şahîn di {{kzk}} de, 12/2012 }} ==== Gotinên pêşiyan ==== {{stûn| * Berû da bizinê, dest avête qarçikê * Bizin bizin e, pêşî cihê xwe pêkol dike, dû re mexel tê * Bizin firot bi hefta, bezê wê kirî bi heyşta * Bizin ketiye derdê serê xwe, şivan ketiye derdê bezê bizinê * Bizin mir, girr damirî * Bizina kol elimiye [[danok]]an * Bizina kol hîn bûye [[danî|daniyên]] sor * Bizina kulek û şivanê [[bezek]] (sivik) tev digehên ber derî * Bizina nehletî, dev lêketî * Bizina reş e, her roj nexweş e * Bizina gurî, ber dêwir tiqurrî * Bizinê ji mihê ra got; min ewa te dît * Bizinê kulek tim ê çilek e * Bi vî devî bi vê qûnê, here diziya bizinê * Dinê li dinê, çavê gur li bizinê * Ecela bizinê ku tê, nanê şivanî dixwe * Ga guherande bizinê, bizin jî guherande mirîşkê * Here diziya bizinê * Kara li şûnê, bizinê li mexelê * Meha adarê, av firî serê darê, bizin kalî ser karê, nîşanên biharê * Mî bi piyê xwe, bizin bi piyê xwe * Mî bi nigên xwe, bizin bi nigên xwe * Pişta bizinê xurî, hat nanê şivên bixwe * Şêwra jinan, beriya bizinan * Şorê mîna tira Bizina ye * Wek berxa ber bizinê * Wek bizina ku ji ber ecela xwe bireve }} ==== Werger ==== {{werger-ser}} * {{Z|ab}}: {{W-|ab|аџьма|sc=Cyrl}}, {{W-|ab|аџьмаб|sc=Cyrl}} * {{Z|ace}}: {{W-|ace|kamèng}} * {{Z|ady}}: {{W-|ady|пчэны}} * {{Z|af}}: {{W+|af|bok}} * {{Z|xag}}: {{W-|xag|𐕛𐔴𐔾}} * {{Z|akk}}: {{W-|akk|𒍚|tr=enzu|sc=Xsux}} * {{Z|ak}}: {{W-|ak|abirekyie}} * {{Z|sq}}: {{W+|sq|dhi|m}}, {{W+|sq|berk|n}} * {{Z|de}}: {{W+|de|Ziege|m}}, {{W+|de|Geiß|m}}, {{W+|de|Bock|n}} *: {{Z|gsw}}: {{W-|gsw|Geiss|m}} *: {{Z|bar}}: {{W-|bar|Goaß|m}} *: {{Z|gmh}}: {{W-|gmh|geiz|m}}, {{W-|gmh|zige|m}} *: {{Z|goh}}: {{W-|goh|geiz|m}}, {{W-|goh|ziga|m}} * {{Z|am}}: {{W+|am|ፍየል|sc=Ethi}} * {{Z|amu}}: {{W-|amu|kínch'ió}} * {{Z|an}}: {{W+|an|craba|m}}, {{W+|an|crapa|m}} * {{Z|aii}}: {{W-|aii|ܥܸܙܵܐ|tr=ʿizza|n}} * {{Z|arw}}: {{W-|arw|kabaritu}} * {{Z|rup}}: {{W-|rup|caprã|m}} * {{Z|as}}: {{W-|as|ছাগলী}}, {{W-|as|ছাগল|n}} * {{Z|ast}}: {{W+|ast|cabra|m}} * {{Z|tay}}: {{W-|tay|mit qnahi}} * {{Z|av}}: {{W-|av|цӏцӏе|sc=Cyrl}}, {{W-|av|дегӏен|sc=Cyrl}} * {{Z|az}}: {{W+|az|keçi}}, {{W-|az|təkə|n}} * {{Z|eu}}: {{W-|eu|ahuntz|m}}, {{W-|eu|aker|n}} * {{Z|ba}}: {{W-|ba|кәзә|sc=Cyrl}} * {{Z|bbl}}: {{W-|bbl|გაზაჼ}} * {{Z|be}}: {{W-|be|каза́|m}}, {{W-|be|казёл|n}} * {{Z|blm}}: {{W-|blm|binya}} {{W-|blm|kpitɔ binya|n}} * {{Z|bn}}: {{W+|bn|ছাগল}}, {{W-|bn|বকরা}} * {{Z|bqi}}: {{W-|bqi|بز|tr=boz|sc=fa-Arab}} * {{Z|bcl}}: {{W-|bcl|kanding}} * {{Z|br}}: {{W+|br|gavr|m}} * {{Z|bug}}: {{W-|bug|bembe}} * {{Z|bg}}: {{W+|bg|коза́|m}}, {{W+|bg|козе́л|n}} * {{Z|my}}: {{W+|my|ဆိတ်|sc=Mymr}} * {{Z|bua}}: {{W-|bua|ямаан}} * {{Z|kac}}: {{W-|kac|bainam}} * {{Z|cja}}: {{W-|cja|ڤبي}} * {{Z|ce}}: {{W-|ce|газа}}, {{W-|ce|бож}} * {{Z|cs}}: {{W+|cs|koza|m}}, {{W+|cs|kozel|n}} * {{Z|chr}}: {{W-|chr|ᎤᎦᏐᏣᏁᏛ}} * {{Z|chy}}: {{W-|chy|mé'hahtsékósa}} * {{Z|ny}}: {{W-|ny|mbuzi}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|山羊|tr=saan1 joeng4}} *: {{Z|hak}}: {{W-|hak|山羊|tr=sân-yòng}} *: {{Z|cmn}}: {{W+|cmn|羊|tr=yáng}}, {{W+|cmn|山羊|tr=shānyáng}} *: {{Z|nan}}: {{W+|nan|山羊|tr=soaⁿ-iûⁿ}} * {{Z|cv}}: {{W-|cv|качака|sc=Cyrl}} * {{Z|da}}: {{W+|da|ged|g}} * {{Z|dta}}: {{W-|dta|ima}} * {{Z|dtp}}: {{W-|dtp|kambing}} * {{Z|ovd}}: {{W-|ovd|djiet|g}} * {{Z|avd}}: {{W-|avd|بیز|tr=biz}} * {{Z|egl}}: {{W-|egl|chèvra|m}} * {{Z|id}}: {{W+|id|kambing}} * {{Z|ar}}: {{W-|ar|مَاعِز|n}}, {{W-|ar|عَنْزَة|m}} *: {{Z|arz}}: {{W-|arz|معز|n|tr=maʕz}}, {{W-|arz|معزة|m|tr=maʕza}} *: {{Z|arz}}: {{W-|arz|سخل|m|tr=saχel|sc=Arab}} *: {{Z|arz}}: {{W-|arz|عنزة|m|tr=ʿanze|sc=Arab}} *: {{Z|arz}}: {{W-|arz|عتروس|m|tr=ʿatrous|sc=Arab}} * {{Z|hy}}: {{W+|hy|այծ}}, {{W+|hy|նոխազ}}, {{W+|hy|քոշ}}, {{W+|hy|քաղ}} *: {{Z|xcl}}: {{W-|xcl|այծ|sc=Armn}}, {{W-|xcl|նոխազ|sc=Armn}}, {{W-|xcl|քօշ|sc=Armn}}, {{W-|xcl|քաղ|sc=Armn}} * {{Z|myv}}: {{W-|myv|сея}} * {{Z|eo}}: {{W-|eo|kapro}} * {{Z|et}}: {{W+|et|kits}} * {{Z|evn}}: {{W-|evn|каир}} * {{Z|ee}}: {{W-|ee|gbɔ̃|nt}} * {{Z|gur}}: {{W-|gur|bʋa}} * {{Z|fa}}: {{W+|fa|بز|tr=boz}} * {{Z|fo}}: {{W-|fo|geit|m}} * {{Z|fi}}: {{W+|fi|vuohi}} * {{Z|frp}}: {{W-|frp|cabra|m}}, {{W-|frp|chèvra|m}} * {{Z|fr}}: {{W+|fr|chèvre|m}}, {{W+|fr|bouc|n}}, {{W+|fr|bique|m}} * {{Z|fur}}: {{W-|fur|cjavre|m}}, {{W-|fur|čhavre|m}} * {{Z|stq}}: {{W-|stq|Sääge|m}} * {{Z|fy}}: {{W-|fy|geit|m}} * {{Z|gd}}: {{W+|gd|gobhar|n|m}} * {{Z|gl}}: {{W+|gl|cabra|m}}, {{W-|gl|godalla|m}}, {{W-|gl|xena|m}}, {{W-|gl|cabuxa|m}}, {{W-|gl|neixente|n}}, {{W-|gl|bodeseixo|n}}, {{W+|gl|barbada|m}}, {{W-|gl|guenepa|m}} * {{Z|got}}: {{W-|got|𐌲𐌰𐌹𐍄𐍃}} * {{Z|gu}}: {{W+|gu|બકરી|m}} * {{Z|ka}}: {{W-|ka|თხა|sc=Geor}}, {{W-|ka|ქოშიკი|sc=Geor}} * {{Z|gn}}: {{W-|gn|kavara}} * {{Z|ht}}: {{W-|ht|kabrit}} * {{Z|ha}}: {{W-|ha|bunsuru}} * {{Z|hi}}: {{W+|hi|बकरी|m}} * {{Z|nl}}: {{W+|nl|geit|m}}, {{W+|nl|bok|n}} * {{Z|he}}: {{W+|he|עֵז|m|tr=ez}} * {{Z|io}}: {{W+|io|kapro}} * {{Z|ang}}: {{W-|ang|gāt|m}} * {{Z|enm}}: {{W-|enm|goot}} * {{Z|en}}: {{W+|en|goat}} * {{Z|izh}}: {{W-|izh|voohi}} * {{Z|inh}}: {{W-|inh|газа}} * {{Z|ia}}: {{W-|ia|capra}} * {{Z|ga}}: {{W+|ga|gabhar|n}} *: {{Z|sga}}: {{W-|sga|gabor|n|id=goat}} * {{Z|ist}}: {{W-|ist|càvara|m}} * {{Z|it}}: {{W+|it|capra|m}} * {{Z|ivv}}: {{W-|ivv|kaddin}} * {{Z|is}}: {{W+|is|geit|m}} * {{Z|ja}}: {{W+|ja|ヤギ|tr=yagi|sc=Jpan}}, {{W+|ja|山羊|tr=やぎ, yagi|sc=Jpan}} * {{Z|kaw}}: {{W-|kaw|kambiṅ}}, {{W-|kaw|wĕḍus}}, {{W-|kaw|wiwi}} * {{Z|jv}}: {{W+|jv|wedhus}} * {{Z|kbd}}: {{W-|kbd|бжэн}} * {{Z|kl}}: {{W-|kl|savaasaq}} * {{Z|xal}}: {{W-|xal|яман}} * {{Z|kn}}: {{W+|kn|ಮೇಕೆ|sc=Knda}} * {{Z|pam}}: {{W-|pam|kambing}} * {{Z|krl}}: {{W-|krl|čiba}} * {{Z|csb}}: {{W-|csb|kòza|m}} * {{Z|ca}}: {{W+|ca|cabra|m}} * {{Z|qu}}: {{W-|qu|kawra}} * {{Z|ks}}: {{W+|ks|ژھاوُل|n}}, {{W+|ks|ژھاوٕج|m}} * {{Z|klj}}: {{W-|klj|göčü}} * {{Z|ky}}: {{W+|ky|эчки}} * {{Z|kg}}: {{W-|kg|nkombo}} * {{Z|ki}}: {{W-|ki|mbũri}}, {{W-|ki|harika}} * {{Z|si}}: {{W-|si|ළුළුවා|sc=Sinh}} * {{Z|rw}}: {{W-|rw|ihene|c9|c10}}, {{W-|rw|impene}} * {{Z|koi}}: {{W-|koi|кӧза}} * {{Z|ko}}: {{W+|ko|염소}}, {{W-|ko|산양}} * {{Z|kw}}: {{W-|kw|gaver|m}} * {{Z|co}}: {{W+|co|capra|m}} * {{Z|mfe}}: {{W-|mfe|kabri}} * {{Z|crs}}: {{W-|crs|kabri}} * {{Z|kum}}: {{W-|kum|эчки}} * {{Z|lld}}: {{W-|lld|cioura}}, {{W-|lld|cëura|m}} * {{Z|lbe}}: {{W-|lbe|цӏуку}}, {{W-|lbe|кьяца}} * {{Z|ltg}}: {{W-|ltg|koza|m}}, {{W-|ltg|uozs|n}} * {{Z|la}}: {{W+|la|caper|n}}, {{W-|la|capra|m}}, {{W-|la|hircus|n}} * {{Z|lv}}: {{W+|lv|kaza|m}}, {{W+|lv|āzis|n}} * {{Z|lo}}: {{W-|lo|ແບ້}} * {{Z|lzz}}: {{W-|lzz|ქოშატი}} * Ledo Kaili: {{tt-check|lew|tovau}} * {{Z|lez}}: {{W-|lez|цӏегь}} * {{Z|ln}}: {{W-|ln|ntaba|c9|c10}} * {{Z|li}}: {{W+|li|geit|n|m}} * {{Z|lt}}: {{W+|lt|ožka|m}}, {{W+|lt|ožys|n}} * {{Z|lmo}}: {{W-|lmo|cavra|m}} * {{Z|khb}}: {{W-|khb|ᦶᦢᧉ|sc=Talu}} * {{Z|lg}}: {{W-|lg|embuzi}} * {{Z|lb}}: {{W+|lb|Geess|m}} * {{Z|mhn}}: {{W-|mhn|goas|m}} * {{Z|mk}}: {{W-|mk|коза|m}}, {{W-|mk|јарец|n}} * {{Z|mg}}: {{W+|mg|osy}} * {{Z|ml}}: {{W+|ml|ആട്|sc=Mlym}} * {{Z|ms}}: {{W+|ms|kambing}} * {{Z|mt}}: {{W-|mt|mogħża|m}} * {{Z|mnc}}: {{W-|mnc|ᠨᡳᠮᠠᠨ}} * {{Z|gv}}: {{W+|gv|goayr|m}} * {{Z|mi}}: {{W-|mi|nanenane}}, {{W-|mi|koati}} * {{Z|mr}}: {{W-|mr|बकरी|m|sc=Deva}}, {{W-|mr|शेळी}} * {{Z|mzn}}: {{W-|mzn|بز|tr=bez}} * {{Z|hu}}: {{W+|hu|kecske}} * {{Z|mel}}: {{W-|mel|kabieng}} * {{Z|mic}}: {{W-|mic|te'plj|an}}, {{W-|mic|te'pulj|an}} * {{Z|mdf}}: {{W-|mdf|сява}} * {{Z|mn}}: {{W+|mn|ямаа|sc=Cyrl}} * {{Z|mnw}}: {{W-|mnw|ဗ္ၜေံ}} * {{Z|mos}}: {{W-|mos|bʋʋga}} * {{Z|wmw}}: {{W-|wmw|mbuzi}} * {{Z|gld}}: {{W-|gld|иман}} * {{Z|nap}}: {{W-|nap|crapa|m}} * {{Z|nv}}: {{W-|nv|tłʼízí}} * {{Z|na}}: {{W-|na|ekaun}} * {{Z|nds}}: {{W-|nds|Zeeg|m}}, {{W-|nds|Zääg|m}}, {{W-|nds|Seeg|m}}, {{W-|nds|Sääg|m}} *: {{Z|nds-nl}}: {{W-|nds-nl|sik|m}} * {{Z|new}}: {{W-|new|दुगु}} * {{Z|nrf}}: {{W-|nrf|biche|m}}, {{W-|nrf|bich|m}} * {{Z|non}}: {{W-|non|geit|m}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|geit|m|n}} *: {{Z|nn}}: {{W-|nn|geit|m}} * {{Z|oj}}: {{W-|oj|maanadik}} * {{Z|ryu}}: {{W-|ryu|ひーじゃー|tr=hiijaa}} * {{Z|oc}}: {{W+|oc|cabra|m}}, {{W+|oc|chabra|m}}, {{W+|oc|craba|m}} * {{Z|or}}: {{W+|or|ଛେଳି}} * {{Z|om}}: {{W-|om|re'ee}} * {{Z|os}}: {{W-|os|цӕу}}, {{W-|os|сӕгъ}} * {{Z|ota}}: {{W-|ota|كچی|tr=keçi|sc=ota-Arab}}, {{W-|ota|بز|tr=büz|sc=ota-Arab}} * {{Z|ug}}: {{W-|ug|ئۆچكە|sc=ug-Arab}} * {{Z|uz}}: {{W+|uz|echki}} * {{Z|pi}}: {{W-|pi|aja|n}} * {{Z|pap}}: {{W-|pap|kabritu}} * {{Z|ps}}: {{W-|ps|وزه|m|tr=wozzah|sc=ps-Arab}} * {{Z|pms}}: {{W-|pms|crava|m}} * {{Z|pdt}}: {{W-|pdt|Bock|n}} * {{Z|roa-poi}}: {{W-|roa-poi|chebre}} * {{Z|pox}}: {{W-|pox|ťözâ|m}} * {{Z|pl}}: {{W+|pl|koza|m}}, {{W+|pl|kozioł|n}} * {{Z|pt}}: {{W+|pt|bode|n}}, {{W+|pt|cabra|m}} * {{Z|pa}}: {{W-|pa|ਬੱਕਰੀ|m}} * {{Z|kk}}: {{W-|kk|ешкі}}, {{W-|kk|теке}} * {{Z|rm}}: {{W-|rm|chaura|m}}, {{W-|rm|caura|m}}, {{W-|rm|tgora|m}}, {{W-|rm|chevra|m}}, {{W-|rm|chavra|m}} * {{Z|rom}}: {{W-|rom|buzno|n}}, {{W-|rom|buzni|m}} * {{Z|ro}}: {{W+|ro|capră|m}}, {{W+|ro|țap|n}} * {{Z|ru}}: {{W+|ru|коза́|m}}, {{W+|ru|козёл|n}} * {{Z|str}}: {{W-|str|NÁNI}} * {{Z|se}}: {{W-|se|gáica}} * {{Z|sm}}: {{W-|sm|o'ti}} * {{Z|sgs}}: {{W-|sgs|uožka|m}} * {{Z|sa}}: {{W+|sa|अजा|m}}, {{W+|sa|अज|n}}, {{W+|sa|छाग|n}} * {{Z|sat}}: {{W-|sat|ᱢᱮᱨᱳᱢ}} * {{Z|sc}}: {{W-|sc|craba}}, {{W-|sc|becca}} * {{Z|ceb}}: {{W-|ceb|kanding}} * {{Z|scn}}: {{W+|scn|beccu|n}}, {{W+|scn|crapa|m}} * {{Z|sid}}: {{W-|sid|meʼe}} * {{Z|szl}}: {{W-|szl|koza|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|ко̀за|sc=Cyrl}}, {{W-|sh|ја̏рац|n}} *: Latînî: {{W+|sh|kòza}}, {{W+|sh|jȁrac|n}} * {{Z|syl}}: {{W-|syl|ꠍꠣꠉꠟ}} * {{Z|sco}}: {{W-|sco|gait}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|коза|m}}, {{W-|cu|козьлъ|n}} *: Glagolîtîk: {{W-|cu|ⰽⱁⰸⰰ|m|sc=Glag}} * {{Z|sk}}: {{W+|sk|koza|m}}, {{W-|sk|kozel|n}}, {{W+|sk|cap|n}} * {{Z|sl}}: {{W+|sl|koza|m}}, {{W+|sl|kozel|n}} * {{Z|so}}: {{W-|so|ri'}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|kóza|m}}, {{W-|dsb|kózoł|n}} *: {{Z|hsb}}: {{W-|hsb|koza|m}}, {{W-|hsb|kоzоł|n}} * {{Z|nso}}: {{W-|nso|pudi}} * {{Z|st}}: {{W+|st|podi}} * {{Z|es}}: {{W+|es|cabra|m}}, {{W+|es|chivo|n}} * {{Z|su}}: {{W-|su|êmbé}} * {{Z|sux}}: {{W-|sux|𒍚|tr=ÙZ|sc=Xsux}} * {{Z|sva}}: {{W-|sva|დაჴჷლ}} * {{Z|sw}}: {{W+|sw|mbuzi|c9|c10}} * {{Z|sv}}: {{W+|sv|get|g}} * {{Z|shn}}: {{W-|shn|ပႄႉ}} * {{Z|sn}}: {{W-|sn|mbudzi}} * {{Z|tg}}: {{W+|tg|буз|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|kambing}} * {{Z|tly}}: {{W-|tly|بز|tr=bəz|sc=fa-Arab}} * {{Z|ta}}: {{W+|ta|வெள்ளாடு|sc=Taml}}, {{W+|ta|ஆடு|sc=Taml}} * {{Z|th}}: {{W+|th|แพะ}} * {{Z|ctd}}: {{W-|ctd|keel}} * {{Z|te}}: {{W+|te|మేక|sc=Telu}} * {{Z|crh}}: {{W-|crh|eçki}}, {{W-|crh|teke}} * {{Z|tt}}: {{W+|tt|кәҗә|sc=Cyrl}} * {{Z|ti}}: {{W+|ti|ጤል}} * {{Z|tr}}: {{W+|tr|keçi}} * {{Z|tk}}: {{W-|tk|geçi}} * {{Z|bo}}: {{W-|bo|ར|sc=Tibt}} * {{Z|tn}}: {{W-|tn|podi|c9|c10}} * {{Z|tum}}: {{W-|tum|mbuzi}} * {{Z|tyv}}: {{W-|tyv|өшкү}} * {{Z|udi}}: {{W-|udi|вел}} * {{Z|udm}}: {{W-|udm|кеч}} * {{Z|ur}}: {{W-|ur|بکری|m|tr=bakrī|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|коза́|m}}, {{W+|uk|козе́л|n}}, {{W+|uk|цап|n}} * {{Z|vec}}: {{W+|vec|cavra|m}}, {{W+|vec|càvara|m}}, {{W+|vec|càora|m}} * {{Z|vi}}: {{W+|vi|dê}}, {{W-|vi|con dê}} * {{Z|vo}}: {{W+|vo|kapar}} * {{Z|wa}}: {{W+|wa|gade|m}}, {{W+|wa|tchive|m}} * {{Z|war}}: {{W-|war|kanding}} * {{Z|cy}}: {{W+|cy|gafr|m}} * {{Z|wym}}: {{W-|wym|cejg|m}} * {{Z|wo}}: {{W+|wo|bëy|cuda=bëy wi}} * {{Z|km}}: {{W+|km|ពពែ}}, {{W-|km|សត្វពពែ}} * {{Z|xh}}: {{W-|xh|ibhokhwe|c9|c10}} * {{Z|sah}}: {{W-|sah|ньамаан|n}} * {{Z|yi}}: {{W-|yi|ציג|m}}, {{W-|yi|באָק|n}}, {{W-|yi|צאַפּ|n}} * {{Z|yo}}: {{W-|yo|ewúrẹ́}} * {{Z|el}}: {{W+|el|κατσίκα|m}}, {{W+|el|γίδα|m}}, {{W+|el|γίδι|nt}} *: Kevn: {{W-|grc|τράγος|n}}, {{W-|grc|αἴξ|n|m}} * {{Z|za}}: {{W-|za|yiengz}}, {{W-|za|mbej}} * {{Z|zom}}: {{W-|zom|kel}} * {{Z|zu}}: {{W+|zu|imbuzi|c9|c10}} * {{Z|nmn}}: {{W-|nmn|páli}} {{werger-bin}} :{{werger çavkanî|en|goat|beş=Ev qismê Wergerê|oldid=75571308}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|بزن|w=bizin}} #* {{bêmînak|ckb}} jb3rzs8xrn8h6zjuwm6kf4hge9d5vre 6328866 6328821 2026-08-11T02:12:12Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328866 wikitext text/x-wiki {{bnr-h|bizîn|bîzin}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/bɪ'zɪn/}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-bizin.wav|dever=Amed}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bizin.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Domestic goat kid in capeweed.jpg|thumb|300px|Bizinek]] {{navdêr|ku|z=m}} # {{f|ku|guhandar}} [[heywan|Heywaneke]] [[kedî]] ya [[guhandar]] û [[têr-mû]] ye. #* {{jêder-malper|ku|jêgirtin=Di nav kerîyê pez de '''bizineke''' nebixêr, nesitirî, ziyankar û çilek hebû, wexta kerî nêzî zevîyekî biçûya '''bizina''' ziyankar Kolê berê xwe dida zeviyê zerar didayê.|sernav=Remo û Bizina çilek|sal=2012|url=https://demacirok.wordpress.com/2012/11/08/remo-u-bizina-cilek/|malper=demacirok.wordpress.com}} #* {{jêder-kovar|ku|jêgirtin='''Bizina''' pîrê çu çolê<br>Lê da berf û bagerê<br>Piriq derket ji malê<br>He! he!...|kovar=Hawar |sernav=Bizina Pîrê |nivîskar= Herekol Azîzan |weşanxane=Nûdem|hejmar=8|sal=1932-1933|rûpel=3|cîld=1}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|بزن}} * {{ku-kr|бьзьн}} ==== Formên alternatîv ==== * [[bizn]] ==== Navê zanistî ==== * ''[[Capra hircus]]'' ==== Jê ==== * [[bizinkûvî]] * [[bizinmişk]] ==== Têkildar ==== {{stûn| * [[nêrî]] * [[karik]] * [[gîsk]] * [[kerî]] * [[kewal]] * [[sewal]] * [[terş]] * [[tewal]] * [[tiştîr]] / [[tiştûr]] }} ==== Etîmolojî ==== Hevreh soranî {{g|ckb|بزن|tr=bizin, bizn}}, kurdiya başûrî {{q|sdh|bizin|sc=Latn}}, lekî {{q|lki|bizin|sc=Latn}} û {{q|lki|biz|sc=Latn}}, zazakî {{q|zza|bize}}, hewramî {{q|hac|بزه‌|tr=bize}}, belûçî {{g|bal|بز‎|tr=buz}}, farisî {{g|fa|بز}} (berê "buz", niha "boz"), tacikî {{g|tg|буз|tr=buz}}, pertî ''wiz'', pêştûyî {{g|pa|وز‎|tr=wiz}}, pehlewî {{g|pal|𐮱𐮵𐮿‎|tr=bûz}}, avestayî {{g|ae|𐬠𐬏𐬰𐬀‎|tr=būze|w=[[beran]], ?[[nêrî]]}}, ermenî {{g|hy|բուծ|tr=bûç|w=[[karik]]}}, sanskrîtî {{g|sa|बुक्क|tr=bukke|w=[[nêrî]]}}, îngilîziya kevn {{q|agn|buc}} / {{q|ang|bucca|w=[[nêrî]]}}, îngilîziya nû {{q|en|buck|w=heywanê nêr}}, almanî {{q|de|Bock|w=[[nêrî]], heywanê nêr}}, holendî {{q|nl|bok|w=[[nêrî]]}}, swêdî {{q|sv|bock|w=[[nêrî]]}}, danmarkî {{q|da|buk}}, norwecî {{q|no|bukk}}... hemû ji {{ji|ine-pro|ku|*bʰuǵ-}}. Peyva îranî wek {{g|xcl|բզաք|tr=bzakʿ}} ketibû ermeniya kevn. {{q|ku|-in}} ya dawiya peyva ''bizin'' [[paşgir]]eke kevnar e ku peyvan dike [[mê]] û belkî [[hevreh]]a paşgira çalak ya almanî {{q|ku|-in}} û ya ne-çalak ya îngilîzî {{q|en|-en}} be. Binêre {{q|ku|nogin}} û dibe ku herwiha {{q|ku|kîr kujin}}. ;{{biçûk|Çavkanî: * {{Rastorgujeva|r=191-192}} * {{Horn|r=49}} * {{Watkins|r=13}} * {{Etymonline}} * {{Pokorny|r=161}} }} ==== Bide ber ==== * [[mih]], [[mî]] ==== Zayend ==== {{agadarî}} ''Bizin'' bi maneya heywana kedî ya mê peyvek zayendmê ye: ''bizina me, bizineke spî''... Lê ew herwiha wek peyvek zayendnêr jî tê bikaranîn: ''Biz(i)nê me li çolê diçere.'' Li vê derê ew bi maneya [[terş]] e anku hem bizin û hem jî [[nêrî]]. ==== Cûnên bizin û mihan ==== * [[hoş]], [[poş]]: bizna têkde reş û guhboz. * [[hemis]], [[himbis]]: bizna reşa navçav û alekên wê gîxên spî yan sorekî vekirî pêde hatîn û binzik û dehmen spî yan sor. * [[hemdanî]]: cûnekî pezî ye: cûnê pezekî guhdirêj û guhpan û hirîkurt û dûngşor e. * [[çûr]], [[çûr]]: cûne bizneka hûr û têrşîr û mûxelek e, mûyê wê merez e, şel û şepik jê diêne çêkirin. * [[çal]]: bizna hemû leşê wê reş, tenê enîya wê pinîyeka spî lê.. * [[kerîs]], [[kurrîs]]: miha guhên wê qut û kurtik. * [[kewîs]], [[kewîsar]], [[kewîser]]: miha leşê wê spî û navçav zîwanî pinîyên reş yan sor lê û guhên wê boz. Gelek cûn jê hene * [[riser]]: miha rengê navçavan di navbera reş û qehweyî de yan bi ser reşekî xwelîkî ve.. * [[tebeş]]: Miha navçav û ser û guh pêk ve reng xwelîkî. ;{{biçûk|Çavkanî: * Îsmaîl Şahîn di {{kzk}} de, 12/2012 }} ==== Gotinên pêşiyan ==== {{stûn| * Berû da bizinê, dest avête qarçikê * Bizin bizin e, pêşî cihê xwe pêkol dike, dû re mexel tê * Bizin firot bi hefta, bezê wê kirî bi heyşta * Bizin ketiye derdê serê xwe, şivan ketiye derdê bezê bizinê * Bizin mir, girr damirî * Bizina kol elimiye [[danok]]an * Bizina kol hîn bûye [[danî|daniyên]] sor * Bizina kulek û şivanê [[bezek]] (sivik) tev digehên ber derî * Bizina nehletî, dev lêketî * Bizina reş e, her roj nexweş e * Bizina gurî, ber dêwir tiqurrî * Bizinê ji mihê ra got; min ewa te dît * Bizinê kulek tim ê çilek e * Bi vî devî bi vê qûnê, here diziya bizinê * Dinê li dinê, çavê gur li bizinê * Ecela bizinê ku tê, nanê şivanî dixwe * Ga guherande bizinê, bizin jî guherande mirîşkê * Here diziya bizinê * Kara li şûnê, bizinê li mexelê * Meha adarê, av firî serê darê, bizin kalî ser karê, nîşanên biharê * Mî bi piyê xwe, bizin bi piyê xwe * Mî bi nigên xwe, bizin bi nigên xwe * Pişta bizinê xurî, hat nanê şivên bixwe * Şêwra jinan, beriya bizinan * Şorê mîna tira Bizina ye * Wek berxa ber bizinê * Wek bizina ku ji ber ecela xwe bireve }} ==== Werger ==== {{werger-ser}} * {{Z|ab}}: {{W-|ab|аџьма|sc=Cyrl}}, {{W-|ab|аџьмаб|sc=Cyrl}} * {{Z|ace}}: {{W-|ace|kamèng}} * {{Z|ady}}: {{W-|ady|пчэны}} * {{Z|af}}: {{W+|af|bok}} * {{Z|xag}}: {{W-|xag|𐕛𐔴𐔾}} * {{Z|akk}}: {{W-|akk|𒍚|tr=enzu|sc=Xsux}} * {{Z|ak}}: {{W-|ak|abirekyie}} * {{Z|sq}}: {{W+|sq|dhi|m}}, {{W+|sq|berk|n}} * {{Z|de}}: {{W+|de|Ziege|m}}, {{W+|de|Geiß|m}}, {{W+|de|Bock|n}} *: {{Z|gsw}}: {{W-|gsw|Geiss|m}} *: {{Z|bar}}: {{W-|bar|Goaß|m}} *: {{Z|gmh}}: {{W-|gmh|geiz|m}}, {{W-|gmh|zige|m}} *: {{Z|goh}}: {{W-|goh|geiz|m}}, {{W-|goh|ziga|m}} * {{Z|am}}: {{W+|am|ፍየል|sc=Ethi}} * {{Z|amu}}: {{W-|amu|kínch'ió}} * {{Z|an}}: {{W+|an|craba|m}}, {{W+|an|crapa|m}} * {{Z|aii}}: {{W-|aii|ܥܸܙܵܐ|tr=ʿizza|n}} * {{Z|arw}}: {{W-|arw|kabaritu}} * {{Z|rup}}: {{W-|rup|caprã|m}} * {{Z|as}}: {{W-|as|ছাগলী}}, {{W-|as|ছাগল|n}} * {{Z|ast}}: {{W+|ast|cabra|m}} * {{Z|tay}}: {{W-|tay|mit qnahi}} * {{Z|av}}: {{W-|av|цӏцӏе|sc=Cyrl}}, {{W-|av|дегӏен|sc=Cyrl}} * {{Z|az}}: {{W+|az|keçi}}, {{W-|az|təkə|n}} * {{Z|eu}}: {{W-|eu|ahuntz|m}}, {{W-|eu|aker|n}} * {{Z|ba}}: {{W-|ba|кәзә|sc=Cyrl}} * {{Z|bbl}}: {{W-|bbl|გაზაჼ}} * {{Z|be}}: {{W-|be|каза́|m}}, {{W-|be|казёл|n}} * {{Z|blm}}: {{W-|blm|binya}} {{W-|blm|kpitɔ binya|n}} * {{Z|bn}}: {{W+|bn|ছাগল}}, {{W-|bn|বকরা}} * {{Z|bqi}}: {{W-|bqi|بز|tr=boz|sc=fa-Arab}} * {{Z|bcl}}: {{W-|bcl|kanding}} * {{Z|br}}: {{W+|br|gavr|m}} * {{Z|bug}}: {{W-|bug|bembe}} * {{Z|bg}}: {{W+|bg|коза́|m}}, {{W+|bg|козе́л|n}} * {{Z|my}}: {{W+|my|ဆိတ်|sc=Mymr}} * {{Z|bua}}: {{W-|bua|ямаан}} * {{Z|kac}}: {{W-|kac|bainam}} * {{Z|cja}}: {{W-|cja|ڤبي}} * {{Z|ce}}: {{W-|ce|газа}}, {{W-|ce|бож}} * {{Z|cs}}: {{W+|cs|koza|m}}, {{W+|cs|kozel|n}} * {{Z|chr}}: {{W-|chr|ᎤᎦᏐᏣᏁᏛ}} * {{Z|chy}}: {{W-|chy|mé'hahtsékósa}} * {{Z|ny}}: {{W-|ny|mbuzi}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|山羊|tr=saan1 joeng4}} *: {{Z|hak}}: {{W-|hak|山羊|tr=sân-yòng}} *: {{Z|cmn}}: {{W+|cmn|羊|tr=yáng}}, {{W+|cmn|山羊|tr=shānyáng}} *: {{Z|nan}}: {{W+|nan|山羊|tr=soaⁿ-iûⁿ}} * {{Z|cv}}: {{W-|cv|качака|sc=Cyrl}} * {{Z|da}}: {{W+|da|ged|g}} * {{Z|dta}}: {{W-|dta|ima}} * {{Z|dtp}}: {{W-|dtp|kambing}} * {{Z|ovd}}: {{W-|ovd|djiet|g}} * {{Z|avd}}: {{W-|avd|بیز|tr=biz}} * {{Z|egl}}: {{W-|egl|chèvra|m}} * {{Z|id}}: {{W+|id|kambing}} * {{Z|ar}}: {{W-|ar|مَاعِز|n}}, {{W-|ar|عَنْزَة|m}} *: {{Z|arz}}: {{W-|arz|معز|n|tr=maʕz}}, {{W-|arz|معزة|m|tr=maʕza}} *: {{Z|arz}}: {{W-|arz|سخل|m|tr=saχel|sc=Arab}} *: {{Z|arz}}: {{W-|arz|عنزة|m|tr=ʿanze|sc=Arab}} *: {{Z|arz}}: {{W-|arz|عتروس|m|tr=ʿatrous|sc=Arab}} * {{Z|hy}}: {{W+|hy|այծ}}, {{W+|hy|նոխազ}}, {{W+|hy|քոշ}}, {{W+|hy|քաղ}} *: {{Z|xcl}}: {{W-|xcl|այծ|sc=Armn}}, {{W-|xcl|նոխազ|sc=Armn}}, {{W-|xcl|քօշ|sc=Armn}}, {{W-|xcl|քաղ|sc=Armn}} * {{Z|myv}}: {{W-|myv|сея}} * {{Z|eo}}: {{W-|eo|kapro}} * {{Z|et}}: {{W+|et|kits}} * {{Z|evn}}: {{W-|evn|каир}} * {{Z|ee}}: {{W-|ee|gbɔ̃|nt}} * {{Z|gur}}: {{W-|gur|bʋa}} * {{Z|fa}}: {{W+|fa|بز|tr=boz}} * {{Z|fo}}: {{W-|fo|geit|m}} * {{Z|fi}}: {{W+|fi|vuohi}} * {{Z|frp}}: {{W-|frp|cabra|m}}, {{W-|frp|chèvra|m}} * {{Z|fr}}: {{W+|fr|chèvre|m}}, {{W+|fr|bouc|n}}, {{W+|fr|bique|m}} * {{Z|fur}}: {{W-|fur|cjavre|m}}, {{W-|fur|čhavre|m}} * {{Z|stq}}: {{W-|stq|Sääge|m}} * {{Z|fy}}: {{W-|fy|geit|m}} * {{Z|gd}}: {{W+|gd|gobhar|n|m}} * {{Z|gl}}: {{W+|gl|cabra|m}}, {{W-|gl|godalla|m}}, {{W-|gl|xena|m}}, {{W-|gl|cabuxa|m}}, {{W-|gl|neixente|n}}, {{W-|gl|bodeseixo|n}}, {{W+|gl|barbada|m}}, {{W-|gl|guenepa|m}} * {{Z|got}}: {{W-|got|𐌲𐌰𐌹𐍄𐍃}} * {{Z|gu}}: {{W+|gu|બકરી|m}} * {{Z|ka}}: {{W-|ka|თხა|sc=Geor}}, {{W-|ka|ქოშიკი|sc=Geor}} * {{Z|gn}}: {{W-|gn|kavara}} * {{Z|ht}}: {{W-|ht|kabrit}} * {{Z|ha}}: {{W-|ha|bunsuru}} * {{Z|hi}}: {{W+|hi|बकरी|m}} * {{Z|nl}}: {{W+|nl|geit|m}}, {{W+|nl|bok|n}} * {{Z|he}}: {{W+|he|עֵז|m|tr=ez}} * {{Z|io}}: {{W+|io|kapro}} * {{Z|ang}}: {{W-|ang|gāt|m}} * {{Z|enm}}: {{W-|enm|goot}} * {{Z|en}}: {{W+|en|goat}} * {{Z|izh}}: {{W-|izh|voohi}} * {{Z|inh}}: {{W-|inh|газа}} * {{Z|ia}}: {{W-|ia|capra}} * {{Z|ga}}: {{W+|ga|gabhar|n}} *: {{Z|sga}}: {{W-|sga|gabor|n|id=goat}} * {{Z|ist}}: {{W-|ist|càvara|m}} * {{Z|it}}: {{W+|it|capra|m}} * {{Z|ivv}}: {{W-|ivv|kaddin}} * {{Z|is}}: {{W+|is|geit|m}} * {{Z|ja}}: {{W+|ja|ヤギ|tr=yagi|sc=Jpan}}, {{W+|ja|山羊|tr=やぎ, yagi|sc=Jpan}} * {{Z|kaw}}: {{W-|kaw|kambiṅ}}, {{W-|kaw|wĕḍus}}, {{W-|kaw|wiwi}} * {{Z|jv}}: {{W+|jv|wedhus}} * {{Z|kbd}}: {{W-|kbd|бжэн}} * {{Z|kl}}: {{W-|kl|savaasaq}} * {{Z|xal}}: {{W-|xal|яман}} * {{Z|kn}}: {{W+|kn|ಮೇಕೆ|sc=Knda}} * {{Z|pam}}: {{W-|pam|kambing}} * {{Z|krl}}: {{W-|krl|čiba}} * {{Z|csb}}: {{W-|csb|kòza|m}} * {{Z|ca}}: {{W+|ca|cabra|m}} * {{Z|qu}}: {{W-|qu|kawra}} * {{Z|ks}}: {{W+|ks|ژھاوُل|n}}, {{W+|ks|ژھاوٕج|m}} * {{Z|klj}}: {{W-|klj|göčü}} * {{Z|ky}}: {{W+|ky|эчки}} * {{Z|kg}}: {{W-|kg|nkombo}} * {{Z|ki}}: {{W-|ki|mbũri}}, {{W-|ki|harika}} * {{Z|si}}: {{W-|si|ළුළුවා|sc=Sinh}} * {{Z|rw}}: {{W-|rw|ihene|c9|c10}}, {{W-|rw|impene}} * {{Z|koi}}: {{W-|koi|кӧза}} * {{Z|ko}}: {{W+|ko|염소}}, {{W-|ko|산양}} * {{Z|kw}}: {{W-|kw|gaver|m}} * {{Z|co}}: {{W+|co|capra|m}} * {{Z|mfe}}: {{W-|mfe|kabri}} * {{Z|crs}}: {{W-|crs|kabri}} * {{Z|kum}}: {{W-|kum|эчки}} * {{Z|lld}}: {{W-|lld|cioura}}, {{W-|lld|cëura|m}} * {{Z|lbe}}: {{W-|lbe|цӏуку}}, {{W-|lbe|кьяца}} * {{Z|ltg}}: {{W-|ltg|koza|m}}, {{W-|ltg|uozs|n}} * {{Z|la}}: {{W+|la|caper|n}}, {{W-|la|capra|m}}, {{W-|la|hircus|n}} * {{Z|lv}}: {{W+|lv|kaza|m}}, {{W+|lv|āzis|n}} * {{Z|lo}}: {{W-|lo|ແບ້}} * {{Z|lzz}}: {{W-|lzz|ქოშატი}} * Ledo Kaili: {{tt-check|lew|tovau}} * {{Z|lez}}: {{W-|lez|цӏегь}} * {{Z|ln}}: {{W-|ln|ntaba|c9|c10}} * {{Z|li}}: {{W+|li|geit|n|m}} * {{Z|lt}}: {{W+|lt|ožka|m}}, {{W+|lt|ožys|n}} * {{Z|lmo}}: {{W-|lmo|cavra|m}} * {{Z|khb}}: {{W-|khb|ᦶᦢᧉ|sc=Talu}} * {{Z|lg}}: {{W-|lg|embuzi}} * {{Z|lb}}: {{W+|lb|Geess|m}} * {{Z|mhn}}: {{W-|mhn|goas|m}} * {{Z|mk}}: {{W-|mk|коза|m}}, {{W-|mk|јарец|n}} * {{Z|mg}}: {{W+|mg|osy}} * {{Z|ml}}: {{W+|ml|ആട്|sc=Mlym}} * {{Z|ms}}: {{W+|ms|kambing}} * {{Z|mt}}: {{W-|mt|mogħża|m}} * {{Z|mnc}}: {{W-|mnc|ᠨᡳᠮᠠᠨ}} * {{Z|gv}}: {{W+|gv|goayr|m}} * {{Z|mi}}: {{W-|mi|nanenane}}, {{W-|mi|koati}} * {{Z|mr}}: {{W-|mr|बकरी|m|sc=Deva}}, {{W-|mr|शेळी}} * {{Z|mzn}}: {{W-|mzn|بز|tr=bez}} * {{Z|hu}}: {{W+|hu|kecske}} * {{Z|mel}}: {{W-|mel|kabieng}} * {{Z|mic}}: {{W-|mic|te'plj|an}}, {{W-|mic|te'pulj|an}} * {{Z|mdf}}: {{W-|mdf|сява}} * {{Z|mn}}: {{W+|mn|ямаа|sc=Cyrl}} * {{Z|mnw}}: {{W-|mnw|ဗ္ၜေံ}} * {{Z|mos}}: {{W-|mos|bʋʋga}} * {{Z|wmw}}: {{W-|wmw|mbuzi}} * {{Z|gld}}: {{W-|gld|иман}} * {{Z|nap}}: {{W-|nap|crapa|m}} * {{Z|nv}}: {{W-|nv|tłʼízí}} * {{Z|na}}: {{W-|na|ekaun}} * {{Z|nds}}: {{W-|nds|Zeeg|m}}, {{W-|nds|Zääg|m}}, {{W-|nds|Seeg|m}}, {{W-|nds|Sääg|m}} *: {{Z|nds-nl}}: {{W-|nds-nl|sik|m}} * {{Z|new}}: {{W-|new|दुगु}} * {{Z|nrf}}: {{W-|nrf|biche|m}}, {{W-|nrf|bich|m}} * {{Z|non}}: {{W-|non|geit|m}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|geit|m|n}} *: {{Z|nn}}: {{W-|nn|geit|m}} * {{Z|oj}}: {{W-|oj|maanadik}} * {{Z|ryu}}: {{W-|ryu|ひーじゃー|tr=hiijaa}} * {{Z|oc}}: {{W+|oc|cabra|m}}, {{W+|oc|chabra|m}}, {{W+|oc|craba|m}} * {{Z|or}}: {{W+|or|ଛେଳି}} * {{Z|om}}: {{W-|om|re'ee}} * {{Z|os}}: {{W-|os|цӕу}}, {{W-|os|сӕгъ}} * {{Z|ota}}: {{W-|ota|كچی|tr=keçi|sc=ota-Arab}}, {{W-|ota|بز|tr=büz|sc=ota-Arab}} * {{Z|ug}}: {{W-|ug|ئۆچكە|sc=ug-Arab}} * {{Z|uz}}: {{W+|uz|echki}} * {{Z|pi}}: {{W-|pi|aja|n}} * {{Z|pap}}: {{W-|pap|kabritu}} * {{Z|ps}}: {{W-|ps|وزه|m|tr=wozzah|sc=ps-Arab}} * {{Z|pms}}: {{W-|pms|crava|m}} * {{Z|pdt}}: {{W-|pdt|Bock|n}} * {{Z|roa-poi}}: {{W-|roa-poi|chebre}} * {{Z|pox}}: {{W-|pox|ťözâ|m}} * {{Z|pl}}: {{W+|pl|koza|m}}, {{W+|pl|kozioł|n}} * {{Z|pt}}: {{W+|pt|bode|n}}, {{W+|pt|cabra|m}} * {{Z|pa}}: {{W-|pa|ਬੱਕਰੀ|m}} * {{Z|kk}}: {{W-|kk|ешкі}}, {{W-|kk|теке}} * {{Z|rm}}: {{W-|rm|chaura|m}}, {{W-|rm|caura|m}}, {{W-|rm|tgora|m}}, {{W-|rm|chevra|m}}, {{W-|rm|chavra|m}} * {{Z|rom}}: {{W-|rom|buzno|n}}, {{W-|rom|buzni|m}} * {{Z|ro}}: {{W+|ro|capră|m}}, {{W+|ro|țap|n}} * {{Z|ru}}: {{W+|ru|коза́|m}}, {{W+|ru|козёл|n}} * {{Z|str}}: {{W-|str|NÁNI}} * {{Z|se}}: {{W-|se|gáica}} * {{Z|sm}}: {{W-|sm|o'ti}} * {{Z|sgs}}: {{W-|sgs|uožka|m}} * {{Z|sa}}: {{W+|sa|अजा|m}}, {{W+|sa|अज|n}}, {{W+|sa|छाग|n}} * {{Z|sat}}: {{W-|sat|ᱢᱮᱨᱳᱢ}} * {{Z|sc}}: {{W-|sc|craba}}, {{W-|sc|becca}} * {{Z|ceb}}: {{W-|ceb|kanding}} * {{Z|scn}}: {{W+|scn|beccu|n}}, {{W+|scn|crapa|m}} * {{Z|sid}}: {{W-|sid|meʼe}} * {{Z|szl}}: {{W-|szl|koza|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|ко̀за|sc=Cyrl}}, {{W-|sh|ја̏рац|n}} *: Latînî: {{W+|sh|kòza}}, {{W+|sh|jȁrac|n}} * {{Z|syl}}: {{W-|syl|ꠍꠣꠉꠟ}} * {{Z|sco}}: {{W-|sco|gait}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|коза|m}}, {{W-|cu|козьлъ|n}} *: Glagolîtîk: {{W-|cu|ⰽⱁⰸⰰ|m|sc=Glag}} * {{Z|sk}}: {{W+|sk|koza|m}}, {{W-|sk|kozel|n}}, {{W+|sk|cap|n}} * {{Z|sl}}: {{W+|sl|koza|m}}, {{W+|sl|kozel|n}} * {{Z|so}}: {{W-|so|ri'}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|kóza|m}}, {{W-|dsb|kózoł|n}} *: {{Z|hsb}}: {{W-|hsb|koza|m}}, {{W-|hsb|kоzоł|n}} * {{Z|nso}}: {{W-|nso|pudi}} * {{Z|st}}: {{W+|st|podi}} * {{Z|es}}: {{W+|es|cabra|m}}, {{W+|es|chivo|n}} * {{Z|su}}: {{W-|su|êmbé}} * {{Z|sux}}: {{W-|sux|𒍚|tr=ÙZ|sc=Xsux}} * {{Z|sva}}: {{W-|sva|დაჴჷლ}} * {{Z|sw}}: {{W+|sw|mbuzi|c9|c10}} * {{Z|sv}}: {{W+|sv|get|g}} * {{Z|shn}}: {{W-|shn|ပႄႉ}} * {{Z|sn}}: {{W-|sn|mbudzi}} * {{Z|tg}}: {{W+|tg|буз|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|kambing}} * {{Z|tly}}: {{W-|tly|بز|tr=bəz|sc=fa-Arab}} * {{Z|ta}}: {{W+|ta|வெள்ளாடு|sc=Taml}}, {{W+|ta|ஆடு|sc=Taml}} * {{Z|th}}: {{W+|th|แพะ}} * {{Z|ctd}}: {{W-|ctd|keel}} * {{Z|te}}: {{W+|te|మేక|sc=Telu}} * {{Z|crh}}: {{W-|crh|eçki}}, {{W-|crh|teke}} * {{Z|tt}}: {{W+|tt|кәҗә|sc=Cyrl}} * {{Z|ti}}: {{W+|ti|ጤል}} * {{Z|tr}}: {{W+|tr|keçi}} * {{Z|tk}}: {{W-|tk|geçi}} * {{Z|bo}}: {{W-|bo|ར|sc=Tibt}} * {{Z|tn}}: {{W-|tn|podi|c9|c10}} * {{Z|tum}}: {{W-|tum|mbuzi}} * {{Z|tyv}}: {{W-|tyv|өшкү}} * {{Z|udi}}: {{W-|udi|вел}} * {{Z|udm}}: {{W-|udm|кеч}} * {{Z|ur}}: {{W-|ur|بکری|m|tr=bakrī|sc=ur-Arab}} * {{Z|uk}}: {{W+|uk|коза́|m}}, {{W+|uk|козе́л|n}}, {{W+|uk|цап|n}} * {{Z|vec}}: {{W+|vec|cavra|m}}, {{W+|vec|càvara|m}}, {{W+|vec|càora|m}} * {{Z|vi}}: {{W+|vi|dê}}, {{W-|vi|con dê}} * {{Z|vo}}: {{W+|vo|kapar}} * {{Z|wa}}: {{W+|wa|gade|m}}, {{W+|wa|tchive|m}} * {{Z|war}}: {{W-|war|kanding}} * {{Z|cy}}: {{W+|cy|gafr|m}} * {{Z|wym}}: {{W-|wym|cejg|m}} * {{Z|wo}}: {{W+|wo|bëy|cuda=bëy wi}} * {{Z|km}}: {{W+|km|ពពែ}}, {{W-|km|សត្វពពែ}} * {{Z|xh}}: {{W-|xh|ibhokhwe|c9|c10}} * {{Z|sah}}: {{W-|sah|ньамаан|n}} * {{Z|yi}}: {{W-|yi|ציג|m}}, {{W-|yi|באָק|n}}, {{W-|yi|צאַפּ|n}} * {{Z|yo}}: {{W-|yo|ewúrẹ́}} * {{Z|el}}: {{W+|el|κατσίκα|m}}, {{W+|el|γίδα|m}}, {{W+|el|γίδι|nt}} *: Kevn: {{W-|grc|τράγος|n}}, {{W-|grc|αἴξ|n|m}} * {{Z|za}}: {{W-|za|yiengz}}, {{W-|za|mbej}} * {{Z|zom}}: {{W-|zom|kel}} * {{Z|zu}}: {{W+|zu|imbuzi|c9|c10}} * {{Z|nmn}}: {{W-|nmn|páli}} {{werger-bin}} :{{werger çavkanî|en|goat|beş=Ev qismê Wergerê|oldid=75571308}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{ckb-Arab|بزن|w=bizin}} #* {{bêmînak|ckb}} 3z0nkhvxir9kjhyg58sqaomvx92sbtd gur 0 5384 6328972 6328092 2026-08-11T11:50:36Z Balyozbot 7867 /* Navdêr 1 */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328972 wikitext text/x-wiki {{bnr-h|gurr|gûr|gür}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{beş|Navdêr}} {{deng|ku|LL-Q36368 (kur)-Dildadil-gur.wav|Deng|dever=Amed}} * {{beş|Navdêr}} {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-gur (ajal).wav|dever=Bidlîs}} * {{beş|Rengdêr}} {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-gur.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr 1 === [[Wêne:210207 MIddle Fork wolf odfw 3.5x2.5 (52014798322).jpg|thumb|Gurek (1).]] {{wp}} {{navdêr|ku|z=n+}} # {{f|ku|guhandar}} [[heywan|Heywanek]] e [[şibîn|dişibe]] [[se]]yan anku [[kûçik]]an lê [[kûvî]] ye (bi taybetî êrişî [[sewal]]an dike û ji wan dixwe). #* {{jêder-malper|ku|jêgirtin=Baş guh bidin min, li van der û doran '''gurekî''' pir fenek û zalim heye. Dibê haya we baş ji we hebe, rojekê neyê we nexapîne.|nivîskar={{w|Zinarê Xamo}}|sernav=Şengê û Pengê (çîrok)|url=https://zinarexamo.blogspot.com/2011/03/senge-u-penge.html|malper=zinarexamo.blogspot.com|sal=2011}} # {{f|ku|mecazî}} Kesê dixwaze [[ziyan]]ê bigihîne kesek din. #* {{jêder-pirtûk|ku|jêgirtin=Hevrê û rêberê min ê evîn û evîndariyê Ovidius li derekî jî weha gotibû; "Meriv '''gurên''' hev in..." Di wan rojên tarî yên nêçîra Ruhistîn de, ez gelek caran li vê gotinê fikirîm. Meriv, bi rastî, '''gurên''' hev bûn, mîna guran diketin gewriya hev û cîh li hev dikirin gola xwînê. Hê hingî, ez li Pera'yê, cîhê '''gurên''' mezin difikirîm. Hem ji bo qesta felekê hem ji bo fahmkirina çerxa dinê û şerê '''guran'''.|nivîskar={{w|Mehmed Uzun}}|sernav={{w|Bîra Qederê}}|weşanxane=|cih=|sal=1995|rûpel=|isbn=}} #* {{jêder|ku|{{Jêgirtin/Melayê Cizîrî/Dîwana Melayê Cizirî}}|jêgirtin=Min dî bi wext ew nêk bi xet îro li text fexfûr-i bû</br>Fexfûrsur e sîmadur e heybetpur e pir dil '''gur''' e</br>Ew hate miş min çûne hiş dil min di 'iş -qê fûr-i bû}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|گور}} ==== Formên alternatîv ==== {{kol3|ku |gurg |gwir |gwirg }} ==== Navê zanistî ==== * ''[[Canis lupus]]'' ==== Jê ==== {{kol3|ku |gurane |guremirov |gurîtî }} ==== Têkildar ==== {{kol3|ku | kûçik | [[se]], [[seg]] | tajî }} ==== Etîmolojî ==== Ji {{mîr|ira-pro|ku|*wŕ̥kah|w=gur}}, ji {{mîr|iir-pro|ku|*wŕ̥kas|w=gur}}, ji {{mîr|ine-pro|ku|*wĺ̥kʷos|w=gur}}. Hevreha soranî {{q|ckb|گورگ}} û {{q|ckb|ورگ}}, [[kurdiya başûrî]] {{q|sdh|sc=Latn|gurg}}, lekî ''[[gurg]]'', farisî {{q|fa|گرگ‎|tr=gorg, gurg}}, tacikî [[гург]] (gurg), belûçî {{q|bal|گرک‎|tr=gurk}}, partî [[𐫃𐫇𐫡𐫃‎]] (gurg), pehlewî [[𐭢𐭥𐭫𐭢‎]] / [[𐬔𐬎𐬭𐬔‎]] (gurg), tatî ''wurg'', hewramî ''[[werg]]'', sogdî [[ܘܝܪܩ‎]] (wyrg), mazenderanî {{g|mzn|ورگ‎|tr=wurg, virg}}, zazakî ''[[verg]]'', gîlekî {{g|fa|ورگ‎|tr=verg}}, hexamenişî [[𐎺𐎼𐎣]] (varka, /verke/), avestayî [[𐬬𐬆𐬵𐬭𐬐𐬀]]‎ (vəhrka, /vihrke/), sanskrîtî [[वृक]] (vṛ́ka), hindî [[वृक]] (vŕk), bulgarî [[вълк]] (vǎlk), rûsî [[волк]] (volk), çekî/slovakî ''[[vlk]]'', polonî ''[[wilk]]'', lîtwanî ''[[vil̃kas]]'', latviyayî ''[[vìlks]]'', hîtîtî [[𒉿𒀠𒆪𒉿𒀸]] (wa-al-ku-wa-aš: tiştê [[xirab]]), inglîziya kevn ''[[wulf]]'', inglîziya niha û holandî ''[[wolf]]'', almanî ''[[Wolf]]'', danmarkî/norwecî/swêdî ''[[ulv]]'' û herwiha bi [[metatez]]ê yûnanî [[λύκος]] (lýkos) û latînî ''[[lupus]]''. Forma bi G li dawiyê (gurg) di [[kurmanciya rojhilatî]] de hatiye parastin lê di [[kurmanciya navendî]] û [[kurmanciya rojavayî]] de G jê ketiye û bûye ''gur''. Tevî nêzîkiya dengî jî li gel [[hevwate]]ya xwe ya tirkî ''[[kurt]]'', ji aliyê etîmolojî ve ew ne ji eynî rehî ne û ''kurt'' ya tirkî jî [[hevreh]]ê xwe di zimanên din yên [[tirkîkî]] de hene û ne ji zimanekî îranî hatiye wergirtin, bo nimûne: azerî ''[[qurd]]'', qazaxî [[құрт]] (qurt), oyxurî {{g|ug|قۇرت‎}} (qurt)... ;{{biçûk|Çavkanî: * {{Chyet}} * {{Horn}} * {{MacKenzie}} * {{Tsabolov}} * {{Turner}} * {{Watkins}} * {{Etymonline}} * {{The Tower of Babel}} }} ==== Bide ber ==== * {{g|ku|gurî}} ==== Pîrepend ==== {{kol3|ku |ku ti ne gur bî wê gur te bixwe |ma gurê kuderê nêwiye |ma te gur kuştiye ma min nehilîştiye |te gur kuştiyê min nîştiyê }} ==== Biwêj==== * [[gurê devbixwîn]] * [[gurê manco]] ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|گورگ|tr=[[gurg]]}}, {{W-|ckb|wirg|sc=Latn}}, {{W-|ckb|giru|sc=Latn}} * {{Z|sdh}}: {{W-|sdh|wirg|sc=Latn}}, {{W-|sdh|gurg|sc=Latn}} ** Şêxbizinî: [[wirg]] ''(wirg, wiyr)'' *:: [[gurg]] ''(gurg, guyr)'' * {{Z|hac}}: {{W-|hac|werg|sc=Latn}} * {{Z|zza}}: {{W-|zza|verg}} ==== Werger ==== {{werger-ser}} * {{Z|abq}}: {{W-|abq|квыджьма}} * {{Z|abe}}: {{W-|abe|môlsem}} * {{Z|ab}}: {{W-|ab|абгаду}}, {{W-|ab|ақәыџьма}} * {{Z|ady}}: {{W-|ady|тыгъужъ}} * {{Z|af}}: {{W+|af|wolf}} * {{Z|xag}}: {{W-|xag|𐕒𐕡𐔾}} * {{Z|akk}}: {{W-|akk|𒌨𒁇𒊏|n|tr=barbaru [UR.BAR.RA]}} * {{Z|sq}}: {{W+|sq|ujk|n}} * {{Z|ale}}: {{W-|ale|aliĝngix̂}} * {{Z|alq}}: {{W-|alq|mahìgan}}, {{W-|alq|mokquishim}} * {{Z|de}}: {{W+|de|Wolf|n}}, {{W-|de|Meister Graubein|n}} * {{Z|alt}}: {{W-|alt|бӧрӱ}} * {{Z|am}}: {{W-|am|ተኩላ}} * {{Z|ani}}: {{W-|ani|боцӏо}} * {{Z|apk}}: {{W-|apk|ba’}} * {{Z|apw}}: {{W-|apw|ma’choh}}, {{W-|apw|ba’choh}}, {{W-|apw|ba'cho}}, {{W-|apw|mbaaʼtsu}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܕܐܒܐ|n|tr=dēḇā}}, {{W-|syc|ܕܐܒܬܐ|m|tr=dēḇtā}} *: {{Z|tmr}}: {{W-|arc|דֵּיבָא|n|tr=dêḇā|sc=Hebr}} * {{Z|rup}}: {{W-|rup|lupu|n}} * {{Z|ast}}: {{W+|ast|llobu|n}} * {{Z|atj}}: {{W-|atj|mahikan}} * {{Z|av}}: {{W-|av|бацӏ}} * {{Z|ain}}: {{W-|ain|ホㇿケゥ|tr=horkew}}, {{W-|ain|ウォセカムィ|tr=wose-kamuy}} * {{Z|az}}: {{W+|az|canavar}}, {{W+|az|qurd}} * {{Z|bft}}: {{W-|bft|شانكو|tr=shanko}} * {{Z|eu}}: {{W+|eu|otso}} * {{Z|ba}}: {{W-|ba|бүре|sc=Cyrl}} * {{Z|bbl}}: {{W-|bbl|ბჵორწ}} * {{Z|bar}}: {{W-|bar|Woif}} * {{Z|be}}: {{W+|be|воўк|n}}, {{W-|be|ваўчы́ца|m}}, {{W-|be|ваўчы́ха|m}} * {{Z|bal}}: {{W-|bal|گرک|tr=gurk}} * {{Z|bn}}: {{W+|bn|নেকড়ে}} * {{Z|bla}}: {{W-|bla|omahkapi'si}} * {{Z|br}}: {{W+|br|bleiz|n}} * {{Z|bg}}: {{W+|bg|вълк|n}} * {{Z|my}}: {{W+|my|ဝံပုလွေ}} * {{Z|bua}}: {{W-|bua|шоно|sc=Cyrl}} * {{Z|ccp}}: {{W-|ccp|𑄤𑄇𑄴|tr=wāk|sc=Cakm}} * {{Z|cjm}}: {{W-|cjm|ꨔꨪꩂ|tr=thing}}, {{W-|cjm|ꨀꨧꨭꩃ ꨔꨪꩂ|tr=asơu thing}} * {{Z|chg}}: {{W-|chg|بورى|tr=böri|sc=fa-Arab}} * {{Z|ce}}: {{W-|ce|борз}} * {{Z|cs}}: {{W+|cs|vlk|n}} * {{Z|chr}}: {{W-|chr|ᏩᏯ}} * {{Z|chy}}: {{W-|chy|hó'nehe}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|狼|tr=long4}} *: {{Z|dng}}: {{W-|dng|лон}}, {{W-|dng|мулон}}, {{W-|dng|лонвазы}} *: {{Z|hak}}: {{W-|hak|狼|tr=lòng}} *: {{Z|cmn}}: {{W+|cmn|狼|tr=láng}} *: {{Z|cdo}}: {{W-|cdo|狼|tr=lòng}} *: {{Z|nan}}: {{W+|nan|狼|tr=lông}} *: {{Z|wuu}}: {{W-|wuu|狼}} * {{Z|ckt}}: {{W-|ckt|иʼны|tr=iʼny}}, {{W-|ckt|ээʼгычгын|tr=ėėʼgyčgyn}} * {{Z|cv}}: {{W-|cv|кашкӑр}} * {{Z|da}}: {{W+|da|ulv|g}} * {{Z|dgr}}: {{W-|dgr|dìga}} * {{Z|dlg}}: {{W-|dlg|бөрө|tr=börö|sc=Cyrl}} * {{Z|ovd}}: {{W-|ovd|warg|n}} * {{Z|egl}}: {{W-|egl|låuv|n}} * {{Z|id}}: {{W+|id|serigala}} * {{Z|ar}}: {{W+|ar|ذِئْب|n}} *: {{Z|arz}}: {{W-|arz|ديب|n|tr=dīb}} *: {{Z|afb}}: {{W-|afb|ذيب|tr=ḏīb}} *: {{Z|acw}}: {{W-|acw|ذيب|n|tr=ḏīb, dīb}} *: {{Z|ary}}: {{W-|ary|ديب|n|tr=dīb}} * {{Z|hy}}: {{W+|hy|գայլ}} *: {{Z|xcl}}: {{W-|xcl|գայլ}} * {{Z|myv}}: {{W-|myv|верьгиз}} * {{Z|eo}}: {{W+|eo|lupo}} * {{Z|et}}: {{W+|et|susi}}, {{W+|et|hunt}} * {{Z|evn}}: {{W-|evn|иргичи}} * {{Z|ee}}: {{W-|ee|amegãxi}} * {{Z|fa}}: {{W+|fa|گرگ|tr=gorg}} * {{Z|fo}}: {{W-|fo|úlvur|n}} * {{Z|fi}}: {{W+|fi|susi}}, {{W+|fi|hukka}}, {{W-|fi|susihukka}} * {{Z|frp}}: {{W-|frp|lop|n}}, {{W-|frp|luef|n}} * {{Z|fr}}: {{W+|fr|loup|n}} * {{Z|fur}}: {{W-|fur|lôf|n}}, {{W-|fur|lôv|n}} * {{Z|frr}}: {{W-|frr|ulf}}, {{W-|frr|Ulv|n}} * {{Z|stq}}: {{W-|stq|Wulf|n}} * {{Z|fy}}: {{W-|fy|wolf|g}} * {{Z|xgf}}: {{W-|xgf|'iisawut}} * {{Z|gd}}: {{W-|gd|faol|n}}, {{W-|gd|madadh-allaidh|n}} * {{Z|gl}}: {{W+|gl|lobo|n}} * {{Z|cel-gau}}: {{W-|cel-gau|drucocu}} * {{Z|glk}}: {{W-|glk|ورگ|tr=varg}} * {{Z|gon}}: {{W-|gon|तोडेल्ली|tr=tōḍēl‍lī}} * {{Z|got}}: {{W-|got|𐍅𐌿𐌻𐍆𐍃|n}} * {{Z|gu}}: {{W-|gu|ભેડીયો}} * {{Z|ka}}: {{W-|ka|მგელი}} * {{Z|gn}}: {{W-|gn|jaguaru}} * {{Z|hai}}: {{W-|hai|g̱úuj}} * {{Z|ht}}: {{W-|ht|lou}} * {{Z|haw}}: {{W-|haw|ʻīlio hae}} * {{Z|hi}}: {{W+|hi|भेड़िया|n}}, {{W+|hi|वृक|n}}, {{W+|hi|गुर्ग|n}} * {{Z|nl}}: {{W+|nl|wolf|n}} * {{Z|hoi}}: {{W-|hoi|nikʼighun}} * {{Z|hop}}: {{W-|hop|kwewu}} * {{Z|hrx}}: {{W-|hrx|Wollef|n}} * {{Z|he}}: {{W-|he|זְאֵב|n|tr=z'év}} * {{Z|io}}: {{W+|io|volfo}} * {{Z|ang}}: {{W-|ang|wulf|n}} * {{Z|en}}: {{W+|en|wolf}} * {{Z|izh}}: {{W-|izh|suzi}} * {{Z|inh}}: {{W-|inh|борз|sc=Cyrl}} * {{Z|ia}}: {{W+|ia|lupo}} * {{Z|iu}}: {{W+|iu|ᐊᒪᕈᖅ|sc=Cans}} * {{Z|ik}}: {{W-|ik|amaġuq}} * {{Z|ga}}: {{W-|ga|faolchú|n}}, {{W-|ga|mac tíre|n}}, {{W-|ga|madra alla|n}}, {{W-|ga|madra allta|n}} *: {{Z|mga}}: {{W-|mga|fáel}}, {{W-|mga|fáelchú}}, {{W-|mga|sídach}} *: {{Z|sga}}: {{W-|sga|cú}}, {{W-|sga|cú allaid}}, {{W-|sga|macc tíre}}, {{W-|sga|fáel|n}} * {{Z|ruo}}: {{W-|ruo|lup|n}} * {{Z|it}}: {{W+|it|lupo|n}} * {{Z|itl}}: {{W-|itl|ӽығнэ}} * {{Z|is}}: {{W+|is|úlfur|n}} * {{Z|ja}}: {{W+|ja|狼|tr=おおかみ, ōkami|sc=Jpan}}, {{W+|ja|オオカミ|tr=ōkami|sc=Jpan}}, {{W-|ja|ウルフ|tr=urufu|sc=Jpan}} * {{Z|jv}}: {{W+|jv|mbaung}} * {{Z|kbd}}: {{W-|kbd|дыгъужь}} * {{Z|tbd}}: {{W-|tbd|weldok}} * {{Z|kl}}: {{W+|kl|amaroq}} * {{Z|kls}}: {{W-|kls|grast}} * {{Z|xal}}: {{W-|xal|чон}} * {{Z|kn}}: {{W+|kn|ತೋಳ}} * {{Z|krc}}: {{W-|krc|бёрю|sc=Cyrl}} * {{Z|kaa}}: {{W-|kaa|bo'ri}}, {{W-|kaa|qasqır|sc=Cyrl}} * {{Z|krl}}: {{W-|krl|hukka}} * {{Z|csb}}: {{W-|csb|wilk|n}} * {{Z|ca}}: {{W+|ca|llop|n}} * {{Z|qu}}: {{W-|qu|atawka}} * {{Z|ks}}: {{W+|ks|رامہٕ ہوٗن}} * {{Z|ket}}: {{W-|ket|ӄыт|tr=qyt|sc=Cyrl}} * {{Z|khv}}: {{W-|khv|боцӏа}} * {{Z|ky}}: {{W+|ky|бөрү}}, {{W-|ky|карышкыр}} * {{Z|si}}: {{W-|si|වෘකයා}} * {{Z|kpv}}: {{W-|kpv|кӧин|sc=Cyrl}} * {{Z|ko}}: {{W+|ko|늑대}}, {{W+|ko|이리}} * {{Z|kw}}: {{W-|kw|bleydh|n}} * {{Z|co}}: {{W+|co|lupu|n}} * {{Z|kpy}}: {{W-|kpy|гʼэгылӈын|tr=ʕeɣəlŋən|sc=Cyrl}} * {{Z|cr}}: {{W-|cr|mahihkan}} * {{Z|kum}}: {{W-|kum|бёрю|sc=Cyrl}} * {{Z|lld}}: {{W-|lld|bolp|m}} * {{Z|lbe}}: {{W-|lbe|барцӏ}} * {{Z|lkt}}: {{W-|lkt|šuŋgmánitu}} {{W-|lkt|tȟáŋka}} * {{Z|ltg}}: {{W-|ltg|vylks}} * {{Z|la}}: {{W+|la|lupus|n}} * {{Z|lv}}: {{W+|lv|vilks|n}} * Lenape: *: {{Z|unm}}: {{W-|unm|tëme}} * {{Z|lo}}: {{W+|lo|ໝາປ່າ}}, {{W+|lo|ໝາໄນ}}, {{W-|lo|ສິຄາລະ}} * {{Z|lez}}: {{W-|lez|жанавур}} * {{Z|olo}}: {{W-|olo|hukku}} * {{Z|lij}}: {{W-|lij|lô|n}} * {{Z|lt}}: {{W+|lt|vilkas|n}} * {{Z|ycl}}: {{W-|ycl|veimar}} * {{Z|lmo}}: {{W-|lmo|lóff}} * {{Z|lb}}: {{W+|lb|Wollef|n}} * {{Z|mhn}}: {{W-|mhn|bolf|n}} * {{Z|mk}}: {{W-|mk|волк|n}} * {{Z|mg}}: {{W+|mg|amboadia}} * Malay: *: {{Z|ms}}: {{W-|ms|سريݢالا|sc=Arab}}, {{W-|ms|ذيب|sc=Arab}} *: Rûmî: {{W+|ms|serigala}}, {{W-|ms|zib}} * {{Z|ml}}: {{W+|ml|ചെന്നായ്}} * {{Z|mt}}: {{W-|mt|dib|n}}, {{W-|mt|lupu|n}} * {{Z|mnc}}: {{W-|mnc|ᠨᡳᠣᡥᡝ}} * {{Z|gv}}: {{W-|gv|filliu|n}}, {{W-|gv|moddey oaldey|n}} * {{Z|mi}}: {{W+|mi|wuruhi}}, {{W-|mi|wuruwhi}} * {{Z|mr}}: {{W-|mr|लांडगा|n}}, {{W-|mr|वृक|n}} * Marî: *: {{Z|mhr}}: {{W-|mhr|пире|sc=Cyrl}} *: {{Z|mrj}}: {{W-|mrj|пирӹ}} * {{Z|mzn}}: {{W-|mzn|ورگ|tr=vërg|sc=ps-Arab}} * {{Z|gun}}: {{W-|gun|aguara-jagua}} * {{Z|hu}}: {{W+|hu|farkas}} * {{Z|xmf}}: {{W-|xmf|გერი}} * {{Z|iro-min}}: {{W-|iro-min|utháyôni}} * {{Z|mic}}: {{W-|mic|paqt'sm|an}}, {{W-|mic|paqtesm|an}}, {{W-|mic|paqte'smug|an}} * {{Z|mwl}}: {{W-|mwl|lhobo|n}} * {{Z|mdf}}: {{W-|mdf|врьгаз}} * {{Z|mn}}: {{W+|mn|чоно}} * {{Z|moe}}: {{W-|moe|maikan}} * {{Z|mtq}}: {{W-|mtq|khỏl}} * {{Z|nah}}: {{W+|nah|cuetlāchtli}} * {{Z|gld}}: {{W-|gld|енгур}} * {{Z|nv}}: {{W-|nv|mąʼiitsoh}} * {{Z|nxq}}: {{W-|nxq|paqkee}}, {{W-|nxq|xulkee}} * {{Z|nds}}: {{W+|nds|Wulf|n}} * {{Z|yrk}}: {{W-|yrk|ӈылека}}, {{W-|yrk|сармик}} * {{Z|ne}}: {{W-|ne|ब्वाँसो}} * {{Z|nio}}: {{W-|nio|ӈӱлиаӡә|sc=Cyrl}} * {{Z|niv}}: {{W-|niv|лиғс|sc=Cyrl}} * {{Z|nog}}: {{W-|nog|боьри}} * {{Z|nuk}}: {{W-|nuk|qʷayac̕iik}} * {{Z|non}}: {{W-|non|úlfr|n}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|ulv|n}}, {{W-|nb|varg|n}}, {{W-|nb|gråbein|n}} *: {{Z|nn}}: {{W+|nn|ulv|n}}, {{W-|nn|varg|n}}, {{W-|nn|gråbein|n}} * {{Z|oj}}: {{W-|oj|ma'iingan}} * {{Z|oc}}: {{W+|oc|lop|n}} * {{Z|om}}: {{W-|om|yeeyyii}} * {{Z|orh}}: {{W-|orh|guykə}} * {{Z|os}}: {{W-|os|бирӕгъ}} * {{Z|ug}}: {{W-|ug|قۇرت|sc=ug-Arab}}, {{W+|ug|بۆرە}}, {{W-|ug|قاراشقاۇ}}, {{W-|ug|قارىشقۇ}} * {{Z|uz}}: {{W+|uz|boʻri}}, {{W+|uz|qashqir}} * {{Z|paw}}: {{W-|paw|ckírihki}} * {{Z|ps}}: {{W+|ps|لېوه|n|tr=lewë}}, {{W+|ps|شرمښ|n|tr=šërmëẍ}} * {{Z|pms}}: {{W-|pms|luv|n}} * {{Z|pdt}}: {{W-|pdt|Wulf|n}} * {{Z|pox}}: {{W-|pox|våuk|n}} * {{Z|pl}}: {{W+|pl|wilk|m-an}}, {{W+|pl|basior|m-an}}, {{W+|pl|wadera|m}} * {{Z|pt}}: {{W+|pt|lobo|n}} * Punjabi: *: Gurmuxî: {{W+|pa|ਬਘਿਆੜ|n}} *: Şahmuxî: {{W-|pa|بَگِھیاڑ|n}} * {{Z|kk}}: {{W-|kk|бөрі|sc=Cyrl}}, {{W-|kk|қасқыр|sc=Cyrl}} * {{Z|cop}}: {{W-|cop|ⲟⲩⲱⲛϣ}} * {{Z|rm}}: {{W-|rm|luf|n}}, {{W-|rm|louf|n}} * {{Z|rom}}: {{W-|rom|ruv|n}} * {{Z|ro}}: {{W+|ro|lup|n}} * {{Z|ru}}: {{W+|ru|волк|n}}, {{W-|ru|волчи́ца|m}} * {{Z|rue}}: {{W-|rue|вовк|n}} * {{Z|sbv}}: {{W-|sbv|hirpus}} * {{Z|slr}}: {{W-|slr|bori}} * {{Z|se}}: {{W-|se|gumpe}} * {{Z|sjd}}: {{W-|sjd|пальтэсь}}, {{W-|sjd|скуммьп}} * {{Z|sms}}: {{W-|sms|čõrmm}} * {{Z|sgs}}: {{W-|sgs|vėlks|n}} * {{Z|sa}}: {{W+|sa|वृक|n}}, {{W+|sa|श्वक|n}} * {{Z|sei}}: {{W-|sei|xeecoj}}, {{W-|sei|ziix yaacö caaixaj}} * {{Z|scn}}: {{W+|scn|lupu|n}} * {{Z|csm}}: {{W-|csm|húŋ·u-}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|вук|n|sc=Cyrl}} *: Latînî: {{W+|sh|vuk|n}} * {{Z|sco}}: {{W-|sco|wouf}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|влькъ|n}}, {{W-|cu|вльчица|m}} *: Glagolîtîk: {{W-|cu|ⰲⰾⱐⰽⱏ|n}} * {{Z|orv}}: {{W-|orv|вълкъ|n}} * {{Z|sk}}: {{W+|sk|vlk|n}} * {{Z|sl}}: {{W+|sl|volk|n}} * {{Z|so}}: {{W-|so|yey}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|wjelk|n}} *: {{Z|hsb}}: {{W-|hsb|wjelk|n}} * {{Z|ses}}: {{W-|ses|ganjihanŝi}} * {{Z|es}}: {{W+|es|lobo|n}} * {{Z|sux}}: {{W-|sux|𒌨𒁇𒊏|tr=urbarra}} * {{Z|sva}}: {{W-|sva|თხე̄რე}} * {{Z|sw}}: {{W-|sw|mbwa mwitu|c9|c10}} * {{Z|sv}}: {{W+|sv|varg|g}}, {{W+|sv|ulv|g}} * {{Z|xsr}}: {{W-|xsr|སྤྱང་ཀུ|tr=changku}} * {{Z|zdj}}: {{W-|zdj|dhiiɓu}} * {{Z|cjs}}: {{W-|cjs|пӧрӱ|tr=pörü|sc=Cyrl}} * {{Z|tct}}: {{W-|tct|laput}} * {{Z|tab}}: {{W-|tab|жанавар}} * {{Z|tg}}: {{W+|tg|гург|sc=Cyrl}} * {{Z|tl}}: {{W+|tl|lobo}} * {{Z|tht}}: {{W-|tht|ch’iyōne}} * {{Z|ta}}: {{W+|ta|ஓநாய்}} * {{Z|twf}}: {{W-|twf|kòléna}} * {{Z|rif}}: {{W-|rif|uššen|n}} * {{Z|th}}: {{W+|th|หมาป่า}}, {{W-|th|สุนัขป่า}} * {{Z|te}}: {{W+|te|తోడేలు}} * {{Z|tzm}}: {{W-|tzm|ⵓⵛⵛⵏ}} * {{Z|crh}}: {{W-|crh|börü}} * {{Z|tt}}: {{W+|tt|бүре|sc=Cyrl}} * {{Z|ti}}: {{W-|ti|ተዅላ}} * {{Z|tr}}: {{W+|tr|kurt}}, {{W+|tr|börü}} * {{Z|tk}}: {{W+|tk|böri}}, {{W-|tk|gurt}}, {{W+|tk|möjek}} * {{Z|bo}}: {{W-|bo|སྦྱང་ཀུ}}, {{W-|bo|སྤྱང་ཀི}} * {{Z|tli}}: {{W-|tli|g̱ooch}} * {{Z|tpi}}: {{W-|tpi|weldok}} * {{Z|txb}}: {{W-|txb|walkwe}} * {{Z|tyv}}: {{W-|tyv|бөрү|sc=Cyrl}} * {{Z|udi}}: {{W-|udi|ул}} * {{Z|udm}}: {{W-|udm|кион|sc=Cyrl}} * {{Z|urk}}: {{W-|urk|อาซู ฮูตัด|sc=Thai|tr=asu hutat}} * {{Z|ur}}: {{W-|ur|بھیڑیا|n|tr=bheṛiyā}} * {{Z|uk}}: {{W-|uk|вовк|n}}, {{W-|uk|вовчи́ця|m}}, {{W-|uk|вовчи́ха|m}} * {{Z|uum}}: {{W-|uum|джанавар}} * {{Z|vec}}: {{W-|vec|łovo|n}}, {{W-|vec|lóvo|n}} * {{Z|vep}}: {{W-|vep|händikaz}} * {{Z|vi}}: {{W+|vi|sói}}, {{W+|vi|chó sói}} * {{Z|vo}}: {{W+|vo|lup}}, {{W-|vo|ludog}} * {{Z|vro}}: {{W-|vro|susi}} * {{Z|vot}}: {{W-|vot|susi}} * {{Z|wa}}: {{W+|wa|leu|n}} * {{Z|cy}}: {{W+|cy|blaidd|n}} * {{Z|wym}}: {{W-|wym|wūf|n}} * {{Z|win}}: {{W-|win|šųųkjąk}} * {{Z|kjh}}: {{W-|kjh|пӱӱр}} * {{Z|km}}: {{W+|km|ចចក}} * {{Z|apj}}: {{W-|apj|ba’iitso}} * {{Z|yai}}: {{W-|yai|урк}} * {{Z|sah}}: {{W-|sah|бөрө|sc=Cyrl}} * {{Z|yi}}: {{W-|yi|וואָלף|n}} * Yokutî: *: {{Z|yok-svy}}: {{W-|yok-svy|yawlicʼ}} * {{Z|ii}}: {{W-|ii|ꆿꍫ}}, {{W-|ii|ꆿꆚ}} * {{Z|esu}}: {{W-|esu|kegluneq}} * {{Z|el}}: {{W+|el|λύκος|n}} *: Kevn: {{W-|grc|λύκος|n}} * {{Z|za}}: {{W-|za|manaez}} * {{Z|zu}}: {{W-|zu|inja yasendle|c9|c10}} * {{Z|zun}}: {{W-|zun|yuna:wik'o}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{f|ku|bijîşkî}} [[xur]], [[nexweşî|nexweşiyek]] e ku mirov û [[heywan]]an [[xurandin|dixurîne]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|hy}}: {{W|hy|գայլ|tr=gayl}} {{werger-bin}} {{bend}} === Navdêr 3 === {{navdêr|ku|z=m}} # [[girê]], [[girêk]], [[girê]]dan (bi taybetî ji [[terik]]ên daran yan jî bi [[qor]] û [[qamîş]]î) #* {{bêmînak|ku}} ==== Jê ==== {{kol3|ku |gur dan<q:lêker> |gurdan<q:navdêr> |gurdayî<q:rengdêr> |gurî |gurkî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|gur}} {{rengdêr|ku}}, {{r-ya req}} # [[xurt]], [[bihêz]], [[qewî]], [[geş]]. #* {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Xwînbarî dikir bi herdu çavan<br />Seyla cegerê wesa li '''gur''' hat<br />Goya ko bi ser Erez ve gur hat}} #* {{jêder-pirtûk|ku|jêgirtin=...agirê '''gur'''...|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=72|isbn=9786257724838}} ==== Formên alternatîv ==== * {{g|ku|gurr}} {{mj|2}} ==== Jê ==== {{kol3|ku|cure=Jê |gurî |gur bûn<q:lêker> |gur kirin<q:lêker> |gurbûn<q:navdêr> |gurkirin<q:navdêr> |gurbûyî<q:rengdêr> |gurkirî<q:rengdêr> }} ==== Etîmolojî ==== Hevreh bi {{hv|ckb|گوڕ|w=têhn; hêz}}, {{hv|sa|घृण}}, ji {{jinûvesazî|gurn}}, {{mîr|ira-pro|ku|*gr̥náh}}, {{mîr|iir-pro|ku|*gʰr̥nás}}, {{mîr|ine-pro|ku|*gʷʰer-||germ, kel}}, hevreh bi {{q|ku|germ}} û {{q|ku|kel}}. Guherra ramanê a mecazî ji ''têhn, germî'' va di zimanên din da jî peyda ye. Bêtêkilî {{hv|tr|gür}} û {{q|tr|güç}}. Ramanên din ên wek "dengê brûskan" [[onomatopoetîk]] in. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|dicht}}, {{W|de|üppig|guman=erê}} * {{Z|ar}}: {{W|ar|قوي}}, {{W|ar|متين}} * {{Z|fa}}: {{W|fa|شدید}} * {{Z|en}}: {{W+|en|powerful}}, {{W+|en|mighty}},{{W+|en|strong}}, {{W|en|vehement|guman=erê}} {{werger-bin}} == {{ziman|sq}} == === Navdêr === {{navdêr|sq}} # [[kevir]] #* {{bêmînak|sq}} {{PH-nîşan|17/2011}} 95nj7y9rfapkqdc2fm85zwsqc4uyh02 ewê 0 5752 6328952 6232765 2026-08-11T11:49:37Z Balyozbot 7867 /* Cînav */ sererastkirin 6328952 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Cînav === {{cînav|ku}} # {{guherto|wê}} #: ''Forma nêr: [[ewî]].'' #* {{jêder-malper|ku|jêgirtin=Dîsan ew qizîka ku te qala '''ewê''' kir, zanîngeh xwendiye, [...]|nivîskar=Rehmî Kurdziman|sernav=Ez ji xwe ra nabêjim nivîskar, karê min nivîskarî nîne|malper=inanolo.blogspot.com|url=https://inanolo.blogspot.com/2018/10/rehmi-kurdziman-ez-ji-xwe-ra-nabejim.html|sal=2018}} #* {{bêmînak|ku}} # [[ê]], [[yê]], [[ew]] yê ku #: {{mk|ku|'''Ewê''' bizane, divê bêje.|Ew ê bizane.|rêz=1}} ==== Ji wêjeya klasîk ==== * {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=''Qani' bi tesewwura cemalê</br>Fanî bikitin '''ewê''' wucûdê</br>Baqî bibitin bi vê şuhûdê«}} ==== Etîmolojî ==== Ji {{paş|ku|ew|-ê}}. jep3y3lkw2u94w0hjmcj0zim2uf39c6 ajotin 0 5779 6328757 6296351 2026-08-10T23:39:22Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328757 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-ajotin.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|ajotin|form=gerguhêz|niha=ajo|borî=ajot}} [[Wêne:Rush Rush Rush.jpg|thumb|Kesek tirimpêlê '''diajo'''.]] {{lêker|ku|c=x-gh}} # [[tirimpêl|Tirimpêl]]ek yan [[dewar]]ek [[meşandin]] ango anîn yan [[birin]]. #: {{mk|ku|Te çima [[terş]]ê xwe '''ajotiye''' nav [[bûstan]]ê me?!}} # [[vêkişandin|Vêkişandin]], [[dirêj bûn]]. #: {{mk|ku|Civîna wan seetekê '''ajot'''.|ango civîna wan seetekê dirêj bû|birêz=1}} # [[kêlan|Kêlan]], [[cot]] kirin. #: {{mk|ku|Ew hê jî zeviyên xwe bi [[ga]]yan '''diajon''' (an jî '''[[dojin]]''').}} # [[teqîb|Teqîb]] kirin, mînak [[şop]] ajotin. #* {{bêmînak|ku}} # [[zixtkirin|Zixtkirin]], [[handan]]. #* {{bêmînak|ku}} # [[sirgûn kirin]] #* {{jêder-pirtûk|ku|jêgirtin=Walah eve xebera derew biderdikeve ez dê te tālān bikim û kep û guhêd te jî ji boy sosret jê kim û te ji nêva êlê biderînim û '''bajom (biajom)'''! Êdî tu dizanî!|nivîskar=Mele Mehmûdê Bazîdî|edîtor= Mîkaîl Bilbil; Mistafa Oztirk |sernav= Tûhfetu'l-Xîlan Fî Zimanê Kurdan |weşanxane= Weqfa Mezopotamyayê |sal=2019|çap=1|rûpel=161|isbn=978-605-80975-1-3}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاژۆتن}} * {{ku-kr|ажотьн}} ==== Jê ==== {{kol3|ku | ajokar | ajokarî | ajoname | ajonamedar | ajonamedarî | ajovan | ajovanî | ajozan | ajozanî }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*h₂eǵ-}}, {{ji|ira-pro|ku|*aza-}}, [[hevreh]]a {{g|ae|𐬀𐬰𐬀𐬌𐬙𐬌}} ya avestayî, sanskrîtî {{g|sa|अजति}}, ermeniya kevn {{g|xcl|ածեմ|tr=acem}}, yûnaniya kevn {{g|grc|ἄγω|tr=ago}}, latînî {{q|la|agō}}, swêdî {{q|sv|åka}}... Heman peyv ihtimal e ku serekaniya {{q|zza|hêga|tr=[[zevî]]}} ya zazakî ye jî. {{q|fi|ajaa}} ja fînî û {{q|et|ajama}} ya estonî bi ihtimaleke mezin ji {{ji|ine-pro|ku|-}}, bi taybetî ji {{ji|ira-pro|ku|-}} hatine deynkirin. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|sc=Latn|lê xurrîn}} (1), {{W-|ckb|sc=Latn|xayandin}} (3) ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|bestuur}}, {{W+|af|lei}} * {{Z|de}}: {{W+|de|dauern}}, {{W+|de|fahren}}, {{W+|de|lenken}}, {{W+|de|führen}}, {{W+|de|leiten}}, {{W+|de|einfahren}}, {{W+|de|einlenken}}, {{W+|de|Einfahrt|m}}, {{W+|de|abführen}}, {{W+|de|schieben}}, {{W+|de|steuern}}, {{W+|de|treiben|guman=erê}} * {{Z|cs}}: {{W+|cs|doprovodit}}, {{W-|cs|dovézt}}, {{W+|cs|dovést}}, {{W+|cs|předvést}}, {{W+|cs|převézt}}, {{W+|cs|přinést}}, {{W+|cs|přivézt}}, {{W-|cs|přivážet}}, {{W+|cs|řídit}}, {{W+|cs|vést}}, {{W+|cs|vodit}}, {{W+|cs|vozit}} * {{Z|da}}: {{W-|da|styrre}}, {{W-|da|føre}} * {{Z|ar}}: {{W-|ar|السیاقة}}, {{W-|ar|القود}}, {{W-|ar|القیادة}}, {{W-|ar|حرث|guman=erê}}, {{W-|ar|مساق|guman=erê}}, {{W-|ar|القیاد|guman=erê}} * {{Z|eo}}: {{W+|eo|stiri}}, {{W-|eo|konduki}} * {{Z|fa}}: {{W+|fa|رانندگی}}, {{W+|fa|راندن}}, {{W+|fa|رانندگی کردن}}, {{W+|fa|هدایت کردن}}, {{W+|fa|فریاد زدن|guman=erê}} * {{Z|fo}}: {{W-|fo|leiða}}, {{W-|fo|føra}} * {{Z|fi}}: {{W+|fi|ajaa}} * {{Z|fr}}: {{W+|fr|conduire}} * {{Z|fy}}: {{W-|fy|liede}} * {{Z|nl}}: {{W+|nl|besturen}}, {{W+|nl|sturen}}, {{W+|nl|brengen}}, {{W+|nl|leiden}}, {{W+|nl|geleiden}}, {{W+|nl|voeren}} * {{Z|he}}: {{W+|he|נחה|n}}, {{W+|he|נהג|n}}, {{W+|he|גרש|cuda=גּרשׁ}} * {{Z|io}}: {{W+|io|duktar}} * {{Z|en}}: {{W+|en|drive}}, {{W+|en|steer}}, {{W+|en|fly}}, {{W+|en|conduct}}, {{W+|en|guide}}, {{W+|en|lead}}, {{W+|en|channel}}, {{W+|en|wage}}, {{W+|en|bring}}, {{W+|en|drag on}}, {{W+|en|driving}}, {{W+|en|cruise}}, {{W+|en|prodding}}, {{W+|en|going away|guman=erê}}, {{W+|en|conducting|guman=erê}}, {{W+|en|conn|guman=erê}}, {{W+|en|cox|guman=erê}}, {{W+|en|cruising|guman=erê}}, {{W+|en|foment|guman=erê}}, {{W+|en|fomentation|guman=erê}}, {{W+|en|fomenting|guman=erê}}, {{W+|en|hortation|guman=erê}}, {{W+|en|instigation|guman=erê}}, {{W+|en|leading|guman=erê}}, {{W+|en|navigating|guman=erê}}, {{W+|en|spurring|guman=erê}}, {{W+|en|steerage|guman=erê}}, {{W+|en|tarring|guman=erê}}, {{W+|en|urging|guman=erê}}, {{W+|en|whish|guman=erê}}, {{W+|en|till}} * {{Z|it}}: {{W+|it|condurre}}, {{W+|it|guidare}} * {{Z|ca}}: {{W+|ca|conduir}}, {{W+|ca|menar}} * {{Z|la}}: {{W+|la|ducere}} * {{Z|ms}}: {{W+|ms|pimpin}} * {{Z|pl}}: {{W+|pl|prowadzić}} * {{Z|pt}}: {{W+|pt|conduzir}}, {{W+|pt|dirigir}}, {{W+|pt|guiar}}, {{W+|pt|levar}} * {{Z|ro}}: {{W+|ro|conduce}} * {{Z|ru}}: {{W+|ru|вести}} * {{Z|se}}: {{W-|se|doalvut}} (1-3) * {{Z|ses}}: {{W-|ses|zurandi}} * {{Z|es}}: {{W+|es|conducir}} * {{Z|sv}}: {{W+|sv|köra}}, {{W+|sv|åka}}, {{W+|sv|föra}} * {{Z|tr}}: {{W+|tr|sürmek}}, {{W+|tr|çift sürmek}}, {{W+|tr|gütmek}}, {{W+|tr|tutmak}}, {{W+|tr|yürütmek}}, {{W+|tr|çekmek|guman=erê}}, {{W-|tr|çığlık atmak|guman=erê}}, {{W+|tr|sürüklenmek|guman=erê}}, {{W+|tr|uzamak|guman=erê}}, {{W+|tr|yağdırmak|guman=erê}} * {{Z|el}}: {{W+|el|οδηγώ|R=odhigó}} * {{Z|fsl}}: [http://lsf.wiksign.org/wiki/conduire conduire] {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[meşandin|Meşandin]] ango anîn yan [[birin]]a [[tirimpêl|tirimpêl]]ek yan [[dewar]]ek. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürme}}, {{W+|tr|gütme}}, {{W+|tr|hamle}}, {{W+|tr|sürüklenme}}, {{W+|tr|yürütme}}, {{W+|tr|uzama|guman=erê}}, {{W+|tr|yaşatma|guman=erê}} {{werger-bin}} mvqavp6hedqqmq6gnnu0th1of1qj441 6328759 6328757 2026-08-10T23:58:57Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328759 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-ajotin.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|ajotin|form=gerguhêz|niha=ajo|borî=ajot}} [[Wêne:Rush Rush Rush.jpg|thumb|Kesek tirimpêlê '''diajo'''.]] {{lêker|ku|c=x-gh}} # [[tirimpêl|Tirimpêl]]ek yan [[dewar]]ek [[meşandin]] ango anîn yan [[birin]]. #: {{mk|ku|Te çima [[terş]]ê xwe '''ajotiye''' nav [[bûstan]]ê me?!}} # [[vêkişandin|Vêkişandin]], [[dirêj bûn]]. #: {{mk|ku|Civîna wan seetekê '''ajot'''.|ango civîna wan seetekê dirêj bû|birêz=1}} # [[kêlan|Kêlan]], [[cot]] kirin. #: {{mk|ku|Ew hê jî zeviyên xwe bi [[ga]]yan '''diajon''' (an jî '''[[dojin]]''').}} # [[teqîb|Teqîb]] kirin, mînak [[şop]] ajotin. #* {{bêmînak|ku}} # [[zixtkirin|Zixtkirin]], [[handan]]. #* {{bêmînak|ku}} # [[sirgûn kirin]] #* {{jêder-pirtûk|ku|jêgirtin=Walah eve xebera derew biderdikeve ez dê te tālān bikim û kep û guhêd te jî ji boy sosret jê kim û te ji nêva êlê biderînim û '''bajom (biajom)'''! Êdî tu dizanî!|nivîskar=Mele Mehmûdê Bazîdî|edîtor= Mîkaîl Bilbil; Mistafa Oztirk |sernav= Tûhfetu'l-Xîlan Fî Zimanê Kurdan lînka-sernav=Tuhfetu'l-xullan fî zimanê kurdan|weşanxane= Weqfa Mezopotamyayê |sal=1866|sala-weşandinê=2019|çap=1|rûpel=161|isbn=978-605-80975-1-3}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاژۆتن}} * {{ku-kr|ажотьн}} ==== Jê ==== {{kol3|ku | ajokar | ajokarî | ajoname | ajonamedar | ajonamedarî | ajovan | ajovanî | ajozan | ajozanî }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*h₂eǵ-}}, {{ji|ira-pro|ku|*aza-}}, [[hevreh]]a {{g|ae|𐬀𐬰𐬀𐬌𐬙𐬌}} ya avestayî, sanskrîtî {{g|sa|अजति}}, ermeniya kevn {{g|xcl|ածեմ|tr=acem}}, yûnaniya kevn {{g|grc|ἄγω|tr=ago}}, latînî {{q|la|agō}}, swêdî {{q|sv|åka}}... Heman peyv ihtimal e ku serekaniya {{q|zza|hêga|tr=[[zevî]]}} ya zazakî ye jî. {{q|fi|ajaa}} ja fînî û {{q|et|ajama}} ya estonî bi ihtimaleke mezin ji {{ji|ine-pro|ku|-}}, bi taybetî ji {{ji|ira-pro|ku|-}} hatine deynkirin. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|sc=Latn|lê xurrîn}} (1), {{W-|ckb|sc=Latn|xayandin}} (3) ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|bestuur}}, {{W+|af|lei}} * {{Z|de}}: {{W+|de|dauern}}, {{W+|de|fahren}}, {{W+|de|lenken}}, {{W+|de|führen}}, {{W+|de|leiten}}, {{W+|de|einfahren}}, {{W+|de|einlenken}}, {{W+|de|Einfahrt|m}}, {{W+|de|abführen}}, {{W+|de|schieben}}, {{W+|de|steuern}}, {{W+|de|treiben|guman=erê}} * {{Z|cs}}: {{W+|cs|doprovodit}}, {{W-|cs|dovézt}}, {{W+|cs|dovést}}, {{W+|cs|předvést}}, {{W+|cs|převézt}}, {{W+|cs|přinést}}, {{W+|cs|přivézt}}, {{W-|cs|přivážet}}, {{W+|cs|řídit}}, {{W+|cs|vést}}, {{W+|cs|vodit}}, {{W+|cs|vozit}} * {{Z|da}}: {{W-|da|styrre}}, {{W-|da|føre}} * {{Z|ar}}: {{W-|ar|السیاقة}}, {{W-|ar|القود}}, {{W-|ar|القیادة}}, {{W-|ar|حرث|guman=erê}}, {{W-|ar|مساق|guman=erê}}, {{W-|ar|القیاد|guman=erê}} * {{Z|eo}}: {{W+|eo|stiri}}, {{W-|eo|konduki}} * {{Z|fa}}: {{W+|fa|رانندگی}}, {{W+|fa|راندن}}, {{W+|fa|رانندگی کردن}}, {{W+|fa|هدایت کردن}}, {{W+|fa|فریاد زدن|guman=erê}} * {{Z|fo}}: {{W-|fo|leiða}}, {{W-|fo|føra}} * {{Z|fi}}: {{W+|fi|ajaa}} * {{Z|fr}}: {{W+|fr|conduire}} * {{Z|fy}}: {{W-|fy|liede}} * {{Z|nl}}: {{W+|nl|besturen}}, {{W+|nl|sturen}}, {{W+|nl|brengen}}, {{W+|nl|leiden}}, {{W+|nl|geleiden}}, {{W+|nl|voeren}} * {{Z|he}}: {{W+|he|נחה|n}}, {{W+|he|נהג|n}}, {{W+|he|גרש|cuda=גּרשׁ}} * {{Z|io}}: {{W+|io|duktar}} * {{Z|en}}: {{W+|en|drive}}, {{W+|en|steer}}, {{W+|en|fly}}, {{W+|en|conduct}}, {{W+|en|guide}}, {{W+|en|lead}}, {{W+|en|channel}}, {{W+|en|wage}}, {{W+|en|bring}}, {{W+|en|drag on}}, {{W+|en|driving}}, {{W+|en|cruise}}, {{W+|en|prodding}}, {{W+|en|going away|guman=erê}}, {{W+|en|conducting|guman=erê}}, {{W+|en|conn|guman=erê}}, {{W+|en|cox|guman=erê}}, {{W+|en|cruising|guman=erê}}, {{W+|en|foment|guman=erê}}, {{W+|en|fomentation|guman=erê}}, {{W+|en|fomenting|guman=erê}}, {{W+|en|hortation|guman=erê}}, {{W+|en|instigation|guman=erê}}, {{W+|en|leading|guman=erê}}, {{W+|en|navigating|guman=erê}}, {{W+|en|spurring|guman=erê}}, {{W+|en|steerage|guman=erê}}, {{W+|en|tarring|guman=erê}}, {{W+|en|urging|guman=erê}}, {{W+|en|whish|guman=erê}}, {{W+|en|till}} * {{Z|it}}: {{W+|it|condurre}}, {{W+|it|guidare}} * {{Z|ca}}: {{W+|ca|conduir}}, {{W+|ca|menar}} * {{Z|la}}: {{W+|la|ducere}} * {{Z|ms}}: {{W+|ms|pimpin}} * {{Z|pl}}: {{W+|pl|prowadzić}} * {{Z|pt}}: {{W+|pt|conduzir}}, {{W+|pt|dirigir}}, {{W+|pt|guiar}}, {{W+|pt|levar}} * {{Z|ro}}: {{W+|ro|conduce}} * {{Z|ru}}: {{W+|ru|вести}} * {{Z|se}}: {{W-|se|doalvut}} (1-3) * {{Z|ses}}: {{W-|ses|zurandi}} * {{Z|es}}: {{W+|es|conducir}} * {{Z|sv}}: {{W+|sv|köra}}, {{W+|sv|åka}}, {{W+|sv|föra}} * {{Z|tr}}: {{W+|tr|sürmek}}, {{W+|tr|çift sürmek}}, {{W+|tr|gütmek}}, {{W+|tr|tutmak}}, {{W+|tr|yürütmek}}, {{W+|tr|çekmek|guman=erê}}, {{W-|tr|çığlık atmak|guman=erê}}, {{W+|tr|sürüklenmek|guman=erê}}, {{W+|tr|uzamak|guman=erê}}, {{W+|tr|yağdırmak|guman=erê}} * {{Z|el}}: {{W+|el|οδηγώ|R=odhigó}} * {{Z|fsl}}: [http://lsf.wiksign.org/wiki/conduire conduire] {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[meşandin|Meşandin]] ango anîn yan [[birin]]a [[tirimpêl|tirimpêl]]ek yan [[dewar]]ek. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürme}}, {{W+|tr|gütme}}, {{W+|tr|hamle}}, {{W+|tr|sürüklenme}}, {{W+|tr|yürütme}}, {{W+|tr|uzama|guman=erê}}, {{W+|tr|yaşatma|guman=erê}} {{werger-bin}} 3dfziejvangzbanbxeer2ftgvdggo0u 6328760 6328759 2026-08-11T00:02:27Z Wikihez 7344 /* Lêker */ 6328760 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-ajotin.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|ajotin|form=gerguhêz|niha=ajo|borî=ajot}} [[Wêne:Rush Rush Rush.jpg|thumb|Kesek tirimpêlê '''diajo'''.]] {{lêker|ku|c=x-gh}} # [[tirimpêl|Tirimpêl]]ek yan [[dewar]]ek [[meşandin]] ango anîn yan [[birin]]. #: {{mk|ku|Te çima [[terş]]ê xwe '''ajotiye''' nav [[bûstan]]ê me?!}} # [[vêkişandin|Vêkişandin]], [[dirêj bûn]]. #: {{mk|ku|Civîna wan seetekê '''ajot'''.|ango civîna wan seetekê dirêj bû|birêz=1}} # [[kêlan|Kêlan]], [[cot]] kirin. #: {{mk|ku|Ew hê jî zeviyên xwe bi [[ga]]yan '''diajon''' (an jî '''[[dojin]]''').}} # [[teqîb|Teqîb]] kirin, mînak [[şop]] ajotin. #* {{bêmînak|ku}} # [[zixtkirin|Zixtkirin]], [[handan]]. #* {{bêmînak|ku}} # [[sirgûn kirin]] #* {{jêder-pirtûk|ku|jêgirtin=Walah eve xebera derew biderdikeve ez dê te tālān bikim û kep û guhêd te jî ji boy sosret jê kim û te ji nêva êlê biderînim û '''bajom (biajom)'''! Êdî tu dizanî!|nivîskar=w:Mele Mehmûdê Bazîdî|edîtor= Mîkaîl Bilbil; Mistafa Oztirk |sernav= w:Tûhfetu'l-Xîlan Fî Zimanê Kurdan|weşanxane= Weqfa Mezopotamyayê |sal=1866|sala-weşandinê=2019|çap=1|rûpel=161|isbn=978-605-80975-1-3}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاژۆتن}} * {{ku-kr|ажотьн}} ==== Jê ==== {{kol3|ku | ajokar | ajokarî | ajoname | ajonamedar | ajonamedarî | ajovan | ajovanî | ajozan | ajozanî }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*h₂eǵ-}}, {{ji|ira-pro|ku|*aza-}}, [[hevreh]]a {{g|ae|𐬀𐬰𐬀𐬌𐬙𐬌}} ya avestayî, sanskrîtî {{g|sa|अजति}}, ermeniya kevn {{g|xcl|ածեմ|tr=acem}}, yûnaniya kevn {{g|grc|ἄγω|tr=ago}}, latînî {{q|la|agō}}, swêdî {{q|sv|åka}}... Heman peyv ihtimal e ku serekaniya {{q|zza|hêga|tr=[[zevî]]}} ya zazakî ye jî. {{q|fi|ajaa}} ja fînî û {{q|et|ajama}} ya estonî bi ihtimaleke mezin ji {{ji|ine-pro|ku|-}}, bi taybetî ji {{ji|ira-pro|ku|-}} hatine deynkirin. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|sc=Latn|lê xurrîn}} (1), {{W-|ckb|sc=Latn|xayandin}} (3) ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|bestuur}}, {{W+|af|lei}} * {{Z|de}}: {{W+|de|dauern}}, {{W+|de|fahren}}, {{W+|de|lenken}}, {{W+|de|führen}}, {{W+|de|leiten}}, {{W+|de|einfahren}}, {{W+|de|einlenken}}, {{W+|de|Einfahrt|m}}, {{W+|de|abführen}}, {{W+|de|schieben}}, {{W+|de|steuern}}, {{W+|de|treiben|guman=erê}} * {{Z|cs}}: {{W+|cs|doprovodit}}, {{W-|cs|dovézt}}, {{W+|cs|dovést}}, {{W+|cs|předvést}}, {{W+|cs|převézt}}, {{W+|cs|přinést}}, {{W+|cs|přivézt}}, {{W-|cs|přivážet}}, {{W+|cs|řídit}}, {{W+|cs|vést}}, {{W+|cs|vodit}}, {{W+|cs|vozit}} * {{Z|da}}: {{W-|da|styrre}}, {{W-|da|føre}} * {{Z|ar}}: {{W-|ar|السیاقة}}, {{W-|ar|القود}}, {{W-|ar|القیادة}}, {{W-|ar|حرث|guman=erê}}, {{W-|ar|مساق|guman=erê}}, {{W-|ar|القیاد|guman=erê}} * {{Z|eo}}: {{W+|eo|stiri}}, {{W-|eo|konduki}} * {{Z|fa}}: {{W+|fa|رانندگی}}, {{W+|fa|راندن}}, {{W+|fa|رانندگی کردن}}, {{W+|fa|هدایت کردن}}, {{W+|fa|فریاد زدن|guman=erê}} * {{Z|fo}}: {{W-|fo|leiða}}, {{W-|fo|føra}} * {{Z|fi}}: {{W+|fi|ajaa}} * {{Z|fr}}: {{W+|fr|conduire}} * {{Z|fy}}: {{W-|fy|liede}} * {{Z|nl}}: {{W+|nl|besturen}}, {{W+|nl|sturen}}, {{W+|nl|brengen}}, {{W+|nl|leiden}}, {{W+|nl|geleiden}}, {{W+|nl|voeren}} * {{Z|he}}: {{W+|he|נחה|n}}, {{W+|he|נהג|n}}, {{W+|he|גרש|cuda=גּרשׁ}} * {{Z|io}}: {{W+|io|duktar}} * {{Z|en}}: {{W+|en|drive}}, {{W+|en|steer}}, {{W+|en|fly}}, {{W+|en|conduct}}, {{W+|en|guide}}, {{W+|en|lead}}, {{W+|en|channel}}, {{W+|en|wage}}, {{W+|en|bring}}, {{W+|en|drag on}}, {{W+|en|driving}}, {{W+|en|cruise}}, {{W+|en|prodding}}, {{W+|en|going away|guman=erê}}, {{W+|en|conducting|guman=erê}}, {{W+|en|conn|guman=erê}}, {{W+|en|cox|guman=erê}}, {{W+|en|cruising|guman=erê}}, {{W+|en|foment|guman=erê}}, {{W+|en|fomentation|guman=erê}}, {{W+|en|fomenting|guman=erê}}, {{W+|en|hortation|guman=erê}}, {{W+|en|instigation|guman=erê}}, {{W+|en|leading|guman=erê}}, {{W+|en|navigating|guman=erê}}, {{W+|en|spurring|guman=erê}}, {{W+|en|steerage|guman=erê}}, {{W+|en|tarring|guman=erê}}, {{W+|en|urging|guman=erê}}, {{W+|en|whish|guman=erê}}, {{W+|en|till}} * {{Z|it}}: {{W+|it|condurre}}, {{W+|it|guidare}} * {{Z|ca}}: {{W+|ca|conduir}}, {{W+|ca|menar}} * {{Z|la}}: {{W+|la|ducere}} * {{Z|ms}}: {{W+|ms|pimpin}} * {{Z|pl}}: {{W+|pl|prowadzić}} * {{Z|pt}}: {{W+|pt|conduzir}}, {{W+|pt|dirigir}}, {{W+|pt|guiar}}, {{W+|pt|levar}} * {{Z|ro}}: {{W+|ro|conduce}} * {{Z|ru}}: {{W+|ru|вести}} * {{Z|se}}: {{W-|se|doalvut}} (1-3) * {{Z|ses}}: {{W-|ses|zurandi}} * {{Z|es}}: {{W+|es|conducir}} * {{Z|sv}}: {{W+|sv|köra}}, {{W+|sv|åka}}, {{W+|sv|föra}} * {{Z|tr}}: {{W+|tr|sürmek}}, {{W+|tr|çift sürmek}}, {{W+|tr|gütmek}}, {{W+|tr|tutmak}}, {{W+|tr|yürütmek}}, {{W+|tr|çekmek|guman=erê}}, {{W-|tr|çığlık atmak|guman=erê}}, {{W+|tr|sürüklenmek|guman=erê}}, {{W+|tr|uzamak|guman=erê}}, {{W+|tr|yağdırmak|guman=erê}} * {{Z|el}}: {{W+|el|οδηγώ|R=odhigó}} * {{Z|fsl}}: [http://lsf.wiksign.org/wiki/conduire conduire] {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[meşandin|Meşandin]] ango anîn yan [[birin]]a [[tirimpêl|tirimpêl]]ek yan [[dewar]]ek. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürme}}, {{W+|tr|gütme}}, {{W+|tr|hamle}}, {{W+|tr|sürüklenme}}, {{W+|tr|yürütme}}, {{W+|tr|uzama|guman=erê}}, {{W+|tr|yaşatma|guman=erê}} {{werger-bin}} 74y5w4co82vmij3e0ipj71liiw79jii 6328855 6328760 2026-08-11T01:12:07Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6328855 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-ajotin.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|ajotin|form=gerguhêz|niha=ajo|borî=ajot}} [[Wêne:Rush Rush Rush.jpg|thumb|Kesek tirimpêlê '''diajo'''.]] {{lêker|ku|c=x-gh}} # [[tirimpêl|Tirimpêlek]] yan [[dewar]]ek [[meşandin]] ango anîn yan [[birin]]. #: {{mk|ku|Te çima [[terş]]ê xwe '''ajotiye''' nav [[bûstan]]ê me?!}} # [[vêkişandin|Vêkişandin]], [[dirêj bûn]]. #: {{mk|ku|Civîna wan seetekê '''ajot'''.|ango civîna wan seetekê dirêj bû|birêz=1}} # [[kêlan|Kêlan]], [[cot]] kirin. #: {{mk|ku|Ew hê jî zeviyên xwe bi [[ga]]yan '''diajon''' (an jî '''[[dojin]]''').}} # [[teqîb|Teqîb]] kirin, mînak [[şop]] ajotin. #* {{bêmînak|ku}} # [[zixtkirin|Zixtkirin]], [[handan]]. #* {{bêmînak|ku}} # [[sirgûn kirin]] #* {{jêder-pirtûk|ku|jêgirtin=Walah eve xebera derew biderdikeve ez dê te tālān bikim û kep û guhêd te jî ji boy sosret jê kim û te ji nêva êlê biderînim û '''bajom (biajom)'''! Êdî tu dizanî!|nivîskar=w:Mele Mehmûdê Bazîdî|edîtor= Mîkaîl Bilbil; Mistafa Oztirk |sernav= w:Tûhfetu'l-Xîlan Fî Zimanê Kurdan|weşanxane= Weqfa Mezopotamyayê |sal=1866|sala-weşandinê=2019|çap=1|rûpel=161|isbn=978-605-80975-1-3}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاژۆتن}} * {{ku-kr|ажотьн}} ==== Jê ==== {{kol3|ku | ajokar | ajokarî | ajoname | ajonamedar | ajonamedarî | ajovan | ajovanî | ajozan | ajozanî }} ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|*h₂eǵ-}}, {{ji|ira-pro|ku|*aza-}}, [[hevreh]]a {{g|ae|𐬀𐬰𐬀𐬌𐬙𐬌}} ya avestayî, sanskrîtî {{g|sa|अजति}}, ermeniya kevn {{g|xcl|ածեմ|tr=acem}}, yûnaniya kevn {{g|grc|ἄγω|tr=ago}}, latînî {{q|la|agō}}, swêdî {{q|sv|åka}}... Heman peyv ihtimal e ku serekaniya {{q|zza|hêga|tr=[[zevî]]}} ya zazakî ye jî. {{q|fi|ajaa}} ja fînî û {{q|et|ajama}} ya estonî bi ihtimaleke mezin ji {{ji|ine-pro|ku|-}}, bi taybetî ji {{ji|ira-pro|ku|-}} hatine deynkirin. ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|sc=Latn|lê xurrîn}} (1), {{W-|ckb|sc=Latn|xayandin}} (3) ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|bestuur}}, {{W+|af|lei}} * {{Z|de}}: {{W+|de|dauern}}, {{W+|de|fahren}}, {{W+|de|lenken}}, {{W+|de|führen}}, {{W+|de|leiten}}, {{W+|de|einfahren}}, {{W+|de|einlenken}}, {{W+|de|Einfahrt|m}}, {{W+|de|abführen}}, {{W+|de|schieben}}, {{W+|de|steuern}}, {{W+|de|treiben|guman=erê}} * {{Z|cs}}: {{W+|cs|doprovodit}}, {{W-|cs|dovézt}}, {{W+|cs|dovést}}, {{W+|cs|předvést}}, {{W+|cs|převézt}}, {{W+|cs|přinést}}, {{W+|cs|přivézt}}, {{W-|cs|přivážet}}, {{W+|cs|řídit}}, {{W+|cs|vést}}, {{W+|cs|vodit}}, {{W+|cs|vozit}} * {{Z|da}}: {{W-|da|styrre}}, {{W-|da|føre}} * {{Z|ar}}: {{W-|ar|السیاقة}}, {{W-|ar|القود}}, {{W-|ar|القیادة}}, {{W-|ar|حرث|guman=erê}}, {{W-|ar|مساق|guman=erê}}, {{W-|ar|القیاد|guman=erê}} * {{Z|eo}}: {{W+|eo|stiri}}, {{W-|eo|konduki}} * {{Z|fa}}: {{W+|fa|رانندگی}}, {{W+|fa|راندن}}, {{W+|fa|رانندگی کردن}}, {{W+|fa|هدایت کردن}}, {{W+|fa|فریاد زدن|guman=erê}} * {{Z|fo}}: {{W-|fo|leiða}}, {{W-|fo|føra}} * {{Z|fi}}: {{W+|fi|ajaa}} * {{Z|fr}}: {{W+|fr|conduire}} * {{Z|fy}}: {{W-|fy|liede}} * {{Z|nl}}: {{W+|nl|besturen}}, {{W+|nl|sturen}}, {{W+|nl|brengen}}, {{W+|nl|leiden}}, {{W+|nl|geleiden}}, {{W+|nl|voeren}} * {{Z|he}}: {{W+|he|נחה|n}}, {{W+|he|נהג|n}}, {{W+|he|גרש|cuda=גּרשׁ}} * {{Z|io}}: {{W+|io|duktar}} * {{Z|en}}: {{W+|en|drive}}, {{W+|en|steer}}, {{W+|en|fly}}, {{W+|en|conduct}}, {{W+|en|guide}}, {{W+|en|lead}}, {{W+|en|channel}}, {{W+|en|wage}}, {{W+|en|bring}}, {{W+|en|drag on}}, {{W+|en|driving}}, {{W+|en|cruise}}, {{W+|en|prodding}}, {{W+|en|going away|guman=erê}}, {{W+|en|conducting|guman=erê}}, {{W+|en|conn|guman=erê}}, {{W+|en|cox|guman=erê}}, {{W+|en|cruising|guman=erê}}, {{W+|en|foment|guman=erê}}, {{W+|en|fomentation|guman=erê}}, {{W+|en|fomenting|guman=erê}}, {{W+|en|hortation|guman=erê}}, {{W+|en|instigation|guman=erê}}, {{W+|en|leading|guman=erê}}, {{W+|en|navigating|guman=erê}}, {{W+|en|spurring|guman=erê}}, {{W+|en|steerage|guman=erê}}, {{W+|en|tarring|guman=erê}}, {{W+|en|urging|guman=erê}}, {{W+|en|whish|guman=erê}}, {{W+|en|till}} * {{Z|it}}: {{W+|it|condurre}}, {{W+|it|guidare}} * {{Z|ca}}: {{W+|ca|conduir}}, {{W+|ca|menar}} * {{Z|la}}: {{W+|la|ducere}} * {{Z|ms}}: {{W+|ms|pimpin}} * {{Z|pl}}: {{W+|pl|prowadzić}} * {{Z|pt}}: {{W+|pt|conduzir}}, {{W+|pt|dirigir}}, {{W+|pt|guiar}}, {{W+|pt|levar}} * {{Z|ro}}: {{W+|ro|conduce}} * {{Z|ru}}: {{W+|ru|вести}} * {{Z|se}}: {{W-|se|doalvut}} (1-3) * {{Z|ses}}: {{W-|ses|zurandi}} * {{Z|es}}: {{W+|es|conducir}} * {{Z|sv}}: {{W+|sv|köra}}, {{W+|sv|åka}}, {{W+|sv|föra}} * {{Z|tr}}: {{W+|tr|sürmek}}, {{W+|tr|çift sürmek}}, {{W+|tr|gütmek}}, {{W+|tr|tutmak}}, {{W+|tr|yürütmek}}, {{W+|tr|çekmek|guman=erê}}, {{W-|tr|çığlık atmak|guman=erê}}, {{W+|tr|sürüklenmek|guman=erê}}, {{W+|tr|uzamak|guman=erê}}, {{W+|tr|yağdırmak|guman=erê}} * {{Z|el}}: {{W+|el|οδηγώ|R=odhigó}} * {{Z|fsl}}: [http://lsf.wiksign.org/wiki/conduire conduire] {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[meşandin|Meşandin]] ango anîn yan [[birin]]a [[tirimpêl]]ek yan [[dewar]]ek. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürme}}, {{W+|tr|gütme}}, {{W+|tr|hamle}}, {{W+|tr|sürüklenme}}, {{W+|tr|yürütme}}, {{W+|tr|uzama|guman=erê}}, {{W+|tr|yaşatma|guman=erê}} {{werger-bin}} 3nlgbygocwnmcg67ufxmgh8l9kn68v6 guhartin 0 6298 6328970 6307669 2026-08-11T11:50:29Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328970 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|guhartin|form=gerguhêz|niha=guhêr|borî=guhart}} {{lêker|ku|c=x-gh}}, {{r-ya req}}, {{t-ya nerm}} # [[ferqî]] [[anku]] [[cudahî]] [[xistin]] tiştekî, <br />tiştek wek wê bi xwe nehêlan, <br />tiştek wek [[berê]] [[hêlan|nehêlan]] #: ''Qet wek berê nemaye, ta ta navê xwe jî '''guhartiye'''.'' #* {{jêder-malper|ku|jêgirtin=Di sersalê de hin gotinên her tên gotin hene wek 'serê malê binê malê xwedê kurekî bide vê malê.' Me jî ew '''guhart''' û got sere salê bine malê xwedê aştiyê bide vê malê.|sernav=Sersala Kurdî li Diyarbekirê hat pîrozkirin|malper=Kurdistan24|sal=2020|url=https://www.kurdistan24.net/ku/magazin/bd661661-f68d-4f4f-8faa-96e4ed7113b2}} #* {{jêder-pirtûk|ku|jêgirtin=Di tîrêjên tavê de hemû rengên keskesorê xuya ne: sor, porteqalî, zer, kesk, şîn û mor... Û rêza rengan hertim weke xwe ye û nayê '''guhartin'''.|nivîskar=Komxebat|nekat=1|sernav=Ansîklopediya Zarokan|cîh=Denmark|weşanxane={{w|Weşanên APECl|APEC}}|sal=2004|rûpel=|isbn=91-89675-32-0}} #* {{jêder-pirtûk|ku|jêgirtin=Piştî demekurtekê ew şaşî û matmayîna wan xwe '''guharte''' se xweşî û şadiyê.|nivîskar=Zeynelabîdin Zinar|sernav=Kadîna Mişkan|weşanxane={{w|Pencînar Weşanxanya Çanda Kurdî}}}} #* {{jêder-pirtûk|ku|jêgirtin=Di vî şerrî da ewçend Turk hatine kuştin ku, çemê Kuskêt rengê xwe '''guhart''', tev bû sorxwîn. Nemaze di vî şerrê panzde rojan da, şerrkerên Kurdan hinde bi camêrî dest biribûn xwe ku, serleşkerê Turk li ber vê mêraniyê mat mabû.|nivîskar=Osman Sebrî|sernav=Şerên Sasonê|cîh=Dîlaver Zengî}} #* {{jêder-kovar|ku|jêgirtin=Ez paşê jî bi elfabêya xwe mijûl dibûm. Lê hetanî qo tirq elfabeya xwe belav qirin ya me weqe xwè dima û têde me tişteqi bingehî ne '''diguhart'''. Min her tiştên xwe pê dinivîsandin û nasên xwe re dida zanîn. Weqè tirq elfabêya xwe belav qirin me dît qo di dengên hin herfan de elfabêyên me ne mîna hevin.|kovar=Hawar |sernav=Pêşgotinek|nivîskar= Celadet Bedîrxan|weşanxane=Nûdem|hejmar=13|sal=1932-1933|rûpel=791|cîld=1}} # Xistina tiştekî şûna tiştekî #: '' Ampûl şewitîye. Divê were '''guhartin''. # cil [[li xwe kirin]], cil [[lê kirin]] #: ''Heta cilê xwe ne '''guhart''', neçubû derve.'' #: ''Îro binê zarok min '''guhart''', sibe dora te ye''. # transferbûna wasiteyek din(tren, otobus, hwd) #: ''Heta stenbolê min sê otobus '''guhart'''''. ==== Bi alfabeyên din ==== * {{ku-ar|گوهارتن}} ==== Formên alternatîv ==== * {{hw|ku|guhertin}} * {{hw|ku|guhêrtin}} * {{hw|ku|guhurtin}} * {{hw|ku|gortin||Elbistan}} * {{hw|ku|gorandin}} ==== Hevmane ==== * {{g|ku|bedl kirin}} * {{g|ku|guherandin}} ==== Nêzîk ==== * {{g|ku|guhastin}} * {{g|ku|raguhastin}} * {{g|ku|veguhastin}} ==== Jê ==== {{stûn| * {{g|ku|guhartî}} * {{g|ku|guharto}} * {{g|ku|guhartinxwaz}} * {{g|ku|guhartok}} * {{g|ku|guhartokî}} * {{g|ku|guherde}} * {{g|ku|guherende}} * {{g|ku|guherînende}} * {{g|ku|guhêr}} * {{g|ku|guherbar}} * {{g|ku|guherkar}} * {{g|ku|guherbaz}} * {{g|ku|guhersaz}} * {{g|ku|guherger}} * {{g|ku|guhergîn}} * {{g|ku|reng guhartin}} * {{g|ku|veguhartin}} }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Gotinên pêşiyan ==== * {{g|ku|ma te mêr guhart, tê bextî xwe jî biguhêre}} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|giwartin|sc=Latn}}, {{W-|ckb|guwartin|sc=Latn}} * {{Z|zza}}: {{W-|zza|vurnayene}} ==== Werger ==== {{werger-ser|[[ferqî]] [[anku]] [[cudahî]] [[xistin]] tiştekî}} * {{Z|nds-de}}: {{W-|nds-de|verännern}}, {{W|nds-de|ännern}} * {{Z|de}}: {{W|de|ändern}}, {{W|de|verändern}}, {{W|de|verwandeln}} * {{Z|rup}}: {{W-|rup|alãxescu}} * {{Z|as}}: {{W-|as|সলনি কৰ}}, {{W-|as|সলোৱা}}, {{W-|as|বদলোৱা}} * {{Z|ast}}: {{W-|ast|cambiar}} * {{Z|eu}}: {{W|eu|aldatu}} * {{Z|be}}: {{W-|be|змяня́ць|sc=Cyrl}}, {{W-|be|змяні́ць|sc=Cyrl}} * {{Z|bg}}: {{W|bg|изменям|sc=Cyrl}}, {{W|bg|променям|sc=Cyrl}} * {{Z|cs}}: {{W|cs|změnit}}, {{W|cs|proměnit}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|改|tr=goi2|sc=Hani}}, {{W-|yue|轉|tr=zyun2|sc=Hani}} *: {{Z|cmn}}: {{W|cmn|改變|sc=Hani}}, {{W|cmn|改变|tr=gǎibiàn|sc=Hani}}, {{W|cmn|轉變|sc=Hani}}, {{W|cmn|改变|tr=zhuǎnbiàn|sc=Hani}} * {{Z|da}}: {{W|da|ændre}}, {{W|da|forandre}} * {{Z|ar}}: {{W|ar|غَيَّرَ}} *: {{Z|ary}}: {{W-|ary|غير|tr=ḡiyyar}}, {{W-|ary|بدل|tr=baddal}} *: {{Z|arz}}: {{W-|arz|غير|tr=ḡayyar}} * {{Z|eo}}: {{W-|eo|ŝanĝi}}, {{W-|eo|aliformi}}, {{W-|eo|aliformigi}}, {{W-|eo|transformi}}, {{W-|eo|aliigi}} * {{Z|et}}: {{W-|et|muutma}} * {{Z|gur}}: {{W-|gur|teem}} * {{Z|fa}}: {{W-|fa|دگرگون کردن|tr=degargun kardan}} * {{Z|fi}}: {{W|fi|muuttaa}} * {{Z|fr}}: {{W|fr|changer}}, {{W|fr|transformer}} * {{Z|fur}}: {{W-|fur|mudâ}}, {{W-|fur|gambiâ}} * {{Z|gd}}: {{W-|gd|mùth}}, {{W-|gd|atharraich}} * {{Z|gl}}: {{W|gl|cambiar}}, {{W-|gl|mudar}}, {{W|gl|virar}}, {{W-|gl|demudar}} * {{Z|ka}}: {{W-|ka|იცვლება}}, {{W-|ka|გარდაიქნება}} * {{Z|ht}}: {{W-|ht|chanje}} * {{Z|nl}}: {{W|nl|veranderen}}, {{W|nl|aanpassen}} * {{Z|he}}: {{W|he|שינה|tr=shiná|sc=Hebr}} * {{Z|io}}: {{W|io|chanjar}} * {{Z|ang}}: {{W-|ang|wendan}} * {{Z|en}}: {{W|en|change}}, {{W|en|alter}} * {{Z|ia}}: {{W-|ia|cambiar}} * {{Z|it}}: {{W|it|cambiare}} * {{Z|is}}: {{W|is|breyta}} * {{Z|ja}}: {{W|ja|変える|tr=kaeru}} * {{Z|ca}}: {{W|ca|canviar}}, {{W|ca|modificar}} * {{Z|koi}}: {{W-|koi|вежны}} * {{Z|swb}}: {{W-|swb|gaudza|cuda=ugaudza}} * {{Z|ko}}: {{W|ko|바꾸다}} * {{Z|lld}}: {{W-|lld|muder}} * {{Z|la}}: {{W|la|mūtō}} * {{Z|lv}}: {{W-|lv|mainīt}} * {{Z|mhx}}: {{W-|mhx|thud}} * {{Z|lij}}: {{W-|lij|cangiâ}} * {{Z|lt}}: {{W|lt|keisti}} * {{Z|khb}}: {{W-|khb|ᦏᦲᦏᦸ}} * {{Z|lb}}: {{W-|lb|änneren}}, {{W-|lb|veränneren}} * {{Z|ms}}: {{W|ms|tukar}} * {{Z|mi}}: {{W-|mi|whakarerekē}}, {{W-|mi|kihirua}}, {{W-|mi|whakaumu}} * {{Z|hu}}: {{W|hu|változtat}}, {{W|hu|megváltoztat}} * {{Z|mn}}: {{W|mn|өөрчлөх|sc=Cyrl}} * {{Z|mos}}: {{W-|mos|toeeme}} * {{Z|nrf}}: {{W-|nrf|changi}} {{W-|nrf|changier}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|gjøre om}}, {{W|nb|endre}} *: {{Z|nn}}: {{W-|nn|gjere om}}, {{W-|nn|gjøre om}}, {{W-|nn|endre}} * {{Z|ps}}: {{W|ps|اړول|tr=aṛawəl|sc=ps-Arab}}, {{W|ps|بدلول|tr=badlawəl|sc=ps-Arab}} * {{Z|pl}}: {{W|pl|zmieniać}}, {{W|pl|zmienić}} * {{Z|pt}}: {{W|pt|alterar}}, {{W|pt|mudar}} * {{Z|ro}}: {{W|ro|schimba}}, {{W|ro|modifica}} * {{Z|ru}}: {{W|ru|изменя́ть}}, {{W|ru|меня́ть}}, {{W|ru|измени́ть}} * {{Z|sh}}: *: Latînî: {{W|sh|promeniti}} * {{Z|sk}}: {{W-|sk|meniť}}, {{W-|sk|zmeniť}} * {{Z|sl}}: {{W|sl|spremeniti}} * {{Z|es}}: {{W|es|cambiar}}, {{W|es|demudar}}, {{W|es|modificar}}, {{W|es|mudar}} * {{Z|sw}}: {{W-|sw|kubadili}} * {{Z|sv}}: {{W|sv|ändra}}, {{W|sv|förändra}} * {{Z|tl}}: {{W-|tl|ibago}}, {{W-|tl|bayluhin}}, {{W-|tl|bayluhan}}, {{W-|tl|bumaylo}} * {{Z|th}}: {{W|th|แปลง}} * {{Z|te}}: {{W|te|మార్చు|sc=Telu}} * {{Z|crh}}: {{W-|crh|deñiştirmek}}, {{W-|crh|trampa etmek}} * {{Z|tr}}: {{W|tr|değiştirmek}} * {{Z|tpi}}: {{W-|tpi|senisim}} * {{Z|udm}}: {{W-|udm|воштыны}} * {{Z|uk}}: {{W-|uk|змі́нювати|sc=Cyrl}}, {{W-|uk|міня́ти|sc=Cyrl}}, {{W-|uk|зміни́ти|sc=Cyrl}} * {{Z|cy}}: {{W|cy|newid}} * {{Z|yi}}: {{W-|yi|משנה זײַן|tr=meshane zayn|sc=Hebr}} * {{Z|grc}}: {{W-|grc|ἀλλάσσω}}, {{W-|grc|μεταβάλλω}} * {{Z|el}}: {{W|el|αλλάζω|sc=Grek}}, {{W|el|μεταβάλλω|sc=Grek}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[peydakirin|Peydakirina]] [[ferqî|ferqiyekê]] [[anku]] [[cudahî|cudahiyekê]] li tiştek; [[hêlan|nehêlana]] yek yan [[hin]] yan [[ti]] [[taybetmendî|taybetmendiyên]] tiştekî. #: {{mk|ku|Bi '''guhartina''' navê xwe ew dixwaze xwe eşkere neke ka kî ye.}} #* {{jêder-malper|ku|jêgirtin=Li ser rewşa herêmên Efrîn, Girêsipî û Serêkaniyê yên ji aliyê Tirkiyê ve hatine dagîrkirin, Fesla Yûsif got: Konsolxaneya Brîtanya nîşan da ku ew li dijî '''guhartina''' demografî û koçberbûna xelkê ji ser cih û warên xwe ye heger li kîjan devera cîhanê be.|sernav=Fesla Yûsif: Brîtanya li dijî guhartina demografiyê ye|malper=basnews.com|sal=2020|url=https://www.basnews.com/kr/babat/582445}} #* {{jêder-malper|ku|jêgirtin=Berdevka Wezareta Derve ya Dewletên Yekbûyî yên Amerîkayê (DYA) Jen Psakî got, di helwesta DYAyê ya derheqê li Sûriyê pêkanîna herêmek ji bo balafiran qedexe de tu '''guhartin''' nîne.|sernav=Psakî: Di helwesta me de tu guhartin nîne|malper=rudaw.net||sal=2014|url=https://www.rudaw.net/kurmanci/world/281020142}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Veränderung|m}} * {{Z|tr}}: {{W+|tr|değiştirme}} {{werger-bin}} 9rxia3nhe2kbxiee5c1a01kcijw438z binas 0 6361 6328814 6300756 2026-08-11T00:28:56Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328814 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # Tişta ji ber wê tiştek bûye yan [[qewimîn|qewimiye]] (bi taybetî tiştek [[xirab]]). #* {{jêder-pirtûk|ku|jêgirtin=bû '''binasê''' polemîkên mezin ên sîyasî û civakî|nivîskar={{w|Ergin Öpengin}}|sernav=Rewşa kurdî ya sosyolenguîstîk li Tirkiyeyê|weşanxane={{w|Weşanên Avesta|Avesta}}|sal=2011|çap=1|rûpel=19|isbn=978-605-5585-71-6}} #: ''Ev şer '''binasên''' kê ne?'' (Kî ye wa kiriye ku ev şerr peyda bibe?) #* {{jêder-malper|ku|jêgirtin=Qencî û xirabî di siriştê mirovî de ne, <br>bextiyarî û bextreşî di destê felekê de ne.<br>Wan neke '''binasên''' Xwedê: hiş dibêje ku<br>Xwedê hezarcarî ji te bêçaretir e.|nivîskar=Omer Xeyam|wergêr=Husein Muhammed|sernav=Perdeya şermê rake|malper=Kurdigeh.com|sal=11/2011}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|بناس}} ==== Hevmane ==== * [[eger]] * [[sebeb]] * [[sedem]] ==== Nêzîk ==== * [[tawan]] ==== Etîmolojî ==== Ji {{ji|ine-pro|ku|-}} *[[binek-]] ([[mirin]], [[merg]], [[wefat]]; [[ji dest dan|jidestdan]], [[winda]]kirin), {{ji|ira-pro||-}} *''nas-'' (winda bûn; [[ruxîn]]) > *''wi-nas-'' (pûç bûn, xirab bûn), [[hevreh]]a avestayî ''vi-nas-'', farisiya kevn ''vi-ney'' ([[ziyan]], [[zerer]]), farisî {{g|fa|گناه}} (gunah > [[guneh]]), latînî [[nex]], [[necis]] (mirin, merg), noceo ([[ziyan]]), nocere ([[ziyan]] lê kirin), yûnanî [[νεκρός]] (nékros: [[cenaze]], [[term]], [[kelex]]). ''vnas'' ya ermenî ji kurdî yan zimanekî din yê îranî hatiye deynkirin. ==== Bide ber ==== * [[bihane]] * [[hêcet]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Schuld|m}} * {{Z|ar}}: {{W-|ar|خطأ|tr=xeṭa}}, {{W-|ar|سبب|guman=erê}} * {{Z|fa}}: {{W+|fa|تقصیر}}, {{W+|fa|گناه}}, {{W+|fa|سبب|guman=erê}}, {{W-|fa|تقسیر|guman=erê}} * {{Z|fi}}: (jonkun) [[vika]] * {{Z|fr}}: {{W+|fr|faute}} * {{Z|en}}: {{W+|en|fault}} * {{Z|pt}}: {{W+|pt|culpa}} * {{Z|es}}: {{W+|es|culpa}}, {{W+|es|falla}}, {{W+|es|falta}} * {{Z|tr}}: {{W+|tr|hata}}, {{W-|tr|müsebib}}, {{W+|tr|suç}}, {{W+|tr|tanıdık}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # (ji "nasîn") ''Binere'': '''[[binase]]''' 97qg3fjifmuc5js1i4u20bjrpygncee bendav 0 6453 6328799 6298649 2026-08-11T00:28:00Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328799 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|bɛnˈdɑːv}} * {{ku-kîte}} === Navdêr === [[Wêne:Barrage de Monteynard p1390473.jpg|thumb|Bendavek.]] {{navdêr|ku|z=m}} # Bendeke tê [[avakirin]] ji bo avê ragire û [[rade]]ya wê [[bilind]] bike, ku [[pendav]]ekê çê dike ji bo [[peydakirin]]a [[kehreb]]ê û [[raber]]kirina avê. #: {{hevmaneyên peyvê|ku|sike|baraj}} #* {{jêder-malper|ku|jêgirtin=Em li ber serê pira Nîssîbiyê disekinin û çavê xwe li keştiyên tûrê yên di geliyan di navbera pira Nîssîbî û Gergerê de diçin û tên digerînim. Lê malbateke Sêwregî ya li seyrangehê ji me re dibêje: “Ji ber nexweşiya koronayê, tûrên keştiyên li ser '''bendavê''' hatine rawestandin.”|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|بەنداڤ}} ==== Jê ==== * {{g|ku|bendavî}} ==== Têkildar ==== * {{g|ku|pendav}} * {{g|ku|pengav}} ==== Etîmolojî ==== Ji {{pêk|ku|bend|av}}. ==== Bide ber ==== * {{g|ku|derbend}} * {{g|ku|girav}} * {{g|ku|kendav}} * {{g|ku|tengav}} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|بەنداو|tr=[[bendaw]]}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|dam}} * {{Z|sq}}: {{W+|sq|pendë|m}}, {{W+|sq|digë|m}} * {{Z|de}}: {{W+|de|Talsperre|n}}, {{W+|de|Damm|n}}, {{W+|de|Staudamm|n}} * {{Z|am}}: {{W-|am|ግድብ}} * {{Z|az}}: {{W+|az|bənd}}, {{W-|az|sədd}}, {{W-|az|damba}} * {{Z|ba}}: {{W-|ba|быуа}} * {{Z|be}}: {{W+|be|плаці́на|m}}, {{W-|be|да́мба|m}} * {{Z|bn}}: {{W+|bn|বাঁধ}} * {{Z|bg}}: {{W+|bg|бент|n}} * {{Z|my}}: {{W+|my|ရေကာတာ}} * {{Z|pcc}}: {{W-|pcc|waail}} * {{Z|ccp}}: {{W-|ccp|𑄉𑄧𑄙|tr=gadhā}} * {{Z|cs}}: {{W+|cs|hráz|m}}, {{W+|cs|přehrada|m}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|壩}}, {{W-|yue|水壩}}, {{W-|yue|大壩}} *: {{Z|dng}}: {{W-|dng|бэ}}, {{W-|dng|фибэ}} *: {{Z|cmn}}: {{W+|cmn|壩}}, {{W+|cmn|水壩}}, {{W+|cmn|大壩}} *: {{Z|nan}}: {{W-|nan|水壩|tr=chúi-pà}} * {{Z|cv}}: {{W-|cv|пӗвӗ}} * {{Z|da}}: {{W+|da|dæmning|g}} * {{Z|id}}: {{W+|id|bendungan}}, {{W+|id|empang}} * {{Z|ar}}: {{W-|ar|سَدّ|n}} *: {{Z|arz}}: {{W-|arz|سد|n|tr=sadd}} * {{Z|hy}}: {{W+|hy|ամբարտակ}}, {{W+|hy|պատնեշ}} * {{Z|myv}}: {{W-|myv|каваз}} * {{Z|eo}}: {{W-|eo|akvobaraĵo}} * {{Z|et}}: {{W-|et|pais}} * {{Z|gur}}: {{W-|gur|mõgrɛ}} * {{Z|fa}}: {{W+|fa|سَدّ|tr=sadd}}, {{W-|fa|آب‌بَند|tr=âb-band}}, {{W+|fa|بَند|tr=band}} * {{Z|fi}}: {{W+|fi|pato}} * {{Z|fr}}: {{W+|fr|barrage|n}} * {{Z|gl}}: {{W+|gl|presa|m}}, {{W+|gl|encoro|n}}, {{W-|gl|touta|m}}, {{W-|gl|tarula|m}} * {{Z|ka}}: {{W-|ka|კაშხალი}}, {{W-|ka|ჯებირი}}, {{W-|ka|დამბა}} * {{Z|hi}}: {{W+|hi|बाँध|n}} * {{Z|nl}}: {{W+|nl|dam|n}} * {{Z|hrx}}: {{W-|hrx|Damm|n}} * {{Z|he}}: {{W+|he|סֶכֶר|n|tr=sékher}} * {{Z|io}}: {{W+|io|aquobarilo}} * {{Z|enm}}: {{W-|enm|dam}} * {{Z|en}}: {{W+|en|dam}} * {{Z|it}}: {{W+|it|argine|n}}, {{W+|it|diga|m}} * {{Z|is}}: {{W-|is|stífla|m}} * {{Z|ja}}: {{W+|ja|ダム|tr=damu}}, {{W+|ja|堰堤|tr=えんてい, entei}} * {{Z|kn}}: {{W+|kn|ಕಟ್ಟೆ}} * {{Z|ca}}: {{W+|ca|presa|m}} * {{Z|qu}}: {{W-|qu|hark'a}} * {{Z|ky}}: {{W+|ky|бөгөт}}, {{W+|ky|дамба}}, {{W-|ky|плотина}} * {{Z|ko}}: {{W+|ko|댐}}, {{W+|ko|언제}} * {{Z|kw}}: {{W-|kw|arge|n}} * {{Z|lv}}: {{W+|lv|dambis|n}}, {{W+|lv|aizsprosts|n}} * {{Z|lo}}: {{W-|lo|ຝາຍ}}, {{W+|lo|ເຂື່ອນ}} * {{Z|lt}}: {{W-|lt|užtvanka|m}}, {{W-|lt|damba|m}} * {{Z|khb}}: {{W-|khb|ᦚᦻ}} * {{Z|mk}}: {{W-|mk|брана|m}}, {{W-|mk|насип|n}} * {{Z|ml}}: {{W+|ml|അണ}}, {{W+|ml|അണക്കെട്ട്}}, {{W+|ml|ചിറ}} * {{Z|ms}}: {{W-|ms|empang}}, {{W+|ms|empangan}}, {{W-|ms|pengempang}}, {{W-|ms|ampang}}, {{W-|ms|bendung}}, {{W-|ms|bendungan}}, {{W-|ms|pembendung}}, {{W-|ms|tebat}}, {{W+|ms|tambak}}, {{W-|ms|tandup}}, {{W+|ms|alahan}} * {{Z|mt}}: {{W-|mt|diga}} * {{Z|mnc}}: {{W-|mnc|ᡩᠠᠯᠠᠨ}}, {{W-|mnc|ᡩᠠᠯᠠᠩᡤᠠ}} * {{Z|mi}}: {{W-|mi|matatara}}, {{W-|mi|pāwai}} * {{Z|hu}}: {{W+|hu|gát}} * {{Z|egy}}: {{W-egy|dnjt|h=d:n-i-t:V11-N23-Z1}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|далан}}, {{W+|mn|боомт}} * {{Z|nv}}: {{W-|nv|dáʼdeestłʼin}}, {{W-|nv|tó beʼekʼid}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|demning|n|m}}, {{W+|nb|dam|n}} *: {{Z|nn}}: {{W-|nn|demning|n|m}}, {{W+|nb|dam|n}} * {{Z|ug}}: {{W-|ug|دامبا}}, {{W-|ug|توغان}} * {{Z|uz}}: {{W+|uz|toʻgʻon}}, {{W+|uz|damba}} * {{Z|ps}}: {{W+|ps|ډم|n|tr=ḍǝm}}, {{W+|ps|بند|n|tr=band}} * {{Z|pdt}}: {{W-|pdt|Daum|n}} * {{Z|pl}}: {{W+|pl|tama|m}}, {{W+|pl|zapora|m}} * {{Z|pt}}: {{W+|pt|barragem|m}}, {{W+|pt|represa|m}}, {{W+|pt|açude|n}} * {{Z|kk}}: {{W-|kk|бөгет}}, {{W-|kk|дамба}} * {{Z|ro}}: {{W+|ro|baraj|nt}} * {{Z|ru}}: {{W+|ru|плоти́на|m}}, {{W+|ru|да́мба|m}}, {{W+|ru|гать|m}}, {{W+|ru|на́сыпь|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|на́сип|n}}, {{W-|sh|бра́на|m}}, {{W-|sh|га̏т|n}} *: Latînî: {{W+|sh|násip|n}}, {{W+|sh|brána|m}}, {{W+|sh|gȁt|n}} * {{Z|sk}}: {{W-|sk|priehrada|m}}, {{W-|sk|hrádza|m}} * {{Z|sl}}: {{W+|sl|jez|n}} * {{Z|es}}: {{W+|es|presa|m}} * {{Z|sv}}: {{W+|sv|damm|nt}} * {{Z|shn}}: {{W-|shn|ၽၢႆ}} * {{Z|tg}}: {{W+|tg|сарбанд}}, {{W+|tg|дамба}}, {{W-|tg|дарғот}}, {{W-|tg|оббанд}} * {{Z|tl}}: {{W-|tl|tarundon}}, {{W-|tl|saplad}}, {{W-|tl|prinsa}} * {{Z|ta}}: {{W+|ta|அணை}} * {{Z|th}}: {{W+|th|เขื่อน}} * {{Z|te}}: {{W+|te|ఆనకట్ట}} * {{Z|crh}}: {{W-|crh|bent}} * {{Z|tt}}: {{W+|tt|буа}} * {{Z|ti}}: {{W-|ti|ግድብ}} * {{Z|tr}}: {{W+|tr|baraj}}, {{W+|tr|set}} * {{Z|tk}}: {{W+|tk|bent}}, {{W-|tk|damba}} * {{Z|bo}}: {{W-|bo|ཆུ་རག}} * {{Z|ur}}: {{W-|ur|بَنْد|n|tr=band}} * {{Z|uk}}: {{W-|uk|гре́бля|m}}, {{W-|uk|да́мба|m}} * {{Z|vi}}: {{W+|vi|đập}} * {{Z|cy}}: {{W+|cy|argae|n}} * {{Z|km}}: {{W+|km|ទំនប់}} * {{Z|yi}}: {{W-|yi|דאַם|n}} * {{Z|el}}: {{W+|el|φράγμα|nt}} *: Kevn: {{W-|grc|ἄνδηρον|nt}} * {{Z|za}}: {{W-|za|fai}} {{werger-bin}} :{{werger çavkanî|en|dam|beş=Ev qismê Wergerê|oldid=76330953}} gzmbvqilra0jzl0r870cy5v3vkyp1rl aya 0 6466 6328847 6239612 2026-08-11T00:55:21Z Wikihez 7344 /* Hoker */ 6328847 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}} # [[peyv]]ek e [[hevok]]ên [[pirs]]î pê tên çêkirin: #: '''''Aya''' ew çend salî ye?'' (Dixwazim bizanim ka ew çend salî ye.) #: '''''Aya''' ew dê çi bikin?'' #* {{jêder|ku|{{Jêgirtin/Ehmedê Xanî/Mem û Zîn}}|jêgirtin=Kirmanc di dewleta dinê da<br />'''Aya''' bi çi wechî mane mehrûm<br />Bi l-cumle ji bo çi bûne mehkûm}} #* {{jêder-pirtûk|ku|jêgirtin='''Aya''' Înşallah edî di vê pirsê de şibhe nîn in.|nivîskar=w:Mele Mehmûdê Bazîdî|edîtor= w:Mîkaîl Bilbil; Mistafa Oztirk |sernav=w:Tûhfetu'l-Xîlan Fî Zimanê Kurdan |weşanxane= Weqfa Mezopotamyayê |sal=1866|sala-weşandinê=2019|çap=1|rûpel=160|isbn=978-605-80975-1-3}} ==== Hevmane ==== * [[aye]] ==== Hevmane ==== * [[gelo]] * [[ecebe]] ==== Bide ber ==== * [[ma]] ==== Binêre herwiha ==== * [[gelî]] (2) ==== Etîmolojî ==== Hevreha {{hv|fa|ku|آیا|tr=aya}}. Bi îhtimal deynkirinek(a ji farisî) e, ji ber ku di xeberdanên [[devkî]] yan [[rojane]] da hema hema qet nayê bikar anîn. ==== Werger ==== {{werger-ser}} * {{Z|de}}: ob wohl * {{Z|ar}}: {{W-|ar|هل|guman=erê}} * {{Z|fa}}: {{W+|fa|آیا}}, {{W+|fa|آیا}} * {{Z|en}}: {{W-|en|doubt whether}} I wonder, {{W+|en|exclamation mark|guman=erê}} * {{Z|tr}}: {{W+|tr|acaba}}, {{W+|tr|acep}}, {{W+|tr|mı|guman=erê}} {{werger-bin}} == {{ziman|zza}} == === Hoker === {{hoker|zza}} # [[gelo]], [[acaba]]<ref>http://www.kovarabir.com/wp-content/uploads/Ferheng%C3%AA-Dimil%C3%AE-Zazak%C3%AE-%C3%BB-Kurmanc%C3%AE-A-a.pdf</ref> #* {{bêmînak|zza}} === Çavkanî === {{çavkanî}} == {{ziman|az}} == === Navdêr === {{navdêr|az}} # {{g|ku|lep}}, {{g|ku|kef}} (kefa destî) #* {{bêmînak|az}} === Çavkanî === {{rûpela wergerê|az|kef}} == {{ziman|cic}} == === Lêker === {{lêker|cic}} # {{g|ku|rîtin}}, {{g|ku|gû kirin}} #* {{bêmînak|cic}} === Çavkanî === {{rûpela wergerê|cic|rîtin}} == {{ziman|ee}} == === Navdêr === {{navdêr|ee}} # {{f|ee|hewa}} [[ba#ku|ba]] #* {{bêmînak|ee}} == {{ziman|qu}} == === Navdêr === {{navdêr|qu}} # {{g|ku|can}}, {{g|ku|giyan}}, {{g|ku|ruh}} #* {{bêmînak|qu}} === Çavkanî === {{rûpela wergerê|qu|can}} == {{ziman|ayz}} == === Navdêr === {{navdêr|ayz}} # {{mijar|ayz|vexwarin}} {{g|ku|av}} #* {{bêmînak|ayz}} === Çavkanî === {{rûpela wergerê|ayz|av/Werger2}} == {{ziman|pi}} == === Navdêr === {{navdêr|pi}} # [[asin]] #* {{bêmînak|pi}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-aya.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # [[mist]], [[kef]], [[gemş]], [[hevês]] #* {{bêmînak|tr}} # {{f|tr|botanîk}} beşa pelan a dûz û birqonek #* {{bêmînak|tr}} == {{ziman|yo}} == === Navdêr === {{navdêr|yo}} # {{f|yo|malbat}} {{g|ku|jin}} (hevser, hevjîn) #* {{bêmînak|yo}} 95ithql7sr6794l25b9chok0mh9otgd herîn 0 6884 6328979 6308283 2026-08-11T11:50:57Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328979 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-herîn.wav|dever=Bidlîs}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|herîn|form=negerguhêz|niha=her-er-r|niha2=her|borî=herî}} {{lêker|ku|c=x-ngh}}, {{r-ya req}} # [[çûn]], [[bi rê ketin]], [[dûr ketin]] #: {{hevmane|ku|rewtin}} #: {{mk|ku|Zû '''herin'''!}} #: {{mk|ku|Ger em niha '''herin''', ew dê negihin me.}} #: {{mk|ku|Divê em sibê zû '''herin'''.}} #: {{mk|ku|Ew kengî '''d(ih)ere'''?}} #: {{mk|ku|Ez '''terim'''.}} # {{f|ku|devokî}} [[birin]] #: {{mk|ku|Hemin ku tu diçî, viya jî '''bihere''' bi xwe re.|Viya jî bibe bi xwe re|rêz=1}} ==== Tewandin ==== * [-her-] * [-er-] ==== Formên alternatîv ==== * {{g|ku|herrîn}} ==== Etîmolojî ==== Ji pêş-hindû-ewropî [[*h₁er-]] (1. erd, 2. livîn, çûyîn, herrîn) pêş-îranî [[*Her-]] (herrîn, çûn)<ref>(Cheung, Johnny (2007) Etymological Dictionary of the Iranian Verb (Leiden Indo-European Etymological Dictionary Series; Leiden, Boston: Brill, pages 163-5)</ref>, bi [[metatez|metatezê]] hevrreha farisî {{g|fa|رسیدن}}(resîden) û dibe ku kurmancî [[rizîn|rrizîn]] jî, hevrreha [[zazakî]] {{g|zza|herr|w=erd}}. Lê tenê di [[kurmancî|kurmanciya jorîn/badînî]] de heye û zimanên din ên kurdîkî de peyda nabe (heta [[mijar]]a [[henek]]ê ye jî, binêre [[here-were]]) lewma bide ber ermeniya kevn [[հեռ-]] • (heṙ-: [[dûr]]), ermeniya niha [[հեռու]] ‎(heṙu: [[dûr]]). Heke ji vê rehê bibe; hevreha ingilîzî [[earth]], elmanî [[Erd]], holendî [[aarde]], norwêcî, swêdî, danmarkî [[jord]]. Bi devokî carinan bi wateya ''birin'' bi kar tê, dibe ku wateya resen ew bibe û paşê guherîbe. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|gehen}} * {{Z|ar}}: {{W|ar|تأمم|guman=erê}} * {{Z|fa}}: {{W|fa|رفتن}} * {{Z|fr}}: {{W|fr|partir}}, {{W|fr|aller}}, {{W|fr|s’en aller}} * {{Z|en}}: {{W|en|go}} * {{Z|tr}}: {{W|tr|gitmek}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[çûn|Çûn]], [[birêketin]], [[dûrketin]]. #* {{jêder-malper|ku|jêgirtin=Ev kûrahiya ji ber helîna cemedê û '''herîna''' avê bêhtir eleqeya min biribû ser xwe.|nivîskar=Eric Guth|sernav=Gereke Nûwaze Bo Çiyayên Sîpan ên Alaskayê|url=http://www.parzemin.com/gereke-nuwaze-bo-ciyayen-sipan-en-alaskaye/|urlya-arşîvê=https://web.archive.org/web/20230331093629/http://www.parzemin.com/gereke-nuwaze-bo-ciyayen-sipan-en-alaskaye/|dîrok=2015-10-16}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|go}}, ([[act]] [[of]]) {{W+|en|going}} * {{Z|tr}}: {{W+|tr|gitme}} {{werger-bin}} {{clr}} === Rengdêr === {{rengdêr|ku}} # Ji heriyê; binêre {{g|ku|herî}} (1) === Çavkanî === {{çavkanî}} bzl3265mze21756kz6cpgi3tyjpjc1a na 0 7034 6328694 6328693 2026-08-10T12:03:06Z Wikihez 7344 /* Binêrin herwiha */ 6328694 wikitext text/x-wiki {{bnr-h|Na|na-}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-na.wav|dever=Bidlîs}} * {{ku-kîte}} === Hoker 1 === [[Wêne:Exclamation_mark_red.png|thumb|250px|Na!]] {{hoker|ku}} # [[nexêr]], [[ne]], [[no]], [[bersiv]]a [[red]]ker, <br>[[bersiv]]a [[neyînî]] bo [[pirs]]eke [[erênî]], <br>[[peyvik]]ek e ku [[wate]]ya [[dij]]î [[gotin]]ekê [[dan|didiyê]]: #: {{mk|ku|– Gelo ew kurd e?<br>– '''Na'''.|Ew ne kurd e.|birêz=1}} #: {{mk|ku|– Tu dê îro biçî?<br>– '''Na'''.|Ez naçim.|birêz=1}} # [[erê]]kirina [[pirs]]eke [[neyînî]], [[qebûl]]kirina [[pirs]]eke [[negatîv]] #: {{mk|ku|Gelo ew ne kurd e? – '''Na'''.|Ew ne kurd e.|birêz=1}} #: {{mk|ku|Tu îro nayê? – '''Na'''.|Ez nayêm.|birêz=1}} # [[peyv]]eke [[qedexe]]kirinê yan [[haydar]]kirinê: #: {{mk|ku|'''Na''', wisa nekin!}} ==== Bi alfabeyên din ==== * {{ku-ar|نا}} * {{ku-kr|на}} ==== Hevmane ==== * [[ne]] (1) * [[nexêr]] (1) * [[no]] (1) ==== Dijmane ==== {{stûn| * [[belê]] * [[erê]] * [[a]] * [[e]] * [[lebê]] }} ==== Jê ==== * [[na-]] ==== Têkildar ==== {{stûn| * [[ma-]] * [[na-]] * [[me-]] }} ==== Etîmolojî ==== Herwiha ''[[ne]]'' û ''[[no]]'', [[hevreh]]ên soranî {{g|ckb|نا}} û {{g|ckb|نه‌}}, goranî/hewramî ''[[ne]]'', zazakî ''[[nê]]'', farisî {{g|fa|نا|tr=na}} û {{g|fa|نه‌|tr=ne, nê}} û {{g|fa|نی‎|tr=nê}}, tacikî [[на]] (na) û [[не]] (ne), pehlewî [[𐭫𐭠‎]] (nê), avestayî [[𐬥𐬀‎]] (na, /ne/), osetî [[нæ]] (næ), hexamenişî ''nai'' (/ney/), sanskrîtî [[न]] (ná), hindî [[न]] (na) û [[ना]] (nā), ûrdûyî {{g|ur|نہ‎|tr=na, ne}}, ‎latviyayî ''[[ne]]'', lîtwanî ''[[nè]]'', rusî [[не]] (nʸê, nʸi), bulgarî [[не]] (nê), çekî ''[[ne]]'', polonî û slovakî ''[[nie]]'', bretonî ''[[ne]]'', îrlendî ''[[ní]]'', latînî ''[[nē]]'' û ''[[nōn]]'', fransî ''[[ne]] û [[non]]'', îtalî ''[[no]]'' û ''[[non]]'', spanî ''[[no]]'', portugalî ''[[não]]'', romanî ''[[nu]]'', îngilîzî ''[[no]]'' û ''[[not]]'', almanî ''[[nein]]'', danmarkî û swêdî ''[[nej]]'' (/ney, nêy/), norwecî ''[[nei]]''... hemû ji {{ji|ine-pro|ku|-}} *''[[ne]]''. Peyv wek ''[[ne ... ne]]'' ji zimanên îranî ketiye tirkî jî. Peyva kurdî ''[[nexêr]]'' û ya farisî {{g|fa|نخیر‎|tr=nexêyr}} awayekî [[rêzgirtin]] û [[ihtiram]]ê yê gotina ''na, ne'' ye û ji ''ne'' ya îranî û {{g|ar|خیر‎|tr=xeyr}} ([[xêr]], [[xweşî]], [[bereket]]) ya erebî hatiye çêkirin wek heçku mirov bibêje "bixêr be lê na" yan "na lê bixêr be". Peyva tirkî ''[[hayır]]'' (na, ne, nexêr) jî dîsa ji erebî {{g|ar|خیر‎|tr=xeyr}} ([[xêr]], [[xweşî]], [[bereket]]) e û wê di tirkî de bergeha bikaranînê li ''[[yok]]'' ya xwemalî teng kiriye. Di zimanên din yên [[tirkîkî]] de bi piranî [[hevreh]]ên peyva ''[[yok]]'' hem li cihê ''[[yok]]'' û hem jî cihê ''[[hayır]]'' tên bikaranîn. ;{{biçûk|Çavkanî: * {{Chyet}} * {{Horn}} * {{Lubotsky}} * {{Nişanyan|hayır}} * {{Pokorny}} * {{Tsabolov}} * {{Watkins}} * {{Etymonline}} * {{The Tower of Babel}} }} ==== Bide ber ==== * [[an]] ==== Binêrin herwiha ==== {{kol3|ku |ba |ca |ça |da |ga |ha |ka |la |ma |pa |ra |sa |şa |ta |va |wa |ya |za }} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|نا‎|tr=na}}, {{W-|ckb|نه‌‎|tr=ne}}, {{W-|ckb|sc=Latn|nexêr}} * {{Z|sdh}}: {{W-|sdh|sc=Latn|na}}, {{W-|sdh|sc=Latn|ne}}, {{W-|sdh|sc=Latn|nexêr}} * {{Z|hac}}: {{W-|hac|sc=Latn|ne}} * {{Z|zza}}: {{W-|zza|nê}}, {{W-|zza|ney}}, {{W-|zza|nêxêr}} ==== Werger ==== {{werger-ser}} * {{Z|ab}}: {{W-|ab|мап}} * {{Z|af}}: {{W+|af|nee}} * {{Z|sq}}: {{W+|sq|jo}}, {{W+|sq|nuk}} * {{Z|de}}: {{W+|de|nein}} ; {{W+|de|nee}}, {{W+|de|nö}} {{a|colloquial|chiefly northern and central Germany}} * {{Z|ems}}: {{W-|ems|qang'a}} * {{Z|arc}}: *: Îbranî: {{W-|arc|לא|tr=lā’}} *: Siryanî: {{W-|arc|ܠܐ|tr=lā’}} * {{Z|rup}}: {{W-|rup|nu}} * {{Z|as}}: {{W-|as|নাই}}, {{W-|as|নহয়}}, {{W-|as|না}} * {{Z|ast}}: {{W+|ast|nun}} * {{Z|az}}: {{W+|az|yox}}, {{W+|az|xeyr}} * {{Z|eu}}: {{W+|eu|ez}} * {{Z|ba}}: {{W-|ba|юҡ}} * {{Z|be}}: {{W+|be|не}} * {{Z|bn}}: {{W+|bn|না}}, {{W-|bn|জি না}}, {{W+|bn|জ্বী না|tr=jī na}} * {{Z|bcl}}: {{W-|bcl|dai}}, {{W-|bcl|bako}} * {{Z|br}}: {{W+|br|nann}} * {{Z|bg}}: {{W+|bg|не}} * Burmese:, {{W-|my|[[မ]][[ဟုတ်]][[ပါ]][[ဘူး]]}}, {{W+|my|ဟင့်အင်း}} * {{Z|ccc}}: {{W-|ccc|kala}} * {{Z|ce}}: {{W-|ce|хӏан-хӏа}} * {{Z|cs}}: {{W+|cs|ne}} * {{Z|chr}}: {{W-|chr|ᏝᏃ}}, {{W+|chr|Ꮭ}} * {{Z|ny}}: {{W-|ny|iyayi}} * {{Z|cic}}: {{W-|cic|ki'yo}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|不|tr=bat1}} *: {{Z|dng}}: {{W-|dng|бу}} *: {{Z|cmn}}: {{W+|cmn|不|tr=bù}}, {{W+|cmn|否|tr=fǒu}}, {{W+|cmn|沒|tr=méi}}, {{W+|cmn|沒有|tr=méiyǒu}} * {{Z|cho}}: {{W-|cho|kíyo}} * {{Z|da}}: {{W+|da|nej}} * {{Z|id}}: {{W+|id|tidak}} * {{Z|ar}}: {{W+|ar|لَا}} *: {{Z|arz}}: {{W-|arz|لَأ|tr=laʔ}}, {{W-|arz|لَا|tr=lā}} *: {{Z|acw}}: {{W-|acw|لَأ|tr=laʔ}}, {{W-|acw|لَا|tr=lā}} *: {{Z|ary}}: {{W-|ary|لَا|tr=lā}} *: {{Z|ajp}}: {{W-|ajp|لَأ|tr=laʔ}} * {{Z|hy}}: {{W+|hy|ոչ}}, {{W+|hy|չէ}} * {{Z|eo}}: {{W+|eo|ne}} * {{Z|et}}: {{W+|et|ei}} * {{Z|fa}}: {{W+|fa|نه|tr=na}}, {{W+|fa|نخیر|tr=naxeyr}}, {{W+|fa|خیر|tr=xeyr}} * {{Z|fo}}: {{W+|fo|nei}} * {{Z|fj}}: {{W+|fj|sega}} * {{Z|fi}}: {{W+|fi|ei}} * {{Z|fro}}: {{W-|fro|non}} * {{Z|fr}}: {{W+|fr|non}} * {{Z|fur}}: {{W-|fur|no}} * {{Z|fy}}: {{W+|fy|nee}} * {{Z|gl}}: {{W+|gl|non}} * {{Z|cab}}: {{W-|cab|inó}}, {{W-|cab|uá}} * {{Z|gaa}}: {{W-|gaa|daabi}}, {{W-|gaa|dabida}} * {{Z|got}}: {{W-|got|𐌽𐌴}} * {{Z|gug}}: {{W-|gug|nahániri}} * {{Z|gu}}: {{W-|gu|ના}} * {{Z|ka}}: {{W-|ka|არ}}, {{W-|ka|არა}} * {{Z|gn}}: {{W+|gn|nahániri}} * {{Z|hur}}: {{W-|hur|éwe}} * {{Z|haw}}: {{W-|haw|ʻaʻole}} * {{Z|hi}}: {{W+|hi|नहीं}}, {{W-|hi|जी नहीं}} * {{Z|hil}}: {{W-|hil|indi}}, {{W-|hil|dili}} * {{Z|nl}}: {{W+|nl|nee}}, {{W+|nl|neen}} * {{Z|ibg}}: {{W-|ibg|ari}} * {{Z|he}}: {{W+|he|לֹא|tr=lo}} * {{Z|io}}: {{W+|io|no}} * {{Z|ang}}: {{W-|ang|nese}} * {{Z|en}}: {{W+|en|no}} * {{Z|ia}}: {{W-|ia|no}} * {{Z|iu}}: {{W-|iu|ᐋᒃᑲ}} * {{Z|ga}}: {{W-|ga|ní hea}}. * {{Z|it}}: {{W+|it|no}} * {{Z|is}}: {{W+|is|nei}} * {{Z|ja}}: {{W+|ja|いいえ|tr=iie}}, {{W+|ja|いえ|tr=ie}}, {{W+|ja|ううん|tr=u'un}}, {{W+|ja|違う|tr=ちがう, chigau}}, {{W+|ja|いや|tr=iya}} * {{Z|jv}}: {{W+|jv|ora}} * {{Z|kn}}: {{W+|kn|ಇಲ್ಲ}} * {{Z|pam}}: {{W-|pam|ali}}, {{W-|pam|e}} * {{Z|krl}}: {{W-|krl|ei}} * {{Z|ca}}: {{W+|ca|no}} * {{Z|qu}}: {{W-|qu|mánan}} * {{Z|krj}}: {{W-|krj|indi}} * {{Z|ky}}: {{W+|ky|жок}} * {{Z|si}}: {{W-|si|නැ}} * {{Z|com}}: {{W-|com|kee}} * {{Z|ko}}: {{W+|ko|아니요}}, {{W+|ko|아뇨}}, {{W+|ko|아니}} * {{Z|ltg}}: {{W-|ltg|nā}} * {{Z|la}}: {{W+|la|minime}}, {{W+|la|non}}, {{W+|la|ne}} * {{Z|lv}}: {{W+|lv|nē}} * {{Z|lo}}: {{W-|lo|ບໍ່}} * {{Z|li}}: {{W+|li|nae}} * {{Z|lt}}: {{W+|lt|ne}} * {{Z|lb}}: {{W-|lb|nee}}, {{W+|lb|neen}} * {{Z|mk}}: {{W-|mk|не}} * {{Z|ml}}: {{W+|ml|അല്ല}}, {{W+|ml|ഇല്ല}} * {{Z|ms}}: {{W+|ms|tidak}}, {{W+|ms|tak}} * {{Z|mt}}: {{W+|mt|le}} * {{Z|mnk}}: {{W-|mnk|hani}} * {{Z|gv}}: {{W-|gv|cha nee}} * {{Z|mi}}: {{W-|mi|kāo}} * {{Z|mr}}: {{W-|mr|नाही}} * {{Z|hu}}: {{W+|hu|nem}} * {{Z|miq}}: {{W-|miq|apia}} * {{Z|egy}}: {{W-egy|m-bjꜣt|h=m-b-i-A-t*W10:bH-A2}} * {{Z|mn}}: {{W+|mn|үгүй}} * {{Z|nap}}: {{W-|nap|none}} * {{Z|nv}}: {{W-|nv|dooda}}, {{W-|nv|ndagaʼ}} * {{Z|ne}}: {{W-|ne|नाई}}, {{W-|ne|हुन्न}}, {{W+|ne|अहँ}} * {{Z|nuk}}: {{W-|nuk|wik}} * {{Z|non}}: {{W-|non|nei}} * {{Z|no}}: {{W+|no|nei}} *: {{Z|nn}}: {{W+|nn|nei}} * {{Z|cst}}: {{W-|cst|'ák̄we}} * {{Z|oj}}: {{W-|oj|gaawiin}} * {{Z|oc}}: {{W+|oc|non}} * {{Z|os}}: {{W-|os|нӕ}}, {{W-|os|нӕй}} * {{Z|ota}}: {{W-|ota|یوق|tr=yok}} * {{Z|ug}}: {{W-|ug|ياق}} * {{Z|uz}}: {{W+|uz|yoʻq}} * {{Z|pau}}: {{W-|pau|ng diak}} * {{Z|pag}}: {{W-|pag|andi}} * {{Z|pap}}: {{W-|pap|nò}} * {{Z|ps}}: {{W+|ps|نه|tr=na}} * {{Z|ppl}}: {{W-|ppl|inte}}, {{W-|ppl|te}}, {{W-|ppl|tesu}} * {{Z|pdt}}: {{W-|pdt|nä}} * {{Z|pl}}: {{W+|pl|nie}} * {{Z|pt}}: {{W+|pt|não}} * {{Z|pa}}: {{W-|pa|ਨਹੀਂ}}, {{W-|pa|نہیں}} * {{Z|kk}}: {{W+|kk|жоқ}} * {{Z|cop}}: {{W-|cop|ⲙⲙⲟⲛ}} '' '' * {{Z|rm}}: {{W-|rm|na}} * {{Z|rom}}: {{W-|rom|na}} * {{Z|ro}}: {{W+|ro|nu}} * {{Z|ru}}: {{W+|ru|нет}} * {{Z|rue}}: {{W-|rue|нїт}} * {{Z|se}}: {{W-|se|a-a}} * {{Z|sm}}: {{W-|sm|leai}} * {{Z|sa}}: {{W+|sa|नहि}} * {{Z|sc}}: {{W-|sc|no}}, {{W-|sc|non}}, {{W-|sc|nu}} * {{Z|ceb}}: {{W-|ceb|dili}} * {{Z|scn}}: {{W+|scn|no}} * {{Z|szl}}: {{W-|szl|ńy}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|не}} *: Latînî: {{W+|sh|ne}} * {{Z|sco}}: {{W-|sco|naw}} * {{Z|cu}}: {{W-|cu|ⱀⰻ}} * {{Z|sk}}: {{W+|sk|nie}} * {{Z|sl}}: {{W+|sl|nè}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|ně}} * {{Z|es}}: {{W+|es|no}} * {{Z|sw}}: {{W+|sw|hapana}}, {{W-|sw|sivyo}} * {{Z|sv}}: {{W+|sv|nej}} * {{Z|tg}}: {{W+|tg|на}}, {{W+|tg|не}} * {{Z|tl}}: {{W+|tl|hindi}} * {{Z|ta}}: {{W+|ta|இல்லை}} * {{Z|th}}: {{W+|th|ไฮ้}}, {{W+|th|ไม่}}, {{W+|th|เปล่า}} * {{Z|te}}: {{W+|te|కాదు}}, {{W+|te|లేదు}} * {{Z|tzm}}: {{W-|tzm|ⵓⵀⵓ}} * {{Z|tt}}: {{W-|tt|юк}} * {{Z|tr}}: {{W+|tr|yok}}, {{W+|tr|hayır}} * {{Z|tk}}: {{W-|tk|ýok}}, {{W-|tk|ýook}} * {{Z|ur}}: {{W-|ur|نہیں|tr=nahī̃}}, {{W-|ur|جی نہیں|tr=jī nahī̃}} * {{Z|uk}}: {{W+|uk|ні}} * {{Z|vi}}: {{W+|vi|không}} * {{Z|vo}}: {{W+|vo|no}} * {{Z|war}}: {{W-|war|diri}} * {{Z|cy}}: {{W-|cy|na}} * {{Z|wrh}}: {{W-|wrh|wiray}} * {{Z|win}}: {{W-|win|kaʼo}} * {{Z|wo}}: {{W-|wo|déedéet}} * {{Z|km}}: {{W+|km|ទេ|tr=tei}}, {{W-|km|អត់ទេ}}, {{W-|km|បាទទេ}} * {{Z|yi}}: {{W-|yi|ניין}} * {{Z|yo}}: {{W-|yo|kò}}, {{W-|yo|kọ}} * {{Z|el}}: {{W+|el|όχι}} *: Kevn: {{W-|grc|οὐχί}}, {{W-|grc|οὔ}} * {{Z|ase}}: {{W-|ase|H^o@Side-PalmForward Flatten}} * {{Z|zu}}: {{W+|zu|cha}}, {{W-|zu|qha}} * {{Z|nmn}}: {{W-|nmn|ʻĩĩ}} {{werger-bin}} :{{werger çavkanî|en|no|beş=Ev qismê Wergerê|oldid=76521855}} ===Hoker 2=== {{hoker|ku}} # (vê demê, vî zemanî): {{guherto|niha}} #* {{bêmînak|ku}} === Daçek === {{daçek|ku}} # ([[navber]], [[nav]]) {{guherto|nav}} (2) #* {{bêmînak|ku}} === Formeke lêkerê === {{lêker|ku|form=erê}} # {{ku-raboriya-sade|nan|sêyem|yekjimar}} == {{ziman|ckb}} == === Hoker === {{hoker|ckb}} # [[na#Kurmancî|na]], [[ne]], [[nexêr]] #* {{bêmînak|ckb}} == {{ziman|zza}} == === Cînav === {{cînav|zza}} # [[vê]], [[ev]] (bo mêzayendan) #* {{bêmînak|zza}} ==== Etîmolojî ==== bi [[metatez]]ê [[hevreh]]a farisî ''an'', belûçî ''ã'', kurmancî [[hin-]] (wê/wî: [[hingê]] = wê demê) ji {{ji|ira}} == {{ziman|duu}} == === Cînav === {{cînav|duu}} # [[tu#ku|tu]] (wek [[biker]]) #* {{bêmînak|duu}} == {{ziman|lkt}} == === Girêdek === {{girêdek|lkt}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|lkt}} == {{ziman|cs}} == === Daçek === {{daçek|cs}} # {{g|ku|li ser}} #* {{bêmînak|cs}} === Çavkanî === {{rûpela wergerê|cs|li ser}} == {{ziman|gd}} == === Daçek === {{daçek|gd}} # {{g|ku|ji}} (bo berhevdanê) #* {{bêmînak|gd}} === Çavkanî === {{rûpela wergerê|gd|ji}} == {{ziman|nl}} == === Daçek === {{daçek|nl}} # [[piştî#ku|piştî]], [[li pey]], [[li dûv]] #* {{bêmînak|nl}} == {{ziman|lg}} == === Girêdek === {{girêdek|lg}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|lg}} == {{ziman|mg}} == === Girêdek === {{girêdek|mg}} # [[yan#ku|yan]], [[an#ku|an]] #* {{bêmînak|mg}} == {{ziman|tum}} == === Girêdek === {{girêdek|tum}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|tum}} == {{ziman|tpi}} == === Girêdek === {{girêdek|tpi}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|tpi}} == {{ziman|nan}} == === Navdêr === {{navdêr|nan}} # {{f|nan|element}} {{g|ku|sodyûm}} #* {{bêmînak|nan}} === Çavkanî === {{rûpela wergerê|nan|sodyûm}} == {{ziman|pl}} == === Daçek === {{daçek|pl}} # {{g|ku|li ser}} #* {{bêmînak|pl}} === Çavkanî === {{rûpela wergerê|pl|li ser}} == {{ziman|pt}} == === Bilêvkirin === * {{deng|pt|LL-Q5146 (por)-JnpoJuwan-na.wav|Deng|dever=São Paulo, Brezîl}} === Daçek === {{daçek|pt}} # {{g|ku|li ser}} #* {{bêmînak|pt}} === Çavkanî === {{rûpela wergerê|pt|li ser}} == {{ziman|sh}} == === Daçek === {{daçek|sh}} # {{g|ku|li ser}} #* {{bêmînak|sh}} === Çavkanî === {{rûpela wergerê|sh|li ser}} == {{ziman|sk}} == === Daçek === {{daçek|sk}} # {{g|ku|li ser}} #* {{bêmînak|sk}} === Çavkanî === {{rûpela wergerê|sk|li ser}} == {{ziman|sl}} == === Daçek === {{daçek|sl}} # {{g|ku|li ser}} #* {{bêmînak|sl}} === Çavkanî === {{rûpela wergerê|sl|li ser}} == {{ziman|dsb}} == === Daçek === {{daçek|dsb}} # {{g|ku|li ser}} #* {{bêmînak|dsb}} === Çavkanî === {{rûpela wergerê|dsb|li ser}} == {{ziman|sw}} == === Girêdek === {{girêdek|sw}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|sw}} == {{ziman|zdj}} == === Daçek === {{daçek|zdj}} # {{g|ku|ji}} (bo berhevdanê) #* {{bêmînak|zdj}} === Çavkanî === {{rûpela wergerê|zdj|ji}} == {{ziman|tl}} == === Navdêr === {{navdêr|tl}} # {{f|tl|malbat}} [[kur#ku|kur]] (zarokê nêr yê kesekî) #* {{bêmînak|tl}} == {{ziman|tzo}} == === Navdêr === {{navdêr|tzo}} # {{f|tzo|avahî}} {{g|ku|xanî}}, {{g|ku|avahî}}, {{g|ku|bîna}} #* {{bêmînak|tzo}} === Çavkanî === {{rûpela wergerê|tzo|xanî}} == {{ziman|cy}} == === Daçek === {{daçek|cy}} # {{g|ku|ji}} (bo berhevdanê) #* {{bêmînak|cy}} === Çavkanî === {{rûpela wergerê|cy|ji}} 0syik89xp8mkdow7ba7petz9z65r8cc şewk 0 8349 6329012 5893108 2026-08-11T11:52:15Z Dûrzan 875 6329012 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr 1 === {{navdêr|ku|z=}} # (alavê girtina masiyê) {{bnr|şok}} #* {{bêmînak|ku}} # Jinan bi zîv çêdikirin didane ber serê xwe. Kofî didane serê xwe, şewk jî didane ber. #* {{bêmînak|ku}} * Me berê çeperişî dida ber kofiyê, paşê şewk dida ser # {{dever|Kerboran}} [[kevir]]ê [[hestem]] === Navdêr 2 === [[Wêne:assorted forks.jpg|thumb|çend [[cûn]]ên şewkan]] {{navdêr|ku|z=}} # [[cure]]yekî [[çetel]]iye ku du [[ser]] an [[tilî]] hene ji bo [[girtin]]a [[xwarin]]ê tê bikaranîn #* {{bêmînak|ku}} ==== Hevmane ==== * [[çengal]] ==== Bide ber ==== * [[çetel]] ==== Etîmolojî ==== Ji {{deyn|ar|ku|شوكة}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|olta}}, {{W+|tr|çakmaktaşı}} {{werger-bin}} ivg67pe4ld2fv4y4igk6evb7ynwdpho mêbaz 0 8355 6329059 6129902 2026-08-11T11:53:53Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329059 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesê ku bi namûsa jinan re dilîze,<ref name= "destî">{{Ferhenga Destî|r=246}}</ref> mêrê têkiliyên ne berdewam li gel jinan hene<ref>{{malper|nivîskar=Husein Muhammed|sernav=Ferheng: soranî - kurmancî|url=http://www.geocities.ws/kovaramehname/50/ziman1.html|malper=kovaramehname|sal=2004|ziman=ku}}</ref> #* {{jêder-malper|ku|jêgirtin=Le qisey saxî min xelel degirin<br>Wahîmey şêxekan le dill degirin<br><br>Ewî muhtacî nan û pîwaz e<br>Ba hetîwbaz e yane '''mêbaz''' e|nivîskar=Hacî Qadirê Koyî|sernav=Udeba Çak e|url=https://www.helbestakurdi.com/helbest/haci-qadire-koyi--udeba-cak-e.html|malper=helbestakurdi.com}} #* {{jêder-malper|ku|jêgirtin=Kesên birçî dikin qaçax ji bo nan û pîvaz<br>Tu bi xwe dikî jiyana gengaz<br>Li ser mêza te hingiv û goştê qaz<br>Li Enqerê dikî laqirdî û tolaz<br>Li ser vî gelê '''mêbaz'''|nivîskar=F yakoub|sernav=Ey şeytanê dil bi naz|url=http://sawtalkurd1.blogspot.com/2011/12/ey-seytane-dil-bi-naz-f-yakoub.html|malper=sawtalkurd1.blogspot.com|sal=2011}} # [[jin|Jin]]a [[têkiliyên cinsî]] li gel [[jin]]ekê yan hin [[jin]]an hene. #* {{jêder-malper|ku|jêgirtin=lgbt kinkirina navên lezbîyen('''mêbaz'''), gey(nêrbaz), bîseksuel, trans û înterseksuel e. Vê beşa zayendî her ji yek berpêbûniyek e. ne tercîh e.|nivîskar=XEBROŞKBÊJ|sernav=LGBTÎ û Homofobî|url=https://xebroskbej.wordpress.com/2014/01/14/lgbti-u-homofobi/|malper=xebroskbej.wordpress.com|sal=2014}} #* {{jêder-malper|ku|jêgirtin=Rêxistinên mafên mirovan ên îranî dibêjin, ku ji dema destpêka Şoreşa Islamî di sala 1979ê de, dora 4000 '''mêbaz''' û nêrabz hatine daliqandin.|sernav=Rêjîma Îranê du ciwanên nêrbaz daliqandin|url=http://lgbtnuce.blogspot.com/2005/07/rejima-irane-du-ciwanen-nerbaz.html|malper=lgbtnuce.blogspot.com|sal=2005}} ==== Hevmane ==== * ''(kesa bi namûsa jinan dilîze)'' [[keçxapînok]]<ref name= "destî" />, [[tolaz]], [[jinbaz]] * ''(Jina têkiliyên cinsî li gel jineke din heye)'' [[lezbiyen]] ==== Bide ber ==== * [[nêrbaz]] ==== Jê ==== * [[mêbazî]] ==== Etîmolojî ==== Ji {{qertaf|ku|mê|-baz}}. ==== Werger ==== {{werger-ser|keçxapînok|1}} * {{Z|en}}: {{W+|en|womanizer}} * {{Z|tr}}: {{W|tr|zampara}}<ref>{{Musa Anter|r=84}}</ref>, {{W|tr|kadın avcısı}} {{werger-bin}} {{werger-ser|lezbiyen|2}} * {{Z|en}}: {{W+|en|lesbian}} * {{Z|tr}}: {{W|tr|lezbiyen}} {{werger-bin}} === Çavkanî === {{çavkanî}} 5kjyvioo3hruk1gyjkww83hvopbio7h lezbiyen 0 8356 6329043 6244569 2026-08-11T11:53:20Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329043 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[jin]]a [[homoseksûel]], <br>[[jin]]a ku [[têkiliyên cinsî]] li gel [[jin]]ekê yan hin [[jin]]an hene #* {{jêder-malper|ku|jêgirtin= Ez bi vê nûçeya rindik pir kêfxweş bûm. Ez bixwe jî '''lezbîyen''' im. Guh nedin nêrînên ku zemên sed sal şunde dişopînin.|nivîskar=Zozan Dêrsimî|malper=Netkurd.com|sal=11/2007}} ==== Formên alternatîv ==== * [[lesbiyen]] * [[lesbo]] * [[lezbo]] ==== Hevmane ==== * [[mêbaz]] ==== Bide ber ==== * [[homoseksuel]] * [[homo]] * [[nêrbaz]] ==== Etîmolojî ==== Bi rêya {{ji|fr|ku|lesbienne}} yan îngilîzî [[lesbian]] ji yûnaniya kevn.{{etym}} ==== Jê ==== * [[lezbiyenî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|lesbe}} {{W|de|lesberin}}, {{W|de|Lesbe|f}} * {{Z|eo}}: {{W+|eo|lesbo}} * {{Z|fi}}: {{W+|fi|lesbo}} * {{Z|fr}}: {{W+|fr|lesbienne}} * {{Z|en}}: {{W+|en|lesbian}} * {{Z|it}}: {{W+|it|lesbical}} * {{Z|la}}: {{W+|la|tribas}} * {{Z|hu}}: {{W+|hu|leszbikus}} * {{Z|pl}}: {{W+|pl|lesbijka}} * {{Z|pt}}: {{W+|pt|lésbica}} * {{Z|sl}}: {{W+|sl|lezbijka}} * {{Z|sv}}: {{W+|sv|flata}} * {{Z|tr}}: {{W+|tr|lezbiyen}}, {{W+|tr|sevici}} {{werger-bin}} 21rgoxnjhm3zvmqw9232e787x0nw6d1 hefsî 0 8641 6328977 6327144 2026-08-11T11:50:52Z Balyozbot 7867 /* Navdêr 1 */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328977 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr 1 === [[Wêne:Prision del Condado de Mantras.JPG|thumb|250px|zindaniyek]] {{navdêr|ku|z=mn}} # Kesê di [[hefs]]ê de [[girtî]]. #* {{jêder-malper|ku|jêgirtin=Ne îşê henekan e! Ev serê sê mehan e, ez jî wekî herkesî li malê '''hefsî''' me. Loma jî, hubir di qelema min de gewimî ye. Edetî bûye nola terşeke nedotî û li ser guhanan; aha wanî guhan lê zerpitiye.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Formên alternatîv ==== {{kol3|ku |hebisî |hebsî |hefisî |hepisî |hepsî |hevisî |hevsî |ḧebisî |ḧebsî |ḧefisî |ḧefsî |ḧepisî |ḧepsî |ḧevisî |ḧevsî }} ==== Hevmane ==== {{kol3|ku |esîr |dîl |girtî |sicinî |zeftkirî |zindanî }} ==== Jê ==== {{kol3|ku|cure=Jê |hefsî bûn<pos:lêker> |hefsî kirin<pos:lêker> |hefsîbûn<pos:navdêr> |hefsîkirin<pos:navdêr> |hefsîbûyî<pos:rengdêr> |hefsîkirî<pos:rengdêr> |hefsîtî }} ==== Têkildar ==== {{kol3|ku |dîlgeh |esîrgeh |girtîgeh |hefs |şkence |tazîb }} ==== Etîmolojî ==== Ji {{paş|ku|hefs|-î}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Gefangener}} {{n}} * {{Z|cs}}: {{W|cs|vězeň}} {{nt}} * {{Z|eo}}: {{W|eo|malliberulo}}, {{W|eo|kaptito}}, {{W|eo|prizonulo}} * {{Z|fi}}: {{W|fi|vanki}} * {{Z|fr}}: {{W|fr|prisonnier}} {{nt}} * {{Z|nl}}: {{W|nl|gevangene}} {{n}} * {{Z|en}}: {{W|en|prisoner}}, {{W|en|detainee}}, {{W|en|captured}}, {{W|en|termer|guman=erê}} * {{Z|ja}}: {{W|ja|囚人|tr=shūjin}}; {{W|ja|捕虜|tr=horyo}} * {{Z|ca}}: {{W|ca|zatvorenik}} {{n}}, {{W|ca|zatvorenica}} {{mê}} * {{Z|pl}}: {{W|pl|więzień}} {{nt}} * {{Z|pt}}: {{W|pt|prisioneiro}} {{nt}} * {{Z|ru}}: [[заключенный]] (zakl'učónnyj) * {{Z|sh}}: {{W|sh|zatvorenik}} {{nt}}, {{W|sh|kažnjenik}} {{nt}}, {{W|sh|zarobljenik}} {{nt}} * {{Z|sl}}: {{W|sl|zapornik}} {{n}}, [[zapornica]]; [[jetnik]], {{W|sl|jetnica}} {{mê}} * {{Z|es}}: {{W|es|prisionero}} {{nt}} * {{Z|sw}}: {{W|sw|mabusu|xs=Swahili}} * {{Z|sv}}: {{W|sv|fånge}} * {{Z|tr}}: {{W|tr|esir}}, {{W|tr|dil}}, {{W|tr|munkabız}}, {{W|tr|peklik}}, {{W|tr|mahpus}}, {{W|tr|mapus}}, {{W|tr|kabız}} * {{Z|el}}: {{W|el|κρατούμενος}} {{n}}, {{W|el|φυλακισμένος}} {{n}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=mn}} # {{guharto|ku|hevsî|w=cîran, kesên malên wan nêzî hev}} 7dwzrmkdlwi2fafa8f1ldu0mysq7m2r dims 0 9995 6328920 6305378 2026-08-11T11:38:53Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328920 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Dims Dêrika Çiyayê Mazî 2010.JPG|thumb|Dimsê tiriyê]] {{navdêr|ku|z=m}} # {{f|ku|xwarin}} [[şerbet|Şerbet]]a [[tirî]] ya [[kelandin|kelandî]]. #: {{hevmane|ku|dob|doşav|mot|şirûb|dobe|aqit|bekmez}} #* {{jêder-malper|ku|jêgirtin=Lê çi heyf ku kes qedrê '''dimsa''' tûyan nizane. Halbû li gundan wek xwarina super tê zanîn.|nivîskar=Zinarê Xamo|sernav=Bîrîkirina dimsê|url=https://zinarexamo.blogspot.com/2020/12/birikirina-dimse.html|urlya-arşîvê=https://web.archive.org/web/20240406083206/https://zinarexamo.blogspot.com/2020/12/birikirina-dimse.html|malper=https://zinarexamo.blogspot.com/|dîrok=2020-12-22}} #* {{jêder-malper|ku|jêgirtin=Ev '''dimsa''' ku em ê çêbikin hinek difiroşin û hinek jî didin cîranên xwe û yê mayî jî ji xwe re hiltînin.|sernav=Li quntara Çiyayê Gabarê dema çêkirina dimsê ye|url=https://bianet.org/haber/li-quntara-ciyaye-gabare-dema-cekirina-dimse-ye-249307|malper=bianet.org|dîrok=2021-08-21}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|دمس}} ==== Formên alternatîv ==== * {{g|ku|dibs}} * {{g|ku|difs}} * {{g|ku|divs}} ==== Jê ==== * {{g|ku|dimsane}} * {{g|ku|dimsî}} ==== Etîmolojî ==== Ji {{deyn|ar|ku|دِبْس}}, hevreha {{hv|he|דבש|tr=dibeş, diveş|w=[[hingivîn]]}}, {{hv|arc|ܕܒܫܐ|tr=deḇşa, devşa|w=[[hingivîn]]}} û {{hv|akk|𒁲𒅖𒁍𒌝|ts=di-iš-pu-um|tr=dišpum}}. ==== Bide ber ==== * {{g|ku|xoşav}} ==== Bi zaravayên din ==== * {{Z|zza}}: {{W-|zza|rîb}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|melasse}} * {{Z|de}}: {{W|de|Melasse|f}}, {{W|de|Sirup|m}} * {{eo}}o: [[melaso]] * {{Z|ast}}: {{W|ast|melaza|f}} * {{Z|br}}: {{W|br|triakl|m}} * {{Z|ar}}: {{W|ar|دبس|guman=erê}} * {{Z|fa}}: {{W-|fa|شیره}} * {{Z|fi}}: {{W+|fi|melassi}} * {{Z|fr}}: {{W|fr|mélasse|f}} * {{Z|gl}}: {{W|gl|melaza|f}} * {{Z|nl}}: {{W|nl|melasse|f}} * {{Z|he}}: {{W-|he|דבשה|tr=divsha}} * {{Z|en}}: {{W+|en|molasses}} * {{Z|it}}: {{W|it|melassa|f}} * {{Z|ja}}: {{W|ja|糖蜜|tr=[[とうみつ]], tōmitsu}} * {{Z|qu}}: {{W|qu|q'ita|xs=Quechua}} * {{Z|ko}}: {{W|ko|당밀|tr=dangmil}} * {{Z|gv}}: {{W+|gv|soo shugyr}} * {{Z|hu}}: {{W+|hu|melasz}} * {{Z|pl}}: {{W|pl|melasa|f}} * {{Z|pt}}: {{W|pt|melaço|m}} * {{Z|ru}}: {{W|ru|меласса|tr=melássa|f}} * {{Z|srn}}: {{W+|srn|malasi}} * {{Z|es}}: {{W|es|melaza|f}} * {{Z|sv}}: {{W|sv|melass|c}} * {{Z|tr}}: {{W+|tr|pekmez}} * {{Z|vo}}: {{W-|vo|melat|xs=Volapük}} {{werger-bin}} fdhr67dthlqbz3vmxt8hjox2b5myhd4 di ... da 0 10366 6328912 6232762 2026-08-11T11:27:58Z Balyozbot 7867 /* Bazinedaçek */ sererastkirin 6328912 wikitext text/x-wiki == {{ziman|ku}} == === Bazinedaçek === {{bazinedaçek|ku|[[di]] ... [[da]]}} # {{f|ku|Dihok}} {{bnr|di ... de}} #* {{jêder-malper|ku|jêgirtin=Heke ez '''di''' derheqê tiştekî '''da''', kesekî da an jî bûyerekî da ji xwe bawer bim ez ewê çaxê xwe gelek rehet hîs dikim.|nivîskar=Rehmî Kurdziman|sernav=Ez ji xwe ra nabêjim nivîskar, karê min nivîskarî nîne|malper=inanolo.blogspot.com|url=https://inanolo.blogspot.com/2018/10/rehmi-kurdziman-ez-ji-xwe-ra-nabejim.html|sal=2018}} 9d8jmo2suy2469lp9j6d0ssfroi5cnl cire 0 11171 6328831 6304291 2026-08-11T00:32:11Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328831 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒɪˈrɛ/}} {{r-ya req}} === Navdêr === {{navdêr|ku|z=m}} # [[dubendî]], [[lihevnekirin]], [[arîşe]], [[kêşe]], [[pirsgirêk]], [[problem]], [[nakokî]] #* {{jêder-malper|ku|jêgirtin=Berî sefera Celal Talebanî jî '''cire''' di navbera herduyan [Talebanî û serokwezîrê Iraqê Îbrahîm Ceferî] de li ser sefera Emerîkayê çêbû...|sernav=Brahîm Ceferî diçe şerê Celal Talebanî|malper=Nefel.com|sal=9/2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Formên alternatîv ==== * [[cirre]] ==== Jê ==== {{stûn| * [[cirxweş]] * [[cirnexweş]] * [[bêcire]] * [[bêciretî]] * [[bêcireyî]] * [[bicire]] * [[biciretî]] * [[bicireyî]] * [[ciredar]] * [[bêciredarî]] * [[cirekir]] * [[cirekirî]] }} ==== Etîmolojî ==== Ji {{qertaf|ku|cir|-e}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|جروبحث}} * {{Z|en}}: {{W+|en|strife}}, {{W+|en|arguing}} {{werger-bin}} ki570x8h40b5pmzjsy63vox0bml7lli banehî 0 11255 6328793 6297908 2026-08-11T00:27:13Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328793 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[man]]a [[dem]]ek [[kurt]] li [[der]]ekê, xasme li [[çol]]ê #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[baneyî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|banehî}} {{rengdêr|ku}} # [[ne berdewam]], [[ne herdemî]], ne [[hertimî]] #* {{jêder-malper|ku|jêgirtin=Qet nedihat gund û nehyeyê her di odeyeka wî xaniyê '''banehî''' yê ji kevr û axê yê birayê xwe de dima...|nivîskar=Mihemed Evdila|sernav=Mijara nivîsandinê|malper=Nefel.com|sal=9/2005}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} qwfmxpw6fp98n31s148gv0hlh25bbvi hostes 0 11272 6328988 6308841 2026-08-11T11:51:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328988 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[jin]]a [[mazûmvan]], [[jin]]a mirov lê bûne [[mêvan]], [[kabanî]], [[bermalî]], [[xwedî|xwediya]] malê #* {{bêmînak|ku}} # [[jin]]ên [[xizmetkar]] di [[firoke]]yên [[nefer]]î de #* {{jêder-malper|ku|jêgirtin=Di wê gavê de hûn ê bibînin ku teyareya we gihaye ber perê ezmên û '''hostesên''' karxezalî bi lotik dibezin vî serî û wî serî.|nivîskar=Enwer Karahan|sernav=Rêwîtiyeke kin|malper=Netkurd.com|sal=9/2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[ostes]] ==== Jê ==== * [[hostesî]] ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|hostess}} ji {{ji|enm|ku|hostesse}}, ji {{ji|frm|ku|hostesse}}, ji {{ji|fro|en|ostesce}}, ji {{g|fro|oste|w=[[mazûvan]]}} + {{g|fro|-esce|w=paşgira [[mê]]}}. ==== Bide ber ==== * [[host]] ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W|tr|hostes}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # hostes #* {{bêmînak|tr}} # [[mêvandar]], [[mihmandar]] #* {{bêmînak|tr}} tkf9q3sk8sa8a0jeeq9yxptbjtdr7d5 dahênan 0 11407 6328898 6304518 2026-08-11T11:25:25Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328898 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} [[Wêne:SteamEngine_Boulton&Watt_1784.png|thumb|250px|Makîneya [[vapor]]an ku sedsala 18an hatiye dahênan.]] === Navdêr === {{navdêr|ku|z=m}} # [[îcad]], [[keşf]], [[îcadkirin]], [[keşfkirin]] #* {{jêder-malper|ku|jêgirtin=Dr. Azad Necar ku ji navçeya Zaxo ya Başûrê Kurdistanê ye, di warê tibê de '''dahênaneke''' mezin kiriye û dilekî çêkirî pêk aniye.|malper=https://www.kurdistan24.net/kmr/|sal=2/2021|sernav=Bijîşkê Kurd ku bi dahênana xwe serdemeke nû vedike: Dr. Azad Necar|url=https://www.kurdistan24.net/kmr/story/51134-Bij%C3%AE%C5%9Fk%C3%AA-Kurd-ku-bi-dah%C3%AAnana-xwe-serdemeke-n%C3%BB-vedike:-Dr.-Azad-Necar}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|داهێنان}} ==== Formên alternatîv ==== * [[dahînan]] ==== Etîmolojî ==== Ji {{deyn|ckb|ku|داهێنان}}, binêre: [[da-]] + [[hênan]]. ==== Bide ber ==== * [[rahênan]] ==== Têkildarî ==== *[[dahêner]] *[[dahênerî]] *[[dahênayî]] *[[dahênanî]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|uitvinding}} * {{Z|sq}}: {{W+|sq|shpikje|m}} * {{Z|de}}: {{W+|de|Erfindung|m}} * {{Z|ast}}: {{W-|ast|invención|m}}, {{W-|ast|inventu|n}} * {{Z|az}}: {{W+|az|ixtira}} * {{Z|be}}: {{W-|be|вынахо́дства|nt}} * {{Z|bn}}: {{W+|bn|আবিষ্কার}} * {{Z|bg}}: {{W+|bg|изобрете́ние|nt}}, {{W+|bg|откритие|nt}} * {{Z|my}}: {{W-|my|တီထွင်မှု}} * {{Z|cs}}: {{W+|cs|vynález|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|發明|tr=fāmíng}} * {{Z|da}}: {{W-|da|opfindelse}} * {{Z|id}}: {{W+|id|temuan}} * {{Z|ar}}: {{W-|ar|اِخْتِرَاع|n}} * {{Z|hy}}: {{W+|hy|գյուտ|sc=Armn}} * {{Z|eo}}: {{W+|eo|invento}} * {{Z|et}}: {{W-|et|leiutis}} * {{Z|fa}}: {{W+|fa|اختراع|tr=exterâ'}} * {{Z|fi}}: {{W+|fi|keksintö}} * {{Z|fr}}: {{W+|fr|invention|m}} * {{Z|gl}}: {{W+|gl|invención|m}}, {{W-|gl|invento|n}} * {{Z|ka}}: {{W-|ka|გამოგონებისა|sc=Geor}} * {{Z|hi}}: {{W+|hi|आविष्कार}} * {{Z|nl}}: {{W+|nl|uitvinding|m}} * {{Z|he}}: {{W-|he|הַמְצָאָה|tr=hamtsa'á|m}} * {{Z|io}}: {{W+|io|inventuro}} * {{Z|ang}}: {{W-|ang|orþanc|n}} * {{Z|en}}: {{W+|en|invention}} * {{Z|ga}}: {{W-|ga|aireagán|n}} * {{Z|it}}: {{W+|it|invenzione|m}} * {{Z|is}}: {{W-|is|uppfinning|m}} * {{Z|ja}}: {{W+|ja|発明|tr=はつめい, hatsumei}} * {{Z|ca}}: {{W+|ca|invenció|m}}, {{W+|ca|invent|n}} * {{Z|ko}}: {{W-|ko|발명(發明)}} * {{Z|lv}}: {{W-|lv|izgudrojums|n}} * {{Z|lt}}: {{W-|lt|išradimas|n}} * {{Z|lb}}: {{W-|lb|Erfindung|m}} * {{Z|mk}}: {{W-|mk|пронајдок|n}}, {{W-|mk|изум|n}} * {{Z|mt}}: {{W-|mt|invenzjoni|m}} * {{Z|hu}}: {{W+|hu|találmány}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|oppfinnelse}} * {{Z|ug}}: {{W-|ug|كەشپ}}, {{W-|ug|كەشپىيات}} * {{Z|uz}}: {{W+|uz|ixtiro}} * {{Z|pl}}: {{W+|pl|wynalazek|n}} * {{Z|pt}}: {{W+|pt|invenção|m}} * {{Z|ro}}: {{W+|ro|invenție|m}} * {{Z|ru}}: {{W+|ru|изобрете́ние|nt}} * {{Z|sh}}: *: Kirîlî {{W-|sh|изум|n}} *: Latînî {{W+|sh|izum|n}} * {{Z|sk}}: {{W-|sk|vynález|n}} * {{Z|sl}}: {{W+|sl|izum|n}} * {{Z|es}}: {{W+|es|invención|m}}, {{W+|es|invento|n}} * {{Z|sv}}: {{W+|sv|uppfinning|g}} * {{Z|tg}}: {{W-|tg|ихтироъ}} * {{Z|tl}}: {{W-|tl|imbensiyon}} * {{Z|th}}: {{W-|th|สิ่งประดิษฐ์}} * {{Z|te}}: {{W+|te|కల్పన}} * {{Z|tr}}: {{W+|tr|buluş}}, {{W+|tr|icat}} * {{Z|bo}}: {{W-|bo|གསར་བཟོ}} * {{Z|ur}}: {{W-|ur|اِیجاد|tr=ījād}}, {{W-|ur|اِیجادات|tr=ījādāt}} * {{Z|uk}}: {{W-|uk|ви́нахід|n}} * {{Z|vi}}: {{W+|vi|phát minh}} ({{W-|vi|發明|sc=Hani}}) * {{Z|vo}}: {{W+|vo|datuvot}} * {{Z|cy}}: {{W+|cy|dyfais|m}} * {{Z|km}}: {{W-|km|ប្រឌិត|tr=prɑdɨt|sc=Khmr}}, {{W-|km|ការប្រឌិត|tr=kaa prɑdɨt|sc=Khmr}}, {{W+|km|តក្កកម្ម}} * {{Z|el}}: {{W+|el|εφεύρεση|m}} *: {{Z|grc}}: {{W-|grc|εὕρημα|nt}} {{werger-bin}} hgst6oglrk09wyusw223492v5p8rhor 6328925 6328898 2026-08-11T11:41:18Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328925 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} [[Wêne:SteamEngine_Boulton&Watt_1784.png|thumb|250px|Makîneya [[vapor]]an ku sedsala 18an hatiye dahênan.]] === Navdêr === {{navdêr|ku|z=m}} # [[îcad]], [[keşf]], [[îcadkirin]], [[keşfkirin]] #* {{jêder-malper|ku|jêgirtin=Dr. Azad Necar ku ji navçeya Zaxo ya Başûrê Kurdistanê ye, di warê tibê de '''dahênaneke''' mezin kiriye û dilekî çêkirî pêk aniye.|malper=https://www.kurdistan24.net/kmr/|sal=2/2021|sernav=Bijîşkê Kurd ku bi dahênana xwe serdemeke nû vedike: Dr. Azad Necar|url=https://www.kurdistan24.net/kmr/story/51134-Bij%C3%AE%C5%9Fk%C3%AA-Kurd-ku-bi-dah%C3%AAnana-xwe-serdemeke-n%C3%BB-vedike:-Dr.-Azad-Necar}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|داهێنان}} ==== Formên alternatîv ==== * [[dahînan]] ==== Têkildar ==== *[[dahêner]] *[[dahênerî]] *[[dahênayî]] *[[dahênanî]] ==== Etîmolojî ==== Ji {{deyn|ckb|ku|داهێنان}}, binêre: [[da-]] + [[hênan]]. ==== Bide ber ==== * [[rahênan]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|uitvinding}} * {{Z|sq}}: {{W+|sq|shpikje|m}} * {{Z|de}}: {{W+|de|Erfindung|m}} * {{Z|ast}}: {{W-|ast|invención|m}}, {{W-|ast|inventu|n}} * {{Z|az}}: {{W+|az|ixtira}} * {{Z|be}}: {{W-|be|вынахо́дства|nt}} * {{Z|bn}}: {{W+|bn|আবিষ্কার}} * {{Z|bg}}: {{W+|bg|изобрете́ние|nt}}, {{W+|bg|откритие|nt}} * {{Z|my}}: {{W-|my|တီထွင်မှု}} * {{Z|cs}}: {{W+|cs|vynález|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|發明|tr=fāmíng}} * {{Z|da}}: {{W-|da|opfindelse}} * {{Z|id}}: {{W+|id|temuan}} * {{Z|ar}}: {{W-|ar|اِخْتِرَاع|n}} * {{Z|hy}}: {{W+|hy|գյուտ|sc=Armn}} * {{Z|eo}}: {{W+|eo|invento}} * {{Z|et}}: {{W-|et|leiutis}} * {{Z|fa}}: {{W+|fa|اختراع|tr=exterâ'}} * {{Z|fi}}: {{W+|fi|keksintö}} * {{Z|fr}}: {{W+|fr|invention|m}} * {{Z|gl}}: {{W+|gl|invención|m}}, {{W-|gl|invento|n}} * {{Z|ka}}: {{W-|ka|გამოგონებისა|sc=Geor}} * {{Z|hi}}: {{W+|hi|आविष्कार}} * {{Z|nl}}: {{W+|nl|uitvinding|m}} * {{Z|he}}: {{W-|he|הַמְצָאָה|tr=hamtsa'á|m}} * {{Z|io}}: {{W+|io|inventuro}} * {{Z|ang}}: {{W-|ang|orþanc|n}} * {{Z|en}}: {{W+|en|invention}} * {{Z|ga}}: {{W-|ga|aireagán|n}} * {{Z|it}}: {{W+|it|invenzione|m}} * {{Z|is}}: {{W-|is|uppfinning|m}} * {{Z|ja}}: {{W+|ja|発明|tr=はつめい, hatsumei}} * {{Z|ca}}: {{W+|ca|invenció|m}}, {{W+|ca|invent|n}} * {{Z|ko}}: {{W-|ko|발명(發明)}} * {{Z|lv}}: {{W-|lv|izgudrojums|n}} * {{Z|lt}}: {{W-|lt|išradimas|n}} * {{Z|lb}}: {{W-|lb|Erfindung|m}} * {{Z|mk}}: {{W-|mk|пронајдок|n}}, {{W-|mk|изум|n}} * {{Z|mt}}: {{W-|mt|invenzjoni|m}} * {{Z|hu}}: {{W+|hu|találmány}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|oppfinnelse}} * {{Z|ug}}: {{W-|ug|كەشپ}}, {{W-|ug|كەشپىيات}} * {{Z|uz}}: {{W+|uz|ixtiro}} * {{Z|pl}}: {{W+|pl|wynalazek|n}} * {{Z|pt}}: {{W+|pt|invenção|m}} * {{Z|ro}}: {{W+|ro|invenție|m}} * {{Z|ru}}: {{W+|ru|изобрете́ние|nt}} * {{Z|sh}}: *: Kirîlî {{W-|sh|изум|n}} *: Latînî {{W+|sh|izum|n}} * {{Z|sk}}: {{W-|sk|vynález|n}} * {{Z|sl}}: {{W+|sl|izum|n}} * {{Z|es}}: {{W+|es|invención|m}}, {{W+|es|invento|n}} * {{Z|sv}}: {{W+|sv|uppfinning|g}} * {{Z|tg}}: {{W-|tg|ихтироъ}} * {{Z|tl}}: {{W-|tl|imbensiyon}} * {{Z|th}}: {{W-|th|สิ่งประดิษฐ์}} * {{Z|te}}: {{W+|te|కల్పన}} * {{Z|tr}}: {{W+|tr|buluş}}, {{W+|tr|icat}} * {{Z|bo}}: {{W-|bo|གསར་བཟོ}} * {{Z|ur}}: {{W-|ur|اِیجاد|tr=ījād}}, {{W-|ur|اِیجادات|tr=ījādāt}} * {{Z|uk}}: {{W-|uk|ви́нахід|n}} * {{Z|vi}}: {{W+|vi|phát minh}} ({{W-|vi|發明|sc=Hani}}) * {{Z|vo}}: {{W+|vo|datuvot}} * {{Z|cy}}: {{W+|cy|dyfais|m}} * {{Z|km}}: {{W-|km|ប្រឌិត|tr=prɑdɨt|sc=Khmr}}, {{W-|km|ការប្រឌិត|tr=kaa prɑdɨt|sc=Khmr}}, {{W+|km|តក្កកម្ម}} * {{Z|el}}: {{W+|el|εφεύρεση|m}} *: {{Z|grc}}: {{W-|grc|εὕρημα|nt}} {{werger-bin}} dtsozplks7be2sfdjnrdv1wmjq2wf7q irase 0 11918 6328991 6309198 2026-08-11T11:51:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328991 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Cihê tişt lê tên [[kirîn]] û [[firotin]]. #: {{hevmaneyên peyvê|ku|bazar|sûk|çarşû|firoşgeh}} #* {{jêder-malper|ku|jêgirtin='''Irase''' sibê zû vedibû. Piştî nimêja sibê tim dikandarî dihatin irasê.|nivîskar=Kazım Özdemir|sernav=Newala Qesaba|malper=Navkurd.de|sal=2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Formên alternatîv ==== * {{g|ku|eras}} * {{g|ku|erase}} * {{g|ku|iras}} * {{g|ku|îras}} * {{g|ku|îrase}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W|tr|hâl}} {{werger-bin}} hvyidweiv9xioe9jzu0fk08hl6hzfte naşî 0 12213 6329072 6130377 2026-08-11T11:54:19Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329072 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[xişîm]], [[cahil]], [[nefam]], [[negihiştî]], [[netêgihiştî]], [[nezan]], [[kawik]] #* {{bêmînak|ku}} # [[saf]], [[xav]], [[dilsaf]], [[dilpak]], [[dilpaqij]] #* {{jêder-kovar|ku|jêgirtin=Ev sewtê sotî, janeke teze, '''naşî''' û saf, ji nav cîgereke paqij derdiket û li çiyan belav dibû.|kovar=MEHNAME|sernav=Huzna|nivîskar=Roşan Lezgîn|hejmar=35|sal=2002}} #* {{jêder-pirtûk|ku|jêgirtin=Sibetirê kinc û cilê xwe; pênûş lenûskê xwe û hinek amûrê xwarin û vexwarinê hilda, ji sukê jî hinek pêwistiyên din standin, derê mala xwe dada, bi coşeke '''naşî''', min berê xwe da rawestgehê.|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=80|isbn=978-605-5585-41-9}} # [[neşet]][[girtî]], [[peydabûyî]] #* {{bêmînak|ku}} ==== Etîmolojî ==== Ji {{ji|ar|ku|ناشي|tr=naşî}}. ==== Jê ==== * [[naşîtî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|naiv}}, {{W+|de|ungebildet}} * {{Z|da}}: {{W+|da|naiv}} * {{Z|ar}}: {{W|ar|بسيط|guman=erê}} * {{Z|eo}}: {{W+|eo|naiva}} * {{Z|fa}}: {{W+|fa|ناشی}}, {{W+|fa|بی تجربه}} * {{Z|fo}}: {{W+|fo|góðvarin}} * {{Z|fi}}: {{W+|fi|lapsellinen}}, {{W+|fi|naiivi}} * {{Z|fr}}: {{W|fr|naïf|m}}, {{W|fr|naïve|f}}, {{W+|fr|candide}} * {{Z|nl}}: {{W+|nl|argeloos}}, {{W+|nl|naïef}}, {{W+|nl|ongekunsteld}}, {{W+|nl|onnozel}} * {{Z|en}}: {{W+|en|naive}}, {{W+|en|naïf}}, {{W+|en|naïve}}, {{W+|en|ingenuous}}, {{W+|en|innocent}}, {{W+|en|simple}}, {{W+|en|candide}}, {{W+|en|childish}}, {{W+|en|inadvertent|guman=erê}}, {{W+|en|mindless|guman=erê}}, {{W|en|greenhorn|guman=erê}} * {{Z|ca}}: {{W+|ca|càndid}}, {{W+|ca|candorós}}, {{W+|ca|ingenu}} * {{Z|pt}}: {{W+|pt|cândido}}, {{W+|pt|ingênuo}} * {{Z|es}}: {{W+|es|ingenuo}}, {{W+|es|cándido}} * {{Z|sv}}: {{W+|sv|naiv}} * {{Z|tr}}: {{W+|tr|budala}}, {{W+|tr|saf}}, {{W+|tr|avanak}}, {{W+|tr|bön}}, {{W+|tr|acemi}}, {{W+|tr|cahil}}, {{W+|tr|tecrübesiz}}, {{W+|tr|toy}}, {{W+|tr|çaylak}}, {{W+|tr|tor}}, {{W|tr|acemi çaylak|guman=erê}}, {{W|tr|götü boklu|guman=erê}}, {{W|tr|tecrübesiz genç|guman=erê}} * {{Z|el}}: {{W+|el|αγαθός}} {{werger-bin}} hskhnmk4zpfq0fcyijfwp464fv7ifkt bilîn 0 13185 6328813 6300591 2026-08-11T00:28:54Z Balyozbot 7867 /* Lêker */ sererastkirin 6328813 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|bilîn|form=negerguhêz|niha=bil|borî=bilî|borî2=biliya}} {{lêker|ku|c=x-ngh}} # Li ser [[kar]]ekî [[sekinîn]] û wî karî kirin. #: {{hevmaneyên peyvê|ku|mijûl bûn|pê rabûn|konsentre bûn|pê daketin|lê xebitîn}} #* {{jêder|ku|jêgirtin=Dîlan çentê xwe ji pişta xwe kir, li bin darê rûnişt û bi cebirandina ling û baskê kevokê '''biliya'''.|{{Jêgirtin/Firat Cewerî/Girtî}}}} #* {{jêder-malper|ku|jêgirtin=Bi vê firsendê me xwest ku em ji bo we xwendevanan havpeyivînekê pê re bikin, hîn bibin bê ka ew nuha çi dike bi çi '''dibile'''.|nivîskar=Sîdar Yigit|sernav=Hevpeyivîn bi Xero Abbas re|url=https://www.kurdishmagazin.com/km/hevpeyivin-bi-xero-abbas-re.html|malper=kurdishmagazin.com|sal=2006}} #* {{jêder-kovar|ku|jêgirtin=Her mijûliyên ku insan jê hez dikin û '''dibilin''' divê ji kar bên hesabkirin.|kovar=Nûbihar|sernav=CIVAKA IT Û PIRSA KURDÎ (2)|url=http://bnk.institutkurde.org/images/pdf/BX65EZS2W4.pdf|nivîskar=Mûrad Ciwan|hejmar=26|sal=1998|rûpel=23}} # {{f|ku|bi taybetî [[deng]]}} [[qut bûn]], [[vebirîn]], [[mit bûn]], [[birîn]] #* {{jêder|ku|jêgirtin=Hem ji ber pêdaketina hevalan hem jî ji ber vexwarina ji esir ve, Ferda pir dilzîz bûbû û bi wê dilzîziyê dest bi axaftineke kurt kir. Deng ji her kesî '''biliya'''.|{{Jêgirtin/Firat Cewerî/Payiza Dereng|weşanxane={{w|Avesta}}|sal=2014|r=19}}}} #* {{jêder-malper|ku|jêgirtin=Ji ber çavê min windabû û<br>Deng jî ji dor min '''biliya'''<br>Ez bûm wek rêwiyekî<br>Kerr û gêj û lal.|nivîskar=Konê Reş|sernav=Spehiyê!|url=https://www.helbestakurdi.com/helbest/kone-res--spehiye-.html|malper=helbestakurdi.com}} #* {{jêder-kovar|ku|jêgirtin=Wê sibehê em gihştin dibistanê, Emar ji xwe rabibû, me siloganên partiya bass bi dengê bilind gotin, deng ji şaxên daran, ji civîk û tilûran '''biliya''', her hinek ji wan bi deverekê ve çûn.|kovar=Kurdistan|sernav=Terora mamosteyê me|nivîskar=Idrîs Hiso|hejmar=174|rûpel=3|sal=2020|url=https://issuu.com/pdksp/docs/kurdi-174}} #* {{jêder|ku|jêgirtin=Destê sibehê dinya hebekî hênik bû deng ji kermêşan bilîya, ez cardin rabûm çûm ketim nava nivînên xwe, ji xwe ra raketim.|{{Jêgirtin/Sadiq Ûskan/Şampaz}}}} ==== Bi alfabeyên din ==== * {{ku-ar|بلین}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |bilan |bilhan |bilhîn |bilihan |bilihîn |biliyan |bilîyan |bilyan }} ==== Nêzîk ==== * {{g|ku|birîn}} * {{g|ku|birîn}} * {{g|ku|biriyan}} ==== Jê ==== * {{g|ku|bilî}} * {{g|ku|biliyayî}} ==== Têkildar ==== * {{g|ku|bilandin}} ==== Etîmolojî ==== Ji berê ''{{jinûvesazî|[[werj-]]}}'', (rz/rj/rd [[gelek caran]] dibin /l/ - /w/ [[gelek caran]] dibin /b/) ji [[proto-îranî|pêş-îranîkî]] {{g|ku|ira-pro|*warj|tr=werc-|[[kar]], [[xebat]]}}, ji [[pêş]]-[[hind]][[û]][[îranî]]kî {{g|ku|iir-pro|*warȷ́-}} ji [[proto-hindûewropî|pêş-hindû-ewropî]] {{g|ku|ine-pro|*werǵ-|w=[[kirin]]}}. [[hevreh|Hevreha]] [[farisî]] {{g|fa|ورزیدن|tr=werzîden}} (>kurdî ''[[werziş]]''), [[partî|pehlewî]] {{g|xpr|𐫇𐫡𐫝|tr=werj|sc=Mani|w=[[hêz]]a [[mucîzewî]]; [[micîze]], [[derhoze]]}}, [[talişî]] {{g|tly|varzîniye|w=[[hevîr kirin]], [[strandin]], [[sist kirin]]}}, [[pehlewî|farisiya navîn]]{{g|pal|tr=wlc|ts=werz|w=[[xebat]], [[çandin]], [[cotyarî]]; [[hêz]]a [[mucîzewî]]; [[micîze]]}} (>kurdî ''[[werz]]''), [[avestayî|evistayî]] {{g|ae|𐬬𐬆𐬭𐬆𐬰|tr=weriz-|w=kirin, kar}} ingilîzî {{g|en|work}} û {{g|en|wrought}}, elmanî {{g|de|wirken}}, yewnanî {{g|el|ku|ἔργον|tr=êrgon|w=kar}} (>kurdî ''[[erk]]''). ==== Werger ==== {{werger-ser|bi tiştekî mijûl bûn|stûn=1}} * {{Z|en}}: {{W+|en|engage}} (in sth) * {{Z|tr}}: {{W+|tr|iştigal etmek}}, {{W+|tr|uğraşmak}} {{werger-bin}} {{werger-ser|deng qut bûn|stûn=1}} * {{Z|en}}: {{W-|en|go silent}} * {{Z|tr}}: {{W+|tr|kesilmek}} {{werger-bin}} {{werger-ser|Wergerên ku divê bên kontrolkirin|stûn=1}} * {{Z|fa}}: {{W+|fa|مشغول شدن}}, {{W-|fa|سرگرم شدن}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mane?|ku}} #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|uğraşma}}, {{W+|tr|uğraşı}}, {{W+|tr|iştigal}} {{werger-bin}} aaj6ieb6p4vk6j0ibuqf8vf7gleo5uw çik bûn 0 13199 6328888 5895345 2026-08-11T11:24:46Z Balyozbot 7867 /* Lêker */ sererastkirin 6328888 wikitext text/x-wiki {{bnr-n|çikbûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|çik bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=çik|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[bêhnteng|Bêhnteng]] bûn, [[baş]] ne[[hatin]] û [[çûn]], [[nebaş]] bûn, [[henase]] bi [[zehmet]] kêşan. #* {{bêmînak|ku}} # (Av an robar) Hişk bûn, [[ziwa bûn]]. #: {{hevmane|ku|çikîn|miçiqîn}} #* {{jêder-malper|ku|jêgirtin=Yek ji van cîhên xweş Avrêja Kanîspî ye. Taybetmendîya wê ya balkêş ew e ku ava Kanîspîyê di demsala buharê de der dibe û demsala Payîzê de jî '''çik dibe'''.|nivîskar=Arif Aslan|sernav=Kanîspî ya li Şaxa Wanê Û Taybetmendîyên Wê|url=https://www.dengeamerika.com/a/kan%C3%AEsp%C3%AE-wan%C3%AA/6647278.html|urlya-arşîvê=https://web.archive.org/web/20230328014927/https://www.dengeamerika.com/a/kan%C3%AEsp%C3%AE-wan%C3%AA/6647278.html|dîrok=2022-07-06}} # Bi jor ve, bi awayekî [[rast]] û [[çik]] sekinîn. #* {{jêder-malper|ku|jêgirtin=Carcaran di nav herîyê da '''çik dibe''', carcaran jî bi kokekî bîyanî va dizeliqe û diliqî dibe…|nivîskar=Ikram Oguz|sernav=Xewn û Xeyalên Barzanî…|url=https://ikram-oguz.niviskar.org/xewn-u-xeyalen-barzani.html|urlya-arşîvê=https://web.archive.org/web/20230328022959/https://ikram-oguz.niviskar.org/xewn-u-xeyalen-barzani.html|dîrok=2017-09-21}} ==== Bi alfabeyên din ==== * {{ku-ar|چک بوون}} ==== Etîmolojî ==== Ji {{heve|ku|çik|bûn}}. ==== Werger ==== {{werger-ser|bêhnteng bûn}} * {{Z|ar}}: {{W-|ar|لهث}} * {{Z|en}}: {{W-|en|breath with difficulty}}, {{W-|en|be out of breath}} * {{Z|tr}}: {{W-|tr|nefesi kesilmek}} {{werger-bin}} {{werger-ser|hişk bûn, ziwa bûn}} * {{Z|en}}: [[to]] {{W+|en|dry up}}, [[to]] [[become]] {{W+|en|dry}} * {{Z|tr}}: {{W+|tr|kurumak}} {{werger-bin}} {{werger-ser|bi awayekî rast sekinîn}} * {{Z|en}}: [[to]] [[stand]] {{W+|en|upright}} * {{Z|tr}}: {{W+|tr|dikelmek}}, {{W+|tr|dikilmek}} {{werger-bin}} dv4cb601ffga0uy6zm440i3dejova0c îdea 0 13683 6328992 6322333 2026-08-11T11:51:27Z Balyozbot 7867 /* Navdêr 1 */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328992 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr 1 === {{navdêr|ku|z=m}} # [[raman]], [[fikir]], [[hizir]], [[pûnij]] #* {{jêder-malper|ku|jêgirtin=Hema piştî sazbûna xwe komîtêya “Xoybûn“ destbi karê hevgirtina kurdan li dor '''îdêya''' Kurdistana serbixwe kir.|nivîskar=Têmûrê Xelîl|sernav=Peywendiyên Xoybûnê û Daşnaksûtyûnê|malper=Nefel.com|sal=9/2010}} #* {{jêder-kovar|ku|jêgirtin=Pêvajoya leşkerî û siyayî a tevgera "Reconquîsta" ku wekî "'''îdeaya''' megalî" ya Spaniyan dihat dîtinû li ser ji nû ve bidestxistina Endilusê hatibû avakirin çû serî.|kovar=Mukaddime|sernav=Bişaftina Misilmanên Endilusê Piştî Dagirtina Girnatayê|url=https://dergipark.org.tr/en/download/article-file/184121|nivîskar=Feridun BİLGİN|hejmar=2|sal=2010|rûpel=54}} #* {{jêder-malper|ku|jêgirtin=Di felsefeya ehlaqê ya Platon de navê '''îdeaya''' başiyê ye, ku wekî îdeaya herî raser û nirxbilind e. Meriv dikare bibêje ku di felsefeya Platon de Îdeaya başiyê, mîna sebebê hebûna hemû heyînan hatiye bikaranîn.|nivîskar=Ali Gurdilî|sernav=Agathon|url=https://feylesofphilosophia.blogspot.com/2019/01/agathon.html|malper=feylesofphilosophia.blogspot.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin='''Îdeaya''' Wê, Wê Bibe Biryarbun Û Hişmendiya Tekoşîna Me.|sernav=Îdeaya Wê, Wê Bibe Biryarbun Û Hişmendiya Tekoşîna Me.|url=http://hezenparastin.info/ku/index.php?option=com_content&view=article&id=3097%3Aideaya-we-we-bibe-biryarbun-u-himendiya-tekoina-me&catid=43&Itemid=254|malper=hezenparastin.info|sal=2013}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[îde]] * [[îdê]] * [[îdêa]] ==== Jê ==== {{stûn| * [[îdeal]] * [[îdealî]] * [[îdealîst]] * [[îdealîstî]] * [[îdealîzm]] * [[îdeolog]] * [[îdeologîst]] * [[îdeologîstî]] * [[îdeolojî]] * [[îdeolojîst]] * [[îdeolojîzm]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[îdia]] ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|ایده}} * {{Z|en}}: {{W+|en|idea}} * {{Z|tr}}: {{W+|tr|fikir}}, {{W+|tr|ide}}, {{W+|tr|düşün}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{guherto|îdia}} diwoj5l0t2jrlru9qkc9eedbwa5mt7x hutik 0 13864 6328989 6308900 2026-08-11T11:51:21Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328989 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kulm]], [[mist]], [[gurmiç]], [[boks]], [[dest]] (bi taybetî bo [[lêdan]]ê) #: {{nm|ku|'''Hutikek''' lê da, xwîn di dev û difinê re hat.}} #* {{jêder|ku|jêgirtin=Ev hevalê ku me cara pêşî bi hev re lingên xwe li topê xist, ê ku me di eynî demê de porê xwe şeh kir û ji keçikan re fîkand, ê ku me demekêbi hev re li ser dîwaran slagon nivîsandin, ê ku me bi hev re '''hutikên''' xwe li ba kirinû li dijî zilmê qîriyan, ê ku me bi hev re kitêb ne ku xwendin, lê daqurtandin û ê ku em ji ber bela kitêban li vî kujê cîhanê bi cih bûn, ew niha li ser riya vegera welêt e.|{{Jêgirtin/Firat Cewerî/Payiza Dereng|weşanxane={{w|Avesta}}|sal=2014|r=13}}}} #* {{jêder-malper|ku|jêgirtin=Ji bo çi min evqas behsa desthilatdarîyê kir, çimkî romana Mihemed Mukrî a bi navê ‘Segwer’ (Reyîn) '''hutika''' xwe ya bindestîyê li maseya serdestîyê xistiye û mase hejandiye.|nivîskar=Çorê Arda|sernav=Desthilatdarî nêr e|url=https://xwebun.org/desthilatdari-ner-e/|malper=xwebun.org|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |himik |himk |humik |humuk |hitik |hitk |hutk |ḧimik |ḧimk |ḧumik |ḧumuk |ḧitik |ḧitk |ḧutik |ḧutk }} ==== Jê ==== * hutik [[lê dan]] * hutik pê ketin * hutik [[xwarin]]: hutik pê ketin ==== Têkildar ==== * {{g|ku|huçik}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * {{g|ku|hetik}} * {{g|ku|kuçik}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|کتک}}, {{W+|fa|مشت}} * {{Z|en}}: {{W+|en|box}}, {{W|en|punchin|guman=erê}} * {{Z|tr}}: {{W+|tr|kötek}}, {{W+|tr|patak}}, {{W+|tr|yumruk}} {{werger-bin}} lrat6u7wm742t4nd2mmf7zaszai259g bir 0 13916 6328817 6301189 2026-08-11T00:29:02Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328817 wikitext text/x-wiki {{bnr-h|bir|bîr|-bir|-bir-}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} {{r-ya req}} * {{beş|Navdêr}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bir.wav|dever=Bidlîs}} * {{beş|Formeke lêkerê}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bir (Formeke lêkerê).wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kom]], [[grûp]], [[kerî]], [[celeb]], [[ref]], [[revde]]<br>[[çendîn]] kes yan tişt bi hev re, [[gelek]] kes yan tişt li gel hev #* {{jêder-malper|ku|jêgirtin=Di van dused salên dawî de rêya gelek ewropiyan ji welatê me -bi gotina wan welatê bejî- derbas bû. '''Birek''' rojhilatnas, zimanzan, mîsyoner, sîxur, tucar û koleksîyoneran dewsa piyên xwe li ser axa me jî çêkirin.|nivîskar=Samî Hêzil|sernav=Karah Kaplan|url=https://xwebun.org/karah-kaplan/|malper=xwebun.org|sal=2020}} #* {{jêder-pirtûk|ku|jêgirtin=Romana wî ya yekemin Şivanê Kurd ku li Rewanê çap bû, 1935, '''birek''' ji jiyana wî taswîr dike.|nivîskar=Mehmed Uzun|sernav=Destpêka edebiyata Kurdî|weşanxane=Ithaki Publishing|sal=2007|rûpel=65|isbn=9789752733695}} # [[cûn]], [[core]], [[çeşîd]], [[teşîd]], [[texlîd]] # [[klip]] ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|بڕ}} ==== Formên alternatîv ==== * [[birr]] (1) ==== Nêzîk ==== * [[wevde]] ==== Jê ==== * [[birî]] ==== Etîmolojî ==== {{nyz|ku}} lê dikare ji zimanekî [[samî]] be, bo nimûne ji {{ji|arc|ku|ܡܪܥܝܬܐ}} (mer'iθa: [[bir]], [[celeb]], [[kerî]]) yan ji {{ji|ar|ku|مرعى}} (mer'a), [[hevreh]]a îbrî [[מרעה]] (mir'ê), hemû ji rehê r-'- ([[çerîn]]). Bo guherîna M bi B bide ber [[bizmar]], [[busirman]], [[bexdenos]] ji "mismar, [[misilman|musilman]], [[mexdenos]]". ==== Bide ber ==== * [[revend]] ==== Werger ==== {{werger-ser|?}} * {{Z|ar}}: {{W-|ar|سك|guman=erê}}, {{W-|ar|نعث|guman=erê}} * {{Z|en}}: {{W+|en|flock}}, {{W+|en|herd}}, {{W+|en|group}}, {{W+|en|cutter|guman=erê}}, {{W+|en|horde|guman=erê}}, {{W+|en|host|guman=erê}}, {{W+|en|passel|guman=erê}}, {{W+|en|posse|guman=erê}}, {{W+|en|edgy|guman=erê}}, {{W+|en|intercurrent|guman=erê}}, {{W+|en|carnassial|guman=erê}} {{werger-bin}} {{werger-ser|?}} * {{Z|de}}: {{W+|de|Abschnitt|m}} * {{Z|fa}}: {{W+|fa|فصل}}, {{W+|fa|تکه}}, {{W+|fa|قسم}} * {{Z|en}}: {{W+|en|segment}} * {{Z|tr}}: {{W+|tr|aksam}}, {{W+|tr|bölüm}}, {{W+|tr|grup}}, {{W+|tr|sürü}}, {{W+|tr|şube}}, {{W-|tr|koyun ve keçi sürüsü}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # {{ku-raboriya-sade|birin|yekem|yekjimar}} # {{ku-raboriya-sade|birin|duyem|yekjimar}} # {{ku-raboriya-sade|birin|sêyem|yekjimar}} # {{ku-raboriya-sade|birin|yekem|pirrjimar}} # {{ku-raboriya-sade|birin|duyem|pirrjimar}} # {{ku-raboriya-sade|birin|sêyem|pirrjimar}} == {{ziman|az}} == === Bilêvkirin === * bîr * {{deng|az|LL-Q9292 (aze)-Azerbaijani audiorecordings-bir.wav|Deng|dever=}} * {{deng|az|LL-Q9292 (aze)-Zardabi Bakuvi-bir.wav|Deng|dever=Bakû, Azerbaycan}} === Hejmar === {{hejmar|az}} # [[yek]], [[1]], [[I]] ==== Binêre herwiha ==== {{lîste:hejmar/az}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Basak-bir.wav|Deng|dever=Tirkiye}} * {{deng|tr|LL-Q256 (tur)-ToprakM-bir.wav|Deng|dever=}} * {{deng|tr|LL-Q256 (tur)-Veravi95-bir.wav|Deng|dever=}} === Hejmar === {{hejmar|tr}} # [[yek]], [[êk]], [[1]], [[I]] ==== Jê ==== * [[biri]]<nowiki/>(si) * [[biricik]] * [[birleşim]] * [[birleşme]] * [[birlik]] ==== Binêre herwiha ==== {{lîste:hejmar/tr}} == {{ziman|uz}} == === Hejmar === {{hejmar|uz}} # [[yek]], [[êk]], [[1]], [[I]] av1s8cal3shqrtzc859yoi81gq2bymm 6328837 6328817 2026-08-11T00:41:11Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328837 wikitext text/x-wiki {{bnr-h|bir|bîr|-bir|-bir-}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} {{r-ya req}} * {{beş|Navdêr}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bir.wav|dever=Bidlîs}} * {{beş|Formeke lêkerê}}: {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-bir (Formeke lêkerê).wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kom]], [[grûp]], [[kerî]], [[celeb]], [[ref]], [[revde]]<br>[[çendîn]] kes yan tişt bi hev re, [[gelek]] kes yan tişt li gel hev #* {{jêder-malper|ku|jêgirtin=Di van dused salên dawî de rêya gelek ewropiyan ji welatê me -bi gotina wan welatê bejî- derbas bû. '''Birek''' rojhilatnas, zimanzan, mîsyoner, sîxur, tucar û koleksîyoneran dewsa piyên xwe li ser axa me jî çêkirin.|nivîskar=Samî Hêzil|sernav=Karah Kaplan|url=https://xwebun.org/karah-kaplan/|malper=xwebun.org|sal=2020}} #* {{jêder-pirtûk|ku|jêgirtin=Romana wî ya yekemin Şivanê Kurd ku li Rewanê çap bû, 1935, '''birek''' ji jiyana wî taswîr dike.|nivîskar=Mehmed Uzun|sernav=Destpêka edebiyata Kurdî|weşanxane=Ithaki Publishing|sal=2007|rûpel=65|isbn=9789752733695}} # [[cûn]], [[core]], [[çeşîd]], [[teşîd]], [[texlîd]] # [[klip]] ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|بڕ}} ==== Formên alternatîv ==== * [[birr]] (1) ==== Nêzîk ==== * [[wevde]] ==== Jê ==== * [[birî]] ==== Etîmolojî ==== {{nyz|ku}} lê dikare ji zimanekî [[samî]] be, bo nimûne ji {{ji|arc|ku|ܡܪܥܝܬܐ}} (mer'iθa: [[bir]], [[celeb]], [[kerî]]) yan ji {{ji|ar|ku|مرعى}} (mer'a), [[hevreh]]a îbrî [[מרעה]] (mir'ê), hemû ji rehê r-'- ([[çerîn]]). Bo guherîna M bi B bide ber [[bizmar]], [[busirman]], [[bexdenos]] ji "mismar, [[misilman|musilman]], [[mexdenos]]". ==== Bide ber ==== * [[revend]] ==== Werger ==== {{werger-ser|?}} * {{Z|ar}}: {{W-|ar|سك|guman=erê}}, {{W-|ar|نعث|guman=erê}} * {{Z|en}}: {{W+|en|flock}}, {{W+|en|herd}}, {{W+|en|group}}, {{W+|en|cutter|guman=erê}}, {{W+|en|horde|guman=erê}}, {{W+|en|host|guman=erê}}, {{W+|en|passel|guman=erê}}, {{W+|en|posse|guman=erê}}, {{W+|en|edgy|guman=erê}}, {{W+|en|intercurrent|guman=erê}}, {{W+|en|carnassial|guman=erê}} {{werger-bin}} {{werger-ser|?}} * {{Z|de}}: {{W+|de|Abschnitt|m}} * {{Z|fa}}: {{W+|fa|فصل}}, {{W+|fa|تکه}}, {{W+|fa|قسم}} * {{Z|en}}: {{W+|en|segment}} * {{Z|tr}}: {{W+|tr|aksam}}, {{W+|tr|bölüm}}, {{W+|tr|grup}}, {{W+|tr|sürü}}, {{W+|tr|şube}}, {{W-|tr|koyun ve keçi sürüsü}} {{werger-bin}} === Formeke lêkerê === {{lêker|ku|form=erê}} # {{ku-raboriya-sade|birin|yekem|yekjimar}} # {{ku-raboriya-sade|birin|duyem|yekjimar}} # {{ku-raboriya-sade|birin|sêyem|yekjimar}} # {{ku-raboriya-sade|birin|yekem|pirrjimar}} # {{ku-raboriya-sade|birin|duyem|pirrjimar}} # {{ku-raboriya-sade|birin|sêyem|pirrjimar}} == {{ziman|az}} == === Bilêvkirin === * bîr * {{deng|az|LL-Q9292 (aze)-Azerbaijani audiorecordings-bir.wav|Deng|dever=}} * {{deng|az|LL-Q9292 (aze)-Zardabi Bakuvi-bir.wav|Deng|dever=Bakû, Azerbaycan}} === Hejmar === {{hejmar|az}} # [[yek]], [[1]], [[I]] ==== Herwiha binêre ==== {{lîste:hejmar/az}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Basak-bir.wav|Deng|dever=Tirkiye}} * {{deng|tr|LL-Q256 (tur)-ToprakM-bir.wav|Deng|dever=}} * {{deng|tr|LL-Q256 (tur)-Veravi95-bir.wav|Deng|dever=}} === Hejmar === {{hejmar|tr}} # [[yek]], [[êk]], [[1]], [[I]] ==== Jê ==== * [[biri]]<nowiki/>(si) * [[biricik]] * [[birleşim]] * [[birleşme]] * [[birlik]] ==== Herwiha binêre ==== {{lîste:hejmar/tr}} == {{ziman|uz}} == === Hejmar === {{hejmar|uz}} # [[yek]], [[êk]], [[1]], [[I]] lumg49l8mrzm5hwimfl0myojegahe41 awêne 0 14086 6328786 6297373 2026-08-11T00:26:29Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328786 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Mirror.jpg|thumb|Awênek]] {{navdêr|ku|z=m}} # [[cam|Cam]]a ku mirov xwe tê re [[dîtin|dibîne]]. #: {{hevmane|ku|eyne|mirêk|qotîk|xodîk}} #* {{jêder-pirtûk|ku|jêgirtin=Ji ser qenepê rabûm, derbasî lavaboyê bûm, dest û serçavên xwe şuştin. Serê xwe bilind kir, min li '''awêneyê''' nihêrî. |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=79|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Dema tu dihatî ser hemdê xwe, awêne dihat bîra te, te dixwest rûyê xwe bibînî. Wê xerîbê, wê nasê! Lê tu wisa bêmecal bûy ku te nekarî bêjî ka '''awêneyek''' bidin ber rûyê min lê tu karibûyayî jî te yê ji şerman negota, tu wek miriyan bûy û te awêne dixwest, meraqa çav û birûyan, lêv û pozî dikir.|nivîskar=Mizgîn Ronak|sernav=Xerîbiya awêneyê|url=https://xwebun.org/xeribiya-aweneye/|malper=xwebun.org|sal=2020}} #* {{jêder-pirtûk|ku|jêgirtin=Çûm ber awêneyê, min li rûyê xwe nihêrî, lê min sûretê di '''awêneyê''' de nasnekir; tiştekî ecêb î xofdar bû.|nivîskar=Sadiq Hidayet|sernav=Bûmê Kor|weşanxane=Na Yayınları|sal=2014|rûpel=80|isbn=9786056392658}} # {{f|ku|mecazî}} [[rewş|Rewş]]a ku li ber çavên hemû kesan [[diqewime]]. #: {{hevmane|ku|eşkere|elenî|numa|pas}} #* {{jêder-malper|ku|jêgirtin=Windayên me '''awêneya''' pergalê ne. Her çiqas nexwazin vê awêneyê bibînin jî lê em li vir in. Duh salvegera qetilkirina bavê min bû. Me bavê min di salvegera 26’emîn de bi bîr neanî. Çimkî em vê mirinê qebûl nakin.|sernav=‘Windayên me awêneya pergalê ye’|url=https://e-rojname.com/bs-nuce/73934/|malper=e-rojname.com|dîrok=07.12.2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاوێنە}} * {{ku-kr|аԝенә}} ==== Formên alternatîv ==== * {{g|ku|awîne}} ==== Jê ==== * {{g|ku|awêneyî}} ==== Etîmolojî ==== Hevreha din ya kurmancî {{q|ku|eyne}}, {{hv|ckb|ئاوێنه|tr=awêne}}, {{hv|fa|آیینه|tr=ayîne/ayînê}}, {{hv|pal||*adênek|sc=Latn}}, {{hv|ae||evi-deyenek|sc=Latn}} ji ''evi-'' ([[pê]], [[bi]]) + ''dey-, dî-'' ([[dîtin]]), hemû ji {{ji|ira}}. Wek {{q|tr|ayna}} ketiye tirkî. Ji eynî rehî: {{q|ku|wêne}}. ==== Bide ber ==== * {{g|ku|wêne}} ==== Werger ==== {{werger-ser|Cama ku mirov xwe tê re dibîne.|1}} * {{Z|de}}: {{W+|de|klar}}, {{W+|de|Spiegel|m}}, {{W-|de|Speigel}} * {{Z|cs}}: {{W+|cs|zrcadlo}} * {{Z|zh}}: {{W-|zh|镜子|tr=jìngzi}} * {{Z|da}}: {{W+|da|spejl}} * {{Z|ar}}: {{W+|ar|مرآة|tr=mirae}} * {{Z|eo}}: {{W+|eo|spegulo}} * {{Z|fa}}: {{W+|fa|آينه|tr=ayne}}, {{W-|fa|ایینه‌}}, {{W+|fa|آیینه}}, {{W+|fa|آئینه}}, {{W+|fa|آینه}} * {{Z|fo}}: {{W-|fo|spegil}} * {{Z|fi}}: {{W+|fi|peili}}, {{W+|fi|kuvastin}} * {{Z|fr}}: {{W+|fr|miroir}}, {{W+|fr|glace}} * {{Z|fy}}: {{W-|fy|spegel}} * {{Z|hi}}: {{W+|hi|दर्पण|tr=darpaṇa}}, [[शीषा]] (śisā) * {{Z|nl}}: {{W-|nl|speigel}}, {{W+|nl|spiegel}} * {{Z|en}}: {{W+|en|mirror}}, {{W+|en|looking-glass}}, {{W+|en|reflector}}, {{W+|en|looking glass|guman=erê}} * {{Z|it}}: {{W+|it|specchio}} * {{Z|is}}: {{W+|is|spegill}} * {{Z|ja}}: {{W+|ja|鏡|tr=[[かがみ]], {{W-|ja|kagami}}, {{W-|ja|kyoko}}}} * {{Z|ca}}: {{W+|ca|mirall}}, {{W+|ca|espill}} * {{Z|ko}}: {{W+|ko|거울|tr=geoul}} * {{Z|yua}}: {{W-|yua|neen}} * {{Z|no}}: {{W+|no|speil}} * {{Z|pap}}: {{W-|pap|spil}} * {{Z|pt}}: {{W+|pt|espelho}} * {{Z|ru}}: {{W+|ru|зеркало|tr=zérkalo}} * {{Z|sa}}: {{W+|sa|दर्पण}} * {{Z|es}}: {{W+|es|espejo}} * {{Z|sw}}: {{W+|sw|kioo}} * {{Z|sv}}: {{W+|sv|spegel}} * {{Z|tr}}: {{W+|tr|ayna}} {{werger-bin}} {{werger-ser|Rewşa ku li ber çavên hemû kesan diqewime.|2}} {{werger-bin}} a3lpbn9wbpaheo0thgd22dg55azewpo 6328867 6328786 2026-08-11T02:12:16Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328867 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Mirror.jpg|thumb|Awênek]] {{navdêr|ku|z=m}} # [[cam|Cama]] ku mirov xwe tê re [[dîtin|dibîne]]. #: {{hevmane|ku|eyne|mirêk|qotîk|xodîk}} #* {{jêder-pirtûk|ku|jêgirtin=Ji ser qenepê rabûm, derbasî lavaboyê bûm, dest û serçavên xwe şuştin. Serê xwe bilind kir, min li '''awêneyê''' nihêrî. |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=79|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Dema tu dihatî ser hemdê xwe, awêne dihat bîra te, te dixwest rûyê xwe bibînî. Wê xerîbê, wê nasê! Lê tu wisa bêmecal bûy ku te nekarî bêjî ka '''awêneyek''' bidin ber rûyê min lê tu karibûyayî jî te yê ji şerman negota, tu wek miriyan bûy û te awêne dixwest, meraqa çav û birûyan, lêv û pozî dikir.|nivîskar=Mizgîn Ronak|sernav=Xerîbiya awêneyê|url=https://xwebun.org/xeribiya-aweneye/|malper=xwebun.org|sal=2020}} #* {{jêder-pirtûk|ku|jêgirtin=Çûm ber awêneyê, min li rûyê xwe nihêrî, lê min sûretê di '''awêneyê''' de nasnekir; tiştekî ecêb î xofdar bû.|nivîskar=Sadiq Hidayet|sernav=Bûmê Kor|weşanxane=Na Yayınları|sal=2014|rûpel=80|isbn=9786056392658}} # {{f|ku|mecazî}} [[rewş|Rewşa]] ku li ber çavên hemû kesan [[diqewime]]. #: {{hevmane|ku|eşkere|elenî|numa|pas}} #* {{jêder-malper|ku|jêgirtin=Windayên me '''awêneya''' pergalê ne. Her çiqas nexwazin vê awêneyê bibînin jî lê em li vir in. Duh salvegera qetilkirina bavê min bû. Me bavê min di salvegera 26’emîn de bi bîr neanî. Çimkî em vê mirinê qebûl nakin.|sernav=‘Windayên me awêneya pergalê ye’|url=https://e-rojname.com/bs-nuce/73934/|malper=e-rojname.com|dîrok=07.12.2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاوێنە}} * {{ku-kr|аԝенә}} ==== Formên alternatîv ==== * {{g|ku|awîne}} ==== Jê ==== * {{g|ku|awêneyî}} ==== Etîmolojî ==== Hevreha din ya kurmancî {{q|ku|eyne}}, {{hv|ckb|ئاوێنه|tr=awêne}}, {{hv|fa|آیینه|tr=ayîne/ayînê}}, {{hv|pal||*adênek|sc=Latn}}, {{hv|ae||evi-deyenek|sc=Latn}} ji ''evi-'' ([[pê]], [[bi]]) + ''dey-, dî-'' ([[dîtin]]), hemû ji {{ji|ira}}. Wek {{q|tr|ayna}} ketiye tirkî. Ji eynî rehî: {{q|ku|wêne}}. ==== Bide ber ==== * {{g|ku|wêne}} ==== Werger ==== {{werger-ser|Cama ku mirov xwe tê re dibîne.|1}} * {{Z|de}}: {{W+|de|klar}}, {{W+|de|Spiegel|m}}, {{W-|de|Speigel}} * {{Z|cs}}: {{W+|cs|zrcadlo}} * {{Z|zh}}: {{W-|zh|镜子|tr=jìngzi}} * {{Z|da}}: {{W+|da|spejl}} * {{Z|ar}}: {{W+|ar|مرآة|tr=mirae}} * {{Z|eo}}: {{W+|eo|spegulo}} * {{Z|fa}}: {{W+|fa|آينه|tr=ayne}}, {{W-|fa|ایینه‌}}, {{W+|fa|آیینه}}, {{W+|fa|آئینه}}, {{W+|fa|آینه}} * {{Z|fo}}: {{W-|fo|spegil}} * {{Z|fi}}: {{W+|fi|peili}}, {{W+|fi|kuvastin}} * {{Z|fr}}: {{W+|fr|miroir}}, {{W+|fr|glace}} * {{Z|fy}}: {{W-|fy|spegel}} * {{Z|hi}}: {{W+|hi|दर्पण|tr=darpaṇa}}, [[शीषा]] (śisā) * {{Z|nl}}: {{W-|nl|speigel}}, {{W+|nl|spiegel}} * {{Z|en}}: {{W+|en|mirror}}, {{W+|en|looking-glass}}, {{W+|en|reflector}}, {{W+|en|looking glass|guman=erê}} * {{Z|it}}: {{W+|it|specchio}} * {{Z|is}}: {{W+|is|spegill}} * {{Z|ja}}: {{W+|ja|鏡|tr=[[かがみ]], {{W-|ja|kagami}}, {{W-|ja|kyoko}}}} * {{Z|ca}}: {{W+|ca|mirall}}, {{W+|ca|espill}} * {{Z|ko}}: {{W+|ko|거울|tr=geoul}} * {{Z|yua}}: {{W-|yua|neen}} * {{Z|no}}: {{W+|no|speil}} * {{Z|pap}}: {{W-|pap|spil}} * {{Z|pt}}: {{W+|pt|espelho}} * {{Z|ru}}: {{W+|ru|зеркало|tr=zérkalo}} * {{Z|sa}}: {{W+|sa|दर्पण}} * {{Z|es}}: {{W+|es|espejo}} * {{Z|sw}}: {{W+|sw|kioo}} * {{Z|sv}}: {{W+|sv|spegel}} * {{Z|tr}}: {{W+|tr|ayna}} {{werger-bin}} {{werger-ser|Rewşa ku li ber çavên hemû kesan diqewime.|2}} {{werger-bin}} s966bsvihzdh9nw4s3sclyhymgsyrmg didu 0 14510 6328914 6305227 2026-08-11T11:28:30Z Balyozbot 7867 sererastkirin 6328914 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-didu.wav|dever=Bidlîs}} * {{ku-kîte}} === Hejmar === {{hejmar|ku}} # {{guherto|ku|du}} === Navdêr === {{navdêr|ku|z=n}} # {{guherto|ku|du}} #* {{jêder-pirtûk|ku|jêgirtin=Dêmena tabloyê ya '''diduyan''', li ser xanîyekî ser qeraxê Dîclê ye ku pencereke gelek mezin di qismê wî yê pêşî de ye.|nivîskar=Abdûlreqîb Yûsuf|sernav=Hunerê Tabloyên Şerefnamê|sal=1991|weşanxane=Weşanên Jîna Nû|rûpel=55}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} 7emytuxh93exyz64g0m10zstpmc2pte derpê 0 15146 6328906 6304987 2026-08-11T11:26:26Z Balyozbot 7867 sererastkirin 6328906 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-derpê.wav|Deng|dever=Amed}} === Navdêr === {{navdêr|ku|z=n}} # {{guherto|ku|derpî}} #* {{jêder-pirtûk|ku|jêgirtin=Herwiha kirasekî kin û '''derpêyekî''' spî (pembeyê xetxetî. n. J. N.) li xwe kirîye.|nivîskar=Abdûlreqîb Yûsuf|sernav=Hunerê Tabloyên Şerefnamê|sal=1991|weşanxane=Weşanên Jîna Nû|rûpel=55}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} 3paixzeovny7p69hey3o1t29sfc0ewe ade 0 15610 6328755 6296106 2026-08-10T23:37:20Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328755 wikitext text/x-wiki {{bnr-h|adê}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[riwek|Riwekên]] [[ziyandar]] yên li nav [[riwek]]ên [[çandî]] [[peyda]] bûne. #: {{hevmane|ku|alax||zîwan|dimor}} #: {{jêder-pirtûk|ku|jêgirtin='''Adeya''' giyayê şîn û rind<br>Ser avê sema kir!!<br>Xwe hejand<br>Her davê awazên<br>Şengiya xo cema kir!!|sernav=Helbesta Hevçerx ya kurdî (Xelîl Duhokî)|sal=1992|cîh=Siwêd|nivîskar=Ehmed Qerenî|r=257|isbn=91-971515-2-1}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Jê ==== {{kol3|ku|cure=Jê |ade kirin<q:lêker><w:zevî ji [[riwek]]ên nehêvîkirî paqij kirin> |adekirin<q:navdêr> |adekirî<q:rengdêr> |adekar |adekarî |adeker |adekerî }} ==== Têkildar ==== * {{g|ku|miyandar}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== {{kol3|ku |adî |eda }} ==== Werger ==== {{werger-ser|giyayên ziyandar}} * {{Z|de}}: {{W+|de|Unkraut}} {{nt}}, {{W+|de|Unkraut|nt}} * {{Z|fa}}: {{W+|fa|علف هرز}} * {{Z|fi}}: {{W+|fi|rikkaruoho}} * {{Z|fr}}: {{W+|fr|mauvaise herbe|m}} * {{Z|io}}: {{W-|io|mala herbo}} * {{Z|en}}: {{W+|en|weed}} ([[unwanted]] [[vegetation]]) * {{Z|it}}: {{W+|it|erbaccia|m}} * {{Z|pl}}: {{W+|pl|chwast|n}} * {{Z|sv}}: {{W+|sv|ogräs}} * {{Z|te}}: {{W+|te|కలుపు|tr=kalupu}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{f|ku|erdnîgarî}} Cihê hemî [[derdor]]ên wê [[av]] in. #: {{hevmane|ku|girav|dûrge|cizîre}} #* {{bêmînak|ku}} ==== Formên alternatîv ==== * {{g|ku|ada}} ==== Jê ==== {{kol3|ku |adeyî |nîv-ade |nîv-adeyî }} ==== Etîmolojî ==== Ji {{deyn|tr|ku|ada}}. ==== Werger ==== {{werger-bnr|girav}} === Navdêr 1 === {{navdêr|ku|z=n}} # {{guharto|ku|adet|w=ketina cilan a jinan}} #* {{bêmînak|ku}} == {{ziman|gnc}} == === Navdêr === {{navdêr|gnc}} # {{mijar|gnc|vexwarin}} {{g|ku|av}} #* {{bêmînak|gnc}} === Çavkanî === {{rûpela wergerê|gnc|av/Werger1}} == {{ziman|hac}} == === Cînav === {{cînav|hac}} # [[ew|Ew]] (mê, yekjimar). #* {{bêmînak|hac}} ==== Formên alternatîv ==== * {{g|hac|ale}} ==== Nêr ==== {{kol3|hac |ad |al }} {{PH-nîşan|18/2011}} == {{ziman|yo}} == === Navdêr === {{navdêr|gnc}} # {{g|ku|tac}} #* {{bêmînak|yo}} === Çavkanî === {{rûpela wergerê|yo|tac}} epsrwmqu08ht0a2ev8tpn90hpwe8egf 6328756 6328755 2026-08-10T23:37:58Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328756 wikitext text/x-wiki {{bnr-h|adê}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[riwek|Riwekên]] [[ziyandar]] yên li nav [[riwek]]ên [[çandî]] [[peyda]] bûne. #: {{hevmane|ku|alax||zîwan|dimor}} #* {{jêder-pirtûk|ku|jêgirtin='''Adeya''' giyayê şîn û rind<br>Ser avê sema kir!!<br>Xwe hejand<br>Her davê awazên<br>Şengiya xo cema kir!!|sernav=Helbesta Hevçerx ya kurdî (Xelîl Duhokî)|sal=1992|cîh=Siwêd|nivîskar=Ehmed Qerenî|r=257|isbn=91-971515-2-1}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Jê ==== {{kol3|ku|cure=Jê |ade kirin<q:lêker><w:zevî ji [[riwek]]ên nehêvîkirî paqij kirin> |adekirin<q:navdêr> |adekirî<q:rengdêr> |adekar |adekarî |adeker |adekerî }} ==== Têkildar ==== * {{g|ku|miyandar}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== {{kol3|ku |adî |eda }} ==== Werger ==== {{werger-ser|giyayên ziyandar}} * {{Z|de}}: {{W+|de|Unkraut}} {{nt}}, {{W+|de|Unkraut|nt}} * {{Z|fa}}: {{W+|fa|علف هرز}} * {{Z|fi}}: {{W+|fi|rikkaruoho}} * {{Z|fr}}: {{W+|fr|mauvaise herbe|m}} * {{Z|io}}: {{W-|io|mala herbo}} * {{Z|en}}: {{W+|en|weed}} ([[unwanted]] [[vegetation]]) * {{Z|it}}: {{W+|it|erbaccia|m}} * {{Z|pl}}: {{W+|pl|chwast|n}} * {{Z|sv}}: {{W+|sv|ogräs}} * {{Z|te}}: {{W+|te|కలుపు|tr=kalupu}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{f|ku|erdnîgarî}} Cihê hemî [[derdor]]ên wê [[av]] in. #: {{hevmane|ku|girav|dûrge|cizîre}} #* {{bêmînak|ku}} ==== Formên alternatîv ==== * {{g|ku|ada}} ==== Jê ==== {{kol3|ku |adeyî |nîv-ade |nîv-adeyî }} ==== Etîmolojî ==== Ji {{deyn|tr|ku|ada}}. ==== Werger ==== {{werger-bnr|girav}} === Navdêr 1 === {{navdêr|ku|z=n}} # {{guharto|ku|adet|w=ketina cilan a jinan}} #* {{bêmînak|ku}} == {{ziman|gnc}} == === Navdêr === {{navdêr|gnc}} # {{mijar|gnc|vexwarin}} {{g|ku|av}} #* {{bêmînak|gnc}} === Çavkanî === {{rûpela wergerê|gnc|av/Werger1}} == {{ziman|hac}} == === Cînav === {{cînav|hac}} # [[ew|Ew]] (mê, yekjimar). #* {{bêmînak|hac}} ==== Formên alternatîv ==== * {{g|hac|ale}} ==== Nêr ==== {{kol3|hac |ad |al }} {{PH-nîşan|18/2011}} == {{ziman|yo}} == === Navdêr === {{navdêr|gnc}} # {{g|ku|tac}} #* {{bêmînak|yo}} === Çavkanî === {{rûpela wergerê|yo|tac}} by58fco9btaeargke46hey5aip6r2g6 çelak 0 19909 6328887 6279343 2026-08-11T11:24:34Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328887 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[darik]]ek [[dirêj]] e <br>(bi taybetî bo [[daweşandin]]a [[fêkî]] yan [[berû]] û [[mazî|maziyan]] têt [[bikaranîn]]) #* {{jêder-malper|ku|jêgirtin=Dema xortên gundî ji serê sibê de diçûn çinîna maziyan, her yekî çantik û '''çelakên''' xwe di destên xwe de digirtin û qesta çol û dol û çiyan dikirin da ku pawanên xwe yên maziyan biçinin.|nivîskar=Selwa Gulî|sernav=Çima bi kurdî dinivîsî|malper=Amidakurd.com|sal=3/2007}} ==== Bide ber ==== {{kol3|ku |çalak |doqişk |kaşok }} ==== Jê ==== {{kol3|ku|cure=Jê |çelak kirin<pos:lêker> |çelakkirin<pos:navdêr> |çelakkirî<pos:rengdêr> }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Stab|m}} * {{Z|fi}}: {{W+|fi|seiväs}}, {{W+|fi|vapa}} * {{Z|fr}}: {{W+|fr|perche|f}} * {{Z|en}}: {{W+|en|pole}}, {{W+|en|stake}}, {{W+|en|hooked}} * {{Z|ml}}: {{W-|ml|galah}} * {{Z|es}}: {{W+|es|palo|m}}, {{W+|es|garrocha|f}} * {{Z|sv}}: {{W+|sv|stav}} * {{Z|te}}: [[గడ కర్ర]] (gaDa karra) * {{Z|tr}}: {{W+|tr|rot}}, {{W+|tr|sırık}}, {{W+|tr|gaf|guman=erê}}, {{W-|tr|ucu çengelli değnek|guman=erê}} {{werger-bin}} 2w8k8ikqjw7ghdrtkzev1zdg5gcnna9 6328928 6328887 2026-08-11T11:41:27Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328928 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[darik]]ek [[dirêj]] e <br>(bi taybetî bo [[daweşandin]]a [[fêkî]] yan [[berû]] û [[mazî|maziyan]] têt [[bikaranîn]]) #* {{jêder-malper|ku|jêgirtin=Dema xortên gundî ji serê sibê de diçûn çinîna maziyan, her yekî çantik û '''çelakên''' xwe di destên xwe de digirtin û qesta çol û dol û çiyan dikirin da ku pawanên xwe yên maziyan biçinin.|nivîskar=Selwa Gulî|sernav=Çima bi kurdî dinivîsî|malper=Amidakurd.com|sal=3/2007}} ==== Jê ==== {{kol3|ku|cure=Jê |çelak kirin<pos:lêker> |çelakkirin<pos:navdêr> |çelakkirî<pos:rengdêr> }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== {{kol3|ku |çalak |doqişk |kaşok }} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Stab|m}} * {{Z|fi}}: {{W+|fi|seiväs}}, {{W+|fi|vapa}} * {{Z|fr}}: {{W+|fr|perche|f}} * {{Z|en}}: {{W+|en|pole}}, {{W+|en|stake}}, {{W+|en|hooked}} * {{Z|ml}}: {{W-|ml|galah}} * {{Z|es}}: {{W+|es|palo|m}}, {{W+|es|garrocha|f}} * {{Z|sv}}: {{W+|sv|stav}} * {{Z|te}}: [[గడ కర్ర]] (gaDa karra) * {{Z|tr}}: {{W+|tr|rot}}, {{W+|tr|sırık}}, {{W+|tr|gaf|guman=erê}}, {{W-|tr|ucu çengelli değnek|guman=erê}} {{werger-bin}} 6c7yqemm4h51n5z5x04ufq3nkewgbou grev 0 21104 6328969 6307652 2026-08-11T11:50:27Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328969 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/ɡɾɛv/}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[sekinandin|Sekinandin]]a [[kar]]ê xwe bo [[dem]]ekê ji ber [[nerazî]]bûnê. #: {{nm|ku|Karkeran dest bi '''grevê''' kir ji ber ku karderan daxwaza wan ya zêdekirina meaşî nepejirand.}} #: {{nm|ku|'''Greva''' birçîbûnê.|nexwarin ji ber nerazîbûnê|rêz=1}} #* {{jêder-malper|ku|jêgirtin=Penaberên ji bêxemiya civaka navnetewî bêzar in, dest bi '''grêva''' birçîbûnê kirin.|sernav=Penaberên ji Rojhilata Kurdistanê di grêva birçîbûnê de ne.|malper=Roj.tv|sal=6/2006}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|girev}} * {{g|ku|girêv}} * {{g|ku|grêv}} ==== Jê ==== {{kol3|ku|cure=Jê |grêvî |grêvgir |grêvgirî |grêvker |grev kirin<pos:lêker> |grevkirin<pos:navdêr> |grevgirtin<pos:navdêr> |grevkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{deyn|tr|ku|grev}} ji {{ji|fr|ku|grève}} ji navê [[meydan]]a {{zim|fr|''Place de Grève''}} (bi navê xwe yê niha {{zim|fr|''Place de l'Hôtel de Ville''}}) ku [[karker]]ên karê xwe rawestandî lê dicivîn û doza mafên xwe dikir. ==== Bide ber ==== * {{g|ku|girêk}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Streik|m}}, {{W|de|Ausstand|m}}, {{W|de|Arbeitsniederlegung|f|guman=erê}} * {{Z|zh}}: {{W+|zh|罷工}}, [[罢工]] (bàgōng) * {{Z|ar}}: {{W-|ar|اضراب|tr=etrab}} * {{Z|fa}}: {{W+|fa|اعتصاب}} * {{Z|fi}}: {{W+|fi|lakko}} * {{Z|fr}}: {{W|fr|grève|f}} * {{Z|nl}}: {{W+|nl|staking}} * {{Z|en}}: {{W-|en|strike|tr=work stoppage}}, {{W+|en|skrike}} * {{Z|it}}: {{W+|it|sciopero}} * {{Z|ja}}: {{W-|ja|ストライキ|tr=sutoraiki}} * {{Z|ko}}: {{W-|ko|파업|tr=pa-eop}} * {{Z|hu}}: {{W+|hu|sztrájk}} * {{Z|pt}}: {{W|pt|greve|f}} * {{Z|ru}}: {{W-|ru|забастовка|tr=zabastóvka}} * {{Z|es}}: {{W|es|huelga|f}} * {{Z|sv}}: {{W+|sv|strejk}} * {{Z|te}}: {{W-|te|సమ్మె|tr=samme}} * {{Z|tr}}: {{W+|tr|grev}}, {{W+|tr|iş bırakımı}} {{werger-bin}} == {{ziman|rm}} == === Rengdêr === {{rengdêr|rm}} # [[giran#ku|giran]] (ne sivik) #* {{bêmînak|rm}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[grev#Kurdî|grev]], [[karberdan]], [[şixulhiştin]]<br>[[sekinandin]]a [[kar]]ê xwe bo [[dem]]ekê ji ber [[nerazî]]bûnê #* {{bêmînak|tr}} ==== Bide ber ==== * {{g|tr|görev}} 6q3utigxm9akdboxoxx5euhd5qq7xxj ebad 0 21114 6328723 6305850 2026-08-10T18:59:24Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6328723 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dirêjî|Dirêjî]] û [[panî]] û [[bilindahî|bilindahiya]] tiştekî. #: {{nimûne|ku|Ebada vê qutiyê 5 x 20 x 15 cm e.}} #* {{jêder|ku|jêgirtin=Berhem di serê sala 2006’an de ji nav weşanên Enstîtuya Kurdî ya Stenbolê derket. Pirtûk 112 rûpel û '''ebada''' wê jî 13, 5x19, 5 [cm] e.|''"Rastiyên destana 'Memê Alan'" derket'', Enstituyakurdi.org, heyama weşanê ne diyar e}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|ebat}} ==== Jê ==== * {{g|ku|ebadî}} ==== Têkildar ==== * {{g|ku|bûut}} ==== Etîmolojî ==== Ji {{deyn|ar|ku|أَبْعَاد}} forma pirjimar a {{q|ar|بُعد|tr=buʿd|t=dûrî, bûut, rehend}} e. ==== Bide ber ==== * {{g|ku|ebed}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Volumen|n}} * {{Z|bg}}: {{W|bg|обем|m}} * {{Z|fi}}: {{W+|fi|tilavuus}} * {{Z|fr}}: {{W+|fr|volume}} * {{Z|nl}}: {{W+|nl|volume}}, {{W+|nl|inhoud}} * {{Z|en}}: {{W-|en|volume}} * {{Z|it}}: {{W+|it|volume}} * {{Z|pl}}: {{W|pl|objętość|f}} * {{Z|pt}}: {{W+|pt|volume}} * {{Z|ro}}: {{W+|ro|volum}} * {{Z|sk}}: {{W|sk|objem|m}} * {{Z|sl}}: {{W|sl|prostornina|f}} * {{Z|es}}: {{W+|es|volumen}} * {{Z|tr}}: {{W+|tr|ebat}} {{werger-bin}} ch8jm6qfr16g0yqobbsukkdz9rzp85m hevriş 0 21699 6328981 6131657 2026-08-11T11:51:02Z Balyozbot 7867 /* Hoker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328981 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[tûşî]], [[pêrgî]], [[rast]]î #* {{jêder-malper|ku|jêgirtin=Bajarekî Îsraîlê '''hevrişî''' moşekên Libnanê dibe.|malper=Peyamner.com|sal=7/2006}} ==== Bide ber ==== * [[hevris]] ==== Etîmolojî ==== [[hev-]] + [[riş]] (= [[rû]] / [[rîş]]?) ==== Jê ==== * [[hevrişî]] ==== Dijmane ==== * [[verişî]] * [[veriş]] ==== Werger ==== {{werger-ser}} {{werger-bin}} 021ljhnoz8sufmntg651dbu4mpk954p dorhêl 0 21748 6328936 6305542 2026-08-11T11:45:57Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328936 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-dorhêl.wav|Deng|dever=Amed}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[derdor]], [[dewrûber]], [[derûdor]], [[dorber]], [[hawirdor]], [[dormale]] #* {{jêder-malper|ku|jêgirtin=Di salên 1960’an de em zarok bûn. Dema em ji gundan dihatin bajêr, em şaş û metel diman. Bajar qada tirkî û gund jî qada kurdî bûn. Em ji '''dorhêl'''eke kurdîaxêv bi carekê diketin '''dorhêl'''eke tirkîaxêv. Tirkîaxêviyeke şkestî û sosret. Lê [[qure]], [[zewar]] û biteqayî... Dikandar û esnafên bajêr henekê xwe bi dayîk û bavên me dikirin...|nivîskar=Jîr Dilovan|sernav=Pirsgirêk piçûkdîtina kurdî ye|malper=Diyarname.com|sal=7/2006}} # {{kontrol|rêz=erê|[[hawir]], [[havêrke]], [[jîngeh]]}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|دۆرهێل}} ==== Jê ==== * [[dorhêlî]] ==== Etîmolojî ==== Ji {{qertaf|ku|dor|hêl}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|omgewing}} * {{Z|de}}: {{W|de|Umwelt|f}}, {{W|de|Milieu|n}}, {{W|de|Umgebung|f}}, {{W|de|Zirkel|m}}, {{W|de|um herum}}, {{W|de|Umgegend}}, {{W|de|rings|guman=erê}} * {{Z|an}}: {{W|an|meyo ambién}} * {{Z|bn}}: {{W|bn|পরিবেশ}} * {{Z|br}}: {{W|br|endro}} * {{Z|cs}}: {{W|cs|životní prostředí}} * {{Z|zh}}: {{W|zh|环境}} * {{Z|da}}: {{W|da|miljø}} * {{Z|id}}: {{W|id|lingkungan}} * {{Z|ar}}: {{W|ar|بيئه}}, {{W|ar|الواقع|guman=erê}}, {{W|ar|الوسط|guman=erê}} * {{Z|eo}}: {{W|eo|medio}} * {{Z|fa}}: {{W|fa|محیط}}, {{W|fa|محیط}}, {{W|fa|اطراف}} * {{Z|fo}}: {{W|fo|umhvørvi}} * {{Z|fi}}: {{W|fi|ympäristö}}, {{W|fi|piiri}}, {{W|fi|alue}} * {{Z|fr}}: {{W|fr|environnement}}, {{W|fr|milieu}} * {{Z|fy}}: {{W|fy|omwrâld}}; {{W|fy|fermidden}}; {{W|fy|sfear}} * {{Z|ht}}: {{W|ht|anviwènman}} * {{Z|nl}}: {{W|nl|milieu}}, {{W|nl|omgeving}}, {{W|nl|medium}} * {{Z|en}}: {{W|en|surroundings}}, {{W|en|around}}, (2) {{W|en|environment}}, {{W|en|milieu}}, {{W|en|ambit}} * {{Z|it}}: {{W|it|ambiente}} * {{Z|ja}}: {{W|ja|環境}} * {{Z|ca}}: {{W|ca|medi}} * {{Z|qu}}: {{W|qu|allpa}} {{W|qu|kawsay}}; {{W|qu|pacha}} {{W|qu|kawsay}} * {{Z|ko}}: {{W|ko|환경}} (hwan.gyŏŋ) * {{Z|li}}: {{W|li|miljeu}} * {{Z|lb}}: {{W|lb|Ëmwelt|f}} * {{Z|hu}}: {{W|hu|környezet}} * {{Z|mn}}: {{W|mn|хүрцээлэн}} {{W|mn|буй}} {{W|mn|орчин}} (hürcêêlên buĭ orčin) * {{Z|no}}: {{W|no|miljø}} * {{Z|oc}}: {{W|oc|environament}} * {{Z|pl}}: {{W|pl|środowisko}} * {{Z|pt}}: {{W|pt|ambiente}}, {{W|pt|meio}} * {{Z|ro}}: {{W|ro|preajmă}} {{fp}} * {{Z|ru}}: {{W|ru|окружающая}} {{W|ru|среда}} (okružaǔṧaǎ srěda) * {{Z|sk}}: {{W|sk|životné prostredie}} * {{Z|es}}: {{W|es|medio ambiente|m}} * {{Z|sv}}: {{W|sv|miljö}} * {{Z|tl}}: {{W|tl|kaligirán}} * {{Z|tt}}: {{W|tt|äylänä-tirä}}; {{W|tt|tabiği}} {{W|tt|möhit}} * {{Z|tr}}: {{W|tr|çevre}}; {{W|tr|muhit}}, {{W|tr|âlem}}, {{W|tr|civar}}, {{W|tr|dolay}}, {{W|tr|dolayı}}, {{W|tr|etraf}}, {{W|tr|ortam}}, {{W|tr|kıran}}, {{W|tr|mıntıka|guman=erê}}, {{W|tr|ortalık|guman=erê}} * {{Z|vi}}: {{W|vi|môi}} {{W|vi|trường}} * {{Z|yi}}: {{W|yi|סװיװע}} (svive) * {{Z|el}}: {{W|el|περιβάλλον}} (peribállon) {{werger-bin}} cvqfc0ukptxeqfwvgdu3kilo5sehvfs hilgir 0 23288 6328984 6308658 2026-08-11T11:51:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328984 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # kesa/ê ku tiştekî [[hilgirtin|hildigire]] #* {{bêmînak|ku}} # kesa/ê ku tiştekî ji [[der]]ekê [[birin|dibe]] derek [[din]] #* {{bêmînak|ku}} # [[hemal]], kesa/ê ku [[kar]]ê wî [[hilgirtin]]a tiştan e<br>(bi taybetî kesa/ê ku tiştên xelkê bi [[pare]] ji [[der]]ekê dibe derek din) #* {{bêmînak|ku}} # kesa/ê yan [[heywan]]a ku bi xwe [[sax]] e lê [[êş]]ek tê de heye ku [[karîn|dikare]] bigihe kesek din <br>(bi taybetî [[zarok]]ên kesa/ê ku ew êş tê de heye) #* {{bêmînak|ku}} # [[nesax]]a/ê / [[nexweş]]a/ê [[êş]]ekê #* {{jêder-malper|ku|jêgirtin=Li gor amara Rêxistina Tendirustî ya Cîhanî WHO hejmara '''hilgirên''' virusa HIV li cîhanê gihiştiye zêdeyî 33 milyon kesan.|sernav=|url=|malper=Rûdaw|sal=7/2011}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Formên alternatîv ==== * [[helgir]] ==== Hevmane ==== * [[kolber]] ==== Jê ==== * [[hilgirî]] * [[hilgirîtî]] ==== Etîmolojî ==== {{paşvesazî|ku|hilgirtin}}. ==== Bide ber ==== * [[bergir]] * [[dagir]] * [[ragir]] * [[vegir]] * [[wergir]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Träger|m}}, {{W|de|Empfänger|m}}, {{W|de|Adressat|m|guman=erê}} * {{Z|fi}}: {{W+|fi|kantaja}} * {{Z|fr}}: {{W|fr|porteur|n}} * {{Z|en}}: {{W+|en|carrier}}, {{W+|en|porter}}, {{W+|en|trestle}}, {{W+|en|cadger}}, {{W|en|heaver|guman=erê}}, {{W|en|lifter|guman=erê}} * {{Z|tr}}: {{W+|tr|portör}}, {{W+|tr|taşıyıcı}}, {{W+|tr|nâkil}} {{werger-bin}} e1uee9zolkfj54px9wldz6gm6zrwxo6 kêran 0 23309 6329019 6310923 2026-08-11T11:52:26Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329019 wikitext text/x-wiki {{bnr-h|keran}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/kʰeːˈɾɑːn/}} * {{kîte|ku|kê|ran}} === Navdêr === [[Wêne:Castle beam01.jpg|thumb|kêran]] {{navdêr|ku|z=n}} # [[dar|Dar]]ê yan [[asin]]ê [[dirêj]] û [[qayîm]] ([[bi taybetî]] yê ku [[ban]] xwe li ser [[ragirtin|radigire]]). #* {{jêder-malper|ku|jêgirtin=STUN: Ev peyva kurdî di nava trikî de bi awayê rojane tê bikaranîn, xasma jî di çapemeniyê de… Dema Kurd xanî ava dikin, ew '''kêranê''' ku jê re “pir” tê gotin, di nava xênî de didin binî da zexm be û banê xanî li ser xwe ragire.|nivîskar=Zeynelabidin Zinar|sernav=Peyv û Termên Kurdî Di Tirkî De...|url=http://occomahabad.blogspot.com/2019/06/peyv-u-termen-kurdi-di-tirki.html|malper=occomahabad.blogspot.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Divê em bi destên xwe pêşeroja xwe tarî nekin û zarokên xwe bi xwebûna wan ango bi çanda wan mezin bikin. Ji bîr nekin çand '''kêranê''' civakê ye, ziman jî stûna çandê ye.|nivîskar=Mehmet Esen|sernav=Çand kêranê civakê ye, ziman jî stûna çandê ye|url=https://e-rojname.com/bs-nerin/31382/|malper=e-rojname.com|dîrok=19.02.2019}} #* {{jêder-pirtûk|ku|jêgirtin=Ev sê sal bû ez ji van deran dûr bûm. Apê min û jina wî çiqas pîr bûbûn. Kes li gund nemabû. Min çavên xwe kuta '''kêranan''', leyistokên min û xwişka min hatin bîra min, bi şev di nav cî de me kêran dijmartin, ew li ber çavên xwe dikirin, gur, hirç, zîha, perî.|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=82|isbn=978-605-5585-41-9}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|کێران}} ==== Hevmane ==== {{stûn| * [[karîte]] * [[max]] * [[beşt]] * [[nîre]] * [[ribanek]] * [[girş]] * [[şeqle]] * [[gelender]] * [[onî]] * [[mertek]] * [[mirdiyaq]] * [[garîte]] }} ==== Jê ==== * [[kêranî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[kêlan]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|balk}} * {{Z|de}}: {{W|de|Balken|m}} * {{Z|da}}: {{W|da|bjælke}} * {{Z|eo}}: {{W|eo|trabo}} * {{Z|fo}}: {{W|fo|bjálki}} * {{Z|fi}}: {{W|fi|poikkipuu}} * {{Z|fy}}: {{W|fy|balke}} * {{Z|nl}}: {{W|nl|balk}}, {{W|nl|onderlegger}}, {{W|nl|ribbe}} * {{Z|en}}: (thick wooden) [[beam]] (used in ceiling), {{W|en|beam}}, {{W|en|bowstring|guman=erê}} * {{Z|it}}: {{W|it|trave}} * {{Z|pap}}: {{W|pap|balki}}, {{W|pap|biga}} * {{Z|pt}}: {{W|pt|barrote}}, {{W|pt|biga}}, {{W|pt|trave}} * {{Z|ru}}: {{W|ru|балка}}, {{W|ru|бревно}}, {{W|ru|брус}} * {{Z|es}}: {{W|es|viga}}, {{W|es|trabe}}, {{W|es|traviesa}} * {{Z|sv}}: {{W|sv|balk}}, {{W|sv|bjälke}} * {{Z|tr}}: {{W|tr|mertek}}, {{W|tr|düver}}, {{W|tr|kiriş|guman=erê}}, {{W|tr|pala|guman=erê}} {{werger-bin}} === Formeke navdêrê 1 === {{ku-tew-nav|kêr|mê|çemandî|binavkirî}} {{navdêr|ku|z=m|form=erê}} # ''Rewşa [[çemandî]] ya pirjimara a binavkirî ya'' '''{{g|ku|kêr}}'''. {{bend}} === Formeke navdêrê 2 === {{ku-tew-nav|kêr|nêr|çemandî|binavkirî}} {{navdêr|ku|z=n|form=erê}} # ''Rewşa [[çemandî]] ya pirjimar a binavkirî ya'' '''{{g|ku|kêr}}'''. ns3ketgnd3rtlfrnqjf5namqfcb0ko7 beşer 0 23689 6328806 6299387 2026-08-11T00:28:32Z Balyozbot 7867 /* Navdêr 1 */ sererastkirin 6328806 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[mahd]], [[rû]], [[serçav]], [[moral]], [[kêf]], [[coş]] #: {{nm|ku|Kesekî '''beşer''' vekirî ye.}} #* {{jêder|ku|jêgirtin=Lê çendek bû '''beşera''' bavê min qet xweş nedibû, pirr melûl û xemgîn bû.|{{Jêgirtin/Frîda Hecî Cewarî/Bîranînên Min|r=40}}}} #* {{jêder-malper|ku|jêgirtin=Weke 2 sal pêşda, Peter ji min re xeber da. Di nava ew qas salan de, ew tenê niha bi rastî bextewar bibû. Hela hê '''beşera''' wî jî xweş bû.|nivîskar=Kovara Birca Çavdêriyê, r. 15|sernav=Tenê Li Rûyê Mirovan Nenêre|url=https://www.jw.org/kmr-x-rd/kitebxane/kovar/birca-cavderiye-capa-lekoline-heziran-2017/tene-li-ruye-mirovan-nenere/|malper=jw.org|sal=2017}} #* {{jêder|ku|jêgirtin=Gava qala Eyûbîyan, Merwanîyan, Medan û Kardoxîyan dikira, '''beşera''' wî vedibû û gula wî dipişkivîya.|Şakir EPOZDEMÎR: ''Pêşengekî Şareza û Nemir: FEHMÎ BÎLAL'', Kovara Bîr, Hj. 6, 2007, r.241}} # [[bînahî]], [[ronahî|ronahiya]] [[çav]]an, [[hinêr]]a [[dîtin]]ê #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|kêf û coş|1}} * {{Z|en}}: {{W+|en|mood}}, {{W+|en|humor}} * {{Z|tr}}: {{W+|tr|moral}},{{W+|tr|neşe}} {{werger-bin}} {{werger-ser|bînahî|2}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=mn}} # [[mirov]], [[meriv]], [[insan]], [[ademîzad]], [[benîadem]], <br>[[jin]] û [[zelam]] û [[keç]] û [[kurr]] û bûnewerên din yên bi du piyan dimeşin û dikarin biramin û biaxivin #* {{jêder|ku|jêgirtin=Edî çar pênc kamyon tijî leşker, hezar helîkopter û balafir jî bihatana hew ew '''beşer''' didîtin.|{{Jêgirtin/Firat Cewerî/Girtî}}}} #* {{jêder|ku|jêgirtin=Pirr kesan dîtin [[keramet]] û [[eser]]<br>J' xwendina Mewlûda Sultanê '''beşer'''.|Mewlûda Mela Hisênê Bateyî}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Hevmane ==== {{kol3|ku |benderuh |insan |însan |kes |merdim |mere |meriv |merov |miro |mirov }} ==== Jê ==== {{kol3|ku|cure=Jê |beşerî |beşerîtî |beşertî |beşer kirin<pos:lêker> |beşerkirin<pos:navdêr> |beşerkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{deyn|ar|ku|بشر|tr=beşer}}, [[hevreh]]a îbrî [[בשר]] (beşer), aramî [[ܒܣܪܐ]] (bişra), ugarîtî [[𐎁𐎒𐎗]] (bsr), akadî ''bişru''... ji [[proto-samî]]. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Mensch}} {{n}} * {{Z|ar}}: {{W+|ar|انسان|guman=erê}}, {{W+|ar|بشر|guman=erê}} * {{Z|fa}}: {{W+|fa|بشر|guman=erê}} * {{Z|en}}: {{W+|en|human}}, {{W+|en|human being}} * {{Z|tr}}: {{W+|tr|beşer}} {{werger-bin}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-beşer.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # [[mirov]] #* {{bênimûne|tr}} # [[ademîzad]] #* {{bênimûne|tr}} # pêncepênc, pênco pênco #: {{mk|tr|Elmaları onlara '''beşer beşer''' ver.|Sêvan pêncepênc bide wan.|rêz=1}} == {{ziman|zza}} == === Navdêr === {{navdêr|zza|z=}} # beşer, [[însan]], [[merdim]]<ref>http://www.kovarabir.com/wp-content/uploads/Ferheng%C3%AA-Dimil%C3%AE-%C3%BB-Kurmanc%C3%AE-B-b.pdf</ref> #* {{bênimûne|zza}} === Çavkanî === {{çavkanî}} 7tdw23h50c7of4hqjdf2ja43nsqq1bh azirandin 0 24112 6328789 6297526 2026-08-11T00:26:46Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328789 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-azirandin.wav|dever=Amed}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|azirandin|form=gerguhêz|niha=azirîn|borî=azirand}} {{lêker|ku|c=x-gh}} # [[arandin|Arandin]], [[esebî]] kirin, [[cixirandin]], [[şarandin]], [[sîqilandin]], [[halan]], [[tehrîk]] kirin, [[lê sor kirin]], [[teşwîq]] kirin, [[engizandin]], [[belişandin]], <br />[[pîj]] kirin, [[ajawe]] kirin, [[provoke]] kirin, [[han dan]], [[fît]] kirin, [[xiroşme]] kirin, [[cilixandin]], [[lê gur kirin]], [[qehirandin]]. #* {{bêmînak|ku}} # [[êşandin|Êşandin]]. #* {{bêmînak|ku}} # [[xeyidandin|Xeyidandin]], [[sil]] kirin, [[qehirandin]], [[zilqitandin]], [[aciz]] kirin. #* {{bêmînak|ku}} ==== Bi alfabeyên din ==== * {{ku-ar|ئازراندن}} ==== Formên alternatîv ==== * {{g|ku|azrandin}} ==== Jê ==== * {{g|ku|azirandî}} * {{g|ku|azirîner}} ==== Têkildar ==== * {{g|ku|azirîn}} ==== Etîmolojî ==== [[azir]] (têkildarî [[agir]]) + {{paş|ku|-andin}}. ==== Werger ==== {{werger-ser|teşwîq kirin}} * {{Z|de}}: {{W+|de|anspornen}}, {{W+|de|antreiben}}, {{W+|de|aufhetzen}}, {{W+|de|herausfordern}}, {{W+|de|Rüge|m}}, {{W+|de|Schimpf}}, {{W+|de|ausschimpfen}}, {{W+|de|keifen}}, {{W+|de|rügen}}, {{W+|de|schimpfen}}, {{W-|de|auszanken|guman=erê}}, {{W+|de|brummen|guman=erê}}, {{W+|de|anschnauzen|guman=erê}} * {{Z|ar}}: {{W-|ar|اثار}}, {{W-|ar|عنف|guman=erê}} * {{Z|eo}}: {{W-|eo|sproni}}, {{W-|eo|instigi}} * {{Z|fa}}: {{W+|fa|آزردن}}, {{W+|fa|تحریک کردن}} * {{Z|fo}}: {{W-|fo|elva}}, {{W-|fo|eggja til}} * {{Z|fi}}: {{W+|fi|yllyttää}} * {{Z|fy}}: {{W-|fy|oanfiterje}}, {{W-|fy|oanfjurje}}, {{W-|fy|oanhysje}}, {{W-|fy|oantrune}}, {{W-|fy|oantrúnje}}, {{W-|fy|oanwakkerje}} * {{Z|nl}}: {{W-|nl|de sporen geven}}, {{W+|nl|prikkelen}}, {{W+|nl|aansporen}}, {{W+|nl|aanvuren}}, {{W+|nl|aanwakkeren}}, {{W+|nl|opwekken}}, {{W+|nl|zwepen}} * {{Z|en}}: to {{W+|en|incite}}, to {{W+|en|provocate}}, to {{W+|en|spur}}, to {{W+|en|stimulate}}, to {{W+|en|stir up}}, to {{W+|en|trigger}}, to {{W+|en|encourage}}, to {{W+|en|impel}}, to {{W+|en|instigate}}, to {{W+|en|spur on}}, to {{W+|en|urge}}, to {{W+|en|prod}}, to {{W+|en|prompt}}, to {{W+|en|abet}}, to {{W+|en|stir}}, {{W+|en|disserve}}, {{W+|en|objurgate}}, {{W+|en|objurgation}}, {{W+|en|rag}}, {{W+|en|read the riot act}}, {{W+|en|rebuff}}, {{W+|en|remonstrate}}, {{W+|en|reprove}}, {{W+|en|dressing}}, {{W+|en|earful}} * {{Z|ca}}: {{W+|ca|instigar}} * {{Z|pt}}: {{W+|pt|esporar}}, {{W+|pt|esporear}}, {{W+|pt|impelir}}, {{W+|pt|incitar}}, {{W+|pt|instigar}} * {{Z|ro}}: {{W+|ro|instiga}}, {{W+|ro|aţîţa}}, {{W+|ro|provoca}} * {{Z|es}}: {{W+|es|espolear}}, {{W+|es|instigar}} * {{Z|tr}}: {{W+|tr|acıtma}}, {{W+|tr|acıtmak}}, {{W+|tr|azarlama}}, {{W+|tr|azarlamak}}, {{W+|tr|fırçalama}}, {{W+|tr|fırçalamak}}, {{W+|tr|paylama}}, {{W+|tr|paylamak}}, {{W+|tr|sızlatma}}, {{W+|tr|sızlatmak}}, {{W+|tr|incitmek}}, {{W+|tr|incitme|guman=erê}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[arandin|Arandin]], [[esebî]]kirin, [[cixirandin]] #* {{jêder-malper|ku|jêgirtin=Ez dibêjim di sîstemekê demokrat de, bi taybetî j heke hikûmet ji aliyê miletî ve hilbijartî be, hemî rêkên demokratî bo rawestandina biryarekê yan dana biryarekê rewa ne. Komkirina îmzeyan, xwenîşandan, duristkirina raya giştî, '''azirandina''' vî babetî di navgînên ragihandinê de, hemî rêkên demokratî ne û ev bo du tiştan bi kar dihên: yan bo rawestandina pêşniyara biryarekê ku tirsek heye ew bibe biryar, yan jî bo dana biryarekê ku daxwaza xelkekî ye.|nivîskar=Mueyed Teyib|sernav=Mueyed Teyib: Heke biryara nehêlana kurmanciyê derket, xelkê me mafê xwenîşandan û manggirtinê heye|url=http://www.nefel.com/articles/article_detail.asp?RubricNr=7&ArticleNr=1447|malper=nefel.com|sal=2006}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} {{werger-bin}} qcjybd9zwaij0r141hc8bherrdf0t8e gere 0 24390 6328964 6132101 2026-08-11T11:50:14Z Balyozbot 7867 /* Hoker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328964 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[divê]], [[pêdivî]] ye ku, [[gerek]] e ku, [[lazim]] e ku, [[hewce]] ye ku #: '''''Gere''' tu me ji bîr nekî.'' #: ''Gere kurd ji bilî serxwebûnê bi ti tiştek din razî nebin.'' #* {{jêder-malper|ku|jêgirtin=Kurdên Iraqê ji bo damezrandina dewleta xwe Tirkiyê wek asteng dibînin. '''Gere''' Tirkiye vê bêbawerîyê ji holê rake ku kurdên iraqê Tirkîyeyê ji xwe re nêzîk bibînin.|nivîskar=[[w:Aram Gernas|Aram Gernas]]|sernav=Tirk ji bo Kurdistana serbixwe xwe dihewisînin|malper=Netkurd.com|sal=9/2006}} ==== Jê ==== * {{mj|Navdêr}} [[gerekirin]] ==== Etîmolojî ==== [[gerek]] - [[-ek]] + [[e]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|need}} (to), {{W|en|have to}} * {{Z|tr}}: {{W|tr|gerek}}, {{W|tr|gerekli}}, {{W|tr|lazım}}, {{W|tr|elzem}} {{werger-bin}} t4fnh9pkc4tvmtltl6bgxa14kwvjoua ewî 0 24498 6328953 6232764 2026-08-11T11:49:48Z Balyozbot 7867 /* Cînav */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328953 wikitext text/x-wiki == {{ziman|ku}} == === Cînav === {{cînav|ku}} # {{guherto|wî}} #* {{jêder-malper|ku|jêgirtin=Heyatek wisa heye yan tune ye, ez '''ewî''' nizanim.|nivîskar=Rehmî Kurdziman|sernav=Ez ji xwe ra nabêjim nivîskar, karê min nivîskarî nîne|malper=inanolo.blogspot.com|url=https://inanolo.blogspot.com/2018/10/rehmi-kurdziman-ez-ji-xwe-ra-nabejim.html|sal=2018}} ==== Binêre ==== * {{g|ku|ewê}} ''(forma mê)'' qnn6qwltnk81xwx0m1hylqdwef8hxov gulav 0 24876 6328971 6307712 2026-08-11T11:50:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328971 wikitext text/x-wiki {{bnr-h|Gulav}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[av|Av]]a [[bêhn]][[xweş]] ya ji [[gul]]an ya ku mirov li [[leş]]ê xwe dike. #: {{hevmane|ku|parfûm|qolanî|lewente}} #* {{jêder-malper|ku|jêgirtin=Ji bin perdê were derê <br>Bêje erê <br>Pirç '''gulav'''ê <br>[[dêm|Dêm]] [[fener]]ê <br>Peyva erê<br> ji sîngê xwe bîne derê <br>Bêje erê|nivîskar=Şemal Doskî|sernav=Na!|malper=Kurdworld.com|sal=2002}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|گولاڤ}} ==== Formên alternatîv ==== * {{g|ku|gulab}} ==== Jê ==== * {{g|ku|gulavane}} * {{g|ku|gulavî}} ==== Etîmolojî ==== Ji {{pêk|ku|gul|av}} [[hevreh|Hevreh]]a {{hv|ckb|گوڵاو|tr=[[guław]]}}, {{hv|fa|گلاب|tr=golab}}. Wek navê vexwarineke ji [[pûng]]î / [[nane]]yê bi rêya erebî ketiye {{hv|la|julapium}} û jê derbazî {{hv|fr|julep}} û îngilîzî [[julep]] bûye. ==== Bide ber ==== * {{g|ku|sorav}} * {{g|ku|spiyav}} * {{g|ku|rejav}} * {{g|ku|derav}} * {{g|ku|berav}} * {{g|ku|perrav}} ==== Bi zaravayên din ==== {{werger-ser}} * {{Z|ckb}}: {{W|ckb|گوڵاو}} {{werger-bin}} ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|parfum|n}} * {{Z|de}}: {{W+|de|Parfüm|nt}}, {{W+|de|Duftstoff|n}}, {{W+|de|Parfum|nt}} * {{Z|aii}}: {{W-|aii|ܪܹܝܚܵܐ ܗܲܢܝܼܐܵܐ|n}}, {{W-|aii|ܗܹܪܘܿܡܵܐ|n}}, {{W-|aii|ܥܸܛܪܵܐ|n}} * {{Z|az}}: {{W+|az|ətir}} * {{Z|be}}: {{W-|be|духі́|nt-p}}, {{W-|be|парфу́ма|m}} * {{Z|bn}}: {{W-|bn|সুগন্ধি}} * {{Z|bcl}}: {{W-|bcl|pahamot}} * {{Z|bg}}: {{W+|bg|парфю́м|n}} * {{Z|cs}}: {{W+|cs|parfém|n}}, {{W-|cs|voňavka|m}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|香水|tr=hoeng1 seoi2}} *: {{Z|hak}}: {{W-|hak|香水|tr=hiông-súi}} *: {{Z|cmn}}: {{W+|cmn|香水|tr=xiāngshuǐ}} *: {{Z|cdo}}: {{W-|cdo|香水|tr=hiông-súi}} *: {{Z|nan}}: {{W+|nan|芳水|tr=phang-chúi}} *: {{Z|wuu}}: {{W-|wuu|香水}} * {{Z|da}}: {{W-|da|perfume|g}} * {{Z|id}}: {{W+|id|parfum}}, {{W+|id|minyak wangi}} * {{Z|ar}}: {{W-|ar|أَرِيج|n}}, {{W-|ar|شَذًا|n}}, {{W-|ar|عِطْر|n}} *: {{Z|arz}}: {{W-|arz|برفان|n|tr=barfān}}, {{W-|arz|برفانات|m-p|tr=barfānāt}} * {{Z|hy}}: {{W+|hy|օծանելիք}} * {{Z|eo}}: {{W-|eo|parfumo}} * {{Z|et}}: {{W-|et|parfüüm}}, {{W+|et|lõhnaõli}} * {{Z|fa}}: {{W+|fa|عطر|tr='atr}} * {{Z|fi}}: {{W+|fi|hajuste}}, {{W+|fi|hajuvesi}}, {{W+|fi|parfyymi}} * {{Z|fr}}: {{W+|fr|parfum|n}} * {{Z|gl}}: {{W+|gl|perfume|n}} * {{Z|ka}}: {{W-|ka|სურნელება}} * {{Z|hi}}: {{W-|hi|ख़ुशबू|m}} * {{Z|nl}}: {{W+|nl|parfum|nt}} * {{Z|he}}: {{W+|he|בושם|n|tr=bósem|cuda=בושם / בֹּשֶׂם}} * {{Z|ang}}: {{W-|ang|wyrtġemang|nt}} * {{Z|en}}: {{W+|en|perfume}} * {{Z|ga}}: {{W+|ga|cumhrán|n}} * {{Z|it}}: {{W+|it|profumo|n}} * {{Z|is}}: {{W+|is|ilmvatn|nt}} * {{Z|ja}}: {{W+|ja|香水|tr=こうすい, kōsui}} * {{Z|jra}}: {{W-|jra|ia kluñ}} * {{Z|ca}}: {{W+|ca|perfum|n}} * {{Z|ky}}: {{W+|ky|атыр}}, {{W-|ky|духи}} * {{Z|ko}}: {{W+|ko|향수}} * {{Z|la}}: {{W-|la|unguentum|nt}}, {{W-|la|costum|nt}}, {{W-|la|hēdycrum|nt}} * {{Z|lv}}: {{W-|lv|parfīms|n}} * {{Z|lo}}: {{W-|lo|ນ້ຳອົບ}} * {{Z|lt}}: {{W-|lt|kvepalai|p}} * {{Z|lb}}: {{W-|lb|Parfum|n}} * {{Z|mdh}}: {{W-|mdh|mamut}} * {{Z|mk}}: {{W-|mk|парфе́м|n}}, {{W-|mk|мирис|n}} * {{Z|ms}}: {{W-|ms|minyak wangi}}, {{W-|ms|minyak attar}} * {{Z|mi}}: {{W-|mi|hinu kakara}} * {{Z|mrw}}: {{W-|mrw|randag}} * {{Z|hu}}: {{W+|hu|parfüm}}, {{W+|hu|illatszer}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|сүрчиг}} * {{Z|nv}}: {{W-|nv|tó łikání halchiní}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|parfyme|n}} *: {{Z|nn}}: {{W-|nn|parfyme|n}} * {{Z|ug}}: {{W-|ug|ئەتىر}} * {{Z|uz}}: {{W+|uz|atir}}, {{W-|uz|duxi}} * {{Z|ps}}: {{W+|ps|عطر|n|tr='atәr}} * {{Z|pl}}: {{W+|pl|perfumy|p}} * {{Z|pt}}: {{W+|pt|perfume|n}} * {{Z|kk}}: {{W+|kk|әтір}} * {{Z|cop}}: {{W-|cop|ϣⲟⲟⲩ}} * {{Z|ro}}: {{W+|ro|parfum|nt}} * {{Z|ru}}: {{W+|ru|духи́|n-p}}, {{W+|ru|парфю́м|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|па̀рфе̄м|n}} *: Latînî: {{W+|sh|pàrfēm|n}} * {{Z|sk}}: {{W-|sk|vôňa|m}}, {{W-|sk|voňavka|m}} * {{Z|sl}}: {{W+|sl|parfum|n}} * {{Z|es}}: {{W+|es|perfume|n}} * {{Z|sw}}: {{W+|sw|marashi}} * {{Z|sv}}: {{W+|sv|parfym|g}} * {{Z|zdj}}: {{W-|zdj|marashi|c6}} * {{Z|tg}}: {{W-|tg|атр}} * {{Z|tl}}: {{W-|tl|pabango}} * {{Z|th}}: {{W+|th|น้ำหอม}} * {{Z|tr}}: {{W+|tr|burcu}}, {{W+|tr|parfüm}} * {{Z|tk}}: {{W+|tk|atyr}} * {{Z|tpi}}: {{W-|tpi|sanda}} * {{Z|ur}}: {{W-|ur|خوشبو|tr=xuśbū}} * {{Z|uk}}: {{W-|uk|духи́|nt-p}}, {{W-|uk|парфу́м|n}} * {{Z|vi}}: {{W-|vi|nước thơm}}, {{W+|vi|nước hoa}} * {{Z|cy}}: {{W-|cy|peraroglau|n}} * {{Z|km}}: {{W-|km|គន្ធរស}}, {{W-|km|ទឹកអប់}} * {{Z|el}}: {{W+|el|άρωμα|nt}} *: Kevn: {{W-|grc|μύρον|nt}} * {{Z|za}}: {{W-|za|raemxhom}} {{werger-bin}} :{{werger çavkanî|en|perfume|beş=Ev qismê Wergerê|oldid=75875699}} fmomy4lzs4gr7zkf0gze8y7dzcp0a1u mehî 0 25027 6329052 6311857 2026-08-11T11:53:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329052 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[muçe]], [[miz]], [[meaş]], <br>[[dirav]]ê ku [[karker]] her [[meh]]ê [[car]]ekê [[wergirtin|werdigirin]] #* {{jêder-malper|ku|jêgirtin=Bo zanîn, General Şêx Elo qesreke mezin li bajarê Stanbûlê heye, ew qesir wî bi sed û pêncî hizar dolaran kirriye û her sal dema ew diçe Europa, ew [[xêzan]]a xwe di wê qesrê de dihêle ta dema vegeryana wî. Li wê qesrê [[zêrevan]]ek heye û ew zêrevan '''mehiya''' xwe ji Fermandeya Behdînan ya Leşkirê Kurdistanê digire, ango ew zêrevan weke pêşmerge li [[fermande]]yê qeyd kiriye û ew bi xwe li bajarê Stanbûlê dimîne.|nivîskar=Binav Sindî|sernav=Generalên me dixwazin Tirkiyê dagîr bikin!|malper=Lotikxane.com|sal=9/2006}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|مه‌هی}} ==== Jê ==== * [[mehîtî]] ==== Etîmolojî ==== Ji {{paş|ku|meh|-î}} ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W|ar|تجلط|guman=erê}}, {{W|ar|خاثر|guman=erê}}, {{W|ar|خثر|guman=erê}}, {{W|ar|صئك|guman=erê}}, {{W|ar|طثر|guman=erê}} * {{Z|tr}}: {{W|tr|aylık}} {{werger-bin}} === Rengdêr === {{rengdêr|ku}} # her [[meh]], [[mehane]] #* {{bêmînak|ku}} # li [[gor]] [[meh]]an #* {{bêmînak|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} gtbrsg7cf3byc53bdz9karefcxrxcfv kezîzer 0 25656 6329016 6310087 2026-08-11T11:52:20Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329016 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[keç|Keç]] û [[jin]]ê ku [[por]]ê wan [[zer]] e. #* {{jêder-malper|ku|jêgirtin=Xwe ji aliyekî ve kenand, ji aliyên din ve xwe vezîland, bi kul û keser jî riha sipî hejand. Ji kerba dilberan, ji eşqa '''kezîzeran''', welat li bîra wî hat.|nivîskar=Welîd Murad|sernav=Xewsê Nûranî|malper=Rojavanet.com|sal=5/2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[kezîzerî]] * [[kezîzerîtî]] * [[kezîzertî]] ==== Etîmolojî ==== Ji {{pêk|ku|kezî|zer}}. ==== Bide ber ==== * [[kej]] * [[por-reş]] ==== Werger ==== {{werger-ser}} * {{Z|fi}}: {{W+|fi|vaaleaverikkö}}, {{W+|fi|blondi}} * {{Z|fr}}: [[blonde]] (femme) * {{Z|en}}: {{W+|en|blond}}, [[blonde]] (only women) {{werger-bin}} mrd2ny53fyqjk39od25b0st9pzx7bun korsan 0 25827 6329027 6263060 2026-08-11T11:52:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329027 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku}} # [[rêbir]], [[keleş]], [[rêgir]], [[eşqiya]], [[heydûd]], [[nijdevan]], [[cerdevan]], [[çete]], [[talanker]], [[revîner]], <br>kesa/ê ku bi [[darê zorê]] tiştekî ji [[xwedan]]ên wê [[standin|distîne]] û [[revandin|direvîne]] <br>(bi taybetî [[keştî|keştiyan]] yan [[firoke]]yan) #* {{jêder-malper|ku|jêgirtin='''Korsanê''' firoka tirk fîrarekî eskerîyê derket|malper=Netkurd.com|sal=10/2006}} ==== Formên alternatîv ==== * [[qorsan]] ==== Jê ==== * [[korsanî]] * [[korsanîtî]] * [[korsantî]] * [[korsanwarî]] * [[bi korsanî]] ==== Etîmolojî ==== ji Îtalyanî, 'corsaro' mane; [[talan]], [[şelandin]], [[rê birîn]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Freibeuter|m}}, {{W|de|Räuber|m|guman=erê}} * {{Z|fi}}: {{W+|fi|kaappaaja}} * {{Z|en}}: {{W+|en|pirate}}, {{W+|en|hijacker}}, {{W+|en|rapparee}}, {{W+|en|rover}} * {{Z|tr}}: {{W+|tr|haydut}}, {{W+|tr|korsan}} {{werger-bin}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-korsan.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # [[cerde]], [[keleş]] #* {{bêmînak|tr}} # [[cerdevan]], korsan #* {{bêmînak|tr}} # [[rêbir]] #* {{bêmînak|tr}} 5ol53f9476il3i1850xjusj6k769htc мочь 0 26910 6328743 5900674 2026-08-10T22:53:36Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328743 wikitext text/x-wiki == {{ziman|ru}} == === Lêker === {{lêker|ru}} # [[karîn]], [[şiyan]], [[kanîn]] #* {{bêmînak|ru}} ekqiek3vjauo0wuw3yf531d734f50jq berr 0 28610 6328802 6294425 2026-08-11T00:28:18Z Balyozbot 7867 /* Navdêr 1 */ sererastkirin 6328802 wikitext text/x-wiki {{bnr-h|ber|berr|bêr|-ber}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-berr.wav|dever=Bidlîs}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=?}} # ''(deşt)'' {{rastnivîs|ber|beş=Navdêr 5}} #* {{jêder-malper|ku|jêgirtin=Wê bigêrre der zemîn û asîman<br>Behr û '''berr''' û şerq û xerbê 'alemê|nivîskar=Mele Hisênê Bateyî|wergêr=HUSEIN MUHAMMED|sernav=Mewlûda Pêxemberî|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=33&RubricNr=&ArticleNr=4996|malper=nefel.com|sal=2010}}, ==== Etîmolojî ==== Ji bingeha erebî {{ar-root|ب ر ر}}, ji navdêrê erebî {{ji|ar|ku|بَرّ}}. <ref> "Etymology 1" https://en.wiktionary.org/wiki/%D8%A8%D8%B1#Arabic</ref>, <ref>https://www.almaany.com/en/dict/ar-en/%D8%A8%D8%B1/ </ref> === Navdêr 2 === {{navdêr|ku|z=m}} # ''(xawlî, xalîçe, kilîm)'' {{rastnivîs|ber|beş=Navdêr 6}} == {{ziman|non}} == === Rengdêr === {{rengdêr|non}} # {{g|ku|tazî}}, {{g|ku|rût}}, {{g|ku|rûs}}, {{g|ku|bêcil}} #* {{bêmînak|non}} === Çavkanî === {{rûpela wergerê|non|tazî}} k3rh7hggrr7nv4co5dydlyadqa8gbt9 eyar 0 29007 6328954 6327558 2026-08-11T11:49:50Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328954 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{beş|Rengdêr}} ** {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-eyar.wav|dever=Qers}} * {{beş|Navdêr}} ** {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-eyar(post).wav|dever=Qers}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[înyan]], [[dirist]], [[saz]], [[rast]], li [[gor]] [[pêwîstî|pêwîstiyê]] #: {{mk|ku|Saet '''eyar''' kirin}} ==== Formên alternatîv ==== * {{g|ku|ayar}} (2) * {{g|ku|'ayar}} * {{g|ku|'eyar}} * {{g|ku|yar}} ==== Jê ==== {{kol3|ku|cure=Jê |eyar bûn<q:lêker> |eyar kirin<q:lêker> |eyarbûn<q:navdêr> |eyarkirin<q:navdêr> |eyarbûyî<q:rengdêr> |eyarkirî<q:rengdêr> |eyarî |eyarker |eyarkî }} ==== Etîmolojî ==== Ji {{deyn|ar|ku|عيار|tr='iyar}} ji {{ji|arc|ku||tr='-y-r|w=[[çavdêrî]] lê kirinעיר}}. ==== Werger ==== {{werger-ser|1}} * {{Z|de}}: {{W|de|Verstellung}} * {{Z|fa}}: {{W|fa|عیار}} * {{Z|tr}}: {{W|tr|ayar}} {{werger-bin}} {{werger-ser|?}} * {{Z|fa}}: {{W|fa|کیسه پوستی|guman=erê}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=n}} # [[post|Postê]] pez va tê çêkirin [[toraq]] têdixin hundirê wê. #: {{hevmane|ku|çerm|pîst}} #* ''Salewextê heqê bavê min du bar genim, '''eyarek toraq''', [[danzdeh]] girvankê (204.75 gr) rûn, destek kinc û du cot çarix bûn''<ref>1931, ''Hakob Qezeryan-Lazo'', ''Serhatiya Casim'', guhastin:Haciyê Cindî-Emînê Evdal </ref> #* {{jêder-malper|ku|jêgirtin=Nazê li bin sêpîkê xweş hildike<br> Nermê bi desta dike dew kil dike <br>Meşka Nazê nermik e şeşçermik e<br>'''Eyarê''' wê xavik e wek textik e<br>Çavê Nazê şînik e çavwerdek e.|nivîskar=Arşevîn|sernav=Nazya reben nazike|url=http://www.lotikxane.com/arsiv/arsiv%2077.html|malper=Lotikxane.com|sal=11/2007}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Leder}} {{n}}, {{W|de|Pelz}} {{n}}, {{W|de|Regelung}} {{mê}}, {{W|de|Schlauch|m|guman=erê}}, {{W|de|Fell}} {{n}} * {{Z|en}}: {{W|en|pelt}} * {{Z|tr}}: {{W|tr|post}}, {{W|tr|pösteki|guman=erê}}, {{W|tr|tulum|guman=erê}} {{werger-bin}} === Çavkanî === {{çavkanî}} 79lkqwgcbxssdd0tit39yjj8u38if3v kepaze 0 29538 6329006 6283411 2026-08-11T11:51:59Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329006 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|kepaze}} {{rengdêr|ku}} # [[riswa]], [[rezîl]], [[şerpeze]], [[perîşan]], [[belengaz]], [[jar]] #* {{jêder-malper|ku|jêgirtin=Îsraîlê serokwezîrê filistîniyan Îsmaîl Haniye '''kepaze''' kir|malper=Nefel.com|sal=12/2006}} # [[bedniyet]], [[niyetxirab]], [[xêrnexwaz]], [[xirabîxwaz]], [[belakir]] #* {{bênimûne|ku}} ==== Jê ==== {{kol3|ku |kepaze bûn<pos:lêker> |kepaze kirin<pos:lêker> |kepazebûn<pos:navdêr> |kepazekirin<pos:navdêr> |kepazebûyî<pos:navdêr> |kepazekirî<pos:navdêr> |kepazehî |kepazetî |kepazeyî }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|lächerlich}}, {{W+|de|schamlos}}, {{W+|de|verächtlich}}, {{W+|de|schändlich}} * {{Z|fa}}: {{W+|fa|رسوا}}, {{W+|fa|آبرو ریخته}} * {{Z|en}}: {{W+|en|vile}}, {{W+|en|infamous}}, {{W+|en|scandalous}}, {{W+|en|shameful}}, {{W+|en|ridiculous}}, {{W+|en|contemptible}} * {{Z|tr}}: {{W+|tr|utanmaz}}, {{W+|tr|rezil}}, {{W+|tr|gülünç}}, {{W+|tr|değersiz}}, {{W+|tr|kepaze}} {{werger-bin}} == {{ziman|tr}} == === Rengdêr === {{rengdêr|tr}} # kepaze #* {{bênimûne|tr}} # [[rezîl]] #* {{bênimûne|tr}} # [[berbat]] #* {{bênimûne|tr}} # [[pêşkenî]], [[komîk]] #* {{bênimûne|tr}} # di wexta meşqkirinê de sistbûna jiya kevan #* {{bênimûne|tr}} fxm1bkt4pv2xkyks4aiuybcx2p7ryw3 çarçav 0 29591 6328877 5902506 2026-08-11T10:52:53Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328877 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesên ku [[berçavk]] datînin ber çavên xwe. #: {{jêder-malper|ku|jêgirtin=Xanima min jî di dawiya emrê xwe da ewêpîreke bi berçavk, ewê jî wek min bibe '''çarçav'''...|nivîskar=Zinarê Xamo|sernav=Çîroka berçavka min|url=https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|urlya-arşîvê=https://web.archive.org/web/20230101233133/https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|malper=Hindik Rindik - zinarexamo.blogspot.com|dîrok=02-23-2021}} # Kesê ku bi [[hişyarî]] an bi [[baldarî]] hereket dike. #: {{jêder-malper|ku|jêgirtin=Şivan tim li ber pez e û her daîm şiyar e, bi çav, goh û hestên xwe tim bi '''çarçav''' e. Pez bi ro û şev tim di talûkê de ye, talûke; diz, keftar, gur û dijmin e.|nivîskar=Paşa Amedî|sernav=Jiyan û rewşa şivanê Kurda|url=https://candname.com/jiyan-u-rewsa-sivane-kurda/|urlya-arşîvê=https://web.archive.org/web/20230101233450/https://candname.com/jiyan-u-rewsa-sivane-kurda/|malper=Çandname|dîrok=04-07-2017}} # Kesên meraqdarê tiştekî ne, hêvîdariya meraqdariyê. #: {{jêder-kovar|ku|jêgirtin=Çaxê ku her sê bira vegerîyan, '''çarçav''' bûn, je hev pirsîn te mal temîz kirîye her sîyan got na gotin minê kê temîz kirîye?|kovar=Fritillaria Kurdica - Bulletin of Kurdish Studies|sernav=Denenara qêza kêlik|url=https://www.kurdishstudies.pl/files/Fritillaria_Kurdica_2017_16[1].pdf|nivîskar=Abdollah Hajiyan|nivîskar2=Umîd Demîrhan|hejmar=16|dîrok=01-03-2017|rûpel=105}} ==== Etîmolojî ==== Ji {{pêk|ku|çav|çav}}. Maneya yekem bi tesîra zimanê tirkî ketiye kurdî. ==== Werger ==== {{werger-ser|Kesên biberçavk}} {{werger-bin}} {{werger-ser|Kesê ku bi baldarî hereket dike}} {{werger-bin}} {{werger-ser|Kesên meraqdarê tiştekî}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mj|Rûyê lihêfê, rûyê serdoşekê}} {{guherto|ku|çarçef}} ahmz8zl5f284hybswj8j3c3j96xmtls 6328878 6328877 2026-08-11T10:53:32Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328878 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesên ku [[berçavk]] datînin ber çavên xwe. #: {{jêder-malper|ku|jêgirtin=Xanima min jî di dawiya emrê xwe da ewêpîreke bi berçavk, ewê jî wek min bibe '''çarçav'''...|nivîskar=Zinarê Xamo|sernav=Çîroka berçavka min|url=https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|urlya-arşîvê=https://web.archive.org/web/20230101233133/https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|malper=Hindik Rindik - zinarexamo.blogspot.com|dîrok=2021-02-23}} # Kesê ku bi [[hişyarî]] an bi [[baldarî]] hereket dike. #: {{jêder-malper|ku|jêgirtin=Şivan tim li ber pez e û her daîm şiyar e, bi çav, goh û hestên xwe tim bi '''çarçav''' e. Pez bi ro û şev tim di talûkê de ye, talûke; diz, keftar, gur û dijmin e.|nivîskar=Paşa Amedî|sernav=Jiyan û rewşa şivanê Kurda|url=https://candname.com/jiyan-u-rewsa-sivane-kurda/|urlya-arşîvê=https://web.archive.org/web/20230101233450/https://candname.com/jiyan-u-rewsa-sivane-kurda/|malper=Çandname|dîrok=04-07-2017}} # Kesên meraqdarê tiştekî ne, hêvîdariya meraqdariyê. #: {{jêder-kovar|ku|jêgirtin=Çaxê ku her sê bira vegerîyan, '''çarçav''' bûn, je hev pirsîn te mal temîz kirîye her sîyan got na gotin minê kê temîz kirîye?|kovar=Fritillaria Kurdica - Bulletin of Kurdish Studies|sernav=Denenara qêza kêlik|url=https://www.kurdishstudies.pl/files/Fritillaria_Kurdica_2017_16[1].pdf|nivîskar=Abdollah Hajiyan|nivîskar2=Umîd Demîrhan|hejmar=16|dîrok=01-03-2017|rûpel=105}} ==== Etîmolojî ==== Ji {{pêk|ku|çav|çav}}. Maneya yekem bi tesîra zimanê tirkî ketiye kurdî. ==== Werger ==== {{werger-ser|Kesên biberçavk}} {{werger-bin}} {{werger-ser|Kesê ku bi baldarî hereket dike}} {{werger-bin}} {{werger-ser|Kesên meraqdarê tiştekî}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mj|Rûyê lihêfê, rûyê serdoşekê}} {{guherto|ku|çarçef}} l8696jct9czhychnz0rafeq60datcqv 6328879 6328878 2026-08-11T10:54:05Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328879 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesên ku [[berçavk]] datînin ber çavên xwe. #* {{jêder-malper|ku|jêgirtin=Xanima min jî di dawiya emrê xwe da ewêpîreke bi berçavk, ewê jî wek min bibe '''çarçav'''...|nivîskar=Zinarê Xamo|sernav=Çîroka berçavka min|url=https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|urlya-arşîvê=https://web.archive.org/web/20230101233133/https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|malper=Hindik Rindik - zinarexamo.blogspot.com|dîrok=2021-02-23}} # Kesê ku bi [[hişyarî]] an bi [[baldarî]] hereket dike. #* {{jêder-malper|ku|jêgirtin=Şivan tim li ber pez e û her daîm şiyar e, bi çav, goh û hestên xwe tim bi '''çarçav''' e. Pez bi ro û şev tim di talûkê de ye, talûke; diz, keftar, gur û dijmin e.|nivîskar=Paşa Amedî|sernav=Jiyan û rewşa şivanê Kurda|url=https://candname.com/jiyan-u-rewsa-sivane-kurda/|urlya-arşîvê=https://web.archive.org/web/20230101233450/https://candname.com/jiyan-u-rewsa-sivane-kurda/|malper=Çandname|dîrok=04-07-2017}} # Kesên meraqdarê tiştekî ne, hêvîdariya meraqdariyê. #* {{jêder-kovar|ku|jêgirtin=Çaxê ku her sê bira vegerîyan, '''çarçav''' bûn, je hev pirsîn te mal temîz kirîye her sîyan got na gotin minê kê temîz kirîye?|kovar=Fritillaria Kurdica - Bulletin of Kurdish Studies|sernav=Denenara qêza kêlik|url=https://www.kurdishstudies.pl/files/Fritillaria_Kurdica_2017_16[1].pdf|nivîskar=Abdollah Hajiyan|nivîskar2=Umîd Demîrhan|hejmar=16|dîrok=01-03-2017|rûpel=105}} ==== Etîmolojî ==== Ji {{pêk|ku|çav|çav}}. Maneya yekem bi tesîra zimanê tirkî ketiye kurdî. ==== Werger ==== {{werger-ser|Kesên biberçavk}} {{werger-bin}} {{werger-ser|Kesê ku bi baldarî hereket dike}} {{werger-bin}} {{werger-ser|Kesên meraqdarê tiştekî}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mj|Rûyê lihêfê, rûyê serdoşekê}} {{guherto|ku|çarçef}} m7uw3tjml8dc8rom0lcbrpcsrih3xd0 6328880 6328879 2026-08-11T10:54:25Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328880 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesên ku [[berçavk]] datînin ber çavên xwe. #* {{jêder-malper|ku|jêgirtin=Xanima min jî di dawiya emrê xwe da ewêpîreke bi berçavk, ewê jî wek min bibe '''çarçav'''...|nivîskar=Zinarê Xamo|sernav=Çîroka berçavka min|url=https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|urlya-arşîvê=https://web.archive.org/web/20230101233133/https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|malper=Hindik Rindik - zinarexamo.blogspot.com|dîrok=2021-02-23}} # Kesê ku bi [[hişyarî]] an bi [[baldarî]] hereket dike. #* {{jêder-malper|ku|jêgirtin=Şivan tim li ber pez e û her daîm şiyar e, bi çav, goh û hestên xwe tim bi '''çarçav''' e. Pez bi ro û şev tim di talûkê de ye, talûke; diz, keftar, gur û dijmin e.|nivîskar=Paşa Amedî|sernav=Jiyan û rewşa şivanê Kurda|url=https://candname.com/jiyan-u-rewsa-sivane-kurda/|urlya-arşîvê=https://web.archive.org/web/20230101233450/https://candname.com/jiyan-u-rewsa-sivane-kurda/|malper=Çandname|dîrok=04-07-2017}} # Kesên meraqdarê tiştekî ne, hêvîdariya meraqdariyê. #* {{jêder-kovar|ku|jêgirtin=Çaxê ku her sê bira vegerîyan, '''çarçav''' bûn, je hev pirsîn te mal temîz kirîye her sîyan got na gotin minê kê temîz kirîye?|kovar=Fritillaria Kurdica - Bulletin of Kurdish Studies|sernav=Denenara qêza kêlik|url=https://www.kurdishstudies.pl/files/Fritillaria_Kurdica_2017_16[1].pdf|nivîskar=Abdollah Hajiyan|nivîskar2=Umîd Demîrhan|hejmar=16|dîrok=01-03-2017|rûpel=105}} ==== Etîmolojî ==== Ji {{pêk|ku|çav|çav}}. ==== Werger ==== {{werger-ser|Kesên biberçavk}} {{werger-bin}} {{werger-ser|Kesê ku bi baldarî hereket dike}} {{werger-bin}} {{werger-ser|Kesên meraqdarê tiştekî}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mj|Rûyê lihêfê, rûyê serdoşekê}} {{guherto|ku|çarçef}} lsjluy14qong2oa4la3orfz9twjpqre 6328881 6328880 2026-08-11T11:17:54Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6328881 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesên ku [[berçavk]] datînin ber çavên xwe. #* {{jêder-malper|ku|jêgirtin=Xanima min jî di dawiya emrê xwe da ewêpîreke bi berçavk, ewê jî wek min bibe '''çarçav'''...|nivîskar=Zinarê Xamo|sernav=Çîroka berçavka min|url=https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|urlya-arşîvê=https://web.archive.org/web/20230101233133/https://zinarexamo.blogspot.com/2021/02/ciroka-bercavka-min.html|malper=Hindik Rindik - zinarexamo.blogspot.com|dîrok=2021-02-23}} # Kesê ku bi [[hişyarî]] an bi [[baldarî]] hereket dike. #* {{jêder-malper|ku|jêgirtin=Şivan tim li ber pez e û her daîm şiyar e, bi çav, goh û hestên xwe tim bi '''çarçav''' e. Pez bi ro û şev tim di talûkê de ye, talûke; diz, keftar, gur û dijmin e.|nivîskar=Paşa Amedî|sernav=Jiyan û rewşa şivanê Kurda|url=https://candname.com/jiyan-u-rewsa-sivane-kurda/|urlya-arşîvê=https://web.archive.org/web/20230101233450/https://candname.com/jiyan-u-rewsa-sivane-kurda/|malper=Çandname|dîrok=04-07-2017}} # Kesên meraqdarê tiştekî ne, hêvîdariya meraqdariyê. #* {{jêder-kovar|ku|jêgirtin=Çaxê ku her sê bira vegerîyan, '''çarçav''' bûn, je hev pirsîn te mal temîz kirîye her sîyan got na gotin minê kê temîz kirîye?|kovar=Fritillaria Kurdica - Bulletin of Kurdish Studies|sernav=Denenara qêza kêlik|url=https://www.kurdishstudies.pl/files/Fritillaria_Kurdica_2017_16[1].pdf|nivîskar=Abdollah Hajiyan|nivîskar2=Umîd Demîrhan|hejmar=16|dîrok=01-03-2017|rûpel=105}} ==== Etîmolojî ==== Ji {{pêk|ku|çar|çav}}. ==== Werger ==== {{werger-ser|Kesên biberçavk}} {{werger-bin}} {{werger-ser|Kesê ku bi baldarî hereket dike}} {{werger-bin}} {{werger-ser|Kesên meraqdarê tiştekî}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{mj|Rûyê lihêfê, rûyê serdoşekê}} {{guherto|ku|çarçef}} gz2afqjtba97ootvpmyz7q4u8gfdfhu luks 0 31330 6329046 6311352 2026-08-11T11:53:25Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329046 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[wurşedar]], [[mirêsdar]], [[cih]]ê yan tiştê [[pirr]] [[xweş]] û [[bihagiran]] #* {{jêder-malper|ku|jêgirtin=li gor hinek ji çapemenîya Îtalî û mikurhatina hinek kesên Kurd û Îtalî, kurê Celal Talabanî Qubad Talabanî daweta zewaca xwe li Îtalya, di ciyekî pir '''luks''' de çêkiriye û 10 milyon dolar lê serf kiriye.|malper=Lotikxane.com|sal=2/2007}} ==== Formên alternatîv ==== * [[lûks]] ==== Jê ==== * [[luksî]] ==== Etîmolojî ==== Bi rêya {{ji|fr|ku|luxe}} ji latînî ''[[luxus]]'' (bi[[bereket]]). ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|üppig|guman=erê}} * {{Z|fi}}: {{W+|fi|loisto-}} * {{Z|fr}}: {{W+|fr|luxe}} * {{Z|en}}: {{W+|en|luxurious}}, {{W+|en|luxe}}, {{W+|en|luxury}}, {{W|en|lux|guman=erê}} * {{Z|tr}}: {{W+|tr|lüks}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[lampe]], [[gulop]], [[ronahî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} {{werger-bin}} bul1zfzq10qook82sxdrfqtp3tupdcf aranje 0 32945 6328778 6133564 2026-08-11T00:25:27Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328778 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|aranje}} {{rengdêr|ku}} # [[amade]], [[hazir]] #* {{jêder-malper|ku|jêgirtin=Hemû stranên wî jî ji aliyê Merdên ve hatine '''aranje'''kirin. Lê belê pirsgirêka vê albumê jî bêtir di nava van stranan re diyar dibin ku ew jî nêviyê albumê ye, ji ber ku di albumê de duwazdeh stran hene.|nivîskar=Ibrahîm Seydo Aydogan|sernav=Çar Newa û laboratuara wê|url=http://www.amude.net/Kultur_Kurdi_deep.php?newsLanguage=Kurdi&newsId=5799|malper=Amude.de|sal=2/2007}} ==== Jê ==== {{kol3|ku|cure=Jê |aranje bûn<q:lêker> |aranje kirin<q:lêker> |aranjebûn<q:navdêr> |aranjekirin<q:navdêr> |aranjebûyî<q:rengdêr> |aranjekirî<q:rengdêr> |aranjer |aranjeker }} ==== Etîmolojî ==== Ji {{deyn|fr|ku|arrangé}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|düzenleme}} {{werger-bin}} 3iq6s6giezbe06tnmob1bqcp8n71mdj cumbuş 0 32948 6328876 6245416 2026-08-11T10:52:33Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328876 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:cumbus.jpg|thumb|cumbuşek]] {{navdêr|ku|z=m}} # {{f|ku|muzîk}} [[amûr]]ek [[muzîk]]ê ya mîna [[od]]ê yan [[saz]]ê ye #* {{jêder-malper|ku|jêgirtin=Muzîka kurdî ya klasîk bi tembûrê tê naskirin. [[Ribab]] û '''cumbuş''' û [[bisk]] jî di vî warî de tembûrê temam dikin.|nivîskar=Ibrahîm Seydo Aydogan|sernav=Çar Newa û laboratuara wê|url=http://www.amude.net/Kultur_Kurdi_deep.php?newsLanguage=Kurdi&newsId=5799|malper=Amude.de|sal=2/2007}} ==== Formên alternatîv ==== * {{g|ku|cimbiş}} * {{g|ku|cimbûş}} * {{g|ku|cumbiş}} * {{g|ku|cumbûş}} * {{g|ku|cûmbûş}} ==== Jê ==== * {{g|ku|cumbuşjen}} * {{g|ku|cumbuşjenî}} * {{g|ku|cumbuşvan}} * {{g|ku|cumbuşvanî}} ==== Etîmolojî ==== Ji {{deyn|tr|ku|cümbüş}} ji Zeynel Abidin Cümbüş, [[daner]]ê cumbuş. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|jamboree}} * {{Z|tr}}: {{W+|tr|cümbüş}} {{werger-bin}} qswny2ftb5upmj731ffkul6mcn6kpzs dîlema 0 33856 6328933 6305708 2026-08-11T11:43:23Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328933 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Rewşa dijwar ku tê de du [[vebijêrk]]ên her du jî ne[[gengaz]] in hene. #: {{hevmaneyên peyvê|ku|erê-na}} #* {{jêder-malper|ku|jêgirtin='''Dîlemaya''' ji bo çînîyan ew e ka ew dê destê xwe biavêjin hêza sîyasî tevî ku ew jixwe xwedîyê hêza aborî ne, yan jî ew dê xwe li prensîpa parvekirinê bigirin, ya ku ji vî welatî tiştê ku îro heye çêkir.|nivîskar=Charles Dannaud|wergêr=Luqman Guldivê|sernav=LI MALEZYAYÊ HIKÛMET Û CIVAT BER BI HEVBERDANÊ VE DIÇIN|url=https://diplo-kurdi.com/ku/li-malezyaye-hikumet-u-civat-ber-bi-hevberdane-ve-dicin|malper=diplo-kurdi.com|sal=2013}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * {{g|ku|dîlemayî}} ==== Etîmolojî ==== Ji {{deyn|en|ku|dilemma}}, ji {{ji|LL.|ku|dilemma}}, ji {{ji|grc|ku|δίλημμα||teklîfa nezelal}}, ji {{qal|grc|δι-||ya/yê bi du tiştan}} + {{qal|grc|λῆμμα||teklîf}}. ==== Bide ber ==== * {{g|ku|çare}} * {{g|ku|çareserî}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|dilemma}} * {{Z|tr}}: {{W+|tr|dilema}}, {{W+|tr|ikilem}} {{werger-bin}} atlw2mgsdv5kpprbqwos3j1x9gzds00 absûrd 0 34187 6328762 6244277 2026-08-11T00:04:27Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328762 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|absûrd}} {{rengdêr|ku}} # [[batil]], [[dûrî aqil]], [[gewc]], tişta/ê ku [[dij]]î [[eqil]]î ye, <br>tişta/ê [[aqilê selîm]] ni[[karîn|kare]] [[pejirandin|bipejirîne]] #* {{jêder-malper|ku|jêgirtin=Lê tişta herî xweş, komîk, ecêb an jî ez çi bibêjim absûrd ev e ku di navberê de wekî çequlatên eyda bimbarek çend gotinokên kurdî jî dixwînin û rihê me gişan mest û serxweş dikin.|nivîskar=Evdile Koçer|sernav=Deriyê wêjeyê û deriyê sloganan|malper=Diyarname.com|sal=3/2007}} ==== Formên alternatîv ==== * [[absurd]] ==== Jê ==== * [[absûrdî]] * [[absûrdîtî]] ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|absurd}} ji {{ji|frm|ku|absurde}}, ji {{ji|la|ku|absurdus}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|sinneloos}}, {{W-|af|absurd}} * {{Z|sq}}: {{W+|sq|absurd}} * {{Z|de}}: {{W+|de|widersinnig}}, {{W+|de|absurd}}, {{W-|de|ungereimt}}, {{W+|de|unsinnig}}, {{W+|de|albern}} * {{Z|da}}: {{W-|da|absurd}} * {{Z|eo}}: {{W-|eo|sensenca}}, {{W+|eo|absurda}} * {{Z|fi}}: {{W+|fi|absurdi}}, {{W+|fi|järjetön}} * {{Z|fr}}: {{W+|fr|absurde}} * {{Z|fy}}: {{W-|fy|absurd}}, {{W-|fy|healwiis}} * {{Z|nl}}: {{W+|nl|onzinnig}}, {{W+|nl|zinledig}}, {{W+|nl|zinloos}}, {{W+|nl|absurd}}, {{W+|nl|dwaas}}, {{W+|nl|ongerijmd}}, {{W+|nl|zinneloos}}, {{W+|nl|zot}} * {{Z|io}}: {{W+|io|absurda}} * {{Z|en}}: {{W+|en|absurd}}, {{W+|en|foolish}}, {{W+|en|nonsense}}, {{W+|en|nonsensical}}, {{W+|en|senseless}}, {{W+|en|silly}} * {{Z|it}}: {{W+|it|assurdo}} * {{Z|is}}: {{W+|is|fáránlegur}} * {{Z|ca}}: {{W+|ca|absurd}} * {{Z|la}}: {{W+|la|absurdus}} * {{Z|hu}}: {{W+|hu|abszurd}}, {{W+|hu|képtelen}} * {{Z|pap}}: {{W-|pap|apsurdo}} * {{Z|pt}}: {{W+|pt|absurdo}}, {{W+|pt|disparatado}} * {{Z|es}}: {{W+|es|absurdo}} * {{Z|tr}}: {{W+|tr|absürd}}, {{W+|tr|saçma}}, {{W+|tr|batıl}} {{werger-bin}} 1btwkrwanjp3rqxrdaei4d8bno9x763 dagerîn 0 36476 6328897 6304500 2026-08-11T11:25:21Z Balyozbot 7867 /* Lêker */ sererastkirin 6328897 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|dagerîn|form=negerguhêz|niha=ger|borî=geriya|pêşgir=da}} {{lêker|ku|c=p-ngh}}, {{r-ya req}} # [[peya bûn]] #* {{bênimûne|ku}} # [[qulipîn]], [[wergerîn]], [[serûbin]] bûn yan ketin ser [[tenişt]]ê, [[hatin xwarê]] #* {{bênimûne|ku}} # [[lê vegerîn]] #* {{jêder-malper|ku|jêgirtin=Li ser vê yekê em arasteyî pirê dibin û cara duyem em di ser pira Nîssîbiyê ya li ser çemê Ferêt re derbas dibe û daxilê erda Komageneyê dibin. Em pirê derbas dikin nakin, em li ser milê xwe yê rastê '''dadigerin''' û ber û berê geliyê di navbera pira Nîssîbî û Gergerê de pêş ve diçin.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} #* {{jêder|ku|jêgirtin=Ji bo kêfa jina min lê neşikê û wê tempoya xwe dewam bike, bêyî ku kes bibîne min li mitfaxê lêvên wê maçî kir, tepek li kulîmeka wê ya rastê xist, bi çend gotinan pesnê wê da, pê rê bişirîm, paşê '''dageriyam''' odeya rûniştinê û min mêvan keremî xwarinê kirin.|{{Jêgirtin/Firat Cewerî/Payiza Dereng|weşanxane={{w|Avesta}}|sal=2014|r=16}}}} ==== Bi alfabeyên din ==== * {{ku-ar|داگه‌رین}} ==== Formên alternatîv ==== {{kol3|ku|cure=Herwiha |dagerran |dagerrhan |dagerrihan |dagerriyan |dagerryan |dagerrîn |dageran |dagerhan |dagerihan |dageriyan |dageryan }} ==== Jê ==== * {{g|ku|dageriyayî}} * {{g|ku|dagerî}} * {{g|ku|dagerok}} ==== Têkildar ==== * {{g|ku|dagerandin}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * {{g|ku|vegerîn}} * {{g|ku|wergerîn}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|anlaufen}} * {{Z|ar}}: {{W-|ar|نزول}}, {{W+|ar|وطأ}}, {{W-|ar|رجوع}} * {{Z|en}}: {{W+|en|diverge}}, {{W+|en|oblique}}, {{W+|en|set foot}}, {{W+|en|go down}} * {{Z|tr}}: {{W+|tr|ağmak}}, {{W+|tr|avdet etmek}}, {{W+|tr|dönüşmek}}, {{W-|tr|inkilap etmek}}, {{W+|tr|inmek}}, {{W+|tr|tagayyür etmek}}, {{W+|tr|tahavvül etmek}}, {{W-|tr|kartlaşmak|guman=erê}}, {{W+|tr|sapmak|guman=erê}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[peyabûn]] #* {{bênimûne|ku}} # [[qulipîn]], [[wergerîn]], [[serûbin]] bûn yan ketin ser [[tenişt]]ê, [[hatin xwarê]] #* {{bênimûne|ku}} # [[lêvegerîn]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|Anlaufen}} * {{Z|ar}}: {{W-|ar|نزول}}, {{W+|ar|وطأ}}, {{W-|ar|رجوع}} * {{Z|en}}: {{W+|en|diverge}}, {{W+|en|oblique}}, {{W+|en|set foot}}, {{W+|en|go down}} * {{Z|tr}}: {{W+|tr|inkilap}}, {{W+|tr|ağma}}, {{W+|tr|dönüşme}}, {{W+|tr|kartlaşma}}, {{W+|tr|tagayyür}}, {{W+|tr|tahavvül}}, {{W+|tr|transformasyon}}, {{werger-bin}} kqxzo6gv1b1l7h0kqgw7poaikm3itob klîk 0 36520 6329023 6310316 2026-08-11T11:52:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329023 wikitext text/x-wiki {{bnr-h|klik}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kom]], [[grûp]], [[koz]], [[ref]] #* {{jêder|ku|jêgirtin=Abdullah Öcalan li ser pirsa jahrdadayîkirina xwe rawestiya û got ku ew bawer nake dewleta tirk ew ji xwe re kiribe hedef, lê di nav dewletê de kare '''klîkek''' (grûpek) hebe ku bixwaze berê xwe bidiyê. Wî got şilayiya ku li gewriya wî peyda bûye, hîn berdewam e û çêjeka metalîk tim di devê wî de heye. Wî got ew nizane ku ew ji xwarin û vexwarinê tê ya ji avûhewaya dora giravê ye, sedem divê bê tesbîtkirin. Ew dixwaze ku heyeteka serbixwe ji bo kontrolkirina tendurustuya wî biçe giravê. Wî got ev ji bo dewletê jî baş e. Çimkî dewlet jî ê ji tuhmetan rizgar bibe.|Netkurd.com, 4/2007}} #* {{jêder-malper|ku|jêgirtin=Piştî wê, tevgera herî xedar a dîrokê DAIŞ hat peydakirin û dîsa pêşeng û îdeolgên wê, '''klîka''' serdest a tirk bû.|nivîskar=Mem Avba|sernav=Sêgoşeya stratejîk|url=https://xwebun.org/segoseya-stratejik/|malper=xwebun.org|dîrok=2020-04-26}} #* {{jêder-malper|ku|jêgirtin=Bi taybetî piştî ku siyaseta kurdî ket bin bandora aktorên siyasî '''klîka''' ku ji xwandegehên fermî yên dewletê derçûne û medreseyên kurdî berêvka îtibar û bandora xwe ya di nav xwandayên kurd de winda kir, ev vatiş hîn zaltir bû.|nivîskar=FEXRIYA ADSAY|sernav=Di navbera bîranîn û bîr‘ne’anînê de - “Desteyek Ji Çîroka Jiyana Min”|url=https://www.basnews.com/kr/babat/325518|malper=basnews.com|sal=2017}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|kilîk}} ==== Jê ==== * {{g|ku|klîkî}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|clique}}. ==== Bide ber ==== * {{g|ku|kilîl}} * {{g|ku|kilît}} * {{g|ku|klîp}} ==== Werger ==== {{werger-ser|kom, grûp}} * {{Z|de}}: {{W|de|Clique|m}} * {{Z|tr}}: {{W+|tr|bölük}}, {{W+|tr|hizip}} {{werger-bin}} omhoidemcli2jdcnhnthmw7vhbjxgeh elît 0 36593 6328943 6326898 2026-08-11T11:47:28Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328943 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # [[bijare]], [[cilewdar]], [[serkêş]], [[pêşewa]], [[pêşeng]], <br>kesên ji hemûyan [[zîrek]]tir yan [[dewlemend]]tir #* {{jêder-malper|ku|jêgirtin=Ew xwe ji jinên kurd ko bi kurdî diaxifin û li ber firotina satilîn mêst rûdinin, li pey barên hejikan in û li ber deriyên mizgeftan destên xwe vedigire bi ferqtir dibîne. Ji hêla şertên ko vê gavê ew tê de ye, pir normal e; lê ew bi xwe jî diyar û îtiraf dike bê ew çi qasî “bêjiya” civata kurd e. Ji ber ew weha bawer dike ko ew daxilî nav '''elîta''' kurd bûye, lê elîteke bi tu awayên xwe wek kurdan tev nagere. Elîteke ko bi kurdî nizane, elîteke ko bi tayinê hatiye ser serê kurdan û ne diyar e bê ew ê kengî bi [[tekme]]yê biçin.|nivîskar=[[w:Enwer Karahan|Enwer Karahan]]|sernav=Aysel Tugluk nefretê ji mêran dike|url=|malper=Nefel.com|sal=8/2007}} ==== Formên alternatîv ==== * [[êlît]] ==== Jê ==== * [[elîtî]] * [[elîtîst]] * [[elîtîzm]] ==== Etîmolojî ==== Ji {{ji|fr|ku|élite}} ji [[élire]]. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Elite|f|guman=erê}} * {{Z|ar}}: {{W|ar|نخبة}} {{mê}} * {{Z|fi}}: {{W|fi|eliitti}}, {{W|fi|parhaimmisto}} * {{Z|fr}}: {{W|fr|élite}} {{mê}} * {{Z|nl}}: {{W|nl|elite}} {{mê}} * {{Z|he}}: [[עילית]] (‘ilít), [[אליטה]] (elíta) * {{Z|en}}: {{W|en|elite}} * {{Z|ca}}: {{W|ca|élite}} {{mê}} * {{Z|ru}}: [[элита]] (elíta) * {{Z|es}}: {{W|es|élite}} {{mê}} * {{Z|tr}}: {{W|tr|elit}}, {{W|tr|seçkinler}} {{werger-bin}} pa9qgrkj0tbxrlj0mpjryxaihu015ab dilniya 0 36660 6328917 6133954 2026-08-11T11:31:17Z Balyozbot 7867 sererastkirin 6328917 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|dilniya}} {{rengdêr|ku}} # [[piştrast]], [[eseh]], [[bêguman]], [[misoger]], [[ekîd]], [[musir]] #* {{jêder-malper|ku|jêgirtin=Divê hûn '''dilniya''' bin ku çarseriyeka eskerî ji bo vê meselê tu feyde nade.|malper=Netkurd.com|sernav=Nêçîrvan Barzanî di hevpeyivînekê de li gel CNNTurk|sal=4/2007}} #* {{jêder|ku|jêgirtin=Tevî ku ez '''dilniya''' me ku tu ê xwe ji vê daxwazê re sersar nekî jî|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=67}}}} ==== Etîmolojî ==== Ji {{qertaf|ku|dil|niya}}. ==== Jê ==== * [[dilniyayî]] ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|مطمئن}}, {{W+|fa|راحت خیال}} * {{Z|en}}: {{W+|en|good-tempered}}, {{W|en|contender|guman=erê}}, {{W|en|complacent|guman=erê}}, {{W|en|ingratiating|guman=erê}}, {{W|en|well-contented|guman=erê}}, {{W|en|pleased}}, {{W|en|satisfied}} * {{Z|tr}}: {{W+|tr|hoşnut}} {{werger-bin}} bf5nt1kz10bnuguu2i0nx65j0lnj8mw 6328921 6328917 2026-08-11T11:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328921 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|dilniya}} {{rengdêr|ku}} # [[piştrast]], [[eseh]], [[bêguman]], [[misoger]], [[ekîd]], [[musir]] #* {{jêder-malper|ku|jêgirtin=Divê hûn '''dilniya''' bin ku çarseriyeka eskerî ji bo vê meselê tu feyde nade.|malper=Netkurd.com|sernav=Nêçîrvan Barzanî di hevpeyivînekê de li gel CNNTurk|sal=4/2007}} #* {{jêder|ku|jêgirtin=Tevî ku ez '''dilniya''' me ku tu ê xwe ji vê daxwazê re sersar nekî jî|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=67}}}} ==== Jê ==== * [[dilniyayî]] ==== Etîmolojî ==== Ji {{qertaf|ku|dil|niya}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|مطمئن}}, {{W+|fa|راحت خیال}} * {{Z|en}}: {{W+|en|good-tempered}}, {{W|en|contender|guman=erê}}, {{W|en|complacent|guman=erê}}, {{W|en|ingratiating|guman=erê}}, {{W|en|well-contented|guman=erê}}, {{W|en|pleased}}, {{W|en|satisfied}} * {{Z|tr}}: {{W+|tr|hoşnut}} {{werger-bin}} 0giorb4b7lf4bx1p2rnum4a3gbgxscp direfş 0 40249 6328930 6305408 2026-08-11T11:41:51Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328930 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[ala]], [[perçem]], [[beyreq]] #* {{jêder-malper|ku|jêgirtin=Li kû bifire bila bifire, qertel hêlîna xwe di xiramê herî asê de, li zinarên herî li jor çê dike! Dênê xwe bidinê li Rojhilata Navîn ji roja roj de; remzên li ser hîm û hêtan, yên li ser al û '''drefşên''' şahristaniyên çûyî windabûyî, û ên welatên niha li ser piya mayî, sembola hêzdarî û desthelatdariya wan an şêr e, an qertel e, an jî baz e.|nivîskar=Arjen Arî|sernav=Ji nav 56 çivîkan qertelek...|malper=Diyarname.com|sal=6/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[direvş]] * [[direwş]] * [[drefş]] * [[drevş]] * [[drewş]] ==== Etîmolojî ==== Ji {{ji|ira}}. Bide ber {{hv|fa|درفش|tr=derafş|w=[[ala]]}}<ref>{{malper|nivîskar=francis joseph steingass|url=http://dsalsrv02.uchicago.edu/cgi-bin/philologic/getobject.pl?c.2:1:6172.steingass|sernav=درفش dirafsh|malper=uchicago.edu}}</ref>, {{hv|xcl|դրօշ|tr=drōš|w=ala}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Banner|m|guman=erê}}, {{W|de|Fahne|f|guman=erê}}, {{W|de|Fähnrich|m|guman=erê}}, {{W|de|Flagge|f|guman=erê}} * {{Z|ar}}: {{W-|ar|عَلَم}} * {{Z|fa}}: {{W+|fa|پرچم}}, {{W+|fa|نشان}} * {{Z|en}}: {{W+|en|sanjak}}, {{W+|en|banner|guman=erê}}, {{W+|en|fane|guman=erê}}, {{W+|en|flag|guman=erê}}, {{W+|en|pennon|guman=erê}}, {{W+|en|vexillum|guman=erê}} * {{Z|tr}}: {{W+|tr|flâma}}, {{W+|tr|ongun}}, {{W+|tr|sancak}}, {{W+|tr|sembol}}, {{W+|tr|flama}}, {{W+|tr|alem|guman=erê}}, {{W+|tr|bayrak|guman=erê}} {{werger-bin}} === Çavkanî === {{çavkanî}} pwew3ddrws8o5mmbhmv9u3nt88xugsi arif 0 40582 6328780 6245080 2026-08-11T00:25:39Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328780 wikitext text/x-wiki {{bnr-h|Arif}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=?}} # [[fehma]], [[têgihiştî]], [[zana]], [[hişmend]], [[şareza]], [[pispor]], [[xwedî]]-[[irfan]] #* {{jêder-malper|ku|jêgirtin='''Arif''' û fîlosof herduk jî li dû peydakirina heqîqet û rastiyê de ne, herduk li heqîqetê digerin. Lê cudahiya wan li çawaniya belgevehênan û şîweyta peydakirina rastiyê de ye. Fîlosof dixwaze bi rêka hiş û jîrbûna xwe û belgevehênana mentiqî rastiyê peyda bike, lê arif dixwaze li rêka evîn û evîndariyê rastiyê peydabike û bigihîje heqîqetê?|nivîskar=Perwîz Cîhanî|sernav=Irfan di Mem û Zîna Ehmedê Xanî de|url=http://www.xoybun.com/modules/Content/print.php?pid=980|malper=xoybun.com|sal=2007}} ==== Formên alternatîv ==== * [['arif]] * [[arîf]] * [['arîf]] ==== Jê ==== * [[arifî]] * [[arifîtî]] * [[ariftî]] ==== Etîmolojî ==== Ji {{ji|ar|ku|عريف|cuda=عَرِيف|w=zana, pispor, têgihiştî}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|arif}} {{rengdêr|ku}} # [[fehma]], [[têgihiştî]], [[zana]], [[hişmend]], [[şareza]], [[pispor]], [[xwedî]]-[[irfan]] #* {{bêmînak|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[têgiştî]], [[fehmber]], [[fehma]], [[zana]] #* {{bêmînak|tr}} rg2vm2c3upcq7di8azroma9bcmmjdk2 mihrevan 0 40686 6329062 6100722 2026-08-11T11:53:59Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329062 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{guharto|ku|mihrîvan}} #* {{jêder-malper|ku|jêgirtin=Min bangkir, slav û '''mihrevan''' û bereketa Xwedê li te be biraderê Israfîl. Got: “Slav û mihrevan û bereketa Xwedê li te be jî dilyarê Xwedê”.|nivîskar=IBIN EBBAS|wergêr=Salih Bozan|sernav=Îsra û Mîhrac|url=http://avestakurd.net/blog/2014/12/30/isra-u-mihrac/|malper=avestakurd.net|sal=2014}} #* {{jêder-pirtûk|ku|jêgirtin=Reberekî dilovan<br>Şervanekî '''mihrevan'''|nivîskar=Qedrîcan Rûgeş|sernav=Şerê Azadî|url=http://tirsik.net/danegeh/pirtuk/qedrican/%C5%9Eer%C3%AA%20azad%C3%AE-Qedr%C3%AEcan%20%20R%C3%BBge%C5%9F%20%20%C3%87%C3%AErokniv%C3%AEs.pdf|rûpel=41}} #* {{jêder-pirtûk|ku|jêgirtin=wek Qezafî<br> weke Babayê mihrevan<br> bû dozeyar bû lavekar<br> bo me kurdan|nivîskar=Abbas ISM'ÎL|sernav=Xelata Mandêla|url=http://bnk.institutkurde.org/images/pdf/NKSTY36R9U.pdf|sal=1999|rûpel=19}} hhkcrddqgvpcranzrtg57gposcuxwag avangard 0 40778 6328783 6247212 2026-08-11T00:26:16Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328783 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|avangard}} {{rengdêr|ku}} # Kesên ku [[şêwaz]] û [[teknîk]]ên [[nûjen]] [[peyda]] dikin, <br>[[hunermend]]ên yan [[berhem]]ên [[herî]] [[nûjen]] û [[progresîv]] yên [[serdem]]a xwe. #* {{jêder-malper|ku|jêgirtin=Di jiyana hunerî ya civakekê de heger avangardîzm (pêşengtî) tune be, hunera wê civakê ji alî pêşveçûnê ve xesandî û mirarî ye. Hunereke ku ji avangardîzmê mahrûm be, bêşoreş û pêşeroj e. Her weha ji ber ku her berhema hunerî ya '''avangard''', ji bo dema xwe avangard, û ji bo dema pêş klasîk e, hunera bêavangard, bêklasîk e jî. Tiştê ku empresyonîzm an jî sembolîzm kiriye klasîk, di dema wan de avangardiya wan e.|nivîskar=Rênas Jiyan|sernav=Avangardîzm û dem|malper=Azadiyawelat.com|sal=6/2007}} ==== Formên alternatîv ==== * {{hw|ku|avantgard}} ==== Hevmane ==== * {{g|ku|pêşeng}} * {{g|ku|pêşrew}} * {{g|ku|piyoner}} * {{g|ku|progresîv}} ==== Etîmolojî ==== Ji {{ji|fr|ku|avant-garde}}. ==== Jê ==== * {{g|ku|avangardî}} * {{g|ku|avangardîst}} * {{g|ku|avangardîzm}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Avantgarde|f}} * {{Z|da}}: {{W+|da|avantgarde}} * {{Z|fr}}: {{W+|fr|avant-garde}} * {{Z|he}}: {{W+|he|:he:אוונגרדי}} * {{Z|en}}: {{W+|en|avant-garde}}, {{W+|en|avantgarde}} * {{Z|tr}}: {{W+|tr|avangart}} {{werger-bin}} q3k6b9ekbiww448tfoiezvxv6ovkku5 6328842 6328783 2026-08-11T00:41:26Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328842 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|avangard}} {{rengdêr|ku}} # Kesên ku [[şêwaz]] û [[teknîk]]ên [[nûjen]] [[peyda]] dikin, <br>[[hunermend]]ên yan [[berhem]]ên [[herî]] [[nûjen]] û [[progresîv]] yên [[serdem]]a xwe. #* {{jêder-malper|ku|jêgirtin=Di jiyana hunerî ya civakekê de heger avangardîzm (pêşengtî) tune be, hunera wê civakê ji alî pêşveçûnê ve xesandî û mirarî ye. Hunereke ku ji avangardîzmê mahrûm be, bêşoreş û pêşeroj e. Her weha ji ber ku her berhema hunerî ya '''avangard''', ji bo dema xwe avangard, û ji bo dema pêş klasîk e, hunera bêavangard, bêklasîk e jî. Tiştê ku empresyonîzm an jî sembolîzm kiriye klasîk, di dema wan de avangardiya wan e.|nivîskar=Rênas Jiyan|sernav=Avangardîzm û dem|malper=Azadiyawelat.com|sal=6/2007}} ==== Formên alternatîv ==== * {{hw|ku|avantgard}} ==== Hevmane ==== * {{g|ku|pêşeng}} * {{g|ku|pêşrew}} * {{g|ku|piyoner}} * {{g|ku|progresîv}} ==== Jê ==== * {{g|ku|avangardî}} * {{g|ku|avangardîst}} * {{g|ku|avangardîzm}} ==== Etîmolojî ==== Ji {{ji|fr|ku|avant-garde}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Avantgarde|f}} * {{Z|da}}: {{W+|da|avantgarde}} * {{Z|fr}}: {{W+|fr|avant-garde}} * {{Z|he}}: {{W+|he|:he:אוונגרדי}} * {{Z|en}}: {{W+|en|avant-garde}}, {{W+|en|avantgarde}} * {{Z|tr}}: {{W+|tr|avangart}} {{werger-bin}} butnfakvx80b7d85ladxalt53w0h6qv avir 0 42406 6328785 5930409 2026-08-11T00:26:24Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328785 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # {{guherto|awir}} #* {{jêder-malper|ku|jêgirtin=Ne destê te digihe sêvekê da tu jê bikî û bi gezan biçiyê, ne tu dikarî '''avirên''' xwe ji ser wan dagerinî...|nivîskar=Arjen Arî|sernav=Hewldan û nivîs|url=https://diyarname.com/article.php?Idx=157|malper=Diyarname.com|sal=7/2007}} == {{ziman|gl}} == === Lêker === {{lêker|gl}} # {{g|ku|qewimîn}}, {{g|ku|rû dan}} #* {{bêmînak|gl}} === Çavkanî === {{rûpela wergerê|gl|qewimîn}} tr12xyybjq0794c4g6ts0ximm5bkosq egzoz 0 42442 6328940 6305940 2026-08-11T11:47:12Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328940 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Tubo Escape.jpg|thumb|gizûz]] {{navdêr|ku|z=m}} # [[dûkêl]]ê ku ji [[motor]]an [[derketin|derdikeve]] #* {{jêder-kovar|ku|jêgirtin="Di roja me de motorên 4 demî gellek popûler e, di van motoran de pijiqandina sotemeniyê û valakirina '''egzozê''' bi derbên cuda ên pîstonê vê pêk tê.|kovar=Zanko|sernav=Otomotîv|url=https://books.google.com.tr/books?id=9cZ-DwAAQBAJ&pg=PA76&lpg=PA76&dq=%22egzoz%C3%AA%22&source=bl&ots=M5FMKvIgtv&sig=ACfU3U0MBqCTxYe6VkFLT4dwlgGJc6GKDA&hl=tr&sa=X&ved=2ahUKEwiM17TdpfLrAhU_UhUIHdHRA5s4FBDoATAEegQIARAB#v=onepage&q=%22egzoz%C3%AA%22&f=false|hejmar=4|sal=2015|rûpel=76}} # [[borî|boriya]] ku ew [[dûkêl]] tê re [[derketin|derdikeve]] #* {{jêder-malper|ku|jêgirtin=Di trafîkê de muayeneya nêzî 2 milyon erebeyan tune ye. Wezareta Bajarvanî û Hawirdorê, kesên ku kontrola wesayîda xwe nekirine hişyar dike. heke muayeneya '''egzozê''' neyê kirin wê hezar û 546 lîre ceza li wan bê birîn.|sernav=Ji bo kontrola egsozê roja dawî ye|url=https://www.trtnuce.com/turkiye/ji-bo-kontrola-egsoz-roja-daw-ye-h46502.html|malper=trtnuce.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Dema hemû karên wan li ser Hîvê xelas bû rêwîtiya ji bo Erdê dest pêkir. Gorî ragihandina Algrin “hejîna alayê ji ber '''egzozê''' bû ji ber vê yekê ala ji cihê xwe firrya bû”. Birastî ew lêkolînên ku piştî wan astronotan hatine kirin nîşan didin ew ala Apollo 11 danîbû ser Hîvê, ne li cihê xwe ye.|sernav=Ew ala ku Amerîka li ser Hîvê danîbû çi lê hat?|url=https://www.rudaw.net/kurmanci/world/240620143|malper=rudaw.net/|sal=2014}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[egsoz]] * {{hw|ku|gizûz||Dihok}} ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|exhaust}}. {{bend}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Auspuff|m}}, {{W|de|Abgas|m|guman=erê}} * {{Z|fi}}: {{W+|fi|pakokaasu}} * {{Z|fr}}: {{W+|fr|échappement}}, {{W+|fr|gaz d'échappement}} * {{Z|nl}}: {{W|nl|uitlaat|m}} * {{Z|en}}: {{W+|en|exhaust}}, {{W+|en|emmission}}, {{W|en|exhaust pipe}} * {{Z|es}}: [[tubo]] de [[escape]] * {{Z|tr}}: {{W+|tr|egzoz}}, {{W+|tr|susturucu}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[egsoz]] #* {{bêmînak|tr}} # [[dengbir]] #* {{bêmînak|tr}} 9q4r3nc08p6g9o4d63gpr7urn9qf16u jêneger 0 43281 6328997 6326872 2026-08-11T11:51:38Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328997 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|jêneger}} {{rengdêr|ku}}, {{r-ya req}} # [[pir]] [[giring]], [[bingehîn]], [[esasî]], [[bivê-nevê]], [[lazim]], [[pêwîst]], [[pêdivî]], <BR>tişta/ê ku tiştek [[qet]] bêyî wê nabe #* {{jêder-malper|ku|jêgirtin=Bêguman em ji nirxên xwe hez dikin, em ji nasname û zimanê xwe hez dikin, ev sedemên me yên jêneger ên jiyanî ne, ger em ji van nirxan hez nekin, em nikarin jiyanê watedar bikin, ma qey li gor we jiyan bi çi nirxan xwedî nirx e?|nivîskar=Nusret Kurt|sernav=Ma zimanhezî nijadperestî ye|malper=Pen-kurd.org|sal=7/2007}} # {{kontrol|rêz=erê|[[hewce]], [[gerek]]}} ==== Formên alternatîv ==== * [[jênegerr]] ==== Jê ==== * [[jênegerî]] ==== Etîmolojî ==== [[jê]] + [[ne-]] + [[gerîn|ger]] ==== Werger ==== {{werger-ser}} * {{Z|zh}}: {{W+|zh|無可避免}}, [[必然的]],[[不可避免的]] * {{Z|et}}: {{W+|et|vältimatu}}, {{W+|et|paratamatu}} * {{Z|fi}}: {{W+|fi|välttämätön}}, {{W+|fi|väistämätön}}, {{W+|fi|vääjäämätön}} * {{Z|fr}}: {{W+|fr|inévitable}}, {{W+|fr|inéluctable}}, {{W+|fr|absolu}} * {{Z|en}}: {{W+|en|inalienable}}, {{W+|en|indispensable}}, {{W+|en|inevitable}}, {{W+|en|necessary}} * {{Z|it}}: [[inevitabile]] {{mê}} * {{Z|ko}}: {{W+|ko|피할 수 없는}} * {{Z|hu}}: {{W+|hu|elkerülhetetlen}} * {{Z|sk}}: {{W+|sk|neodvratný}} * {{Z|sv}}: {{W+|sv|oundviklig}} * {{Z|tr}}: {{W+|tr|vazgeçilmez}}, {{W+|tr|mübrem}} {{werger-bin}} oywyexi63feozmiv44juj3cx2dn3in7 endîrek 0 43447 6328947 6255554 2026-08-11T11:48:21Z Balyozbot 7867 /* Hoker */ sererastkirin 6328947 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # ne [[rastûr]], [[ne yekser]], ne [[dîrek]], ne [[rasterê]], ne [[rasterast]], ne [[rikerast]] # [[tekirme]] Tekirma davê min! #* {{jêder-malper|ku|jêgirtin=Tê zanîn ku beriya vê 5 salan, Tirkiyeyê ji bona ku bi YE-yê re bibe endam û hevbeş, qanunên lihevkirinê amade kirin. Di van qanûnên lihevkirinê de her çiqas kurdî vekirî nebe jî, '''endîrek''' hatiye pejirandin.|nivîskar=Îbrahîm Guçlu|sernav=Di civînên partiyên siyasî de jî bi kurdî qise kirin mafê min û mafê her kurdekî yê xwezayî û neteweyî û demokratîk e|url=https://www.welateme.info/kurdi/modules.php?name=News&file=article&sid=606|malper=welateme.info|sal=2007}} ==== Formên alternatîv ==== * [[endîrekt]] * [[indîrek]] * [[indîrekt]] * [[îndîrek]] * [[îndîrek]] ==== Etîmolojî ==== Ji {{ji|fr|ku|indirect}} ji [[in-]] + [[direct]] ==== Jê ==== * [[endîrekî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|indirekt}}, {{W|de|mittelbar|guman=erê}} * {{Z|zh}}: {{W|zh|间接的}} * {{Z|fa}}: {{W|fa|غیر مستقیم}} * {{Z|fi}}: {{W|fi|epäsuora}}, {{W|fi|välillinen}} * {{Z|fr}}: {{W|fr|indirect}} * {{Z|nl}}: {{W|nl|indirect}} * {{Z|en}}: {{W|en|indirect}} * {{Z|it}}: {{W|it|indiretto}}, {{W|it|mediato}} * {{Z|hu}}: {{W|hu|közvetett}} * {{Z|es}}: {{W|es|indirecto}} * {{Z|tr}}: {{W|tr|endirek}} {{werger-bin}} hx987kmu6dp7t0vzit7ijcnikklmh1g aktîvîst 0 44697 6328774 6296401 2026-08-11T00:25:10Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328774 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesê ku [[çalakî|çalakiyên]] [[sivîl]] dike. #: {{hevmaneyên peyvê|ku|çalakvan|bizavkar|faîl}} #* {{jêder-malper|ku|jêgirtin=Di rastiyê da hukumê Xoybûnê di nav '''aktîvîstên''' tevgera kurdan da ne zêde pir bû.|malper|nivîskar=Têmûrê Xelîl|sernav=Peywendiyên Xoybûnê û Daşnaksûtyûnê|malper=Nefel.com|sal=9/2010}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Formên alternatîv ==== * {{g|ku|aktivist}} ==== Jê ==== * {{g|ku|aktîvîstane}} * {{g|ku|aktîvîstî}} ==== Têkildar ==== * {{g|ku|aktîvîzm}} ==== Etîmolojî ==== Ji {{deyn|en|ku|activist}}; wekheva {{paş|ku|aktîv|-îst}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Aktivist|n}}, {{W+|de|Aktivistin|m}} * {{Z|be}}: {{W-|be|актыві́ст|n}}, {{W-|be|актыві́стка|m}} * {{Z|bg}}: {{W+|bg|активи́ст|n}}, {{W+|bg|активи́стка|m}} * {{Z|ce}}: {{W-|ce|жигархо}} * {{Z|cs}}: {{W+|cs|aktivista|n}}, {{W+|cs|aktivistka|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|活躍分子|tr=huóyuè fènzǐ}}, {{W-|cmn|活動分子|tr=huódòng fènzǐ}}, {{W-|cmn|活動家|tr=huódòngjiā}}, {{W-|cmn|積極分子|tr=jījí fènzǐ}} * {{Z|da}}: {{W+|da|aktivist|g}} * {{Z|ar}}: {{W-|ar|نَاشِط|n}}, {{W-|ar|نَاشِطَة|m}} * {{Z|hy}}: {{W+|hy|ակտիվիստ}} * {{Z|eo}}: {{W-|eo|aktivulo}} * {{Z|et}}: {{W-|et|aktivist}} * {{Z|fa}}: {{W+|fa|فعال|tr=fa'âl}} * {{Z|fi}}: {{W+|fi|aktivisti}} * {{Z|fr}}: {{W+|fr|militant|n}}, {{W+|fr|militante|m}} * {{Z|gl}}: {{W+|gl|activista|n|m}} * {{Z|ka}}: {{W-|ka|აქტივისტი}} * {{Z|nl}}: {{W+|nl|activist|n}}, {{W+|nl|activiste|m}} * {{Z|he}}: {{W+|he|פָּעִיל|n|tr=pa'íl}}, {{W-|he|פְּעִילָה|m|tr=pe'ilá}} * {{Z|io}}: {{W-|io|aktivisto}} * {{Z|en}}: {{W+|en|activist}} * {{Z|it}}: {{W+|it|attivista|n|m}} * {{Z|is}}: {{W-|is|aðgerðasinni|n}} * {{Z|ja}}: {{W-|ja|活動家|tr=かつどうか, katsudōka}} * {{Z|ca}}: {{W-|ca|activista|n|m}} * {{Z|ko}}: {{W+|ko|활동가}} * {{Z|mk}}: {{W-|mk|активи́ст|n}}, {{W-|mk|активи́стка|m}} * {{Z|mi}}: {{W-|mi|kaiwhakatūtū}} * {{Z|mr}}: {{W-|mr|कार्यकर्ता|n}} * {{Z|hu}}: {{W+|hu|aktivista}} * {{Z|nrf}}: {{W-|nrf|activiste|n|m}} * {{Z|oc}}: {{W-|oc|activista|n|m}} * {{Z|pl}}: {{W+|pl|aktywista|n}}, {{W+|pl|aktywistka|m}}, {{W+|pl|działacz|n}}, {{W+|pl|działaczka|m}} * {{Z|pt}}: {{W+|pt|ativista|n|m}} * {{Z|kk}}: {{W+|kk|белсенді}} * {{Z|ro}}: {{W+|ro|activist|n}}, {{W+|ro|activistă|m}} * {{Z|ru}}: {{W+|ru|активи́ст|n}}, {{W+|ru|активи́стка|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|актѝвист|n}}, {{W-|sh|активиста}}, {{W-|sh|актѝвистица|m}} *: Latînî: {{W+|sh|aktìvist|n}}, {{W+|sh|aktivista|n}}, {{W+|sh|aktìvistica|m}} * {{Z|sk}}: {{W-|sk|aktivista|n}}, {{W-|sk|aktivistka|m}} * {{Z|sl}}: {{W-|sl|aktivist|n}}, {{W-|sl|aktivistka|m}} * {{Z|es}}: {{W+|es|activista|n|m}} * {{Z|sw}}: {{W-|sw|mwanaharakati}} * {{Z|sv}}: {{W+|sv|aktivist|g}} * {{Z|th}}: {{W-|th|นักประท้วง}} * {{Z|tr}}: {{W+|tr|eylemci}}, {{W+|tr|etkinci}}, {{W+|tr|aktivist}} * {{Z|uk}}: {{W+|uk|активі́ст|n}}, {{W+|uk|активі́стка|m}} * {{Z|vi}}: {{W-|vi|phần tử tích cực}} * {{Z|cy}}: {{W-|cy|ymgyrchydd|n|m}}, {{W-|cy|ymgyrchwraig|m}}, {{W-|cy|ymgyrchwr|n|m}} * {{Z|yi}}: {{W-|yi|אַקטיוויסט|n}}, {{W-|yi|אַקטיוויסטין|m}} * {{Z|el}}: {{W+|el|ακτιβιστής|n}} {{werger-bin}} :{{werger çavkanî|en|activist|beş=Ev beşa Wergerê|oldid=75500301}} isymc1saybocdc27zdqimhf8rupv37j 6328844 6328774 2026-08-11T00:41:46Z Wikihez 7344 /* Navdêr */ 6328844 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesê ku [[çalakî|çalakiyên]] [[sivîl]] dike. #: {{hevmaneyên peyvê|ku|çalakvan|bizavkar|faîl}} #* {{jêder-malper|ku|jêgirtin=Di rastiyê da hukumê Xoybûnê di nav '''aktîvîstên''' tevgera kurdan da ne zêde pir bû.|nivîskar=Têmûrê Xelîl|sernav=Peywendiyên Xoybûnê û Daşnaksûtyûnê|malper=Nefel.com|sal=9/2010}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Formên alternatîv ==== * {{g|ku|aktivist}} ==== Jê ==== * {{g|ku|aktîvîstane}} * {{g|ku|aktîvîstî}} ==== Têkildar ==== * {{g|ku|aktîvîzm}} ==== Etîmolojî ==== Ji {{deyn|en|ku|activist}}; wekheva {{paş|ku|aktîv|-îst}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Aktivist|n}}, {{W+|de|Aktivistin|m}} * {{Z|be}}: {{W-|be|актыві́ст|n}}, {{W-|be|актыві́стка|m}} * {{Z|bg}}: {{W+|bg|активи́ст|n}}, {{W+|bg|активи́стка|m}} * {{Z|ce}}: {{W-|ce|жигархо}} * {{Z|cs}}: {{W+|cs|aktivista|n}}, {{W+|cs|aktivistka|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|活躍分子|tr=huóyuè fènzǐ}}, {{W-|cmn|活動分子|tr=huódòng fènzǐ}}, {{W-|cmn|活動家|tr=huódòngjiā}}, {{W-|cmn|積極分子|tr=jījí fènzǐ}} * {{Z|da}}: {{W+|da|aktivist|g}} * {{Z|ar}}: {{W-|ar|نَاشِط|n}}, {{W-|ar|نَاشِطَة|m}} * {{Z|hy}}: {{W+|hy|ակտիվիստ}} * {{Z|eo}}: {{W-|eo|aktivulo}} * {{Z|et}}: {{W-|et|aktivist}} * {{Z|fa}}: {{W+|fa|فعال|tr=fa'âl}} * {{Z|fi}}: {{W+|fi|aktivisti}} * {{Z|fr}}: {{W+|fr|militant|n}}, {{W+|fr|militante|m}} * {{Z|gl}}: {{W+|gl|activista|n|m}} * {{Z|ka}}: {{W-|ka|აქტივისტი}} * {{Z|nl}}: {{W+|nl|activist|n}}, {{W+|nl|activiste|m}} * {{Z|he}}: {{W+|he|פָּעִיל|n|tr=pa'íl}}, {{W-|he|פְּעִילָה|m|tr=pe'ilá}} * {{Z|io}}: {{W-|io|aktivisto}} * {{Z|en}}: {{W+|en|activist}} * {{Z|it}}: {{W+|it|attivista|n|m}} * {{Z|is}}: {{W-|is|aðgerðasinni|n}} * {{Z|ja}}: {{W-|ja|活動家|tr=かつどうか, katsudōka}} * {{Z|ca}}: {{W-|ca|activista|n|m}} * {{Z|ko}}: {{W+|ko|활동가}} * {{Z|mk}}: {{W-|mk|активи́ст|n}}, {{W-|mk|активи́стка|m}} * {{Z|mi}}: {{W-|mi|kaiwhakatūtū}} * {{Z|mr}}: {{W-|mr|कार्यकर्ता|n}} * {{Z|hu}}: {{W+|hu|aktivista}} * {{Z|nrf}}: {{W-|nrf|activiste|n|m}} * {{Z|oc}}: {{W-|oc|activista|n|m}} * {{Z|pl}}: {{W+|pl|aktywista|n}}, {{W+|pl|aktywistka|m}}, {{W+|pl|działacz|n}}, {{W+|pl|działaczka|m}} * {{Z|pt}}: {{W+|pt|ativista|n|m}} * {{Z|kk}}: {{W+|kk|белсенді}} * {{Z|ro}}: {{W+|ro|activist|n}}, {{W+|ro|activistă|m}} * {{Z|ru}}: {{W+|ru|активи́ст|n}}, {{W+|ru|активи́стка|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|актѝвист|n}}, {{W-|sh|активиста}}, {{W-|sh|актѝвистица|m}} *: Latînî: {{W+|sh|aktìvist|n}}, {{W+|sh|aktivista|n}}, {{W+|sh|aktìvistica|m}} * {{Z|sk}}: {{W-|sk|aktivista|n}}, {{W-|sk|aktivistka|m}} * {{Z|sl}}: {{W-|sl|aktivist|n}}, {{W-|sl|aktivistka|m}} * {{Z|es}}: {{W+|es|activista|n|m}} * {{Z|sw}}: {{W-|sw|mwanaharakati}} * {{Z|sv}}: {{W+|sv|aktivist|g}} * {{Z|th}}: {{W-|th|นักประท้วง}} * {{Z|tr}}: {{W+|tr|eylemci}}, {{W+|tr|etkinci}}, {{W+|tr|aktivist}} * {{Z|uk}}: {{W+|uk|активі́ст|n}}, {{W+|uk|активі́стка|m}} * {{Z|vi}}: {{W-|vi|phần tử tích cực}} * {{Z|cy}}: {{W-|cy|ymgyrchydd|n|m}}, {{W-|cy|ymgyrchwraig|m}}, {{W-|cy|ymgyrchwr|n|m}} * {{Z|yi}}: {{W-|yi|אַקטיוויסט|n}}, {{W-|yi|אַקטיוויסטין|m}} * {{Z|el}}: {{W+|el|ακτιβιστής|n}} {{werger-bin}} :{{werger çavkanî|en|activist|beş=Ev beşa Wergerê|oldid=75500301}} rj405nfkts70anbngngkaapyakysjjp kurator 0 45254 6329032 6135402 2026-08-11T11:52:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329032 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[serperişt]]ê/a [[pêşangeh]]ekê, [[birêveber]]ê/a [[galerî|galeriyekê]], [[çavdêr]]ê/a [[cejn]]eke [[hunerî]]. #* {{jêder-malper|ku|jêgirtin=Kuratorê pêşengehê, akademîsyen Engîn Sustam têkildarê mijarê bi Rûdawê re axivî: "Ji ber projeya me projeyeke cuda ye û ji ber ku ez pêşengiya projeyeke wisa dikin, kêfxweş im."|malper=Rudaw.net/kurmanci|sal=9/2023|sernav=‘Bê welat’ li benda alîkariyê ye|url=https://www.rudaw.net/kurmanci/culture/23092023}} ==== Etîmolojî ==== Bi riya {{ji|fr|ku|curateur}} yan îngilîzî {{ji|en|ku|curator}} ji latînî {{ji|la|ku|curatus}} ==== Jê ==== * [[kuratorî]] * [[kuratorîtî]] * [[kuratortî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kurator|n}}, {{W+|de|Kuratorin|m}}, {{W-|de|Museumskurator|n}}, {{W-|de|Museumskuratorin|m}} * {{Z|bg}}: {{W+|bg|куратор|n}} * {{Z|cs}}: {{W+|cs|kurátor|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|館長|tr=guǎnzhǎng}}, {{W-|cmn|策展人|tr=cèzhǎnrén}} * {{Z|ar}}: {{W-|ar|منظم معارض}} * {{Z|eo}}: {{W-|eo|kuratoro}}, {{W-|eo|kuratorino}} * {{Z|fi}}: {{W+|fi|kuraattori}} * {{Z|fr}}: {{W+|fr|conservateur|n}}, {{W+|fr|conservatrice|m}} * {{Z|ka}}: {{W-|ka|კურატორი|sc=Geor}} * {{Z|nl}}: {{W+|nl|conservator|n}}, {{W+|nl|conservatrice|m}} * {{Z|he}}: {{W+|he|אוצר|n|tr=otsér|cuda=אוצר \ אוֹצֵר}}, {{W-|he|אוצרת|m|tr=otséret|cuda=אוצרת \ אוֹצֶרֶת}} * {{Z|en}}: {{W+|en|curator}} * {{Z|ga}}: {{W-|ga|coimeádaí|n}} * {{Z|ja}}: {{W-|ja|学芸員|tr=gakugeiin}} * {{Z|ko}}: {{W+|ko|큐레이터}} * {{Z|mk}}: {{W-|mk|кустос|n}} * {{Z|hu}}: {{W+|hu|kurátor}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|kurator|n}} *: {{Z|nn}}: {{W-|nn|kurator|n}} * {{Z|oc}}: {{W+|oc|conservator|n}}, {{W+|oc|conservador|n}}, {{W-|oc|curator|n}}, {{W-|oc|comisari|n}} * {{Z|pl}}: {{W+|pl|kurator|n}}, {{W+|pl|kuratorka|m}} * {{Z|pt}}: {{W+|pt|curador|n}}, {{W-|pt|curadora|m}} * {{Z|pa}}: {{W-|pa|ਪਰਬੰਧਕ}}, {{W-|pa|ਵਿਵਸਥਾ ਕਰਨ ਵਾਲਾ}}, {{W-|pa|ਵਿਵਸਥਾਪਕ|n}} * {{Z|ro}}: {{W+|ro|conservator|n}}, {{W+|ro|conservatoare|m}}, {{W+|ro|intendentă|m}}, {{W+|ro|intendentă|m}} * {{Z|ru}}: {{W+|ru|кура́тор|n}} * {{Z|sh}}: {{W-|sh|управитељ|n|sc=Cyrl}} * {{Z|es}}: {{W+|es|curador|n}}, {{W+|es|curadora|m}}, {{W+|es|comisario|n}}, {{W+|es|conservador|n}} * {{Z|tl}}: {{W-|tl|agsinop}} * {{Z|th}}: {{W+|th|ภัณฑารักษ์}} * {{Z|crh}}: {{W-|crh|kurator}} * {{Z|tr}}: {{W+|tr|küratör}} {{werger-bin}} :{{werger çavkanî|en|curator|beş=Ev qismê Wergerê|oldid=75886137}} == {{ziman|nb}} == === Navdêr === {{navdêr|nb|z=n}} # {{mijar|nb|pîşe}} {{g|ku|kurator}} #* {{bêmînak|nb}} === Çavkanî === {{rûpela wergerê|nb|kurator}} == {{ziman|nn}} == === Navdêr === {{navdêr|nn|z=n}} # {{mijar|nn|pîşe}} {{g|ku|kurator}} #* {{bêmînak|nn}} === Çavkanî === {{rûpela wergerê|nn|kurator}} == {{ziman|pl}} == === Navdêr === {{navdêr|pl|z=n}} # {{mijar|pl|pîşe}} {{g|ku|kurator}} #* {{bêmînak|pl}} === Çavkanî === {{rûpela wergerê|pl|kurator}} == {{ziman|crh}} == === Navdêr === {{navdêr|crh}} # {{mijar|crh|pîşe}} {{g|ku|kurator}} #* {{bêmînak|crh}} === Çavkanî === {{rûpela wergerê|crh|kurator}} c66a8sbbmr0ka8q8a8yyvwl8eibz3id sewda 0 45349 6328714 6317628 2026-08-10T18:14:29Z Bibliophile 1215 nimûneya Fêrik di behsa aqil de be gerek, ya din şaş e. 6328714 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[evîn]], [[dildarî]], [[dilketin]], [[eşq]], [[viyan]], [[hez]]kirina [[zêde]] # [[aqil]], [[fêm û feraset]] #* {{jêder|ku|jêgirtin=Got: – Beytûyo, por û guliyên min qumaş in, yêngên mîna te bê '''sewda''' û bê hiş in:<br />sîng û berê min zozan e, ez çavreş im, ne ya te me, para lawikê xwe yê keleş im.<br />got berzeqê û bi awir li min nihêrî, awirên wê li min bûn mîna kêr û dirrî.<br />cotê guliyan bûn cotek mar û li min venîn, saza min ket, tilî û pêçiyên min lerizîn.<br />mêrg û geliyên Elegezê girtin dûman, niza’m ji çi re gelo bihar bû zivistan|''Gozel'', Fêrîkê Ûsiv}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[sewdaser]] * [[sewdaserî]] * [[sewdaserîtî]] * [[sewdasertî]] * [[sewdayî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|سودا}}, {{W+|fa|عشق}} * {{Z|en}}: {{W+|en|passionate}} * {{Z|tr}}: {{W+|tr|sevda}} {{werger-bin}} fcexxak675p9pdfjnciave01zcxmh8s 6328715 6328714 2026-08-10T18:14:53Z Bibliophile 1215 /* Navdêr */ 6328715 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[evîn]], [[dildarî]], [[dilketin]], [[eşq]], [[viyan]], [[hez]]kirina [[zêde]] # [[aqil]], [[hiş]], [[fêm û feraset]] #* {{jêder|ku|jêgirtin=Got: – Beytûyo, por û guliyên min qumaş in, yêngên mîna te bê '''sewda''' û bê hiş in:<br />sîng û berê min zozan e, ez çavreş im, ne ya te me, para lawikê xwe yê keleş im.<br />got berzeqê û bi awir li min nihêrî, awirên wê li min bûn mîna kêr û dirrî.<br />cotê guliyan bûn cotek mar û li min venîn, saza min ket, tilî û pêçiyên min lerizîn.<br />mêrg û geliyên Elegezê girtin dûman, niza’m ji çi re gelo bihar bû zivistan|''Gozel'', Fêrîkê Ûsiv}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[sewdaser]] * [[sewdaserî]] * [[sewdaserîtî]] * [[sewdasertî]] * [[sewdayî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|سودا}}, {{W+|fa|عشق}} * {{Z|en}}: {{W+|en|passionate}} * {{Z|tr}}: {{W+|tr|sevda}} {{werger-bin}} czfj98ce2c0l224rbcfok54uuo69z3k albatros 0 45353 6328735 6261744 2026-08-10T22:35:59Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328735 wikitext text/x-wiki {{h-bnr|Albatros}} == {{ziman|ku}} == === Navdêr === [[Wêne:Diomedea_exulans_in_flight_-_SE_Tasmania.jpg|thumb|250px|albatrosek]] {{navdêr|ku|z=?}} # {{f|ku|balinde}} Hin [[cûn]] [[teyr]]ên [[spî]] yên [[deryayî]] yên [[gir]] û [[bask]][[pehn]] in. #* {{jêder-malper|ku|jêgirtin=Hemdemê Seyda Cegerxwîn helbestkarê Amerika-Latînî, "'''albatrosê'''" helbesta Şîlî Nerûda ne di destpêkê de; piştî demeke dûdirêj navê Pablo Nerûda li binê helbesta xwe bi cih dike.|malper=Diyarname.com|dîrok=9/2007|nivîskar={{w|Arjen Arî}}|sernav=Sê nav: Hesarî, Seyda, Cegerxwîn}} ==== Bi alfabeyên din ==== * {{ku-ar|ئالباترۆس}} ==== Formên alternatîv ==== * [[elbetros]] * [[elbatros]] ==== Etîmolojî ==== Hevreha tirkî ''albatros'', farisî {{g|fa|آلباتروس}} (albatros) {{ji|en|ku|albatross}} ji {{ji|pt}} [[albatroz]] (albatros) ji guherandina [[alcatraz]] ([[qetres]]) {{ji|ar|ku|القطرس|tr=el-qetres}} di bin tesîra [[albus]] ([[spî]]) ya latînî de. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|albatros}} * {{Z|de}}: {{W+|de|Albatros|m}} * {{Z|br}}: {{W-|br|albatros}} * {{Z|da}}: {{W-|da|albatros|c}} * {{Z|ar}}: {{W-|ar|بطروس}}, {{W+|ar|قطرس}} * {{Z|eo}}: {{W-|eo|albatroso}} * {{Z|fi}}: {{W+|fi|albatrossi}} * {{Z|fr}}: {{W+|fr|albatros}} * {{Z|nl}}: {{W+|nl|albatros}} * {{Z|en}}: {{W+|en|albatross}}, {{W+|en|gannet|guman=erê}} * {{Z|it}}: {{W+|it|albatro}} * {{Z|is}}: {{W-|is|albatrosi}} * {{Z|hu}}: {{W+|hu|albatrosz}}; {{W+|hu|viharmadár}} * {{Z|sv}}: {{W+|sv|albatross}} * {{Z|tr}}: {{W+|tr|albatros}} {{werger-bin}} == {{ziman|fr}} == === Bilêvkirin === * {{IPA|fr|/al.ba.tros/}} * {{deng|fr|Fr-albatros.ogg|Deng (Parîs)}} "un albatros" === Navdêr === {{navdêr|fr|z=n|p=albatros}} # {{f|fr|balinde}} {{g|ku|albatros}} #* {{bêmînak|fr}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-albatros.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|balinde}} {{g|ku|albatros}} #* {{bêmînak|tr}} nkr7jqi1gyw17gfb1yj18ol6ft28laf 6328736 6328735 2026-08-10T22:38:11Z Wikihez 7344 /* Etîmolojî */ 6328736 wikitext text/x-wiki {{h-bnr|Albatros}} == {{ziman|ku}} == === Navdêr === [[Wêne:Diomedea_exulans_in_flight_-_SE_Tasmania.jpg|thumb|250px|albatrosek]] {{navdêr|ku|z=?}} # {{f|ku|balinde}} Hin [[cûn]] [[teyr]]ên [[spî]] yên [[deryayî]] yên [[gir]] û [[bask]][[pehn]] in. #* {{jêder-malper|ku|jêgirtin=Hemdemê Seyda Cegerxwîn helbestkarê Amerika-Latînî, "'''albatrosê'''" helbesta Şîlî Nerûda ne di destpêkê de; piştî demeke dûdirêj navê Pablo Nerûda li binê helbesta xwe bi cih dike.|malper=Diyarname.com|dîrok=9/2007|nivîskar={{w|Arjen Arî}}|sernav=Sê nav: Hesarî, Seyda, Cegerxwîn}} ==== Bi alfabeyên din ==== * {{ku-ar|ئالباترۆس}} ==== Formên alternatîv ==== * [[elbetros]] * [[elbatros]] ==== Etîmolojî ==== {{navmiletî|ku}}. Taliyê ji {{ji|en|ku|albatross}} ji {{ji|pt|ku|albatroz|t=albatros}} ji guherandina {{q|pt|alcatraz|t=[[qetres]]}} ji {{ji|ar|ku|القطرس|tr=el-qetres}} di bin tesîra {{q|la|albus|t=[[spî]]}} ya latînî de. Hevreha {{hv|fa|آلباتروس|tr=albatros}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|albatros}} * {{Z|de}}: {{W+|de|Albatros|m}} * {{Z|br}}: {{W-|br|albatros}} * {{Z|da}}: {{W-|da|albatros|c}} * {{Z|ar}}: {{W-|ar|بطروس}}, {{W+|ar|قطرس}} * {{Z|eo}}: {{W-|eo|albatroso}} * {{Z|fi}}: {{W+|fi|albatrossi}} * {{Z|fr}}: {{W+|fr|albatros}} * {{Z|nl}}: {{W+|nl|albatros}} * {{Z|en}}: {{W+|en|albatross}}, {{W+|en|gannet|guman=erê}} * {{Z|it}}: {{W+|it|albatro}} * {{Z|is}}: {{W-|is|albatrosi}} * {{Z|hu}}: {{W+|hu|albatrosz}}; {{W+|hu|viharmadár}} * {{Z|sv}}: {{W+|sv|albatross}} * {{Z|tr}}: {{W+|tr|albatros}} {{werger-bin}} == {{ziman|fr}} == === Bilêvkirin === * {{IPA|fr|/al.ba.tros/}} * {{deng|fr|Fr-albatros.ogg|Deng (Parîs)}} "un albatros" === Navdêr === {{navdêr|fr|z=n|p=albatros}} # {{f|fr|balinde}} {{g|ku|albatros}} #* {{bêmînak|fr}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-albatros.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|balinde}} {{g|ku|albatros}} #* {{bêmînak|tr}} srkl3bfrj3p2jd361gmt617hyu5oyok 6328737 6328736 2026-08-10T22:38:34Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328737 wikitext text/x-wiki {{h-bnr|Albatros}} == {{ziman|ku}} == === Navdêr === [[Wêne:Diomedea_exulans_in_flight_-_SE_Tasmania.jpg|thumb|250px|albatrosek]] {{navdêr|ku|z=?}} # {{f|ku|balinde}} Hin [[cûn]] [[teyr]]ên [[spî]] yên [[deryayî]] yên [[gir]] û [[bask]][[pehn]] in. #* {{jêder-malper|ku|jêgirtin=Hemdemê Seyda Cegerxwîn helbestkarê Amerika-Latînî, "'''albatrosê'''" helbesta Şîlî Nerûda ne di destpêkê de; piştî demeke dûdirêj navê Pablo Nerûda li binê helbesta xwe bi cih dike.|malper=Diyarname.com|dîrok=9/2007|nivîskar={{w|Arjen Arî}}|sernav=Sê nav: Hesarî, Seyda, Cegerxwîn}} ==== Bi alfabeyên din ==== * {{ku-ar|ئالباترۆس}} ==== Formên alternatîv ==== * [[elbetros]] * [[elbatros]] ==== Etîmolojî ==== {{navmiletî|ku}}. Taliyê ji {{ji|en|ku|albatross}} ji {{ji|pt|ku|albatroz|t=albatros}} ji guherandina {{q|pt|alcatraz|t=[[qetres]]}} ji {{ji|ar|ku|القطرس|tr=el-qetres}} di bin tesîra {{q|la|albus|t=[[spî]]}} ya latînî de. Hevreha {{hv|fa|آلباتروس|tr=albatros}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|albatros}} * {{Z|de}}: {{W+|de|Albatros|m}} * {{Z|br}}: {{W-|br|albatros}} * {{Z|da}}: {{W-|da|albatros|c}} * {{Z|ar}}: {{W-|ar|بطروس}}, {{W+|ar|قطرس}} * {{Z|eo}}: {{W-|eo|albatroso}} * {{Z|fi}}: {{W+|fi|albatrossi}} * {{Z|fr}}: {{W+|fr|albatros}} * {{Z|nl}}: {{W+|nl|albatros}} * {{Z|en}}: {{W+|en|albatross}}, {{W+|en|gannet|guman=erê}} * {{Z|it}}: {{W+|it|albatro}} * {{Z|is}}: {{W-|is|albatrosi}} * {{Z|hu}}: {{W+|hu|albatrosz}}; {{W+|hu|viharmadár}} * {{Z|sv}}: {{W+|sv|albatross}} * {{Z|tr}}: {{W+|tr|albatros}} {{werger-bin}} == {{ziman|fr}} == === Bilêvkirin === * {{IPA|fr|/al.ba.tros/}} * {{deng|fr|Fr-albatros.ogg|nivîs=un albatros|dever=Parîs}} === Navdêr === {{navdêr|fr|z=n|p=albatros}} # {{f|fr|balinde}} {{g|ku|albatros}} #* {{bêmînak|fr}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-albatros.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|balinde}} {{g|ku|albatros}} #* {{bêmînak|tr}} 0e7hxxu0hwge9455txcgznhc42i75ip 6328738 6328737 2026-08-10T22:38:55Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328738 wikitext text/x-wiki {{h-bnr|Albatros}} == {{ziman|ku}} == === Navdêr === [[Wêne:Diomedea_exulans_in_flight_-_SE_Tasmania.jpg|thumb|250px|albatrosek]] {{navdêr|ku|z=?}} # {{f|ku|balinde}} Hin [[cûn]] [[teyr]]ên [[spî]] yên [[deryayî]] yên [[gir]] û [[bask]][[pehn]] in. #* {{jêder-malper|ku|jêgirtin=Hemdemê Seyda Cegerxwîn helbestkarê Amerika-Latînî, "'''albatrosê'''" helbesta Şîlî Nerûda ne di destpêkê de; piştî demeke dûdirêj navê Pablo Nerûda li binê helbesta xwe bi cih dike.|malper=Diyarname.com|dîrok=9/2007|nivîskar={{w|Arjen Arî}}|sernav=Sê nav: Hesarî, Seyda, Cegerxwîn}} ==== Bi alfabeyên din ==== * {{ku-ar|ئالباترۆس}} ==== Formên alternatîv ==== * [[elbetros]] * [[elbatros]] ==== Etîmolojî ==== {{navmiletî|ku}}. Taliyê ji {{ji|en|ku|albatross}} ji {{ji|pt|ku|albatroz|t=albatros}} ji guherandina {{q|pt|alcatraz|t=[[qetres]]}} ji {{ji|ar|ku|القطرس|tr=el-qetres}} di bin tesîra {{q|la|albus|t=[[spî]]}} ya latînî de. Hevreha {{hv|fa|آلباتروس|tr=albatros}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|albatros}} * {{Z|de}}: {{W+|de|Albatros|m}} * {{Z|br}}: {{W-|br|albatros}} * {{Z|da}}: {{W-|da|albatros|c}} * {{Z|ar}}: {{W-|ar|بطروس}}, {{W+|ar|قطرس}} * {{Z|eo}}: {{W-|eo|albatroso}} * {{Z|fi}}: {{W+|fi|albatrossi}} * {{Z|fr}}: {{W+|fr|albatros}} * {{Z|nl}}: {{W+|nl|albatros}} * {{Z|en}}: {{W+|en|albatross}}, {{W+|en|gannet|guman=erê}} * {{Z|it}}: {{W+|it|albatro}} * {{Z|is}}: {{W-|is|albatrosi}} * {{Z|hu}}: {{W+|hu|albatrosz}}; {{W+|hu|viharmadár}} * {{Z|sv}}: {{W+|sv|albatross}} * {{Z|tr}}: {{W+|tr|albatros}} {{werger-bin}} == {{ziman|fr}} == === Bilêvkirin === * {{IPA|fr|/al.ba.tros/}} * {{deng|fr|Fr-albatros.ogg|nivîs=un albatros|dever=Parîs}} === Navdêr === {{navdêr|fr|z=n|p=albatros}} # {{f|fr|balinde}} {{g|ku|albatros}} #* {{bêmînak|fr}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-albatros.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|balinde}} {{g|ku|albatros}} #* {{bêmînak|tr}} edzzcobvi155eo6egecktlnou13l1nr 6328775 6328738 2026-08-11T00:25:12Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328775 wikitext text/x-wiki {{h-bnr|Albatros}} == {{ziman|ku}} == === Navdêr === [[Wêne:Diomedea_exulans_in_flight_-_SE_Tasmania.jpg|thumb|250px|albatrosek]] {{navdêr|ku|z=?}} # {{f|ku|balinde}} Hin [[cûn]] [[teyr]]ên [[spî]] yên [[deryayî]] yên [[gir]] û [[bask]][[pehn]] in. #* {{jêder-malper|ku|jêgirtin=Hemdemê Seyda Cegerxwîn helbestkarê Amerika-Latînî, "'''albatrosê'''" helbesta Şîlî Nerûda ne di destpêkê de; piştî demeke dûdirêj navê Pablo Nerûda li binê helbesta xwe bi cih dike.|malper=Diyarname.com|sal=9/2007|nivîskar={{w|Arjen Arî}}|sernav=Sê nav: Hesarî, Seyda, Cegerxwîn}} ==== Bi alfabeyên din ==== * {{ku-ar|ئالباترۆس}} ==== Formên alternatîv ==== * [[elbetros]] * [[elbatros]] ==== Etîmolojî ==== {{navmiletî|ku}}. Taliyê ji {{ji|en|ku|albatross}} ji {{ji|pt|ku|albatroz|t=albatros}} ji guherandina {{q|pt|alcatraz|t=[[qetres]]}} ji {{ji|ar|ku|القطرس|tr=el-qetres}} di bin tesîra {{q|la|albus|t=[[spî]]}} ya latînî de. Hevreha {{hv|fa|آلباتروس|tr=albatros}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|albatros}} * {{Z|de}}: {{W+|de|Albatros|m}} * {{Z|br}}: {{W-|br|albatros}} * {{Z|da}}: {{W-|da|albatros|c}} * {{Z|ar}}: {{W-|ar|بطروس}}, {{W+|ar|قطرس}} * {{Z|eo}}: {{W-|eo|albatroso}} * {{Z|fi}}: {{W+|fi|albatrossi}} * {{Z|fr}}: {{W+|fr|albatros}} * {{Z|nl}}: {{W+|nl|albatros}} * {{Z|en}}: {{W+|en|albatross}}, {{W+|en|gannet|guman=erê}} * {{Z|it}}: {{W+|it|albatro}} * {{Z|is}}: {{W-|is|albatrosi}} * {{Z|hu}}: {{W+|hu|albatrosz}}; {{W+|hu|viharmadár}} * {{Z|sv}}: {{W+|sv|albatross}} * {{Z|tr}}: {{W+|tr|albatros}} {{werger-bin}} == {{ziman|fr}} == === Bilêvkirin === * {{IPA|fr|/al.ba.tros/}} * {{deng|fr|Fr-albatros.ogg|nivîs=un albatros|dever=Parîs}} === Navdêr === {{navdêr|fr|z=n|p=albatros}} # {{f|fr|balinde}} {{g|ku|albatros}} #* {{bêmînak|fr}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-albatros.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|balinde}} {{g|ku|albatros}} #* {{bêmînak|tr}} 3qe7ryi0hqrcpcl9syq9aahexreekfv dilbij 0 45403 6328916 6305262 2026-08-11T11:30:40Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328916 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|dil|bij}} === Navdêr === {{navdêr|ku|z=n}} # [[evîndar]], [[hezker]], [[aşiq]], [[sewdayî]] #* {{jêder|ku|jêgirtin=Hemî kes '''dilbijê''' wê bejn û bala wek neya avî<br>Tenê ê ko perîşan û ceger xwîn maye Seyda ye|{{w|Cegerxwîn}}}} #* {{jêder-pirtûk|ku|jêgirtin=tu şêrgelê xwe nadî bi kehramin<br>'''dilbijê''' bejn û bala wî me ez îro?|nivîskar={{w|Alan Pîrê}}|sernav=Kum Soro|weşanxane=Na Yayınları|sal=2018|rûpel=29|isbn=9786059017787}} #* {{jêder-malper|ku|jêgirtin=Dibe ku em '''dilbijê''' bûka şiîrê bin û bixwazin zûbizû bi dîdara çavê me ronî bibe.|nivîskar={{w|Hemeseîd Hesen}}|sernav=Çexov karakterekî nemir afirandiye|url=https://www.rudaw.net/kurmanci/culture/10052016|malper=rudaw.net|dîrok=10.05.2016}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Jê ==== * [[dilbijî]] * [[dilbijîtî]] ==== Etîmolojî ==== [[dil]] + [[bijîn]] - [[-în]] ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|dilbij}} {{rengdêr|ku}} # [[evîndar]], [[hezker]], [[aşiq]], [[sewdayî]] #* {{jêder|ku|jêgirtin=Bayê dilistana min î '''dilbij''' şa dike gul û çîçekên gulîstana dilistana min...|M. Tunçyuzlu: ''Dibistana dîlgirtî'', {{w|Azadiya Welat}}, Hj. 1586, 16.09.2011, r. 10}} #* {{jêder-malper|ku|jêgirtin=Çiqas meyê hêvî daba nifşê nûhatî , nifşê '''dilbij''' û dilşewat ji çand , tore û zimanê kurdî re!|nivîskar=Ciwan Dêrikî|sernav=Zarokên kurd û pişaftin|url=http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=2667|malper=welateme.net|dîrok=2011-9-22}} #* {{jêder-malper|ku|jêgirtin=Dil diguve, dil diguve... kurmekî bêdev e; mîrato çi jî '''dilbij''' e, dimije xwînê!|nivîskar=yeqîn h.|sernav=Êvareke reş û spî|url=http://diyarname.com/article.php?Idx=582|malper=diyarname.com|dîrok=20.05.2009}} # [[arezûmend]], [[meyildar]], [[mereqdar]] #* {{bêmînak|ku}} ==== Jê ==== * [[dilbijî]] * [[dilbijîtî]] ==== Etîmolojî ==== [[dil]] + [[bijîn]] - [[-în]] ==== Werger ==== {{werger-ser}} {{werger-bin}} je9vn93d9g9cjpbfp6a7pykgh4elc5b bestel 0 45518 6328804 6299229 2026-08-11T00:28:28Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328804 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[tabû]], tişta/ê ku [[şerm]] e yan [[qedexe]] ye ku têê [[bas]]kirin #* {{jêder-malper|ku|jêgirtin=Carê meseley nîştimanî û neteweyî le lay ew hizbe awête bûwe (têkelbûn) legell ayîn da, înca her le seretay hatine ser hukmîyanewe le dewrî pêşûyan da, '''bestellekî''' (tabû) nawhênanî Kurdistan û çareserkirdinî meseley kurdîyan şikand.|nivîskar=Erselan Bayîz|sernav=Siyasetî DTP û serincêk|malper=Nefel.com|sal=9/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[bestell]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|eo}}: {{W+|eo|tabuo}} * {{Z|fo}}: {{W-|fo|halgidómur}} * {{Z|fi}}: {{W+|fi|tabu}} * {{Z|fr}}: {{W+|fr|tabou}} * {{Z|nl}}: {{W+|nl|taboe}} * {{Z|en}}: {{W+|en|taboo}} * {{Z|hu}}: {{W+|hu|tabu}} * {{Z|pt}}: {{W+|pt|tabu}} * {{Z|srn}}: {{W-|srn|trefu}} * {{Z|es}}: {{W+|es|tabú}} * {{Z|tr}}: {{W+|tr|tabu}} {{werger-bin}} oey5pingavk0pizmc79us2l7aadx6lg hişîn 0 45774 6328985 6309357 2026-08-11T11:51:12Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328985 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|ku|jêgirtin=بحرا رجز بو چه خوش مرفل<br>اخضر چه کسکه احمر خو صوره<br>ازرق '''هشینه''' جورب چه گوره|tr=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î}}|''{{w|Nûbihara biçûkan}}'', 1683|sc=Arab}} # {{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}} iunmmn6k4zr83sq5m5t9iww0uelh6fx firnik 0 46014 6328961 6306731 2026-08-11T11:50:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328961 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-firnik.wav|Deng|dever=Amed}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}}, {{bilêv|r|req}}, {{bilêv|k|nerm}} # [[herdu]] [[kun]]ên [[difin]], [[cot]]e-[[qul]]ên [[poz]]ê, [[difnik]], [[difink]] #* {{jêder-malper|ku|jêgirtin=Ew kûçik û tajiyên ko me bi zimanên wan “siyaset” dikir, îroj jahr û quzilqurt ji devên wan diherikin, di pêxîla zar û zêçên me de dibin bombe û teqîn, di beroş û sîtilên me de dibin DDT û [[TNT]]; di çavên dayikên me de dibin du dulop hêsirên qerisî, di '''firnikên''' bav û bapîrên me de dibin keservedanên nefretê û li sikakên îxanetê dibin qêrîneke bêsûc û bêguneh.|nivîskar=Enwer Karahan|sernav=Di siyasetê de xelitînekirin quretî ye û qebûlnekirina xelitiyan jî serkorî û minafiqî ye|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=28&RubricNr=&ArticleNr=2281|malper=Nefel.com|sal=7/2007}} #* {{jêder|ku|jêgirtin=Mûyên canê wî lê gij bûbûn, çavên wî fireh dibûn û '''firnikên''' pozê wî radibûn û dadiketin.|{{Jêgirtin/Firat Cewerî/Girtî}}}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[firrnik]] * [[firnîk]] * [[firrnîk]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[firin]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Nasenloch|n}} * {{Z|cs}}: {{W|cs|nozdra|f}} * {{Z|zh}}: {{W+|zh|鼻孔}} * {{Z|ar}}: {{W+|ar|منخر}} * {{Z|eo}}: {{W+|eo|naztruo}} * {{Z|fa}}: {{W+|fa|سوراخ بینی}}, {{W+|fa|سوراخ بینی}} * {{Z|fi}}: {{W+|fi|sierain}} * {{Z|fr}}: {{W+|fr|narine}} * {{Z|nl}}: {{W|nl|neusgat|n}} * {{Z|he}}: {{W|he|אף|cuda=אַף}} * {{Z|ang}}: {{W-|ang|nosþyrl|n}} * {{Z|en}}: {{W+|en|nostril}}, {{W|en|bogey}}, {{W+|en|nostril}} * {{Z|it}}: {{W|it|narice|f}} * {{Z|ca}}: {{W|ca|nariu|m}} * {{Z|la}}: {{W|la|naris|f}} * {{Z|hu}}: {{W+|hu|orrlyuk}} * {{Z|pl}}: {{W|pl|nozdrze|n}}, [[nozdrza]] {{pl}} * {{Z|ru}}: {{W|ru|ноздря|f}} * {{Z|es}}: {{W|es|narina|f}} * {{Z|sv}}: {{W+|sv|näsborre}} * {{Z|tr}}: {{W+|tr|burun deliği}} * {{Z|uk}}: {{W+|uk|ніздря}} * {{Z|vi}}: {{W+|vi|lỗ mũi}} * {{Z|el}}: {{W+|el|ρουθούνι}} {{werger-bin}} olqsgevigcdax8md7j45y8s70are60p grek 0 46240 6328968 6246476 2026-08-11T11:50:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328968 wikitext text/x-wiki {{bnr-h|Grek}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # [[yûnanî]], [[milet]]ê [[Yewnanistan]]ê anku [[Grekistan]]ê #* {{jêder-malper|ku|jêgirtin=Dema em xwe bera çaxa antîka '''Grekan''' dide û dinerin bê zanyar û feylezofên mezin, hîna wê demê bi çi girîngiyê ziman vegotiye, mirov matmayiyê nêzîkatiya mirovên roja me li hember ziman, dimîne.|nivîskar=Siyamend Sîpan Ugurlu|sernav=Bêzarbûyîna Ziman|malper=Xelkedondurma.com|sal=9/2007}} ==== Formên alternatîv ==== * [[girek]] ==== Bide ber ==== * [[grêk]] ==== Jê ==== * [[Grekistan]] * [[grekistanî]] * [[grekî]] * [[grekîtî]] ==== Werger ==== {{werger-ser}} {{werger-bin}} s1d5744vehj323113gswhufx9yrbcmp kurrîn 0 46506 6329037 5017608 2026-08-11T11:53:07Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329037 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{rastnivîs|kurîn}} #* {{jêder-malper|ku|jêgirtin=Bi hatina islamiyetê re devên jinan hatin klît û morkirin. Pê re çav jî li jinan hatin morkirin!.. Û jin di nav sedsalan de çavtirsî bûn. Mêran zor û pêkutiyê mîna şûrê Demokles li ser serê jinan girt. Mêr bû “axa” yê “harem”ê. Tu mafekî jinê tune bû ku bikaribe li dijî, an li ber “mêr” biaxive û nêrînên xwe, daxwaz û armancên xwe bêje. Ji xwe nedikarî armanceka “jinê” hebe jî. Ji bo jiyanê yek sedemeke jinê bi tenê hebû ku ew jî koletî û xizmeta “mêr” bû. Erka jinê ew bû ku zarokên '''kurrîn''' ji mêran re bînin û xizmeteke baş bidine wan. Ev êş, zor û zilm li ser jinê bi hezaran salan waha berdevam kir û hîn jî bi temamî neşikestiye. Cî bi cî, bi giranî jî didome.|nivîskar=Bîrgul Özbariş ARDA|sernav=Bersiva [bo] Eskerê Boyîk: Dema Hareman derbas bû!|malper=Amidakurd.com|sal=11/2007}} hr2i729air41222bgikheoyoj7rp9dv patetîk 0 46747 6328727 6135872 2026-08-10T21:37:08Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6328727 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|patetîk}} {{rengdêr|ku}} # Kesa/ê yan tiştê ku [[dil pê şewitîn|dilê mirovî pê dişewite]]. #: {{hevmane|ku|dilsoj|rezîl|riswa|xemgîr|xemder|emosyonal}} #* {{bêmînak|ku}} ==== Jê ==== * {{g|ku|patetîkî}} ==== Etîmolojî ==== Ji {{deyn|fr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|bemittleidenswert}} * {{Z|cs}}: {{W+|cs|dojemný|m}} * {{Z|et}}: {{W-|et|liigutav}} * {{Z|fi}}: {{W+|fi|säälittävä}} * {{Z|fr}}: {{W+|fr|pathétique}} * {{Z|he}}: {{W+|he|קורע לב|m}} * {{Z|en}}: {{W+|en|pathetic}} * {{Z|hu}}: {{W+|hu|szánalmas}} * {{Z|pt}}: {{W+|pt|patético}} * {{Z|ro}}: {{W+|ro|patetic}}, {{W-|ro|emoţionant}} * {{Z|sl}}: {{W+|sl|ganljiv}} * {{Z|tr}}: {{W+|tr|patetik}}, {{W+|tr|acınacak}}, {{W+|tr|acıklı}} {{werger-bin}} nhuclqr6o8mei5a4icmiwp69ok0ap9d 6328728 6328727 2026-08-10T21:38:13Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328728 wikitext text/x-wiki {{h-bnr|patetik}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|patetîk}} {{rengdêr|ku}} # Kesa/ê yan tiştê ku [[dil pê şewitîn|dilê mirovî pê dişewite]]. #: {{hevmane|ku|dilsoj|rezîl|riswa|xemgîr|xemder|emosyonal}} #* {{bêmînak|ku}} ==== Jê ==== * {{g|ku|patetîkî}} ==== Etîmolojî ==== Ji {{deyn|fr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|bemittleidenswert}} * {{Z|cs}}: {{W+|cs|dojemný|m}} * {{Z|et}}: {{W-|et|liigutav}} * {{Z|fi}}: {{W+|fi|säälittävä}} * {{Z|fr}}: {{W+|fr|pathétique}} * {{Z|he}}: {{W+|he|קורע לב|m}} * {{Z|en}}: {{W+|en|pathetic}} * {{Z|hu}}: {{W+|hu|szánalmas}} * {{Z|pt}}: {{W+|pt|patético}} * {{Z|ro}}: {{W+|ro|patetic}}, {{W-|ro|emoţionant}} * {{Z|sl}}: {{W+|sl|ganljiv}} * {{Z|tr}}: {{W+|tr|patetik}}, {{W+|tr|acınacak}}, {{W+|tr|acıklı}} {{werger-bin}} 0f479dugkycqxn1og6rfls3albwhvdb ebedilebed 0 46776 6328939 6135887 2026-08-11T11:46:57Z Balyozbot 7867 /* Hoker */ sererastkirin 6328939 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[ebedî]], [[ebeden]], [[hetahetayî]], [[herherî]], [[bêdawî]], [[herheyî]], [[miebed]], <br>tişta/ê ku [[bi dawî hatin|bi dawî nayê]], <br>tişta/ê ku [[qedîn|naqede]], ta ebed, <br>tişta/ê ku [[xilas]] nabe, <br>tişta/ê ku [[mirin|namire]] #* {{jêder-malper|ku|jêgirtin=Sovyeta berê hilweşiya, dîwarê Berlînê hilweşiya, şerê sar nema, Sedam Hisên û Iraqa berê nema û tirk hê jî dibêjin qey Tirkiye û bakurê Kurdistanê heta '''ebedilebed''' dê ji tirkan tenê re bimîne û 25 milyon kurd dê ne xudanê welatê xwe bakurê Kurdistanê û şirîkê Tirkiyeyê jî bin.|nivîskar=Arif Zêrevan|sernav=Tirk tiştên jixwezêdetir dixwazin|malper=Nefel.com|sal=11/2007}} ==== Etîmolojî ==== Ji {{ar|ku}}: [[ebed]] + [[-el-]] + [[ebed]] ==== Jê ==== * [[ebedilebedî]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|ewig}} * {{Z|de}}: {{W|de|ewig}}, {{W|de|immer während}} * {{Z|eo}}: {{W|eo|eterna}} * {{Z|fi}}: {{W|fi|ikuinen}}, {{W|fi|loputon}}, {{W|fi|iankaikkinen}}, {{W|fi|päättymätön}} * {{Z|fr}}: {{W|fr|éternel}}, {{W|fr|permanent}}, {{W|fr|perpétuel}} * {{Z|nl}}: {{W|nl|eeuwig}} * {{Z|en}}: {{W|en|eternal}}, {{W|en|everlasting}}, {{W|en|perpetual}}, {{W|en|never-ending}} * {{Z|it}}: {{W|it|eterno}} * {{Z|is}}: {{W|is|æfinlegur}} * {{Z|la}}: {{W|la|aeternalis}}, {{W|la|aeternus}} * {{Z|ms}}: {{W|ms|abadi}} * {{Z|pt}}: {{W|pt|eterno}}, {{W|pt|imperecível}}, {{W|pt|perene}}, {{W|pt|perpétuo}} * {{Z|ru}}: {{W|ru|вечный}} * {{Z|srn}}: {{W|srn|teygo}} * {{Z|es}}: {{W|es|eterno}} * {{Z|sv}}: {{W|sv|evig}} * {{Z|tr}}: {{W|tr|ebedi}}, {{W|tr|sonsuz}}, {{W|tr|ölümsüz}} * {{Z|el}}: {{W|el|αιώνιος}} {{werger-bin}} tshr0t9hnh88du325aqirl9g0fva1d6 îrrasyonel 0 46781 6328994 6246301 2026-08-11T11:51:31Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328994 wikitext text/x-wiki {{ds|îrrasyonel|îrrasyonal}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|îrrasyonel}} {{rengdêr|ku}} # [[dûrî aqil]], ne [[rasyonel]], ne [[beraqil]], ne [[lojîk]], ne [[mantiqî]], ne li gor [[aqil]]î, [[bêhiş]], [[bêaqil]] #* {{jêder-malper|ku|jêgirtin=Em behsa daxwazên îrrasyonel yên tirkan û dewleta wan bikin.|nivîskar=Arif Zêrevan|sernav=Tirk tiştên jixwezêdetir dixwazin|malper=Nefel.com|sal=11/2007}} ==== Formên alternatîv ==== * [[îrasyonel]] * [[îrasyonal]] * [[îrrasyonal]] ==== Etîmolojî ==== Bi rêya fransî [[irrationnel]] ji yewnanî ==== Jê ==== * [[îrrasyonelane]] * [[îrrasyonelî]] * [[îrrasyonelîtî]] * [[îrrasyoneltî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|irrational#German}} * {{Z|fi}}: {{W+|fi|epälooginen}}, {{W+|fi|irrationaalinen}} * {{Z|fr}}: {{W+|fr|irrationnel}} * {{Z|nl}}: {{W+|nl|irrationeel}}, {{W+|nl|irrationele}}, {{W+|nl|onzinnig}}, {{W+|nl|onzinnige}}, {{W+|nl|onredelijk}}, {{W+|nl|onredelijke}} * {{Z|en}}: {{W+|en|irrational}} * {{Z|ja}}: [[不合理]] (fugōri) * {{Z|pl}}: {{W+|pl|nieracjonalny}}, {{W|pl|irracjonalny|m}} * {{Z|sv}}: {{W+|sv|irrationell}} * {{Z|te}}: [[అసంబద్ధము]] (asaMbaddhamu) * {{Z|tr}}: {{W+|tr|irrasyonel}} {{werger-bin}} j8hz1ieoi0hn2vx9328rcpn3sglxu4v behayî 0 46825 6328798 6298463 2026-08-11T00:27:34Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328798 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[dîn]]ek anku [[ol]]ek e ku li [[sedsal]]a 9ê (1800ê) li [[Îran]]ê [[ava]] bûye<br> û [[bawer]] dike ku Behaullah anku Mîrza Huseyn Elî [[pêxember]]ê Xwedê yê [[dawîn]] e #* {{jêder-malper|ku|jêgirtin=Serokwezîr Recep Tayyip Erdogan dibêje: "Ji min dipirsim ku ez çawa ji kurdan re dibêjim birayê min. Bêşik ezê bibêjim. Ma ew ne hemwelatiyên Komara Tirkiyeyê ne? Ew bira oldarê min, birayê min in. Ne tenê kurd, boşnak, çerkez jî birayê min in." Lê yên ku ne birayê oldar in?.. Ermen, rum, suryanî, '''bahaî''', [[ataîst]], [[budîst]] û yên din Recep Tayyip beg? Lê ew?|nivîskar=Hincal Uluc|wergêr=Diyarname.com|sernav=Ji welatê min dîmenên siyasetê... ji rojnameya tirkî Sabah|malper=Diyarname.com|sal=11/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[bahaî]] * [[bahayî]] * [[behaî]] ==== Hevmane ==== * [[nivîskî]] * [[standard]] ==== Jê ==== * [[behayîtî]] ==== Etîmolojî ==== Behaullah - [[-ul-]] - [[Elah]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: [[Bahai]] (religion and its followers) {{werger-bin}} === Navdêr === {{navdêr|ku|z=mn}} # kesa/ê ku ji wî [[dîn]]î [[bawer]] dike #* {{bêmînak|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|behayî}} {{rengdêr|ku}} # tişt û [[taybetmendî|taybetmendiyên]] wî [[dîn]]î #* {{bêmînak|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} gbvkm0l2msv1b16fxytfx8o3al5ji5s esfelisafilîn 0 46951 6328950 6306210 2026-08-11T11:49:28Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328950 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[bin]]ê [[dûjeh]] #* {{jêder-malper|ku|jêgirtin=Sedam Hisênî xwest barzaniyan rêke cehenemê û ew bi xwe çû '''esfelusafilînê'''|malper=Nefel.com|sal=11/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[esfelusafilîn]] ==== Etîmolojî ==== Ji {{ji|ar|ku}} (ji Qur'anê 95:5). ==== Werger ==== {{werger-ser}} {{werger-bin}} === Rengdêr === {{rengdêr|ku}} # [[nizmtirîn]] #* {{bêmînak|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} nwofcvgn1uthxpu80640l14pqd4dck1 mişext 0 46986 6329064 6326670 2026-08-11T11:54:03Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329064 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[aware]], [[derbider]], [[koçber]], [[penaber]], [[xerîb]], [[sirgûnkirî]], [[biyanî]] #* {{jêder-malper|ku|jêgirtin=Kurdistanek heye ji min wê de, her bihosta axa wê ji bo min pîroz, lê ez li ser sînga wê '''mişext''', ez li ser dilê wê derbider, navê min tê de kirine ‘terorîst’, kirine ‘[[şaqî]]’, kirine ‘eşqiya’...|nivîskar=Omer Dilsoz|sernav=Kurdistanek heye ji min wê de!|malper=Amidakurd.com|sal=11/2007}} # {{kontrol|rêz=erê|[[revok]], [[firar]]}} ==== Jê ==== {{kol3|ku|cure=Jê |mişextî |mişext kirin<pos:lêker> |mişext bûn<pos:lêker> |mişextkirin<pos:navdêr> |mişextbûn<pos:navdêr> |mişextkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji peyva mişeqtî, meşeqet ya {{ji|ar}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Exil}} {{nt}}, {{W|de|Ausreißer}} {{n}}, {{W|de|Verbannung}} {{mê}}, {{W|de|Zuwanderer|m|guman=erê}} * {{Z|ar}}: {{W|ar|الجالي}}, {{W|ar|مهاجر}} * {{Z|en}}: {{W|en|relegation}}, {{W|en|emigrant}}, {{W|en|expatiation}}, {{W|en|emigre|guman=erê}}, {{W|en|immigrant|guman=erê}}, {{W|en|straggler|guman=erê}}, * {{Z|tr}}: {{W|tr|hapishane kaçkını}}, {{W|tr|kaçak}}, {{W|tr|sürgün}}, {{W|tr|firarî}} {{werger-bin}} aybza742r7hqh2n6f6kwqzir84drmv1 namlî 0 47209 6329070 6312935 2026-08-11T11:54:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329070 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[navdar]], [[binavûdeng]], [[nasyar]], [[nas]]kirî, [[bernas]], [[niyas]], [[meşhûr]] #* {{jêder-malper|ku|jêgirtin=Divê kultureke pereyên hewante û rişwetê çênebe û mirovên kurd berhemdar bin, beşdarî bipêşdebirina pêşeroja neteweyê xwe bibin; hewante li kuçe û qahwexaneyan negerin û ji welatên Asya û Afrîkayê ji xwe re xulam û '''namliyan''' negirin.|nivîskar=Enwer Karahan|sernav=Du dîmen ji başûrê Kurdistanê û zarokên li ser sergoyên Diyarbekirê|malper=Nefel.com|sal=12/2007}} # [[berdestk]], [[xizmetkar]], [[xulam]], [[noker]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[namlîtî]] ==== Etîmolojî ==== Ji {{ji|tr|ku|namlı}} ji ''nam'' ([[nav]]) + [[-lı]] ([[bi-]], [[-dar]]) ==== Werger ==== {{werger-ser}} {{werger-bin}} eysywz2rocsktgfsww1khf1u9nujovo kêmûkurî 0 47495 6329018 6310919 2026-08-11T11:52:24Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329018 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}}, {{r-ya req}} # [[kêmasî]], [[êb]], [[qisûr]] #* {{jêder-malper|ku|jêgirtin=Bila mikur bêm ko min nekariye tiştekî binivîsim! Qanûneke baş e an xirab e, nizanim! Çi '''kêmûkuriyên''' wê hene nizanim! Ez ji ba xwe ve hest dikim ko dillerzêneka ne pêwist ketiye nav rojnamevanan û bê sebeb ew qanûn ji wan re bûye xem, çima? Ezê hewl bidim li xwarê şiroveya vê bikim.|nivîskar=Bedran Ehmed|sernav=Qanûna rojnamevaniyê derkeve çi ye û dernekeve çi ye|malper=Nefel.com|sal=12/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[kêmûkurrî]] ==== Etîmolojî ==== Ji {{qertaf|ku|kêm|-û-|kurî}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} g4wxsud55fayfv91f3teqj9geprbj73 kulîn 0 48117 6328742 6310702 2026-08-10T22:51:44Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328742 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|kulîn|form=negerguhêz|niha=kul|borî=kulî}} {{lêker|ku|c=x-ngh}}, {{k-ya nerm}} # wek [[kulek]] [[meşîn]], [[mîna]] [[seqet]]an [[bi rê ve çûn]] (ji ber ku [[pî]] [[êşîn|diêşe]]) #* {{bênimûne|ku}} ==== Tewandin ==== ''Lêker'': :-kul- ==== Bi alfabeyên din ==== * {{ku-ar|کولین}} ==== Jê ==== * [[kulek]] ==== Etîmolojî ==== Ji {{qertaf|ku|kul|-în}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|hinken}}, {{W|de|Hinken|guman=erê}}, {{W|de|lahmen|guman=erê}}, {{W|de|verkrüppeln|guman=erê}} * {{Z|fa}}: {{W|fa|لنگیدن}}, {{W|fa|انبار لبنیات|guman=erê}}, {{W|fa|سکته داشتن|guman=erê}}, {{W|fa|لنگیدن|guman=erê}} * {{Z|en}}: {{W|en|limp}}, {{W|en|dodder}}, {{W|en|hitch}}, {{W|en|hobble}}, {{W|en|cripple}} * {{Z|tr}}: {{W|tr|aksamak}}, {{W|tr|silip süpürmek}}, {{W|tr|topallamak}}, {{W|tr|topallayış}}, {{W|tr|silo|guman=erê}} {{werger-bin}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[meşîn]]a wek [[kulek]]î, [[birêveçûn]]a [[mîna]] [[seqet]]an (ji ber ku [[pî]] [[êşîn|diêşe]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{qertaf|ku|kul|-în}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|limping}} * {{Z|tr}}: {{W|tr|aksama}}, {{W|tr|topallama}}, {{W|tr|topallayış}} {{werger-bin}} {{clr}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[mitbex]],[[aşxane]],<br> [[ode]]ya ku [[xwarin]] tê ve tê [[parastin]] û [[çêkirin]] (û [[xwarin]]) #* {{jêder|ku|jêgirtin=Her der pê ve di nava gildînê de '''kulîna''' ku tu paqijî tê de tunebû, niha wê çawa pêşwazî bikirana li wê mêvana delal.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=65}}}} # hemû [[cûn]] û [[çeşît]]ên [[xwarin]]ên [[welat]]ekî yan [[dever]]ekê #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== bi rêya zimanekî nenas ji {{ji|la|ku|culīna}} (metbex) ku herwiha serekaniya [[kiln]] ya îngilîzî, [[kölna]] ya swêdî û [[kølle]] ya danmarkî ye jî. Yan jî [[hevreh]]a farisî {{g|fa|کلبه}} (kulbê: [[ode]]ya [[biçûk]], [[hucre]], [[çavî]]), hemû ji {{ji|el|ku|καλύβη}} (kalubê: (kulîn, odeya biçûk) ji [[καλύπτō]] (kalupto: [[niximandin]], [[nixamtin]]) ji {{ji|ine-pro|ku|-}} *[[kel-upio]] ([[niximandin]]) ji *[[kel-]] ([[parastin]]) ku herwiha serekaniya peyva "[[kîler]]" e. Ji heman rehê yûnanî herwiha: "[[gildik]], "[[kilîm]]". ==== Werger ==== {{werger-ser|''mitbex''}} * {{Z|en}}: {{W|en|kitchen}}, * {{Z|tr}}: {{W|tr|mutfak}}, {{W|tr|kiler}} {{werger-bin}} === Navdêr 3 === {{navdêr|ku|z=m}} # kuneke li [[hindav]] [[koçik]]î li [[ban]]î tê vekirin daku [[dûkêl]] tê re derbikeve <br> [[pencer]]eka an jî [[kun]]eka [[biçûk]] e û [[bilind]] e bo [[gemî|gemiyê]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|window}}, {{W|en|fenestra}}, {{W|en|smoke hole}},{{W|en|flue}}, {{W|en|louvre}}{{W|en|outlet}}, {{W|en|smoke hole}}, {{W|en|smokestack}} * {{Z|tr}}: {{W|tr|aş damı}}, {{W|tr|ocaklık}} {{werger-bin}} q63gts6aws0p03cpphfbn4bm0ovlg08 mexlûb 0 48530 6329057 6244581 2026-08-11T11:53:49Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329057 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|mexlûb}} {{rengdêr|ku}} # [[sexer]], [[têkçûyî]], [[binketî]], [[zorbirî]], [[xusirî]], [[xusaretbûyî]] #* {{jêder-malper|ku|jêgirtin=Benjamin dibêje mafên yên ko di dîrokê de '''mexlûp''' bûne li ser me heye.|nivîskar=Mihemed Evdila|sernav=Sal duhezar û x|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=3&RubricNr=&ArticleNr=2896|malper=Nefel.com|sal=1/2008}} ==== Formên alternatîv ==== * {{g|ku|maxlûb}} ==== Jê ==== {{kol2|ku|cure=Jê |mexlûb bûn<q:Lêker> |mexlûb kirin<q:Lêker> |mexlûbbûn<q:Navdêr> |mexlûbkirin<q:Navdêr> |mexlûbbûyî<q:Rengdêr> |mexlûbkirî<q:Rengdêr> |mexlûbî |mexlûbîtî |mexlûbtî }} ==== Etîmolojî ==== Ji {{deyn|ar|ku|مغلوب|tr=meẍlûb|w=[[têkçûyî]]}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|besiegt}} * {{Z|az}}: {{W-|az|məğlub}} * {{Z|cs}}: {{W-|cs|poražený}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|落敗|tr=luòbài}} * {{Z|ar}}: {{W-|ar|مَغْلُوب}} * {{Z|fi}}: {{W+|fi|lyöty}}, {{W+|fi|voitettu}}, {{W+|fi|hävinnyt}} * {{Z|fr}}: {{W+|fr|vaincu}} * {{Z|gl}}: {{W-|gl|vencido}}, {{W-|gl|derrotado}} * {{Z|enm}}: {{W-|enm|cravant}}, {{W-|enm|creaunt}}, {{W-|enm|recreaunt}} * {{Z|en}}: {{W+|en|defeated}} * {{Z|it}}: {{W+|it|sconfitto}} * {{Z|ca}}: {{W+|ca|vençut}}, {{W+|ca|derrotat}} * {{Z|ml}}: {{W-|ml|പരാജയപ്പെട്ട}}, {{W-|ml|തോറ്റ}} * {{Z|pl}}: {{W-|pl|pokonany|n}} * {{Z|pt}}: {{W+|pt|derrotado}} * {{Z|es}}: {{W+|es|vencido}}, {{W+|es|derrotado}} * {{Z|tr}}: {{W+|tr|mağlup}}, {{W+|tr|yenik}} {{werger-bin}} :{{werger çavkanî|en|defeated|oldid=75298987|beş=Ev qismê Wergerê}} ibiexyft0627fr9syqfh4vhg9l6uvs2 hedîse 0 48817 6328976 6308051 2026-08-11T11:50:50Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328976 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Tiştê [[qewimîn|qewimiye]] yan [[qewimîn|diqewime]], tişt [[rû dan|rû daye]] yan rû dide, tiştê bûye yan dibe. #: {{hevmane|ku|waqe|qewam|hewadîs|bûyer|bûniş|rûdan|qewimîn}} #* {{jêder-malper|ku|jêgirtin=Ji bo ku ez minaqeşeya absurd a ji rastî û zanistiyê dûr a li ser zimanê yekgirtî bidim, ji bilî vê îdîaya Dilşad Ebdurrehman (a ku bikaranîna kurmancî ê neteweyê kurd perçe bike) ez ê '''hedîseyekê''' biguhêzim, di serê min re derbas bûye.|nivîskar=Mûrad Ciwan|sernav=Israra "zimanê yekgirtî" stalînîzm e|malper=Netkurd.com|sal=2/2008}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|hadîse}} ==== Etîmolojî ==== {{etymon|ku|id=hedîse, waqe|bor|ar>حَادِثَة>hedîse|text=++|tree=1}} ==== Bide ber ==== * {{g|ku|hedîs}} ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|ngjarje|m}} * {{Z|de}}: {{W+|de|Ereignis|nt}}, {{W+|de|Geschehnis|nt}}, {{W+|de|Vorgang|n}} * {{Z|az}}: {{W+|az|hadisə}}, {{W+|az|olay}} * {{Z|ba}}: {{W-|ba|ваҡиға}}, {{W-|ba|хәл}}, {{W-|ba|осраҡ}} * {{Z|be}}: {{W+|be|падзе́я|m}} * {{Z|bn}}: {{W+|bn|ঘটনা}} * {{Z|bg}}: {{W+|bg|съби́тие|nt}} * {{Z|my}}: {{W+|my|စဉ်းဝါး}}, {{W+|my|အခြင်း}}, {{W+|my|အဖြစ်အပျက်}} * {{Z|cs}}: {{W+|cs|událost|m}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|事件|tr=si6 gin6-2}}, {{W-|yue|活動|tr=wut6 dung6}} *: {{Z|dng}}: {{W-|dng|сыҗян}} *: {{Z|hak}}: {{W-|hak|事件|tr=sṳ-khien}}, {{W-|hak|活動|tr=fa̍t-thung}} *: {{Z|cmn}}: {{W+|cmn|事件|tr=shìjiàn}}, {{W+|cmn|活動|tr=huódòng}} *: {{Z|nan}}: {{W+|nan|事件|tr=sū-kiāⁿ}}, {{W-|nan|活動|tr=oa̍h-tāng}} * {{Z|da}}: {{W+|da|begivenhed|g}}, {{W+|da|hændelse|g}} * {{Z|id}}: {{W+|id|kejadian}} * {{Z|ar}}: {{W-|ar|وَاقِعَة|m}}, {{W-|ar|حَادِثَة|m}} * {{Z|hy}}: {{W+|hy|դեպք}}, {{W+|hy|պատահար}}, {{W+|hy|դիպված}}, {{W+|hy|իրադարձություն}} * {{Z|eo}}: {{W-|eo|okazaĵo}} * {{Z|et}}: {{W-|et|sündmus}}, {{W-|et|seik}} * {{Z|fa}}: {{W+|fa|رویداد|tr=ruydâd}}, {{W+|fa|حادثه|tr=hâdese}}, {{W+|fa|رخداد|tr=roxdâd}} * {{Z|fi}}: {{W+|fi|tapahtuma}}, {{W+|fi|tapaus}} * {{Z|fr}}: {{W+|fr|événement|n}}, {{W+|fr|évènement|n}} * {{Z|gd}}: {{W-|gd|tuiteamas|n}} * {{Z|gl}}: {{W+|gl|evento|n}}, {{W+|gl|acontecemento|n}}, {{W+|gl|suceso|n}} * {{Z|ka}}: {{W-|ka|მოვლენა}}, {{W-|ka|შემთხვევა}} * {{Z|ht}}: {{W-|ht|evènman}} * {{Z|hi}}: {{W+|hi|घटना|m}}, {{W-|hi|वाक़या|n}}, {{W+|hi|हादिसा|n}} * {{Z|nl}}: {{W+|nl|gebeurtenis|m}}, {{W+|nl|evenement|nt}} * {{Z|he}}: {{W+|he|אירוע|n|tr=erúa|cuda=אירוע \ אֵרוּעַ}} * {{Z|io}}: {{W+|io|evento}}, {{W+|io|eventajo}} * {{Z|ang}}: {{W-|ang|ġelimp|nt}} * {{Z|en}}: {{W+|en|event}} * {{Z|it}}: {{W+|it|evento|n}}, {{W+|it|fatto|n}}, {{W+|it|accadimento|n}} * {{Z|is}}: {{W+|is|atburður|n}}, {{W+|is|atvik|nt}} * {{Z|ja}}: {{W+|ja|イベント|tr=ibento}}, {{W+|ja|出来事|tr=できごと, dekigoto}}, {{W+|ja|事件|tr=じ​けん, jiken}} * {{Z|ca}}: {{W+|ca|esdeveniment|n}} * {{Z|ky}}: {{W+|ky|окуя}} * {{Z|ko}}: {{W+|ko|행사}}, {{W+|ko|이벤트}}, {{W+|ko|사건}} * {{Z|lad}}: {{W-|lad|evenimiento}} * {{Z|la}}: {{W-|la|ēventum|nt}}, {{W-|la|fors|m}} * {{Z|lv}}: {{W-|lv|notikums|n}}, {{W-|lv|gadījums|n}} * {{Z|lo}}: {{W+|lo|ເຫດການ|tr=hēt kān}} * {{Z|lt}}: {{W+|lt|įvykis|n}}, {{W-|lt|atsitikimas|n}}, {{W-|lt|renginys|n}}, {{W-|lt|atvejis|n}} * {{Z|khb}}: {{W-|khb|ᦃᦸᧉᦂᦱᧃ}} * {{Z|mk}}: {{W-|mk|настан|n}}, {{W-|mk|збиднување|nt}} * {{Z|ms}}: {{W+|ms|peristiwa}} * {{Z|gv}}: {{W-|gv|cruinnaght|m}} * {{Z|mi}}: {{W-|mi|taiopenga}}, {{W-|mi|pureitanga}}, {{W-|mi|takunetanga}} * {{Z|hu}}: {{W+|hu|esemény}}, {{W+|hu|történés}} * {{Z|mn}}: *: Kirîlî: {{W+|mn|явдал}}, {{W-|mn|үйл явдал}} * {{Z|no}}: {{W-|no|programpost|n}} *: {{Z|nb}}: {{W+|nb|hendelse|n}}, {{W+|nb|begivenhet|n|m}} * {{Z|oc}}: {{W+|oc|eveniment|n}} * {{Z|ug}}: {{W-|ug|ۋەقە}}, {{W-|ug|ھادىسە}} * {{Z|uz}}: {{W+|uz|voqea}}, {{W+|uz|hodisa}} * {{Z|ps}}: {{W-|ps|رویداد|m|tr=roydā́d}}, {{W-|ps|واقعه|n|tr=wāqe'á}}, {{W+|ps|حادثه|m|tr=hādesá}} * {{Z|pl}}: {{W+|pl|wydarzenie|nt}}, {{W+|pl|impreza|m}}, {{W+|pl|przypadek|n}}, {{W+|pl|zdarzenie|nt}} * {{Z|pt}}: {{W+|pt|evento}} * {{Z|kk}}: {{W-|kk|оқиға}} * {{Z|ro}}: {{W+|ro|eveniment|nt}} * {{Z|ru}}: {{W+|ru|собы́тие|nt}}, {{W+|ru|происше́ствие|n}}, {{W+|ru|слу́чай|n}} * {{Z|sa}}: {{W+|sa|घटना|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|зби́ва̄ње|nt}}, {{W-|sh|до̏гађа̄ј|n}}, {{W-|sh|дешавање|nt}} *: Latînî: {{W+|sh|zbívānje|nt}}, {{W+|sh|dȍgađāj|n}}, {{W-|sh|dešavanje|nt}} * {{Z|sk}}: {{W-|sk|udalosť|m}} * {{Z|sl}}: {{W+|sl|dogodek|n}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|tšojenje|nt}} * {{Z|es}}: {{W+|es|evento|n}}, {{W+|es|suceso|n}}, {{W+|es|acontecimiento|n}} * {{Z|sw}}: {{W+|sw|kisa}}, {{W+|sw|tukio}} * {{Z|sv}}: {{W+|sv|händelse|g}}, {{W+|sv|evenemang|nt}} * {{Z|tg}}: {{W-|tg|рӯйдод}}, {{W+|tg|воқеа}}, {{W+|tg|ҳодиса}} * {{Z|tl}}: {{W-|tl|pangyayari}}, {{W-|tl|balagha}}, {{W-|tl|yari}} * {{Z|th}}: {{W+|th|เหตุการณ์}} * {{Z|tt}}: {{W+|tt|очрак|sc=Cyrl}}, {{W+|tt|вакыйга}} * {{Z|tr}}: {{W+|tr|olay}}, {{W+|tr|hadise}} * {{Z|tk}}: {{W-|tk|waka}}, {{W-|tk|hadysa}} * {{Z|txb}}: {{W-|txb|wäntare}} * {{Z|ur}}: {{W-|ur|گھٹنا|m|tr=ghaṭnā}}, {{W-|ur|واقعہ|n|tr=vāqi'a}}, {{W+|ur|حادثہ|n|tr=hādisa}} * {{Z|uk}}: {{W-|uk|поді́я|m}}, {{W+|uk|за́хід|m}} * {{Z|vi}}: {{W+|vi|sự kiện}}, {{W+|vi|sự việc}} * {{Z|cy}}: {{W+|cy|digwyddiad|n}} * {{Z|km}}: {{W-|km|ព្រឹត្តិការណ៍}}, {{W-|km|ហេតុការណ៍}} * {{Z|yi}}: {{W-|yi|געשעעניש|nt}} * {{Z|el}}: {{W+|el|γεγονός|nt}}, {{W-|el|συμβαν|nt}} {{werger-bin}} :{{werger çavkanî|en|event|beş=Ev qismê Wergerê|oldid=75769160}} dry8xb2aq5fx05o3uyi00cxf5qfydu0 mestir 0 48893 6329055 6252981 2026-08-11T11:53:45Z Balyozbot 7867 /* Formeke rengdêrê */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329055 wikitext text/x-wiki == {{ziman|ku}} == === Formeke rengdêrê === {{rengdêr|ku}} # {{f|ku|devkî}} {{guherto|mezintir}} #* {{jêder-malper|ku|jêgirtin=Elmasxan yek ji kurdên bakurê Kurdistanê, ji binecîhên bajarê Cizîra Botanê ye. Ew keça Mihemed û Asya xanimê ye ko di sala 1894an de li gundê Xargulê hatiye dinyayê. Elmasxan dotmama dengbêja navdar Meryemxanê ye û ew deh salan ji Meryemxanê '''mestir''' bûye.|nivîskar=Enwer Karahan|sernav=Elmasxan|malper=Nefel.com|sal=2/2008}} ==== Formên alternatîv ==== * [[meztir]] ==== Etîmolojî ==== Têkilî [[mezin]] + [[-tir]], [[hevreh]]a farisî {{g|fa|مهتر}} (mehter), pehlewî ''mih/mêh'' ([[mezin]]), ji {{ji|ine-pro|ku|-}}, binere [[mezin]]. obf95xklomizmc144pazp1ssgqt7whu cemawer 0 48910 6328826 6244883 2026-08-11T00:31:46Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328826 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[girse]], [[kitle]], [[girse]]ya [[gel]], <br>[[kom]]a mirovan (bi taybetî koma [[guhdar]]ên yan [[temaşevan]]ên [[bername]]yekê) #* {{jêder-malper|ku|jêgirtin=Di dawiyê de jî [Kemal] Kerkûkî ji bo dîtina çareseriya arîşeya heyî û rawestandina problemên ordiya tirkan, herweha şandina nameyekê bo serokê Emerîkayê ko rasterast bê nav meseleyê, hewlên dîplomatik yên serokê Kurdistanê bilind nirxand û spasî wezareta pêşmerge û navxwe ya hikûmeta Kurdistanê kir û destxweşî li '''cemawerê''' deverên Behdînan kir bo hevkarîkrina hêzên pêşmerge.|malper=Pukmedia.com|sal=2/2008}} ==== Bi alfabeyên din ==== * {{ku-ar|جه‌ماوه‌ر}} ==== Formên alternatîv ==== * [[cemaher]] * [[cemahir]] * [[cemawir]] ==== Etîmolojî ==== Ji {{ji|ar}}, têkildarî [[cimhûr]] ==== Jê ==== * [[cemawerî]] ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|حشد|guman=erê}}, {{W-|ar|الجماهیر|guman=erê}} * {{Z|fa}}: {{W+|fa|اهالی}}, {{W+|fa|جمعیت}}, {{W+|fa|مردم}} * {{Z|fi}}: {{W+|fi|yleisö}} * {{Z|en}}: {{W+|en|audience}}, [[public]] (a group of people), {{W-|en|crowd}} * {{Z|tr}}: {{W+|tr|halk}}, {{W+|tr|yığın}}, {{W+|tr|kitle}}, {{W+|tr|sel}}, {{W+|tr|ahali}}, {{W+|tr|kütle}} {{werger-bin}} 361ppj6nfkh832mzfv7xt22e6rewhce 6328836 6328826 2026-08-11T00:41:08Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328836 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[girse]], [[kitle]], [[girse]]ya [[gel]], <br>[[kom]]a mirovan (bi taybetî koma [[guhdar]]ên yan [[temaşevan]]ên [[bername]]yekê) #* {{jêder-malper|ku|jêgirtin=Di dawiyê de jî [Kemal] Kerkûkî ji bo dîtina çareseriya arîşeya heyî û rawestandina problemên ordiya tirkan, herweha şandina nameyekê bo serokê Emerîkayê ko rasterast bê nav meseleyê, hewlên dîplomatik yên serokê Kurdistanê bilind nirxand û spasî wezareta pêşmerge û navxwe ya hikûmeta Kurdistanê kir û destxweşî li '''cemawerê''' deverên Behdînan kir bo hevkarîkrina hêzên pêşmerge.|malper=Pukmedia.com|sal=2/2008}} ==== Bi alfabeyên din ==== * {{ku-ar|جه‌ماوه‌ر}} ==== Formên alternatîv ==== * [[cemaher]] * [[cemahir]] * [[cemawir]] ==== Jê ==== * [[cemawerî]] ==== Etîmolojî ==== Ji {{ji|ar}}, têkildarî [[cimhûr]] ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|حشد|guman=erê}}, {{W-|ar|الجماهیر|guman=erê}} * {{Z|fa}}: {{W+|fa|اهالی}}, {{W+|fa|جمعیت}}, {{W+|fa|مردم}} * {{Z|fi}}: {{W+|fi|yleisö}} * {{Z|en}}: {{W+|en|audience}}, [[public]] (a group of people), {{W-|en|crowd}} * {{Z|tr}}: {{W+|tr|halk}}, {{W+|tr|yığın}}, {{W+|tr|kitle}}, {{W+|tr|sel}}, {{W+|tr|ahali}}, {{W+|tr|kütle}} {{werger-bin}} jdw4eif3moyypc6ifk8tk2qlqjym1qe hiyeroglîf 0 48949 6328987 6308780 2026-08-11T11:51:16Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328987 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Egypt Hieroglyphe4.jpg|thumb|250px|hiyeroglîfek ji Misra berê]] {{navdêr|ku|z=m}} # [[nivîsîn]]a bi [[wêne]]yan<br> (ku berê dihat bikaranîn û her wêneyek bi [[wate]]ya [[peyv]]ekê yan jî [[deng]]ekî bû) #* {{jêder-malper|ku|jêgirtin=Dîroka nivîsê ango ya alfabeyê xwe dispêre berî 5000 sal, ji hêla sûmeriyan ve peydakirina alfabe û nivîsa bizmarî. Piştî alfabeya sûmerî/bizmarî, misriyan alfabeya '''hiyeroglîf''' peyda kiribe jî şaristaniyên kone yên niştecihên [[Mezra Botan]] û li derdora; [[akadî|aqadiyan]], [[hurrî|hurriyan]], [[babîlî]] û [[hitît]]iyan bi vê alfabeyê zimanê xwe veguheztine ser [[qahfik]]ên [[kîl]]î, berdên reş, qeteçerm, [[papîrûs]] û kaxizê...|nivîskar=Arjen Arî|sernav=Kurdî: Zimanê herî qedîm, lê belê bêalfabe|malper=Netkurd.com|sal=3/2008}} # her [[wêne]]yê yan [[deng]]ê wê [[pergal]]a [[nivîsîn]]ê #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Bi rêya fransî [[hiéroglyphique]] yan îngilîzî [[hieroglyphic]] ji latînî [[hieroglyphicus]] ji yûnaniya kevn ]]ἱερογλυφικός}} (hieroglufîkos) ji [[ἱερογλυφέω]] ji [[ἱερός]] (hiyeros) anku [[pîroz]] + [[γλύφω]] (glufō) [[nikirandin]], [[kolandin]] ==== Etîmolojî ==== * [[hiyeroglîfî]] * [[hiyeroglîfîk]] * [[hiyeroglîfnas]] * [[hiyeroglîfnasî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Hieroglyphe|f}} * {{Z|fi}}: {{W|fi|hieroglyfi}} * {{Z|en}}: {{W|en|hieroglyph}} * {{Z|ru}}: {{W|ru|иероглиф}} (ieroglif) * {{Z|tr}}: {{W|tr|hiyeroglif}}, {{W|tr|resim yazı}} {{werger-bin}} sxti02vr96hg9h6gp77gzn5pyfq8a6d Mezra Botan 0 48950 6329058 6136354 2026-08-11T11:53:51Z Balyozbot 7867 /* Serenav */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329058 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Serenav === {{serenav|ku|z=m}} # [[Mezopotamya]], <br>[[dever]]ên [[navber]]a [[çem]]ê [[Dîcle]] û yê [[Firat]] #* {{jêder-malper|ku|jêgirtin=Dîroka nivîsê ango ya alfabeyê xwe dispêre berî 5000 sal, ji hêla sûmeriyan ve peydakirina alfabe û nivîsa bizmarî. Piştî alfabeya sûmerî/bizmarî, misriyan alfabeya hiyeroglîf peyda kiribe jî şaristaniyên kone yên niştecihên '''Mezra Botan''' û li derdora; aqadiyan, hurriyan, babîlî û hitîtiyan bi vê alfabeyê zimanê xwe veguheztine ser qahfikên kîlî, berdên reş, qeteçerm, papîrûs û kaxizê..|nivîskar=Arjen Arî|sernav=Kurdî: Zimanê herî qedîm, lê belê bêalfabe|malper=Netkurd.com|sal=3/2008}} 9vj676oaw9kvv6d0ya3czd3v5naibiy şelaf 0 49282 6328703 6287869 2026-08-10T14:28:08Z IbrahimKocher Duhok 4280 Werger: +îngilîzî : [[sycophant; toady; bootlicker flatterer]] (bi alîkarî) 6328703 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|şelaf}} {{rengdêr|ku}} # [[çaplûs]], [[şalûs]], [[seypesan]], [[şatir]], [[kone]], [[gelac]], [[lêbok]], [[hîlebaz]] #* {{bênimûne|ku}} ==== Jê ==== * [[şelafane]] * [[şelafî]] * [[şelafîtî]] * [[şelaftî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W-|en|oleaginou}}, {{W+|en|apple-polisher|guman=erê}}, {{W-|en|sycophant; toady; bootlicker flatterer}} * {{Z|tr}}: {{W+|tr|yağcı}}, {{W+|tr|yalaka}}, {{W+|tr|dalkavuk}} {{werger-bin}} druj90u45j43lcblva5yyj7iev84zlx 6328704 6328703 2026-08-10T14:29:23Z IbrahimKocher Duhok 4280 /* Werger */ 6328704 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|şelaf}} {{rengdêr|ku}} # [[çaplûs]], [[şalûs]], [[seypesan]], [[şatir]], [[kone]], [[gelac]], [[lêbok]], [[hîlebaz]] #* {{bênimûne|ku}} ==== Jê ==== * [[şelafane]] * [[şelafî]] * [[şelafîtî]] * [[şelaftî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W-|en|sycophant}}, {{W-|en|flatterer}}, {{W-|en|bootlicker}}, {{W-|en|; toady}}, {{W-|en|oleaginou}}, {{W+|en|apple-polisher|guman=erê}} * {{Z|tr}}: {{W+|tr|yağcı}}, {{W+|tr|yalaka}}, {{W+|tr|dalkavuk}} {{werger-bin}} lor2hw9n04isanrrw8fe4vph68fsf2g bêçine 0 50267 6328858 6136630 2026-08-11T01:13:53Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328858 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|bêçine}} {{rengdêr|ku}} # Yê [[bi kêr hatin|bi kêr nayê]]. #: {{hevmane|ku|bêkêr|bêfeyde|badîhewa|bêmifa|bêwec|vala|pûç|hewante|deya}} #* {{jêder-malper|ku|jêgirtin=Caran ev wekî stratejiyeke '''bêçine''' tê bo min, diwestim.|nivîskar=Yehya Omerî|sernav=Xwendin û Nivîsandinên Guhertî, Instahelbest û Kurd|url=https://botantimes.com/xwendin-u-nivisandinen-guherti-instahelbest-u-kurdi/|malper=Botan Times|dîrok=07/03/2024}} #* {{jêder-malper|ku|jêgirtin=xwe diedilînim navika pirsine bêçine, alazine bêdestpêk û bêdawî...|nivîskar=Kawa Nemir|sernav=Katjimêrên Banû B’yê|url=https://www.helbestakurdi.com/berhem/kawa-nemir--katjimeren-banu-bye|malper=helbestakurdi.com|sal=2007}} #* {{jêder-kovar|ku|jêgirtin=tîrojk û biriqtav '''bêçine''' ji bo her du tovan|kovar=Antolojîya Wêjeya Kurdî ê Nûjen|sernav=Tekamûla Rojê|nivîskar=Yaqob Tilermenî|url=https://www.calameo.com/read/0060784096272c2e48db6|hejmar=56|sal=2023|rûpel=192}} ==== Werger ==== {{werger-ser}} {{werger-bin}} ==== Çavkanî ==== * Têmûrê Xelîl: ''Gotinên kurdî ko di nav kurdên Ermenistanê da mane'', Nefel.com, 7/2008 fzjv2pjwm6xmzx8m7f5ug7c6ou51ex4 6328859 6328858 2026-08-11T01:14:29Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328859 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|bêçine}} {{rengdêr|ku}} # Yê [[bi kêr hatin|bi kêr nayê]]. #: {{hevmane|ku|bêkêr|bêfeyde|badîhewa|bêmifa|bêwec|vala|pûç|hewante|deya}} #* {{jêder-malper|ku|jêgirtin=Caran ev wekî stratejiyeke '''bêçine''' tê bo min, diwestim.|nivîskar=Yehya Omerî|sernav=Xwendin û Nivîsandinên Guhertî, Instahelbest û Kurd|url=https://botantimes.com/xwendin-u-nivisandinen-guherti-instahelbest-u-kurdi/|malper=Botan Times|dîrok=2024-03-07}} #* {{jêder-malper|ku|jêgirtin=xwe diedilînim navika pirsine bêçine, alazine bêdestpêk û bêdawî...|nivîskar=Kawa Nemir|sernav=Katjimêrên Banû B’yê|url=https://www.helbestakurdi.com/berhem/kawa-nemir--katjimeren-banu-bye|malper=helbestakurdi.com|sal=2007}} #* {{jêder-kovar|ku|jêgirtin=tîrojk û biriqtav '''bêçine''' ji bo her du tovan|kovar=Antolojîya Wêjeya Kurdî ê Nûjen|sernav=Tekamûla Rojê|nivîskar=Yaqob Tilermenî|url=https://www.calameo.com/read/0060784096272c2e48db6|hejmar=56|sal=2023|rûpel=192}} ==== Werger ==== {{werger-ser}} {{werger-bin}} ==== Çavkanî ==== * Têmûrê Xelîl: ''Gotinên kurdî ko di nav kurdên Ermenistanê da mane'', Nefel.com, 7/2008 g0y255rfwavlcu6fzi3ez7pv1mpuji6 eleyhî 0 50357 6328942 6248659 2026-08-11T11:47:24Z Balyozbot 7867 /* Daçek */ sererastkirin 6328942 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Daçek === {{daçek|ku}} # [[li dijî|Li dijî]] kesekî an tiştekî. #* {{jêder|ku|jêgirtin=Dijminê gelê Kurd yê sitratejîk Tirkiye ye. Tirkiye bi kampanyaya dijî terorîzmê û ya dijî Ocalan û PKKê tevgera Kurd ya neteweyî li hemû ji cîhanê îzole kir û reş kir. Divê tevgera Kurd ya neteweyî vê kampanya Tirkiyê bizivirîne '''aleyhê''' Tirkiye.|Netkurd.com, 7/2008}} #* {{jêder-malper|ku|jêgirtin=Di dengdana kongreyê de 51 kes di lehê de û 58 kes '''di eleyhiya''' derketina wî ya derve '''de''' dengê xwe dan.|sernav=Nehiştin serokê Perûyê Castillo ji Perûyê here derveyê welat|url=https://www.peyamakurd.info/kurmanci/C%C3%AEhan/nehistin-seroke-peruye-castillo-ji-peruye-here-derveye-welat|urlya-arşîvê=https://web.archive.org/web/20230709174551/https://www.peyamakurd.info/kurmanci/C%C3%AEhan/nehistin-seroke-peruye-castillo-ji-peruye-here-derveye-welat|malper=PeyamaKurd|dîrok=2022-11-19}} # Li [[ser]], di [[derbare]]yê ... de. #* {{bêmînak|ku}} ==== Formên alternatîv ==== * [[aleyhî]] ==== Etîmolojî ==== Ji {{deyn|ar|ku}} "li ser wî". ==== Werger ==== {{bnr-werger|aleyh}} j4tehy09wghxmlh60hr04zr9gmvi0ev agirbest 0 50379 6328766 6296224 2026-08-11T00:23:32Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328766 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[rawestandin|Rawestina]] [[şer]]î bo [[dem]]ek [[miweqet]] (bi taybetî daku [[danûstandin]]ên li ser [[aştî|aştiyê]] bên kirin) #* {{jêder-malper|ku|jêgirtin=PKK '''agirbesta''' yekalî ragihand.|malper=Hawardengubas.com|sal=10/2006}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[agirbes]] ==== Hevmane ==== * [[mitareke]] * [[agirbir]] ==== Jê ==== * [[agirbestî]] ==== Etîmolojî ==== Ji {{pêk|ku|agir|best|w2=bestin}} ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|armëpushim}} * {{Z|de}}: {{W+|de|Waffenstillstand|n}}, {{W+|de|Feuerpause|m}}, {{W+|de|Waffenruhe|f|guman=erê}} * {{Z|id}}: [[gencatan]] [[senjata]] * {{Z|ar}}: {{W-|ar|هدنة}} * {{Z|eo}}: {{W-|eo|militpaŭzo|xs=Esperanto}} * {{Z|fa}}: {{W+|fa|آتش بس}}, {{W+|fa|آتش نشانی}}, {{W-|fa|آتش‌بس}} * {{Z|fi}}: {{W+|fi|tulitauko}} * {{Z|fr}}: {{W+|fr|cessez-le-feu|n}}, {{W+|fr|trêve|m}} * {{Z|nl}}: {{W+|nl|staakt-het-vuren|n}} * {{Z|he}}: [[הפסקת-אש]] (hafsaqat-esh) * {{Z|en}}: {{W+|en|ceasefire}}, {{W+|en|armistice|guman=erê}}, {{W+|en|truce|guman=erê}} * {{Z|it}}: {{W+|it|cessate il fuoco|n}}, {{W+|it|armistizio|n}} * {{Z|ko}}: [[정전]](停戰) * {{Z|hu}}: {{W+|hu|tűzszünet}} * {{Z|no}}: {{W+|no|våpenhvile}} * {{Z|pl}}: [[zawieszenie]] [[broni]] * {{Z|pt}}: {{W-|pt|cessar-fogo|n}}, {{W+|pt|armistício|n}}, {{W+|pt|trégua|m}} * {{Z|es}}: {{W-|es|alto el fuego|n}}, {{W+|es|armisticio|n}}, {{W+|es|tregua|m}} * {{Z|sv}}: {{W+|sv|eldupphör|nt}} * {{Z|tr}}: {{W+|tr|ateşkes}}, {{W+|tr|bırakışma}}, {{W+|tr|mütareke}} * {{Z|el}}: [[εκεχειρία]] (ekexeiría) {{werger-bin}} 9jzuiakb45uz9owe6ergvsirabucrv0 cengel 0 50654 6328827 6304165 2026-08-11T00:31:49Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328827 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[daristan]], [[dehl]], [[rêl]], [[devî]], [[dehlûdir]], [[dehlistan]], [[daristan]]ên [[boş]] û [[asê]] #* {{jêder-malper|ku|jêgirtin=Dibêjin rojekê darbirrek tevşo û tevirdas û birrek û werîsê xwe hildide û wekî hercar diçe li nav '''cengelê''' ku daran bibirre.|nivîskar=Perwîz Cîhanî|sernav=Axiriya qenciyê dibe xerabî|malper=Avestakurd.net|sal=8/2008}} # {{kontrol|rêz=erê|[[bîşî]]}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[cengil]] ==== Jê ==== * [[cengelistan]] * [[cengelî]] * [[cengelnas]] * [[cengelnasî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[çengel]] * [[çengil]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Dschungel|m}}, {{W+|de|Urwald|m}} * {{Z|ay}}: {{W-|ay|yunca}} * {{Z|br}}: {{W-|br|janglenn|f}} * {{Z|cs}}: {{W+|cs|džungle}} * {{Z|zh}}: {{W-|zh|叢林}} * {{Z|da}}: {{W+|da|jungle}} * {{Z|id}}: {{W+|id|hutan}}, {{W+|id|belantara}} * {{Z|eo}}: {{W+|eo|ĝangalo}} * {{Z|fa}}: {{W+|fa|جنگل}} * {{Z|fo}}: {{W-|fo|villskógur}} * {{Z|fi}}: {{W+|fi|viidakko}} * {{Z|fr}}: {{W+|fr|jungle}} * {{Z|fy}}: {{W-|fy|oerwâld|n}} * {{Z|hi}}: {{W+|hi|जंगल}} * {{Z|nl}}: {{W+|nl|rimboe}}, {{W+|nl|oerwoud}} * {{Z|he}}: {{W+|he|ג'ונגל}} * {{Z|io}}: {{W+|io|junglo}} * {{Z|en}}: {{W+|en|jungle}}, {{W+|en|primeval forest}} * {{Z|ca}}: {{W+|ca|jungla}} * {{Z|qu}}: {{W-|qu|sachʼaqa}}, {{W-|qu|sacha}} * {{Z|hu}}: {{W+|hu|dzsungel}} * {{Z|ug}}: {{W-|ug|جاڭگلا}} * {{Z|pl}}: {{W+|pl|dżungla|f}} * {{Z|pt}}: {{W+|pt|selva|f}} * {{Z|rm}}: {{W-|rm|tschungla}}, {{W-|rm|guad}} {{W-|rm|selvadi}} * {{Z|ru}}: {{W+|ru|джунгли}} {{fpl}} * {{Z|srn}}: {{W-|srn|busi}} * {{Z|sh}}: {{W+|sh|džungla}} * {{Z|sh}}: {{W-|sh|džungla}} * {{Z|so}}: {{W+|so|duur}}, {{W-|so|howd}} * {{Z|es}}: {{W+|es|jungla|f}}, {{W+|es|selva|f}} * {{Z|sv}}: {{W+|sv|djungel}} * {{Z|tl}}: {{W+|tl|gúbat}} * {{Z|tr}}: {{W+|tr|cengel}} * {{Z|tr}}: {{W+|tr|orman}} * {{Z|tpi}}: {{W-|tpi|bikbus}} * {{Z|uk}}: {{W-|uk|джунглі}} * {{Z|vi}}: {{W+|vi|rừng}} {{werger-bin}} gx5a21rd0jrebwz5kp99vgyzvsqwa6a babetî 0 50872 6328791 6297663 2026-08-11T00:27:01Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328791 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Kesê babetî tevdigere, Kesê ne di bin bandorên hestên şexsî, şîroveyan yande ye jî bê pêşdarazî tevdigere û kar dike #* {{jêder-malper|ku|jêgirtin=Divêt dîroknivîs berî her tiştî '''babetî''' (objektîv) be û serhefsarê karê xwe nexe di nav destê hestan de. Çi guman di kurdistaniyeta Kerkûkê de nîne, lê ew bûye tewqê negbetê û ketiye gerdena kurdan û ev di warê Kerkûkê de nefta wê ye, min gelek caran ev gotiye û dibêjim.|malper=nefel.com|sal=11/2008}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[babet]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|objective}}, {{W+|en|unbiased}}, {{W+|en|thematical|guman=erê}} * {{Z|tr}}: {{W+|tr|objektif}}, {{W+|tr|nesnel}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|babetî}} {{rengdêr|ku}} # Ne di bin [[bandor]]a hestên şexsî, şîroveyan yan jî [[pêşdarazî]]ya. Li ser bingeha rastiyan #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|objective}}, {{W+|en|unbiased}}, {{W+|en|thematical|guman=erê}} * {{Z|tr}}: {{W+|tr|objektif}}, {{W+|tr|nesnel}} {{werger-bin}} m4gd5o0tnm8y3xb3tqa9x0wfagbdj8d haj 0 51326 6328973 6307930 2026-08-11T11:50:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328973 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} * {{ku-IPA}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|Dêrsim}} [[aga]], [[zanîn]], [[xeber]], [[ageh]], [[agah]], [[enformasyon]] #: {{mk|ku|'''Haj''' ji xwe hebin.|Li xwe hişyar bin. / Li xwe miqate bin.|rêz=1}} #: {{mk|ku|'''Haja''' min jê nîne.|Ez qet nizanim. / Min qet nebihîstiye.|rêz=1}} #* {{jêder-malper|ku|jêgirtin='''Haja''' min ji evî nivîsa Celadet Bedirxan tune bû, heke min xwendibe jî ewê çaxê min baş dêna xwe nedayê miheqeq. |nivîskar=Rehmî Kurdziman|sernav=Ez ji xwe ra nabêjim nivîskar, karê min nivîskarî nîne|malper=inanolo.blogspot.com|url=https://inanolo.blogspot.com/2018/10/rehmi-kurdziman-ez-ji-xwe-ra-nabejim.html|sal=2018}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== {{kol3|ku | {{hw|ku|hay}} | ha }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W|fa|مواظبت}}, {{W|fa|توجه}}, {{W|fa|مراقبت}}, {{W|fa|متوجه}} * {{Z|en}}: {{W|en|watch out}}, {{W|en|care}}, {{W|en|tendance}} * {{Z|tr}}: {{W+|tr|bilgi}}, {{W+|tr|haber}} {{werger-bin}} == {{ziman|en}} == === Navdêr === {{en-navdêr|es}} # {{awayekî din|en|hajj}} hqo20curan90eb8sjtirrbbzxfxhe1w çarmêrkî 0 51476 6328882 6256023 2026-08-11T11:23:02Z Balyozbot 7867 /* Hoker */ sererastkirin 6328882 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === [[Wêne:A Tailor at Work (6920059143).jpg|thumb|Mêrikekî '''çarmêrkî''' rûniştî.]] {{hoker|ku}} # [[awa|Awayekî]] [[rûniştin]]ê. Nigên xwe her yek bi hêleke kirin û bi çeperast kirinê wan li ser wan rûniştin. #* {{jêder|ku|jêgirtin=Lêbelê ne ku ji tizbîkişandina wî tê derxistibû, ji serê sicadeya wî yê ku hatibû qulipandin û ji rûniştina wî ya '''çarmêrkî''' tê derxistibû.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=120}}}} #* {{jêder-malper|ku|jêgirtin=Helbest û Roman, wek du birayên hesûd in li mala wêjeya nûjen '''çarmêrkî''' rûniştine û ne yên çûyînê ne.|nivîskar=Samî Hêzil|sernav=Helbesta serkêş & romana barkêş|url=https://xwebun.org/helbesta-serkes-romana-barkes/|malper=xwebun.org|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Bi pilingê pêşî re şîyar dibin.<br>Têhn vedide l`lûlan ji teqînê.<br>Stran dikevin pêlên xuşînê,<br>şer dîne, şervan dîne<br>'''çarmêrkî''' rûniştî di bin berfê de<br>Ev çiya rûspî ne, heyran!|nivîskar=Arjen Arî|sernav=Ev Çiya Rûspî Ne|url=https://www.helbestakurdi.com/helbest/arjen-ari--ev-ciya-ruspi-ne.html|malper=helbestakurdi.com}} ==== Formên alternatîv ==== * [[çarmêrî]] * [[çarmêrgî]] ==== Etîmolojî ==== [[çar]] + [[mêr]]+kî ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Schneidersitz}} * {{Z|en}}: {{W+|en|cross-legged}}, {{W+|en|tailor-fashion}} * {{Z|tr}}: {{W+|tr|bağdaş}} {{werger-bin}} 7thksfvpltiiz8day2x6kwqv157s63h kepazetî 0 51527 6329007 6326726 2026-08-11T11:52:01Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329007 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[riswayî]], [[rezîlî]], [[şerpezetî]], [[perîşanî]], [[belengazî]], [[jarî]], [[hejarî]], [[rezalet]] #* {{jêder-malper|ku|jêgirtin=Rêxistina Yahûdiyan a bi navê Komîteya Yahudiyan ya Amerîkayê (AJC) eşkere kir ku mewqifê Erdoganî yê li Davosê “'''kepazetiyek''' e ku dikare bibe sedemê reaksiyona li dijî Îsraîlê û yahûdiyan.”|malper=Netkurd.com|sal=1/2009}} # [[bedniyetî]], [[niyetxirabî]], [[xêrnexwazî]], [[xirabîxwazî]], [[belakirî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[kepazehî]] * [[kepazeyî]] ==== Etîmolojî ==== Ji {{qertaf|ku|kepaze|-tî}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Schändlichkeit}} {{mê}} * {{Z|en}}: {{W|en|depths of degradation}} * {{Z|tr}}: {{W|tr|rezillik}}, {{W|tr|kepazelik}}, {{W|tr|rezalet}} {{werger-bin}} fk9bge6mh9rpnhps6cdbop2yrb3uuxi avemast 0 51632 6328870 6297211 2026-08-11T08:59:05Z IbrahimKocher Duhok 4280 /* Werger */ 6328870 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 #* {{bêmînak|ku}} ==== Ji wêjeyê ==== ''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.'' (Ehmed Qerenî: ''Girew û hevrikî di navbera mîrê Hekariya û paşayê Behdînan da'', Transkrîpsiyon (Tîpguhestin): Hallocî Larê, Nefel.com, 2/2009) ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[avmast]] ==== Jê ==== * [[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}} 3nqvm90ltfn78y0mysjt046s6tiwkp9 gepir 0 51717 6328963 6307196 2026-08-11T11:50:12Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328963 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[beş|Beş]]a [[leş]]î ya [[zirav]] ya [[navber]]a [[ser]]î û [[pişt]]ê. #: {{hevmaneyên peyvê|ku|patik}} #* {{jêder-malper|ku|jêgirtin=Me, bi [[kut]]ê li gepirê xist û ji qirikê bi derxist''|nivîskar=|sernav=|url=http://www.kurdenkirsehire.com/Cand-huner/mem-xelikan.htm|urlya-arşîvê=https://web.archive.org/web/20081228023332/http://www.kurdenkirsehire.com/Cand-huner/mem-xelikan.htm|malper=kurdenkirsehire.com|sal=}} # {{kontrol|rêz=erê|[[past]], [[qemçik]], [[şatik]], [[şahtik]], [[stukur]], [[pate]], [[gepêr]], [[gempir]]}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|qeper}} ==== Têkildar ==== * {{g|ku|gerden}} * {{g|ku|gewrî}} * {{g|ku|stu}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Genick|m}}, {{W|de|Halsansatz}} * {{Z|fa}}: {{W|fa|قفا}} * {{Z|tr}}: {{W|tr|patik}}, {{W|tr|püsür}}, {{W|tr|ense|guman=erê}} {{werger-bin}} 33qj2dl85bzpupoqsc0jmey7edvbspd kowboy 0 51718 6329028 6246168 2026-08-11T11:52:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329028 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[eşqiya]], [[rêbir]], [[keleş]], [[rêgir]], [[korsan]], [[heydûd]], [[nijdevan]], [[cerdevan]], [[çete]], [[talanker]], [[revîner]], <br>kesa/ê ku bi [[darê zorê]] tiştekî ji [[xwedan]]ên wê [[standin|distîne]] û [[revandin|direvîne]] <br>(bi taybetî [[keştî|keştiyan]] yan [[firoke|firokeyan]])<br>(bi taybetî di [[dîrok]]a [[Amerîka]]yê de) #* {{jêder-malper|ku|jêgirtin='''Kowboyên''' çemçemalî negihîştin miradê xwe û berpirsê xemsariya polîsê ku nekarî qanûnê serwer bike ji kar hate avêtin.|malper=netkurd.com|sal=2/2009}} ==== Formên alternatîv ==== * [[kawboy]] ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|cowboy}}. ==== Jê ==== * [[kowboyane]] * [[kowboyî]] * [[kowboyîtî]] * [[kowboytî]] ==== Werger ==== {{werger-ser}} * {{Z|fi}}: {{W+|fi|cowboy}}, {{W+|fi|lainsuojaton}}, {{W+|fi|ryöväri}} * {{Z|en}}: {{W+|en|cowboy}}, {{W+|en|roughrider}} * {{Z|tr}}: {{W+|tr|kovboy}}, {{W+|tr|haydut}} {{werger-bin}} p388nksozjqevf74uldrtzq5oq1e7kx maço 0 51775 6329047 6137083 2026-08-11T11:53:28Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329047 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[mêrane]], [[nêrane]], wek [[mêr]]an, [[maskulîn]] #* {{jêder-malper|ku|jêgirtin=Efserek '''maço''' bû transseksuel.|malper=Netkurd.com|sal=5/2009}} ==== Etîmolojî ==== Ji spanî [[macho]] ([[nêr]], [[mêr]]), latînî [[masculus]] ==== Jê ==== * [[maçotî]] * [[maçoyane]] * [[maçoyî]] * [[maçoyîtî]] 9wkx92r9ex3wp68cwh30f7pnnp5668s favorî 0 51832 6328956 6306450 2026-08-11T11:49:54Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328956 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[bijare]], [[tercîh]]kirî, [[xweşdivî]], [[xoşewîst]], [[hez]]kirî, [[berdilî]], [[hêja]], [[jêhatî]], [[hezkirî]], [[bihagiran]], [[nirxbilind]], [[favorît]] #* {{jêder-malper|ku|jêgirtin=Lîstokên Jînda yên gelek xweşik hene. Her çiqes ku em lîstokên xweşik ên renga-reng didin ber wê jî, lê ev hirçoka me naxwaze bi van bilîze. '''Favorîyên''' wê tiştên teknîkî ne, wek mînak telefona destan û komandoya TVyê.|nivîskar=Şîlan Diljen|sernav=Di nav kevçî û beroşan de|url=http://hircok.blogspot.com/2009/05/di-nav-kefci-u-berosan-de.html|malper=Hircok.blogspot.com|sal=5/2009}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{ji|fr|ku|favori}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|geliefkoosd}} * {{Z|de}}: {{W|de|Favorit|m|guman=erê}} * {{Z|eo}}: {{W|eo|preferata}}, {{W|eo|favorata}} * {{Z|fi}}: {{W|fi|suosikki}}, [[lempi-]]. [[mieli-]] * {{Z|fr}}: {{W|fr|favori}} * {{Z|nl}}: {{W|nl|geliefkoosd}}, {{W|nl|lievelings-}}, {{W|nl|uitverkoren}} * {{Z|en}}: (''emerîkî'') [[favorite]], (''brîtanî'') {{W|en|favourite}} * {{Z|pt}}: {{W|pt|favorito}} * {{Z|tr}}: {{W|tr|favori}} * {{Z|el}}: {{W|el|αγαπημένος}} {{werger-bin}} sq7temti2ri3nrwo01g3uppr97zsywi berîn 0 51981 6328801 6292420 2026-08-11T00:28:15Z Balyozbot 7867 /* Rengdêr 1 */ sererastkirin 6328801 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{lêker|ku|c=x-ngh}} # Dengê ku [[mih]] derdixin. ==== Bi alfabeyên din ==== * {{ku-ar|به‌رین}} ==== Werger ==== {{werger-ser|dengderxistina mihan}} * {{Z|en}}: {{W+|en|baa}} * {{Z|tr}}: {{W+|tr|melemek}} {{werger-bin}} === Navdêr 1 === {{navdêr|ku|z=m}} # ya [[pêşîn]], [[yekem]] ==== Werger ==== {{werger-ser|pêşîn, yekem}} * {{Z|en}}: {{W+|en|anteriority}}, {{W+|en|primarily}} * {{Z|tr}}: {{W+|tr|ilk}}, {{W+|tr|birinci}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|fire}} [[berfireh|Berfireh]], [[fireh]], [[bêsinor]]. #: {{nm|ku|Biheşta '''berîn'''.}} #: {{nm|ku|Esmanê '''berîn'''.}} ==== Werger ==== {{werger-ser|berfireh}} * {{Z|en}}: {{W+|en|comprehensive}} * {{Z|tr}}: {{W-|tr|geniş çaplı}}, {{W+|tr|kapsamlı}} {{werger-bin}} === Navdêr 3 === {{navdêr|ku|z=m}} # [[deştîn]], [[beristan]], [[dever]]ên [[ziwa]] û [[hişk]], [[dever]]ên [[kêm]] [[baran]] lê [[barîn|dibare]] û [[loma]] [[ziwa]] ==== Formên alternatîv ==== * [[berî#Navdêr 2|berî]] ==== Jê ==== * [[berînî]] ==== Werger ==== {{werger-ser|deverên ziwa}} * {{Z|en}}: {{W+|en|desert}} * {{Z|tr}}: {{W+|tr|ova}}, {{W+|tr|bozkır}} {{werger-bin}} ==== Çavkanî ==== # Mela Xelîl Mişextî: ''Ferhenga Merg û Jî'', Aras, Hewlêr 2006 === Rengdêr 1 === {{rengdêr|ku}} # [[kevirîn]], ji [[ber]]î #* {{jêder-malper|ku|jêgirtin=Li bajarê Zonguldakê karkerên komir qanûna nû protesto kir. Li gor pêşniyarnameya guhertina qanûnan a ku Lijneya Plan û Bûtçeyê ji bo Meclisê rêkirîye Saziya Komira '''Berîn''' a Tirkiyeyê dê ji bo şirketên taybet bê firotin.|sernav=Ji malpera nûçeyan a Bianet.org|url=http://bianet.org/bianet/ked/191278-karkeren-komire-cun-di-circirriken-komire-de-u-deri-girtin|sal=11/2017}} ==== Etîmolojî ==== Ji {{paş|ku|ber|-în}}. ==== Werger ==== {{werger-ser|kevirîn}} * {{Z|en}}: {{W+|en|stony}} * {{Z|tr}}: {{W-|tr|taştan yapılmış}}, {{W+|tr|taştan}} {{werger-bin}} === Rengdêr 2 === {{rengdêr|ku}} # [[kevnare]], [[qedîm]] ==== Werger ==== {{werger-ser|kevnare}} * {{Z|en}}: {{W+|en|ancient}} * {{Z|tr}}: {{W+|tr|kadim}} {{werger-bin}} ecd2ov3hhiflz18v8ry9d2tpwkhtude konevanî 0 52125 6329025 6326735 2026-08-11T11:52:39Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329025 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[siyaset]], [[polîtîka]], [[ramyarî]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[konevanîtî]] * [[konevantî]] ==== Etîmolojî ==== Ji {{paş|ku|konevan|-î}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|politiek|xs=Afrikaans}} * {{Z|de}}: {{W|de|Politik|f}} * {{Z|bn}}: {{W|bn|রাজনীতি|sc=Beng}} * {{Z|bg}}: {{W|bg|политика|tr=polítika|f}} * {{Z|cs}}: {{W|cs|politika|f}} * {{Z|zh}}: *: [[mandarînî]]: [[政治]] (zhèngzhì) * {{Z|ar}}: {{W|ar|سياسة}} (siyase) * {{Z|hy}}: [[քաղաքականություն]] (k'aġak'akanut'yun) * {{Z|et}}: {{W|et|poliitika}} * {{Z|fa}}: [[سیاست]] (siyaset) * {{Z|fi}}: {{W|fi|politiikka}} * {{Z|fr}}: {{W|fr|politique|f}} * {{Z|ka}}: {{W|ka|პოლიტიკა|tr=politika}} * {{Z|hi}}: {{W|hi|राजनीति|tr=rājnīti|f}} * {{Z|nl}}: {{W|nl|politiek|f}} * {{Z|he}}: {{W|he|פוליטיקה}} * {{Z|en}}: [[politics]]; [[policy]] * {{Z|it}}: {{W|it|politica|f}} * {{Z|ja}}: {{W+|ja|政治|tr=seiji|sc=Jpan}} ([[せいじ]]) * {{Z|ko}}: [[정치]] (jeongchi) * {{Z|lv}}: {{W|lv|politika|xs=Latvian}} * {{Z|hu}}: {{W|hu|politika}} * {{Z|no}}: {{W|no|politikk|m}} * {{Z|pl}}: {{W|pl|polityka|f}} * {{Z|pt}}: {{W|pt|política|f}} * {{Z|ro}}: {{W|ro|politică|f}} * {{Z|ru}}: {{W|ru|политика|tr=polítika|f}} * {{Z|sh}}: {{W|sh|politika|f}} * {{Z|sh}}: {{W|sh|politika|f}} * [[laosî]]: {{W|lo|ການເມືອງ}} * {{Z|sh}}: *: Kirîlî: [[политика#Serbian|политика]] {{mê}} *: Latînî: {{W|la|politika#Serbian|f}} * {{Z|sco}}: {{W|sco|sluagh-iùl|m}} * {{Z|sk}}: {{W|sk|politika|f}} * {{Z|es}}: {{W|es|política|f}} * {{Z|sv}}: {{W|sv|politik|c}} * {{Z|te}}: {{W|te|రాజకీయాలు}} * {{Z|tr}}: {{W|tr|politika}}, {{W|tr|siyaset}} * {{Z|ur}}: [[راج نیتی]] (rāj-nīti), [[سیاست]] (siyāsat) * {{Z|vi}}: {{W|vi|chính trị|xs=Vietnamese}} {{werger-bin}} === Rengdêr === {{rengdêr|ku}} # [[siyasî]], [[polîtîkî]], [[ramyarî]] #* {{jêder-malper|ku|jêgirtin=Ev polîsê ko hîç îşê wî bi velokirina wêneyan nîn e, çimkî tenê ew li çekên agirîn an çekên spî digere. Lê ji [[şoven|şofîniya]] xwe yekser telefonê ji hêzên ewlekariya '''konevanî''' re vedike. Ew jî mijarê mezintir dikin û xort dişînin bal Parêzerê Giştî û ji wir dişînin bal Dadgerê Take yê leşkerî.|malper=Avestakurd.net|sal=7/2009}} ==== Werger ==== {{werger-ser}} {{werger-bin}} e13l2sciov0torm99nf4k1t68zowhc2 hevzayend 0 52180 6328982 6137201 2026-08-11T11:51:04Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328982 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[mirov|Mirovên]] ku ji mirovên zayendên xwe re ji aliye [[zayendî]] û [[hîsîtî]] [[hez kirin|hez dikin]]. #* {{jêder-malper|ku|jêgirtin=Buttigieg yekemîn kesê '''hevzayend''' ê nav Demokratan e jî ku dixwaze serokatiya mezintirîn zilhêza cîhanê bike.|nivîskar=Rêbaz Elî|sernav=Homoseksuelek bo şûna Trump|url=https://www.rudaw.net/kurmanci/opinion/10122019|malper=rudaw.net|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Mela balê kişand ser pisrgirêkên '''hevzayendên''' misilman.|sernav=Melayê hevzayend: Gere mizgeftên dostê hevzayendan bên vekirin|url=https://rojname.com/3615341|malper=rojname.com|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Ti astengî nikare me paş bixe. Bêdeng nemîne û biqîre ku '''hevzayend''' ji hene!|nivîskar=Mem Botanî|sernav=Karbidestên Tirk Destûr Neda Meşa Rûmetê|url=https://www.dengeamerika.com/a/lgbti_stenbol/4463143.html|malper=dengeamerika.com|sal=2018}} ==== Hevmane ==== * [[homoseksûel]] * [[nêrûmê]] ==== Jê ==== * [[hevzayendî]] * [[hevzayendîtî]] ==== Etîmolojî ==== Ji {{qertaf|ku|hev|zayend}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W+|ar|مثلي الجنس}} * {{Z|en}}: {{W+|en|homosexual}}, {{W+|en|queer}} * {{Z|tr}}: {{W+|tr|eşcinsel}} {{werger-bin}} oksdosexppovjwe4r4d4hbx1sw489k1 emenî 0 52703 6328944 6306035 2026-08-11T11:47:32Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328944 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[xalîçe]], [[berik]], [[mehfûr]], [[zîlî]], [[kilîm]] #* {{jêder-malper|ku|jêgirtin=Du hefteyan berê ev '''emenî''' perda bûkê bû. Hingê di hewşa mala wan de ringeringa defê bû, mirazê Silo, yê lapî mezin dihate sêrî. Wî kurê xwe, yê nuxurî anîbû ber zewacê. Hingê ringeringa defê di nav dil û canê wî de bi hezar û yek awazî alan dida, jîyana wî bi şabûn dixemiland. Lê niha ew '''emenî''' girêdida, wekî seva neferê wî starek hebe. Niha teqeteqa tekên vagonê tê bêjî girmîniya çakûçên hesin bûn ko li serê wî dixistin.|nivîskar=Tosinê Reşîd|sernav=[[etap|Êtap]]'|malper=Nefel.com|sal=6/2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 30bwby4p53a4ae9tov4xbngcx760jqa bablekan 0 52738 6328792 6277705 2026-08-11T00:27:10Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328792 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[cûn]]ek [[govend]]ên [[kurdî]] ye #* {{jêder-malper|ku|jêgirtin=Lê herhal cihê herî xweş ku mirov rabe govendê bigerîne jî ev der e; yanê zozanên Culemêrgê. Belê culemêrgî rabûne '''Bablekanê''' di nav xwezaya xweş, di nav hewaya xweş e.|nivîskar=|sernav=Li çiyê Bablekan xweş e!|url=https://diyarname.com/news.php?Idx=2503|malper=Diyarname.com|sal=7/2009}} #* {{jêder-malper|ku|jêgirtin=Ji bo me bide sekinandin, edetî li ser nenûkan direqisî. Teyê sond bixwara ka ev mêrik bi '''bablekan''', yan jî bi şemamê dilîze û direqise.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Formên alternatîv ==== * [[qardaş]] * [[qardeş]] * [[şêxanî]] ==== Vîdyo ==== * http://www.youtube.com/watch?v=Tcd8Xy94u7A ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 0f049c59t8pug5o0h8gakq0u1off68n 6328840 6328792 2026-08-11T00:41:20Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328840 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[cûn]]ek [[govend]]ên [[kurdî]] ye #* {{jêder-malper|ku|jêgirtin=Lê herhal cihê herî xweş ku mirov rabe govendê bigerîne jî ev der e; yanê zozanên Culemêrgê. Belê culemêrgî rabûne '''Bablekanê''' di nav xwezaya xweş, di nav hewaya xweş e.|nivîskar=|sernav=Li çiyê Bablekan xweş e!|url=https://diyarname.com/news.php?Idx=2503|malper=Diyarname.com|sal=7/2009}} #* {{jêder-malper|ku|jêgirtin=Ji bo me bide sekinandin, edetî li ser nenûkan direqisî. Teyê sond bixwara ka ev mêrik bi '''bablekan''', yan jî bi şemamê dilîze û direqise.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Formên alternatîv ==== * [[qardaş]] * [[qardeş]] * [[şêxanî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Vîdyo ==== * http://www.youtube.com/watch?v=Tcd8Xy94u7A ==== Werger ==== {{werger-ser}} {{werger-bin}} 0q5obzwzdin1qh0mgbii7yafwmvft8l dorûver 0 53381 6328937 5028641 2026-08-11T11:46:04Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328937 wikitext text/x-wiki == {{ziman|zza}} == === Navdêr === {{navdêr|zza|z=}} # [[derdor]], [[dorûber]] #* {{jêder-malper|ku|jêgirtin=Şarê '''dorûverê''' Çêrmûge, Sêwregi, Aldûş û Motkî xo sey “dimilî/dumbilî” û lehçeya xo zî sey “dimilkî” name kenê.|nivîskar=Roşan Lezgîn|sernav=Kirmanckî, Kirdkî, Dimilkî, Zazakî|url=http://www.zazaki.net/haber/kirmanck,-kirdk,-dimilk,-zazak-148.htm|malper=zazaki.net|sal=2009|ziman=zza}} #:: {{werger pêwîst e}} lt122z931ogcukmspygax1aeviafp0o 6328938 6328937 2026-08-11T11:46:39Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328938 wikitext text/x-wiki == {{ziman|zza}} == === Navdêr === {{navdêr|zza|z=}} # [[derdor]], [[dorûber]] #* {{jêder-malper|zza|jêgirtin=Şarê '''dorûverê''' Çêrmûge, Sêwregi, Aldûş û Motkî xo sey “dimilî/dumbilî” û lehçeya xo zî sey “dimilkî” name kenê.|nivîskar=Roşan Lezgîn|sernav=Kirmanckî, Kirdkî, Dimilkî, Zazakî|url=http://www.zazaki.net/haber/kirmanck,-kirdk,-dimilk,-zazak-148.htm|malper=zazaki.net|sal=2009}} jqri2d1hwyz840r4q8873vz6kk6pmoa berdêlî 0 53775 6328857 6298855 2026-08-11T01:12:15Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328857 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[her]] [[yek]] ji [[keç]]ên ku bi hev hatine [[guherandin]] #* {{jêder-pirtûk|ku|jêgirtin=Û di nav ekradan de '''berdêlî''' jî dikin. Mesela yêk xweha xwe dide yêkî û xweha wî jî ji boy xwe distîne û yaxo keça xwe dide yêkî û keça wî jî jo boy xwe distîne. Yanî mubadele dikin. Herkesekî ji wan mesrefa daweta xwe dibîne.|nivîskar=Mele Mehmûdê Bayezîdî|edîtor=Jan Dost|sernav=Adat û Rusûmatnameê Ekradiye|weşanxane=Weşanxaneya Nûbihar|sal=2010|rûpel=43|isbn=9789944360678}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== {{kol3|ku|cure=Jê |berdêlî kirin<pos:lêker> |berdêlîkirin<pos:navdêr> |berdêlîkirî<pos:rengdêr> }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bi zaravayên din ==== * {{Z|zza}}: {{W-|zza|pêvurîn}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W-|fa|زن به زن}} * {{Z|en}}: {{W+|en|substitutional|guman=erê}}, {{W+|en|synonymous|guman=erê}}, {{W+|en|appositive|guman=erê}}, {{W+|en|interchange|guman=erê}}, {{W+|en|succedaneous|guman=erê}} * {{Z|en}}: {{W+|en|surrogateship}}, {{W+|en|vicarious}} {{werger-bin}} o3ldv7m9kxmpp6mpngjl36glin5ikbc çavkorî 0 53779 6328885 5919985 2026-08-11T11:24:22Z Balyozbot 7867 /* Hoker */ sererastkirin 6328885 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # Hereketkirina bêyî [[baldan]]a [[netîce]]yên tiştekî, bi [[piştguhkirin]]a temamê encaman. #* {{jêder-malper|ku|jêgirtin=Bi awayekî '''çavkorî''', bawerîpêanîna fermanên dînî.|nivîskar=Ali Gurdilî|sernav=Nasandina Çend Têgihên Felsefeyî|url=https://candname.com/nasandina-cend-tegihen-felsefeyi/|urlya-arşîvê=https://web.archive.org/web/20230101220456/https://candname.com/nasandina-cend-tegihen-felsefeyi/|malper=Çandname|dîrok=2021-01-25}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr === # Ji ber [[bal nedan|balnedan]]ê [[neditîn]]a tiştên li ber çavan. #: {{mk|ku|Min '''çavkorî''' nekiribûna min ê ew lawik li ber dîwar bidîtana.}} ==== Werger ==== {{werger-ser}} {{werger-bin}} kgfx2q0cb302fxl4takmd1nta9clebq fenek 0 53840 6328959 6232729 2026-08-11T11:50:02Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328959 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[hîlekar]], [[hîlebaz]], [[fêlbaz]], [[cambaz]], [[şeytan]], [[qurnaz]], [[xapîner]] #* {{jêder-malper|ku|jêgirtin=Baş guh bidin min, li van der û doran gurekî pir '''fenek''' û zalim heye. Dibê haya we baş ji we hebe, rojekê neyê we nexapîne.|nivîskar={{w|Zinarê Xamo}}|sernav=Şengê û Pengê (çîrok)|url=https://zinarexamo.blogspot.com/2011/03/senge-u-penge.html|malper=zinarexamo.blogspot.com|sal=2011}} ==== Bi alfabeyên din ==== * {{ku-ar|فەنەک}} ==== Têkildar ==== * [[derewîn]] ==== Etîmolojî ==== Ji {{ji|ar|ku|فَنَاء}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|حقه باز}}, {{W+|fa|حیله گر}}, {{W+|fa|نیرنگ باز}} * {{Z|en}}: {{W+|en|deceitful}}, {{W+|en|tricky}}, {{W+|en|disingenuous|guman=erê}}, {{W+|en|dodger|guman=erê}}, {{W+|en|machinator|guman=erê}} * {{Z|tr}}: {{W+|tr|aktör|guman=erê}}, {{W+|tr|çıfıt|guman=erê}}, {{W+|tr|dalavereci|guman=erê}}, {{W+|tr|dolapçı|guman=erê}}, {{W+|tr|dubaracı|guman=erê}}, {{W+|tr|düzenbaz|guman=erê}}, {{W+|tr|düzenci|guman=erê}}, {{W+|tr|hileci|guman=erê}}, {{W+|tr|hilekâr|guman=erê}}, {{W+|tr|iblis|guman=erê}}, {{W+|tr|kaltaban|guman=erê}}, {{W+|tr|numaracı|guman=erê}}, {{W+|tr|oyunbaz|guman=erê}}, {{W|tr|hilecî|guman=erê}} {{werger-bin}} == {{ziman|mt}} == === Navdêr === {{navdêr|mt|z=n}} # {{mijar|mt|heywan}} {{g|ku|keroşk}}, {{g|ku|kerguh}}, {{g|ku|kîvroşk}} #* {{bêmînak|mt}} === Çavkanî === {{rûpela wergerê|mt|keroşk}} 0sni57ndemz8ubm0036qjsifgkkpdcl şebikîn 0 53860 6328711 6287834 2026-08-10T18:03:48Z Bikarhêner 3719 "nikarbûn" nîne. 6328711 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=x-ngh}} # Di nava [[gav]]an de birîn derketin û nekarîna birêveçûnê. #: {{mk|ku|Wê rojê di dawetê de hingî min leyist ez '''şebikîm'''.}} ==== Jê ==== * {{g|ku|şebikî}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} p90ivoppvl8fy45pragbl4hos6p2lss ji ya xwe daketin 0 54701 6328999 6125117 2026-08-11T11:51:42Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328999 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=?}} # [[dest jê berdan]], [[dev jê berdan]], [[êdî]] ne[[kirin]], [[êdî]] [[li gel]] ne[[man]], <br />[[bela|bela xwe jê vekirin]], [[jê gerîn]], [[dest|destên xwe jê şûştin]], [[êdî]] [[may]]ê xwe tê nekirin #* {{jêder-malper|ku|jêgirtin=Ligel her cure berpêyan jî ew '''ji ya xwe daneket'''|url=http://www.diyarname.com/yedek/modules.php?name=News&file=article&sid=1154|malper=diyarname.com|sal=2016}} #* {{jêder-malper|ku|jêgirtin=Her çendîn Atalay, Ahmet Türk, dozggêr û dadwerên Diyarbekirê ev îdîaya Hatip Dicle redkir jî CHP '''ji a xwe daneket''' û mesele bir parlamentoyê|sernav=Baykal bi berpirsê PKK-ê yê Ewropayê re rûnişt|url=http://www.netkurd.com/?mod=news&option=view&id=3777|malper=netkurd.com|sal=2010}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 770ctaenjq98b2msicw448a8f14c6s1 alvêr 0 54899 6328777 6296546 2026-08-11T00:25:19Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328777 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kirîn]] û [[firotin]], [[danûstandin]] #* {{jêder-malper|ku|jêgirtin=baykotkirina dehan şîrket û kompaniyayên biyanî bi sûçê '''alvêr''' û bazirganî tevî Îranê|nivîskar=Siyamend Terbî|sernav=Berhevkirina Pêşnivîsa Biryarnameyekê Ji Hêla Demokratên Amerîkayê Ve Di Kongireya Wî Welatî Da|url=http://www.kurdistanmedia.com/kurmanci/siyasi/file/35.php|malper=kurdistanmedia.com|sal=2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{deyn|tr|ku|alver}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|trade}} * {{Z|tr}}:{{W+|tr|alışveriş}} {{werger-bin}} bpjtwd6ke2wq9y61qn5zx15r5a67f36 demî 0 55223 6328903 6138109 2026-08-11T11:25:50Z Balyozbot 7867 /* Hoker */ sererastkirin 6328903 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[demkî]], [[miweqet]], [[berdem]], [[demdiyar]], [[rabor]], [[ne berdewam]], [[ne daîmî]], [[ne herdemî]], ne [[hertimî]], ne [[mayinde]], <br>tişta/ê bo [[dem]]ek [[diyar]] #: ''Min karek '''demkî''' heye.'' (anku ew kar dê piştî demek diyar biqete.) ==== Etîmolojî ==== Ji {{paş|ku|dem|-î}} ==== Jê ==== * [[demîtî]] ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|tydelik}} * {{Z|de}}: {{W|de|Interim-}}, {{W|de|provisorisch}} * {{Z|da}}: {{W|da|foreløbig}} * {{Z|eo}}: {{W|eo|provizora}} * {{Z|fa}}: {{W|fa|زمانی}} * {{Z|fi}}: {{W|fi|tilapäinen}}, {{W|fi|määräaikainen}}, {{W|fi|väliaikainen}}, {{W|fi|ohimenevä}}, {{W|fi|siirtymä-}} * {{Z|fr}}: {{W|fr|provisoire}}, {{W|fr|temporaire}} * {{Z|nl}}: {{W|nl|tijdelijk}}, {{W|nl|voorlopig}} * {{Z|en}}: {{W|en|provisional}}, {{W|en|temporary}}, {{W|en|interim}}, {{W|en|transitional}}, {{W|en|ad interim}}, {{W|en|periodic|guman=erê}}, {{W|en|chronological|guman=erê}} * {{Z|ca}}: {{W|ca|provisional}}, {{W|ca|provisori}} * {{Z|pap}}: {{W|pap|temporal}} * {{Z|pt}}: {{W|pt|provisório}}, {{W|pt|temporário}} * {{Z|es}}: {{W|es|provisional}}, {{W|es|interino}} * {{Z|tr}}: {{W|tr|geçici}} {{werger-bin}} === Hoker === {{hoker|ku}} # [[demkî]], [[miweqet]], [[berdem]], [[demdiyar]], [[rabor]], [[ne berdewam]], [[ne daîmî]], [[ne herdemî]], ne [[hertimî]], ne [[mayinde]], <br>tişta/ê bo [[dem]]ek [[diyar]] #* {{jêder-malper|ku|jêgirtin=Çelik got ku divê agirbesta PKK'ê ne '''demî''' lê mayînde be. Çelik ku diyar kir rawestiyana tundiyê geşedaneke baş e, got ku divê êdî tundî nebe amûra xweîfadekirinê.|malper=Netkurd.com|sal=8/2010}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 7h1cc6np7wtbv8tw0nwng3xqmeygrj2 6328922 6328903 2026-08-11T11:41:09Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328922 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[demkî]], [[miweqet]], [[berdem]], [[demdiyar]], [[rabor]], [[ne berdewam]], [[ne daîmî]], [[ne herdemî]], ne [[hertimî]], ne [[mayinde]], <br>tişta/ê bo [[dem]]ek [[diyar]] #: ''Min karek '''demkî''' heye.'' (anku ew kar dê piştî demek diyar biqete.) ==== Jê ==== * [[demîtî]] ==== Etîmolojî ==== Ji {{paş|ku|dem|-î}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|tydelik}} * {{Z|de}}: {{W|de|Interim-}}, {{W|de|provisorisch}} * {{Z|da}}: {{W|da|foreløbig}} * {{Z|eo}}: {{W|eo|provizora}} * {{Z|fa}}: {{W|fa|زمانی}} * {{Z|fi}}: {{W|fi|tilapäinen}}, {{W|fi|määräaikainen}}, {{W|fi|väliaikainen}}, {{W|fi|ohimenevä}}, {{W|fi|siirtymä-}} * {{Z|fr}}: {{W|fr|provisoire}}, {{W|fr|temporaire}} * {{Z|nl}}: {{W|nl|tijdelijk}}, {{W|nl|voorlopig}} * {{Z|en}}: {{W|en|provisional}}, {{W|en|temporary}}, {{W|en|interim}}, {{W|en|transitional}}, {{W|en|ad interim}}, {{W|en|periodic|guman=erê}}, {{W|en|chronological|guman=erê}} * {{Z|ca}}: {{W|ca|provisional}}, {{W|ca|provisori}} * {{Z|pap}}: {{W|pap|temporal}} * {{Z|pt}}: {{W|pt|provisório}}, {{W|pt|temporário}} * {{Z|es}}: {{W|es|provisional}}, {{W|es|interino}} * {{Z|tr}}: {{W|tr|geçici}} {{werger-bin}} === Hoker === {{hoker|ku}} # [[demkî]], [[miweqet]], [[berdem]], [[demdiyar]], [[rabor]], [[ne berdewam]], [[ne daîmî]], [[ne herdemî]], ne [[hertimî]], ne [[mayinde]], <br>tişta/ê bo [[dem]]ek [[diyar]] #* {{jêder-malper|ku|jêgirtin=Çelik got ku divê agirbesta PKK'ê ne '''demî''' lê mayînde be. Çelik ku diyar kir rawestiyana tundiyê geşedaneke baş e, got ku divê êdî tundî nebe amûra xweîfadekirinê.|malper=Netkurd.com|sal=8/2010}} ==== Werger ==== {{werger-ser}} {{werger-bin}} e3mdh73tdo9ugjj4htcbanpyrb78b0d alçax 0 55241 6328776 6138116 2026-08-11T00:25:16Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328776 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|alçax}} {{rengdêr|ku}} # [[necamêr]], [[nemerd]], [[nemirov]], [[bêrûmet]], [[bêşeref]], [[bênamûs]], [[ne maqûl]], [[pîs]] #* {{jêder-malper|ku|jêgirtin=Osman Baydemirî di parastina xwe ya mehkemeyê de got “rêkirina zarokan bo serê çiyayan alçaxî” ye.|malper=Nefel.com|sal=8/2010}} ==== Jê ==== * [[alçaxane]] * [[alçaxî]] * [[alçaxîtî]] * [[alçaxtî]] ==== Etîmolojî ==== Ji {{ji|tr|ku|alçak}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|gemein}} * {{Z|en}}: {{W+|en|succumbing|guman=erê}} {{werger-bin}} i5i52osvlrcyaf06av0nc3rykf0oy1w dorfireh 0 57871 6328935 6246268 2026-08-11T11:45:54Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328935 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[berfireh]] #* {{jêder-malper|ku|jêgirtin=Serokkomarê Tirkiyeyê Abdullah Gul 30’ê kanûnê tê Amedê. Ev hatin girîng e. Bendewarî ew e ku Gul ji Amedê peyama sersalê ya ji bo tevahiya Tirkiyeyê bide. Gul dê li Amedê çi bêje? Bêguman, şêwirmendên wî '''dorfireh''' li ser peyama ku ew ê bide dixebitin. Her wiha divê paşguh neyê kirin ku Gul piştî civîna MGK’ê [Encûmena Asayîşa Neteweyî] ya dawiya salê pêk bîne dê bê Amedê. Ev noqte, peyama Gul dê bide hê jî giranbuhatir dike. Lewre tiştên ku Gul dê li Amedê bîne ziman, dê wekî peyamên di civîna MGK’ê de hatine rafînekirin bêne qebûlkirin. Ligel raya giştî ya Tirkiyeyê siyaseta kurd jî dê peyamên ku li Amedê bêne dayîn wisa şîrove bike.|nivîskar=Adil Zozanî|sernav=Heke Abdullah Gul kurd bûya|malper=Welat.com|sal=12/2010}} ==== Formên alternatîv ==== * {{g|ku|dorfere}} * {{g|ku|dorfereh}} * {{g|ku|dorfire}} * {{g|ku|dorferhe}} * {{g|ku|dorfirhe}} * {{g|ku|dewrfireh}} ==== Jê ==== {{kol3|ku|cure=Jê |dorfirehî |dorfirehîtî |dorfirehtî |dorfireh kirin<pos:lêker> |dorfirehkirin<pos:navdêr> |dorfirehkirî<pos:rengdêr> }} ==== Etîmolojî ==== Ji {{pêk|ku|dor|fireh}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|large}}, {{W|en|vast}}, {{W|en|extensive}} * {{Z|tr}}: {{W|tr|derin}}, {{W|tr|etraflı}} {{werger-bin}} nqy85wg8vbwyuaonadfm52dipb6g43l femînîst 0 57972 6328958 6250814 2026-08-11T11:50:00Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328958 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # kesa/ê ku [[daxwaz]]a [[bicihanîn]] û [[zêde]]kirina [[maf]]ên [[jin]]an dike #* {{jêder-malper|ku|jêgirtin=Nivîskara '''femînîst''' Hîdayet Şefkatli Tuksal, di kanala Habertürk de behsa hebûna cemaetek îslamî kir û tofanek [[kesanedî]] rakir. Hîdayet Şefkatli Tuksal, mêrê xwe ji xwe berdide û dibêje: "Min bi rêya nasek xwe ew nas kir û min bi çavê serê xwe dît. Gava ez çûm mala jinikê, min keçek ciwan di mala wê de dît. Piştî pirsê, jinikê got „ew hewîya min e, min ji mêrê xwe re aniye".|nivîskar=|sernav=|url=|malper=Lotikxane.com|sal=1/2011}} ==== Formên alternatîv ==== * [[fêmînîst]] ==== Dijmane ==== * [[maskulîst]] * [[maşîst]] * [[şovenîzm]] ==== Etîmolojî ==== Ji {{deyn|en|ku|feminist}}, ji {{ji|la|ku|femininus}} + [[-îst]]. ==== Têkildar ==== * [[femînîn]] * [[femînîzm]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Feminist|m}}, {{W|de|Feministin|f}} * {{Z|fi}}: {{W+|fi|feministi}} * {{Z|fr}}: {{W|fr|féministe|m}} * {{Z|nl}}: {{W|nl|feminist|m}}, {{W|nl|feministe|f}} * {{Z|en}}: {{W+|en|feminist}} * {{Z|ja}}: {{W|ja|フェミニスト|tr=feminisuto}} * {{Z|cmn}}: {{W|cmn|女權主義者|sc=Hani}}, {{W|cmn|女权主义者|tr=nǚquánzhǔyìzhě}}, {{W|cmn|女權擴張論者|sc=Hani}}, {{W|cmn|女权扩张论者|tr=nǚquánkuòzhānglùnzhě}} * {{Z|ru}}: {{W|ru|tr=feminíst|феминист|m}}, {{W|ru|tr=feminístka|феминистка|f}} * {{Z|es}}: {{W|es|feminista|m}} * {{Z|sv}}: {{W|sv|feminist|c}} * {{Z|tr}}: {{W+|tr|feminist}} * {{Z|el}}: {{W|el|feminist|m}}, {{W|el|feministkinja|f}} {{werger-bin}} === Rengdêr === {{rengdêr|ku}} # [[têkildar]]î [[femînîzm]]ê ==== Werger ==== {{werger-ser}} {{werger-bin}} 0j5h5qm4cy7hgzkpvh4dcne8llardng berhelist 0 60353 6328800 6278156 2026-08-11T00:28:13Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328800 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # [[dijber]], [[dijraber]], [[raqib]], [[beramber]], [[mixalif]], [[oponent]], [[opozisyon]] #* {{jêder-malper|ku|jêgirtin=Dema ko dijmin bi dijminahiya xwe û berpirsên hukmetê jî bi gendeliya xwe Kurdistanê lawaz û qels dikin, '''berhelistên''' hukmetê anko partiyên opozîsyon jî bi şikandina hemî pîroziyan gemiya ko ew bi xwe jî liser in kun dikin.|nivîskar=[[w:Lezgîn Çalî|Lezgîn Çalî]]|sernav=Sedsala 21-ê sedsala kurdan e|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=31&RubricNr=&ArticleNr=5821|malper=Nefel.com|sal=5/2011}} ==== Jê ==== * [[berhelistî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} l3tz6ay8gyxu7c17ik59j8ydb4cc6ji Şablon:bnr herwiha 10 61439 6328853 232659 2026-08-11T01:01:25Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:herwiha binêre]] hat sererastkirin 6328853 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:herwiha binêre]] rs8zw8507u3wm1cnt3aeeldn5rbtb0c Şablon:Binêre herwiha 10 61440 6328848 232653 2026-08-11T01:00:35Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:herwiha binêre]] hat sererastkirin 6328848 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:herwiha binêre]] rs8zw8507u3wm1cnt3aeeldn5rbtb0c begefendî 0 61454 6328797 6246593 2026-08-11T00:27:31Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328797 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # {{f|ku|bi taybetî|qerfî}} [[beg]], [[efendî]], [[rêzdar]], [[birêz]], [[hêja]], [[ezbenî]], [[ezxulam]], [[ezqurban]], [[ezheyran]], [[ezgorî]] #* {{jêder-malper|ku|jêgirtin=Selahattin Demirtaşê serokê gruba BDP-ê ya Parlamentoya Tirkiyeyê digel hinek parlamenterên gruba BDP-ê hat cihê konserê û ji xelkê re axivî û behsa zordariya walî û dozgirên tirk kir û got: — Dozgir ji Veysel Tuncay re dibêje ”yan bibêje ka kê ji te xwest ko tu wê stranê lê bidî yan jî em te bernadin”. Ez bangî wî dozgirê ko ev bêqanûnîtî kiriye dikim: Yê ko xwest ew stran lê bêt dan, bêt guhdarî kirin û bêt gotin ez im. Ma dozgir '''begefendî''' nizane ko gelê kurd li Kurdistanê bi kurdî diaxive û guhdariya stranên kurdî dike. Em dê li hemberî vê bêqanûnîtiyê û mirovrevandinê bi hev re strana ”Herne pêş” bibêjin.|malper=Nefel.com|sal=7/2011}} ==== Bi alfabeyên din ==== * {{ku-ar|به‌گئه‌فه‌ندی}} ==== Formên alternatîv ==== * [[begefindî]] ==== Jê ==== * [[begefendîtî]] ==== Etîmolojî ==== Ji {{qertaf|ku|beg|efendî}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W-|fa|آقای بیگ}} * {{Z|en}}: [[dear]] [[sir]], {{W+|en|sir}} * {{Z|tr}}: {{W+|tr|beyefendi}} {{werger-bin}} gbans38ya382kkm4vexo3a06m23pz1z & Co 0 61467 6328764 5018845 2026-08-11T00:13:43Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328764 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * û ko === Biwêj === {{biwêj|ku}} # ([[filankes]]) û [[heval]]ên xwe, <br>... û [[hevbend]]ên xwe, <br>... û [[hevrê]]yên xwe #* {{jêder-malper|ku|jêgirtin=Dema min ew nivîsa taze xwend, hevpeyvîna Şakelî ya berî salan hat bîra min û jariya hine “akademisyenên” kurd hat ber çav. Gelo mirov wan îgnor bike û nivîsînên wan ji pişt guhan re bavêje çopa gilêş yan jî bersiv bide û argumentên xwe pêşkêş bike. Di vê gengeşiya bersiv dan û nedanê de, min bi baş dît ew bê bersiv nemînin. Her wisa bi baş dibînim kesên gengaza xwendina wan nivîsînan nîn e ji egerên cuda cuda bêpar nebin.|nivîskar=Suleiman Sulêvanî|sernav=''F. Şakelî '''& Co''' fenomeneke xirab di nav întelektueliya kurdên Başûr de|malper=Diyarname.com|sal=6/2007|ziman=}} ==== Etîmolojî ==== [[&]] + [[co.]] ji {{ji|en|ku|company|wate=[[hevbend]]; [[fîrma]]}}. fwcqg1jllw8bfhjlqar9amm9gwrbsg7 kult 0 61607 6329031 6310691 2026-08-11T11:52:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329031 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î|hejamr=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}} 923b8hpewzqujb1pszo3oi6skpq57ga bi avê zanîn 0 62052 6328808 6138720 2026-08-11T00:28:43Z Balyozbot 7867 /* Biwêj */ sererastkirin 6328808 wikitext text/x-wiki {{bnr-n|biavêzanîn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Biwêj === {{biwêj|ku}} # [[melevan]] bûn, [[avjen]] bûn, [[sobar]] bûn, [[melevanî]]kirin [[zanîn]], [[şareza]]ya/ê [[avjenî|avjeniyê]] bûn #* {{jêder-malper|ku|jêgirtin=Min dil da te, poşman im: te dil da ber derba şûr<br>Ez '''bi avê nizanim''', te ez kirime behrek kûr.|nivîskar=Said Yusuf|sernav=Min dil da te|url=http://www.stranenkurdi.com/said-yusuf-min-dil-da-te/|malper=stranenkurdi.com|sal=2011}} ==== Werger ==== {{werger-ser}} {{werger-bin}} b6rsfqtf8ejjkrdu7cuhq0uvb6wjujt Şablon:bnr-hrw 10 62545 6328849 241999 2026-08-11T01:00:45Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:herwiha binêre]] hat sererastkirin 6328849 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:herwiha binêre]] rs8zw8507u3wm1cnt3aeeldn5rbtb0c binnivîs 0 62748 6328815 6327637 2026-08-11T00:28:58Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328815 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} [[Wêne:Subtitle-Example.svg|thumb|250px|Nimûneyek ji binnivîsan di filman de.]] # [[wergerandin|Wergerandina]] [[diyalog]]ên [[film]]an bi [[nivîs]]an <br>(ne bi [[dublaj]]ê). #* {{jêder-malper|ku|jêgirtin=Weke hûn dizanin yek ji projeyên herî mezin ên malpera me wergera fîlman e. Lê dîsa weke hûn dizanin em ji bo fîlman dublajê nakin, em tenê ji bo fîlmên biyanî '''binnivîsan''' amade dikin. Lê heye ku herkes nezane binnivîs çi ne û çawa tên bikaranîn. dixwazim di vê nivîsê de li ser vê yekê bisekinim.|url=http://wergerine.com/index.php?option=com_content&view=article&id=31&Itemid=57|malper=wergerine.com|sal=1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Dijmane ==== * {{g|ku|dublaj}} ==== Jê ==== * {{g|ku|bêbinnivîs}} * {{g|ku|bibinnivîs}} * {{g|ku|binnivîsî}} ==== Etîmolojî ==== Ji {{pêş|ku|bin-|nivîs}}. ==== Bide ber ==== * {{g|ku|binivîs}} * {{g|ku|jêrnav}} * {{g|ku|bernivî}} * {{g|ku|jornivîs}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Unterschrift|m}}, {{W+|de|Untertitel|n}} * {{Z|cs}}: {{W-|cs|titulky|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|zh|字幕}} (zìmù) * {{Z|da}}: {{W-|da|undertekst|c}} * {{Z|fi}}: {{W+|fi|tekstitys}} * {{Z|fr}}: {{W+|fr|sous-titre|n}} * {{Z|gd}}: {{W-|gd|fo-thiotal|n}} * {{Z|hi}}: {{W+|hi|उपशीर्षक|tr=upśīrṣak}} * {{Z|en}}: {{W+|en|subtitle}} {{mane|captioning, textual versions of the dialog in films}}, {{W+|en|subtitles|guman=erê}} * {{Z|ga}}: {{W-|ga|fotheideal|n}} * {{Z|is}}: {{W+|is|texti|n}}, {{W+|is|þýðing|m}}, {{W+|is|þýðingartexti|n}}, {{W-|is|kvikmyndatexti|n}} * {{Z|ja}}: {{W+|ja|字幕|tr=じまく, jimaku}} * {{Z|ko}}: {{W+|ko|자막|tr=jamak|sc=Hang}} ({{W+|ko|字幕|sc=Hani}}) * {{Z|mk}}: {{W-|mk|титл|tr=titl|n}}, {{W-|mk|титлови|tr=títlovi|p}}, {{W-|mk|превод|tr=prévod|n}} * {{Z|ms}}: {{W-|ms|sarikata}} * {{Z|hu}}: {{W+|hu|felirat}} * {{Z|pl}}: {{W+|pl|napisy}} {{p}} * {{Z|pt}}: {{W+|pt|legenda|m}} * {{Z|ru}}: {{W|ru|tr=subtítr|субтитр|n}}, {{W-|ru|субтитры|tr=subtítry|p}} * {{Z|es}}: {{W+|es|subtítulo|n}}, {{W+|es|subtítulos|n}} * {{Z|sv}}: {{W-|sv|textremsa|c}} * {{Z|tr}}: {{W+|tr|altyazı}}, {{W-|tr|alt başlık}}, {{W+|tr|alt yazı}} * {{Z|vi}}: {{W+|vi|phụ đề|xs=Vietnamese}} * {{Z|el}}: {{W|el|tr=ypótitloi|υπότιτλοι|n}} {{werger-bin}} jjtguxsgbtlrkijb0uivil7enrplitw hiseynok 0 62825 6328713 6328598 2026-08-10T18:08:45Z Bikarhêner 3719 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328713 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan}} (''[[devok]]a [[êzidî|êzidiyan]]'') [[şeytanok|Şeytanok]] ([[heywan]]ê bi[[qalik]]). #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * [[hisênok]] * [[huseynok]] * [[husênok]] ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== * [[hiseynokane]] * [[hiseynokfiroş]] * [[hiseynokfiroşî]] * [[hiseynokî]] * [[hiseynoknas]] * [[hiseynoknasî]] * [[hiseynokvan]] * [[hiseynokvanî]] * [[hiseynokvanîtî]] * [[hiseynokvantî]] * [[hiseynokxwer]] * [[hiseynokxwerî]] ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} dpw48ud1uivh0wa5j11up70zcf68103 6328717 6328713 2026-08-10T18:34:46Z Wikihez 7344 /* Jê */ 6328717 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan}} (''[[devok]]a [[êzidî|êzidiyan]]'') [[şeytanok|Şeytanok]] ([[heywan]]ê bi[[qalik]]). #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * [[hisênok]] * [[huseynok]] * [[husênok]] ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== {{kol3|ku|cure=Jê |hiseynokane |hiseynokfiroş |hiseynokfiroşî |hiseynokî |hiseynoknas |hiseynoknasî |hiseynokvan |hiseynokvanî |hiseynokvanîtî |hiseynokvantî |hiseynokxwer |hiseynokxwerî }} ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} 3dkzqo9gex6o2ne3s5r2rffrd9hmyx7 6328718 6328717 2026-08-10T18:44:44Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328718 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan}} (''[[devok]]a [[êzidî|êzidiyan]]'') [[şeytanok|Şeytanok]] ([[heywan]]ê bi[[qalik]]). #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * [[hisênok]] * [[huseynok]] * [[husênok]] ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== {{kol3|ku|cure=Jê |hiseynokî }} ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} 0isjfxs3m8whsobti6tx6k1u6orv0fn 6328719 6328718 2026-08-10T18:45:17Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328719 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan|[[devok]]a [[êzidî|êzidiyan]]}} [[şeytanok|Şeytanok]] ([[heywan]]ê bi[[qalik]]). #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * [[hisênok]] * [[huseynok]] * [[husênok]] ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== {{kol3|ku|cure=Jê |hiseynokî }} ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} ju876uuvhx30j63jb749g65otnpc2oz 6328720 6328719 2026-08-10T18:45:51Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6328720 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan|[[devok]]a [[êzidî|êzidiyan]]}} [[heywan|Heywan]]ê bi[[qalik]]. #: {{hevmane|ku|şeytanok}} #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * {{g|ku|hisênok}} * {{g|ku|huseynok}} * {{g|ku|husênok}} ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== {{kol3|ku|cure=Jê |hiseynokî }} ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} s9s0lt9qt8r4ppjnrt3865vlw5onr2v 6328721 6328720 2026-08-10T18:46:18Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328721 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Snail2.JPG|thumb|Şeytanokek]] {{navdêr|ku|z=n}} # {{f|ku|heywan|[[devok]]a [[êzidî|êzidiyan]]}} [[heywan|Heywanekî]] bi[[qalik]] e. #: {{hevmane|ku|şeytanok}} #* {{jêder|ku|jêgirtin=Michael Chyet: Êzîdî dibêjnê "hiseynok", ji ber ku ew newêrin peyiva "şeytan" bi lêv bikin. Li gora dînê wan/ola wan qedexe ye ku wê peyivê bêjin.|di koma "Zimanê Kurdî" ya li ser [[Rûname]]yê de, 1/2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Formên alternatîv ==== * {{g|ku|hisênok}} * {{g|ku|huseynok}} * {{g|ku|husênok}} ==== Navê zanistî ==== * ''[[Gastropoda]]'' ==== Jê ==== {{kol3|ku|cure=Jê |hiseynokî }} ==== Etîmolojî ==== Ji {{paş|ku|Husên|-ok}}. Qiseya {{q|ku|şeytan}} bal Êzidiyan heram e ku bê gotin. Lewma li şûna gotina ''şeytan'' ya di {{q|ku|şeytanok}} da navê Husên bin Elî dibêjin, bide ber dîsan jî çanda Êzidiyan {{q|ku|Sultan}} {{q|ku|Êzîd}} (padşehekî pîroz di dînê wan da, ya rast Yezîdê xelîfeyê pêncan yê Emewiyan e, ku Husên û malbata wî qirr kir). ==== Werger ==== {{werger-bnr|şeytanok}} tpelsbla3e2f9e78o8p99sbib6frsho bestseller 0 62914 6328805 5954738 2026-08-11T00:28:30Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328805 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === # bêstsêlir # bestseler === Rengdêr === {{ku-tewîn-rd|bestseller}} {{rengdêr|ku}} # [[berhem]]ên ku [[pirr]] tên [[firotin]] (bi taybetî [[pirtûk]]) #* {{jêder-malper|ku|jêgirtin=Kitêba Ehmedê Xanî "[[Mem û Zîn]]" li Kurdistanê û Tirkiyeyê bû '''bestseller'''.|malper=Nefel.com|sal=2/2012}} # kesa/ê ku [[berhem]]ên wî gelek tên [[firotin]] ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|bestseller}}: ji [[best]] ([[baş]]tirîn, herî baş) + [[seller]] ([[-firoş]], [[firoşkar]]) ==== Werger ==== {{werger-ser}} {{werger-bin}} 72agga6aemwk78rn75du52uv0xhkw5k berdanberdan 0 63260 6328854 6298822 2026-08-11T01:08:52Z Wikihez 7344 /* Navdêr */ 6328854 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kaos|Kaos]], [[bêahengî]], [[nearamî]], [[tevlihevî]], [[nîqaş]], [[qerqeşe]]. # [[serbestî|Serbestî]], [[serberdayî]], ne[[bestî]]. #: {{nm|ku|Di siyasetê da, '''berdanberdan''' û bêrêgezî herdem zirarê dide keseyatîya mirovan.}} #* {{jêder-malper|ku|jêgirtin=Hewqas '''berdanberdan''' û tevlîhevî çawa çêdibin? Mirov dikare van bûyeran wek anarşîzm û sikandal jî binav bike.|nivîskar=Siddiq Bozarslan|sernav=Kurdistan ne Tunûs e û ne jî Misir! -2|url=http://netewe.com/node/nivzede.php?id=98|urlya-arşîvê=https://web.archive.org/web/20130518050507/http://netewe.com/node/nivzede.php?id=98|malper=netewe.com|dîrok=02.02.2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[berdan berdan]] ==== Etîmolojî ==== Ji {{pêk|ku|berdan|berdan}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|chaos}}, {{W-|af|baaierd}} * {{Z|de}}: {{W+|de|Chaos|n}}; {{W+|de|Wirrwarr|m}} * {{Z|da}}: {{W+|da|rod}} * {{Z|eo}}: {{W-|eo|ĥaoso}} * {{Z|fo}}: {{W-|fo|ruðuleiki}}, {{W-|fo|fløkja}} * {{Z|fi}}: {{W+|fi|kaaos}}; {{W+|fi|epäjärjestys}} * {{Z|fr}}: [[chaos]] * {{Z|fur}}: {{W-|fur|disoarder}}, {{W-|fur|tizeboel}} * {{Z|fy}}: {{W-|fy|disoarder}}, {{W-|fy|tizeboel}} * {{Z|nl}}: {{W+|nl|chaos}}; {{W+|nl|wanorde}}, {{W+|nl|baaierd}}, {{W+|nl|rommel}}, {{W+|nl|warboel}}, {{W+|nl|warwinkel}} * {{Z|en}}: {{W+|en|chaos}}; {{W+|en|disorder}}, {{W+|en|tangle}}, {{W+|en|havoc}}, {{W+|en|disarray}} * {{Z|ca}}: {{W+|ca|caos}} * {{Z|la}}: {{W-|la|chaos}} * {{Z|ms}}: {{W-|ms|kekacauan}} * {{Z|pap}}: {{W-|pap|babel}}, {{W-|pap|bochincha}}, {{W-|pap|desòrden}}, {{W-|pap|kaos}} * {{Z|pt}}: {{W+|pt|caos}} * {{Z|ru}}: {{W+|ru|беспорядок}} * {{Z|es}}: {{W+|es|caos}} * {{Z|sv}}: {{W+|sv|kaos}}, {{W+|sv|oordning}}, {{W+|sv|trassel}} * {{Z|tr}}: {{W+|tr|kaos}} * {{Z|el}}: {{W+|el|χάος}} {{werger-bin}} mu1qlttpitsas8ie1mc5sqlwq4ac4y3 gava dî 0 63262 6328874 6256506 2026-08-11T10:45:39Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328874 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # çendek [[berê]], hinekî berî niha, di van demên nêzik de #* {{jêder-malper|ku|jêgirtin='''Gava dî''' min nivîsa A. Tîgrîs di www.e-weje.com'ê da xwand. Li gorî ragîhandina wî miletê kurd yê ku ber bi meydana newrozê dimeshiya ji nîviyê zêdetir bi tirkî u yê din jî bi kurdiyeke xirab bi hevdu ra deng dikirine|nivîskar=Zinarê Xamo|sernav=Newroza îsal û evîndariya kurdan ya zimanê tirkî|url=http://zinarexamo.blogspot.com/2009/03/newroza-isal-u-evindariya-kurdan-ya.html|malper=zinarexamo.blogspot.com|sal=2009}} #* {{jêder-malper|ku|jêgirtin=Guh bide min. Ka çî hate serê min. '''Gavadî''' ezli ser sergo yê Rizo runiştî bûm. Hayê min ji tiştek tine bû.|nivîskar=Bedirxan Epözdemir|sernav=MİHEMEDÊ HELİME|url=http://www.pen-kurd.org/kurdi/bedirxan-epozdemir/mihemede-helime.html|malper=pen-kurd.org}} ==== Formên alternatîv ==== * [[gavadî]] ==== Dijmane ==== * [[ji zû ve]] ==== Etîmolojî ==== * [[gav]]a+ [[dî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|kürzlich}}, {{W|de|gerade|guman=erê}}, {{W|de|neuerlich|guman=erê}} * {{Z|en}}: {{W|en|recently}}, {{W|en|lately}} * {{Z|tr}}: {{W|tr|yakınlarda}}, {{W|tr|az önce}} {{werger-bin}} 12uzhi9cl6raobln7ek6c2lp4hwb09w mango 0 111726 6329049 6103948 2026-08-11T11:53:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329049 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === [[Wêne:Mango 2008-3-1.JPG|thumb|Mango]] {{navdêr|ku|z=}} # [[fêqî|Fêqiyekî]] [[germistan]]an yê bi [[şikl]]ê [[hêk]]an û bi [[reng]]ê [[pirteqalî]] ye. #* {{jêder-malper|ku|jêgirtin='''Mango''', ew fêkiyê ku li navçeyên [[germesêr]] wek Hindistan û Afrîqayê çêdibe, li Sûriyê û bi taybetî li Tertûs, Laziqiyê û bakurê Idlibê di destpêka sedsala bîst û yekemîn de ji aliyê çend endazyaran ve li nav rûberekî sînordar de hatiye çandin.|malper=Rudaw.net/kurmanci|sal=10/2022}} ==== Navê zanistî ==== * ''[[Mangifera indica]]'' ==== Etîmolojî ==== Ji {{ji|en|ku|mango}} ji {{ji|pt|ku|manga}} {{ji|ms|ku|mangga}} ji zimanekî [[dravîdî]], bo nimûne malayalamî yan tamilî. ==== Werger ==== {{werger-ser}} * {{Z|abx}}: {{W|abx|mangga}} * {{Z|af}}: {{W|af|veselperske}} * {{Z|msm}}: {{W|msm|mangga}} * {{Z|de}}: {{W|de|Mango|m}} * {{Z|bm}}: {{W|bm|mangoro}} * {{Z|bci}}: {{W|bci|amanngo}} * {{Z|dua}}: {{W|dua|jangolo}} * {{Z|id}}: {{W|id|mangga}} * {{Z|ar}}: {{W|ar|مانجو}} * {{Z|eo}}: {{W|eo|mango}} * {{Z|fi}}: {{W|fi|mango}} * {{Z|fr}}: {{W|fr|mangue|n}} * {{Z|gl}}: {{W|gl|manga|m}} * {{Z|hi}}: {{W|hi|आम}} * {{Z|nl}}: {{W|nl|mango}} * {{Z|he}}: {{W|he|מנגו|n}} * {{Z|io}}: {{W|io|mango}} * {{Z|en}}: {{W|en|mango}} * {{Z|ja}}: {{W|ja|マンゴー|tr=mangō}} * {{Z|cgc}}: {{W|cgc|mangga}} * {{Z|ca}}: {{W|ca|mango}} * {{Z|ks}}: {{W|ks|اَمب}} * {{Z|ko}}: {{W|ko|망고|R=mango}} * {{Z|ln}}: {{W|ln|língoló}}, {{W|ln|mángoló}} * {{Z|mg}}: {{W|mg|manga}} * {{Z|ml}}: {{W|ml|മാങ്ങ|R=māṅṅā}} * {{Z|gv}}: {{W|gv|mango}} * {{Z|mh}}: {{W|mh|mañko}} * {{Z|no}}: {{W|no|mango}} * {{Z|oc}}: {{W|oc|mango}} * {{Z|pln}}: {{W|pln|mango}} * {{Z|myp}}: {{W|myp|xáohoi}} * {{Z|pl}}: {{W|pl|mango|nt}} * {{Z|pt}}: {{W|pt|manga|m}} * {{Z|ru}}: {{W|ru|манго}} * {{Z|se}}: {{W|se|máŋgu}} * {{Z|ses}}: {{W|ses|mangoro}} * {{Z|es}}: {{W|es|mango|n}} * {{Z|sv}}: {{W|sv|mango}} * {{Z|zdj}}: {{W|zdj|emɓe}}, {{W|zdj|yemɓe}} * {{Z|ta}}: {{W|ta|மாங்காய்|R=māṅkāy}} * {{Z|tr}}: {{W|tr|mango}} * {{Z|tvu}}: {{W|tvu|níngol}} * {{Z|ur}}: {{W|ur|آم}} * {{Z|vi}}: {{W|vi|quả xoài}} * {{Z|wls}}: {{W|wls|foʻi mago}} * {{Z|wo}}: {{W|wo|mango}} {{werger-bin}} == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-mango.ogg|dever=DYA}} * {{deng|en|en-au-mango.ogg|dever=Awistralya}} * {{deng|en|LL-Q1860 (eng)-Simplificationalizer-mango.wav|Deng|dever=New Jersey, DYA}} * {{deng|en|LL-Q1860 (eng)-Wodencafe-mango.wav|Deng|dever=Teksas, DYA}} === Navdêr === {{navdêr|en}} # [[mango#ku|Mango]]. 1md14hruy947aoxkfg8gs4awm9hye6x artezyen 0 123909 6328781 6139240 2026-08-11T00:25:48Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328781 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === [[Wêne:Blâme puits de Bontemps (18).JPG|thumb|Bîra '''artezyen'''.]] {{rengdêr|ku}} # [[av]] han [[şile]]yeke din ya [[bîr]]an ku bi [[hêz]]a xwe [[bilind]] dibe: #* {{jêder-malper|ku|jêgirtin=Waliyê Şirnexê Osman Bilgin diyar kir, li herêma Çiyayê Gabarê ya rezerva petrolê lê hat dîtin, ji bîra '''artezyen''' a ekîb li ser dixebitin, petrol derket.|malper=Aa.com.tr/kk|sernav=Ji bîra artezyen a li qada petrolê ya li Çiyayê Gabarê hat vekirin petrol derket|sal=5/2023|url=https://www.aa.com.tr/kk/abor%C3%AE/ji-b%C3%AEra-artezyen-a-li-qada-petrol%C3%AA-ya-li-ciyay%C3%AA-gabar%C3%AA-hat-vekirin-petrol-derket/2906620}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|puits artésien|w=bîra artezyen}} ji navê herêma {{q|fr|Artois}} ku bîreke wisa lê hatibû dîtin. Heman peyv wek {{q|en|artesian}} ketiye îngilîzî jî. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|artesisch}} * {{Z|fr}}: {{W+|fr|artésien}} * {{Z|en}}: {{W+|en|artesian}} * {{Z|tr}}: {{W+|tr|artezyen}} * {{Z|el}}: {{W+|el|αρτεσιανός}} {{werger-bin}} == {{ziman|tr}} == === Rengdêr === {{rengdêr|tr}} # {{g|ku|artezyen}}, [[bîr]]a artezyen o3cajamsacc1hn6rzz5b2uro3taf1gt fay 0 136145 6328957 6306452 2026-08-11T11:49:56Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328957 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kelişte]] yan [[şeq]]eke [[mezin]] li [[erd]]ekê ku bi taybetî ji ber [[erdhej]]înê [[peyda]] bûye: #* {{jêder-malper|ku|jêgirtin=Endezyarê li Rêveberiya Vekolîn û Lêgerina Madeyan (MTA) Hasan Elmacî, ji bo Edeneyê hişyariya erdhejeke dijwar da û got ku fayeke çalak heye di wê herêmê re derbas dibe. Hasan Elmacî herwiha dibêje ew '''fay''' potansiyela erdhejeke zêdeyî 7.1 pile [[li xwe girtin|li xwe digire]] û got, "Erdhejêke bi pileya 7.1 dê Edeneyê [[ji nav birin|ji nav bibe]]."|url=https://www.rudaw.net/kurmanci/middleeast/turkey/160420235|sernav= Pisporê erdhejê hişyariya erdhejeke dijwar da|malper=Rûdaw.net|sal=4/2023}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Deyn ji {{deyn|tr|ku|fay}} ji {{ji|fr|ku|faille}} ji {{q|fr|faillir|w=[[têk çûn]]}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|en}} == === Navdêr === {{en-navdêr}} # [[perî]], [[horî]] == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[şeq]], [[derz]], [[kelişte]] ioa3xdx7xf61d7b4iylqybiblbx3kvr leh 0 152374 6329041 5156138 2026-08-11T11:53:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329041 wikitext text/x-wiki {{bnr-h|Leh}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Serenav === {{serenav|ku}} # Kesê ji [[Polonya]]yê an bi eslê xwe [[polonî]] ye. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Pole|n}}, {{W+|de|Polin|m}} * {{Z|hi}}: {{W+|hi|पोल|tr=pol}}, {{W+|hi|पोलिश|tr=poliś}} * {{Z|en}}: {{W+|en|Pole}} * {{Z|ja}}: {{W+|ja|ポーランド人|tr=ポーランドじん, pōrandojin}} * {{Z|ko}}: {{W+|ko|폴란드인|tr=pollandeu'in}} * {{Z|tr}}: {{W+|tr|Polonyalı}}, {{W+|tr|Leh}} {{werger-bin}} === Navdêr === {{navdêr|ku}} # [[alî girtin|Ali]]yê tiştekî an kesekî [[alî girtin|girtin]]. #* {{jêder-malper|ku|jêgirtin=Di dengdana kongreyê de 51 kes '''di lehê de''' û 58 kes di eleyhiya derketina wî ya derve de dengê xwe dan.|sernav=Nehiştin serokê Perûyê Castillo ji Perûyê here derveyê welat|url=https://www.peyamakurd.info/kurmanci/C%C3%AEhan/nehistin-seroke-peruye-castillo-ji-peruye-here-derveye-welat|urlya-arşîvê=https://web.archive.org/web/20230624220612/https://www.peyamakurd.info/kurmanci/C%C3%AEhan/nehistin-seroke-peruye-castillo-ji-peruye-here-derveye-welat|malper=peyamakurd.info|dîrok=2022-11-19}} #* {{jêder-malper|ku|jêgirtin=Piştî hilbijartinên DYAyê, hîn encamên fermî dîyar nebûbe jî, serkeftina Joe Biden ji alîyê gelek xwende û sîyasetmedarên me ve weke mizgînîyekê hate pêşwazîkirin û bû sedemê kêfxweşîya hin terefên kurd. Ji ber hin gotinên Biden yên '''di lehê''' kurdan '''de''', tê hêvîkirin ku di serdema serokatîya Biden de, helwêsta DYAyê ya di herêmê de dê bê guhertin û piştgiriya navdewletî ji bo dewletbûyina kurdan dê zêde bibe.|nivîskar=Fuad Onen|sernav=Serkeftina Joe Biden û şahiya kurdan|url=https://pelkurd.com/fuat-onen/serkeftina-joe-biden-u-sahiya-kurdan/|urlya-arşîvê=https://web.archive.org/web/20230624221456/https://pelkurd.com/fuat-onen/serkeftina-joe-biden-u-sahiya-kurdan/|malper=pelkurd.com|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Îro ji bo vê daxwaza kurdan şertên derve gelkî musaîd in, lê wek hertiştî ev şert jî ne ebedî ne, sibe dikane '''di lehê''' kurdan '''da''' biguhere.|nivîskar=Zinarê Xamo|url=https://zinarexamo.blogspot.com/2014/11/bi-xer-eme-kurdistana-serbixwe-bibinin.html|urlya-arşîvê=https://web.archive.org/web/20230624222744/https://zinarexamo.blogspot.com/2014/11/bi-xer-eme-kurdistana-serbixwe-bibinin.html|malper=zinarexamo.blogspot.com|dîrok=2014-11-20}} ==== Dijmane ==== * {{g|ku|eleyh}}, {{g|ku|eleyhî}} ==== Werger ==== {{werger-ser}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[leh#ku|leh]], [[berwer]] # [[havil]], [[sûd]], [[kelk]] ==== Dijmane ==== * {{g|tr|aleyh}} ''(1)'' 9p3zdmh4qc6jxi2e3yycq3hy3n3g52j lekan 0 152390 6329042 6311140 2026-08-11T11:53:17Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329042 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{dever|Serhed|Serheda Jorîn}} Alavên ku tên pêkirin bo ku mirov li ser berfê pê bigere û neçike nav berfê de. #: {{hevmaneyên peyvê|ku|kele|leyan|liyan|niyal}} #* {{jêder-malper|ku|jêgirtin=Berf usa hişk dibû, wekî me, zara, bê '''lekana''' xwe ser dişimitand.|nivîskar=Emerîkê Serdar|sernav=GUMAN|url=http://kurd.amarikesardar.com/?p=271|malper=kurd.amarikesardar.com|sal=2014}} #* {{jêder-malper|ku|jêgirtin=Apê me yê Gurco dibêje heta çiri çira çarix û '''lekana''' werin bîra min, ez nayêm Serhedê.|nivîskar=Hasan Akbal/Hesenê Alê|sernav=DENGBÊJ Û STRANÊN ME|url=https://www.kurdipedia.org/files/books/2013/88669.PDF?ver=130240716467026376}} [[Wêne:Город Амурск музей (38).JPG|thumb|230пкс|Cotek lakanên dewra berê.]] [[Wêne:Ski.jpg|100px|thumb|230пкс|Lakana berfê ya modern.]] ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|lakan}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|لەکان}} * {{Z|zza}}: {{W-|zza|lekan}} <ref>{{pirtûk|nivîskar=Rosan Hayıg|url=https://www.academia.edu/37632683/Zazaca_T%C3%BCrk%C3%A7e_s%C3%B6zl%C3%BCk|sernav=Zazaca Türkçe Sözlük|sal=2012|isbn=978-975-8277-43-8|nekat=1}}</ref> ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W|ar|حذاء الثلج|guman=erê}} پاچیله * {{Z|fa}}: {{W|fa|کفش برف|guman=erê}}, {{W|fa|پاچیله}} * {{Z|fi}}: {{W|fi|lumikenkä|guman=erê}} * {{Z|en}}: {{W|en|snowshoe}} * {{Z|ru}}: {{W|ru|лыжи}}, {{W|ru|лыжи}} * {{Z|tr}}: {{W|tr|kar ayakkabısı}}, {{W|tr|kasnak|guman=erê}}, {{W|tr|lekan}}, {{W|tr|hedik|guman=erê}} {{werger-bin}} === Çavkanî === {{çavkanî}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{f|tr|Wan}} [[leyan]], {{g|ku|lekan}} (Alava ji bo meşîna ser berfê) <ref>{{malper|url=https://sozluk.gov.tr/|sernav=DERLEME SÖZLÜĞÜ (TÜRKİYE TÜRKÇESİ AĞIZLARI SÖZLÜĞÜ)|malper=sozluk.gov.tr}}</ref> === Çavkanî === {{çavkanî}} 4px4zjrsp5lqijpaomq3d5pwcno5lgm ons 0 157488 6329079 6139310 2026-08-11T11:54:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329079 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[weqî]], <br>[[pîvan]]eke [[giranî|giraniyê]] anku [[wezn]]ê ya 28,3495 [[gram]] e<br> (bi taybetî bo [[pîvan]]a [[zêr]]) #* {{jêder-malper|ku|jêgirtin=Li gorî pêşbîniyên City Bankê her '''ons'''a zêr dê heta 6-12 mehan bibe 3 hezar dolar.|malper=Rudaw.net/kurmanci|sal=10/2024|sernav=City Bank: Onsa zêr dê bibe 3000 dolar|url=https://www.rudaw.net/kurmanci/business/22102024}} ==== Etîmolojî ==== Ji {{ji|fr|ku|once}} ji {{ji|la|ku|uncia}}, têkilî {{g|la|ūnus|w=yek}}. ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W-|sq|ons|m}} * {{Z|de}}: {{W+|de|Unze|m}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܐܘܢܩܝܐ|m|tr=ʾūnqīyā}} * {{Z|bn}}: {{W+|bn|আউন্স}} * {{Z|bg}}: {{W-|bg|унция|m}} * {{Z|cs}}: {{W+|cs|unce|m}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|安士|tr=on1 si6-2}} *: {{Z|cmn}}: {{W+|cmn|盎司|tr=àngsī}} * {{Z|id}}: {{W+|id|ons}} * {{Z|ar}}: {{W-|ar|أُوقِيَّة|m}}, {{W-|ar|وِقِيَّة|m}}, {{W-|ar|أَوْنْس|n}}, {{W-|ar|أونصة|m|tr=ʔunṣa}}, {{W-|ar|أونسة|m|tr=ʔunsa}} * {{Z|hy}}: {{W+|hy|ունցիա}}, {{W+|hy|ունկի}} * {{Z|eo}}: {{W+|eo|unco}} * {{Z|gez}}: {{W-|gez|ወቄት}} * {{Z|fo}}: {{W-|fo|unsa|m}} * {{Z|fi}}: {{W+|fi|unssi}} * {{Z|fr}}: {{W+|fr|once|m}} * {{Z|fur}}: {{W-|fur|once|m}} * {{Z|gd}}: {{W-|gd|unnsa|n}} * {{Z|gl}}: {{W-|gl|onza|m}} * {{Z|hi}}: {{W+|hi|औंस}} * {{Z|he}}: {{W+|he|אוּנְקִיָה|m|tr=unqiyá}} * {{Z|enm}}: {{W-|enm|ounce}} * {{Z|en}}: {{W+|en|ounce}} * {{Z|ga}}: {{W-|ga|unsa|n}}, {{W-|ga|uinge|m}} *: {{Z|sga}}: {{W-|sga|ungae|m}} * {{Z|it}}: {{W+|it|oncia|m}} * {{Z|is}}: {{W+|is|únsa|m}} * {{Z|ja}}: {{W+|ja|オンス|tr=onsu}} * {{Z|ca}}: {{W+|ca|unça|m}} * {{Z|ko}}: {{W-|ko|온스}} * {{Z|la}}: {{W-|la|uncia|m}} * {{Z|lv}}: {{W-|lv|unce|m}} * {{Z|lt}}: {{W-|lt|uncija|m}} * {{Z|ms}}: {{W-|ms|auns}} * {{Z|mt}}: {{W-|mt|uqija|m}} * {{Z|mi}}: {{W-|mi|aunihi}} * {{Z|hu}}: {{W+|hu|uncia}} * {{Z|mn}}: {{W-|mn|унци}} * {{Z|nrf}}: {{W-|nrf|onche|m}} * {{Z|oc}}: {{W-|oc|onça|m}} * {{Z|uz}}: {{W-|uz|untsiya}} * {{Z|pl}}: {{W+|pl|uncja|m}} * {{Z|pt}}: {{W+|pt|onça|m}} * {{Z|rm}}: {{W-|rm|onza|m}}, {{W-|rm|untscha}}, {{W-|rm|unza}}, {{W-|rm|uonscha}} * {{Z|ro}}: {{W+|ro|uncie|m}} * {{Z|ru}}: {{W+|ru|у́нция|m}} * {{Z|scn}}: {{W-|scn|oncia|m}}, {{W-|scn|uncia}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|у̑нца|m}} *: Latînî: {{W+|sh|ȗnca|m}} * {{Z|es}}: {{W+|es|onza|m}} * {{Z|sw}}: {{W-|sw|wakia}} * {{Z|sv}}: {{W+|sv|uns}} * {{Z|tl}}: {{W-|tl|onsa}} * {{Z|th}}: {{W-|th|ออนซ์}} * {{Z|tr}}: {{W+|tr|ons}} * {{Z|vec}}: {{W-|vec|onsa|m}}, {{W-|vec|onza}}, {{W-|vec|onzha}}, {{W-|vec|onça}} * {{Z|cy}}: {{W+|cy|owns|m}} * {{Z|km}}: {{W-|km|អោនស៍}} * {{Z|el}}: {{W+|el|ουγγιά|m}} * {{Z|zu}}: {{W-|zu|iawunsi|5}} {{werger-bin}} :{{werger çavkanî|en|ounce|beş=Ev qismê Wergerê|oldid=82402428}} == {{ziman|af}} == === Cînav === {{cînav|af}} # [[em#ku|em]] (wek [[biker]]) == {{ziman|sq}} == === Navdêr === {{navdêr|sq|z=m}} # {{mijar|sq|pîvan}} {{g|ku|ons}}, {{g|ku|weqî}} #* {{bêmînak|sq}} === Çavkanî === {{rûpela wergerê|sq|ons}} == {{ziman|id}} == === Navdêr === {{navdêr|id}} # {{mijar|id|pîvan}} {{g|ku|ons}}, {{g|ku|weqî}} #* {{bêmînak|id}} === Çavkanî === {{rûpela wergerê|id|ons}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # ons (yekeya giraniyê ku li Fransayê 30, 59 gr û li îngilistanê 28, 349 gr û li Holandayê jî 100 gr ye) == {{ziman|vo}} == === Cînav === {{cînav|vo}} # [[ew#ku|ew]] (pirjimar), [[wan#ku|wan]] 17bmmpaojezle7kbszecl6rnciqse13 patetik 0 158649 6328729 4634034 2026-08-10T21:38:37Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328729 wikitext text/x-wiki {{h-bnr|patetîk}} == {{ziman|tr}} == === Rengdêr === {{rengdêr|tr}} # [[kartêker]], [[bibandor]] 4cughegkr808qx9aq395uu7nes67m0u çiriş otu 0 175129 6328873 6208774 2026-08-11T09:43:19Z Bibliophile 1215 6328873 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[gûlik]] (Asphdelus) # [[loxîn]] o8wp8qiw27ruoxdl1mmh1b5o5wrwokq derbest 0 178825 6328905 6279967 2026-08-11T11:26:04Z Balyozbot 7867 sererastkirin 6328905 wikitext text/x-wiki {{bnr-h|Derbest}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # dergirtî, [[nixamtî]] <br/>Tiştê ku derê wî hatiye girtin û bestin. #* {{jêder-malper|ku|jêgirtin=bi wêne û helwest e<br>xeyal tê de serbest e<br>tirs ji ber wê bindest e<br>bê awaz be '''derbest''' e|nivîskar=Ferhadê Içmo|sernav=Helbest|url=https://www.helbestakurdi.com/helbest/ferhade-icmo--helbest.html|malper=helbestakurdi.com|sal=2002}} #* {{jêder-pirtûk|ku|jêgirtin=Ey keça ciwan ser renga hinek al,<br> Der best nînim, rêbarim, derbest nînim, revok nînim<br>Dizanî şerpeze û '''derbest''' yekcar çira min |nivîskar=Prof. Qanatê Kurdo|sernav=Tarixa edebyeta kurdi|url=https://www.kurdipedia.org/docviewer.aspx?lng=13&book=20140505141231100527|sal=1992|çap=2|rûpel=317}} # [[cidî|Cidî]], [[muhîm]]. #* {{jêder-malper|ku|jêgirtin=Pêwîst û girînge ku li ser heman astê ciddî û '''derbest''' û bi wefadarîya Neteweyî û Niştîmanî, dûr ji torebûn heqaret û kardanên kesokî – şexsî bê bi karanîn.|nivîskar=Konseya rêveber ya KNK|sernav=Hildana Ala Herêma Başûrê Kurdistanê li Kerkûk|url=http://www.kongrakurdistan.eu/ku/hildana-ala-herema-basure-kurdistane-li-kerkuk/|malper=kongrakurdistan.eu|sal=2017}} #* {{jêder-kovar|ku|jêgirtin=Heke dewlet bi awayekî '''derbest''' li Yeşil digere, ew çawa dikare here Başûr li ser navê dewletê ji bo anîna Şemdin Sakik xebatê bike?|kovar=Azadiya Welat|sernav=Bêyî çeteyan şerê taybet nameşe|url=http://arsivakurd.org/images/arsiva_kurd/kovar/azadiya_welat/azadiya_welat_122.pdf|nivîskar=Samî Tan|hejmar=122|sal=1998|rûpel=2}} #* {{jêder-malper|ku|jêgirtin=Tevî hewara mirovatî yê malbat û xelkê dilsozên din yên li Kurdistan û Îranê, rejîma Îranê bê xem û bê '''derbest''' ti cûre bersivek bi banga azadîxwazî, mirovperweriy û aşitîxwazîyê nade.|nivîskar=|sernav=KNK: Em xwedî li Penahî derkevin|url=http://www.yeniozgurpolitika.com/index.php?rupel=nuce&id=86360|malper=yeniozgurpolitika.com|sal=2018}} # [[xeleq|Xeleq]].<ref>{{Ferhenga Destî|r=88}}</ref> #* {{jêder-kovar|ku|jêgirtin=Li ber dergehê<br>Dilê min aza û serbest<br>Vedwestin<br>Vane<br>Ji '''derbesta''' mirinê<br>Bi dizî daketine|kovar=Pênûsa nû|sernav=0mîdên windayî|url=http://www.penusanu.com/penusanu/PN-kurdi-23.pdf|nivîskar=Boniye Cegerxwin|weşanxane=weşanên Hevbenda Nivîskar û Rojnamevanên Kurd li Sûrî|hejmar=23|sal=2014|rûpel=23}} ==== Jê ==== * [[derbest kirin]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|dergirtî|1}} * {{Z|ar}}: {{W+|ar|كفن}}, {{W+|ar|نعش}}, {{W+|ar|نقاب}} * {{Z|fa}}: {{W+|fa|در بسته}}, {{W+|fa|پلوم}}, {{W+|fa|آک بند}} * {{Z|en}}: {{W+|en|pall}}, {{W|en|copyhold|guman=erê}} * {{Z|tr}}: {{W+|tr|kapalı}}, {{W+|tr|mahfuz}} {{werger-bin}} {{werger-ser|cidî, muhîm|2}} * {{Z|en}}: {{W+|en|serious}}, {{W|en|important}} * {{Z|tr}}: {{W+|tr|ciddi}}, {{W+|tr|önemli}} {{werger-bin}} {{werger-ser|xeleq|3}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # {{guherto|darbest}} #* {{jêder-malper|ku|jêgirtin=Cenazeyê Akçelîk bi konvoyeke ji sedan wesayîtî, anîn gundê Şahê yê bajaroka Esnedereyê. Piştî nimêja cenaz ya li mizgefta gund, '''derbest''' li ser milan heta goristana gund hat hilgiritin.|sernav=Gerilayê HPG’ê Akçelîk ber bi rêwîtiya dawî ve hate oxirkirin|url=https://anfkurdi.com/kurdistan/gerilaye-hpg-e-akcelik-ber-bi-rewitiya-dawi-ve-hate-oxirkirin-67759|malper=anfkurdi.com|sal=2016}} === Çavkanî === {{çavkanî}} pkk02if4lvpwq840rap5cm30eb7tvz1 hetîketî 0 179866 6328980 6282412 2026-08-11T11:51:00Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328980 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[şermezarî]], [[rezîltî]], sucê ku mirov an jî saziyekî li ber raya giştî û li hember mirovan [[rûreş]] dike #* {{jêder-malper|ku|jêgirtin=Bjerregard da zanîn ku li Tirkiyê bi dehan rojnamevan ji ber kar û barên xwe yên pîşeyî girtî ne û ev rewş ji bo Tirkiyê '''hetîketî''' ye.|sernav=Bjerregard: Girtina Rojnamevanan ji bo Tirkiyê hetîketî ye|url=http://rudaw.net/kurmanci/middleeast/turkey/02112013|malper=rudaw.net|sal=2013}} # [[perîşanî]] <ref>http://www.turkcekurtcesozluk.com/index.php/term/K%C3%BCrt%C3%A7e-K%C3%BCrt%C3%A7e+S%C3%B6zl%C3%BCk+%28Ferhenga+Kurd%C3%AE-Kurd%C3%AE%29, hetîketî.xhtml</ref> ==== Jê ==== * {{mj|Lêker}} [[hetîketî kirin]] * {{mj|Navdêr}} [[hetîketîkirin]] * {{mj|Rengdêr}} [[hetîketîkirî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Eklat|m|guman=erê}} * {{Z|fa}}: {{W+|fa|رذالت}}, {{W+|fa|پریشانی}} * {{Z|en}}: {{W+|en|opprobriousness}}, {{W+|en|scandal}}, {{W|en|gaffe|guman=erê}} * {{Z|tr}}: {{W+|tr|rezalet}}, {{W+|tr|rezillik}}, {{W+|tr|skandal}} {{werger-bin}} === Çavkanî === {{çavkanî}} i804muk3j38paiwwbnoyjftjljztdi4 çavbeloq 0 180130 6328883 6139842 2026-08-11T11:23:28Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328883 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[çavzoq]], mirovekî çavbeloq ew e yê çavên wî zêdeyî mirovên din, bel in. #* {{jêder-malper|ku|jêgirtin=te derine rû zemînê dareke pişkivî<br>yan gurzeke stiriyên '''çavbeloq'''<br>ê mirovê êk ta e|nivîskar=Mihemed Nur Elhuseynî|sernav=Mêvan Im|url=https://www.helbestakurdi.com/helbest/mihemed-nur-elhuseyni--mevan-im.html|malper=helbestakurdi.com}} #* {{jêder-malper|ku|jêgirtin=Keçika ser-reş, pêsîr-gir û '''çavbeloq''' bi çengurrê çend kursîyên naylonî ku ji ber tavikê spîçolkî bibûn girt û ew derxistin devê derîyê derve.|nivîskar=Miqedes Akin|sernav=Ala Franciscoyî û malavahîya bi 80 euroyan|url=https://bianet.org/kurdi/mafen-mirovan/224432-ala-franciscoyi-u-malavahiya-bi-80-euroyan|malper=bianet.org|sal=2020}} ==== Etîmolojî ==== Ji {{pêk|ku|çav|beloq}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|Glotzaugen}} * {{Z|fa}}: {{W-|fa|چشم قلمبه}} * {{Z|en}}: {{W+|en|pop eyed}} * {{Z|tr}}: {{W+|tr|lokma göz}}, {{W+|tr|lokma gözlü}}, {{W-|tr|patlak gözlü}}, {{W+|tr|patlak göz}} {{werger-bin}} lsrs2fqrvjmdhk19gvrqb0xvxy4ng2j çavgirtonek 0 180133 6328884 6321725 2026-08-11T11:23:48Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328884 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|lîstika zarokan}} Cureyekî lîstikên zarokan e. #* {{jêder-malper|ku|jêgirtin=ji qedera xwe ya wêran gilî û gazincan dikim roj di hatina min ya dinyayê de poşman bûn xewnereşk li nav nivînan bi lîstika '''çavgirtonekê''' dileyîzin|nivîskar=Xizan Şîlan|sernav=Derwêşê Çîlekêş|url=https://www.antoloji.com/derwese-cilekes-siiri/|malper=antoloji.com|sal=2012}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W-|fa|چشم گذاشتن}} * {{Z|en}}: {{W+|en|hide-and-seek}} * {{Z|tr}}: {{W+|tr|saklambaç}} {{werger-bin}} === Çavkanî === * {{pirtûk|sal=2006|nivîskar=Umîd Demîrhan|url=http://books.google.com.tr/books?id=5QCDCwAAQBAJ&pg=PA67&dq=%22%C3%A7avgirtonek%22&hl=&cd=1&source=gbs_api|sernav=Ferhenga Destî (Kurdî bi Kurdî)|weşanxane=Sewad|rûpel=67}} * {{pirtûk|url=http://books.google.com.tr/books?id=6gLhDwAAQBAJ&pg=PA436&dq=%22%C3%A7avgirtonek%22&hl=&cd=2&source=gbs_api|sernav=Ferheng -Sözlük: KURMANCÎ-TIRKÎ TÜRKÇE-KÜRTÇE|weşanxane=Na Yayınları|ISBN=9786058694385|rûpel=436}} l5wxn622mbpci6noesrs894pu2d99ni baberik 0 181025 6328790 6297654 2026-08-11T00:26:55Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328790 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/bɑːbɛˈrɪk/}} {{r-ya req}} * {{ku-kîte}} === Navdêr === [[Wêne:Wingaker1.jpg|thumb|250px|baberik]] {{navdêr|ku|z=m}} # [[pate|Pateyên]] bi [[beleme]] û [[keştî|keştiyan]] ve yên ku tên [[hildan]] daku [[ba]] lê bide û [[livandin|bilivîne]]. #* {{jêder-pirtûk|ku|jêgirtin="Gelek nekişand baran sekinî. Robînzon û Înî dest biçêkirina qeyîkê kriin. Ji du meh şûnda wana qeyîkeke mezine baş çêkirin, ji qisîlê jî '''baberika''' qeyîka çêkirin. Ber jî çêkirin, paşê gemî berbi berê kaş kirin.|nivîskar=Danyêl Dêfo|wergêr=Cêrdoê Gênco|sernav=Robînzon Krûzo|url=https://en.calameo.com/read/005071515ab266b1f3071|weşanxane=Înstîtûta kurdzanîyê - Wien|sal=2012|rûpel=37}} #* {{jêder-malper|ku|jêgirtin=Piştî van gotinan wî li dor xwe nerî û dît ko ajotvanê keştiya wî carinan li '''baberikê''' û carinan jî li dûriyê dinere.|nivîskar=Husein Muhammed|sernav=»Peyamber-a« Xelîl Cibranî|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=33&RubricNr=&ArticleNr=3989|malper=nefel.com|sal=2008}} #* {{jêder-kovar|ku|jêgirtin=Keçikin zirav li peravê xwêyê kom dikin<br>bi haqas keder, ew qas xwedaqûlkirî- li deryayê nanêrin.<br>Li wira, '''baberikek''', baberikeke sipî,<br>ji nava şînrengiyê gazî wan dike.|kovar=Kovara Rojava|sernav=Belkî siba ew ê me bikujin, 9 helbestên bijare yên Yannîs Rîtsos|nivîskar=Azad Ekkaş|url=http://rojava.net/wp-content/uploads/2019/09/KOVARA-ROJAVA2.pdf|hejmar=2|sal=2019|rûpel=77}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[baberrik]] * [[baberk]] * [[babirk]] ==== Jê ==== * [[bêbaberik]] * [[bibaberik]] * [[baberikdar]] * [[baberikvan]] * [[bagir]] ==== Etîmolojî ==== Ji {{pêk|ku|ba|berik}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Segel|n}} * {{Z|cs}}: {{W+|cs|plachta|f}} * {{Z|da}}: {{W+|da|sejl|n}} * {{Z|hy}}: {{W+|hy|առագաստ}} * {{Z|fi}}: {{W+|fi|purje}} * {{Z|gd}}: {{W-|gd|seòl|m}} * {{Z|gl}}: {{W+|gl|vela|f}} * {{Z|nl}}: {{W+|nl|zeil|n}} * {{Z|he}}: {{W+|he|מפרש|m}} * {{Z|en}}: [[sail]] (the fabric) * {{Z|it}}: {{W+|it|vela|f}} * {{Z|is}}: {{W+|is|segl|n}} * {{Z|ca}}: {{W+|ca|vela|f}} * {{Z|ko}}: {{W-|ko|돛|tr=dot}} * {{Z|la}}: {{W-|la|velum|n}} * {{Z|no}}: {{W+|no|seil}} * {{Z|pl}}: {{W+|pl|żagiel|m}} * {{Z|pt}}: {{W+|pt|vela|f}} * {{Z|ro}}: {{W+|ro|velă|f}} * {{Z|ru}}: {{W+|ru|парус}} * {{Z|sh}}: {{W+|sh|jedro|n}} * {{Z|sh}}: {{W+|sh|jedro|n}} * {{Z|sl}}: {{W+|sl|jadro|n}} * {{Z|es}}: {{W+|es|vela|f}} * {{Z|sw}}: {{W+|sw|shira|xs=sw}}}} * {{Z|sv}}: {{W+|sv|segel|n}} * {{Z|te}}: [[తెరచాప]] (teracaapa) * {{Z|tr}}: {{W+|tr|yelken}} * {{Z|cy}}: {{W-|cy|hwyl|xs=Welsh}} * {{Z|el}}: {{W+|el|πανί|n}} {{werger-bin}} 046dz6knyt45clix37vmv7r0tz0x12d çirvirîn 0 182286 6328893 6246491 2026-08-11T11:25:03Z Balyozbot 7867 /* Lêker */ sererastkirin 6328893 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=?}}, {{r-ya req}} # [[peritîn]], [[dirîn]], [[veçirîn]], hatin [[çirvirandin]] #* {{jêder-malper|ku|jêgirtin=Îcar liqûma Tirkan jî çi liqûm e haaaa, malxerabê tu dibê qey ji bin konê qereçîyan derketiye. Ne bi makyaj û dermanan be nayê xwarin ellawekîl. Lê di dema me de kes li xweşikbûnê nanere. Hema qûna kê mezin be, memikên kê sîlîkonkirî be, kî zêdetir xwe berde çolê û têkeve bin qeraseyên xelkê, ew baş û meşhûr dibe. Aha Natalîn Avci xanim jî bi qeraseyên reşikên Amerîkayê dest bi lotikan kiriye. Ê ji xwe di vî karî de heta nebin çarox û ji hev '''neçirvirin''', kes meşhûr nabe.|malper=Lotikxane.com|sal=11/2010}} ==== Formên alternatîv ==== * [[çirrvirrîn]] ==== Tewîn ==== :-çirvir- ==== Etîmolojî ==== [[çirîn]] - [[-în]] + [[vir]] + [[-în]] ==== Jê ==== * [[çirviriyayî]] * [[çirvirî]] * [[çirvirok]] ==== Werger ==== {{werger-ser}} {{werger-bin}} fha2n8i939hkvvhwowpk8o4felj7kli 6328926 6328893 2026-08-11T11:41:21Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328926 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=?}}, {{r-ya req}} # [[peritîn]], [[dirîn]], [[veçirîn]], hatin [[çirvirandin]] #* {{jêder-malper|ku|jêgirtin=Îcar liqûma Tirkan jî çi liqûm e haaaa, malxerabê tu dibê qey ji bin konê qereçîyan derketiye. Ne bi makyaj û dermanan be nayê xwarin ellawekîl. Lê di dema me de kes li xweşikbûnê nanere. Hema qûna kê mezin be, memikên kê sîlîkonkirî be, kî zêdetir xwe berde çolê û têkeve bin qeraseyên xelkê, ew baş û meşhûr dibe. Aha Natalîn Avci xanim jî bi qeraseyên reşikên Amerîkayê dest bi lotikan kiriye. Ê ji xwe di vî karî de heta nebin çarox û ji hev '''neçirvirin''', kes meşhûr nabe.|malper=Lotikxane.com|sal=11/2010}} ==== Tewandin ==== :-çirvir- ==== Formên alternatîv ==== * [[çirrvirrîn]] ==== Jê ==== * [[çirviriyayî]] * [[çirvirî]] * [[çirvirok]] ==== Etîmolojî ==== [[çirîn]] - [[-în]] + [[vir]] + [[-în]] ==== Werger ==== {{werger-ser}} {{werger-bin}} aeopvg9si5z5qrnzdn843z877ymlpoi manyaq 0 185713 6329051 5019316 2026-08-11T11:53:37Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329051 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=mn}} # {{guherto|manyak}} #* {{jêder-malper|ku|jêgirtin=SSTa (Sîstema Serweriya Tirkan) ko bi gengeşîyên teskerê yên ko ev bi qasî du salan e ji rojevê nakevin, civak kiriye '''manyaqê''' operasyona ji sînor wê de, vê yekê armanc dike.|nivîskar=Fuat Onen|sernav=Welatek di [[ronahî|ronkaya]] rojê de ji gelên wî yên otokton hat dizîn|malper=Nefel.com|sal=12/2007}} o7yyeazuzwxgddfwts4idnckcowokm0 mustehsîl 0 186259 6329066 5019319 2026-08-11T11:54:07Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329066 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{bnr|mistehsîl}} #* {{jêder-malper|ku|jêgirtin=Bi baweriya min şoreşa pêşmergeyan hê bi temamî neçûye serî: Şoreşa çekdarî temam bû, lê niha divê şoreşa civakî-aborî dest pê bike. Bernameya şoreşa civakî-aborî bi hindikî ji du xalan divê pêk bê: 1. Civakê ji mustehlîkî (consumer/tüketici) ya luks û bi îsraf biguhêre bike civaka '''mustehsîl''' (productif/üretici) a endustriyê, 2. Zihniyeta eşîrî û ya partîzaniya dewletên totalîter a li herêmê divê hêdî hêdî bê maliştin.|nivîskar=Rojen Barnas|sernav=Şoreşa Kurdistana Başûr A Mayî|sal=5/2007|malper=Netkurd.com}} q84cbarapj0ougz173h7t3xj1h97010 muşerref 0 186268 6329067 5019320 2026-08-11T11:54:09Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329067 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{guherto|mişeref}} #* {{jêder-malper|ku|jêgirtin=Heger em bi “ereb bazarî” hesabekî bikin, dikarim bibêjim ko % 80-ê di malên kurdan de TV-yên kurdî tine. Bes maleke bê TV-yên tirkî tine, % 99, 9999 malên kurdan de TV-yên tirkî hene (ji bo kurdên bakur dibêjim). Belkî bi xêra TRT-a kurdî malên wan kurdên –kurdînedîtî '''muşerref''' bibin; malûm e gihayê hewşê tahl e, û kurdî belkî bi destê dewletê bi van şîrin bibe.|nivîskar=Brahîm Xelîl Sirûcî|sernav=Belkî bi xêra TRT-ê em TêReTêr kurmancî tamaşe bikin|malper=Nefel.com|sal=11/2008}} ktsqv9cqdaytou5agnqtb63ib1vysgq cîlê 0 246086 6328832 6279172 2026-08-11T00:32:14Z Balyozbot 7867 /* Hoker */ sererastkirin 6328832 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[yekser]], [[hemen]], [[şirp]], [[tavilê]], [[car de]], [[demildest]], [[di cî de]], [[zû]], [[bênavbir]], <br>bêyî [[derengî]], bêyî [[gîro|gîrobûnê]] yan [[gîro|gîrokirinê]] #* {{jêder-malper|ku|jêgirtin=Mar '''cîlê''' di şûna xwe da, ji serma hişk bû, cemidî.|nivîskar=Nuh Ateş|sernav=Bedelê ken|url=http://www.birnebun.com/candukultur/cirok.htm|malper=birnebun.com|sal=2004}} #* {{jêder-kovar|ku|jêgirtin=Miço '''cîlê''' li dij derket û got...|kovar=Bîrnebûn|sernav=Rojek ji rojiyê, terawî û okey|url=http://birnebun.eu/hejmar/birnebunweb51.pdf|nivîskar=Ecevit Yıldırım|hejmar=51|sal=2011|rûpel=28}} #* {{jêder|ku|jêgirtin=Ez ji '''cîlê''' rabûm ser xwe|http://www.tavlioren.com/arsiv/arsiv-wene/ecewid-tirsatato/ecewid-tirsatato.html}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|dadelik}}, {{W-|af|almeteens}}, {{W-|af|direk}} * {{Z|sq}}: {{W+|sq|fill}}, {{W+|sq|menjëherë}} * {{Z|de}}: {{W+|de|alsbald}}, {{W+|de|flugs}}, {{W+|de|gleich}}, {{W+|de|sofort}}, {{W+|de|sogleich}}, {{W+|de|umgehend}}, {{W+|de|ohne weiteres|guman=erê}} * {{Z|da}}: {{W+|da|straks}} * {{Z|eo}}: {{W+|eo|tuj}} * {{Z|fo}}: {{W-|fo|alt fyri eitt}}, {{W-|fo|beinan vegin}}, {{W-|fo|uttan nakað honk}} * {{Z|fi}}: {{W+|fi|heti}} * {{Z|fr}}: {{W+|fr|immédiatement}}, {{W+|fr|tout de suite}} * {{Z|fy}}: {{W-|fy|aansen}}, {{W-|fy|aanst}}, {{W-|fy|aanstûns}}, {{W-|fy|dalik}}, {{W-|fy|daliks}} * {{Z|nl}}: {{W+|nl|aanstonds}}, {{W+|nl|dadelijk}}, {{W+|nl|meteen}}, {{W-|nl|op staande voet}}, {{W+|nl|schielijk}}, {{W+|nl|subiet}}, {{W+|nl|zo}} * {{Z|en}}: {{W+|en|immediately}}, {{W+|en|at once}}, {{W+|en|directly}}, {{W+|en|right now}}, {{W+|en|forthwith}}, {{W+|en|instantaneously}}, {{W+|en|straightaway}}, {{W+|en|straightway}} * {{Z|it}}: {{W-|it|fra poco}}, {{W+|it|immediatamente}}, {{W+|it|subito}} * {{Z|ca}}: {{W-|ca|de seguida}}, {{W+|ca|tot seguit}} * {{Z|ms}}: {{W-|ms|serera}} * {{Z|pap}}: {{W-|pap|inmediatamente}}, {{W-|pap|mesora}}, {{W-|pap|umbé}}, {{W-|pap|umbes}} * {{Z|pl}}: {{W+|pl|zaraz}}, {{W+|pl|natychmiast}} * {{Z|pt}}: {{W+|pt|directamente}}, {{W+|pt|imediatamente}}, {{W+|pt|sem demora}}, {{W+|pt|logo}}, {{W+|pt|depressa}} * {{Z|ro}}: {{W+|ro|îndată}} * {{Z|srn}}: {{W-|srn|nownow}}, {{W-|srn|wante’wante}} * {{Z|es}}: {{W-|es|ahora mismo}}, {{W-|es|en el acto}}, {{W+|es|en seguida}}, {{W+|es|inmediatamente}}, {{W+|es|desde luego}} * {{Z|sw}}: {{W-|sw|sasa hivi}} * {{Z|tr}}: {{W+|tr|hemen}} * {{Z|el}}: {{W+|el|ακαριαίος}}, {{W+|el|αμέσως}} {{werger-bin}} iuehj21vm7vra4oglwwskqdm6cc55am 6328865 6328832 2026-08-11T02:12:09Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328865 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[yekser]], [[hemen]], [[şirp]], [[tavilê]], [[car de]], [[demildest]], [[di cî de]], [[zû]], [[bênavbir]], <br>bêyî [[derengî]], bêyî [[gîro]]bûnê yan [[gîro]]kirinê #* {{jêder-malper|ku|jêgirtin=Mar '''cîlê''' di şûna xwe da, ji serma hişk bû, cemidî.|nivîskar=Nuh Ateş|sernav=Bedelê ken|url=http://www.birnebun.com/candukultur/cirok.htm|malper=birnebun.com|sal=2004}} #* {{jêder-kovar|ku|jêgirtin=Miço '''cîlê''' li dij derket û got...|kovar=Bîrnebûn|sernav=Rojek ji rojiyê, terawî û okey|url=http://birnebun.eu/hejmar/birnebunweb51.pdf|nivîskar=Ecevit Yıldırım|hejmar=51|sal=2011|rûpel=28}} #* {{jêder|ku|jêgirtin=Ez ji '''cîlê''' rabûm ser xwe|http://www.tavlioren.com/arsiv/arsiv-wene/ecewid-tirsatato/ecewid-tirsatato.html}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|dadelik}}, {{W-|af|almeteens}}, {{W-|af|direk}} * {{Z|sq}}: {{W+|sq|fill}}, {{W+|sq|menjëherë}} * {{Z|de}}: {{W+|de|alsbald}}, {{W+|de|flugs}}, {{W+|de|gleich}}, {{W+|de|sofort}}, {{W+|de|sogleich}}, {{W+|de|umgehend}}, {{W+|de|ohne weiteres|guman=erê}} * {{Z|da}}: {{W+|da|straks}} * {{Z|eo}}: {{W+|eo|tuj}} * {{Z|fo}}: {{W-|fo|alt fyri eitt}}, {{W-|fo|beinan vegin}}, {{W-|fo|uttan nakað honk}} * {{Z|fi}}: {{W+|fi|heti}} * {{Z|fr}}: {{W+|fr|immédiatement}}, {{W+|fr|tout de suite}} * {{Z|fy}}: {{W-|fy|aansen}}, {{W-|fy|aanst}}, {{W-|fy|aanstûns}}, {{W-|fy|dalik}}, {{W-|fy|daliks}} * {{Z|nl}}: {{W+|nl|aanstonds}}, {{W+|nl|dadelijk}}, {{W+|nl|meteen}}, {{W-|nl|op staande voet}}, {{W+|nl|schielijk}}, {{W+|nl|subiet}}, {{W+|nl|zo}} * {{Z|en}}: {{W+|en|immediately}}, {{W+|en|at once}}, {{W+|en|directly}}, {{W+|en|right now}}, {{W+|en|forthwith}}, {{W+|en|instantaneously}}, {{W+|en|straightaway}}, {{W+|en|straightway}} * {{Z|it}}: {{W-|it|fra poco}}, {{W+|it|immediatamente}}, {{W+|it|subito}} * {{Z|ca}}: {{W-|ca|de seguida}}, {{W+|ca|tot seguit}} * {{Z|ms}}: {{W-|ms|serera}} * {{Z|pap}}: {{W-|pap|inmediatamente}}, {{W-|pap|mesora}}, {{W-|pap|umbé}}, {{W-|pap|umbes}} * {{Z|pl}}: {{W+|pl|zaraz}}, {{W+|pl|natychmiast}} * {{Z|pt}}: {{W+|pt|directamente}}, {{W+|pt|imediatamente}}, {{W+|pt|sem demora}}, {{W+|pt|logo}}, {{W+|pt|depressa}} * {{Z|ro}}: {{W+|ro|îndată}} * {{Z|srn}}: {{W-|srn|nownow}}, {{W-|srn|wante’wante}} * {{Z|es}}: {{W-|es|ahora mismo}}, {{W-|es|en el acto}}, {{W+|es|en seguida}}, {{W+|es|inmediatamente}}, {{W+|es|desde luego}} * {{Z|sw}}: {{W-|sw|sasa hivi}} * {{Z|tr}}: {{W+|tr|hemen}} * {{Z|el}}: {{W+|el|ακαριαίος}}, {{W+|el|αμέσως}} {{werger-bin}} o2z523f316gsmhzdipp1ucmp7j3uk27 dibêje lê napêje 0 255059 6328913 6252082 2026-08-11T11:28:07Z Balyozbot 7867 /* Biwêj */ sererastkirin 6328913 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Biwêj === {{biwêj|ku}} # Ew bi xwe jî [[li gor]] [[gotin]]a xwe nakin, [[axiftin]]a xwe dibêjin lê [[bi cih anîn|bi cih nayînin]]. Dema ku yek yan hinek tiştekê bêjin lê ew bixwe jî neken, ev biwêj tê gotin. #* {{jêder-malper|ku|jêgirtin=Kal û pîrên me ji berê de gotine: “'''Dibêje, lê napêje'''.” Mixabin ev rewş hema bêje ji bo hemû nivîskar, serokên sazî û dezgehên Kurdan û parlamenteran tevan derbas dibe.|nivîskar=Mela Mihyedîn|sernav=Ceribînek li ser “ferhenga bişaftinê”|url=http://www.rupelanu.com/ceribinek-li-ser-ferhenga-bisaftine-295yy.htm|malper=rupelanu.com|sal=2017}} #* {{jêder-malper|ku|jêgirtin=“Ev 47 sal in ku Joe qet tiştên ku niha dipeyîve nekirine. Ewê qet neguhere. Ew tenê '''dibîêje, lê qet napêje'''!|sernav=Trump Dibêje Biden Tiştekî Nake, Tenê Diaxife|url=https://www.dengeamerika.com/a/trump_biden_twitter/5552284.html|malper=dengeamerika.com|sal=2020}} #* {{jêder-kovar|ku|jêgirtin=Em dîsa dixwazin bi gotinek pêşiyan nivîsa xwe biqedînin. ('''Dibêje lê napêje''') birez Arinç tu jî xweş dibêjî lê qet napêjî.|kovar=Azadiya Welat|sernav=Ji Arinç re nameya vekirî|nivîskar=Paşa Şeker|dîrok=9 Tebax 2011|rûpel=2}} ==== Formên alternatîv ==== * ''(Dihok)'' [[dibêjît lê napêjît]] ==== Werger ==== {{werger-ser}} * {{Z|en}} : {{W|en|he's all talk and no bake}}, {{W|en|says one thing, does another}}, {{W|en|talks the talk but doesn't walk the walk}}, {{W|en|full of hot air}} {{werger-bin}} bd5hhqfw0vx59s7wbqw28vxecjtswsh aşik 0 259520 6328846 6297571 2026-08-11T00:53:13Z Wikihez 7344 /* Navdêr */ 6328846 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[amûr|Amûrê]] ku tê de [[qehwe]] tê [[hêran]]. #* {{jêder-pirtûk|ku|jêgirtin=Gava em ji kar vegerin em ê li ser nîşanê bipeyivin. Ez ê piştî xwarinê '''aşikê''' qehwê bigerînim. Em ê cezwe têxin manqilê. Wê diya min li fala me binêre û çi nebêje. Em zar û zêç hemû baş in, di hundurê malê de şênî û kêfxweşî heye. Şansê we vekirî be. Wê ax di destê me de bibe zêr. Em mîna rojê ne. Wê ji mista me huzûr birije.|sernav=Keça Kurd Zengê|wergêr={{w|Firat Cewerî|F[irat] Cewerî}}; S. Demir|nivîskar=Cemşîd Bender|orîjînal=Kürt Kızı Zenge|zimanê-orîjînal=tr|weşanxane=Nûdem|sal=1997|rûpel=33|isbn=91 888592-31 6}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Hevmane ==== * [[aşê qehweyê]] * [[distarkê qehweyê]] * [[qehwehêr]] ==== Etîmolojî ==== Ji {{qertaf|ku|aş|ik}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kaffeemühle}} * {{Z|en}}: {{W+|en|coffee mill}} * {{Z|tr}}: {{W+|tr|kahve değirmeni}} {{werger-bin}} === Navdêr === {{navdêr|ku}} # [[meîde]], [[gede]] ==== Etîmolojî ==== [[aş]] + [[ik]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|stomach}}, {{W+|en|quern|guman=erê}} * {{Z|tr}}: {{W+|tr|mide}} {{werger-bin}} == {{ziman|zza}} == ==== Mane ==== # [[aşk]] # [[aşik]], [[mitrib]]<ref>http://www.kovarabir.com/wp-content/uploads/Ferheng%C3%AA-Dimil%C3%AE-Zazak%C3%AE-%C3%BB-Kurmanc%C3%AE-A-a.pdf</ref> === Çavkanî === {{çavkanî}} n1l6pyo313fglsxpb25n6kaa7lq4m43 kalekal 0 263867 6329001 6309526 2026-08-11T11:51:48Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329001 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î}} [[deng|Dengê]] [[bizin]]an. #: '''''Kalekala''' bizinê ye jiber ko ya birçî ye.''<ref>{{Ferhenga Kamêran}}</ref> #* {{jêder-malper|ku|jêgirtin=Mustafa Kaplan (22) û Îsmaîl Kaplan (18) ku destnîşan kirin ew vê karê bi eşq û şewq dikin diyar kirin xeyala wan ew e ku ew çêwligeke mezin saz bikin. Wan destnîşan kirin ku kalekala pez betilandina me ya temamê rojê dibe. Kaynak: Kalekala pez betilandina me ya temamê rojê dibe.|sernav=Kalekala pez betilandina me ya temamê rojê dibe|url=https://www.cinarinsesi.com/kalekala-pez-betilandina-me-ya-temame-roje-dibe-121902h.htm|malper=cinarinsesi.com|sal=2017}} #* {{jêder-malper|ku|jêgirtin=îşev dîsa '''kalekala''' berxa bû ber guhê min,<br>îşev dîsa wek tifala kêflû bûbû ruhê min.|nivîskar=Fêrîkê Ûsiv|sernav=Te Bîr Nakim|url=https://www.helbestakurdi.com/helbest/ferike-usiv--te-bir-nakim.html|malper=helbestakurdi.com}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|كالەکال}} ==== Formên alternatîv ==== * [[kale-kal]] ==== Jê ==== * ''Lêker'' [[kalekal kirin]] * ''Navdêr'' [[kalekalkirin]] * ''Rengdêr'' [[kalekalkirî]] ==== Têkildar ==== * [[miremir]] * [[zirezir]] * [[hîrehîr]] * [[nalenal]] * [[kûzekûz]] * [[xiştexişt]] * [[kewtekewt]] * [[fîtefît]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Meckern}} * {{Z|fr}}: {{W|fr|bêlement}} * {{Z|en}}: {{W|en|bleating}} * {{Z|tr}}: {{W|tr|meleme}}, {{W|tr|inim inim}} {{werger-bin}} === Çavkanî === {{çavkanî}} sj3wn1tpaxa2e4vmvpui9yona1b6jm5 mêhreban 0 264283 6329060 6100730 2026-08-11T11:53:55Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329060 wikitext text/x-wiki {{bnr-h|Mêhreban}} == {{ziman|ku}} == === Rengdêr === {{rengdêr|ku}} # {{guharto|ku|mihrîvan}} #* {{jêder-malper|ku|jêgirtin=Dayikî Cemal ji ber adet û orfên civaka paşverû zû strangotin terikand û heya mirinê xwe wenda kir da ku kes wê mîna hunermend nas neke. Ew jineke xêrxwaz, nefs bilind û gelek '''mêhreban''' bû.|sernav=Jiyana Dayikî Cemal|url=https://www.bernamegeh.org/2019/12/31/dayiki-cemal/|malper=bernamegeh.org|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Bi navê xwedê yê mezin û '''mêhreban''', birayê rêzdar, dibistan ji bo zarok û ciwanan tune ne, perwerde ne ji bo keçan û ne jî ji bo kuran tune ye, em rica ji kesên xwedî bîr û ra dikin ku dibistanan ji bo zarokan vekin.|sernav=Li Cerablusê çi diqewime|url=https://www.rudaw.net/kurmanci/middleeast/syria/150920161|malper=rudaw.net|sal=2016}} #* {{jêder-kovar|ku|jêgirtin=Lê Xanî di Mem û Zînê de bi vegotina mîrê Kurd Emîr Z(ey)neddîn dest bi hikayetê diket ku ew li Cizîr(a) Botan hukumdariya taîfeyên Kurd diket ku ew emîrekî '''mêhreban''', comerd, xêrker, xêrxwaz û xwştivîyê xwas û 'amê Kurdan e.|kovar=Nûbihar|sernav=Muqayeseyek digel Mesnewiya Kurdî|url=https://www.academia.edu/12707421/Muqayeseyek_digel_Mesnewiya_Kurd%C3%AE_Mem_%C3%BB_Z%C3%AEna_Ehmed%C3%AA_Xan%C3%AE_%C3%BB_Leyla_%C3%BB_Mecn%C3%BBna_Nizam%C3%AE|nivîskar=Ehmed Şerîfî|wergêr=Ayhan Geverî|hejmar=131|rûpel=21}} q6yrqz6qs0gcy1oewkgx3cnoa4zlv4t kerax 0 273765 6329009 6309923 2026-08-11T11:52:06Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329009 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|ke|rax}} === Navdêr === {{navdêr|ku|z=n}} # {{f|ku|çandinî}} Demê mirov [[paleyî kirin|palehiya]] xelkê bike, ''genim, nîsk û ceh û hwd'' yên xelkê rake mirov dibe ''kerax''ê wan. Du [[behir]] ji xwediyê erd re ye û behrek jî ji keraxî re ye. #* {{jêder-pirtûk|ku|jêgirtin=Kurê min Miho, axa dê ji min bixeyide ku ez te bişînim dibistanê. Wî gotiye ku xwendin ne ya şivan û gavan û '''kerax''' û kurmanca ye.|nivîskar=Sidqî Hirorî|sernav=Evîn û Şewat|weşanxane=Nûdem|sal=1998|rûpel=16|isbn=91 88591-40 5}} #* {{jêder|ku|jêgirtin=Îmana ko pê re hebû hemû di serê bêvila wî re derket û çû. Bi leza gunehkar û keleşan li xwe fitilî û berê xwe da rê ko here. Wî çaxî dît ko Tajdînê '''keraxê''' wî jî bi mitale û stuxwar, çend metroyan dûrî wî, li pişt wî ye.|{{Jêgirtin/Silêman Demir/Sorê Gulê/2002|r=153}}}} #* {{jêder-kovar|ku|jêgirtin=ax lê fireh, ezman lê hatibe hev...<br>di axa xwe de bê ax, '''kerax''' be tev!|kovar=Çira|sernav=Ne axperest im|url=http://arsivakurd.org/images/arsiva_kurd/kovar/cira/cira_03.pdf|nivîskar=Arjen Arî|hejmar=3|sal=1995|rûpel=48}} # [[nik]], [[cem]], [[bal]], [[ba]], [[kêlek]] #* {{jêder-pirtûk|ku|jêgirtin=Min bi destêkî li '''keraxê''' porê xwe mist da, tenê çend heb têl por mabûn, yek jê kişand, di nav herdu tiliyên xwe de bir anî.|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=80|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Li ser rêbeja Sêrt û Batmanê ji ber ku mij zêde bû, hin ajotvanan wesayitên xwe li '''keraxê''' rê da sekinandin.|sernav=Li başûrê rojhilatê mij çêbû|url=https://www.tigrishaber.com/li-basure-rojhilate-mij-cebu-12456h.htm|malper=tigrishaber.com|sal=2014}} #* {{jêder-kovar|ku|jêgirtin=Lê li '''keraxê''' rê, li rastan û çîyayan hê berfê som girtibû, kêm bibû, nicîya bû, lê hê belekî neketibûnê.|kovar=Wêje û rexne|sernav=RONÎKIRINEK LI SER ÇEND ALÎYÊN ROMANA SÎBERÊ YA WEZÎRÊ EŞO|url=https://www.academia.edu/37663919/Ron%C3%AEkirinek_li_Ser_%C3%87end_Aliy%C3%AAn_Romana_S%C3%AEber%C3%AA_ya_Wez%C3%AEr%C3%AA_E%C5%9Fo_W%C3%AAje_%C3%BB_Rexne_9_10_2018_|nivîskar=ÖMER DELİKAYA|hejmar=9-10|sal=2018|rûpel=184}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Jê ==== * [[keraxî]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser|ya/ê ku berhemê xelkê radike|1|stûn=1}} * {{Z|fa}}: {{W+|fa|کارگر سبزیجات}} * {{Z|fr}}: {{W+|fr|paysan sans terre entretenu avec sa famille par le propriétaire foncier en échange de son travail}}<ref name="kurmanci8" /> * {{Z|en}}: {{W+|en|farmer without land supported with his family by landowner in exchange for his labour}}<ref name="kurmanci8">{{kovar|kovar=Kurmancî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku8.pdf|sernav=Termên çandiniyê li hêla Mêrdînê|nivîskar=Zinar SORAN|hejmar=8|sal=1991|rûpel=5}}</ref> * {{Z|tr}}: {{W+|tr|topraksız olup toprak sahibi tarafından ailesiyle birlikte beslenen hizmetkar köylü}},<ref name="kurmanci8" /> {{W+|tr|bostancı}}, {{W+|tr|sebze yetiştiricisi}} {{werger-bin}} {{werger-ser|kêlek|2}} * {{Z|en}}: {{W|en|side}} * {{Z|tr}}: {{W|tr|kenar}}, {{W|tr|yan}}, {{W|tr|yanı başı}} {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|kerax}} {{rengdêr|ku}} # [[kirêt]], [[pîs]], [[pelos]] #* {{jêder-kovar|ku|jêgirtin=Mirovahî, digel ku tiştên pir payebilind û qîmetdar diafirîne bi heman awayî gelek tiştên '''kerax''' bêteşe jî dixuliqîne.|kovar=Agirî|sernav=Biyanîbûn|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/agiri/agiri_142.pdf|nivîskar=Adar jiya|hejmar=142|sal=2010|rûpel=11}} ==== Jê ==== * [[keraxî]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|degoutant}}, {{W|de|widerlich}} * {{Z|en}}: {{W+|en|repugnant}}, {{W+|en|repulsive}}, {{W+|en|abominable}}, {{W+|en|revolting}}, {{W+|en|detestable}}, {{W+|en|disgusting}} * {{Z|tr}}: {{W+|tr|iğrenç}}, {{W+|tr|mekruh}} {{werger-bin}} === Çavkanî === {{çavkanî}} qikxjlyiuz5655xmqhhkiyzasz9ir4b bi qirika (yekî) girtin 0 280787 6328811 6278520 2026-08-11T00:28:49Z Balyozbot 7867 /* Lêker */ sererastkirin 6328811 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=b-gh}} # [[desteser kirin]], [[girtin]], bi hêz û zorê girtin, [[bi yekî re pevçûn]], ji bo doza tiştekî hesab pirsîn #: ''Nizanim li ser çi bû, lê ûsivê seyîd '''bi qirika seyad girtibû'''.''<ref>Ferhenga Biwêjan, Mustafa Borak</ref> #* {{jêder-malper|ku|jêgirtin=Bişar Kiliçê 63 salî bi salane ku firarê eskerîyê bû û xwe li Qosera Mêrdînê, li gund vedişart û nedixwest ji Tirkan re eskerîyê bike. Lê talîya talî felekê pişta xwe dayê û eskerên Tirk '''bi qirika wî rebenî girtin''' û ew şandin eskerîyê.|malper=Lotikxane.com|sal=08/2006}} ==== Bide ber ==== * [[qirrik]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|capture}}, {{W+|en|catch}} * {{Z|tr}}: {{W+|tr|yakalamak}}, {{W+|tr|tutuklamak}} anlamında bir deyim, {{W-|tr|birinin gırtlağına basmak}}, {{W+|tr|gırtlağına sarılmak}}, {{W+|tr|yakasına asılmak}}, {{W+|tr|yakasına sarılmak}} {{werger-bin}} === Çavkanî === {{çavkanî}} 6v4n0saoworkz83nyp8lbpukx5if5i8 6328838 6328811 2026-08-11T00:41:14Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328838 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=b-gh}} # [[desteser kirin]], [[girtin]], bi hêz û zorê girtin, [[bi yekî re pevçûn]], ji bo doza tiştekî hesab pirsîn #: ''Nizanim li ser çi bû, lê ûsivê seyîd '''bi qirika seyad girtibû'''.''<ref>Ferhenga Biwêjan, Mustafa Borak</ref> #* {{jêder-malper|ku|jêgirtin=Bişar Kiliçê 63 salî bi salane ku firarê eskerîyê bû û xwe li Qosera Mêrdînê, li gund vedişart û nedixwest ji Tirkan re eskerîyê bike. Lê talîya talî felekê pişta xwe dayê û eskerên Tirk '''bi qirika wî rebenî girtin''' û ew şandin eskerîyê.|malper=Lotikxane.com|sal=08/2006}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Bide ber ==== * [[qirrik]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|capture}}, {{W+|en|catch}} * {{Z|tr}}: {{W+|tr|yakalamak}}, {{W+|tr|tutuklamak}} anlamında bir deyim, {{W-|tr|birinin gırtlağına basmak}}, {{W+|tr|gırtlağına sarılmak}}, {{W+|tr|yakasına asılmak}}, {{W+|tr|yakasına sarılmak}} {{werger-bin}} === Çavkanî === {{çavkanî}} bmix9t03974hwnaanms662gmc052w9p cîwar bûn 0 301194 6328861 5992900 2026-08-11T01:23:47Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328861 wikitext text/x-wiki {{bnr-n|cîwarbûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|cîwar bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=cîwar|valahî=erê}} {{lêker|ku|c=h-ngh}} # Li cihekî [[bi cih bûn]]. #* {{jêder-kovar|ku|jêgirtin=Mixabin, dema serhildana Dêrsimê têk diçe, ew neçar dimîne, berê xwe dide binxetê, ji wir diçe Urdinê, û sala 1940î, li tataxa «Miheta Bexdad», bajarê Helebê '''cîwar dibe''', kar û xebata rewşenbîrî û ramyarî didomîne.|kovar=Newroz|sernav=49 Saliya Koçkirina xebatkarê Kurd ê navdar Dr. Nûrî Dêrsimî|url=https://yek-dem.net/ku/wp-content/uploads/2022/09/Newroz-153.pdf|urlya-arşîvê=https://web.archive.org/web/20240208181030/https://yek-dem.net/ku/wp-content/uploads/2022/09/Newroz-153.pdf|hejmar=153|sal=2022|dîrok=2022-09-06|rûpel=2}} #* {{jêder-malper|ku|jêgirtin=Dema Koşka Uzun Hasan di 1469an da neqlê Tebrîzê ya paytext dibe, ew jî li wir '''cîwar dibe'''.|nivîskar=Siddik Bozarslan|sernav=Îdrîs-î Bidlîsî (1452-1520)|url=https://portal.netewe.com/idris-i-bidlisi-1452-1520/|urlya-arşîvê=https://web.archive.org/web/20240208183352/https://portal.netewe.com/idris-i-bidlisi-1452-1520/|malper=netewe.com|dîrok=2022-09-14}} #* {{jêder-malper|ku|jêgirtin=Piştî mirina bavê xwe bi dîya xwe Henrîette Hornîk ve diçe li Vîyanayê '''cîwar dibe'''.|nivîskar=Zerdüşt Öztürk|sernav=Balerîna Kurd Leyla Bedirxan|url=https://www.bernamegeh.org/leyla-bedirxan-ki-ye/|urlya-arşîvê=https://web.archive.org/web/20240208183742/https://www.bernamegeh.org/leyla-bedirxan-ki-ye/|malper=bernamegeh.org|dîrok=2021-09-25}} ==== Etîmolojî ==== Ji {{heve|ku|cîwar|bûn}}. "Bi"ya di serî de ji bo sivikkirina telafûzê ketîye, eslen wekî "'''''bi'''cihûwar bûn''". ==== Werger ==== {{werger-ser}} * {{Z|en}}: to {{W+|en|settle}} * {{Z|tr}}: {{W+|tr|yerleşmek}} {{werger-bin}} bx26ieg06vny3a7csbmtx2y46vxj7rx 6328862 6328861 2026-08-11T01:24:08Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328862 wikitext text/x-wiki {{bnr-n|cîwarbûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|cîwar bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=cîwar|valahî=erê}} {{lêker|ku|c=h-ngh}} # Li cihekî [[bi cih bûn]]. #* {{jêder-kovar|ku|jêgirtin=Mixabin, dema serhildana Dêrsimê têk diçe, ew neçar dimîne, berê xwe dide binxetê, ji wir diçe Urdinê, û sala 1940î, li tataxa «Miheta Bexdad», bajarê Helebê '''cîwar dibe''', kar û xebata rewşenbîrî û ramyarî didomîne.|kovar=Newroz|sernav=49 Saliya Koçkirina xebatkarê Kurd ê navdar Dr. Nûrî Dêrsimî|url=https://yek-dem.net/ku/wp-content/uploads/2022/09/Newroz-153.pdf|urlya-arşîvê=https://web.archive.org/web/20240208181030/https://yek-dem.net/ku/wp-content/uploads/2022/09/Newroz-153.pdf|hejmar=153|dîrok=2022-09-06|rûpel=2}} #* {{jêder-malper|ku|jêgirtin=Dema Koşka Uzun Hasan di 1469an da neqlê Tebrîzê ya paytext dibe, ew jî li wir '''cîwar dibe'''.|nivîskar=Siddik Bozarslan|sernav=Îdrîs-î Bidlîsî (1452-1520)|url=https://portal.netewe.com/idris-i-bidlisi-1452-1520/|urlya-arşîvê=https://web.archive.org/web/20240208183352/https://portal.netewe.com/idris-i-bidlisi-1452-1520/|malper=netewe.com|dîrok=2022-09-14}} #* {{jêder-malper|ku|jêgirtin=Piştî mirina bavê xwe bi dîya xwe Henrîette Hornîk ve diçe li Vîyanayê '''cîwar dibe'''.|nivîskar=Zerdüşt Öztürk|sernav=Balerîna Kurd Leyla Bedirxan|url=https://www.bernamegeh.org/leyla-bedirxan-ki-ye/|urlya-arşîvê=https://web.archive.org/web/20240208183742/https://www.bernamegeh.org/leyla-bedirxan-ki-ye/|malper=bernamegeh.org|dîrok=2021-09-25}} ==== Etîmolojî ==== Ji {{heve|ku|cîwar|bûn}}. "Bi"ya di serî de ji bo sivikkirina telafûzê ketîye, eslen wekî "'''''bi'''cihûwar bûn''". ==== Werger ==== {{werger-ser}} * {{Z|en}}: to {{W+|en|settle}} * {{Z|tr}}: {{W+|tr|yerleşmek}} {{werger-bin}} d166o02dbe3hfxzpakzvjcr0bwp7mr5 kursiyê biteker 0 308977 6329038 6310790 2026-08-11T11:53:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329038 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Lightweightwheelchair.jpg|thumb|Kursiyekî bi[[teker]].]] {{navdêr|ku|z=n}} # [[kursî|Kursiyên]] ku mirovên nikarin [[meşîn|bimeşin]] an jî yên [[nexweş]] ji bo çûna derekê bi kar tînin. #* {{jêder-malper|ku|jêgirtin=Di Lijneya Giştî ya TBMMyê de hin madeyên pêşnûmaya komî hatin qebûlkirin. Li gor madeyê ji bo wesayîtên astengdaran ên ku kesên '''kursiyê biteker''' an jî darbestan bikartînin Baca Wesayîtan a Taybet dê bê kêmkirin.|sernav=Beşa sêyem a pêşnûmaya komî hat qebûlkirin|url=https://www.aa.com.tr/kk/pol%C3%AEt%C3%AEka/besa-s%C3%AAyem-a-p%C3%AAsn%C3%BBmaya-kom%C3%AE-hat-qeb%C3%BBlkirin/185199|malper=aa.com.tr/|dîrok=05.02.2014}} #* {{jêder-malper|ku|jêgirtin=Li ser '''kursiyê biteker''' hemû karên xwe bi xwe dike.|sernav=Bi zineata xwe debara mala xwe dike|url=https://www.trtnuce.com/turkiye/bi-zineata-xwe-debara-mala-xwe-dike-h46447.html|malper=trtnuce.com|sal=2019}} #* {{jêder-kovar|ku|jêgirtin=Mizgîn Baran ev 18 sal in ku herdu lingên wê nalivin û nikare rabe ser lingan û bimeşe, lewma li ser '''kursiyê biteker''' jiyana xwe didomîne.|kovar=Rûdaw|sernav=Jiyan bê lingan jî dimeşe|url=https://ia803105.us.archive.org/22/items/rudaw_147/rudaw_147.pdf|nivîskar=Mehmet Sebatli|hejmar=147|sal=2012|rûpel=7}} ==== Tewandin ==== {{ku-tewîn-nav/nû|heve=îzafe}} ==== Etîmolojî ==== Ji ''[[kursiyê]] + [[biteker]]'', {{yekser|en|ku|wheelchair|hûr=1}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Rollstuhl|n}}, {{W-|de|Krankenfahrstuhl|n}}, {{W+|de|Fahrstuhl|n}} * {{Z|ast}}: {{W-|ast|siella de ruedes|m}} * {{Z|az}}: {{W-|az|təkərli kürsü}}, {{W-|az|əlil arabası}} * {{Z|bg}}: {{W-|bg|инвалидна количка|m}} * {{Z|my}}: {{W-|my|ဘီးတပ်ကုလားထိုင်}} * {{Z|cs}}: {{W-|cs|invalidní vozík|n}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|輪椅|tr=leon4 ji2}} *: {{Z|cmn}}: {{W-|cmn|輪椅|tr=lúnyǐ}} * {{Z|da}}: {{W+|da|rullestol|g}}, {{W+|da|kørestol|g}} * {{Z|ovd}}: {{W-|ovd|rullstuol|n}} * {{Z|id}}: {{W+|id|kursi roda}} * {{Z|ar}}: {{W-|ar|كُرْسِيّ لِلْمُقْعَدِين|n|tr=kursiyy li-l-muqʕadīn}}, {{W-|ar|كُرْسِيّ مُتَحَرِّك|n}} * {{Z|hy}}: {{W+|hy|անվասայլակ}} * {{Z|eo}}: {{W-|eo|rulseĝo}}, {{W-|eo|radseĝo|y}} * {{Z|et}}: {{W+|et|ratastool}} * {{Z|fa}}: {{W+|fa|ویلچر|tr=vilčer}} * {{Z|fo}}: {{W-|fo|koyristólur|n}}, {{W-|fo|rullistólur|n}}, {{W-|fo|akstólur|n}} * {{Z|fi}}: {{W+|fi|pyörätuoli}}; {{W+|fi|rullatuoli}} * {{Z|fr}}: {{W+|fr|fauteuil roulant|n}}, {{W+|fr|chaise roulante|m}} * {{Z|gd}}: {{W-|gd|cathair-cuibhle|m}} * {{Z|gl}}: {{W-|gl|cadeira de rodas|m}} * {{Z|ka}}: {{W-|ka|ინვალიდის სავარძელი}} * {{Z|haw}}: {{W-|haw|noho huila}} * {{Z|hi}}: {{W-|hi|व्हीलचेयर}} * {{Z|nl}}: {{W+|nl|rolstoel|n}} * {{Z|he}}: {{W+|he|כיסא גלגלים|n|tr=kisé galgalím|cuda=כִּסֵּא גַּלְגַּלִּים / כיסא גלגלים}} * {{Z|io}}: {{W-|io|rulstulo}} * {{Z|en}}: {{W+|en|wheelchair}} * {{Z|ga}}: {{W-|ga|cathaoir rothaí|m}} * {{Z|it}}: {{W-|it|sedia a rotelle|m}} * {{Z|is}}: {{W-|is|hjólastóll|n}} * {{Z|ja}}: {{W+|ja|車椅子|tr=くるまいす, kurumaisu}}, {{W-|ja|ホイールチェア|tr=hoīruchea}} * {{Z|kl}}: {{W-|kl|issiavik assakaasulik}} * {{Z|ca}}: {{W-|ca|cadira de rodes|m}} * {{Z|ko}}: {{W+|ko|휠체어}}, {{W-|ko|바퀴의자}} * {{Z|kw}}: {{W-|kw|kador ros|m}} * {{Z|la}}: {{W-|la|sella rotalis|m}} * {{Z|lv}}: {{W-|lv|ratiņkrēsls|n}} * {{Z|lb}}: {{W-|lb|Rollstull|n}} * {{Z|mk}}: {{W-|mk|инвали́дска ко́личка|m}}, {{W-|mk|ко́личка|m}} * {{Z|mt}}: {{W-|mt|siġġu tar-roti|m}} * {{Z|gv}}: {{W-|gv|caair wheeylagh|m}} * {{Z|mi}}: {{W-|mi|tūru wīra}} * {{Z|hu}}: {{W+|hu|kerekesszék}}, {{W+|hu|tolószék}}, {{W+|hu|tolókocsi}} * {{Z|nv}}: {{W-|nv|ił naalbąąsí}} * {{Z|nrf}}: {{W-|nrf|tchaîse à reues|m}} * {{Z|no}}: {{W+|no|rullestol|n}} * {{Z|ug}}: {{W-|ug|چاقلىق ئورۇندۇق}} * {{Z|pdt}}: {{W-|pdt|Rollstool|n}} * {{Z|pl}}: {{W+|pl|wózek inwalidzki|n}} * {{Z|pt}}: {{W-|pt|cadeira de rodas|m}} * {{Z|rm}}: {{W-|rm|sutga cun rodas|m}} * {{Z|ro}}: {{W-|ro|scaun rulant|nt}}, {{W-|ro|scaun cu rotile|nt}} * {{Z|ru}}: {{W-|ru|кре́сло-ката́лка|nt}}, {{W-|ru|инвали́дное кре́сло|nt}}, {{W-|ru|инвали́дная коля́ска|m}}, {{W+|ru|кре́сло-коля́ска|nt}} * {{Z|es}}: {{W+|es|silla de ruedas|m}} * {{Z|sw}}: {{W-|sw|kitimaguru}}, {{W-|sw|kiti cha magurudumu}}, {{W-|sw|kiti mwendo}} * {{Z|sv}}: {{W+|sv|rullstol|g}} * {{Z|te}}: {{W-|te|చక్రాలకుర్చీ}} * {{Z|tr}}: {{W+|tr|tekerlekli sandalye}} * {{Z|uk}}: {{W-|uk|інвалі́дний візо́к|n}}, {{W-|uk|крі́сло-ката́лка|nt}} * {{Z|vi}}: {{W+|vi|xe lăn}} * {{Z|cy}}: {{W-|cy|cadair olwyn|m}} * {{Z|km}}: {{W-|km|រទេះជនពិការ}} * {{Z|el}}: {{W+|el|αναπηρικό καροτσάκι|nt}}, {{W+|el|αναπηρικό αμαξίδιο|nt}} {{werger-bin}} :{{werger çavkanî|en|wheelchair|beş=Ev qismê Wergerê|oldid=76568993}} mgdgttol6zbwal0t8b292p9fuuq9p4n Albatros 0 309170 6328734 4648220 2026-08-10T22:35:45Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328734 wikitext text/x-wiki {{h-bnr|albatros}} == {{ziman|de}} == === Navdêr === {{navdêr|de|z=n}} # [[albatros]] ipgzqrj6blvmy243qacs6z1jfua1whi hil kirin 0 324047 6328983 5164362 2026-08-11T11:51:07Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328983 wikitext text/x-wiki {{bnr-n|hilkirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|hil kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=hil|valahî=erê}} {{lêker|ku|c=h-gh}} # ([[agir]] yan [[ronahî]]) [[geş kirin]], [[pê xistin]], [[vêxistin]], [[berdan]]ê #: ''Dihî me agirekê gelek xweş '''hil kirbû'''.'' #* {{jêder-malper|ku|jêgirtin=Demîrtaş axaftina wiha berdewam kir: "Hûn amade ne em dê qezenc bikin. Li hemberî me ne bendavên Faşîst Kenan Evren û ne jî yên AKP'ê xwe nagirin. Agirê we '''hil kir''' dê Rojhilata Navîn ronî bike. Dê barbariya DAIŞ'ê û AKP'ê bi agirê Newrozê tune bibe."|sernav=Demîrtaş: Barbariya DAIŞ û AKP'ê dê bi ronahiya Newrozê tune bibin|url=http://www.ozgurhabergazetesi.com/dem%C3%AErtas-barbariya-dais-%C3%BB-akp%C3%AA-d%C3%AA-bi-ronahiya-newroz%C3%AA-tune-bibin,42262|malper=ozgurhabergazetesi.com|dîrok=24.03.2015}} #* {{jêder-malper|ku|jêgirtin=Jiyan Kameran ji Rûdawê re dibêje: “Ez gelek ji moman hez dikin, ne ku tenê jê hez bikim, lê ji tirsa tenêtiya xwe, hez dikim her çar aliyên min ronahî be, lewma moman '''hil dikim'''.”|nivîskar=Rengîn Şero|sernav=Keça Helebçeyî ya qurbaniya kîmyabaranê bi navê 'Jiyan' nasname wergirt|url=https://www.rudaw.net/kurmanci/kurdistan/210120196|malper=rudaw.net|sal=2019}} #* {{jêder-malper|ku|jêgirtin=biçûk bûm, gava min li dûrî waran bi pêxistina findekê '''hil kir''' agirê te û gundiyên warê gurê boz gotin min, “xoce tu yekî romantîk î”…|nivîskar=Dilawer Zeraq|sernav=biçûk bûm...|url=https://diyarname.com/news.php?Idx=34336|malper=diyarname.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Gelek welatiyan li kolanan agirê Newrozê pê xist û gelek welatiyan jî li şaneşînên xwe agirê Newrozê '''hil kir'''.|sernav=Li Bakur coşa cejna Newrozê|url=https://e-rojname.com/bs-nuce/82429/|malper=e-rojname.com|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Li gora nûçeya gihîştî malpera “Kurdistanmedia”yê serbarê zexta rejîmê li ser xelkê Kurdistanê bona vê ku merasima newrozê bi rê ve nebin, lê xelkê bi bêguhdana bi çavsoriyên rejîmê, agirê newrozê '''hil kirin''', û merasim bi rê ve birin.|sernav=Bavê şehîd Qadir Kerîmî agirê newroza Gellwanî hil kir|url=https://kurdistanmedia.com/ku/news/bave-sehid-qadir-kerimi-agire-newroza-gellwani-hil-kir|malper=kurdistanmedia.com|sal=2018}} ==== Bi alfabeyên din ==== * {{ku-ar|هل کرن}} ==== Etîmolojî ==== Ji {{heve|ku|hil|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|aufheben}}, {{W|de|aufwerfen}}, {{W|de|entwurzeln}}, {{W|de|abreissen}}, {{W|de|hochheben}}, {{W|de|erraten|guman=erê}} * {{Z|fa}}: {{W+|fa|آتش گرفتن، آتش زدن}} * {{Z|en}}: to {{W|en|ignite}}, {{W|en|catch fire}}, {{W|en|flare up}} * {{Z|tr}}: {{W+|tr|alevlendirmek}} {{werger-bin}} 0ain0itf5tui5rrsyd8puisqw1jehbt araste bûn 0 326285 6328779 6112702 2026-08-11T00:25:36Z Balyozbot 7867 /* Lêker */ sererastkirin 6328779 wikitext text/x-wiki {{bnr-n|arastebûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} === Lêker === {{ku-tewîn-lk|araste bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=araste|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[berê xwe dan]] [[cih|cihekî]] an [[tişt]]ekî #* {{jêder-malper|ku|jêgirtin=Li ser vê yekê em '''arasteyî''' pirê '''dibin''' û cara duyem em di ser pira Nîssîbiyê ya li ser çemê Ferêt re derbas dibe û daxilê erda Komageneyê dibin.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} #* {{jêder-kitêb|ku|jêgirtin= ...ji du terefan leşker '''araste''' qesda ceng û cîdalê '''bûyî'''.|nivîskar={{w|Mela Mûsayê Hekarî}}|sernav=Durrû’l Mecalîs|amadekar=Hêmin Omer|sala weşandinê=2022|sal=1857|rûpel=75}} ==== Etîmolojî ==== Ji {{heve|ku|araste|bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: to {{W+|en|head}} (to/for) * {{Z|tr}}: {{W+|tr|yönelmek}} {{werger-bin}} iul1esfttp2dmzgvesbculrpxd6zis2 6328868 6328779 2026-08-11T02:12:19Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328868 wikitext text/x-wiki {{bnr-n|arastebûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} === Lêker === {{ku-tewîn-lk|araste bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=araste|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[berê xwe dan]] [[cih]]ekî an [[tişt]]ekî #* {{jêder-malper|ku|jêgirtin=Li ser vê yekê em '''arasteyî''' pirê '''dibin''' û cara duyem em di ser pira Nîssîbiyê ya li ser çemê Ferêt re derbas dibe û daxilê erda Komageneyê dibin.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} #* {{jêder-kitêb|ku|jêgirtin= ...ji du terefan leşker '''araste''' qesda ceng û cîdalê '''bûyî'''.|nivîskar={{w|Mela Mûsayê Hekarî}}|sernav=Durrû’l Mecalîs|amadekar=Hêmin Omer|sala weşandinê=2022|sal=1857|rûpel=75}} ==== Etîmolojî ==== Ji {{heve|ku|araste|bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: to {{W+|en|head}} (to/for) * {{Z|tr}}: {{W+|tr|yönelmek}} {{werger-bin}} l14gurs07i0ahrshcw1brwvtshqiuqr şelafî 0 334713 6328705 6157930 2026-08-10T14:29:41Z IbrahimKocher Duhok 4280 Werger: +îngilîzî : [[flattery]] (bi alîkarî) 6328705 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # rewşa [[şelaf]]bûnê # {{kontrol|rêz=erê|[[melaqî]], [[şînekî]], [[şalûsî]], [[çaplûsî]], [[lêbokî]], [[seypesanî]], [[xweşekî]], [[aloşî]]}} ==== Etîmolojî ==== Ji {{paş|ku|şelaf|-î}} ==== Jê ==== {{kol3|ku|cure=Jê |şelafî bûn<pos:lêker> |şelafî kirin<pos:lêker> |şelafîbûn<pos:navdêr> |şelafîkirin<pos:navdêr> }} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|oiliness}}, {{W+|en|flattery}} * {{Z|tr}}: {{W+|tr|dalkavukluk}}, {{W+|tr|yağcılık}}, {{W-|tr|yalakalık}} {{werger-bin}} jt6q68w1r5ht5bw4cfp5u6wgp2ykqg4 6328706 6328705 2026-08-10T14:31:24Z IbrahimKocher Duhok 4280 Werger: +farisî : [[چاپلوس]] (bi alîkarî) 6328706 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # rewşa [[şelaf]]bûnê # {{kontrol|rêz=erê|[[melaqî]], [[şînekî]], [[şalûsî]], [[çaplûsî]], [[lêbokî]], [[seypesanî]], [[xweşekî]], [[aloşî]]}} ==== Etîmolojî ==== Ji {{paş|ku|şelaf|-î}} ==== Jê ==== {{kol3|ku|cure=Jê |şelafî bûn<pos:lêker> |şelafî kirin<pos:lêker> |şelafîbûn<pos:navdêr> |şelafîkirin<pos:navdêr> }} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|چاپلوس}} * {{Z|en}}: {{W+|en|oiliness}}, {{W+|en|flattery}} * {{Z|tr}}: {{W+|tr|dalkavukluk}}, {{W+|tr|yağcılık}}, {{W-|tr|yalakalık}} {{werger-bin}} 5jslv0l7drtc7b3f1yruxsffs25pifg 6328707 6328706 2026-08-10T14:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328707 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # rewşa [[şelaf]]bûnê # {{kontrol|rêz=erê|[[melaqî]], [[şînekî]], [[şalûsî]], [[çaplûsî]], [[lêbokî]], [[seypesanî]], [[xweşekî]], [[aloşî]]}} ==== Jê ==== {{kol3|ku|cure=Jê |şelafî bûn<pos:lêker> |şelafî kirin<pos:lêker> |şelafîbûn<pos:navdêr> |şelafîkirin<pos:navdêr> }} ==== Etîmolojî ==== Ji {{paş|ku|şelaf|-î}} ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|چاپلوس}} * {{Z|en}}: {{W+|en|oiliness}}, {{W+|en|flattery}} * {{Z|tr}}: {{W+|tr|dalkavukluk}}, {{W+|tr|yağcılık}}, {{W-|tr|yalakalık}} {{werger-bin}} fgl1xi1rk616q13kgqt1vsajuc4qwhz nefsmezin 0 341250 6328863 6118369 2026-08-11T01:32:43Z Wikihez 7344 /* Rengdêr */ 6328863 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesê [[nefs]]a wî [[mezin]] e; kesê ne [[dilnizm]]. #: {{hevmane|ku|pozbilind|qure|difinbilind|arogan|qebe|mexrûr|xurr|kuşpene|kepîbilind|bixurûr}} #: {{dijmane|ku|nefsbiçûk}} #* {{jêder-malper|ku|jêgirtin=Heke niha mimkun bûya û derfet û hêz û şiyaneke min a bi wî rengî hebûya, min dixwest biçime ser gorra Ûsivê ‘Hemîd ê bavê xwe, gorra wî ya li Xelfeliya Îdirê, bavê min ê ku hê jî 7 salî ye di nezera min de, ê sala 2012an wexer kirî û hê jî ez neçûme ser, û min ê bigota, “Bavo, şukir, kurê te yê (bi gotina te) '''‘nefsmezin’''' axirî hate ber serê Te, ciya min ‘Helîme û neviyê te Siyabend Arî jî milên xwe di stûyê min re birine, dibêjine min, ‘Megirî, megirî, melorîne!’”|nivîskar=Kawa Nemir|sernav=Kawa Nemir: Antî-semîtîzm rabûye ser zîn, antî-kurdîzm jî li Kurdistanê û dîyasporayê rehên xwe berdide|url=https://botantimes.com/kawa-nemir-anti-semitizm-rabuye-ser-zin-anti-kurdizm-ji-li-kurdistane-u-diyasporaye-rehen-xwe-berdide/|malper=Botan Times|dîrok=02.12.2023}} ==== Etîmolojî ==== Ji {{heve|ku|nefs|mezin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|uppish}} * {{Z|tr}}: {{W+|tr|kibirli}}, {{W+|tr|kurumlu}}, {{W+|tr|mağrur}} {{werger-bin}} o0uiivq7j9arh015a6vha3dv7hpts7u devbiken 0 341561 6328910 6162431 2026-08-11T11:27:51Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328910 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|devbiken}} {{rengdêr|ku}} # Kesa/ê ku hertim [[kenîn|dikene]]. #: {{hevmaneyên peyvê|ku|beşûş}} #* {{jêder|ku|jêgirtin=Bêjna min dirêj, porê min reş û direj, ez spehî û her '''devbiken''' bûm.|{{Jêgirtin/Firat Cewerî/Payiza Dereng|weşanxane={{w|Avesta}}|sal=2014|r=24}}}} #* {{jêder-malper|ku|jêgirtin=Her çiqas jiyaneke gelek çetin û dijwar derbas kirîbû jî, dîtina min dît, di jiyanê de jîr, wisa jî zîrek, bi disîplîn û çeleng bû. '''Devbiken''' bû. Tinaz, henek û laqirdiyên wê xurt bûn.|nivîskar=Nihat Gültekin|sernav=80 Saliya Cemîla Casimê Celîl|url=https://kurttarihidergisi.com/blog/80-saliya-cemila-casime-celil|malper=kurttarihidergisi.com|sal=2020}} #* {{jêder-kovar|ku|jêgirtin=Kûto bi heyecaneke '''devbiken''' bersivand (...)|kovar=Tîroj|sernav=Kûtê binê tenûrê|url=http://ontwikkel2.mvanlaar.net/Portals/0/adam/Blog%20App/LvEWtpWmn0O1aBOxocpbLQ/File/T%C3%AEroj_29.pdf|nivîskar=J.K|hejmar=29|sal=2007|rûpel=20}} #* {{jêder-kovar|ku|jêgirtin=Li vê herêmê bajar bilivûtevgertir û mirov '''devbikentir''' in.|kovar=Le Monde diplomatique kurdî|sernav=Serpêhatîyên ukraynî|url=http://ontwikkel2.mvanlaar.net/Portals/0/adam/Blog%20App/arncyn_dSE6Y5w4Ktzb7BA/File/lemonde_kurdi_25.pdf|nivîskar=Andrei Kourkov|wergêr=Baran Nebar|hejmar=25|sal=2011|rûpel=16}} ==== Etîmolojî ==== Ji {{qertaf|ku|dev|bi|ken}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|cheerful}}, {{W+|en|joyful}} * {{Z|tr}}: {{W+|tr|beşuş}}, {{W+|tr|güler yüzlü}}, {{W+|tr|güleç}} {{werger-bin}} 4jvgvvphdqrkse3wkx6yeiab82auf8t barebar 0 342702 6328794 6298133 2026-08-11T00:27:18Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328794 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î}} [[deng|Dengê]] [[bangkirin]]ê bi [[deng]]ekî [[qebe]] û [[nexweş]].<ref>{{malper|nivîskar=ishak_baravi|url=https://twitter.com/ishak_baravi/status/1296482946799546369|sernav=Cotepeyvên Teqlîdî|malper=twitter.com|sal=2020|ziman=ku}}</ref> #* {{jêder-malper|ku|jêgirtin=Ew ditirsin, lê tirsa wan ne ji ber pereyan e. Gurên boz eşkere dibêjin ko ev kanal dê rê li ber parçebûna dewletê veke û loma li dijî wê derdikevin. '''Barebara''' kevnegeneralan e. Qareqara kurdkuj û ergenekonperestan e.|nivîskar=Mustafa Aydogan|sernav=Bihêlin kî dixwaze bi kurdî bipeyive bila bipeyive!|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=28&RubricNr=24&ArticleNr=4047|malper=nefel.com|sal=2009}} #* {{jêder-malper|ku|jêgirtin=Her roj qîreqîr û '''barebara''' Erdogan û berdevkên hikûmetê… Her ku diqîrin; pereyê Tirkiyê (TL) dikeve, dolar (USD) bilindtir dibe… Her ku diqîrin; xelk feqîrtir dibe… Her ku diqîrin; xelk diêşe, meseleyên esasî bêçareserî li holê dimînin…|nivîskar=Halil Dalkılıç|sernav=Erê çav sor in, lê rewş ne gorî dilê wan e!..|url=https://nupel.net/halil-dalkilic-ere-cav-sor-in-le-rews-ne-gori-dile-wan-e-19715h.html|malper=nupel.net|dîrok=}} #* {{jêder-malper|ku|jêgirtin=Bi vexwarina çayekê re min li dengê okêya kurdî huhdarî kir, dengê çêr û xeyîdîn û '''barebara''' bi kurdî guhdarî kir, kêf ken û henekên mirovan temaşe kir.|nivîskar=M. Çiya Mazî|sernav=Vegera Bakurê Kurdistanê|url=https://www.amidakurd.org/ku/tekst/vegera_bakur%C3%AA_kurdistan%C3%AA|malper=amidakurd.org|dîrok=15.12.2013}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * ''(Lêker)'' [[barebar kirin]] ==== Etîmolojî ==== Ji {{navg|ku|bar|-e-|bar}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}:{{W+|tr|bar bar}} {{werger-bin}} === Çavkanî === {{çavkanî}} nejgz8d5wspnuh9f6ms0hawaohtkhyp bêzin 0 344050 6328807 6278514 2026-08-11T00:28:38Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328807 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[terwende]], [[kêm]], [[kêmpeyda]] #* {{jêder-malper|ku|jêgirtin=Geştîgeh û hem liman e bender </br>Terwende û hem '''bêzin''' jî ender |nivîskar=Abdulkadir Bîngol|sernav=Ji Kitêba Abdulkadîr Bîngöl a Nûbihara Mezinan beşek|url=https://www.facebook.com/Dilkul.Ciziri/posts/1097391540330860/|malper=facebook.com|dîrok=04.06.20016}} #* {{jêder-malper|ku|jêgirtin=Yek ji hevalên '''bêzin''' (nadir) bû kû di zanî her tim azad jiyan bike.|sernav=Zarokên Azad yên Kurdistan’ê|url=https://yps-online.net/zaroken-azad-yen-kurdistane/|malper=yps-online.net|sal=2017}} #* {{jêder-pirtûk|ku|jêgirtin=Ji neçarî hevjînê wê jinê tekê '''bêzin''' ji destê hevjîna xwe derxist û da wî bêwijdanî ta ku derbasî (kişwera dizan) bin|nivîskar=Merwan Berekat|sernav=Efrîn Destanê û Birîn|url=https://www.kurdipedia.org/files/books/2019/236473.PDF?ver=131932560360893149|sal=2018|rûpel=177}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|uncommon}} * {{Z|tr}}: {{W+|tr|nadir}} {{werger-bin}} === Formeke navdêrê === {{navdêr|ku|form=erê}} # ''[[form]]a [[çemandî]] ji [[peyv]]a'' '''[[bazin]]''' ==== Formên alternatîv ==== *[[bazinî]] ==== Bikaranîn ==== * [[kurmanciya navendî]] û [[kurmanciya rojavayî|rojavayî]] ay9e0b0u5c6kcktjp26970am3zomcd2 6328839 6328807 2026-08-11T00:41:17Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328839 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[terwende]], [[kêm]], [[kêmpeyda]] #* {{jêder-malper|ku|jêgirtin=Geştîgeh û hem liman e bender </br>Terwende û hem '''bêzin''' jî ender |nivîskar=Abdulkadir Bîngol|sernav=Ji Kitêba Abdulkadîr Bîngöl a Nûbihara Mezinan beşek|url=https://www.facebook.com/Dilkul.Ciziri/posts/1097391540330860/|malper=facebook.com|dîrok=04.06.20016}} #* {{jêder-malper|ku|jêgirtin=Yek ji hevalên '''bêzin''' (nadir) bû kû di zanî her tim azad jiyan bike.|sernav=Zarokên Azad yên Kurdistan’ê|url=https://yps-online.net/zaroken-azad-yen-kurdistane/|malper=yps-online.net|sal=2017}} #* {{jêder-pirtûk|ku|jêgirtin=Ji neçarî hevjînê wê jinê tekê '''bêzin''' ji destê hevjîna xwe derxist û da wî bêwijdanî ta ku derbasî (kişwera dizan) bin|nivîskar=Merwan Berekat|sernav=Efrîn Destanê û Birîn|url=https://www.kurdipedia.org/files/books/2019/236473.PDF?ver=131932560360893149|sal=2018|rûpel=177}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|uncommon}} * {{Z|tr}}: {{W+|tr|nadir}} {{werger-bin}} === Formeke navdêrê === {{navdêr|ku|form=erê}} # ''[[form]]a [[çemandî]] ji [[peyv]]a'' '''[[bazin]]''' ==== Notên bikaranînê ==== * [[kurmanciya navendî]] û [[kurmanciya rojavayî|rojavayî]] ==== Formên alternatîv ==== *[[bazinî]] g3kprpvp7davd2elpysh2s4kyhuuybz 6328860 6328839 2026-08-11T01:15:33Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328860 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[terwende]], [[kêm]], [[kêmpeyda]] #* {{jêder-malper|ku|jêgirtin=Geştîgeh û hem liman e bender </br>Terwende û hem '''bêzin''' jî ender |nivîskar=Abdulkadir Bîngol|sernav=Ji Kitêba Abdulkadîr Bîngöl a Nûbihara Mezinan beşek|url=https://www.facebook.com/Dilkul.Ciziri/posts/1097391540330860/|malper=facebook.com|dîrok=04.06.2016}} #* {{jêder-malper|ku|jêgirtin=Yek ji hevalên '''bêzin''' (nadir) bû kû di zanî her tim azad jiyan bike.|sernav=Zarokên Azad yên Kurdistan’ê|url=https://yps-online.net/zaroken-azad-yen-kurdistane/|malper=yps-online.net|sal=2017}} #* {{jêder-pirtûk|ku|jêgirtin=Ji neçarî hevjînê wê jinê tekê '''bêzin''' ji destê hevjîna xwe derxist û da wî bêwijdanî ta ku derbasî (kişwera dizan) bin|nivîskar=Merwan Berekat|sernav=Efrîn Destanê û Birîn|url=https://www.kurdipedia.org/files/books/2019/236473.PDF?ver=131932560360893149|sal=2018|rûpel=177}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|uncommon}} * {{Z|tr}}: {{W+|tr|nadir}} {{werger-bin}} === Formeke navdêrê === {{navdêr|ku|form=erê}} # ''[[form]]a [[çemandî]] ji [[peyv]]a'' '''[[bazin]]''' ==== Notên bikaranînê ==== * [[kurmanciya navendî]] û [[kurmanciya rojavayî|rojavayî]] ==== Formên alternatîv ==== *[[bazinî]] hvg0t915uqbx2rbun28vcg3bznm7peo evî 0 359969 6328951 6232752 2026-08-11T11:49:34Z Balyozbot 7867 /* Cînav */ sererastkirin 6328951 wikitext text/x-wiki == {{ziman|ku}} == === Cînav === {{cînav|ku}} # {{guharto|ku|vî}} #* {{jêder-malper|ku|jêgirtin=Haja min ji '''evî''' nivîsa Celadet Bedirxan tune bû, heke min xwendibe jî ewê çaxê min baş dêna xwe nedayê miheqeq. |nivîskar=Rehmî Kurdziman|sernav=Ez ji xwe ra nabêjim nivîskar, karê min nivîskarî nîne|malper=inanolo.blogspot.com|url=https://inanolo.blogspot.com/2018/10/rehmi-kurdziman-ez-ji-xwe-ra-nabejim.html|sal=2018}} du5mrsk6z62d6ribxq1ufskqa4dkaqu bastannas 0 375358 6328796 6298206 2026-08-11T00:27:25Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328796 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # {{f|ku|nadir|zanist}} Kesên ku [[erd]]ê [[kolîn|dikolin]] û li [[dîrok]]a [[qedîm]] [[lê gerîn|digerin]]. #* {{jêder-malper|ku|jêgirtin=Kûpa Zêrîn a Hesenlû li sala 1958’ di erdkolaneke hevpar navbera Îran û Amerîkayê, li girê kevnar(bastanî) ê Hesenlû ê Nexedeyê, ji aliyê arkeolojîk ('''bastannas''') ê Amerîkî, Rabêrt Daysom, hat peyda kirin.|sernav=Mehrîcana asareke kevnar a Kurdistanê li parêzgeha Urmiyê|url=https://kurdpa.net/ku/news/mehricana-asareke-kevnar-a-kurdistane-li-parezgeha-urmiye|malper=urdpa.net|sal=2014}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Hevmane ==== * [[şûnwarnas]] * [[arkeolog]] * [[kevnarnas]] ==== Jê ==== * [[bastannasî]] ==== Etîmolojî ==== Ji {{ji|ckb|ku|باستانناس}}. ==== Bi zaravayên din ==== {{werger-ser|stûn=1}} * {{Z|ckb}}: {{W-|ckb|باستانناس|tr={{g|ckb|bastannas|sc=Latn}}}} {{werger-bin}} ==== Werger ==== {{werger-bnr|arkeolog}} === Çavkanî === * {{Zana Farqînî|r=95}} * {{ferhenga izolî|r=491}} cempo500wc9l7ahlenutboz72z6ntfz biqelafet 0 376418 6328816 6065871 2026-08-11T00:29:00Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328816 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|bi|qe|la|fet}} === Rengdêr === {{ku-tewîn-rd|biqelafet}} {{rengdêr|ku}} # [[laşgir]], [[qelantor]] #* {{jêder|ku|jêgirtin=Raymondê nîv reşîk, ku reşikiya wî ne zêde, bes têra xuyakirina durehiya wî dikir, bi bejn û bala xwe ve yekî '''biqelafet''' bû.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=73}}}} #* {{jêder-malper|ku|jêgirtin=Ez xwendekarekî '''biqelafet''' bûm . Ji bo ku di polê de zêdegavî çênebe. Serokê polê ez hatibûm hilbijartin.|nivîskar=Dilovan Altuboga|sernav=Du Bîraniyên Min|url=https://web.archive.org/web/20200410130448/http://candname.com/du-biraniyen-min/|malper=http://candname.com/du-biraniyen-min/|dîrok=08.07.2016}} #* {{jêder-malper|ku|jêgirtin=Ma ew zilamê mezin û '''biqelafet''', çawa ew cûc û gunikên biçûk…|nivîskar=Ismaîl Yildiz|sernav=Li ser Berzika Destavêjekî|url=https://archive.org/details/qijikerejkovarhejmar3|malper=Kovara Qijika Reş, r.132|sal=2011}} ==== Etîmolojî ==== Ji {{qertaf|ku|bi-|qelafet}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|bodied}} * {{Z|tr}}: {{W+|tr|cüsseli}} {{werger-bin}} nt913v4d1pbek5j80fkssfkx64qxnt4 dilrehm 0 377389 6328918 6065874 2026-08-11T11:32:32Z Balyozbot 7867 sererastkirin 6328918 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|dil|rehm}} === Rengdêr === {{ku-tewîn-rd|dilrehm}} {{rengdêr|ku}} # [[dilşewat]], [[dilsot]], [[dilsoj]], [[hestyar]], [[şîrîn]], [[bihîzyar]], [[hisgir]], [[hesas]], [[jidil]], [[hestger]], [[dilzîz]] #* {{jêder-malper|ku|jêgirtin=Lazim e ku şagirtên Îsa hevdil an '''dilrehm''' bin. Lê belê ev yek carinan li me zor tê, çimkî em biqisûr in.|sernav=Dilrehm Be!|url=https://www.jw.org/kmr-x-rd/kitebxane/kovar/birca-cavderiye-lekolin-adar-2019/dilrehm-be/|malper=jw.org/kmr|sal=03/2019}} #* {{jêder-pirtûk|ku|jêgirtin=Ji aniha û pê ve nahêlim tu kes li der û dora mala Xaltiya Pîrevoka '''dilrehm''' bigere. Hema kî û çi bigere, ez ê wan di nava zimanên xwe de bixeniqînim.|nivîskar=Mehmed Tekçe|sernav=Azadîstan|weşanxane=Na Yayınları|rûpel=51|isbn=9786059017213}} #* {{jêder-pirtûk|ku|jêgirtin=Him emir da, him jî di efrandinêd xwe da Ûsivê Beko yekî nazil û '''dilrehm''' e bona kirin û tiştêd qenc, lê ji vêya zêdetir jî berk û bi înk e hindava nerastiyê, neheqiyê û zordestiyê.|nivîskar=Têmûrê Xelîl|sernav=Antolojiya 35 Helbestvan û Nivîskarên Kurd ên Sovyeta Berê|weşanxane=Na Yayınları|sal=01.01.2014|rûpel=257|isbn=9786059017039}} ==== Etîmolojî ==== Ji {{qertaf|ku|dil|rehm}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|gnädig}}, {{W|de|zärtlich}}, {{W|de|milde|guman=erê}}, {{W|de|mitfühlend}} * {{Z|fa}}: {{W+|fa|دلرحم}} * {{Z|en}}: {{W+|en|kindhearted}}, {{W+|en|compassionate}}, {{W+|en|merciful}} * {{Z|tr}}: {{W+|tr|bağrı yufka}}, {{W+|tr|şefkatli}} {{werger-bin}} mxz034upckynrj4bvcw2isirb4zb6cb dilzîz 0 377404 6328919 6167848 2026-08-11T11:38:47Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328919 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[hestdar]], [[pejndar]], [[hestgerm]], [[diltenik]], [[dilşoş]], [[hestger]], [[hestyar]], [[çavbiav]], [[çavbistêrk]], [[çavşil]], [[dilşoj]], [[dilnerm]], [[bihîzyar]], [[hisgir]] #* {{jêder-pirtûk|ku|jêgirtin=Çi bû ye ji te? Ma qey tu nizane ku ev deh sal in bavê min miriye? Bi vê gotinê re, mîna Nepenê ji nû ve bi ser hişê xwe ve were, lêva xwe gez kir û di dilê xwe de got: “Gelo ew kî bû, ku şeva çûyî bû siya li ser dilê vê Nepena gewr a '''dilzîz''' re.|sal=2015|nivîskar=Mahîr Bagok|url=http://books.google.com.tr/books?id=L4fhDwAAQBAJ&pg=PA157&dq=%22dilz%C3%AEz%22&hl=&cd=3&source=gbs_api|sernav=Siya Nepenê|weşanxane=Na Yayınları|ISBN=9786059017190|rûpel=157}} #* {{jêder-malper|ku|jêgirtin=Xanima Şeyhmus Alpsoyê ku mehkûm û nexweş e û bi salan bi şikleke neheq di girtîgehê de tê girtin nameyeke '''dilzîz''' a bi sernava “Rebbê min ez ji te re gazinan dikim” nivîsand.|sernav=Ji xanima Şeyhmus Alpsoyî nameyeke dilzîz|url=https://ilkha.com/kurmanci/rojev/ji-xanima-seyhmus-alpsoy-nameyeke-dilzz-12197|malper=ilkha.com/kurmanci|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Ji pişta çiyayekî ji êgir û girî<br>şahmeraneke '''dilzîz'''<br>şeveqeke gulînî ji bilindahiyan dadixe|nivîskar=Fatma Savci|sernav=Xewna Hilatî|url=https://www.helbestakurdi.com/helbest/fatma-savci--xewna-hilati.html|malper=helbestakurdi.com}} ==== Jê ==== * {{g|ku|dilzîzî}} * {{g|ku|dilzîz kirin}} * {{g|ku|dilzîzkirin}} * {{g|ku|dilzîz bûn}} * {{g|ku|dilzîzbûn}} ==== Etîmolojî ==== Ji {{pêk|ku|dil|zîz}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|zartfühlend}}, {{W|de|rührselig}}, {{W|de|schwermütig}}, {{W|de|zärtlich}}, {{W|de|einfühlsam|guman=erê}} * {{Z|fa}}: {{W+|fa|نازک دل}} * {{Z|en}}: {{W+|en|emotional}}, {{W|en|sentimental}} * {{Z|tr}}: {{W+|tr|duygulu}}, {{W+|tr|hisli}}, {{W+|tr|mütehassis}}, {{W+|tr|santimantal}}, {{W+|tr|sulu gözlü}}, {{W+|tr|yufka yürekli}}, {{W|tr|duygusal}}, {{W|tr|hassas}} {{werger-bin}} 55fx4sjau7sc4l43tivigw9td6ak01r devgirk 0 381157 6328911 6305134 2026-08-11T11:27:54Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328911 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[devik]], [[bergirk]], [[tampon]] #* {{jêder|ku|jêgirtin='''Devgirka''' qutiya ji camê rakiribû, qolye danîbû orta wê û dîsa devgirk girtibû.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=90}}}} #* {{jêder|ku|jêgirtin=Û ji vê xalê '''devgirka''' beroşa kozmîk (xala kozmîk) vebû...|Şerîf Çelebî: ''Gelo li gorî zanistê gumanîya nebûna xwedê heye?'', Kovara Felsefevan, Hj. 5, 2016, r. 12}} #* {{jêder-malper|ku|jêgirtin=Spîral, RÎA yan jî '''devgirk''', amrazek e ku ji plastîkê çêbûye û li welatê me jê re spîral tê gotin. |nivîskar=KOMELEYA MAFÊN MIROVAN ÊN JINAN|sernav=AMRAZA NAV MALZAROKÊ - RÎA (SPÎRAL)|url=https://archive.org/details/mafen-me-yen-zayekiye-hene-kurdi|malper=http://kadinininsanhaklari.org/|sal=2014}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{qertaf|ku|devgir|-k}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|درپوش}}, {{W+|fa|کپسول}}, {{W+|fa|کپسول}} * {{Z|en}}: {{W+|en|detonator}}, {{W+|en|wadding}}, {{W+|en|stopper}} * {{Z|tr}}: {{W+|tr|tıkaç}}, {{W+|tr|kapsül}}, {{W+|tr|tapa}}, {{W|tr|mantar}}, {{W|tr|tıpa}} {{werger-bin}} 9ov1wnhj4hat032nno1t473cqu98b4z bixwebawer 0 423530 6328819 6230411 2026-08-11T00:29:07Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328819 wikitext text/x-wiki == {{ziman|ku}} == === Rengdêr === {{ku-tewîn-rd|bixwebawer}} {{rengdêr|ku}} # [[jixwebawer]], [[jixwerazî]], [[biste]] #* {{jêder|ku|jêgirtin=Dema ez hatim vir, ez xortekî nûgihiştî û '''bixwebawer''' bûm.|{{Jêgirtin/Firat Cewerî/Payiza Dereng|weşanxane={{w|Avesta}}|sal=2014|r=23}}}} #* {{jêder-malper|ku|jêgirtin=Rojnamegerê Iraqî Zeydî ku pêlav avêtibû Bush di hilbijartinê da '''bixwebawer''' e.|nivîskar=Önder Beyter|sernav=Rojnamegerê Iraqî Zeydî ku pêlav avêtibû Bush di hilbijartinê da bixwebawer e|url=https://www.aa.com.tr/kk/dinya/rojnameger%C3%AA-iraq%C3%AE-zeyd%C3%AE-ku-p%C3%AAlav-av%C3%AAtib%C3%BB-bush-di-hilbijartin%C3%AA-da-bixwebawer-e/1140158|malper=aa.com.tr/kk|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Îja ligel vê, kar û xebata bo zarokan di tevahiya jiyana welatan de li pileya herî pêş e û ji bernameyên TV, Radyo, Medyaya Civakî bigire heta yarîgeh û krêşan, baxçeyên zarokan her tişt ji bo hindê ye ku nifşekî baştir, zanatir, '''bixwebawertir''' bigihêje û vê dinyaya me bike warekî xweştir û şêntir…|nivîskar=Omer Dilsoz|sernav=Xebatên bo zarokan|url=https://www.yuksekovahaber.com.tr/yazi/xebaten-bo-zarokan-4120.htm|malper=yuksekovahaber.com.tr|sal=2015}} ==== Jê ==== * {{g|ku|bixwebawerî}} ==== Etîmolojî ==== Ji {{qertaf|ku|bi|xwe|bawer}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|selbstzufrieden}} * {{Z|en}}: {{W+|en|confident}}, {{W+|en|self-confident}} * {{Z|tr}}: {{W-|tr|öz güvenli}}, {{W+|tr|iddialı}} {{werger-bin}} jui1evtnt0xqobh6jbffd3i1b41hihd bersivdêr 0 424170 6328803 6299095 2026-08-11T00:28:26Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328803 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # Kesa/ê ku [[bersiv dan|bersiv dide]]. #* {{jêder-kovar|ku|jêgirtin=Ev pirseke, ko bersiva wê pir zor e û pêdiviye '''bersivdêr''' agah li hemen hemen hemî cureyên nivîsîna kurdî û bihemî zaraveyan hebe û ez vê idîayê nakim, lê li gor agahiyên min, lêkolînerên kurd di warê edeba kurdî ya kilasîkî de, hebûn û hene...|kovar=Pênûsa Nû|sernav=Hevpeyvînek zindî biTengezarê Marînî re|nivîskar=Tengezarê Marînî|hejmar=17|sal=2013|rûpel=20}} #* {{jêder-kovar|ku|jêgirtin=Bo zelalkirina têgeha derbirînên wek van mînakan, gerek mebesta '''bersivdêr''' ji pêvajoya hevokê zelal be.|kovar=Kanîzar|sernav=LÊKER (KAR) DI ZIMANÊ KURDÎ DE (6)|url=https://zimannas.files.wordpress.com/2018/02/hejmar16.pdf|nivîskar=Deham Ebdulfetah|hejmar=16|sal=2018|rûpel=228}} # [[berpirs|Berpirs]], [[berpirsiyar]], [[mesûl]]. #* {{jêder-malper|ku|jêgirtin=Zerîf: Amerîka divê ji ber derketina ji Perymana Atomî '''bersivdêr''' be|sernav=Zerîf: Amerîka divê ji ber derketina ji Perymana Atomî bersivdêr be|url=https://kurmanci.sahartv.ir/news/%C3%8Eran-i315673|malper=kurmanci.sahartv.ir|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Formên alternatîv ==== * [[bersivder]] ==== Etîmolojî ==== Ji {{paş|ku|bersiv|-dêr}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|respondent}} * {{Z|tr}}: {{W-|tr|cevap veren}} (kimse) {{werger-bin}} d8t0ymmgrgc47dqdaxzc3xwgq4kifxs herî kirin 0 433229 6328733 4581108 2026-08-10T22:33:54Z Wikihez 7344 6328733 wikitext text/x-wiki {{bnr-n|herîkirin}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈriː kɘˈɾɘn/}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|herî kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=herî|valahî=erê}} {{lêker|ku|c=h-gh}}, {{bilêv|r|req|1}} # [[çamûr kirin]] ==== Etîmolojî ==== Ji {{heve|ku|herî|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|bedraggle}} {{werger-bin}} ovmmqdv5ig5k2rckivmn8fpoke1nkty kirin boraq 0 433453 6329020 6150269 2026-08-11T11:52:29Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329020 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=}} # [[kirin qurban]], [[qurban kirin]] #* {{jêder-malper|ku|jêgirtin=Ji Cabir bîn Ebdullah hatiye ragihandin, ku wiha got: Me bi Pêxember (e.s) ra ferza Hecê edakir, me huştir ji ber heftan û çêlek ji ber heft kesan ve '''kir boraq''' (şerjêkir) .|sernav=Boraq|url=https://serhedname.com/?p=1841|malper=serhedname.com|sal=2017}} #* {{jêder-malper|ku|jêgirtin=baş dizanim, lê semîra te jînenîgarî '''kir boraq''' ji bo erdnîgariyê, heyfa min tê li keçaniya te ya terr, li hêviyên te yên serzer.|nivîskar=Rênas Jiyan|sernav=Semîramîs|url=https://www.helbestakurdi.com/helbest/renas-jiyan--semiramis.html|malper=helbestakurdi.com}} ==== Etîmolojî ==== Ji ''[[kirin]] + [[boraq]].'' ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|kurban etmek}} {{werger-bin}} m9qh4avbogux5ly64z6wid63y3xumlo kêlb 0 447702 6329017 6097267 2026-08-11T11:52:22Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329017 wikitext text/x-wiki {{bnr-h|kelb}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[hov]], [[har]] #* {{jêder-malper|ku|jêgirtin=Kurdistanê rumetê xwe yê hov û '''kêlb''' û pencên xwe yê ku bi xwina jin û zarokên Kurda sor bûyî naveşêrin.|sernav=Firmiskên heramzadên welat|url=http://www.dengekurdistan.nu/details.aspx?an=1415|malper=dengekurdistan.nu|sal=2012}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 1 === {{navdêr|ku|z=n}} # {{f|ku|Lacertus}} {{f|ku|xişok}} Cureyek [[xijinde]]yan e ku hêk dikin û çarpê digerin û xwînsar in,{{p-wate}} <br> ==== Hevmane ==== {{kol3|ku |gumgumok |marmaroş |dîlmar |margîsk |kêlbezer |meqezer |qimqimok |kelpezî |kêlbik |fatik |dêmar |dêlemar |bûkemar |marmarok |dîlmar |dêlmar |kêlbesor |dakmar |beqmar }} ==== Etîmolojî ==== Bi kêmî bi maneya "har, hov" ji {{ji|ar|ku|كلب}} (kelb: [[se]], [[seg]], [[kûçik]]) ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|cuspid|guman=erê}}, {{W|en|langur|guman=erê}}, {{W|en|laniary|guman=erê}}, {{W|en|fang}} * {{Z|tr}}: {{W|tr|kertenkele}}<ref>{{Zana Farqînî|r=1007}}</ref> {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=n}} # {{guherto|ku|kilb|w=diranê caneweran ê tûj}} === Çavkanî === {{çavkanî}} jxcvlvcfc417f4xfr1ksazw2g4s3ovr gerxele 0 448935 6328966 6307269 2026-08-11T11:50:18Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328966 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{mane?|ku}} #: ''Di nav '''gerxeleya''' berbûkan.'' #* {{jêder-malper|ku|jêgirtin=Di nava gerxêleyê re ez û Mem Jan ku ji Uskudar bi hev re hatibûn meşiyan. Di Kolana Îstiklalê re hêdî hêdî me berê xwe da qada Galatasarayê. Gelek mirovên di nava '''gerxeleyê''' de piştgirê van rûdanan bûn û her ji kêlîkekê carekê diruşmeyek diavêtin. Dema ku diqîriyan jî pirê mirovên din jî bi wan re diqîriyan.|nivîskar=Çiya Mazî|sernav=EZ ÇÛM TAKSÎMÊ|url=https://diyarname.com/article.php?Idx=988|malper=diyarname.com|sal=2013}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} h034uqtnb99g8gowwuo2nnn20p0b4kj akort kirin 0 448950 6328773 5732008 2026-08-11T00:25:07Z Balyozbot 7867 /* Lêker */ sererastkirin 6328773 wikitext text/x-wiki {{bnr-n|akortkirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} === Lêker === {{ku-tewîn-lk|akort kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=akort|valahî=erê}} {{lêker|ku|c=h-gh}} # [[akort|Akorta]] alava muzîkê [[eyar kirin]]. #* {{jêder-malper|ku|jêgirtin=Ewil bi hesasiyeteke mezin çêdike, dûvre '''akort dike''' û herî dawî jî lê dide.|sernav=Perwerdeya bi firotina santûrê|url=https://www.trtnuce.com/jiyan/perwerdeya-bi-firotina-santr-h48530.html|malper=trtnuce.com|sal=2019}} ==== Etîmolojî ==== Ji {{heve|ku|akort|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|umstimmen}} * {{Z|en}}: {{W+|en|attune}} * {{Z|tr}}: {{W+|tr|akort etmek}} {{werger-bin}} hc94pvp3lt0kily8fnz6l5m7vbtc5ue kudandin 0 450159 6329030 6310653 2026-08-11T11:52:49Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329030 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|kudandin|form=gerguhêz|niha=kudîn|borî=kudand}} {{lêker|ku|c=x-gh}} # [[domandin]], [[berdewamî]], [[berdewam kirin]], [[demandin]], [[dan domkirin]], [[dan ajotin]], [[domkirin]], [[dewamkirin]], [[berdewamkirin]], [[domîn]], [[ajotin]], [[dom kirin]], [[dewam kirin]], [[berdewam bûn]], [[rê çûn]] #* {{jêder-malper|ku|jêgirtin=Hasilî kelam em apê xwe yê têrken û xweşsuhbet li gundê wî yê li ser devê rê datîne û em riya xwe '''dukudîne'''. Guhên me jî, bi daketina wî re ji xwe re xenê dibin.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} #* {{jêder|ku|jêgirtin=...wê mijarê teze di ser guhê xwe re avêt û li a xwe '''kudand'''.|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=15}}}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|continue}}, {{W+|en|proceed}}, {{W+|en|carry on}} * {{Z|tr}}: {{W+|tr|sürdürmek}}, {{W+|tr|sürmek}}, {{W|tr|katetmek}}, {{W|tr|sürdürüp gitmek}} {{werger-bin}} {{bend}} === Navdêr === {{navdêr|ku|z=m}} # {{mane?|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|sürdürme}}, {{W+|tr|sürme}}, {{W|tr|katetme}} {{werger-bin}} itu3unihzbi5jhrn5cjutrglluqs2qp nezir kirin 0 450232 6329075 6152034 2026-08-11T11:54:25Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329075 wikitext text/x-wiki {{bnr-n|nezirkirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=h-gh}} # [[gazî kirin]], [[xwe dan]], [[tayîn kirin]], [[fêda kirin]], [[weqf kirin]] #: ''Wî zilamî '''nezir kiriye''' ku di riya Xwedê de qurbanek serjê ke û goştê wê li xîzanan belav bike.'' #* {{jêder-malper|ku|jêgirtin=Otobîyografîya wî ya nevaze û mukemel, hîmê “Cîhana duhê” datîne. Her weha, di heman demê de ji bo berhemên “dîrokî” yên ku wî '''nezirê''' Ronesans û Reformê '''kiribûn''' jî bû îlham.|nivîskar=Antony Burlaud|wergêr=Sedat Ulugana|sernav=STEFAN ZWEIG AN JÎ SAWA POLÎTÎKAYÊ|url=https://diplo-kurdi.com/index.php/ku/node/1927|malper=diplo-kurdi.com|sal=2020}} ==== Etîmolojî ==== Ji {{heve|ku|nezir|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|widmen}} * {{Z|fa}}: {{W-|fa|اختصاص دادن}}, {{W+|fa|فدا کردن}}, {{W-|fa|وقف کردن}}, {{W-|fa|نذر کردن|guman=erê}} * {{Z|en}}: {{W+|en|devote|guman=erê}} * {{Z|tr}}: {{W+|tr|adamak}} {{werger-bin}} qkvjjdspmla7wfa1pc67mjh62zhumj3 niyetbaş 0 459837 6329076 6181134 2026-08-11T11:54:29Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329076 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesa/ê ku [[xwestin|dixwaze]] tiştên [[baş]] bike. #: {{hevmaneyên peyvê|ku|niyetpak}} #* {{jêder-malper|ku|jêgirtin=Ji karkeran yek di nav jiyana rojane de mirovekî niyetbaş ku armanca wî ew e maliyên xwe xwedî bike.|malper=diyarname.com|url=http://diyarname.com/news.php?Idx=921|dîrok=2015-11-17}} ==== Hevmane ==== * {{g|ku|niyetpak}} ==== Dijmane ==== * {{g|ku|niyetxirab}} ==== Etîmolojî ==== Ji {{pêk|ku|niyet|baş}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|gutgemeint|guman=erê}}, {{W-|de|gutgesinnt|guman=erê}}, {{W+|de|wohlmeinend|guman=erê}} * {{Z|en}}: {{W+|en|good faith}} * {{Z|tr}}: {{W+|tr|iyi niyet}}, {{W+|tr|iyi niyetli}} {{werger-bin}} 1p3icp2347qjsq4kuiezb38dba25sdt klîk kirin 0 465580 6329024 5580624 2026-08-11T11:52:37Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329024 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|klîk kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=klîk|valahî=erê}} {{lêker|ku|c=h-gh}} # [[tikandin]], [[pêlê kirin|pêl (tiştekî) kirin]] (di komputergeriyê de) #* {{jêder-malper|ku|jêgirtin=Jibo guhdarî kirina hevpeyvîna Dexîl ê Şemo digel birêz Mehmet Aktar, lînka ‘Guhdarî kirin’ li rexê rastê vê perê '''klîk bike'''.|nivîskar=Dexîlê Şemo|sernav=Mehmet Aktar: Erdogan Lêborînê Bixwaze, Dilşkestina Kurdan Namîne|url=https://www.dengeamerika.com/a/mehmet-aktar-erdogan-leborine-bixwaze-dilkestina-kurdan-namine-136807378/1117252.html|malper=dengeamerika.com|sal=2012}} #* {{jêder-malper|ku|jêgirtin=Ji bo xwendina beşa heftemîn vir '''klîk bike'''|nivîskar=Cemîl Kolahî|sernav=PKK e pirojeyek ji bo jinavbirina bizava netewî a Kurdan – 6|url=https://darkamazi.net/kurdi/archives/1015437|malper=darkamazi.net|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Bo xwandina tevahiya reşnivîsê bi zimanê erebî li vir '''klîk bike'''|sernav=Reşnivîsa destûra ENKSê bo rêvebirina Rojavayê Kurdistanê|url=https://www.nerinaazad.org/kr/news/kurdistan/rojava/resnivsa-destra-enks-bo-rvebirina-rojavay-kurdistan|malper=nerinaazad.org|dîrok=08.01.2017}} ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|click}} + [[kirin]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|klicken}}, [[anklicken]] * {{Z|cs}}: {{W|cs|kliknout}} * {{Z|hy}}: {{W|hy|կտտացնել}} * {{Z|eo}}: {{W|eo|klaki}} * {{Z|fi}}: {{W+|fi|napsauttaa}}, {{W+|fi|näpäyttää}} * {{Z|fr}}: {{W+|fr|cliquer}} * {{Z|gd}}: {{W|gd|cliog}} * {{Z|gl}}: {{W|gl|premer}} * {{Z|io}}: {{W+|io|kliktar}} * {{Z|en}}: {{W|en|click|guman=erê}} * {{Z|ga}}: {{W|ga|cliceáil}}, {{W|ga|gliogáil}} * {{Z|it}}: {{W+|it|cliccare}} * {{Z|ca}}: {{W+|ca|clicar}}, {{W+|ca|fer clic}} * {{Z|mk}}: {{W|mk|клика}}, {{W|mk|кликнува}} * {{Z|ms}}: {{W|ms|mengklik}} * {{Z|mi}}: {{W+|mi|pāwhiri}} * {{Z|nrf}}: {{W+|nrf|clyiquer}} * {{Z|pt}}: {{W+|pt|clicar}} * {{Z|ro}}: {{W|ro|clica}} * {{Z|ru}}: {{W+|ru|щёлкать}}, {{W+|ru|щёлкнуть}}, {{W+|ru|кли́кать}}, {{W+|ru|кли́кнуть}} * {{Z|sco}}: {{W|sco|sneck}} * {{Z|es}}: {{W|es|hacer clic}}, {{W+|es|cliquear}}, {{W|es|clicar}} * {{Z|sv}}: {{W+|sv|klicka}} * {{Z|tr}}: {{W|tr|tıklamak}} * {{Z|vi}}: {{W+|vi|nhấn chuột}}, {{W+|vi|nhấp chuột}}, {{W+|vi|bấm chuột}}, {{W+|vi|ấn chuột}} {{werger-bin}} d6t1t7pz9c0id7puyzojxwlynsn4y90 nûgihiştî 0 469305 6329078 6257075 2026-08-11T11:54:33Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329078 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku|form=-}} # Kesa/ê ku [[nû]] [[xort]] bûye. #: {{hevmaneyên peyvê|ku|nûciwan|sinêle|sengele|bizele}} #* {{jêder-malper|ku|jêgirtin=Di rojeke weke îro de 33 ciwanên '''nûgihiştî''' yên sosyalîst li Pirsûsê ji aliyê hêzên dewleta Tirk ên tarî ve hatin kuştin.|nivîskar=BARIŞ POLATMA|sernav=33 gul li Pirsûsê|url=https://www.ozgurpolitika.com/haberi-33-gul-li-pirsuse-148529|malper=ozgurpolitika.com|sal=2020}} #* {{jêder-kovar|ku|jêgirtin=Her çi qas hîn xortekî '''nûgihiştî''' be jî hînî zimanên mînanî Rûsî, Tirkî, Ermenikî, Hurumî (Yewnanî), Gurcîkî dibe.|kovar=Bingöl Üniversitesi Yaşayan Diller Enstitüsü Dergisi|sernav=Bandora rêbaza realîzma civakparêz di romana Şivanê Kurmanca de|url=https://dergipark.org.tr/en/download/article-file/319037|nivîskar=Eyyüp Gürtürk|cîld=2|hejmar=3|sal=2016|rûpel=191}} #* {{jêder-malper|ku|jêgirtin=delala '''nûgihiştî''' tu li kû yî<br>yara çavkihilkirî tu li kû yî|nivîskar=Baba Tahirê Uryan|sernav=Çarîn 28 (Delala Nûgihiştî)|url=https://www.helbestakurdi.com/helbest/baba-tahire-uryan--carin-28-delala-nugihisti.html|malper=helbestakurdi.com}} # Tişta/ê ku hê nû derketiye. #: {{hevmaneyên peyvê|ku|nûber|nûbar}} #* {{jêder-malper|ku|jêgirtin=Ez bawer dikim ku ev destpêka xebata helbestvanê me yî '''nûgihiştî''' ye.|nivîskar=Konê Reş|sernav=Dr. Abdulazîz Ferman û Dîwanên; Dûriya Welêt, Evîn Li Welêt û Hezkirina Li Welêt|url=http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=4809|malper=welateme.net|dîrok=}} #* {{jêder-malper|ku|jêgirtin=Samir Kalo hêvî dike ku kuçe û taxên bajarê Qamişloyê bi wêneyan bixemilin bi taybet wêneyên wênesazên '''nûgihiştî'''.|sernav=Bi rêya tabloyên xwe azarên civaka xwe rave dike|url=http://www.hawarnews.com/kr/haber/bi-rya-tabloyn-xwe-azarn-civaka-xwe-rave-dike-h38474.html|malper=hawarnews.com|sal=2021}} #* {{jêder-malper|ku|jêgirtin=Tevî şaristaniyê wexta bazirganî û sektora kapîtalîst barkirin Ewrûpayê, li pêşiya xwe erdên bakîr û beyar, bajarên nû avabûne û feodalîteyeke '''nûgihiştî''' ya xam a Ewrûpayê dîtin.|nivîskar=Çekdar Botan|sernav=NIRXANDIN – Kapîtalîzm û Şaristaniyên Civakî-Dîrokî – 2|url=https://www.nuceciwan50.com/ku/2020/04/30/nirxandin-kapitalizm-u-saristaniyen-civaki-diroki-2/|malper=nuceciwan50|sal=2020}} ==== Formên alternatîv ==== * {{herwiha|ku|nûgiha|nûgihayî}} ==== Binêre herwiha ==== {{stûn| * {{g|ku|ecemî}} * {{g|ku|xêve}} * {{g|ku|beragî}} * {{g|ku|xama}} * {{g|ku|berbext}} }} ==== Etîmolojî ==== Ji {{pêk|ku|nû|gihiştî}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Neuling}} * {{Z|fa}}: {{W+|fa|نوجوان}} * {{Z|tr}}: {{W+|tr|turfanda}}, {{W+|tr|yeni yetme}} {{werger-bin}} 0vrio6fd6u25pu13oq7t2mwrtypqtsi Şablon:bnr h 10 515531 6328852 1685325 2026-08-11T01:01:15Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:herwiha binêre]] hat sererastkirin 6328852 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:herwiha binêre]] rs8zw8507u3wm1cnt3aeeldn5rbtb0c degiş kirin 0 534612 6328901 6182994 2026-08-11T11:25:43Z Balyozbot 7867 /* Lêker */ sererastkirin 6328901 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|degiş kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=degiş|valahî=erê}} {{lêker|ku|c=h-gh}} # [[guherandin]], [[guhertin]] #* {{jêder-malper|ku|jêgirtin=Zanim ewê bavê min bigota ti dîsa tinazê xu dikî û hinkî şorr dikî lê ewê têra dilê xu jî bikenniya. Emirkinna meriv ewqas jî zimanê xu '''degiş dikê''' heeew. Winê ana bivêjin ti peznê xu didî lê min ji wan fem dikir. Ku pir hêdî xeberdana min fem dikir ha.|nivîskar=Jinikok|sernav=Ziman|url=http://www.lotikxane.com/2015/09/28/ziman-5/|malper=lotikxane.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin=Mêrik lê nêri, Fatikê jî xwe '''degiş kir''' o solek kir pê o çû temaşa daweta xwe binêr.|nivîskar=Roza Sierra|sernav=Dêrika Çiyayê Mazî|url=https://rozasierra.blogspot.com/2019/03/derika-ciyaye-mazi.html|malper=rozasierra.blogspot.com|sal=2019}} ==== Etîmolojî ==== Ji {{ji|tr|ku|değişmek|değiş-|w=[[guherîn]]}} + [[kirin]]. ==== Têkildar==== * [[degiş bûn]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|change}}<ref>{{Chyet2020|cild=A-L}}</ref> * {{Z|tr}}: {{W+|tr|değiştirmek}} {{werger-bin}} === Çavkanî === {{çavkanî}} nfmf0tzp4jval0ictqp7uo2ep019ant 6328923 6328901 2026-08-11T11:41:12Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328923 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|degiş kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=degiş|valahî=erê}} {{lêker|ku|c=h-gh}} # [[guherandin]], [[guhertin]] #* {{jêder-malper|ku|jêgirtin=Zanim ewê bavê min bigota ti dîsa tinazê xu dikî û hinkî şorr dikî lê ewê têra dilê xu jî bikenniya. Emirkinna meriv ewqas jî zimanê xu '''degiş dikê''' heeew. Winê ana bivêjin ti peznê xu didî lê min ji wan fem dikir. Ku pir hêdî xeberdana min fem dikir ha.|nivîskar=Jinikok|sernav=Ziman|url=http://www.lotikxane.com/2015/09/28/ziman-5/|malper=lotikxane.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin=Mêrik lê nêri, Fatikê jî xwe '''degiş kir''' o solek kir pê o çû temaşa daweta xwe binêr.|nivîskar=Roza Sierra|sernav=Dêrika Çiyayê Mazî|url=https://rozasierra.blogspot.com/2019/03/derika-ciyaye-mazi.html|malper=rozasierra.blogspot.com|sal=2019}} ==== Têkildar==== * [[degiş bûn]] ==== Etîmolojî ==== Ji {{ji|tr|ku|değişmek|değiş-|w=[[guherîn]]}} + [[kirin]]. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|change}}<ref>{{Chyet2020|cild=A-L}}</ref> * {{Z|tr}}: {{W+|tr|değiştirmek}} {{werger-bin}} === Çavkanî === {{çavkanî}} lno3uno58z5js95t3iet4y455qab241 jîwar 0 534686 6329000 6309467 2026-08-11T11:51:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329000 wikitext text/x-wiki {{bnr-h|jiwar}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|jî|war}} === Navdêr === {{navdêr|ku|z=n}} # [[cih|Cihê]] ku [[mirov]] lê [[dijî]]. #* {{jêder-malper|ku|jêgirtin=Nemaze di xeyal, bîr û nêrînên derhênerên kurd de yên ku karîne hin aliyên vî '''jîwarê''' dijwar ronî bikin.|nivîskar=Fedwa Derwîş|sernav=Jin di sînemaya kurdî de|url=http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=3562|malper=welateme.net}} #* {{jêder-kovar|ku|jêgirtin=Ev e serbarî xirabkirina war û '''jîwarê''' gelek ji balindeyên jêgotî, bi rêka zêdeavakirin û berfirehkirina bajaran, kêşana rêk û rêbarên dirêj di nav cih û wargehên wan de, pîsbûn û bêserûberbûna kirasê şînahîya erdî, kêmbûna rêjî û baranan, li hindek cihên dî, ev e hemû bû egerê nearamî û kêmbûna xwarin û vexwarina hindek cûnan û vebiryana hindekên dî.|kovar=Kurmancî|sernav=Balindeyên li Kurdistanê - I|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku54.pdf|nivîskar=Îsmaîl TAHA ŞAHÎN|hejmar=54|sal=2014|rûpel=3}} #* {{jêder-malper|ku|jêgirtin=Derhêner jiyana krêkaran, derdeseriyên wan û '''jîwarê''' wan nîşan didet.|sernav=Machines|url=https://www.duhokiff.com/index.php/documentary-vision/item/1070-machines|malper=duhokiff.com|sal=2016}} # [[derdor]], [[hawirdor]] (bi taybetî [[sirişt]]ê [[derdor]]ên mirovî) #* {{jêder-malper|ku|jêgirtin=Tirkiyê daxwaz kiriye ku Kurdên Sûrî helwest û '''jîwarê''' xwe yê siyasî destnîşan bikin û di berjewendiya demî ya rejîma Esed de tev negerin.|nivîskar=Dildar Şeko|sernav=Tirkiyê bi rojava re azîna `diyalogê` hilbijart|url=https://www.rudaw.net/kurmanci/kurdistan/270720139|malper=rudaw.net|dîrok=27.07.2013}} #* {{jêder-malper|ku|jêgirtin=Hunerê heftem, ango sînema, berî her tiştî zimanek huneri ye, alavek payebilind a derbirîna huneri ye. Sînema ziman, wêne, mûsîk û liv e. Evin alavên hemaheng ên derbirîna '''jîwar''' u nasnamyê.|nivîskar=Hûsên Omar|sernav=Kurdistana Rojava û sînemaya penaber|url=http://avestakurd.net/blog/2013/01/14/kurdistana-rojava-snemaya-penaber/|malper=avestakurd.net|dîrok=14.01.2013}} #* {{jêder-kovar|ku|jêgirtin=Vêce hemû rêbazên perwerdeyiyê berê xwe bi xurtî dan perwerdekirina zarokan, ji ber ku avakirina civakeke durist û pêşketî bi avakirina kesayetiya zarokan destpêdike, û ji ber ku kesayetî ne bi zayîna zarok re çêdibe, lê belê di riya dan û standinê, bi '''jîwarê''' xwe re zarok kesayetiyê qezenc dike, û li gor vê rasteqîniyê jîwarê zarok kesayetiya wî avadike.|kovar=Pênûsa Nû|sernav=Toreya Zarokan|url=http://www.penusanu.com/penusanu/PN-kurdi-46.pdf|nivîskar=Selam Darî|hejmar=46|sal=2016}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Hevmane ==== * [[jîngeh]] ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|cihê jiyînê|1}} * {{Z|en}}: {{W+|en|environment}} * {{Z|tr}}: {{W+|tr|yerleşim yeri}} {{werger-bin}} {{werger-ser|hebûneke praktîkî|2}} * {{Z|ar}}: {{W|ar|واقع}}, {{W|ar|حق}} * {{Z|en}}: {{W|en|reality}}, {{W|en|nature}}, {{W|en|atmosphere}} {{werger-bin}} ckoja8c2o0j8gr5w95xm610xy2ldfu8 abloqe kirin 0 534964 6328761 6152765 2026-08-11T00:03:29Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328761 wikitext text/x-wiki {{bnr-n|abloqekirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|abloqe kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=abloqe|valahî=erê}} {{lêker|ku|c=h-gh}} # [[dor girtin]], [[dorpêçî kirin]] #* {{jêder-malper|ku|jêgirtin=Behsa bûyera liberxwedana boxtiyên kela Ercîşê jî bûyereka gellek balkêş e û di cildê duduyê de diyar dibe ku ji berxwedana Kela Dimdimê ne kêmtir e: ”… Şah berê xwe da Ercîşê û ferman da ku bi hişkî kelê '''abloqe bikin'''.|nivîskar=Mûrad Ciwan|sernav=Şerefname; pencereya kurdan a ber li mêjûyê|url=https://muradciwan.com/2013/10/30/serefname-pencereya-kurdan-a-ber-li-mejuye/|malper=muradciwan.com|sal=2013}} #* {{jêder-malper|ku|jêgirtin=Di nîvê meha tebaxa sala 1882an de, Kemal Beg ê sekreterê sêyem ê Sultan hatiye Wanê ku Şêx razî bike li yek ji wan bajarên pîroz ên ereb rûne. Lê Şêx guhê xwe nedayê û xwe li kela Oremarê asê kir. Hêzên Osmanî keleyê '''abloqe kirin'''.|nivîskar=Ziya Avci|sernav=Şêx Ubeydullahê Nêhrî û Serhildana 1880an|url=http://www.rupelanu.com/sex-ubeydullahe-nehri-u-serhildana-1880an-1110h.htm|malper=rupelanu.com|sal=2017}} ==== Etîmolojî ==== Ji {{heve|ku|abloqe|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|blockade}}, {{W+|en|lay siege}} * {{Z|tr}}: {{W+|tr|ablukaya almak}} {{werger-bin}} ecqeyleb22ewuz7rbs7kfbia6aip75y agirî girtin 0 534965 6328769 6183136 2026-08-11T00:24:52Z Balyozbot 7867 /* Lêker */ sererastkirin 6328769 wikitext text/x-wiki {{bnr-n|agirîgirtin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|agirî girtin|form=gerguhêz|niha=gir|borî=girt|pêşgir=agirî|valahî=erê}} {{lêker|ku|c=h-gh}} # [[agir]] [[vêketin]] #* {{jêder-malper|ku|jêgirtin=Duhî roja duşemiyê 04.02.2013ê li bajarê Silêmaniyê vahiya xwendekar têde dijîn '''agirî girt''' û di encam da du xwendekar û karmendekê wê avahiyê jiyana xwe ji dest de û hijmareke xwendekaran jî birîdar bûn.|sernav=Hikûmeta Kurdistanê lêkolîneke berfire li ser bûyera Silimaniyeyê dike|url=https://www.kdp.info/a/print.aspx?l=16&smap=010000&a=44694|malper=kdp.info|sal=2013}} #* {{jêder-malper|ku|jêgirtin=Ji daxuyaniya KCK-ê û gotinên Salih Mislim dîyar dibe ko '''agirî girtiye''' delinga wan.|sernav=Agirî girt delinga KCK-ê û PYD-ê|url=http://www.nefel.com/articles/article_detail.asp?RubricNr=1&ArticleNr=7931|malper=nefel.com|sal=2014}} #* {{jêder-malper|ku|jêgirtin='''Agirî girt''' mala yekî, got: “Ne her ew tir ji kêçê re nema.<br>Dema mirov ji ber karekî eciz dibe û ji ber înyatê xwe diêxe zerarê tê gotin .|nivîskar=ABDULKADIR BINGOL|sernav=Agir agirê qurman|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=28&RubricNr=24&ArticleNr=4286|malper=nefel.com|sal=2009}} ==== Etîmolojî ==== Ji {{heve|ku|agirî|girtin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|catch fire}} {{werger-bin}} pi8nqzc5tviqktisfuv3at67pavhbmq ajnegeh 0 534966 6328770 6296337 2026-08-11T00:24:56Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328770 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # gola [[avjenî]]yê, gola [[melevanî|melevaniyan]] #: {{hevmaneyên peyvê|ku|hewz}} #* {{jêder-malper|ku|jêgirtin=Morawiecki di prekonferasekê de ragihand ku salonên sînema, şanogeh, '''ajnegeh''' û salonên egzersizê di ji 30ê Gulanê pê ve werin vekirin.|sernav=Polonya Gavên Normalkirina Jîyanê Davêje|url=https://www.dengeamerika.com/a/polonya_normalkirin/5437604.html|malper=dengeamerika.com|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{paş|ku|ajne|-geh}} ==== Werger ==== {{werger-bnr|hewz}} f4szsqxgtrn7gjmqp3s1kr7q0zll0yk destemel 0 535728 6328908 6119210 2026-08-11T11:27:40Z Balyozbot 7867 sererastkirin 6328908 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Kesê [[dest]]ê wî [[biqabiliyet]] e, kare hin [[kar]]an bike. #: {{hevmane|ku|destbikêr|pratîk}} #* {{jêder-malper|ku|jêgirtin='''Destemel''' in gundiyê te,<br/> Hurmet siyan e bona te.|nivîskar=Aram Tîgran & Cemalê Ûsiv|sernav=Gundê Şamîramê|url=https://www.gotinenstranan.com/berhem/aram-tigran-cemale-usiv-gunde-samirame|malper=gotinenstranan.com}} #* {{jêder-kitêb|ku|jêgirtin=Helbestvan bi hewas, hizkirin û hisret derheqa malxê mala, mêrê çê, henekçîya, dengbêj- sazbenda, çîrokbêja, kevanyên '''destemel''' û bûkên bedew da distirê.|nivîskar=Dr. Eskerê Boyîk|sernav=Nûra Elegezê: Çend dîdem ji edebyeta Kurdên Ermenistanê|url=https://bnk.institutkurde.org/images/pdf/1PVMCFDUEW.pdf|weşanxane=Dengê Êzîdiyan|cih=Oldenburg, Deutschland|sal=4/2004|rûpel=79}} ==== Etîmolojî ==== Ji {{heve|ku|dest|emel}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|eli yatkın}} * {{Z|en}}: {{W+|en|skilled}} (at something), {{W+|en|deft}}, {{W+|en|apt}} (at something)} {{werger-bin}} gus379d5ogx4ffvvr1vot3jb4p63xm0 agirbir 0 538993 6328768 6296226 2026-08-11T00:24:44Z Balyozbot 7867 sererastkirin 6328768 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/ɑːɡɪɾˈbɪr/}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}}, {{r-ya nerm}} (1), {{r-ya req}} (2) # Di [[şer]] de [[rawestandin]]a [[lihevxistin]]ê ji bo [[armanc]]ekê ([[bi taybetî]] [[demî]] ye). #* {{jêder-kovar|ku|jêgirtin=Koreya Bakûr, ji bo peymana aşitiyê bikeve dêvla peymana '''agirbir''' ya 1953yê, şertê bi DYA’yê yê rasterast diyalogê derxist pêş.|kovar=Le Monde diplomatique kurdî|sernav=Çîn û Kore|url=https://diplo-kurdi.com/sites/default/files/2019-02/lmdk14_dql.pdf|nivîskar=Philippe Pons|wergêr=Ahmet Dere|hejmar=14|sal=2011|rûpel=15}} #* {{jêder-malper|ku|jêgirtin=Îstîfan Dî Mîstora, nûnerê taybetî yê rêkxistina NY li Sûriyê, hêvî xwast ku tevî vê '''agirbirê''', gereke din a gotûbêjên aşitiyê heftiyek din dest pê bike.|sernav=Konseya Ewlekariya NY biryara Agirbir li Sûriyê pejirand|url=https://kurdistanmedia.com/ku/news/konseya-ewlekariya-ny-biryara-agirbir-li-suriye-pejirand|malper=kurdistanmedia.com|sal=2016}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[agirbirr]] ==== Hevmane ==== * [[agirbest]] ==== Etîmolojî ==== * [[agir]] +[[-bir]] ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|armëpushim}} * {{Z|de}}: {{W+|de|Waffenstillstand|n}}, {{W+|de|Feuerpause|m}}, {{W+|de|Waffenruhe|f}} * {{Z|id}}: [[gencatan]] [[senjata]] * {{Z|ar}}: {{W-|ar|هدنة}} * {{Z|eo}}: {{W-|eo|militpaŭzo|xs=Esperanto}} * {{Z|fa}}: {{W+|fa|آتش بس}}, {{W+|fa|آتش نشانی}}, {{W-|fa|آتش‌بس}} * {{Z|fi}}: {{W+|fi|tulitauko}} * {{Z|fr}}: {{W+|fr|cessez-le-feu|n}}, {{W+|fr|trêve|m}} * {{Z|nl}}: {{W+|nl|staakt-het-vuren|n}} * {{Z|he}}: [[הפסקת-אש]] (hafsaqat-esh) * {{Z|en}}: {{W+|en|ceasefire}}, {{W+|en|armistice}} * {{Z|it}}: {{W+|it|cessate il fuoco|n}}, {{W+|it|armistizio|n}} * {{Z|ko}}: [[정전]](停戰) * {{Z|hu}}: {{W+|hu|tűzszünet}} * {{Z|no}}: {{W+|no|våpenhvile}} * {{Z|pl}}: [[zawieszenie]] [[broni]] * {{Z|pt}}: {{W-|pt|cessar-fogo|n}}, {{W+|pt|armistício|n}}, {{W+|pt|trégua|m}} * {{Z|es}}: {{W-|es|alto el fuego|n}}, {{W+|es|armisticio|n}}, {{W+|es|tregua|m}} * {{Z|sv}}: {{W+|sv|eldupphör|nt}} * {{Z|tr}}: {{W+|tr|ateşkes}}, {{W+|tr|bırakışma}}, {{W+|tr|mütareke}} * {{Z|el}}: [[εκεχειρία]] (ekexeiría) {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[made|Madeyê]] ku agirê mirovan kêm dike. #* {{jêder-malper|ku|jêgirtin=Keça min 2 salî û sipîsaxlem bû. Lêbelê nişkêva devê wê zihabû û tiştek di ber da neçû. Dermanên êş û '''agirbir''' ên ku em didinê jî bi kêr nayên.|nivîskar=Önder Beyter|sernav=Lujeyna Îdlibî ku bûye qansêr ji bo tedawiyê li hêviya alîkariyê ye|url=https://www.aa.com.tr/kk/dinya/lujeyna-%C3%AEdlib%C3%AE-ku-b%C3%BBye-qans%C3%AAr-ji-bo-tedawiy%C3%AA-li-h%C3%AAviya-al%C3%AEkariy%C3%AA-ye/1863544|malper=aa.com.tr|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser|[[made|madeyê]] agirê mirovan kêm dike|1}} * {{Z|de}}: {{W+|de|Fiebermittel}}, {{W+|de|fiebersenkend}} * {{Z|en}}: {{W+|en|antipyretic}}, {{W+|en|antifebrile}} * {{Z|tr}}: {{W-|tr|ateş düşürücü}}<ref>{{pirtûk|nivîskar=Sinan Alptekin|sernav=Ferhenga Zimanê Kurdî - Tirkî|sal=2013|rûpel=7|ziman=ku}}</ref><ref>{{ferhenga izolî|r=494}}</ref> {{werger-bin}} === Çavkanî === {{çavkanî}} 5g6v74m6upzs4i9gq7uc33eq2qkxf1e 6328869 6328768 2026-08-11T02:12:22Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6328869 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/ɑːɡɪɾˈbɪr/}} * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}}, {{r-ya nerm}} (1), {{r-ya req}} (2) # Di [[şer]] de [[rawestandin]]a [[lihevxistin]]ê ji bo [[armanc]]ekê ([[bi taybetî]] [[demî]] ye). #* {{jêder-kovar|ku|jêgirtin=Koreya Bakûr, ji bo peymana aşitiyê bikeve dêvla peymana '''agirbir''' ya 1953yê, şertê bi DYA’yê yê rasterast diyalogê derxist pêş.|kovar=Le Monde diplomatique kurdî|sernav=Çîn û Kore|url=https://diplo-kurdi.com/sites/default/files/2019-02/lmdk14_dql.pdf|nivîskar=Philippe Pons|wergêr=Ahmet Dere|hejmar=14|sal=2011|rûpel=15}} #* {{jêder-malper|ku|jêgirtin=Îstîfan Dî Mîstora, nûnerê taybetî yê rêkxistina NY li Sûriyê, hêvî xwast ku tevî vê '''agirbirê''', gereke din a gotûbêjên aşitiyê heftiyek din dest pê bike.|sernav=Konseya Ewlekariya NY biryara Agirbir li Sûriyê pejirand|url=https://kurdistanmedia.com/ku/news/konseya-ewlekariya-ny-biryara-agirbir-li-suriye-pejirand|malper=kurdistanmedia.com|sal=2016}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[agirbirr]] ==== Hevmane ==== * [[agirbest]] ==== Etîmolojî ==== * [[agir]] +[[-bir]] ==== Werger ==== {{werger-ser}} * {{Z|sq}}: {{W+|sq|armëpushim}} * {{Z|de}}: {{W+|de|Waffenstillstand|n}}, {{W+|de|Feuerpause|m}}, {{W+|de|Waffenruhe|f}} * {{Z|id}}: [[gencatan]] [[senjata]] * {{Z|ar}}: {{W-|ar|هدنة}} * {{Z|eo}}: {{W-|eo|militpaŭzo|xs=Esperanto}} * {{Z|fa}}: {{W+|fa|آتش بس}}, {{W+|fa|آتش نشانی}}, {{W-|fa|آتش‌بس}} * {{Z|fi}}: {{W+|fi|tulitauko}} * {{Z|fr}}: {{W+|fr|cessez-le-feu|n}}, {{W+|fr|trêve|m}} * {{Z|nl}}: {{W+|nl|staakt-het-vuren|n}} * {{Z|he}}: [[הפסקת-אש]] (hafsaqat-esh) * {{Z|en}}: {{W+|en|ceasefire}}, {{W+|en|armistice}} * {{Z|it}}: {{W+|it|cessate il fuoco|n}}, {{W+|it|armistizio|n}} * {{Z|ko}}: [[정전]](停戰) * {{Z|hu}}: {{W+|hu|tűzszünet}} * {{Z|no}}: {{W+|no|våpenhvile}} * {{Z|pl}}: [[zawieszenie]] [[broni]] * {{Z|pt}}: {{W-|pt|cessar-fogo|n}}, {{W+|pt|armistício|n}}, {{W+|pt|trégua|m}} * {{Z|es}}: {{W-|es|alto el fuego|n}}, {{W+|es|armisticio|n}}, {{W+|es|tregua|m}} * {{Z|sv}}: {{W+|sv|eldupphör|nt}} * {{Z|tr}}: {{W+|tr|ateşkes}}, {{W+|tr|bırakışma}}, {{W+|tr|mütareke}} * {{Z|el}}: [[εκεχειρία]] (ekexeiría) {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[made|Madeyê]] ku agirê mirovan kêm dike. #* {{jêder-malper|ku|jêgirtin=Keça min 2 salî û sipîsaxlem bû. Lêbelê nişkêva devê wê zihabû û tiştek di ber da neçû. Dermanên êş û '''agirbir''' ên ku em didinê jî bi kêr nayên.|nivîskar=Önder Beyter|sernav=Lujeyna Îdlibî ku bûye qansêr ji bo tedawiyê li hêviya alîkariyê ye|url=https://www.aa.com.tr/kk/dinya/lujeyna-%C3%AEdlib%C3%AE-ku-b%C3%BBye-qans%C3%AAr-ji-bo-tedawiy%C3%AA-li-h%C3%AAviya-al%C3%AEkariy%C3%AA-ye/1863544|malper=aa.com.tr|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser|[[made]]yê agirê mirovan kêm dike|1}} * {{Z|de}}: {{W+|de|Fiebermittel}}, {{W+|de|fiebersenkend}} * {{Z|en}}: {{W+|en|antipyretic}}, {{W+|en|antifebrile}} * {{Z|tr}}: {{W-|tr|ateş düşürücü}}<ref>{{pirtûk|nivîskar=Sinan Alptekin|sernav=Ferhenga Zimanê Kurdî - Tirkî|sal=2013|rûpel=7|ziman=ku}}</ref><ref>{{ferhenga izolî|r=494}}</ref> {{werger-bin}} === Çavkanî === {{çavkanî}} 73sdtocktuotny1avj1ycw3ytycbdop aşê qehweyê 0 539480 6328782 6183719 2026-08-11T00:25:52Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328782 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[amûr|Amûrê]] ku tê de [[qehwe]] tê [[hêran]]. #* {{jêder-malper|ku|jêgirtin=Gava qehwe li gorî dilê we qeliya, ji ser agir deynin. Kakilên behîvan jê derxin, di '''aşê qehweyê''' de bihêrin, piştre bixin merkaneyekê (qawanozekê) û hilînin.|nivîskar=Amed Çeko Jiyan|sernav=Etîketa qehweyeke ji dawiya salên 1700'î mayî: Chicorée au Kurde|url=https://diyarname.com/news.php?Idx=41908|malper=diyarname.com|sal=2020}} ==== Hevmane ==== * [[aşik]] * [[distarkê qehweyê]] * [[qehwehêr]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kaffeemühle}} * {{Z|en}}: {{W+|en|coffee mill}} * {{Z|tr}}: {{W+|tr|kahve değirmeni}} {{werger-bin}} e16pbm4msh3lwhmjiuu7ke72ggt2coq çavlixew 0 539637 6328886 6183777 2026-08-11T11:24:32Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328886 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[xilmaş]], [[xirmaş]], [[ximaş]] #* {{jêder-malper|ku|jêgirtin=Di lêdana cara pêşî de gava derî venebû, mamosta Çetîn carek du carên din jî li derî da. Bi lêdana sisê an çaran re, jina wî '''çavlixew''' û bi kirasê şevê li wî derî vekir.|nivîskar=Firat Cewerî|sernav=Heyştê adarê|url=http://nefel.org/articles/article_print.asp?ArticleNr=4217|malper=nefel.org|sal=2009}} ==== Etîmolojî ==== [[çav]] + [[li]] + [[xew]] ==== Jê ==== * [[çavlixewî]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|drowsy}}, {{W+|en|sleepy}} * {{Z|tr}}: {{W+|tr|uykulu}}, {{W-|tr|gözleri uykulu}} {{werger-bin}} rx9dxerf6gebeqhi3mmrkp7ttst1im3 6328929 6328886 2026-08-11T11:41:30Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328929 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[xilmaş]], [[xirmaş]], [[ximaş]] #* {{jêder-malper|ku|jêgirtin=Di lêdana cara pêşî de gava derî venebû, mamosta Çetîn carek du carên din jî li derî da. Bi lêdana sisê an çaran re, jina wî '''çavlixew''' û bi kirasê şevê li wî derî vekir.|nivîskar=Firat Cewerî|sernav=Heyştê adarê|url=http://nefel.org/articles/article_print.asp?ArticleNr=4217|malper=nefel.org|sal=2009}} ==== Jê ==== * [[çavlixewî]] ==== Etîmolojî ==== [[çav]] + [[li]] + [[xew]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|drowsy}}, {{W+|en|sleepy}} * {{Z|tr}}: {{W+|tr|uykulu}}, {{W-|tr|gözleri uykulu}} {{werger-bin}} n1pukqnizxt8vnin48vkry1mzag4762 henekçî 0 539877 6328978 6308214 2026-08-11T11:50:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328978 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=mn}} # [[pêkenîn]], [[şemo]], [[henekxweş]], [[yarîker]] #* {{jêder-pirtûk|ku|jêgirtin=Helbestvan bi hewas, hizkirin û hisret derheqa malxê mala, mêrê çê, '''heneçîya''', dengbêj- sazbenda, çîrokbêja, kevanyên destemes û bûkên bedew da distirê.|nivîskar=Dr. Eskerê Boyîk|sernav=Nûra Elegezê Çend dîdem ji edebyeta Kurdên Ermenistanê|weşanxane=Dengê Êzîdiyan|sal=2004|rûpel=80}} #* {{jêder-malper|ku|jêgirtin=Li ser bextê qerf û '''henekçîyên''' Cûlemêrgê be, tê gotin ku ji ber arê?e, bêbextî, dijminahî û genge?îyên di nava olan de, Mûsa, Îsa, Mihemed Pêxember û Melekê Tawiz diçin nîk (cem) xwedê gilî û gazindên xwe dikin.|sernav=ÇI MI?KILÊN MIN NÎNIN|url=http://www.lotikxane.com/2010/02/14/ci-miskilen-min-ninin/|malper=lotikxane.com|sal=2010}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{paş|ku|henek|-çî}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|دلقک}}, {{W|fa|دلقک|guman=erê}} * {{Z|en}}: {{W+|en|jocose}}, {{W|en|jocular|guman=erê}} {{werger-bin}} 7t0ui8dkjo9394nzrv6spzmngup1vgg nanoziko 0 614725 6329071 6252189 2026-08-11T11:54:17Z Balyozbot 7867 /* Hoker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329071 wikitext text/x-wiki {{ds|nanoziko|nanzikî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[xebat|Xebat]]a ku tenê bi kêrî [[ziktêrî|ziktêriyê]] tê.<ref>Ferhenga Umîd Demîrhan, Çapa Duyem</ref> #* {{jêder-malper|ku|jêgirtin=Li gorî lêkolînê 10 milyon û 15 hezar kes bi '''nanoziko''' dijîn. Dema ku mirov lê bifikire ku nifûsa Arjantînê 44 milyon e, ev tê maneya ku ji 4'an 3 nifûs hejar e. Ji van kesên ku bi '''nanoziko''' dijîn 700 hezar jê gelê xwecih e.|sernav=Li Arjantînê hejarî 35 ji 100'î derbas kir|url=https://web.archive.org/web/20200904064045/https://anfkurdi.com/civak-ekolojI/li-arjantine-hejari-35-ji-100-i-derbas-kir-118770|malper=anfkurdi.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Karker Mihemed Fîlîz dibêje: "Em ji sere sibê heta 7ê êvarê bi '''nanoziko''' dixebitin. Remezan e rojî ye kare me giran û zehmet e.|nivîskar=Mahîr Yuksel|sernav=Karkerên kişkişokê di Remezanê de gelek zehmetî dibînin|url=https://www.kurdistan24.net/ku/VideoReader/f393f4f4-6a7d-4925-8be7-8f98c1eabcfc|malper=kurdistan24.net|sal=2019}} ==== Formên alternatîv ==== * {{g|ku|nanozikî}} * {{g|ku|nanzikî}} ==== Etîmolojî ==== Ji {{navg|ku|nan|-o-|ziko}} === Çavkanî=== {{çavkanî}} 22exb20vyweh0jlu0x38wnnifohkqgk ketin ser kurm û kirasê (yekî) 0 616873 6329014 5020309 2026-08-11T11:52:16Z Balyozbot 7867 /* Biwêj */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329014 wikitext text/x-wiki == {{ziman|ku}} == === Biwêj === {{biwêj|ku}} # {{bnr|çûn ser kurm û kirasê (yekî)}} #* {{jêder-pirtûk|ku|jêgirtin=Keça min dibistana amadeyî (lîse) kuta kir. Di pola duduyan a zankoyê de '''kete ser kurm û kirasê xwe''', malbata xwe, civakê, dibistana xwe, rûçikê xwe, navê xwe, derdora xwe û hevalên xwe û gihişte pênasa xweya rasteqîn. Dema ku cara pêşîn wê ji min re qala rewşa xwe kir, tiştê ku wê wek “Dayê, bedena min cuda ye, gîyanê min cuda ye” derbirrî, me bêahengî bi hev re kir aheng.|wergêr=Kawa Nemir|sernav=ez dayîka transseksuelekî ê me|url=https://listag.files.wordpress.com/2015/03/bbta_kapak_kurtce-web.pdf|weşanxane=Koma Stenbolê ya Malbatên LGBT’yan|sal=2015|rûpel=15}} #* {{jêder-malper|ku|jêgirtin=Ev ayet der heqê wan kesan de ye ku bi her halê xwe '''ketine ser kurm û kirasê''' kafiran. Li gorî vê rewşê; halê wan kesên ku hêj eziyet nedîtine û bi gotin û amelên xwe bi kafiran re lihevkirî û bi aheng heyata xwe berdewam dikin wê çawa çêbe?|nivîskar=Osman SADIKOĞLU|sernav=Dûrketına Jı Şırk û Muşrîkan û Dost Gırtına Allah û Dîn û Dostên Wî|url=https://tevhiddergisi.org/makale/d-rketina-ji-sirk-musr-kan-dost-girtina-allah-d-n-dost-n-w|malper=tevhiddergisi.org|sal=2018}} cc0fhtd828imsyw9qjsmkud8ggg5pex kerikmejî 0 618936 6329010 6185557 2026-08-11T11:52:08Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329010 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Tênegehiştî, [[aqilsivik]], [[bêqil]] #* {{jêder-malper|ku|jêgirtin=Ez dibêjim ka ev fîgana Apê Fehmî 80 salin ku ketîye guhên me Kurdên '''kerikmejî'''. Lê mixabin ku me hêja jî ji xwe ra dersek ji vê buyera dijwar û xeddar negirtî ye.|nivîskar=Şakir Epozdemir|sernav=Fehmîyê Bilal û Derdê Kurdan|url=http://www.mediakurd.com/details.aspx?an=63|malper=mediakurd.com|sal=2009}} ==== Etîmolojî ==== Ji {{pêk|ku|kerik|mejî}} ==== Werger ==== {{werger-ser}} {{werger-bin}} i2b15txlch5jx8aa4kemxk37e7wklxe mêr jî hene, mêrkok jî hene; jin jî hene, jinkok jî hene 0 625516 6329061 6188712 2026-08-11T11:53:57Z Balyozbot 7867 /* Gotineke pêşiyan */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329061 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Gotineke pêşiyan === {{gp|ku}} # [[gotina pêşiyan|Gotineke pêşiyan]] a kurdî.<ref>Pend û Peng, Bîlal Hesen</ref> #* {{jêder-malper|ku|jêgirtin=Belê, '''jin hene û jinkok hene. Mêr hene û mêrkok hene'''. Ê de ji xwe re vê lotikê bixwînin û mêr çawa ne bibînin. Bibînin bê kurê bavan çawa ne.|nivîskar=Hecî Berber|sernav=Aha mêr ev mêr e ha….|url=http://www.lotikxane.com/2015/12/05/aha-mer-ev-mer-e-ha/|malper=lotikxane.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin=Rebeno, nema çavên wî bi jina wî ve dirabûn! Jinê digot: Xwelî li serê min be, ma min jî mêr heye? Mala minê! '''Mêr jî hene û mêrkok jî hene''', hevalên min yek jî li vî welatê gemar nemaye. Eyşo keça şivên bû wa li Swêsra ye, Gurcê li Elmanya ye, Şefê li Swêde.. bi pera dilîzin!|nivîskar=Reşad Şeref|sernav=Xewna penaberiyê|url=https://krd.riataza.com/2016/12/16/xewna-penaberiye/|malper=riataza.com|sal=2016}} ==== Hevmane ==== * {{mj|Dihok}} [[zelam yêt heyn û zelamoşk jî yêt heyn]] === Çavkanî === {{çavkanî}} lz8x784511ee7ksc23lt87wvz5p7gfy êkspayir bûn 0 627241 6328955 5091563 2026-08-11T11:49:52Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328955 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|êkspayir bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=êkspayir|valahî=erê}} {{lêker|ku|c=h-gh}} # [[bi ser ve çûn]], [[borîn]]a [[dem]]î, [[wext]] bi ser ve çûn, [[mêjo]]ya tiştekî [[xilas bûn]] #* {{jêder-pirtûk|ku|jêgirtin='''Êkspayir bûn'''.<br>Hemî hizir di kolankên bîrhatina da|nivîskar=Xelîl Duhokî|sernav=Antolojiya helbesta nû ya kurmancên başûr|url=https://www.kurdipedia.org/files/books/2014/116122.PDF?ver=132321413460347764|sal=2013|rûpel=720}} #* {{jêder-malper|ku|jêgirtin=Li gorî agahiyên peyamnêrê BasNewsê, beşek mezin ji wan derzî û dermanan xirab bibûn, beşek jê '''êkspayir''' (dema bikaranîna wan derbas bibû) '''bibûn'''.|sernav=Li Kerkûkê zêdetirî 4 ton derzî û dermanên xirab hat zeftkirin|url=http://www.basnews.com/kr/babat/303604|malper=basnews.com|sal=2016}} #* {{jêder-malper|ku|jêgirtin=Bo cara duyê ez hest dikem qelemê min neşêt digel min berdewamiyê bidet û xwe ji nivîsînên min vedihêlît. Bi rastî vî şîşeyê hibrî ez gelek westandim. Nizanim hibr '''êkspayir''' e yan serikê qelemî selixî ye û li nivîsînê diheziqît.|nivîskar=Ebdulrehman Bamerni|sernav=Sê nivîsîn bi qelemê hibrî|url=http://ebdulrehmanbamerni.blogspot.com/2011/01/se-nivisin-bi-qeleme-hibri.html|malper=ebdulrehmanbamerni.blogspot.com|sal=2011}} ==== Etîmolojî ==== Deyn ji {{deyn|en|ku|expire}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|expire}} * {{Z|tr}}: {{W|tr|son kullanma tarihi geçmek}} {{werger-bin}} d0orshr38xulp5hbqj8y7swral13f7y degiş bûn 0 629019 6328900 6189839 2026-08-11T11:25:38Z Balyozbot 7867 /* Lêker */ sererastkirin 6328900 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|degiş bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=degiş|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[guherîn]], [[bedil bûn]] #* {{jêder-malper|ku|jêgirtin=Îro ew qanûn '''degiş bûye''' ew mode hatîye hildanê|nivîskar=Ercan Aras|sernav=Di kilam û dengbejîya kurdî da pêkenokî (komedî) -2|url=https://krd.riataza.com/2017/05/25/di-kilam-u-dengbejiya-kurdi-da-pekenoki-komedi-2/|malper=krd.riataza.com|sal=2017}} #* {{jêder-kovar|ku|jêgirtin=Di devê her dengbêjekî de, li her herêmekê gotin, meqam '''degiş dibe'''. Bi vî terhî, şaxên destanan dertên holê.|kovar=Tîroj|sernav=Destan û romana destanê|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/tiroj/tiroj_37.pdf|nivîskar=Dr. Ömer Uluçay|hejmar=37|sal=2009|rûpel=62}} #* {{jêder-malper|ku|jêgirtin=Mirov '''degiş dibe''', wext degiş dibe, bala meriv jî...|sernav=kesên ku dema xwendina pirtûkan de binê hevokan bi pênûsên rengorengo xêz dikin|url=https://tirsik.net/index.php?peyam=119136|malper=tirsik.net|sal=2020}} ==== Etîmolojî ==== Ji {{ji|tr|ku|değiş-|tr=[[değişmek]]}} + [[bûn]]. ==== Têkildar ==== * [[degiş kirin]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|change}} * {{Z|tr}}: {{W|tr|değişmek}} {{werger-bin}} cubimhil2hmg0nutwbqk6tuh194uxdt 6328924 6328900 2026-08-11T11:41:15Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328924 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|degiş bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=degiş|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[guherîn]], [[bedil bûn]] #* {{jêder-malper|ku|jêgirtin=Îro ew qanûn '''degiş bûye''' ew mode hatîye hildanê|nivîskar=Ercan Aras|sernav=Di kilam û dengbejîya kurdî da pêkenokî (komedî) -2|url=https://krd.riataza.com/2017/05/25/di-kilam-u-dengbejiya-kurdi-da-pekenoki-komedi-2/|malper=krd.riataza.com|sal=2017}} #* {{jêder-kovar|ku|jêgirtin=Di devê her dengbêjekî de, li her herêmekê gotin, meqam '''degiş dibe'''. Bi vî terhî, şaxên destanan dertên holê.|kovar=Tîroj|sernav=Destan û romana destanê|url=http://www.arsivakurd.org/images/arsiva_kurd/kovar/tiroj/tiroj_37.pdf|nivîskar=Dr. Ömer Uluçay|hejmar=37|sal=2009|rûpel=62}} #* {{jêder-malper|ku|jêgirtin=Mirov '''degiş dibe''', wext degiş dibe, bala meriv jî...|sernav=kesên ku dema xwendina pirtûkan de binê hevokan bi pênûsên rengorengo xêz dikin|url=https://tirsik.net/index.php?peyam=119136|malper=tirsik.net|sal=2020}} ==== Têkildar ==== * [[degiş kirin]] ==== Etîmolojî ==== Ji {{ji|tr|ku|değiş-|tr=[[değişmek]]}} + [[bûn]]. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|change}} * {{Z|tr}}: {{W|tr|değişmek}} {{werger-bin}} m9594aasl4evhb6kmjh29stha6ktonv kanserojen 0 633362 6329002 6252910 2026-08-11T11:51:50Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329002 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[made]]yek e ku dikare bibe [[sedem]]a [[kanser]]ê anku [[penceşêr]]ê anku [[seletan]]ê #: {{jêder-malper|ku|jêgirtin=Di hêkên ku Taywanê ji Tirkiyeyê kirîbûn de madeyên kanserojen hatibûn tesbîtkirin..|malper=Rudaw.net/kurmanci|sal=8/2023|sernav=Gelo hêkên bi madeyên kanserojen li bazaran belav bûne?|url=https://www.rudaw.net/kurmanci/middleeast/turkey/26082023}} ==== Formên alternatîv ==== * [[karsînojen]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|krebserregend}}, {{W+|de|karzinogen}} * {{Z|be}}: {{W-|be|канцэрагенны}} * {{Z|cs}}: {{W+|cs|karcinogenní}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|[[致癌]][[的]]|tr=zhì'ái de}} * {{Z|da}}: {{W-|da|kræftfremkaldende}}, {{W-|da|karcinogen}} * {{Z|hy}}: {{W+|hy|քաղցկեղածին}} * {{Z|eo}}: {{W-|eo|kanceriga}} * {{Z|fi}}: {{W+|fi|karsinogeeninen}} * {{Z|fr}}: {{W+|fr|cancérigène|n|m}}, {{W+|fr|carcinogène}} * {{Z|nl}}: {{W+|nl|kankerverwekkend}} * {{Z|en}}: {{W+|en|carcinogenic}}, {{W+|en|cancerogenic}} * {{Z|ga}}: {{W-|ga|carcanaigineach}} * {{Z|ja}}: {{W-|ja|発癌性|tr=はつがんせい, hatsugansei}} * {{Z|ca}}: {{W-|ca|cancerigen}}, {{W+|ca|carcinogen}} * {{Z|hu}}: {{W+|hu|karcinogén}}, {{W+|hu|rákokozó}}, {{W+|hu|rákkeltő}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|kreftfremkallende}}, {{W-|nb|karsinogen}} * {{Z|pl}}: {{W+|pl|rakotwórczy}} * {{Z|pt}}: {{W-|pt|cancerígeno}}, {{W-|pt|carcinogênico}}, {{W-|pt|carcinogénico}} * {{Z|ro}}: {{W+|ro|cancerigen}}, {{W+|ro|carcinogen}} * {{Z|ru}}: {{W+|ru|канцерогенный}} * {{Z|sh}}: {{W-|sh|karcinogen|n}}, {{W+|sh|kȁncerogēn|n}} * {{Z|sk}}: {{W-|sk|karciogénny}} * {{Z|es}}: {{W+|es|cancerígeno}} * {{Z|sv}}: {{W+|sv|carcinogen}}, {{W+|sv|karcinogen}}, {{W+|sv|cancerframkallande}}, {{W+|sv|cancerogen}} * {{Z|tr}}: {{W+|tr|kanserojen}} * {{Z|el}}: {{W+|el|καρκινογόνος}} {{werger-bin}} :{{werger çavkanî|en|carcinogenic|beş=Ev qismê Wergerê|oldid=75692121}} == {{ziman|tr}} == ===Rengdêr=== {{rengdêr|tr}} #[[kanserojen#ku|kanserojen]] cuclqcmdgjnmddkcma9c5somj7yg898 menderes 0 634363 6329053 6311938 2026-08-11T11:53:41Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329053 wikitext text/x-wiki {{bnr-h|Menderes}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Rio-cauto-cuba.JPG|thumb|250px|'''Menderesên''' [[çem]]ekî.]] {{navdêr|ku|z=m}} # {{f|ku|erdnîgarî}} [[fetlok]]ên [[çem]] û [[robar]]an, <br>[[badok]]ên [[çem]] û [[robar]]an #* {{jêder-malper|ku|jêgirtin=Bajarê Erdexana ku zozan, mêrg, gol, çem û deştên reng rengî li ser xwe dihewîne bi '''menderesên''' lihevbadayî va balê dikişîne.|malper=AA|sal=7/2023|sernav=Dîmenên menderesên li Erdexanê ji hewayê va hatin kişandin|url=https://www.aa.com.tr/kk/jiyan/d%C3%AEmen%C3%AAn-menderes%C3%AAn-li-erdexan%C3%AA-ji-heway%C3%AA-va-hatin-kisandin/2937599}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|مەندەرەس}} * {{ku-kr|мәндәрәс}} ==== Etîmolojî ==== Bi riya {{deyn|tr|ku|menderes}} ji {{ji|el|ku|Μαίανδρος|tr=Maíandros}} ku navê [[çem]]ê [[Menderes]] yê li rojavayê Tirkiyê ye ku bi [[fetlok]]ên xwe naskirî ye. Heman peyv ji yûnanî ketiye piraniya zimanên ewropî jî: {{hv|en|meander}}, {{hv|fr|méandre}}, {{hv|de|Mäander}}, {{hv|es|meandro}}... ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|Flusswindung|m}}, {{W+|de|Mäander|n}}, {{W-|de|Flussschlinge|m}}, {{W-|de|Flussbiegung|m}} * {{Z|eu}}: {{W-|eu|meandro}} * {{Z|bg}}: {{W+|bg|меа́ндър|n}} * {{Z|cs}}: {{W+|cs|meandr|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|河套|tr=hétào}} * {{Z|da}}: {{W-|da|mæander|g}} * {{Z|et}}: {{W+|et|meander}} * {{Z|fi}}: {{W+|fi|meanderi}} * {{Z|fr}}: {{W+|fr|méandre|n}} * {{Z|gl}}: {{W+|gl|meandro|n}} * {{Z|nl}}: {{W+|nl|meander|n}}, {{W+|nl|waterloop|n}} * {{Z|en}}: {{W+|en|meander}} * {{Z|it}}: {{W+|it|meandro|n}} * {{Z|ca}}: {{W+|ca|meandre|n}} * {{Z|lv}}: {{W-|lv|meandrs|n}} * {{Z|lt}}: {{W-|lt|meandra|m}} * {{Z|mk}}: {{W-|mk|меа́ндер|n}} * {{Z|hu}}: {{W+|hu|kanyarulat}}, {{W+|hu|meander}} * {{Z|no}}: *: {{Z|nb}}: {{W+|nb|meander|n}} *: {{Z|nn}}: {{W-|nn|meander|n}} * {{Z|pl}}: {{W+|pl|meander|n}}, {{W+|pl|zakole|nt}} * {{Z|pt}}: {{W+|pt|meandro|n}} * {{Z|ro}}: {{W+|ro|meandru|nt}} * {{Z|ru}}: {{W+|ru|меа́ндр|n}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|меандар|n}} *: Latînî: {{W+|sh|meandar|n}} * {{Z|sk}}: {{W-|sk|meander|n}} * {{Z|sl}}: {{W+|sl|meander|n}} * {{Z|es}}: {{W+|es|meandro|n}} * {{Z|sv}}: {{W+|sv|meander|g}} * {{Z|uk}}: {{W-|uk|меа́ндр|n}} {{werger-bin}} :{{werger çavkanî|en|meander|beş=Ev qismê Wergerê|oldid=76566030}} == {{ziman|tr}} == === Navdêr === {{nav|tr}} # [[menderes#Kurdî|menderes]], [[fetlok]], di rêavên çeman de fetlokên weke tîpa “s” dmc5foal0l63v8rqn0hg8o8ipo3y1v7 chimney pot 0 637483 6328741 5733539 2026-08-10T22:42:21Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328741 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} # [[qazan]]a [[kulîn]]ê 37fjzvedbyudn04lpbcuu9yhdmandn0 bîterbûn 0 651406 6328825 6303987 2026-08-11T00:31:41Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328825 wikitext text/x-wiki {{binêre lêker|bîter bûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[peydebûn]], [[dabînbûn]], [[raybûn]] #* {{jêder-malper|ku|jêgirtin=Eşîrên koçer derbazî jîyana riatî dibûn û ewê yekê alî pakkirina şertên jîyana wan dikir (sazkirina pevgirêdana {komûnîkasyon}, qewînkirina qeyde-qanûna, peydabûna aletên, ku avê bi hêsanî ji bîra derdixin), û herweha '''bîterbûna''' cûrên jîyanê yên nûjen, wek bikaranîna ereba, ji bo gundîya çêbûna firsenda, ku herine bajara û h.w.d.|nivîskar=Têmûrê Xelîl|sernav=KURDISTAN PIŞTÎ ŞERÊ HEMCIHANÊ YÊ DUDAYAN|url=https://krd.riataza.com/2019/05/12/kurdistan-pisti-sere-hemcihane-ye-dudayan/|malper=krd.riataza.com|sal=2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{pêk|ku|bîter|bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|bulunma}} {{werger-bin}} sv5mfqzl3enwo8imizacnhhf02jz23j lafîte 0 653609 6329040 6311027 2026-08-11T11:53:13Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329040 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[poster]] #* {{jêder-malper|ku|jêgirtin=Bêtirî 100 kesî ji ber perlemana Yonanê berê xwe dan baliyozgeha Almaniyayê, û panivîs( '''lafîte''') hildidan ku tê de bi ingilîzî danîbûn (( Ez malbata xwe dixwzim)) bi wê yekê dixwestin derkevin Almaniyayê|sernav=Li jêr hevoka (( Ez malbata xwe dixwazim )) ... penaberên sûrî yên li Yonanê asê mane nerazîbûna xwe diyar dikin|url=https://www.qasioun-news.com/ar/articles/87558|malper=qasioun-news.com|sal=2017}} #* {{jêder-malper|ku|jêgirtin=Jinên ku rengên xemrî,gulgulî û sor li xwe dikirin '''lafîte''' û pankard bilind dikirin, ku wan bi rêya wan berevanî li rola xwe di xwenîşandanan de kir û wan kampanya reşkirinê ya li dijî wan, nemaze ya di mîdyaya civakî de, şermezar kir.|nivîskar=Faris Omran|sernav=Jinên Îraqî banga Sedir bo qedexekirina xwenîşandanên têkel şermezar dikin|url=https://diyaruna.com/kmr/articles/cnmi_di/features/2020/02/19/feature-01|malper=diyaruna.com|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Grûpa ku navê "Ciwanên Kurd" li xwe dike, bi vê çalakiyê rabû. Di xwepêşandanê de, ciwanan '''lafîte''' bilind kiribûn, ku li ser wan hatibû nivîsandin...|sernav=Li Qamişloyę ciwanęn kurd doza çareserkirina Pirsa Kurdî li Suriyę kir - Xwepęşandaneke aşityane|url=http://www.amude.net/print.php?newsId=2354&newsLanguage=Munteda|malper=amude.net|sal=2005}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} fm7ijh3x06haldufx9zprvcboqba067 di dev û pozê (yekî) de anîn 0 654450 6328739 6248147 2026-08-10T22:39:53Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328739 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku}} {{e|ku|biwêjî}} # {{mane?|ku}} ==== Formên alternatîv ==== * {{g|ku|di bêvila (yekî) re anîn}} bspechtn9pwbuwoj5oorwv1zzxekdxw 6328740 6328739 2026-08-10T22:40:05Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328740 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=h-gh}} {{e|ku|biwêjî}} # {{mane?|ku}} ==== Formên alternatîv ==== * {{g|ku|di bêvila (yekî) re anîn}} b7hdsbb3bj02lo5f1renn49x4mmovww korê ku kêç ketî destan 0 661495 6329026 6194102 2026-08-11T11:52:41Z Balyozbot 7867 /* Biwêj */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329026 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Biwêj === {{biwêj|ku}} #ji bo kesên çikosî û tema tê gotin<ref>Mehmet Oncu, Ferhenga Biwêjan, Sîtav, 2014</ref> #* {{jêder-malper|ku|jêgirtin=Zilam, merivekî bi rû û têrpeyv e. Li tomofîlê siwar dibe nabe, direqînê û dest bi axaftinê dike. Gelek eyan bû ku mêrik birçiyê peyvê ye. Mîna '''korekî kêçek bikeve nav lepan'''! De vêca ne kêçek, em çar heb kêç, bibore çar heb pepûkên xwedê ketine nav lepê wî.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} === Çavkanî === {{çavkanî}} 4w8bmyumcq6bo7q6gock16r617lsi5c li ser neynûkan reqisîn 0 668232 6329045 6194301 2026-08-11T11:53:24Z Balyozbot 7867 /* Biwêj */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329045 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Biwêj === {{biwêj|ku}} #pir kêf kirin #xweş reqas kirin<ref>Şêxmûs Aslan, Ferhenga Biwêjan, 2004</ref> #* {{jêder-malper|ku|jêgirtin=Zilamekî qemer ê di kirasê çermsoran de, hinekî li pêş, destê xwe ji me re bilind dike. Hew tenê destê xwe bilind dikir? Na wele! Camêro hemû bedena xwe, bi destê xwe re bilind dikir. Ji bo me bide sekinandin, edetî '''li ser nenûkan direqisî'''.|nivîskar=Agîd Yazar|sernav=Welatê Antîakos ê zîrek Komagene IV|url=https://xwebun.org/welate-antiakos-e-zirek-komagene-iv/|malper=xwebun.org|sal=2020}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Çavkanî === {{çavkanî}} fhd1ieyc517odcl6k9kvuj6qcnjvh6c kaşke 0 830130 6329003 6309732 2026-08-11T11:51:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329003 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[erebe|Erebe]]ya [[hesp]]ê ku pê [[ajal]], [[eşya]], û malzeme tê [[kişandin]], wek paytonê. #* {{jêder-malper|ku|jêgirtin=Nibras Ebasê ku 20 sal ev kar kir û niha patron e û bi dehan kes li cem dixebitin der barê barkêşiya bi '''kaşkeyê''' va agahî da nûçegihanê AAyê û got: "Em bi erebeyên hespan bar dibin nav Bexda û bajarên li derveyê Bexdayê.|nivîskar=Abdullah Tel|sernav=Li Bexdayê erebeyên hespan hê jî di rewacê da ne|url=https://www.aa.com.tr/kk/jiyan/li-bexday%C3%AA-erebey%C3%AAn-hespan-h%C3%AA-j%C3%AE-di-rewac%C3%AA-da-ne/1203928|urlya-arşîvê=https://web.archive.org/web/20230701084904/https://www.aa.com.tr/kk/jiyan/li-bexday%C3%AA-erebey%C3%AAn-hespan-h%C3%AA-j%C3%AE-di-rewac%C3%AA-da-ne/1203928|malper=AA|dîrok=2018-07-17}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|cart}}, {{W+|en|coach}}, {{W+|en|hack}} * {{Z|tr}}: {{W+|tr|at arabası}} {{werger-bin}} e3siun3bubx2qdvcfeep33detnsumy7 cifta berazan 0 830140 6328830 6195030 2026-08-11T00:32:00Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328830 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[çek]]ê ku [[fîşek]]a wê dipeqît, bi [[taybet]]î di kuştina [[beraz]]an de tê [[bikaranîn]] #* {{jêder-malper|ku|jêgirtin={{ku-Arab|!!کورکەکێ 11 سالی کچەکا 8 سالی ب '''جفتا بەرازا''' دکوژیت و سەبەب ژی دڤێ ڤیدیوێ دا بزانە}}|nivîskar=Liberal Kurdistan لێبرالیەت بو کوردستان|sernav=|url=https://www.facebook.com/dohuk.duhok/videos/979010715475878/|malper=facebook.com/dohuk.duhok|sal=2015}} #:: ''Kurikekî 11 salî keçeke 8 salî bi '''cifta beraza''' dikujît û sebeb jî di vê vîdîwê da bizane!!'' ==== Bi alfabeyên din ==== * {{ku-ar|جفتا بەرازا}} ==== Etîmolojî ==== Ji [[cifte|cift]] + [[-a]] + [[beraz]] + [[-an]]. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|shotgun}} {{werger-bin}} 63tarxu8yf1a31q9kqzsbr6yp9o9our 6328835 6328830 2026-08-11T00:38:55Z Wikihez 7344 /* Navdêr */ 6328835 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[çek]]ê ku [[fîşek]]a wê dipeqît, bi [[taybet]]î di kuştina [[beraz]]an de tê [[bikaranîn]] #* {{jêder-malper|ku|sc=ku-Arab|jêgirtin=!!کورکەکێ 11 سالی کچەکا 8 سالی ب '''جفتا بەرازا''' دکوژیت و سەبەب ژی دڤێ ڤیدیوێ دا بزانە|nivîskar= لێبرالیەت بو کوردستان<tr:Liberal Kurdistan>|tr=Kurikekî 11 salî keçeke 8 salî bi '''cifta beraza''' dikujît û sebeb jî di vê vîdîwê da bizane!!|sernav=|url=https://www.facebook.com/dohuk.duhok/videos/979010715475878/|malper=facebook.com/dohuk.duhok|sal=2015}} ==== Bi alfabeyên din ==== * {{ku-ar|جفتا بەرازا}} ==== Etîmolojî ==== Ji [[cifte|cift]] + [[-a]] + [[beraz]] + [[-an]]. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|shotgun}} {{werger-bin}} l5x5ateo8ovr3ie1x9d7sl7cp8yz239 gereşûn 0 836410 6328965 6307228 2026-08-11T11:50:16Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328965 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Gereşûn.jpg|thumb|Gereşûn]] {{navdêr|ku|z=m}} # {{f|ku|xwarin}} Cûreyekî [[şorbe|şorbeyê]] yê bi [[birinc|birincê]] an jî [[dahn|dahnî]] û [[avbacan|ava bacanan]] tê çêkirin. Herwiha ji bo tahmê [[qelî]] û [[pîvaz|pîvaza]] hişk jî dikeve vê xwarinê. Bi piranî wek xwarina sereke tê xwarin. #* {{jêder-malper|ku|jêgirtin=Berê xwarinek me hebû, me jê re digot '''gereşûn'''. Va belkî 15 sal bûye min gereşûn nexwariye..|malper=twitter|url=https://twitter.com/senyoressor/status/1130884823936057345 gereşûn|sernav=@senyoressor|sal=05/2019}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Tarîfa xwarinê ==== Ji bo sê kesan: * Du [[qedeh|qedehên]] avê [[birinc]] * Heşt qedehên avê [[av]] * Du [[kevçî|kevçiyên]] xwarinê [[avbacan|ava bacanan]] * Çar kevçiyên xwarinê [[rûn]] * Nîv kevçiyê xwarinê [[xwê]] # Ava xwe bikelînin # Ava bacanan û rûn biqijilînin # Birincê pê dakin, heya birinc di avê de nerm bibe bila bikele ;{{biçûk|Çavkanî: * ''twitter'' [https://twitter.com/xalidxelo/status/1213759992752459777 tarîfa gereşûnê], @xalidxelo, 01/2020 }} ==== Werger ==== {{werger-ser}} {{werger-bin}} iehgu5allwk2x5iywywz33jkqq3ne5i dabarkirin 0 836803 6328896 6304456 2026-08-11T11:25:18Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328896 wikitext text/x-wiki {{bnr-l|dabar kirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[raguhestin]]a [[pêzanîn]]an ji ser [[internêt]]ê bo [[kombers]]ekî . #* {{jêder-malper|ku|jêgirtin=Vaye hat! Ev guherto bo şerefa Billy Eckstine bi navê “Eckstine” hat binav kirin. Ev guhertoya herî dawî ya mezin a WordPressê ye bo '''dabarkirin''' û hildemandinê niha li ser paceya rêvebiriya we ye.|nivîskar=Ridwan Xelîl|sernav=WordPress 5.5 “Eckstine”|url=https://kmr.wordpress.org/2020/08/15/wordpress-5-5-eckstine/|malper=kmr.wordpress.org|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{pêk|ku|da-|barkirin}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|تحميل}} * {{Z|fr}}: {{W+|fr|télécharger}} * {{Z|en}}: {{W+|en|download}} {{werger-bin}} 99t77lxexcxkm0pwnlj91w2g02uima3 enteş 0 836977 6328948 6306109 2026-08-11T11:48:27Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328948 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # {{f|ku|Aldûş}} Ji hêla [[çawanî]] û [[çendanî]]yê ve [[wekî]] [[hev]] bûn, [[hevta]], [[hinkûf]]. #: ''Tu wî dikî '''enteşê''' min?'' #* {{jêder-kovar|ku|jêgirtin=Li ciyê xwe rûne, tu kîyî li dijî me di axivî, edeba xwe bizane tu ne '''enteşê''' me yî em te bigirin ciddîye.|kovar=ARSİVA KURD|sernav=Lîstikên qirêj ên dewleta Tirk ên li Başûrê Kurdistanê|url=https://archive.org/details/407468584-arsiva-kurd-bargiran-2016-10_202006|nivîskar=Bargiran|sal=2016|dîrok=|rûpel=32}} #* {{jêder-kovar|ku|jêgirtin=Bi Iraqê re gotinên nemayî, bi serokwezîrê Îraqê henekên xwe dikirin. Tu ne '''enteşê''' me yî. em bi te re hevdîtina pêk nînin. Hete xwe bizane Abadîyê derpê di navber rana da bû!”|sernav=TIRKIYÊ LI HER DEWRÊN DUNYAYÊ WENDA KIRINE|url=https://archive.org/details/407590085-arsiva-kurd-bargiran-2017-3-a|nivîskar=Bargiran|sal=2017|rûpel=36}} #* {{jêder-pirtûk|ku|jêgirtin=Her kes '''enteşê''' xwe bixwe zane.|nivîskar=Mehmet Oncu|sernav=Ferhenga Devoka Herêma Semsûrê|weşanxane=Sîtav|sal=2020|rûpel=115|isbn=9786057920607}} #* {{jêder-malper|ku|jêgirtin=Rasûlûllâh wiha kerem kiriye ku: "(Ê ku dixwazin bizewicin) ku lawik û keçik '''enteşê''' hev bin û hûn wana nezewicînin, li benda fîtneyê bisekinin."|sernav=Gotinên Pêxember|url=https://twitter.com/571gp632/status/1292426588429090816|malper=twitter.com|sal=2020}} #* {{jêder-kovar|ku|jêgirtin=Em jî hêvî dikin ku ew giravokên ku taybetî navçeya Cêlikanin û ne li Tirkiyê ne jî li welatên din hempaû '''enteşên''' wan tinenin, rojekê pêş de aliyê dewletê ve bên parastin û qorî kirinê.|kovar=Semsûr|sernav=Ji bihûştên rûzemîn ên veşartî "Cêlikan"|url=https://silo.tips/download/min-digot-qey-tu-bi-ziman-ma-tu-bi-kurd-nizan-cigerxwn|nivîskar=Mehmet Oncû|hejmar=5|sal=2011|rûpel=8}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|equal}} * {{Z|tr}}: {{W|tr|denk}} {{werger-bin}} r8d91h121rifhobg1zc38cw6i45n9hi Şablon:jêder-malper 10 837082 6328752 6249533 2026-08-10T23:31:14Z Wikihez 7344 6328752 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t | alias = chapter: title,sernav,webpage,rûpela-webê,entry,made; trans-chapter: trans-title,tercimeya-sernav,trans-webpage,tercimeya-webê,tercimeya-malperê,trans-entry,tercimeya-madeyê; chapterurl: titleurl,urlya-sernav,webpageurl,urlya-webê ,entryurl,urlya-madeyê; chapter_tlr: webpage_tlr,tercimanê-webê; chapter_series: webpage_series,seriya-websîteyê; chapter_seriesvolume: webpage_seriesvolume,cildê-seriya-webê; chapter_number: webpage_number,hejmara-webê; chapter_plain: title_plain,sernav-sade,webpage_plain,web-sade; title: site,work,websîte,malper,xebat; trans-title: trans-site,tercimeya-sîteyê,trans-work,tercimeya-xebatê; }}<!-- -->{{#if:{{{nekat|}}}||<!-- -->{{kategorî|Jêgirtinên malperan bi {{navê zimanî|{{{1}}}}}}}<!-- -->}}</includeonly><!-- --><noinclude>{{jêder-malper|en|nivîskar=Meg Downey|sernav=Marvel’s Comic Soul Stone could Explain the Jump from Infinity War’s Ending to Avengers 4: A Brief History of Crazy Multidimensional Power|url=https://www.polygon.com/2018/5/7/17328230/infinity-war-avengers-4-marvel-comics-soul-stone|urlya-arşîvê=https://web.archive.org/web/20180624110542/https://www.polygon.com/2018/5/7/17328230/infinity-war-avengers-4-marvel-comics-soul-stone|tarîxa-arşîvê=24 June 2018|xebat=[[w:Polygon (website)|Polygon]]|tarîx=7 May 2018|jêgirtin=There’s a very real chance that, rather than crumbling into the dust and floating off into the '''ether''', Thanos’s victims [in the film ''[[w:Avengers: Infinity War|Avengers: Infinity War]]''] were actually sucked up into the Soul Stone.}}<!-- -->{{documentation}}</noinclude> g3wic2i1nomlmj47vxypwdcnv5smlci nemûr 0 839399 6329073 6285065 2026-08-11T11:54:21Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329073 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|ne|mûr}} === Navdêr === {{navdêr|ku|z=?}} # [[neqş û nîgar]] #* {{jêder|ku|jêgirtin=Hundirê restorantê jî bi dekorasyoneke ku hemû nexş û '''nemûrên''' çanda Çînê diheband di hundirê xwe de hatibû xemilandin.|{{Jêgirtin/Mîran Janbar/Qolyeya Cecileê|r=85}}}} #* {{jêder-malper|ku|jêgirtin=Wana xwe wek du xortên bê simêl û bê rî didan nîşandan, ku cilên jinan li xwe kirine, şala sipî dane serê xwe, ser wê şalê şaleke reş a badayî girê didan, ku keçên kurdên koçer ji hirîyê çê dikirin û bi nexş û '''nemûran''' va dixemilandin. |nivîskar=Î. A. Orbêlî|sernav=Folklor û deba Moksê|url=https://archive.org/details/folklorudebamokseorbeli|malper=Wergera ji rûsî: Têmûrê Xelîl|sal=1982}} #* {{jêder-malper|ku|jêgirtin=Di guldesteya ji wêneyên ku Edvard û Thomas kişandin çêkirî de, tê dîtin ku çirayên li hundirê dêrê bi taybetî bala wan kişandine û wan peywendiyeke nêzîk li gel nexş û '''nemûrên''' avahiyan ên kevir danîne.|nivîskar=Edvard Uğurel - Matias Uğurel|sernav=Dêr|url=https://web.archive.org/web/20200416153019/http://bianet.org/bianet/sanat/141143-kilise-der|malper=http://bianet.org/|dîrok=29.09.2012}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 1n54m4krrtdn83ni2jxl0nj2see9slw Şablon:jêder-kitêb 10 839412 6328750 6276923 2026-08-10T23:25:09Z Wikihez 7344 6328750 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t|type=book}}<!--jêderê bigire -->{{#if:{{{nekat|}}}||<!-- -->{{kategorî|Jêgirtinên kitêban bi {{navê zimanî|{{{1}}}}}}}<!-- -->}}</includeonly><!-- --><noinclude>{{jêder-kitêb/ceribandin|en|author=F[rancis] Scott Fitzgerald|authorlink=F. Scott Fitzgerald|chapter=IX|title=[[w:The Great Gatsby|The Great Gatsby]]|location=New York, N.Y.|publisher=[[w:Charles Scribner's Sons|Charles Scribner’s Sons]]|year=1925|oclc=884653065|location2=New York, N.Y.|publisher2=Charles Scribner’s Sons|year2=1953|isbn2=978-0-684-16498-4|page2=182|pageurl2=https://archive.org/stream/in.ernet.dli.2015.184960/2015.184960.The-Great-Gatsby#page/n185/mode/1up|passage=So we beat on, boats against the current, borne back '''ceaselessly''' into the past.}}<noinclude> {{belgekirin}}</noinclude> 88drgsprawphmnemfs8rqyiuc0zax8v 6328754 6328750 2026-08-10T23:31:34Z Wikihez 7344 6328754 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t|type=book}}<!--jêderê bigire -->{{#if:{{{nekat|}}}||<!-- -->{{kategorî|Jêgirtinên kitêban bi {{navê zimanî|{{{1}}}}}}}<!-- -->}}</includeonly><!-- --><noinclude>{{jêder-kitêb|en|author=F[rancis] Scott Fitzgerald|authorlink=F. Scott Fitzgerald|chapter=IX|title=[[w:The Great Gatsby|The Great Gatsby]]|location=New York, N.Y.|publisher=[[w:Charles Scribner's Sons|Charles Scribner’s Sons]]|year=1925|oclc=884653065|location2=New York, N.Y.|publisher2=Charles Scribner’s Sons|year2=1953|isbn2=978-0-684-16498-4|page2=182|pageurl2=https://archive.org/stream/in.ernet.dli.2015.184960/2015.184960.The-Great-Gatsby#page/n185/mode/1up|passage=So we beat on, boats against the current, borne back '''ceaselessly''' into the past.}}<noinclude> {{belgekirin}}</noinclude> 0bhir7zvz5uh1ihqmqkvyptcvptkadw çîlqerqaş 0 840753 6328894 5836511 2026-08-11T11:25:06Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328894 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-çîlqerqaş.wav|Deng|Qers}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # {{serhedî}} Gelek [[spî]]<ref>{{malper|sernav=çîlqerqaş|url=http://tirsik.net/index.php?peyam=123600|malper=tirsik.net|dîrok=17.05.2020|ziman=ku}}</ref> #* {{jêder-pirtûk|ku|jêgirtin=Zarokên xwe yên kurîn li pişta beranên '''çîlqerqaş''', sergevez, qerase dikirin, bi derîvekirina gomê re heviyên xwe avis dikirin.|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=71|isbn=978-605-5585-41-9}} #* {{jêder-pirtûk|ku|jêgirtin=Rûyê te yê '''çîlqerqaş'''<br>hinarikên te yên sorgevez|nivîskar=Bawer Agirî|sernav=Êş|weşanxane=Na Yayınları|sal=2016|rûpel=92|isbn=9786059017558}} #* {{jêder-malper|ku|jêgirtin=Mîna robarên dirêj heylo dipdirêj<br>her ku dipelînin gumikên '''çîlqerqaş'''<br>sibehan em bi xwe, êvaran dîn.|nivîskar=Mustafa Köz|wergêr={{w|Berken Bereh}}|sernav=Çi Ku Evîn Heye|url=http://avestakurd.net/blog/2012/08/26/gotina-deryay-ya-mustafa-koz-ji-ls-derc/|malper=avestakurd.net|sal=2012}} ==== Hevmane ==== * [[qerqaş]] * [[çîlspî]] * [[sipspî]] ==== Etîmolojî ==== Ji {{qertaf|ku|çîl|qerqaş}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|schneeweiss}}, {{W-|de|kreideweiss}}, {{W+|de|schlohweiß}}, {{W-|de|leuchtend weiß}} * {{Z|fi}}: {{W+|fi|vitivalkoinen}} * {{Z|en}}: {{W+|en|snow-white}} * {{Z|tr}}: {{W+|tr|bembeyaz}}, {{W+|tr|apak}} {{werger-bin}} === Çavkanî === {{çavkanî}} 9a63lfzzaau7mni8qikpco46j4kwlnu 6328915 6328894 2026-08-11T11:29:08Z Balyozbot 7867 [[Bikarhêner:Wikihez/skrîpt/py/dengbot.py|Bot]]: Formata parametreya "dever" hat guhartin 6328915 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-çîlqerqaş.wav|dever=Qers}} * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # {{serhedî}} Gelek [[spî]]<ref>{{malper|sernav=çîlqerqaş|url=http://tirsik.net/index.php?peyam=123600|malper=tirsik.net|dîrok=17.05.2020|ziman=ku}}</ref> #* {{jêder-pirtûk|ku|jêgirtin=Zarokên xwe yên kurîn li pişta beranên '''çîlqerqaş''', sergevez, qerase dikirin, bi derîvekirina gomê re heviyên xwe avis dikirin.|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=71|isbn=978-605-5585-41-9}} #* {{jêder-pirtûk|ku|jêgirtin=Rûyê te yê '''çîlqerqaş'''<br>hinarikên te yên sorgevez|nivîskar=Bawer Agirî|sernav=Êş|weşanxane=Na Yayınları|sal=2016|rûpel=92|isbn=9786059017558}} #* {{jêder-malper|ku|jêgirtin=Mîna robarên dirêj heylo dipdirêj<br>her ku dipelînin gumikên '''çîlqerqaş'''<br>sibehan em bi xwe, êvaran dîn.|nivîskar=Mustafa Köz|wergêr={{w|Berken Bereh}}|sernav=Çi Ku Evîn Heye|url=http://avestakurd.net/blog/2012/08/26/gotina-deryay-ya-mustafa-koz-ji-ls-derc/|malper=avestakurd.net|sal=2012}} ==== Hevmane ==== * [[qerqaş]] * [[çîlspî]] * [[sipspî]] ==== Etîmolojî ==== Ji {{qertaf|ku|çîl|qerqaş}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|schneeweiss}}, {{W-|de|kreideweiss}}, {{W+|de|schlohweiß}}, {{W-|de|leuchtend weiß}} * {{Z|fi}}: {{W+|fi|vitivalkoinen}} * {{Z|en}}: {{W+|en|snow-white}} * {{Z|tr}}: {{W+|tr|bembeyaz}}, {{W+|tr|apak}} {{werger-bin}} === Çavkanî === {{çavkanî}} ltk61qm361qfqyx4bjyi5lusbjmnfjj Şablon:jêder-kovar 10 842241 6328751 6292261 2026-08-10T23:28:47Z Wikihez 7344 6328751 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t|type=journal}}<!-- -->{{#if:{{{nekat|}}}||<!-- -->{{kategorî|Jêgirtinên kovaran bi {{navê zimanî|{{{1}}}}}}}<!-- -->}}</includeonly><!-- --><noinclude>{{jêder-kovar/ceribandin|en|author=Justin Chang|authorlink=Justin Chang|title=The Day He Arrives [film review]|url=https://variety.com/2011/film/markets-festivals/the-day-he-arrives-1117945326/|archiveurl=https://web.archive.org/web/20170628015008/https://variety.com/2011/film/markets-festivals/the-day-he-arrives-1117945326/|archivedate=28 June 2017|magazine=[[w:Variety (magazine)|Variety]]|date=25 May 2011|issn=0042-2738|oclc=960911146|passage=The outline could apply to most of the self-effacing, increasingly inward-looking comedies written and directed by [[w:Hong Sang-soo|Hong Sang-soo]], and it certainly describes "[[w:The Day He Arrives|The Day He Arrives]]," an agreeably meandering exercise that brings some clever French New Wave '''fillips''' and structural repetitions to Hong's characteristically boozy party.}}<!-- -->{{belgekirin}}</noinclude> k0uzvh83jlpfr74dw5zd0g8dm8ygtvb 6328753 6328751 2026-08-10T23:31:28Z Wikihez 7344 6328753 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t|type=journal}}<!-- -->{{#if:{{{nekat|}}}||<!-- -->{{kategorî|Jêgirtinên kovaran bi {{navê zimanî|{{{1}}}}}}}<!-- -->}}</includeonly><!-- --><noinclude>{{jêder-kovar|en|author=Justin Chang|authorlink=Justin Chang|title=The Day He Arrives [film review]|url=https://variety.com/2011/film/markets-festivals/the-day-he-arrives-1117945326/|archiveurl=https://web.archive.org/web/20170628015008/https://variety.com/2011/film/markets-festivals/the-day-he-arrives-1117945326/|archivedate=28 June 2017|magazine=[[w:Variety (magazine)|Variety]]|date=25 May 2011|issn=0042-2738|oclc=960911146|passage=The outline could apply to most of the self-effacing, increasingly inward-looking comedies written and directed by [[w:Hong Sang-soo|Hong Sang-soo]], and it certainly describes "[[w:The Day He Arrives|The Day He Arrives]]," an agreeably meandering exercise that brings some clever French New Wave '''fillips''' and structural repetitions to Hong's characteristically boozy party.}}<!-- -->{{belgekirin}}</noinclude> k0vpbrfdr9c0fn5dei0p2zacpt9jgaz bi kitkit 0 843356 6328810 6195343 2026-08-11T00:28:47Z Balyozbot 7867 /* Hoker */ sererastkirin 6328810 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[bi detay]] û [[bi teferûat]], [[bi hûrgilî]] #* {{jêder-kovar|ku|jêgirtin=Di çarçeweke gelemper de - ne '''bi kitkit''' (teferrûat)- me termên leşkerî da ber xwe.|kovar=Kurmancî|sernav=Termên Leşkerî 1|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku11.pdf|nivîskar=Rojen BARNAS|nivîskar2=Mizaffer BEGZADE|hejmar=11|sal=1992|rûpel=4}} #* {{jêder-malper|ku|jêgirtin=Her weha fonksîyon, berpirsi û erkên parlamentên herêmî û ya navendî jî dikanin ji alîyê hiqûqnasîyê ve bêtir '''bi''' hûrgilî û '''kitkit''' bên ravekirin.|nivîskar=Baran Rizgar|sernav=MODELÊN BRÎTANÎ YÊN ÇARESERKIRINA PIRSGIRÊKÊN NETEWÎ|url=https://sites.google.com/a/baranrizgar.co.cc/azadiya-kurdistane/home/modelen-britani-yen-careserkirina-pirsgireken-netewi|malper=baranrizgar.co|sal=2010}} #* {{jêder-pirtûk|ku|jêgirtin=Şaredarîya Haringey lîsteke payinê ya xanî birêve dibe û dema ku hun serî li xênî bidin, agahîya '''bi kitkit''' dê ji we re bê dayin.|sernav=Ez ê Jiyana xwe Bidomînim|url=https://www.haringey.gov.uk/sites/haringeygovuk/files/7th_edition_-_i_shall_survive-_kurdish.pdf|sal=2007|çap=7|rûpel=23}} ==== Werger ==== {{werger-ser|stûn=2}} * {{Z|en}}: {{W+|en|detailedly}}, {{W+|en|in detail}}, {{W-|en|in a comprehensive manner}}, {{W+|en|comprehensively}} * {{Z|tr}}: {{W-|tr|ayrıntılı bir şekilde}} {{werger-bin}} 7nvjg3xj9ajmw37dobkxh1ammni4ttc Gotûbêj:derbest 1 844375 6328904 5020681 2026-08-11T11:25:56Z Balyozbot 7867 /* Derbest tabût? */ sererastkirin 6328904 wikitext text/x-wiki == Derbest tabût? == * {{jêder-malper|ku|jêgirtin=Cenazeyê Akçelîk bi konvoyeke ji sedan wesayîtî, anîn gundê Şahê yê bajaroka Esnedereyê. Piştî nimêja cenaz ya li mizgefta gund, '''derbest''' li ser milan heta goristana gund hat hilgiritin.|sernav=Gerilayê HPG’ê Akçelîk ber bi rêwîtiya dawî ve hate oxirkirin|url=https://anfkurdi.com/kurdistan/gerilaye-hpg-e-akcelik-ber-bi-rewitiya-dawi-ve-hate-oxirkirin-67759|malper=anfkurdi.com|sal=2016}}--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 23:07, 20 hezîran 2020 (UTC) : li vir dibêje erê tabût e: {{pirtûk|url=https://zimannas.files.wordpress.com/2016/07/behdinan-kurmanji.pdf|sernav=behdinan-kurmanji}} --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 08:53, 21 hezîran 2020 (UTC) == [[Wîkîferheng:Daxwazên peyitandinê|DP]]: Hezîrana 2020== {{arşîv-ser|dp|nepeyitandî}} {{fake==|<s>[[derbest]]</s>}} Ji bo maneya "xeleq" û ji bo maneya "yekser" peyitandin hewce ye. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 21:23, 20 hezîran 2020 (UTC) : ''Berpirsên rêzdarên Encûmena Senato, Wezareta Derve, Wezareta Bergirî û Navendên cûdayên '''derbest''' bi rewşa cîhan û rojhilata navîn kir, xweşbextane hemû rêzekî bêpayan ji bo gelê Kurdistanê û Hêzên Pêşmerge hebû.''[https://rojevakurd.com/hezen-kurdistani-dive-gaven-pratiki-bene-avetin/ Çavkanî 1] : ''Ev dîdariya han hemî pîvarên vacayî ji nîr û '''derbest''' ji hevpeyvîneke rateqîn re derbaskir,''[http://www.welateme.net/kurdi/modules.php?name=News&file=article&sid=2578 2] ::Min nikarî wateyak ji wan derxim. Kes ji wan tiştek fêm dike? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 08:56, 21 hezîran 2020 (UTC) :{{nepeyitandî}} ji ber tunebûna çavkaniyan jê hatiye birin. bnr [[Pêvek:Bêçavkanî/derbest]]. {{arşîv-bin}} dkgdds9329udg17ursowg49o44bp8nv doho 0 845389 6328934 5020699 2026-08-11T11:45:48Z Balyozbot 7867 sererastkirin 6328934 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}} # {{bnr|duh}} #* {{jêder-malper|ku|jêgirtin=Helwesta Ewropayê '''doho''' jî ev bû, îro jî ev e.|nivîskar=Ahmed Dere|url=https://www.rudaw.net/kurmanci/opinion/11042013|malper=Rûdaw|dîrok=2013-04-11|sernav=Pêvajoya ‘Çareseriyê’ û Ewropa}} 3s47u4ujdq6nbm7kmuypc09voui8o95 Gotûbêj:bizanebûn 1 845396 6328820 5021746 2026-08-11T00:29:09Z Balyozbot 7867 /* Rastnivîs */ sererastkirin 6328820 wikitext text/x-wiki == Rastnivîs == "bizanebûn" an jî "bi zanebûn"? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:34, 22 tîrmeh 2020 (UTC) : {{r|Şêr}} Merheba hêja. TEORÎKEN: Bi ya min ev yek girêdayî cureya peyvê diguhere. Ger peyv "rengdêr" be, divê bi hev ve were nivîsandin, lê ger peyv "hoker" be, cuda tê nivîsandin. : PRATÎKEN: Ez ê ji ser peyva "biqesdî / bi qesdî" biçim, da ku rindtir were têgihîştin. : 1 - {{jêder-malper|ku|jêgirtin=''Bêguman Swêd '''bi qesdî''' piştgirîya terorîstan nake.''|malper=Radyoya Swêdê|url=https://sverigesradio.se/sida/artikel.aspx?programid=2200&artikel=5291884|sal=2012-10-01|ziman=ku|sernav=Swêd dibêje Tirkî: "Delîlan bîne!"}} : 2 - {{jêder-malper|ku|jêgirtin=''Digel ku malbata wê li Filistînê dijî hikûmeta Netanyahu teşebûs kir nehêle ku ew bikeve welêt û Tlaîbê ev yek wekî "hewldana biçûkxistina '''biqesdî'''" bi nav kir.''|malper=AA|url=https://www.aa.com.tr/kk/dinya/em-nikarin-dest%C3%BBr%C3%AA-bidin-ku-trump-%C3%BB-netanyahu-rastiy%C3%AAn-b%C3%AArehm-%C3%AAn-dagirkirin%C3%AA-ves%C3%AArin/1560252|ziman=ku|sal=2019-08-20|sernav="Em nikarin destûrê bidin ku Trump û Netanyahu rastiyên bêrehm ên dagirkirinê veşêrin"}} -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 20:36, 23 tîrmeh 2020 (UTC) 52jwis3mqu961i2pjzm5iewlie82wz6 6328822 6328820 2026-08-11T00:30:44Z Wikihez 7344 Guhartoya [[Special:Diff/6328820|6328820]] yê [[Special:Contributions/Balyozbot|Balyozbot]] ([[User talk:Balyozbot|gotûbêj]]) şûnde kir 6328822 wikitext text/x-wiki == Rastnivîs == "bizanebûn" an jî "bi zanebûn"? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:34, 22 tîrmeh 2020 (UTC) : {{r|Şêr}} Merheba hêja. TEORÎKEN: Bi ya min ev yek girêdayî cureya peyvê diguhere. Ger peyv "rengdêr" be, divê bi hev ve were nivîsandin, lê ger peyv "hoker" be, cuda tê nivîsandin. : PRATÎKEN: Ez ê ji ser peyva "biqesdî / bi qesdî" biçim, da ku rindtir were têgihîştin. : 1 - {{jêder-malper|ku|jêgirtin=''Bêguman Swêd '''bi qesdî''' piştgirîya terorîstan nake.''|malper=Radyoya Swêdê|url=https://sverigesradio.se/sida/artikel.aspx?programid=2200&artikel=5291884|dîrok=2012-10-01|sernav=Swêd dibêje Tirkî: "Delîlan bîne!"}} : 2 - {{jêder-malper|ku|jêgirtin=''Digel ku malbata wê li Filistînê dijî hikûmeta Netanyahu teşebûs kir nehêle ku ew bikeve welêt û Tlaîbê ev yek wekî "hewldana biçûkxistina '''biqesdî'''" bi nav kir.''|malper=AA|url=https://www.aa.com.tr/kk/dinya/em-nikarin-dest%C3%BBr%C3%AA-bidin-ku-trump-%C3%BB-netanyahu-rastiy%C3%AAn-b%C3%AArehm-%C3%AAn-dagirkirin%C3%AA-ves%C3%AArin/1560252|dîrok=2019-08-20|sernav="Em nikarin destûrê bidin ku Trump û Netanyahu rastiyên bêrehm ên dagirkirinê veşêrin"}} -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 20:36, 23 tîrmeh 2020 (UTC) sxcahzrnt031pwnmoaj5aeatgwiozyc bi qitûtî 0 845762 6328812 6290080 2026-08-11T00:28:51Z Balyozbot 7867 /* Hoker */ sererastkirin 6328812 wikitext text/x-wiki == {{ziman|ku}} == === Hoker === {{hoker|ku}} # {{mane?|ku}} #* {{jêder-pirtûk|ku|jêgirtin=Lê divê heta serê mehê pereyên di bêrîka xwe de '''bi qitûtî''' xerş bikira, deynên nû nekira.|nivîskar=Sirri Ayhan|wergêr=Yaqob Tilermenî|sernav=Dansa Berber|url=https://books.google.com.tr/books?id=MVjjDwAAQBAJ&pg=PA25&lpg=PA25&dq=%22bi+qit%C3%BBt%C3%AE%22&source=bl&ots=hHhBzCUw4P&sig=ACfU3U3mmH3lo0kXGv3HfQHu4ufO8u4-pw&hl=en&sa=X&ved=2ahUKEwiN6tXx6-3qAhWRiVwKHV58BN0Q6AEwBHoECAoQAQ#v=onepage&q=%22bi%20qit%C3%BBt%C3%AE%22&f=false|weşanxane=Na Yayınları|sal=2014|rûpel=25|isbn=9786059017008}} #* {{jêder-pirtûk|ku|jêgirtin=Niha tişt giş buha ne, ê de mal e, tu bikî nekî ma biwê navê, ma gaz navê, tu bawer nakî, çiqas ez '''bi qitûtî''' îdare dikim, dîsa jî weqek dohnê gazê têra me nake.|nivîskar=Musa Anter|sernav=Birîna Reş|weşanxane=Avesta|sal=1999|çap=3|rûpel=18}} #* {{jêder-kovar|ku|jêgirtin=Di romaneke nerîtî de bi piranî serlehengek heye û roman di ser wî re dimeşe. Di ber vî lehengî re, lehengên din '''bi qitûtî''' û bi têkiliyên xwe yên ligel serleheng hene, herweku ji bo çîroka sereke bi tenê obje bin. Lê belê di romana pirdeng de leheng “di mercên yeksan de” (Bahtin, 2004: 148) beşdarî diyaloga mezin a romanê dibin.|kovar=Kadim Akademi SBD|sernav=Pirdengî di Romana Mîrname ya Jan Dost de|url=https://dergipark.org.tr/en/download/article-file/386535|nivîskar=Ümran ALTINKILIÇ|cîld=1|hejmar=2|sal=2017|rûpel=98}} #* {{jêder-malper|ku|jêgirtin=Ez yek ji wan kesên ku ji sala 1970-yî ve ligor pêçêbûnên xwe pey agahiyên Kurdistana Îranê diketim, bo bizanim ka çi li vî parçê Kurdistanê diqewimê", lê me nikarîbû em başbaş bigihin armanca xwe, mijar '''bi qitûtî''' di riya rojnamekê ji vir û nûçeyekê ji dera han digiha me, belê îro roj di riya malperên Internêtê mirov eger bixwazê, dikarê bi hesanî bigihê deng û basên kîjan welatî li dinyayê, nemaze tew ku zimanekî biyanî wek zimanê Ingilîzî têbigihê.|nivîskar=Berzo Mehmûd|sernav=Kurd û Gilobelîzm|url=http://www.welateme.net/kurdi/modules.php?name=News&file=print&sid=2417|malper=welateme.net|sal=2011}} ==== Etîmolojî ==== Ji {{heve|ku|bi|qitûtî}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W-|tr|tutumluca}}, {{W-|tr|hasislikle}} {{werger-bin}} === Hoker === {{hoker|ku}} # {{rastnivîs|biqitûtî}} gwu3w7phxr9ljreg97c25u2wetegfma çirizandin 0 845765 6328892 6322003 2026-08-11T11:25:00Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328892 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|çirizandin|form=gerguhêz|niha=çirizîn|borî=çirizand}} {{lêker|ku|c=x-gh}} # [[Xwarin]]a [[dendik]]an #: {{mk|ku|Em ji xwe re dendikan '''diçirizînin'''.}} #* {{jêder-malper|ku|jêgirtin=Êvaran, li taxa mesîhiyan, ango taxa filehan, jinan ber deriyên xwe avreşandî dikir û berdida germa di hundirê çimentoyê û qîra rê de mayî. Wan sendelî û terebêze datanîn, qehwe an vexwarinên sar vedixwarin, dendikên şebeş û berberoyan '''diçirizandin'''.|nivîskar=Fawaz Husên|sernav=Ermenên bajarê Amûdê di salên 1960-1970yî de|url=https://krd.riataza.com/2015/11/06/ermenen-bajare-amude-di-salen-1960-1970yi-de/|malper=riataza.com|dîrok=06.11.2015}} #* {{jêder-kovar|ku|jêgirtin=Derewan dike çawa ku dendikan '''biçirizîne''': Bawerî pê nayê kirin|kovar=Ronahî|sernav=FERHENGA BIWÊJAN|nivîskar=Diyar Bohtî|url=https://ronahi.net/ku/wp-content/uploads/2024/01/1131.pdf|hejmar=1131|sal=2024|rûpel=1}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|çitlemek}} {{werger-bin}} {{bend}} === Navdêr === {{navdêr|ku|z=m}} # [[Xwarin]]a [[dendik]]an. #* {{jêder-malper|ku|jêgirtin=Yamîş yanjî '''çirizandin''' ji kelûpelên bingehîn ên ku di vê mehê de tê xwarin.|nivîskar=Anha|sernav=‘Tu bi xêr hatî Remezan’ gelê Misirê dê wiha meha pîroz pêşwazî bike|url=http://www.hawarnews.com/kr/haber/tu-bi-xr-hat-remezan-gel-misir-d-wiha-meha-proz-pswaz-bike-h30532.html|urlya-arşîvê=https://web.archive.org/web/20200728091921/http://www.hawarnews.com/kr/haber/tu-bi-xr-hat-remezan-gel-misir-d-wiha-meha-proz-pswaz-bike-h30532.html|malper=hawarnews.com|sal=2020}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|çitleme}} {{werger-bin}} 4xouy5dxjr6ml5pk8pl33t4miajy69e dirf 0 845915 6328931 6305410 2026-08-11T11:43:10Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328931 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[xuyang|Xuyang]]a [[derve]] ya tiştekî. #* {{jêder-malper|ku|jêgirtin=Di destana Mîrzengî de, Kurdeyatiya Ristemê Zal û malbata Zal bi her awayî û bi her şiklî derdikeve pêş. Ew dibin qehereman û pêlewanên mîtolojîk yên kurdan. Rostem dibe Ristem. Ew û azbata wî, bi '''dirfê''' xwe, bi rabûn û rûnişkandina xwe, bi mêranî, cengewarî, cesaret, xurtî, durustî, dilpakî û bi mêvanperweriya xwe dibin perçeyek civaka kurd.|nivîskar=Paşa Brodrêj|sernav=Ristemê Zal|url=https://rojevakurd.com/risteme-zal/|malper=rojevakurd.com|sal=2011}} #* {{jêder-pirtûk|ku|jêgirtin=Ez derbasî hundirê qehwê bûm. Çend xort li ser maseyekê rûniştî çay vedixwarin, ji '''dirfa''' wan min zanibû ku ji gundê me ne, lê min dîsa pê dernexist ku kî ne.|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=80|isbn=978-605-5585-41-9}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Hevmane ==== * [[dirûv]] * [[şekil]] * [[şêwe]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|appearance}} * {{Z|tr}}: {{W|tr|dış görünüş}} {{werger-bin}} 3iosw7eq8txez9xy4ulx8ijwuz9vy20 katkirin 0 846124 6329004 6309706 2026-08-11T11:51:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329004 wikitext text/x-wiki {{binêre lêker|kat kirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[vegotin]], [[behskirin]], [[qalkirin]] #* {{jêder-malper|ku|jêgirtin=Berhema Kafka ya navdartirîn romana wî Process (Dawe) ye. Dawe ya Kafka, çi ji hêla naverok û bûyerên xwe ve û çi ji hêla formê '''katkirina''' xwe ve, ne romaneke realîst e. Zêdetir xewnekê, kabûsekî ko têda bûyerên behît diqewumin, tîne bîra mirovî.|nivîskar=M. ALÎ KUT|sernav=Franz Kafka ”Li ber qanûnê” 1883–1924|url=http://www.nefel.com/kolumnists/kolumnist_detail.asp?MemberNr=32&RubricNr=&ArticleNr=3388|malper=nefel.com|sal=2008}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{pêk|ku|kat|kirin}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|telling}} (a story), {{W|en|narration}} * {{Z|tr}}: {{W|tr|anlatma}} {{werger-bin}} 90nq2d690gwisi3gxciucrl7btvxuj7 awirtûj 0 846192 6328787 6196319 2026-08-11T00:26:36Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328787 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|awirtûj}} {{rengdêr|ku}} # [[awirbaz]] #* {{jêder-pirtûk|ku|jêgirtin=Pîqabeke dîzel û reng kesk bû, yekî xurt '''awirtûj''' -bawer bikim, navê wî Şerîf bû- li ser direksiyonê rûniştibû.|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=81|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Zoro Metînî, bi hunermendîya xwe diltenik, wek mîrekî Kurd '''awirtûj''' û wek şervanekî rengan bêhn fireh, wek zarokekî ku bi lîstoka xwe bilîze, şanaz bû.|nivîskar=Sheymus Özzengin|sernav=Hunermend Zoro Metînî bi qasî hunerê xwe mezin e|url=https://krd.riataza.com/2019/07/11/hunermend-zoro-metini-bi-qasi-hunere-xwe-mezin-e/|malper=krd.riataza.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Bes ku min bidîta çavên '''awirtûj''' ên Gulistanê, bes ku min bidîta dek û dolabên JÎTEM’ê, bes ku min careka din bidîta hovitî, tenêtî, tunebûn û birçitî!|nivîskar=Omer Faruk Baran|sernav=Bila kes netirse, Xwedê jî gotiye ''Min Dît''!|url=https://diyarname.com/news.php?Idx=3349|malper=diyarname.com|sal=2010}} ==== Têkildar ==== * [[awir tûj bûn]] ==== Jê ==== * [[awirtûjî]] ==== Etîmolojî ==== Ji {{qertaf|ku|awir|tûj}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|şahin bakışlı}}, {{W-|tr|keskin bakışlı}}, {{W+|tr|çatık}} {{werger-bin}} gvqj0bcn60i3hrtofnrmv6mnyeba0ye 6328841 6328787 2026-08-11T00:41:23Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328841 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{ku-tewîn-rd|awirtûj}} {{rengdêr|ku}} # [[awirbaz]] #* {{jêder-pirtûk|ku|jêgirtin=Pîqabeke dîzel û reng kesk bû, yekî xurt '''awirtûj''' -bawer bikim, navê wî Şerîf bû- li ser direksiyonê rûniştibû.|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=81|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Zoro Metînî, bi hunermendîya xwe diltenik, wek mîrekî Kurd '''awirtûj''' û wek şervanekî rengan bêhn fireh, wek zarokekî ku bi lîstoka xwe bilîze, şanaz bû.|nivîskar=Sheymus Özzengin|sernav=Hunermend Zoro Metînî bi qasî hunerê xwe mezin e|url=https://krd.riataza.com/2019/07/11/hunermend-zoro-metini-bi-qasi-hunere-xwe-mezin-e/|malper=krd.riataza.com|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Bes ku min bidîta çavên '''awirtûj''' ên Gulistanê, bes ku min bidîta dek û dolabên JÎTEM’ê, bes ku min careka din bidîta hovitî, tenêtî, tunebûn û birçitî!|nivîskar=Omer Faruk Baran|sernav=Bila kes netirse, Xwedê jî gotiye ''Min Dît''!|url=https://diyarname.com/news.php?Idx=3349|malper=diyarname.com|sal=2010}} ==== Jê ==== * [[awirtûjî]] ==== Têkildar ==== * [[awir tûj bûn]] ==== Etîmolojî ==== Ji {{qertaf|ku|awir|tûj}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|şahin bakışlı}}, {{W-|tr|keskin bakışlı}}, {{W+|tr|çatık}} {{werger-bin}} hz2ofk3k9m2ck63oe3wwiukc9rx0zil awirtûjî 0 846193 6328788 6297366 2026-08-11T00:26:40Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328788 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[rewş|Rewşa]] [[awirtûj]]bûnê. #* {{jêder-malper|ku|jêgirtin='''Awirtûjî''' û xwînrijiya çavên te ên nêrgizî, dem kir wek serdema Cengîz Xan ê cengbaz û êrîşkar.|nivîskar=Welat Agirî|sernav=Dîroknasiya Melayê Cizîrî|url=https://krd.riataza.com/2017/08/25/diroknasiya-melaye-ciziri/|malper=krd.riataza.com|sal=2017}} #* {{jêder-malper|ku|jêgirtin=Ez xebatên xwe yên hunerî bu ruhekî amatorî û li gor armancekê bi rê ve dibim. Li gor min, divê siyaset ne bi cidiyeteke '''awirtûjî''' be; divê karê ku tu dikî cidî bikî.|nivîskar=Hayri Demir|sernav=Demîrtaş pirsên me bersivandin: Moralê me baş e, em bihêz in û natirsin|url=http://www.dipanel.ovh/kr/POLITIKA/content/view/22909?page=14|malper=dipanel.ovh|sal=2017}} #* {{jêder-kovar|ku|jêgirtin=Di gel hemerengiya çavan, '''awirtûjî''' û çurisîna di çavên Seyda de, di yê Keyo de nabînim.|kovar=Agirî|sernav=KUMBEDÊ GERDÛN İM EZ|url=https://ia903101.us.archive.org/21/items/agiri_074/agiri_074.pdf|nivîskar=Arjen Arî|hejmar=74|sal=2007|rûpel=10}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{paş|ku|awirtûj|-î}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} 3pxia18jla5fgcxzalajgid9vylfxpc bîter bûn 0 846250 6328824 6196327 2026-08-11T00:31:37Z Balyozbot 7867 /* Lêker */ sererastkirin 6328824 wikitext text/x-wiki {{binêre navdêr|bîterbûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|bîter bûn|form=negerguhêz|niha=b|borî=bû|pêşgir=bîter|valahî=erê}} {{lêker|ku|c=h-ngh}} # [[peyde bûn]], [[dabîn bûn]], [[ray bûn]] #* {{jêder-pirtûk|ku|jêgirtin=Gelek caran dengê şerên wan dihat, li hev didan, li jinên xwe didan. Lêdaneke sosret. Çar heb bira bûn, ne dihatin dawetekê, ne li şînekê '''bîter dibûn'''.|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=83|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Bajarê Kela Dimdimê mîna bajarên qedîmî yên mayîn ew qas ne mezin bû, lê ev bajar jî êdî bûbû bajarekî mezin û her tişt tê de '''bîter dibû'''.|nivîskar=Takî Çîftsuren|sernav=Dimdim: Romana mêran û mêranîyê|url=https://www.gazeteduvar.com.tr/kitap/2020/07/22/dimdim-romana-meran-u-meraniye/|malper=gazeteduvar.com.tr|sal=2020}} #* {{jêder-malper|ku|jêgirtin=Hebû tunebû, rehmet li dê û bavê hazir û guhdaran û bi tevê pepûk û xîzanan, ji xeynê dizên xiyaran be. Di dewr û zemanekê de padişahek hebûye. Rojekê derdek lê '''bîter dibe'''. Çiqas hekîm û lokmanê wî welatî hene tînin ser, lê tu kesek ji derdê wî re çareyek nabîne.|nivîskar=Yasemîn Elban|sernav=Henek jî bi kurdî xweş in|url=https://krd.riataza.com/2017/12/31/henek-ji-bi-kurdi-xwes/|malper=riataza.com|sal=2017}} ==== Etîmolojî ==== Ji {{heve|ku|bîter|bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|bulunmak}}, {{W+|tr|sağlanmak}}, {{W-|tr|temin edilmek}} {{werger-bin}} a4e420z5olo90ibb4d11fuf2ldcxdhu kemame 0 846291 6329005 6309851 2026-08-11T11:51:57Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329005 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:A surgical mask (2017).jpg|thumb|Kemame]] {{navdêr|ku|z=m}} # Maskeyên xelik an jî [[nojdar]] [[danîn|didanin]] ber [[dev]] û [[difin]]a xwe ji bo [[xweparastin]]ê. #* {{jêder-malper|ku|jêgirtin=Beşîr wiha berdewam kir: "Ez bi xwe tevahiya perspektîvan tînim cih. piştî belavkirina madeyên xwarinê ez vedigerim mal. Tevî ku '''kemame''' û lepikan bikar tînim. Ez bang li şêniyan dikim ku tenê ji bo pêwîstiyan ji mal derkevin."|sernav=Şêniyên Helebê: Xweparastin bi hezar carî ji dermankirinê çêtir e|url=https://hawarnews.com/kr/haber/sniyn-heleb-xweparastin-bi-hezar-car-ji-dermankirin-ctir-e-h29723.html%C5%9E%C3%AAniy%C3%AAn?fbclid=IwAR3XtUAyIA8v8eRd5dJr8gnZoU24RB0jN-RSjKVoIVtFD1s8V50ZCLOtFdw|malper=hawarnews.com|sal=2020}} #* {{jêder-malper|ku|jêgirtin={{ku-Arab|ل ژێر ناڤێ (ئەرێ چەند جورێن کەمامان هەنە ؟) کارەکێ ڤیدیویى هاتیە ئامادەکرن ژبوى ساخلەمیا گشتى و خەلک بزانیت چ جورە '''کەمامە''' بکاربینیت و ل چ دەم بکاربینیت ژلایێ قوتابیێ پشکا کارگێرى تەندروستى ئەیهان سامى}}|url=https://www.dpu.edu.krd/page/ku/3492/|malper=dpu.edu.krd}} #*: ''Li jêr navê (erê çend curên kemaman hene?) Karmekî vîdîwîyî hatîye amadekirin ji boy saxlema giştî û xalek bizanît çi cure kemame bi kar bînît û li çi dem bi kar bînît ji alîy kutabîy pişka kargêrî tendirustî eyman samî.'' ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Hevmane ==== * [[rûpoş]] * [[mask]] * [[demamik]] ==== Têkildar ==== * [[nojdarî]] ==== Etîmolojî ==== Ji {{deyn|ckb|ku|کەمامە}} ji {{ji|ar|ku|الكمامة}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|facemask}} * {{Z|tr}}: {{W|tr|maske}} {{werger-bin}} mb6uqmht60hra4zjv75nci3bmb4lwvx çirçirandin 0 855588 6328891 6153528 2026-08-11T11:24:57Z Balyozbot 7867 /* Lêker */ sererastkirin 6328891 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|çirçirandin|form=gerguhêz|niha=çirçirîn|borî=çirçirand}} {{lêker|ku|c=h-gh}} # [[çirandin]] #* {{jêder-malper|ku|jêgirtin=Di vî warî de bi xwe gelek pêşniyarên min hebûn. Min ji wan re gelek pêşniyar kirin, min hewl da, min xwe '''çirçirand''' lê mixabin çênebû. Lê tiştê ku ez dibêjim tiştekî gelekî dîrokî û berfireh e.|nivîskar=Kawa Nemir|sernav=Kawa Nemir: Em tenê behsa ezberên xwe dikin|url=https://mevlutoguz.tumblr.com/post/175690109600/kawa-nemir-em-ten%C3%AA-behsa-ezber%C3%AAn-xwe-dikin|malper=mevlutoguz.tumblr.com|sal=2018}} ==== Werger ==== {{werger-ser}} * {{Z|fi}}: {{W+|fi|hienostella}} * {{Z|tr}}: {{W+|tr|abartmak}}, {{W+|tr|yırtmak}} {{werger-bin}} {{bend}} === Navdêr === {{navdêr|ku|z=m}} # [[çirandin]] ==== Werger ==== {{werger-ser}} * {{Z|tr}}: {{W+|tr|abartma}}, {{W+|tr|yırtma}} {{werger-bin}} tevrb5bekp8tf56qk4uylcpw78qpi7p avatir 0 855622 6328784 6196394 2026-08-11T00:26:19Z Balyozbot 7867 /* Hevok */ sererastkirin 6328784 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hevok === {{hevok|ku}} # Bersiva ku yek didê wextê ku kesek ji yekî re dibêje ''[[mala te ava]]!''. #* {{jêder-malper|ku|jêgirtin=Zana Farqînî, gelek spas ji bo bersivdayîna pirsan. Mala te ava..!<br>'''Avatir'''!|nivîskar=SALIHĘ KEVIRBIRÎ|sernav=Xwediyê Ferhenga Kurdî-Tirkî ya ji 166 hezar peyvî pêk tê Zana Farqînî: "Nêçîrvaniya Peyvan hiseke xweş li min peyda dike!"|url=http://www.oocities.org/mehname2004/54/diyari1.html|malper=oocities.org|sal=2004}} #* {{jêder-malper|ku|jêgirtin=-Belê… Ez gelek kêfxweş bûm bi sohbeta me… Mala te ava…<br>Ş.F.: Ez jî… A te '''avatir'''… Ez jî pirr kêfxweş bûm ku min hûn nas kirin, ez hatim ciyê we dît.|nivîskar=Şêxo Fîlîk|sernav=Şêxo Fîlîk: Nivîsandin ne tenê dilrehetkirin an jî derbirînek e.|url=https://inanolo.blogspot.com/2016/03/|malper=inanolo.blogspot.com|sal=2016}} #* {{jêder-kovar|ku|jêgirtin=Zor spas ezbenî, mala te hezar caran ava be!<br>'''Avatir''' Salihê birazî, tu li ser herdu çavê min hatî...|kovar=POPKURD|sernav=DENGBÊJ ZAHIRO: DENGBÊJIYA BERÊ NEMAYE!|url=https://popkurd.wordpress.com/2018/09/12/popkurd-2/|nivîskar=Salihê Kevirbirî|hejmar=2|sal=2018|rûpel=27}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Formeke rengdêrê === {{rengdêr|ku|form=erê}} # {{komparatîv|ku|ava}} qmccr56oz1qbj5i8uy0wrbl4h9bn2qx hûtê heftserî 0 862880 6328990 6196412 2026-08-11T11:51:23Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328990 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{f|ku|mîtolojiya kurdî}} [[cinawir|Cinawirekî]]/ê mezin di [[çîrok]]ên [[kurdî]] yên [[gelerî]] de. #* {{jêder-malper|ku|jêgirtin='''Hûta heftserî''' ji xewê radibe, çavsor dibe û dibêje bêhna merivan tê. Hût dike ufe uff û kufe kuffa wê, radibe bi dû qîzikê dikeve.|nivîskar=Mordem Zel|sernav=Qîzika Sêwî Û Hûta Heftserî|url=http://candname.com/qizika-sewi-u-huta-heftseri/|malper=candname.com|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Surreyalîzim di asta xwe ya herî bilind de çîrokên me yên gelêrî de rû dide. Weke mînak, ew '''hûtê heftserî''' yê ku di çîrokên pîrik û kalikên me de fîgûrekî surreyale.|nivîskar=ivîsandin li ba min encama şewata rih e|sernav=Helîm Yûsiv|url=https://diyarname.com/news.php?Idx=2200|malper=diyarname.com|sal=2009}} #* {{jêder-malper|ku|jêgirtin=Erdogan bûye cinawir, bûye '''hûtekî heftserî''', kî derdikeve ber dixwe; dide girtin, ji kar davêje.|nivîskar=Zinarê Xamo|sernav=Erdogan bûye hûtê heftserî|url=http://zinarexamo.blogspot.com/2016/07/erdogan-buye-hute-heftseri.html|malper=zinarexamo.blogspot.com|sal=2016}} ==== Têkildar ==== * [[gurê manco]] * [[Teyrê Ecelê]] * [[Xalê Gurgur]] ==== Etîmolojî ==== [[hût]] + [[-ê]] [[heft]] + [[ser]] + [[-î]] ==== Werger ==== {{werger-ser}} {{werger-bin}} 94504785dp96fqd6rzj6tz67r5w3pcu ji guhê şeytên ketin 0 863141 6328998 6196413 2026-08-11T11:51:40Z Balyozbot 7867 /* Biwêj */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328998 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Biwêj === {{biwêj|ku}} # {{f|ku|Amûdê}} ji bo wan kesên ku [[têra xwe heye|têra xwe hene]], zîrek in, [[guhên (yekî) livîn|guhê wî dilivin]] û zêde şeytaniyan dike tê gotin #* {{jêder-malper|ku|jêgirtin=Yabo Amûdî '''ji guhê şeytên ketine'''.|nivîskar=Rupela.Qamislo|sernav=Yabo Amûdî ji Guhê şeytên ketine|url=https://www.facebook.com/Rupela.Qamislo/posts/1441618085994745|malper=facebook.com|sal=2019}} ==== Werger ==== {{werger-ser}} {{werger-bin}} jolkrjk5mfnfc9wfq4ubzsyvgfnyu0g ajobarî 0 871957 6328771 6296347 2026-08-11T00:24:59Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328771 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[rewş|Rewşa]] [[ajobar]]bûnê # ''([[leşkerî]], [[moşek]])'' kontrolbarî, moşekên ku [[karîn|dikarin]] bên kontrolkirin an alîkirin #* {{jêder-malper|ku|jêgirtin=TOS-1A, şiklê nûjenkirina pergala TOS-1 Buratino ye, ku di sala 1995an de ji bo artêşê hat radestkirin. Şiklê dawiyê yê pergala termobarîk, bi pergala firandinê ya pêşketî û '''ajobariya''' otomatîk hatiye teçhîzatkirin. Wek muhîmat moşekên bêajobarî yên giran tên bikaranîn.|sernav=Buratinoya' nû|url=https://vid1.ria.ru/ig/sip/uvzs/uvz-ch1-mobile-ku/|malper=vid1.ria.ru}} #: ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[bêajobarî]] ==== Etîmolojî ==== Ji {{paş|ku|ajobar|-î}} ==== Werger ==== {{werger-ser||1}} * {{Z|en}}: {{W+|en|driveability}}, {{W+|en|rideability}}, {{W+|en|drivability}}, {{W+|en|spreadability}}, {{W+|en|arability}} * {{Z|tr}}: {{W-|tr|sürülebilirlik}} {{werger-bin}} {{werger-ser||2}} * {{Z|en}}: {{W+|en|guidance}} * {{Z|tr}}: {{W+|tr|güdüm}}<ref>{{Zana Farqînî|r=33}}</ref> {{werger-bin}} === Rengdêr === {{ku-tewîn-rd|ajobarî}} {{rengdêr|ku}} # ''([[leşkerî]], [[moşek]])'' [[kontrolbar]], fuzeyên ku dikarin bêne alîkirin, kontrolkirin, birêvebirin #* {{jêder-malper|ku|jêgirtin=Fuzeyên '''ajobarî''' yên di destê ASAyê de li dijî wesayîtên leşkerî û armancên din ên leşkerî têne bikaranîn ku di destê ASAyê de hene.|sernav=Artêşa Azad bi fuzeyên ajobarî êrîşî mîlîsên rûsî kir|url=http://www.peyamakurd.com/kurmanci/Cîhan/suriye-artesa-azad-bi-fuzeyen-ajobari-erisi-milisen-rusi-kir|malper=peyamakurd.com|sal=2019}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|guided}} * {{Z|tr}}: {{W+|tr|güdümlü}} {{werger-bin}} === Çavkanî === {{çavkanî}} mp1yu5mrxlp54fp6k8pddvjatxyx0hp ketin heyrê 0 872799 6329013 6290377 2026-08-11T11:52:14Z Balyozbot 7867 /* Lêker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329013 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=b-ngh}} # {{mane?|ku}} #* {{jêder-pirtûk|ku|jêgirtin=Bavê rebên serê zeviyê tirpan kişandiye tî, betilî hêviya avê b»ye. Lê zarok qet '''neketiye heyrê'''. Ji xwe re leyîstiye heya Xwedê ew kiriye kevir li vir daniye.|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=84|isbn=978-605-5585-41-9}} #* {{jêder-malper|ku|jêgirtin=Baş e, eze ji Penvîz re niviştek çekim ku guleyen çekan ber bi wî ve neyen, heke ben jî bi saya nivişte we cîde bibin xwelî. Le, tişteke din hey e… Ez gavek bere ketim mitale û '''ketim heyra''' vî tiştî.|sernav=ÇÎROKA ÎMAM Û PERWÎZ|url=https://kurdologbeg.wordpress.com/2019/08/22/ciroka-imam-u-perwiz/|malper=kurdologbeg.wordpress.com|sal=2019}} #* {{jêder-pirtûk|ku|jêgirtin=Ji min ne hat car din berhev bikim bixim tûrik<br>Ez '''ketim heyra''' bêçariyê<br>Dotên gundê ma hatin<br>Li galgal û gotinan civiyan<br>Yek bi yek dane hev û keniyan|nivîskar=Medeni ferho|sernav=Hey Gerîlla|url=http://www.arsivakurd.org/images/arsiva_kurd/pirtuk/pirtuken_kurdi/medeni_ferho/hey_gerilla.pdf|weşanxane=weşanên ABeCe|sal=1994|rûpel=70}} ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W|fr|être désarmé}},<ref name="kurmanci31">{{kovar|kovar=Kurmancî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku31.pdf|sernav=Peyvên Stranên folklorî|nivîskar=M. Emîn NAROZÎ|hejmar=31|sal=2002|rûpel=6|ziman=ku}}</ref> {{W|fr|ne pas savoir quoi faire}}<ref name="kurmanci31" /> * {{Z|en}}: {{W|en|be disarmed}},<ref name="kurmanci31" /> {{W|en|not to know what to do}}<ref name="kurmanci31" /> * {{Z|tr}}: {{W|tr|ne yapacağını bilmemek}},<ref name="kurmanci31" /> {{W|tr|çaresiz olmak}}<ref name="kurmanci31" /> {{werger-bin}} === Çavkanî === {{çavkanî}} gfabw5l6rdu32bvhq5fzu9126s9wvk6 hişkalav 0 872800 6328986 6308795 2026-08-11T11:51:14Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328986 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|kompûternasî}} [[qet|Qetên]] [[kombers]]an. #* {{jêder-malper|ku|jêgirtin=Gava vedibe wekî pergala xebatê ya Wîndowsê vedibe, ji ber ku gelekî tiştên li ser wîndowsê jê derxistine û çend tiştên biçûk lê bar kirine lewma '''hişkalavekî''' xurt hewce nake û dixebite. 2GB RAM jê re bes e.|nivîskar=Rûsipî|sernav=Hiren's BootCD PE (Ji bo Kombersê Çenteyê Rewşa Lezgîn)|url=https://teknist.xyz/page/view-post?id=24|malper=teknist.xyz|sal=2019}} #* {{jêder-malper|ku|jêgirtin=Pc Medik ji bo çareserkirina pirsgirêkên '''hişkalav''' û bernameyan eyarên kompîtura we vediherîne…|sernav=Veherîner-Regstry|url=https://bernamegeh.wordpress.com/category/regstry/|malper=bernamegeh.wordpress.com}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Dijmane ==== * [[nermalav]] ==== Etîmolojî ==== Ji {{pêk|ku|hişk|alav}}. {{yekser|en|ku|hardware}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Hardware|m}} * {{Z|az}}: {{W|az|aparat təminatı}}, {{W|az|avadanlıq}} * {{Z|be}}: {{W|be|апаратнае забеспячэнне}}, {{W|be|абсталяванне}} * {{Z|bn}}: {{W|bn|হার্ডওয়্যার}} * {{Z|bg}}: {{W|bg|хардуер|n}} * {{Z|cs}}: {{W|cs|hardware|n}} * {{Z|da}}: {{W|da|hardware}} * {{Z|id}}: {{W|id|perangkat keras}}, {{W|id|peranti keras}}, {{W|id|peralatan}} * {{Z|eo}}: {{W|eo|aparataro}} * {{Z|fa}}: {{W|fa|سخت‌افزار}} * {{Z|fi}}: {{W|fi|laitteisto}}, {{W|fi|hardware}}, {{W|fi|rauta}}, {{W|fi|hardis}} * {{Z|fr}}: {{W|fr|matériel|n}} * {{Z|gd}}: {{W|gd|bathar-cruaidh|n}} * {{Z|hi}}: {{W|hi|हार्डवेयर|n}} * {{Z|nl}}: {{W|nl|hardware}} * {{Z|io}}: {{W|io|hardwaro}}, {{W|io|aparataro}} * {{Z|en}}: {{W|en|hardware}} * {{Z|ga}}: {{W|ga|crua-earraí}} * {{Z|it}}: {{W|it|hardware|n}} * {{Z|ja}}: {{W|ja|ハードウェア}}, {{W|ja|ハード}} * {{Z|jv}}: {{W|jv|ꦥꦶꦫꦤ꧀ꦠꦶ ꦏꦱꦂ}} * {{Z|yue}}: {{W|yue|硬件}} * {{Z|ca}}: {{W|ca|maquinari|n}} * {{Z|ko}}: {{W|ko|하드웨어}}, {{W|ko|굳은모}} * {{Z|lv}}: {{W|lv|aparatūra}} * {{Z|lt}}: {{W|lt|aparatūra}}, {{W|lt|techninė įranga}}, {{W|lt|aparatinė įranga}} * {{Z|ms}}: {{W|ms|perkakasan}} * {{Z|mt}}: {{W|mt|ħardwer|n}} * {{Z|cmn}}: {{W|cmn|硬件}}, {{W|cmn|硬體}}, {{W|cmn|硬体}}, {{W|cmn|硬設備}}, {{W|cmn|硬设备}} * {{Z|mi}}: {{W|mi|pūmārō }} * {{Z|hu}}: {{W|hu|hardver}} * {{Z|nan}}: {{W|nan|硬體}}, {{W|nan|硬体}} * {{Z|nrf}}: {{W|nrf|hardware|n}} * {{Z|no}}: {{W|no|maskinvare|n}} * {{Z|uz}}: {{W|uz|apparat taʻminot}} * {{Z|pl}}: {{W|pl|sprzęt|n}} * {{Z|pt}}: {{W|pt|hardware|n}} * {{Z|ro}}: {{W|ro|hardware}}, {{W|ro|aparatură|m}}, {{W|ro|aparataj}} * {{Z|ru}}: {{W|ru|аппарату́ра|m}}, {{W|ru|хардве́р|n}}, {{W|ru|аппара́тное обеспече́ние}}, {{W|ru|обору́дование}} * {{Z|sh}}: {{W|sh|чврстовље}}, {{W|sh|тврдовље}}, {{W|sh|стројевина}}, {{W|sh|тврдотворина}}, {{W|sh|скло̏по̄вље}}, {{W|sh|ха̏рдве̄р|n}}, {{W|sh|рачунална склоповска подршка|m}}, {{W|sh|стројна опрема|m}}, {{W|sh|čvrstovlje}}, {{W|sh|tvrdovlje}}, {{W|sh|strojevina}}, {{W|sh|tvrdotvorina}}, {{W|sh|sklȍpōvlje}}, {{W|sh|hȁrdvēr|n}}, {{W|sh|računalna sklopovska podrška|m}}, {{W|sh|strojna oprema|m}} * {{Z|es}}: {{W|es|hardware|n}}, {{W|es|soporte físico|n}} * {{Z|sv}}: {{W|sv|hårdvara}}, {{W|sv|maskinvara}} * {{Z|th}}: {{W|th|ฮาร์ดแวร์}} * {{Z|tr}}: {{W|tr|donanım}}<ref>{{pirtûk|nivîskar=Komîsyon|sernav=FERHENGA ZARAVÊN TEKNÎKÎ: Ferhenga Kurdî-Tirkî-Îngilîzî ya Teknîkî|sal=2014|rûpel=62|isbn=9786050106213|ziman=ku}}</ref> * {{Z|tk}}: {{W|tk|apparat üpjünçiligi}} * {{Z|uk}}: {{W|uk|апаратне забезпечення}} * {{Z|vi}}: {{W|vi|cương liệu}}, {{W|vi|phần cứng}}, {{W|vi|phần máy}} * {{Z|el}}: {{W|el|υλισμικό}}{{werger-bin}} === Çavkanî === {{çavkanî}} lht5d0ynynqhqye0uzu7bgne9lr3ylv manaş 0 872840 6329048 6311608 2026-08-11T11:53:30Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329048 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[qad]], [[meydan]] #: '''''Manaşa''' hespan'' #* {{jêder-malper|ku|jêgirtin=Min bi xwe di zarokatiya xwe de, bi çavê serê xwe ev rewişt dîtin bê çawa lingê xort, mêr, navsere û pîrên gundiyan, li '''manaşa''' gundî, li ber çavê jin zarok û keçên qerd, berjor dikirin, dixistin darê feleqeya bav û kalên xwe, bi quretiyeke nemrûdane, şelpinî dihanîn ji binê piyê wan, orînî ji binê kezeba wan.|nivîskar=Hesenê Metê|sernav=NÎŞANEKE VEJÎNA EDEBIYATA KURDÎ|url=http://www.angelfire.com/journal2/mehname/hejmar43/nirxandin1.html|malper=angelfire.com}} #* {{jêder-kovar|ku|jêgirtin=Piştî derketina berhemên mîna roman, hîkaye, helbest, novel, rojnivîsk û cerîbînan, cûreyên metnên zanistî û akademîk ên mîna meqale û lêkolînan jî bere bere derdikevin '''manaşa''' ronahiyê. |kovar=Nûpelda|sernav=Vercacêkerdena Gramerê Zazakî û Kurmancî|url=https://www.kurdipedia.org/files/relatedfiles/2016/97457/0022.PDF?ver=131225476227574547|nivîskar=Ayhan Meretowar|hejmar=22|sal=2016|rûpel=28}} #* {{jêder-malper|ku|jêgirtin=Hin aliyên ergenekonî û nîjadperest, di '''manaşê''' de sekinîne û li pey lawazbûna Erdogan in.|nivîskar=Fehim IŞIK|sernav=HILBIJARTIN JÎ, ŞER JÎ LI BER DERÎ NE|url=http://rojnameyanewroz2.com/hilbijartin-ji-ser-ji-li-ber-deri-ne-12405.html|malper=rojnameyanewroz2.com/|sal=2017}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W|en|square}}, {{W|en|maidan}}, {{W|en|arena}}, {{W|en|place}} * {{Z|tr}}: {{W|tr|meydan}}, {{W|tr|alan}} {{werger-bin}} tbr6c666d2x6ohcasoditc5x9zzmmdw dirgan 0 872845 6328932 6305411 2026-08-11T11:43:18Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328932 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:CompostBinTube wb.jpg|thumb|150px|'''Dirganek''']] {{navdêr|ku|z=m}} # Amûrek wek merran lê devtilî ye ku pê kewş tê hevdan û tê avêtin patozê. #* {{jêder-pirtûk|ku|jêgirtin=Torbe bir û danî ber derî, zivirî hat. Dîsa '''dirgan''' xwe da dest xwe nola qet ez ne li wê derê bim dest bi xebata xwe kir.|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=8|isbn=978-605-5585-41-9}} #* {{jêder-pirtûk|ku|jêgirtin=Hildan das û kêlendî<br>Hildan '''dirgan''' û tevnî<br>Hildan mêkut, hildan stûn<br>Li bestekê berev bûn|nivîskar=Têmûrê Xelîl|sernav=Antolojiya 35 Helbestvan û Nivîskarên Kurd ên Sovyeta Berê|weşanxane=Na yayinlari|sal=2014|rûpel=210|isbn=9786059017039}} #* {{jêder-malper|ku|jêgirtin=Peyva ”milêb”ê, 10 navên xwe yên cuda hene. Wek mînak: sêgulî, milêb, milhêb, şene, '''dirgan''', sêtilî, duguh, çitel, pêçok, neperûşk.|nivîskar=Zeynulabidîn Zinar|sernav=DILQÊ MEDRESEYA KURDÎ DI WÊJEYA KURDÎ DE – 7|url=http://buyerpress.com/kurdi/?p=13965|malper=buyerpress.com|sal=2018}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Hevmane ==== * [[milêb]] ==== Etîmolojî ==== Ji {{ji|el}} {{g|el|δικράνι}} <small>'''Çavkanî:''' {{kovar|kovar=Kurmancî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku49.pdf|sernav=Peyvên yûnanî di kurdî de|nivîskar=Rojda AZÎZOGLU|hejmar=49|sal=2011|rûpel=3|ziman=ku}}</small> ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W|fr|fourche}}<ref name="kurmanci49">{{kovar|kovar=Kurmancî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku49.pdf|sernav=Peyvên yûnanî di kurdî de|nivîskar=Rojda AZÎZOGLU|hejmar=49|sal=2011|rûpel=3|ziman=ku}}</ref> * {{Z|en}}: {{W|en|hayfork}},<ref name="kurmanci49" /> {{W|en|pitchfork}}<ref name="kurmanci49" /> * {{Z|tr}}: {{W|tr|dirgen}}<ref name="kurmanci49" /> {{werger-bin}} === Çavkanî === {{çavkanî}} 41a6ikq7kba84xokta9m0hk6w67qpup barebar kirin 0 872894 6328795 6196442 2026-08-11T00:27:22Z Balyozbot 7867 /* Lêker */ sererastkirin 6328795 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|barebar kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=barebar|valahî=erê}} {{lêker|ku|c=h-gh}} # Bi awayekî qebe û nexweş deng derxistin, qîrîn #* {{jêder-malper|ku|jêgirtin=Luigi ji Yehowa re dua kir ku ew alî wî bike ku ew kontrola xwe winda neke. Luigi dixwest wî sakîn bike, lê nafîle bû. Piştî ku Luigi melûmatên sîgortaya wî nivîsî, zilam hê '''barebar dikir''', û Luigi jî çû.|sernav=Xwegirtin – Sifateke Muhîm|url=https://www.jw.org/kmr-x-rd/kitebxane/kovar/birca-cavderiye-capa-lekoline-ilon-2017/xwegirtin/|malper=jw.org}} #* {{jêder-malper|ku|jêgirtin=Erbeqan di hilbijartinan da li kuçe û kolanan digerîya û '''barebar dikir''':<br>-Nimêj stûna olî û cîhad jî zîrwa wê ye! Em sîyaset nakin, em bi cîhadê mijûl in!|sernav=Hûn hemû zindîq in!|url=https://pasabrodrej.blogspot.com/2019/01/hun-hemu-zindiq-in.html|malper=pasabrodrej.blogspot.com|sal=2019}} ==== Etîmolojî ==== Ji {{heve|ku|barebar|kirin}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} 0rt8t9qloglm23hpbv5mp67idrbh7z6 Gotûbêj:lêgerk 1 872927 6329044 5020763 2026-08-11T11:53:22Z Balyozbot 7867 /* Jêgirtin */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329044 wikitext text/x-wiki {{r|Balyozxane}} Te çima agahdarîyê jê bir? -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 17:09, 29 tebax 2020 (UTC) :{{r|Guherto}} Ne hewce ye. 3 çavkanî heye loma peyveke kurdî ye. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 17:10, 29 tebax 2020 (UTC) ::Ez ê serê xwe xwim. -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 17:11, 29 tebax 2020 (UTC) :::Çawa? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 17:13, 29 tebax 2020 (UTC) ::::Yanî ez ji vî tîştî eciz im. Ez weke we nafikirim li ser kurdîtîya peyvên çêkirî û yên înglîzî ku jixwe kurdîya wan hene. -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 17:15, 29 tebax 2020 (UTC) ::::: {{r|Guherto}} Pismam ez jî weke te difikirim ji bo peyvên rûniştî. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 17:18, 29 tebax 2020 (UTC) :::::: {{r|Guherto}} Lêbelê ev yek jî heye ku mîsalen yek nivîsek dixwîne û leqayî vê peyvê dibe, maneya wê pê dernaxe û li ferhengan dinêre. Çavkaniya vê peyvê jî heye, hema bila li vir bimîne çi zerera vê heye qey. Yanî ger bêjî ev peyv ji bo peyvekî din jî dikare were bikaranîn, an maneyeke vê yê din jî heye, wê jî wek maneya duyem tevlî bike, lê divê ji bo wê maneyê jî çavkanî hebin. Û ger peyvên li ser Wîkîferhengê pir pir zêde bibin û tevlîhev bibin, an peyvên kêmçavkanî pir zêde bibin, em dikarin pîvekên tevlîkirinê biguherînin û krîteran bilind bikin, mîsalen bêjin ku ''"5 çavkaniyên înternetî wek yek çavkaniyek pêbawer tê hesabê û divê ji bo her peyvê bi kêmanî 3 çavkaniyên cuda ên pêbawer hebin."'' Yanî bi vê yekê ewqasî aciz nebe, ev pîvek di demên pêş de ku hewce bû helbet wê biguherin jî. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 17:43, 29 tebax 2020 (UTC) :::::::{{r|Bikarhêner}} Ez ne xwestibûm jê bibim, min tenê agahdarîyek lê zêde kir ku ev peyv di zimanê kurdî de nîne û tenê ji bonî yek malper hatîye bikaranîn (wa vê peyvê çêkirîye), lê hêjayê [[Bikarhêner:Balyozxane|Balyozxane]] agahdarîyê jê bir. -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 17:54, 29 tebax 2020 (UTC) == Jêbirin == {{r|Bikarhêner|Guherto|Ghybu}} Bi ya min ev peyv li gorî [[Wîkîferheng:Pîvekên tevlîkirinê]] ne derbasdar e. Divê were jêbirin ji ber ku hemû çavkanî anonîm in, nivîskarê wan ne diyar e. Fikrê we? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 17:21, 17 îlon 2020 (UTC) :Tu fikirê min dizanî :) Kêfxweş bûm ku tu weke min difikirê. (Min gotibû "ez ne xwestibûm jê bibim" ji ber ku ez xwestibanim jê bibim jî hûnê gotibanin "çavkanî heye". Di rastîyê de ez dixwestim jê bibim lê guhertina min ne bi daxwaza jêbirinê hatibû çêkirin.) -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 17:22, 17 îlon 2020 (UTC) ::Na, zimanî kurdî tenê nivîskar çênakin, gela kurdî (civak) çêdike; facebook, twitter û malperên teknîkî jî pencereyeke li ser civaka kurdî ne. Li vira pirsgirêk ew peyv di nav civaka kurdî de tê bikaranîn an na? Ji bo peyvên teknîkî jî malperên teknîkî bi min çavkaniyeke baş e.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 17 îlon 2020 (UTC) :::Li ser wikiya fransî van şablonan çêkirine: [[:fr:Catégorie:Modèles de fréquence]], [[:en:hapax_legomenon#English]]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]], ...) 22:24, 17 îlon 2020 (UTC) ::::{{r|Ghybu}} Li vir [https://fr.wiktionary.org/wiki/Wiktionnaire:Critères_d’acceptabilité_des_entrées] translate: [https://translate.googleusercontent.com/translate_c?depth=1&pto=aue&rurl=translate.google.com&sl=fr&sp=nmt4&tl=en&u=https://fr.wiktionary.org/wiki/Wiktionnaire:Crit%25C3%25A8res_d%25E2%2580%2599acceptabilit%25C3%25A9_des_entr%25C3%25A9es&usg=ALkJrhi9PifQvqQtTHzCt5UOPRp1Avp6cg#Quand_un_mot_fait-il_partie_d%E2%80%99une_langue_?] behsa attestion/çavkaniyan dikin lê çend çavkanî hewce ye, çavkanî divê li gor çi be behsa van nakin. Li gorî çi em ê nadîr/gelek nadîr bi kar bînin min fêm nekir. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 22:55, 17 îlon 2020 (UTC) :::::{{r|Bikarhêner}} ''Li gorî çi em ê nadîr/gelek nadîr bi kar bînin min fêm nekir.'' Li gorî hejmera çavkaniyan ku tên dîtin :) Herwiha ew ji bo peyvên ku ''gelek nadîr'' (hapax: çavkaniyek) in tenê peyvên ku bi nivîskarên navdaran hatine bikaranîn qebûl dikin.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:08, 19 îlon 2020 (UTC) :{{r|Ghybu}} Misal peyva [[bîrkok]] tenê ji hêla Mehmed Uzun ve hatiye bikaranîn, ti çavkaniyên din tune ye, Zana Farqînî jî di nivîseke xwe de dibêje min ew peyv nexist ferhenga xwe. Li gor rêbaznameya niha divê jê bibin. Lê Mehmed Uzun jî pir navdar e. Bi ya min em nadir/gelek nadir piştî attestionê bi kar bînin. Misal [[bastannas]] gelek kêm tê bikaranîn lê peyitandî ye. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 01:14, 19 îlon 2020 (UTC) ::Erê {{=)}}--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:21, 19 îlon 2020 (UTC) :::Erê lê lêgerk nepeyitandî ye loma jêbirin hewce ye {{=D}} --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 01:24, 19 îlon 2020 (UTC) ::::Mixabin, erê {{bêhêvî}}. Li gorî te {{w|Egerin}} çavkaniyek baş nîne?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 01:27, 19 îlon 2020 (UTC) :::::{{r|Ghybu}} Pirsgirêk ne ew e. Tenê 3 çavkanî hene û her sê jî ji nivîskarên anonîm in. Yek ji van jî Facebookê û ew jî qet nayê hesibandin. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 02:43, 19 îlon 2020 (UTC) :::::: {{r|Balyozxane}} Pismam malpera ''teknistan.com-ê'' ne malperekî anonîm e. Di nivîsan de beşa ''author'' jî heye. Ji xeynî wî bi min anonîmbûn ji bo malperên wekî Facebookê filan derbasdar e, lê di teknistan.com-ê de nivîsên bêkalîte tinebûn. Ev yek ji bo malpera din jî derbasdar e. Awayê din wê ji bo malperên hêja neheqî bibe. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 06:40, 19 îlon 2020 (UTC) :::::: {{r|Bikarhêner}} Bira, tê de jî nivîskar nehatiye nivîsîn.--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 10:29, 19 îlon 2020 (UTC) {{r|Balyozxane|Ghybu}} Ew jî hew wê peyva pûç bi kar tînin, li malpera wan binerin, [https://bianet.org/kurdi/zanisti/232977-kawa-onatli-egerin-dixwaze-bibe-navend-u-platforma-interneta-kurdi li vir binerin]. Ber werê jêbirin :) -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 16:55, 5 kanûna pêşîn 2020 (UTC) :Çima bersivê nadin :( -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 20:34, 7 kanûna pêşîn 2020 (UTC) :Peyvekê çêkirin, ti kesî fêm nekir, dev jê qeran. Ma ev ne mimkin e? -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 20:36, 7 kanûna pêşîn 2020 (UTC) :Balyozxane, te gotibû "Erê lê lêgerk nepeyitandî ye loma jêbirin hewce ye", çima jê nabin? -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 20:38, 7 kanûna pêşîn 2020 (UTC) ::Li ser guhartinên dawî ji jêr ber bi jor ve min jê dibir loma hîn nehatibûm vê peyvê.--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 22:24, 7 kanûna pêşîn 2020 (UTC) :::Mala te ava -- [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 22:32, 7 kanûna pêşîn 2020 (UTC) ==== Jêgirtin ==== # {{f|ku|nadir|informatîk|neolojîzm}} Tiştê ku yek pê di [[înternet]]ê de [[malper]]an [[lê gerîn|digere]] û [[dîtin|dibîne]]. #* {{jêder-malper|ku|jêgirtin=Heya vêga we nikaribû bi Kurdî agahiya bigerin û internetê bi kar bînin. Em wek Egerîn ji bo pêdiviyek û kêmasiyeke mezin ji holê rabe bi kedeke mezin û bi zanyarî '''lêgerka''' bi kurdî pêşkêşî xizmeta gelê xwe dikin.|sernav=Googlea Kurdî: Egerîn|url=https://teknistan.wordpress.com/2018/05/13/googlea-kurdi-egerin/|malper=teknistan.wordpress.com|sal=2018}} #* {{jêder|ku|jêgirtin=Hûn belki zanin ev demeke Lêgerin û web portala kurdi Egerin.com derketîye û her roj dice bikarhênerên wê mezin dibin. Bi vê emailê ez hinek informasyon rêdikim li ser '''lêgerk'''/Gerok û web portala bi kurdî Egerin.|[http://www.natgeokurd.com/yekem-geroka-kurdi-egerin-com/ Malpera National Geographic a Kurdî], 09/2015}} #* {{jêder-malper|ku|jêgirtin=Egerin ne tenê '''lêgerk''' e. Tu zaf tiṣtên din jî dikarî bikî. ji bo ku tu dikaribî ji hemu servîsên Egerin feyde bibînî em vîdeoyên alîkarîyê cê dikin û emê rûpeleka alîkarîyê li ser egerin.com vekin..|nivîskar=Egerin|sernav=Egerin|url=https://www.facebook.com/egerin.official/posts/484162228371657/|malper=facebook.com|sal=2014}} * Çavkanî: Bi maneya "geroka webê" {{kovara kurmancî|hejmar=26|sernav=Termên kompûterê|nivîskar=Behroz Şucaî}}--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 00:00, 24 gulan 2021 (UTC) isykbygtb9u39ptc9zbxbsohhags88m nerm û narîn 0 873053 6329074 6290453 2026-08-11T11:54:23Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329074 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # {{f|ku|cotepeyv}} {{mane?|ku}} #* {{jêder-malper|ku|jêgirtin=Ax, şeva min ya '''nerm û narîn''',<br>şeva min ya gewer û gewr,<br>bigire koşa xwe vî zarokê westiyayî!<br>Min pirr germ û gurr e.|nivîskar=Eino Leino|wergêr=Husein Muhammed|sernav=SED Û YEK STRAN|url=http://nefel.com/articles/article_print.asp?ArticleNr=5929|malper=nefel.com|sal=2011}} #* {{jêder-malper|ku|jêgirtin=Ruxmê ku xwediyê avahiyek '''nerm û narîn''' bû jî zîrekiya wê me şaş dikir. Hêlên Dersîmê yê asî û serhildêr di dinyaya xwe a veşartî de dihêla û dema mijar dibû têkoşîn ji derxistina vê şerm nedikir.|sernav=JINÊN KU BI JIYANÊ RE DIKENIYAN|url=https://www.yjastar.com/ku/sehitlerimiz/723-jinen-ku-bi-jiyane-re-dikeniyan|malper=yjastar.com|sal=2018}} #* {{jêder-kovar|ku|jêgirtin=Behrên Fêrîkê Ûsiv bi qasî ku gurr û hişk in, ew çend jî nerm û narîn in.|kovar=Wêje û Rexne|sernav=SIRUŞT Û FÊRÎKÊ ÛSIV|url=https://www.academia.edu/36952963/Siru%C5%9Ft_%C3%BB_F%C3%AAr%C3%AEk%C3%AA_%C3%9Bsiv|nivîskar=İNAN EROĞLU|rûpel=157}} ==== Etîmolojî ==== Ji ''[[nerm]] + [[û]] + [[narîn]]'' ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|sc=Latn|nerm û niyan}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|plain sailing}}, {{W-|en|easy ride}}, {{W-|en|no hiccups}} {{werger-bin}} lz1mbs7t2x1rjnowxnixwi8r9h9m74b Gotûbêj:cewser 1 873196 6328828 5020780 2026-08-11T00:31:53Z Balyozbot 7867 /* Çavkanî */ sererastkirin 6328828 wikitext text/x-wiki == [[Wîkîferheng:Daxwazên peyitandinê|DP]]: Tîrmeha 2020an == {{arşîv-ser|dp|nepeyitandî|link=Taybet:PermanentLink/4069530#cewser}} {{fake==|<s>[[cewser]]</s>}} bêçavkanî--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 09:48, 23 tîrmeh 2020 (UTC) :Tenê çavkaniyek heye. Di ferhengên Kurdî-Ermenî û Kurdî-rûsî de wek ''qelîştek'' derbas dibe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 18:37, 24 tebax 2020 (UTC) :{{nepeyitandî}}--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 19:22, 25 tebax 2020 (UTC) ::[[Pêvek:Bêçavkanî/cewser]] {{arşîv-bin}} == Çavkanî == # Ji hin nîşan û elametan re tê gotin ku destpêka tiştekê an cihekî nîşan didin , wekî xêza li nîveka êşbiran de ku ji bona peydakirina cihê gerkirina wan anko ji nîvekê de duqetkirina wan. #* {{jêder-malper|ku|jêgirtin=Wek me pêştir jî nivîsandibû, bo “ silbî û îcabî”, erênî û nerênî gelekî baş in. Bo “musbet û nefî” me erê û nerê bi kar anî. Ez bo '''cewserê''' “mûcib û salib” di elektîrîkê de, “germik û sardik” pêşniyar dikim.|nivîskar=Bedran Hebîb|sernav=Mala zimanê me yê wêran – 4|url=http://www.gulan-media.com/kurdi/articles.php?id=109&eid=8|malper=gulan-media.com|sal=2011}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane|gotûbêj]]) 17:22, 20 nîsan 2021 (UTC) jk5zh3zk5ssqa20uaqas7zjyy7tpvok derû 0 873525 6328907 5020821 2026-08-11T11:26:37Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328907 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|devkî}} {{guherto|derew}} #* {{jêder-malper|ku|jêgirtin=Di beramber de berpirsê liqa Mexmûrê ya Partiya Demokrata Kurdistanê (PDK) Necat Elî Fatim ew daxuyaniya Wezareta Bergirî ya Iraqê red dike û dibêje “Naveroka daxuyaniya Wezareta Bergirî ya Iraqê '''derû''' ye.”|sernav=“4 gundên Mexmûrê di destê Pêşmergeyan de ne”|url=https://www.basnews.com/so/babat/107046|malper=basnews.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin=Dewleta Tirk êrîşa dagirkeriyê ya vê dawiyê li hember rêvebiriya Rojava bi heman '''derû''' û xepan da dest pê kir. |nivîskar=Derwêş M. Ferho|sernav=ÊRÎŞÊN PIRRALÎ LI SER KURDAN|url=http://ronahi.net/ku/index.php/2019/11/01/erisen-pirrali-li-ser-kurdan/|malper=ronahi.net|sal=2019}} i3jsuq1fphme1p6ptvri5hzwh8nrfzi mûkî 0 873658 6329069 6284881 2026-08-11T11:54:13Z Balyozbot 7867 /* Hoker */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329069 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[hinek]], [[piçek]] #: ''Qama te '''mûkî''' bi ser ya min ketiye.'' #: ''Ev kursî bi '''mûkî''' ji yê dî bilindtir e.'' #* {{jêder-pirtûk|ku|jêgirtin=Dibêjin mîrî çûna sibakê bi neynikê li xwe neriye '''mûkî''' sipî di nav riha xwe de dîtiye.|nivîskar=Seydayê Tîrêj|amadekar=Dilawerê Zengî|sernav=Serpêhatiyên Kurdan (2)|weşanxane=Emîral|cih=Beyrût|sal=2009|rûpel=75}} #* {{jêder-pirtûk|ku|jêgirtin=Lê Ez wer'a dibêjim, t'u car sond nexwin, ne bi e'zmên, çimkî ew t'extê Xwedê ye ne jî bi e'rdê, çimkî ew cîyê bin p'îyêd Wî ye, P'adşê mezin e û ne jî bi serê xwe sond bixwe, çimkî tu nikarî '''mûkî''' sipî kî yan r'eş kî.|amadekar=Mihemed Selîm Siwarî|sernav=Mizgînî: Încîla bi Kurdî|url=https://books.google.com.tr/books?id=NFmDCwAAQBAJ&pg=PA21&lpg=PA21&dq=%22m%C3%BBk%C3%AE%22&source=bl&ots=alcH3U_ouO&sig=ACfU3U0tYb_j-AceZ76Y6c9t4ODjQ5__wA&hl=tr&sa=X&ved=2ahUKEwjP3YHsnOnrAhVJposKHU16A9o4FBDoATAGegQIARAB#v=onepage&q=%22m%C3%BBk%C3%AE%22&f=false|weşanxane=Renas Media|sal=1983|rûpel=}} #* {{jêder-malper|ku|jêgirtin=Ev zanîna han, hate xuya kirin, piştî ku çend zanyarên zanîngeha iksfûrtê, aletek ku bi lîzerê bikartê saz kirin, ev alet dikare wêneyan ji tuştên ku bi sedê caran ji serê '''mûkî''' biçûktire bikşîne.|nivîskar=Zana Xane|sernav=ÇILO MIROV HO DIBIN..?|url=https://www.gilgamish.org/2008/10/07/12998.html|malper=gilgamish.org|sal=2008}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} pfwgtbsta8ltld76sdx9of8surh74rc cêbecê kirin 0 873988 6328829 5514113 2026-08-11T00:31:57Z Balyozbot 7867 /* Lêker */ sererastkirin 6328829 wikitext text/x-wiki == {{ziman|ku}} == === Lêker === {{ku-tewîn-lk|cêbecê kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=cêbecê|valahî=erê}} {{lêker|ku|c=h-gh}} # {{guherto|ku|cîbicî kirin}} #* {{jêder-pirtûk|ku|jêgirtin=Pergala xebata Navenda Rapêflanê û flêweyê rêxistina wê, parvekirina ceribandinan, pêkanîna kultur û kevneflopiyekî pêkve hilberînê, befldar, û rêveberiyekî flefaf e;Navend vesazbûn û xebatên xwe di vê bingehê de '''cêbecê dike'''.|amadekar=Komîsyon|sernav=NÊZÎKTÊDAYÎNÊN NÛ Û ALTERNATÎFÊN RAPÊfiANA DERBAJARÎ|url=https://www.academia.edu/2039083/N%C3%AAz%C3%AEkt%C3%AAday%C3%AEn%C3%AAn_N%C3%BB_%C3%BB_Alternat%C3%AEf%C3%AAn_Rap%C3%AAsana_Derbajar%C3%AE|sal=2011|rûpel=224}} #* {{jêder-malper|ku|jêgirtin=Destnîşankirina mejiyê erebên çolê ku xelîfe EboBekir Bexdadî sedî sed '''cêbecê dike''' ji bo têgeha peya û xezûkirinê ew e ku nabe peya di şer de bişkê, ku şikiya jî gereke xwe bikuje, ev taybetiye berê îslamê hebû û bi nav dîroka îslamê jî ketiye heta bi niha, lewra dema EboBekir bi navê îslamê serê xelkê jêdike û destê xelkê qutdike û komkujiyê dike û jinan jî wek xenîme dibîne û dikire difroşe wiha Bexdadî mejiyê erebên çolê cêbecê dike.|sernav=Qûnaxa parastina sinûrên Kurdistanê têgehîştine ji ew jîngeha DAIŞ li xwe digre|url=http://www.gulan-media.com/kurdi/details.php?section=3&id=78|malper=gulan-media.com|sal=2015}} #* {{jêder-malper|ku|jêgirtin=Paş ku serokê Flîpînê Rodrigo Dutîrtî ferman daye polîsan ji bo gullebaran kirina her kesê qedexeya derketinê bişkênît, polîsan fermana Serokê welat weke xwe '''cêbecê kir''' dema ku welatîyekê temen 63 salî li ser caddê gullebaran kirî.|sernav=QEDEXE ŞIKAND, POLÎSAN GULLE BERDANÊ Û KUŞT|url=https://darkamazi.net/kurdi/archives/1012550|malper=darkamazi.net|sal=2020}} grxf202ifg5it7hjd7lgjx3l5vuxjd6 dabar kirin 0 874251 6328895 6196544 2026-08-11T11:25:15Z Balyozbot 7867 /* Lêker */ sererastkirin 6328895 wikitext text/x-wiki {{bnr-n|dabarkirin}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|dabar kirin|form=gerguhêz|niha=k|borî=kir|pêşgir=dabar|valahî=erê}} {{lêker|ku|c=h-gh}} # [[raguhestin]]a [[pêzanîn]]an ji ser [[internêt]]ê bo [[kombers]]ekî . #* {{jêder-kovar|ku|jêgirtin=Di nav wan neh heyvan de yên piştî derxistina nav bazarê ya têlefona Apple, li dor bîst û pênc hezar benameyên kompûterî hatibûne pêşxistin ji bo vê têlefonê (heta îro ew hejmar gihiştiye sed hezarê, lewre berhema nû ya Apple'ê bazarên Çîn û Kore ya Başûr dagîr kirin) û bi vî rengî, 800 milyon caran bername li ser înternetê hatibûne '''dabarkirin'''.|kovar=Le Monde diplomatique kurdî|sernav=Amazon, Apple, Google, dêwên piştî qeyranê|nivîskar=Dan Schiller|wergêr=Ergîn Opengîn|hejmar=4|sal=2010|rûpel=10}} #* {{jêder-malper|ku|jêgirtin='''Dabar bike'''|sernav=Hangi Şeyh Said? – Cevher Kara|url=http://candname.com/hangi-seyh-said-cevher-kara/|malper=candname.com|sal=2016}} #* {{jêder-malper|ku|jêgirtin=Herwiha li gor nûkirina dawî ya Microsoftê, çêdibe ku zimanê Kurdî ligel herdu zaravên Kurmancî û Soranî di appa xizmetguzarîya Ajor de li ser mobaylê û malpera Microsoftê were '''dabarkirin'''.|sernav=Microsoftê zimanê Kurdî li lîsteya xwe ya wergêranê zêde kir|url=http://www.rupelanu.com/microsofte-zimane-kurdi-li-listeya-xwe-ya-wergerane-zede-kir-12568h.htm|malper=rupelanu.com|sal=2020}} ==== Etîmolojî ==== Ji {{heve|ku|da-|barkirin}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|تحميل}} * {{Z|fr}}: {{W+|fr|télécharger}} * {{Z|en}}: {{W+|en|download}} {{werger-bin}} rvn9undlas2v0zyc9xk0wp031g6nky3 Şablon:bnr-lk 10 874799 6328850 4574064 2026-08-11T01:00:55Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:lêkerê binêre]] hat sererastkirin 6328850 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:lêkerê binêre]] dpv7etbsanb48jlq2rliivbqwq18zro Şablon:bnr-nd 10 874800 6328851 4574077 2026-08-11T01:01:05Z EmausBot 6143 Beralîkirina ducarî li ser [[Şablon:navdêrê binêre]] hat sererastkirin 6328851 wikitext text/x-wiki #BERALÎKIRIN [[Şablon:navdêrê binêre]] d1ulldkgxfj9n9gp3jrl6tuau4hyv8r keştîvan 0 876766 6329011 6310118 2026-08-11T11:52:10Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329011 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:H5090 Götheborg merimiehet töissä.jpg|thumb|250px|Keştîvan]] {{navdêr|ku|z=mn}} # Kesa/ê li [[keştî|keştiyê]] [[xebitîn|dixebite]] yan [[keştî|keştiyê]] [[xebitandin|dixebitîne]]. #* {{jêder-malper|ku|jêgirtin=Di sedsala 15-em de Lîsabon navenda giring a bazerganiyê ye û li bajêr gelek '''keştîvan''', stêrknas, cografyazan û zanyarên cuda cuda kom dibin.|sernav=Krîstofor Kolumbus|url=https://ku.wikipedia.org/wiki/Kr%C3%AEstofor_Kolumbus|malper=ku.wikipedia.org}} #* {{jêder-malper|ku|jêgirtin=Bûyera pirtûkê li ser Robinson Kreutzner derbas dibe. Bavê wî dixwaze ku bila layê wê bibe parêzer û jiyana xwe bi dewlemend dewam bike. Lê nîgaşa lawik pir cuda ye. Ew dixwaze ku gerdun bigere; cihê ku nehatiye dîtin bibîne. Ji bo vî daxwasa wê werê cîh pêwîste ku li deryayê bibe '''keştîvan'''. Ew jî dibîstana xwe berdide û '''keştîvan''' dibe. Lê rojek keştî ya wê qeza dike û ew tenê li jiyan dimîne û nav perçên keştî derdikeve giravek.|sernav=Robinson Crusoe|url=https://ku.wikipedia.org/wiki/Robinson_Crusoe_(pirt%C3%BBk)|malper=ku.wikipedia.org}} #* {{jêder-malper|ku|jêgirtin=Duvrerastî '''keştîvanekî''' dibe, ev keştîvan jî biraye Dirikê’ye lê hevdû nasnakin. Dirikê jê dipirse:– '''Keştîvano''' ma te dê û bavên min nedîtiye? '''Keştîvan''' dibêje:– Na!|sernav=Dirikê|url=http://candname.com/dirike/|malper=candname.com|nivîskar=Dilazad ART|sal=2017}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|که‌شتیڤان}} ==== Hevmane ==== * [[deryavan]]<ref>{{malper|url=https://www.thekurdishdictionary.com/en/search/english/kurmanci/sailor}}</ref> ==== Jê ==== * [[keştîvanî]] ==== Etîmolojî ==== Ji {{pêk|ku|keştî|-van}}. ==== Werger ==== {{werger-ser|Kesa/ê li [[keştî|keştiyê]] [[xebitîn|dixebite]] yan [[keştî|keştiyê]] [[xebitandin|dixebitîne]]}} * {{Z|akk}}: {{W-|akk|𒈣𒁻|tr=MA₂LAH₄|ts=malāḫu|n}} * {{Z|sq}}: {{W+|sq|detar|n}}, {{W+|sq|marinar|n}}, {{W+|sq|lundërtar|n}} * {{Z|de}}: {{W+|de|Matrose|n}}, {{W-|de|Matrosin|m}}, {{W+|de|Seemann|n}}, {{W-|de|Seefrau|m}}, {{W-|de|Seemännin|m}} * {{Z|arc}}: {{W-|arc|מַלָּחָא|tr=mallāḥā|n}}, {{W-|arc|נַוְטָא|tr=nawṭā|n}} *: Siryanî: {{W-|syc|ܡܠܚܐ‎|tr=mallāḥā|n}}, {{W-|syc|ܢܘܛܐ|tr=nawṭā|n}} * {{Z|ast}}: {{W-|ast|marineru|n}}, {{W-|ast|marín|n}} * {{Z|az}}: {{W+|az|dənizçi}} * {{Z|be}}: {{W-|be|матро́с|n|sc=Cyrl}}, {{W-|be|мара́к|n}}, {{W-|be|марапла́вец|n}} * {{Z|bn}}: {{W-|bn|নাবিক}} * {{Z|br}}: {{W+|br|martolod}} * {{Z|bg}}: {{W+|bg|моря́к|n}}, {{W+|bg|матро́с|n}}, {{W+|bg|морепла́вател|n}} * {{Z|my}}: {{W+|my|ခလာသီ}}, {{W+|my|သင်္ဘောသား}} * {{Z|cs}}: {{W+|cs|námořník|n}}, {{W-|cs|mariňák|n}}, {{W-|cs|mořeplavec|n}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|水手|tr=shuǐshǒu|sc=Hani}}, {{W+|cmn|海員|sc=Hani}}, {{W+|cmn|海员|tr=hǎiyuán|sc=Hani}} * {{Z|ckt}}: {{W-|ckt|лельутвыткульын|tr=lelʹutvytkulʹyn}}, {{W-|ckt|аӈӄаляйвыльын|tr=aṇqaljajvylʹyn}} * {{Z|da}}: {{W-|da|matros}}, {{W+|da|sømand}} * {{Z|id}}: {{W+|id|pelayar}}, {{W+|id|pelaut}}, {{W+|id|kelasi}} * {{Z|ar}}: {{W-|ar|بَحَّار|n}}, {{W-|ar|بَحْرِيّ|n}} * {{Z|xcl}}: {{W-|xcl|նաւաստի}}, {{W-|xcl|նաւազ}} * {{Z|hy}}: {{W+|hy|նավաստի}}, {{W+|hy|նավազ}} * {{Z|eo}}: {{W-|eo|maristo}}, {{W-|eo|maristino}} * {{Z|et}}: {{W-|et|madrus}}, {{W-|et|meremees}} * {{Z|fa}}: {{W+|fa|ملاح|tr=malâh}}, {{W+|fa|بحری|tr=bahri}}, {{W-|fa|خلاشی|tr=xalâši}} * {{Z|fo}}: {{W-|fo|sjómaður|n}} * {{Z|fi}}: {{W+|fi|matruusi}}, {{W+|fi|merimies}} * {{Z|fr}}: {{W+|fr|matelot|n}}, {{W+|fr|matelote|m}}, {{W-|fr|femme matelot|m}}, {{W-|fr|femme-matelot|m}}, {{W+|fr|marin|n}}, {{W-|fr|femme marin|m}}, {{W-|fr|femme-marin|m}} * {{Z|gd}}: {{W-|gd|seòladair|n}}, {{W-|gd|loingear|n}}, {{W-|gd|muireach|n}}, {{W-|gd|maraiche|n}} * {{Z|gl}}: {{W+|gl|mariñeiro|n}}, {{W-|gl|mariñeira|m}} * {{Z|ka}}: {{W-|ka|მეზღვაური}} * {{Z|haw}}: {{W-|haw|kelamoku}}, {{W-|haw|holomoku}} * {{Z|hi}}: {{W+|hi|नाविक|n}}, {{W+|hi|मल्लाह|n}}, {{W-|hi|जहाज़ी|n}}, {{W+|hi|माँझी|n}}, {{W+|hi|केवट|n}}, {{W+|hi|लशकर|n}}, {{W-|hi|लश्कर|n}}, {{W-|hi|ख़लासी|n}} * {{Z|nl}}: {{W+|nl|matroos|n}}, {{W+|nl|zeeman|n}} * {{Z|he}}: {{W+|he|מַלָּח|n|tr=malláḥ|sc=Hebr}}, {{W+|he|יוֹרֵד יָם|n|tr=yōrēḏ yām}} * {{Z|io}}: {{W+|io|maristo}} * {{Z|ang}}: {{W-|ang|rēþra|n}} * {{Z|en}}: {{W-|en|sailor}} * {{Z|ga}}: {{W-|ga|maraí|n}} * {{Z|ist}}: {{W-|ist|mareîtimo|n}} * {{Z|it}}: {{W+|it|marinaio|n}}, {{W+|it|marinaia|m}}, {{W+|it|marittimo|n}}, {{W+|it|marittima|m}}, {{W+|it|navigante|n|m}}, {{W+|it|navigatore|n}}, {{W+|it|navigatrice|m}} * {{Z|is}}: {{W+|is|sjómaður|n}}, {{W-|is|sjóari|n}} * {{Z|ja}}: {{W+|ja|船員|tr=せんいん, sen'in}}, {{W-|ja|水夫|tr=すいふ, suifu}}, {{W-|ja|船乗り|tr=ふなのり, funanori|sc=Jpan}}, {{W+|ja|水兵|tr=すいへい, súihei}}, {{W-|ja|セーラー|tr=sērā}} * {{Z|ca}}: {{W+|ca|marí|n}}, {{W+|ca|mariner|n}} * {{Z|ky}}: {{W-|ky|деңизчи}}, {{W-|ky|моряк}}, {{W-|ky|матрос}} * {{Z|ko}}: {{W+|ko|선원}}, {{W+|ko|수병}} * {{Z|la}}: {{W+|la|nauta|n}}, {{W-|la|nāvita|n}} * {{Z|lv}}: {{W-|lv|jūrnieks|n}}, {{W-|lv|jūrniece|m}}, {{W-|lv|kuģinieks|n}}, {{W-|lv|kuģiniece|m}}, {{W-|lv|matrozis|n}} * {{Z|lo}}: {{W+|lo|ກະລາສີ}}, {{W-|lo|ນາວິກ}} * {{Z|lij}}: {{W-|lij|mainâ|n}} * {{Z|lt}}: {{W-|lt|jūreivis|n}}, {{W-|lt|jūreivė|m}} * {{Z|mk}}: {{W-|mk|морнар|n}}, {{W-|mk|морепло́вец|n}} * {{Z|mg}}: {{W+|mg|baharia}} * {{Z|ml}}: {{W+|ml|ഖലാസി}} * {{Z|ms}}: {{W-|ms|anak kapal}}, {{W-|ms|kelasi}} * {{Z|mt}}: {{W-|mt|baħri|n}} * {{Z|gv}}: {{W-|gv|marrinagh|n}} * {{Z|mi}}: {{W-|mi|kauhoe}}, {{W-|mi|kaumoana}}, {{W-|mi|hēramana}} * {{Z|mr}}: {{W-|mr|खलाशी}} * {{Z|hu}}: {{W+|hu|matróz}}, {{W+|hu|tengerész}}, {{W+|hu|hajós}} * {{Z|mn}}: {{W+|mn|далайчин}} * {{Z|nv}}: {{W-|nv|táłkááʼ siláo}}, {{W-|nv|chʼah łigai}} * {{Z|nrf}}: {{W-|nrf|frégatîn|n}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|matros|n}}, {{W-|nb|sjømann|n}} *: {{Z|nn}}: {{W-|nn|matros|n}}, {{W-|nn|sjømann|n}} * {{Z|oc}}: {{W-|oc|marinièr|n}} * {{Z|or}}: {{W+|or|ନାବିକ|sc=Orya}} * {{Z|ug}}: {{W-|ug|دېڭىزچى}}, {{W-|ug|ماتروس}} * {{Z|uz}}: {{W+|uz|dengizchi}}, {{W+|uz|matros}} * {{Z|pi}}: {{W-|pi|nāvika|n}} * {{Z|ps}}: {{W-|ps|ماڼګى|n|tr=maṇgay}}, {{W-|ps|ملاح|n|tr=malāh}} * {{Z|pdt}}: {{W-|pdt|Matroos|n}} * {{Z|pl}}: {{W+|pl|marynarz|n}}, {{W+|pl|żeglarz|n}}, {{W+|pl|żeglarka|m}} * {{Z|roa-opt}}: {{W-|roa-opt|marinneiro|n}} * {{Z|pt}}: {{W+|pt|marinheiro|n}}, {{W+|pt|marujo|n}} * {{Z|kk}}: {{W-|kk|теңізші}}, {{W-|kk|кемеші}} * {{Z|cop}}: {{W-|cop|ⲛⲉϥ|n}}, {{W-|cop|ⲛⲉⲉϥ|n}} * {{Z|ro}}: {{W+|ro|marinar|n}}, {{W+|ro|matelot|n}}, {{W+|ro|matroz|n}} * {{Z|ru}}: {{W+|ru|матро́с|n}}, {{W+|ru|моря́к|n}}, {{W+|ru|морепла́ватель|n}} * {{Z|sa}}: {{W+|sa|नाविक|n}} * {{Z|sd}}: {{W-|sd|سيلاني|sc=sd-Arab}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|мо̀рна̄р|n}}, {{W-|sh|по̀морац|n}}, {{W-|sh|морепло́вац|n}} *: Latînî: {{W+|sh|mòrnār|n}}, {{W+|sh|pòmorac|n}}, {{W+|sh|moreplóvac|n}} * {{Z|orv}}: {{W-|orv|морꙗнинъ|n}} * {{Z|sk}}: {{W-|sk|námornik|n}}, {{W-|sk|moreplavec|n}} * {{Z|sl}}: {{W+|sl|mornár|n}}, {{W-|sl|mornárka|m}} * {{Z|es}}: {{W+|es|marinero|n}} * {{Z|sux}}: {{W-|sux|𒈣𒁺𒁺|tr=MA₂LAH₅|ts=malah}} * {{Z|sw}}: {{W+|sw|baharia}} * {{Z|sv}}: {{W+|sv|matros}}, {{W+|sv|sjöman}} * {{Z|tg}}: {{W-|tg|маллоҳ}}, {{W+|tg|баҳрӣ}}, {{W-|tg|баҳрчӣ}}, {{W-|tg|дарёнавард}} * {{Z|th}}: {{W+|th|กะลาสี}}, {{W+|th|ลูกเรือ}}, {{W+|th|ทหารเรือ}}, {{W-|th|นาวิก}} * {{Z|te}}: {{W+|te|నావికుడు|n}} * {{Z|tr}}: {{W+|tr|gemici}}, {{W+|tr|bahriyeli}}, {{W|tr|denizci}} * {{Z|tk}}: {{W-|tk|deňizçi}} * {{Z|tpi}}: {{W-|tpi|boskru}} * {{Z|ur}}: {{W-|ur|ملاح|n|tr=mallāh}}, {{W-|ur|خلاصی|n|tr=xalāsī}} * {{Z|uk}}: {{W-|uk|моря́к|n}}, {{W-|uk|матро́с|n}}, {{W-|uk|морепла́вець|n}} * {{Z|cy}}: {{W+|cy|morwr}} * {{Z|km}}: {{W-|km|កម្មករនាវា}}, {{W+|km|នាវិក}}, {{W+|km|នាវិកា}} * {{Z|yi}}: {{W-|yi|שיפֿער|n|sc=Hebr}}, {{W-|yi|שיפֿערין|m|sc=Hebr}} * {{Z|grc}}: {{W-|grc|ναύτης|n}}, {{W-|grc|ναυτίλος|n}} * {{Z|el}}: {{W+|el|ναύτης|n}}, {{W+|el|ναυτικός|n}} {{werger-bin}} === Çavkanî === {{çavkanî}} ihyk5o5fejdbu32g8vcvehztrhpg2bv Ferîdûn 0 907816 6328960 6295258 2026-08-11T11:50:04Z Balyozbot 7867 /* Serenav */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328960 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Serenav === {{serenav|ku|z=n}} # {{f|ku|Şahname}} Şah û [[leheng]]ekî efsanewî yê [[îranî]]. # [[nav|Navekî]] {{navkes|ku|law}} e. #* {{jêder-malper|ku|jêgirtin=Abûkat '''Ferîdûn''' Yazar jî çû rahmetê. Mirina bêbext Ferîdûn Yazar jî ji me stend. Bi wefeta entellektuel û kurdperwerê hêja û dostê bavê min yê salan Ferîdûn Yazar ez gelkî xemgîn bûm.|nivîskar=Zinarê Xamo|sernav=Ferîdûn Yazar jî çû rahmetê|url=http://zinarexamo.blogspot.com/2016/06/feridun-yazar-ji-cu-rahmete.html|malper=zinarexamo.blogspot.com|sal=2016}} #* {{jêder-malper|ku|jêgirtin='''Ferîdûn''' Erşedî helbestvanê Kurd ê rojhilatê Kurdistanê û rûniştvanê Almaniya, koleksyonek ji şêirên xwe di pirtûkekî de, jêr navê Berd (kevir) çap kir.|sernav=Helbestvanê Kurd Ferîdûn Erşedî Pritûka xwe ya nû derxist|url=https://www.qasioun-news.com/ar/articles/15918|malper=qasioun-news.com/|sal=2015}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr|y}} ==== Etîmolojî ==== {{nyz|ku}}. Bide ber {{g+|fa|فریدون|tr=Feraydun}}, {{g+|ae|𐬚𐬭𐬀𐬉𐬙𐬀𐬊𐬥𐬀}}, {{g+|xcl|Հրուդէն}}. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W|fa|فریدون}} * {{Z|tr}}: {{W|tr|Feridun}} {{werger-bin}} gxjf848y8lc3vp6queq9znsl137s15r Kepreşîne 0 933709 6329008 6295473 2026-08-11T11:52:03Z Balyozbot 7867 /* Serenav */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329008 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Serenav === {{serenav|ku|z=m}} # {{f|ku|Cihûtî}} [[cejn|Cejn]]eke [[cihû]]yan ya [[payîz]]ê ye #* {{jêder-malper|ku|jêgirtin=Festîval her ji saet 10-ê sibehê dest pê dike û heta 12-ê şevê hemu kurd li deştekê kom dibin û şahiyê dikin. Bi helkeftina vê cejnê, serokwezîr û serokê welat ligel wezîr û generalên mezin di festîvalê de amade dibin û cejna '''Kepreşîne''' li kurdan pîroz dikin.’’|nivîskar=Newzad Mecîd|sernav=Nêzîka 210 hezar Kurdên Cihû li Îsraîlê dijîn|url=http://avestakurd.net/blog/2012/12/12/nzka-210-hezar-kurdn-cih-li-sral-dijn/|malper=avestakurd.net|sal=2012}} #* {{jêder-malper|ku|jêgirtin={{ku-Arab|دەمێ جەژنا كەپرەشینان یا جوهیان نێزیك بووی}}|sernav=Yuhenna 7:2 (Behdînî)|url=http://kitebipiroz.com/behdini/bible/jhn/7/2}} #*: ''Demê Cejna '''Kepreşînan''' ya Cuhiyan nêzîk bûyî'' ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|y}} ==== Etîmolojî ==== Ji {{pêk|ku|kepir|şîn}} (2). ;{{biçûk|Çavkanî * {{Chyet|r=307}} }} ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W-|ar|عيد المظال}} * {{Z|en}}: {{W|en|Tabernacles}}, {{W|en|Sukkot}} {{werger-bin}} 3e2aqo4pvr585wpztfds0yqumoj4teu bi dev kirin 0 933804 6328809 6278516 2026-08-11T00:28:45Z Balyozbot 7867 /* Lêker */ sererastkirin 6328809 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=}} # [[gotin]] #* {{jêder|ku|jêgirtin=Bîsteke li hêvîya dostê xwe ma ku bêhna wî were ber wî, û dûvre pirsiyara ku ji bo wê hatibû '''bi dev kir'''|{{Jêgirtin/Robert Louis Stevenson/Meseleya Seyr a Dr. Jekyll û Mr. Hyde|r=19}}}} #* {{jêder-malper|ku|jêgirtin=Wê rojê wiha '''bi dev dike''' "Gava ez qêriyam û min got; Hibr dibare, ez ne serxweş bûm. Hefsarê hişê min di destê min de bû û bîna hibrê jî, ji bîna xwêdana paxilên yarika xwe ya ermen bêtir nas dikir."|nivîskar=Ali Fikri Işik|sernav=Romana Modern ya Kurdî|url=https://diyarname.com/news.php?Idx=3838|malper=diyarname.com/|sal=2010}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} np23l2zeypz7a41y9gu0hsinwirnqxx miqerer 0 936122 6329063 6252099 2026-08-11T11:54:01Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329063 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êder-pirtûk|ku|jêgirtin=''Yek şubhê Bekir, bitac û binper<br/> Westayî li ber derî, '''muqerrer'''''|nivîskar=Ehmedê Xanî|sernav=Mem û Zîn}} #* {{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|ziman=ku|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}} cw3m2l3xshjpdmwkbya1gh01vc9nomf manîkur 0 956231 6329050 6311643 2026-08-11T11:53:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329050 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î|tili]]yan #* {{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|ziman=ku|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|ziman=ku|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/|ziman=ku|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}} 7324uxz2vf7zkso7hixtyzw42busmho ergo 0 968031 6328949 6105376 2026-08-11T11:49:25Z Balyozbot 7867 /* Hoker */ sererastkirin 6328949 wikitext text/x-wiki {{binêre herwiha|Ergo|ergo-}} == {{ziman|en}} == === Bilêvkirin === * {{beş|Hoker|Girêdek}} {{mj|DYA}}{{IPA|en|/ˈɝɡoʊ/}} ** {{deng|en|En-au-ergo.ogg|dever=Awistralya}} * {{beş|Navdêr 1}} {{mj|DYA}} {{IPA|en|/ˈɝɡoʊ/}} * {{beş|Navdêr 2}} {{mj|DYA}} {{IPA|en|/ˈɝɡoʊ/}} === Hoker === {{en-hoker|-}} # ji ber vê yekê, lewma, bi vî awayî #* {{jêder-malper|ku|jêgirtin=The pirates who invaded this fort left Sparrow locked in his cell; '''ergo''', they are not his allies.|sernav=Pirates of the Caribbean|sal=2003}} #:: Korsanên ku vê kelehê îşxal kirin, Sparrowê di hucreya wî de kilîdkirî hiştin; lewma ew ne dostê wî ne. ==== Etîmolojî ==== Ji {{mîr|enm|en|ergo}}, ji {{ji|la|en|ergo}}. === Girêdek === {{girêdek|en}} # [[lewma]] ==== Etîmolojî ==== Ji {{mîr|enm|en|ergo}}, ji {{ji|la|en|ergo}}. === Navdêr 1 === {{en-navdêr}} # {{f|en|argo}} ergometre (makîneya ku enerjiya xerckirî hesab dike) ==== Etîmolojî ==== {{qusandin|ku|ergometer}}. === Navdêr 2 === {{en-navdêr}} # {{f|en|nefermî}} [[ergonomîk]] ==== Etîmolojî ==== {{qusandin|en|ergonomic}}. === Anagram === * {{anagram|en|a=egor|Geor.|Gero|Gore|Ogre|Rego|gero-|goer|gore|ogre|orge|rego|roge}} === Zêdetir hîn bibe === * {{wpedî|ziman=en}} gag11837opedsxuume52g8j6k1ch9xs metrolojî 0 968709 6329056 6312110 2026-08-11T11:53:47Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329056 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|zanist}} Zanista ku li ser [[pîvandin]]ê yan [[pîvan]]an dixebite. #* {{jêder-malper|ku|jêgirtin=Me di çarçoveya '''metrolojiya''' qanûnî da çavdêrî û kontrola piyaseyê ya milyonek û 200 hezar alavên pîvanê, di çarçoveya ewlehiya berhemê da jî ya 20 hezar berhemî kir.|nivîskar=Önder Beyter|sernav=Wezîr Varank: Teleba sektora reel a ji bo veberhênanê ji sedî 21 zêde bû|url=https://www.aa.com.tr/kk/abor%C3%AE/wez%C3%AEr-varank-teleba-sektora-reel-a-ji-bo-veberh%C3%AAnan%C3%AA-ji-sed%C3%AE-21-z%C3%AAde-b%C3%BB-/2045551|malper=aa.com.tr/kk|sal=2020}} #* {{jêder-malper|ku|jêgirtin="Zîrweya Helal a Dinyayê ya 2018an û 6emîn Fuara Helal Expoyê ya Teşkîlata Tevkariya Îslamê" ku AA bû Şirîkê wê yê Ragihandina Global, di hîmayeya Serokomariyê û tevkariya Enstîtuya Standardên Welatên Îslamê û '''Metrolojiyê''' (SMIIC), Navenda Xurtkirina Bazirganiya Îslamê (ICDT) û Discover Eventsê li Yenîkapiyê di Navenda Pêşandan û Hunerê ya Avrasyayê hat lidarxistin û dest pê kir.|sernav="Xelata aştiyê" dan Yusuf Îslam|url=https://www.trtnuce.com/turkiye/xelata-astiy-dan-yusuf-slam-h42487.html|malper=trtnuce.com|sal=2018}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{deyn|en|ku|metrology}}, ji {{ji|grc|ku|μέτρον|w=pîvan}} + {{paş|ku|-lojî}}. ==== Binêre herwiha ==== * {{g|ku|meteorolojî}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Metrologie|m}} * {{Z|bg}}: {{W-|bg|метрология|m}} * {{Z|cs}}: {{W+|cs|metrologie|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|測量學|tr=cèliángxué}} * {{Z|da}}: {{W+|da|metrologi|g}} * {{Z|hy}}: {{W+|hy|չափագիտություն}} * {{Z|fi}}: {{W-|fi|mittaustiede}}, {{W+|fi|metrologia}} * {{Z|gl}}: {{W+|gl|metroloxía|m}} * {{Z|en}}: {{W-|en|metroloji}}, {{W-|tr|ölçümbilim}} * {{Z|en}}: {{W+|en|metrology}} * {{Z|it}}: {{W+|it|metrologia|m}} * {{Z|is}}: {{W-|is|mælifræði|m}} * {{Z|ja}}: {{W-|ja|測定学|tr=[[そくていがく]], sokuteigaku}} * {{Z|ca}}: {{W-|ca|metrologia|m}} * {{Z|mk}}: {{W-|mk|метрологија|m}} * {{Z|hu}}: {{W+|hu|méréstudomány}}, {{W+|hu|méréstan}}, {{W+|hu|metrológia}} * {{Z|no}}: {{W+|no|metrologi|n}} * {{Z|pl}}: {{W+|pl|metrologia|m}} * {{Z|pt}}: {{W+|pt|metrologia|m}} * {{Z|ro}}: {{W+|ro|metrologie|m}} * {{Z|ru}}: {{W+|ru|метроло́гия|m}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|метроло̀гија|m}} *: Latînî: {{W+|sh|metrològija|m}} * {{Z|es}}: {{W+|es|metrología|m}} * {{Z|crh}}: {{W-|crh|ölçeme ilimi}} {{werger-bin}} :{{werger çavkanî|en|metrology|beş=Ev qismê Wergerê|oldid=75071569}} guxx2qvl4me8kxqfjo85lzhl6opsdbt Gotûbêj:abûr 1 969624 6328767 5021791 2026-08-11T00:24:39Z Balyozbot 7867 /* Mane */ sererastkirin 6328767 wikitext text/x-wiki == Mane == * abûr namûs? şerm û eyb<ref>{{Ferhenga Destî|r=5}}</ref> * {{jêder-malper|ku|jêgirtin=Hindî dikir nedişêya Mecnûn li oba xo dûr bêxît. Rojekê ço bal Xelîfe û şikayeta Mecnûn kir, ku '''abûr''' bo me nehêlaye.|nivîskar=Seyid Kafî ‘Elewî|sernav=SEWAD Û WERGÊRA ÇÊRISTA LELÎ Û MECNÛN -2|url=https://krd.riataza.com/2017/01/06/sewad-u-wergera-cerista-leli-u-mecnun-2/|malper=riataza.com|sal=2017}} * [[abûra yekî birin]], to [[dishonor]]<ref>{{kovara kurmancî|hejmar=53|sernav=Hinek peyv ji Selmasê|nivîskar=Khosrow ABDOLLAHÎ|r=1}}</ref><ref>{{Ferhenga Destî|r=5}}</ref> * {{jêder-malper|ku|jêgirtin=Babê Qeys naçar dirêkete xastina Leylê û babê Leylê dibêjît; kurê we '''abûra me biriye''' û ez kiça xo nademe wî.|nivîskar=Seyid Kafî ‘Elewî|sernav=SEWAD Û WERGÊRA ÇÊRISTA LELÎ Û MECNÛN -2|url=https://krd.riataza.com/2017/01/06/sewad-u-wergera-cerista-leli-u-mecnun-2/|malper=riataza.com|sal=2017}} ** [https://zanistvan.files.wordpress.com/2018/06/ferhenga-kurdc3ae-farsc3ae.pdf] ? ** [https://twitter.com/dilewelat/status/1158496175227572225] ** ''Navborî got: ‘’Mehmûd Sengawî xalên wî yên lewaz di dest Lahor Cengî de heye, ewqas karên abûra wî çûyî kirine, naçare Lahor çi bibêje bike, eger na dê abûra wî bibin.’’'' [https://www.basnews.com/kr/babat/674679] ? * [[abûr çûn]], [[abûra rûyê xwe hirşandin]] ** ''Her wiha Tiramp ragihand: abûra wan ber bi jinavçûnê ye û gelê wê di êş û azarandaye. Pêtvî dike ew haydarî axaftinên xwe be.'' [https://darkamazi.net/kurdi/archives/1011316] * {{jêder-malper|ku|jêgirtin=Berpirsê binkeyê Çemçemalê Ebdula Kuwêxa Mubarek di tora xwe ya civakî facebookê de gotarek bi serenava ‘’Li Kurdistanê siyaseta abûra wê çûyî’’ belav kir û wek yekem siyaseta abûra wê çûyî jî nimûneyê wê li ser Gorran anî û aşkera kir, ew Gorran a ku bi salane cîhê hêviyê bû bo xelkê û li ser destê Newşîrwan Mistefa hat damezrandin, naha şerê şîrket, sermaye û servet û dewlemendiyê tê de pêşketiye.’’|url=https://www.basnews.com/kr/babat/468510}} === Çavkanî === phdt6j6z0zryxgxk2knzwe5dn4nt79d aramxane 0 970254 6328845 6296868 2026-08-11T00:43:28Z Wikihez 7344 /* */ bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re 6328845 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # Cihê ku [[mirov]]ên pîr lê [[man|dimînin]] û tên [[xwedî derketin|xwedîderketin]]. #* {{jêder-pirtûk|ku|jêgirtin=Hîn ez li welat bûm lawe min Bengîn ji Stockholmê telefon kir, got "hevalekî te telefon kir û ew nimara telefonê da min." Ez lê gerîyam yê ku telefon kirîbû, M. Gorkey bû, wî da zanîn ku ew nuha li huzurewî-'''aramxana''' Alanya bû.|sernav=Ji Haysive heta Stockholme|nivîskar=Kazim Budak|weşanxane=APEC|isbn=978-91-86139-97-1|sal=2015|rûpel=150}} #* {{jêder-malper|ku|jêgirtin=Li '''aramxaneya''' extiyaran a li Sultangaziyê, ji nişkê ve şewatê dest pê kir.|sernav=Aramxane şewitî|malper=trtnuce.com|url=https://www.trtnuce.com/turkiye/aramxane-sewit-h41555.html|sal=2018}} #* {{jêder-malper|ku|jêgirtin=Aliyê rojavayê tirkiyê jimara '''aramxaneyan''' ku cîhên bêaram in her roj zêde dibin. Bajarên mîna Stenbol, Îzmir û Bursayê de hema bêje malbatên fireh û mezin nemane.|nivîskar=Welat Agirî|sernav=Malbata kurd a kevneşoperest -2|url=https://krd.riataza.com/2017/06/20/malbata-kurd-kevnesoperest-2/|malper=riataza.com|sal=2017}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|guherto=hemû}} ==== Etîmolojî ==== Ji {{qertaf|ku|aram|-xane}}, ihtimalên {{yekser|tr|ku|huzurevi|hûr=1}}, ji {{qertaf|tr|huzur|w1=aram|evi|w2=xane, mal|nekat=1}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Pflegeheim|nt}} * {{Z|az}}: {{W-|az|qocalar evi}} * {{Z|hy}}: {{W+|hy|ծերանոց}} * {{Z|fi}}: {{W+|fi|hoitokoti}} * {{Z|fr}}: {{W+|fr|maison de repos|m}} * {{Z|en}}: {{W+|en|nursing home}}, {{W+|en|care home}}, {{W+|en|old people's home}} * {{Z|it}}: {{W-|it|casa di riposo}} * {{Z|ru}}: {{W+|ru|дом престаре́лых|n}}, {{W-|ru|ча́стная лече́бница|m}} * {{Z|es}}: {{W+|es|asilo|n}}, {{W-|es|cotolengo}} * {{Z|sv}}: {{W+|sv|ålderdomshem|nt}}, {{W+|sv|äldreboende|nt}}, {{W+|sv|åldringshem|nt}} * {{Z|tr}}: {{W+|tr|huzurevi}} {{werger-bin}} === Çavkanî === * {{Ferhenga Kamêran|r=39}} gqsgw4j8094er9goa26q7nx8i3qiaqp dekoratîv 0 971443 6328902 6279875 2026-08-11T11:25:46Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328902 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{kîte|ku|de|ko|ra|tîv}} === Rengdêr === {{ku-tewîn-rd|dekoratîv}} {{rengdêr|ku}} # Ya / yê ku [[dekore]] dike. #* {{jêder-malper|ku|jêgirtin=Wekî her sal, vê carê jî Şaredariya Moskowê li hemû park û meydanan bazarên kevneşopî yên '''dekoratîv''' ava dike|nivîskar=Kamîz Şeddadî|sernav=SERÊ SALÊ - Ji bo xemilandina paytext 10 milyon dolar|url=https://www.rudaw.net/kurmanci/world/17122016|urlya-arşîvê=https://web.archive.org/web/20210721190038/https://www.rudaw.net/kurmanci/world/17122016|malper=Rûdaw|dîrok=17-12-2016}} ==== Formên alternatîv ==== * {{g|ku|dekoratîf}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|decorative}} * {{Z|tr}}: {{W+|tr|dekoratif}} {{werger-bin}} bp85hu63i3darhzbtyhy1oupbukapbz kubîk 0 971499 6329029 6283831 2026-08-11T11:52:47Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329029 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku|form=-}} # Yê bi şiklê [[kûp|kûb]]ê. #* {{jêder-malper|ku|jêgirtin=Îcar taybetiya Wêneyê '''Kubîk''' jî ew e ku bi hesabê geometriyê tê çêkirin û şikl û dirûvên geometrîk tên bikaranîn.|nivîskar=Hevpeyvîn: Amed Çeko Jiyan|sernav=Dilawer Zeraq: Nivîsandina kurdî rûtemek e|url=https://diyarname.com/news.php?Idx=2422|urlya-arşîvê=https://web.archive.org/web/20210801071630/https://diyarname.com/news.php?Idx=2422|malper=Diyarname|dîrok=2009-07-01}} ==== Formên alternatîv ==== * {{g|ku|kûbîk}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|cubic}}, {{W+|en|cubical}} * {{Z|tr}}: {{W+|tr|kübik}} {{werger-bin}} drpu7xfk7w3sq0fbim4zbkdko4a6u8p cînayî 0 975317 6328833 6279177 2026-08-11T00:32:18Z Balyozbot 7867 /* Rengdêr */ sererastkirin 6328833 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Yê eleqedarê [[ceza]]yê. #: {{jêder-malper|ku|jêgirtin=Hukumeta Kurdistanê hê di sala 2002–yê de qanûna jimare 14 derxist ku kuştina jinê bi çi sedemî dibe bila bibe wek curmeka '''cînayî''' qebûl kir.|nivîskar=Mûrad Ciwan|sernav=Li Kurdistanê li ser rewşa jinan reform dibin|url=https://muradciwan.com/2013/11/05/li-kurdistane-li-ser-rewsa-jinan-reform-dibin/|arşîv=https://web.archive.org/web/20220717133535/https://muradciwan.com/2013/11/05/li-kurdistane-li-ser-rewsa-jinan-reform-dibin/|malper=muradciwan.com|sal=2013-11-05|sal=2013}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 83i9gl4r69up2zhac42c4t6w8g2vrvg 6328834 6328833 2026-08-11T00:33:18Z Wikihez 7344 Guhartoya [[Special:Diff/6328833|6328833]] yê [[Special:Contributions/Balyozbot|Balyozbot]] ([[User talk:Balyozbot|gotûbêj]]) şûnde kir 6328834 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Yê eleqedarê [[ceza]]yê. #: {{jêder-malper|ku|jêgirtin=Hukumeta Kurdistanê hê di sala 2002–yê de qanûna jimare 14 derxist ku kuştina jinê bi çi sedemî dibe bila bibe wek curmeka '''cînayî''' qebûl kir.|nivîskar=Mûrad Ciwan|sernav=Li Kurdistanê li ser rewşa jinan reform dibin|url=https://muradciwan.com/2013/11/05/li-kurdistane-li-ser-rewsa-jinan-reform-dibin/|urlya-arşîvê=https://web.archive.org/web/20220717133535/https://muradciwan.com/2013/11/05/li-kurdistane-li-ser-rewsa-jinan-reform-dibin/|malper=muradciwan.com|dîrok=2013-11-05}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} kh8gxx6tyo4h8yz7fuu742ezu78ajiu birayêt 0 977887 6328818 6260367 2026-08-11T00:29:05Z Balyozbot 7867 /* Formeke navdêrê */ sererastkirin 6328818 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|bira|nêr|îzafe|binavkirî}} {{navdêr|ku|z=n|form=erê}} # {{f|ku|kurmanciya rojhilatî}} ''Rewşa [[îzafeyî]] ya pirjimar a binavkirî ya'' '''[[bira]]'''. #* {{jêder-malper|ku|jêgirtin=Rojekê du bira çîne (çûne) nêçîrê, birayek têt nav rezî avê dibid (dibit), fêqî dibid, bo birayêd xwe şîvê hazir ti(di)kit heta '''birayêt''' wî êvarî ji nêçîrê tên|malper=Cankurd.wordpress.com|url=https://cankurd.wordpress.com/2010/09/15/rosteme-zal-1/|sernav=Rostemê Zal -1|sal=9/2010}} ==== Formên alternatîv ==== * {{mj|standard}} [[birayên]] * [[birên]] * {{mj|kurmanciya serhedî}} [[birayêd]] 4q293v6fcm9up7h08xc37ric6kcvo1a ketinên 0 977909 6329015 5139491 2026-08-11T11:52:18Z Balyozbot 7867 /* Formeke navdêrê */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329015 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|ketin|mê|îzafe|binavkirî}} {{navdêr|ku|z=m|form=erê}} # ''Rewşa [[îzafeyî]] ya pirjimar a binavkirî ya'' '''{{g|ku|ketin#Navdêr}}'''. #* {{jêder-malper|ku|jêgirtin=Bi hemû xewn û xeyalên xwe ve, bi hemû êş û janên xwe ve, bi hemû kêmasî û '''ketinên''' xwe ve, bi hemû çûyîn û dûrketinên xwe ve, ji xwe re bûm çal û kendal, çalên kûr û kendalên xedar.|malper=Candname.com|url=https://candname.com/zarok-u-kestiya-aytmatov/|sernav=Zarok û Keştiya Aytmatov|nivîskar=Faîk Ocal|sal=7/2022}} rwv4nf4xmqv89rkng0u591du9hpcr7q kîkboksîng 0 979228 6329022 6310965 2026-08-11T11:52:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329022 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|kʰîkboksîng}} === Navdêr === [[Wêne:USMC-050716-M-1837P-001.jpg|thumb|250px|Du kes '''kîkboksîngê''' dikin.]] {{navdêr|ku|z=m}} # [[werziş]]ek e ku mirov bi [[kulm]]an/[[mist]]an û [[pêhn]]an li [[dijber]]ê xwe dide: #*{{jêder-malper|ku|jêgirtin=Sibe kîkbokserê kurd ê ji Rojavayê Kurdistanê Ehmed Yûsif Ebdo di lîstika dawî de ya Şampiyoniya Cîhanî ya '''kîkboksîngê''' de rûbirûyî kîkbokserê taylandî bibe ku niha qaremanê cîhanê ye.|malper=Rudaw.com/kurmanci|sal=5/2023|sernav= Bokserê Kurd dê ji bo Şampiyoniya Cîhanî derkeve pêşberî bokserê Taylandî |url=https://www.rudaw.net/kurmanci/sports/260520231}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[kîkboks]] ==== Têkildar ==== * [[kîkbokser]] ==== Etîmolojî ==== Ji {{deyn|en|ku|kickboxing}} ji {{q|en|kick|w=pêhn}} + {{q|en|boxing|w=boksîng, [[kulmanê]], [[mistanê]]}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Kickboxing|nt}}, {{W+|de|Kickboxen|nt}} * {{Z|zh}}: *: {{Z|cmn}}: {{W|cmn|踢拳|tr=tīquán}} * {{Z|id}}: {{W|id|kickboxing}} * {{Z|ar}}: {{W|ar|كِيك بُوكْس|n|tr=kik buks}} * {{Z|eo}}: {{W|eo|piedbato-bokso}} * {{Z|fi}}: {{W+|fi|potkunyrkkeily}} * {{Z|fr}}: {{W+|fr|kick-boxing|n}} * {{Z|nl}}: {{W+|nl|kickboksen|n}} * {{Z|en}}: {{W+|en|kickboxing}} * {{Z|ja}}: {{W+|ja|キックボクシング|tr=kikkubokushingu|sc=Jpan}} * {{Z|ko}}: {{W+|ko|킥복싱|sc=Kore}} * {{Z|ms}}: {{W|ms|kickboxing}} * {{Z|pl}}: {{W+|pl|kick boxing|m}}, {{W+|pl|kick-boxing|m}} * {{Z|pt}}: {{W|pt|kickboxing|m}}, {{W|pt|kickboxe|m}} * {{Z|ru}}: {{W+|ru|кикбо́ксинг|m}} * {{Z|sv}}: {{W|sv|kickboxning|c}} * {{Z|uk}}: {{W|uk|кікбо́ксинг|m}} * {{Z|vi}}: {{W|vi|quyền cước}} * {{Z|el}}: {{W|el|κικ μπόξινγκ|nt}} {{werger-bin}} 86tesyxqxkvpr8mi1f3x4yomd70kgc6 kîkbokser 0 979230 6329021 6310964 2026-08-11T11:52:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329021 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === *{{ku-IPA|kʰîkbokser}} === Navdêr === [[Wêne:USMC-050716-M-1837P-001.jpg|thumb|250px|Du '''kîkbokser''' kîkboksîngê dikin.]] {{nav|ku|z=mn}} # [[werzişvan]]ên [[kîkboksîng]]ê: #* {{jêder-malper|ku|jêgirtin=Sibe '''kîkbokserê''' kurd ê ji Rojavayê Kurdistanê Ehmed Yûsif Ebdo di lîstika dawî de ya Şampiyoniya Cîhanî ya kîkboksîngê de rûbirûyî kîkbokserê taylandî bibe ku niha qaremanê cîhanê ye.|malper=Rudaw.com/kurmanci|sal=5/2023|sernav= Bokserê Kurd dê ji bo Şampiyoniya Cîhanî derkeve pêşberî bokserê Taylandî|url=https://www.rudaw.net/kurmanci/sports/260520231}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê û nêr}} ==== Têkildar ==== * [[kîkboksîng]] ==== Etîmolojî ==== Ji {{deyn|en|ku|kickboxer}} ji {{q|en|kick|w=pêhn}} + {{q|en|boxer|w=bokser, [[kulmvan]], [[mistvan]]}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Kickboxer|n}}, {{W+|de|Kickboxerin|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W-|cmn|[[自由搏擊]][[選手]]|tr=zìyóu bójī xuǎnshǒu}} * {{Z|fi}}: {{W+|fi|potkunyrkkeilijä}} * {{Z|fr}}: {{W+|fr|kickboxeur|n}}, {{W+|fr|kickboxeuse|m}} * {{Z|nl}}: {{W+|nl|kickbokser|n}} * {{Z|en}}: {{W+|en|kickboxer}} * {{Z|ro}}: {{W+|ro|kickboxer|n}} * {{Z|ru}}: {{W+|ru|кикбо́ксер|n}}, {{W+|ru|кикбо́ксерша|m}} * {{Z|sv}}: {{W-|sv|kickboxare|g}} * {{Z|el}}: {{W-|el|κικ μπόξερ|nt}} {{werger-bin}} :{{werger çavkanî|en|kickboxer|beş=Ev qismê Wergerê|oldid=71427767}} m3pamp3l7p6nf0o5hjstuzbxfublgtm muxerref 0 979426 6329068 6261053 2026-08-11T11:54:11Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329068 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # {{f|ku|dîn}} [[sexte]], [[guherandî]], [[xirabkirî]] <br>(bi taybetî [[nivîs]]ên [[pîroz]] yên bêyî [[ruxset]] [[guherandî]]) #* {{jêder-malper|ku|jêgirtin=Pey ku mîsyoneran fûarên kitaban ji xwe re kirin mesken û dest bi belavkirina Incîla '''muxerref''' kirin, li Edeneyê jî Dostên Quranê di fuara kitêban a Tuyapê de bê pere dest bi belavkirina Quran kirin.|malper=Cinarinsesi.com|sal=1/2013|sernav=Li Hember Misyonertiyê Quran Pîroz Hat Belav Kirin|url=https://www.cinarinsesi.com/li-hember-misyonertiye-quran-piroz-hat-belav-kirin-24803h.htm}} # [[guherî]], [[guheriyayî]], [[xirabbûyî]], [[deforme]]: #* {{jêder-malper|ku|jêgirtin="Gilîdax" ji "Agirî Dağı" ya tirkî '''muxerref''' e|nivîskar=Nevzat EMİNOĞLU|malper=acikbilim.yok.gov.tr|sernav=Nêrînek gelemperî li Mîrektiya Hîzanê: îlm û edebiyat|sal=2016|url=https://acikbilim.yok.gov.tr/bitstream/handle/20.500.12812/101613/yokAcikBilim_10129790.pdf?sequence=-1}} ==== Formên alternatîv ==== {{kol2|ku|mixeref|mixerref|muxeref}} ==== Etîmolojî ==== Deyn ji {{deyn|ar|ku|مُحَرَّف‎}} ji lêkera {{g|ar|حَرَّفَ}}. Ji heman rehî: {{q|ku|texrîf}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W|ar|مُحَرَّف‎}} * {{Z|en}}: {{W|en|falsified}}, {{W|en|feigned}}, {{W|en|changed}}, {{W|en|corrupted}}, [[dissembled]], [[false]], [[counterfeit]], [[sham]], [[fictitious]], [[artificial]], [[factitious]]; [[affected]], [[prim]], [[finical]] * {{Z|tr}}: {{W|tr|muharref}}, {{W|tr|sahte}} {{werger-bin}} 4a9ozwazvpnjhp9yoykcwzor5ata6pa nîvkurdî 0 979445 6329077 6197514 2026-08-11T11:54:31Z Balyozbot 7867 /* Rengdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329077 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[beş|Beş]]ek bi [[kurdî]] û [[beş]]ek bi [[ziman]]ekî [[din]]. #* {{jêder-malper|ku|jêgirtin=Bê şik, divê mirov vê jî bibêje ku ev kovar '''nîvkurdî''' û nîvtirkî bûn û di ber siyasetê re cîh didan nivîs û lêkolînên wêjeyî jî ku vê taybetmendiyê dê tovên wêjeya kurmanciyê ya nuh jî biavêtana.|nivîskar=Îbrahîm Seydo Aydogan|sernav=Celadet bedirxan, çavkaniyên Hawarê û kurdayetiya nû|malper=Candname.com|sal=5/2019|url=https://candname.com/celadet-bedirxan-cavkaniyen-haware-u-kurdayetiya-nu/}} # [[axiftin|Axaftin]] an [[nivîs]]a ku tê de [[hinek]] [[peyv]] bi [[kurdî]] û hinek jî bi zimanekî [[din]] in. #* {{jêder-malper|ku|jêgirtin=Dûra jinekê ji Diyarbekrê telefon kir, wê jî nîvtirkî û '''nîvkurdî''' derdê xwe ji tuxtor re got.|malper=Zinarexamo.blogspot.com|sernav=Dîyaloga kerr û lalan |dîrok=2009-1-25|url=https://zinarexamo.blogspot.com/2009/01/dyaloga-kerr-lalan.html?m=1}} ==== Têkildar ==== {{kol3|ku|erebmancî|inglîzmancî|sormancî|tirkmancî|nîvziman}} ==== Etîmolojî ==== Ji {{pêş|ku|nîv-|kurdî}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} rqdlq1vrq96dz8nf45hxz50n1ztibxs însîcam 0 979447 6328993 6260299 2026-08-11T11:51:29Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328993 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[rêkûpêkî]], [[sazgarî]], [[rewanî]], [[lihevî]], [[lihevkirin]], [[lihevhatin]], [[sazî]], [[berdewamî]], [[duzgunî]], [[tebayî]], [[konsîstans]]: #* {{jêder-malper|ku|jêgirtin=Wezîrê Xezîneyê Şîmşek: "Ji bo ku em bigihîjin hedefa xwe ya zêdekirina refaha civakî zelalbûn, '''însîcam''', pêşbînî û hevsengiya normên navneteweyî wê bibin rêgezên me yên sereke."|malper=Aa.com.tr/kk|sal=6/2023|sernav= Wezîrê Xezîneyê Şîmşek: Zelalbûn, însîcam, pêşbînî û hevsengiya normên navneteweyî wê bibin rêgezên me yên sereke|url=https://www.aa.com.tr/kk/vg/galeriya-v%C3%AEdeoy%C3%AA/wez%C3%AEr%C3%AA-xez%C3%AEney%C3%AA-s%C3%AEmsek-zelalb%C3%BBn-%C3%AEns%C3%AEcam-p%C3%AAsb%C3%AEn%C3%AE-%C3%BB-hevsengiya-norm%C3%AAn-navnetewey%C3%AE-w%C3%AA-bibin-r%C3%AAgez%C3%AAn-me-y%C3%AAn-sereke/0}} ==== Formên alternatîv ==== *[[insicam]] *[[însicam]] ==== Etîmolojî ==== Ji {{deyn|ar|ku|اِنْسِجَام|w=[[rêkûpêkî]], [[rewanî]]}} ji rehê {{g|ar|س ج م|w=[[herikîn]], [[rewan]] bûn}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Beständigkeit|m}}, {{W+|de|Regelmäßigkeit|m}}, {{W+|de|Zuverlässigkeit|m}}, {{W|de|Verlässlichkeit|m}} * {{Z|az}}: {{W|az|ardıcıllıq}} * {{Z|bg}}: {{W+|bg|постоянство|nt}}, {{W+|bg|устойчивост|m}} * {{Z|id}}: {{W+|id|konsistensi}} * {{Z|eo}}: {{W|eo|kohereco}} * {{Z|fi}}: {{W+|fi|johdonmukaisuus}}, {{W+|fi|yhdenmukaisuus}}, {{W+|fi|tasaisuus}} * {{Z|gl}}: {{W|gl|consistencia|m}} * {{Z|ka}}: {{W|ka|მუდმივობა}}, {{W|ka|თანმიმდევრობა}}, {{W|ka|კონსისტენტურობა}}, {{W+|ka|ერთიანობა}}, {{W|ka|შეთანხმებულობა}}, {{W|ka|ურყევობა}} * {{Z|en}}: {{W|en|consistency}}, {{W|en|congruence}}, {{W|en|uniformity}} * {{Z|ga}}: {{W|ga|comhsheasmhacht|m}} * {{Z|it}}: {{W+|it|coerenza|m}}, {{W+|it|costanza|m}} * {{Z|ca}}: {{W+|ca|consistència|m}} * {{Z|ms}}: {{W|ms|ketekalan}}, {{W|ms|kekonsistenan}}, {{W|ms|konsistensi}} * {{Z|no}}: {{W|no|konsistens}} * {{Z|pl}}: {{W+|pl|spójność|m}} * {{Z|pt}}: {{W+|pt|consistência|m}} * {{Z|ro}}: {{W+|ro|consistență|m}} * {{Z|es}}: {{W+|es|consistencia|m}} * {{Z|tl}}: {{W|tl|pagkamaugnayin}} * {{Z|tr}}: {{W|tr|insicam}} * {{Z|el}}: {{W+|el|συνέπεια|m}} {{werger-bin}} 2fmhzfwuadahfhgecl3wy3ng1eqwmul giyawerk 0 979448 6328967 5150146 2026-08-11T11:50:23Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328967 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m}} # {{guherto|giyagewrik}}: #* {{jêder-malper|ku|jêgirtin=Li Tilloya navçeya Sêrtê Salvia Siirtica (giyawerk) ku tenê bi qasî 15 rojan vedike, tê parastin… Şêniyên herêmê tevlî ekîban her sal devera ku '''giyawerk''' lê digihîje ji bo biparêzin der û dora wê têl dikin û diparêzin.|malper=Aa.com.tr/kk|sal=6/2023|sernav= Giyawerk a li Sêrtê bi tenê qasî 15 rojan vedike tê parastin|url=https://www.aa.com.tr/kk/jiyan/giyawerk-a-li-s%C3%AArt%C3%AA-bi-ten%C3%AA-qas%C3%AE-15-rojan-vedike-t%C3%AA-parastin/2913459}} teon9jhzfblvxb692nbg10oi94gia0c emilîn 0 979829 6328945 6306039 2026-08-11T11:48:11Z Balyozbot 7867 sererastkirin 6328945 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|'emilîn}} / عەملین * {{ku-kîte}} === Lêker === {{lêker|ku|c=x-ngh|niha=-emil-|borî=-emilî-}} {{tewandin}} # [[kar kirin]], [[şol kirin]], [[îş kirin]], [[xebitîn]], [[şixulîn]] #* {{jêder-malper|ku|jêgirtin=Lêlê divê sala wê salê dere dergistiyê xwe re cih û karan '''diemile'''.|malper=candname.com|sernav=strana "Gewrê"|nivîskar={{w|Meryem Xan}} (1904-1949)|url=https://candname.com/awaza-xeribi-teneti-huzn-u-kedere-meryem-xan/}} ==== Etîmolojî ==== Ji {{deyn|ar|ku|عَمِلَ}} + kurdî {{q|ku|-în}}. [[hevreh|Hevreh]]a {{q|ku|emel}}, {{q|ku|emilandin}}, {{q|ku|amil}}. ==== Bide ber ==== * {{g|ku|elimîn}} ==== Bi alfabeyêmn din ==== * {{ku-ar|عەملین}} ==== Têkildarî ==== {{kol2|ku |amil |emel |emilandin }} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr === {{navdêr|ku|z=m}} # [[karkirin]], [[şolkirin]], [[îşkirin]], [[xebitîn]], [[şixulîn]] ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Werger ==== {{werger-ser}} {{werger-bin}} fw2qu641m1d4k17lism31e01hyofze4 muaythai 0 979966 6329065 6260695 2026-08-11T11:54:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329065 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|muaytay|miwaytay}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|spor}} [[spor|Spor]]ek e mirov bi [[mist]]an û [[pêhn]]an û [[ser]]î li [[dijber]]ê xwe dide. #: {{hevwate|ku|tayboksîng}} #* {{jêder-malper|ku|jêgirtin=Rahêner Gursel Tayam jî got: “Şampiyoniya Êrîvanê di sê beşan de bo ciwanên me baş bû. Xelkê me ji ber ku Êrîvanê mînak werdigirin, êdî bêtirs zarokên xwe dişînin vê derê. Êrîvan di beşên boks, kickboks û '''muaythai''' de bû şampiyon. Em şanaziyê pê dikin.|malper=Rudaw.net/kurmanci|sal=6/2023|sernav=Şampiyona Dêrsîmî: Min hêviyên keçên Dêrsîmê geş kirin|url=https://www.rudaw.net/kurmanci/sports/27062023}} ==== Formên alternatîv ==== * [[muaytay]] ==== Têkildar ==== * [[lethwei]] * [[muay boran]] * [[muay lao]] ==== Etîmolojî ==== Bi riya îngilîzî {{q|en|Muay Thai}} ji {{deyn|th|ku|มวยไทย|tr=muai-tai|w=boksînga taylandî}} ji {{g|th|มวย|w=boksîng}} + {{g|th|ไทย|w=taylandî}}. ==== Werger ==== {{werger-ser}} {{werger-bin}} o5vqfuzhihhmmpxq78299j2cehr9b5y fîlvan 0 979984 6328962 5998289 2026-08-11T11:50:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328962 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === *{{ku-IPA}} === Navdêr === [[Wêne:Mahout_on_an_elephant;_gouache_on_paper.jpg|thumb|'''Fîlvanekî''' li fîlekî siwar.]] {{navdêr|ku|z=mn}} # {{mijar|ku|meslek}} [[siwar|Siwar]]ê [[fîl]]an, [[xwedîker]]ê [[fîl]]an, [[rahêner]]ê [[fîl]]an. #: {{hevmane|ku|fîlajo}} #* {{jêder-malper|ku|jêgirtin=Û karwan bi rêh xistin û '''fîlvan''' da pey fîl û stûrvan (=[[hêştir]]van) da pey stûr (=hêştirê) û [[parxêl]]van da pey parxêlê.'' |malper=ku.wikibooks.org|https://ku.wikibooks.org/wiki/Ay%C4%81dg%C4%81r_%C4%AB_zar%C4%93r%C4%81n|sal=7/2013|sernav=Yadigarê zerîran, wergera kurdî|url=https://ku.wikibooks.org/wiki/Ay%C4%81dg%C4%81r_%C4%AB_zar%C4%93r%C4%81n}} ==== Bi alfabeyên din ==== * {{ku-ar|فیلڤان}} ==== Jê ==== * {{g|ku|fîlvanane}} * {{g|ku|fîlvanî}} * {{g|ku|fîlvanîtî}} * {{g|ku|fîlvantî}} ==== Etîmolojî ==== Ji {{paş|ku|fîl|-van}}, herwiha bide ber farisî {{g|fa|فیلبان|tr=fîlban}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Mahaut|n}}, {{W+|de|Mahout|n}}, {{W+|de|Mahut|n}}, {{W-|de|Elefantentreiber|n}} * {{Z|as}}: {{W-|as|মাউত}} * {{Z|eu}}: {{W-|eu|mahout}} * {{Z|bn}}: {{W+|bn|মাহুত}} * {{Z|my}}: {{W+|my|ဆင်ဦးစီး}}, {{W+|my|ယရည်း}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|象夫}}, {{W+|cmn|象奴}} * {{Z|da}}: {{W-|da|mahout}}, {{W-|da|mahut}}, {{W-|da|elefantdriver}}, {{W-|da|elefantfører}} * {{Z|id}}: {{W+|id|mahout}} * {{Z|et}}: {{W-|et|elevandijuht}} * {{Z|fa}}: {{W-|fa|فیل‌بان}} * {{Z|fi}}: {{W-|fi|norsunajaja}} * {{Z|fr}}: {{W+|fr|mahout|n}}, {{W+|fr|cornac|n}} * {{Z|gl}}: {{W-|gl|cornaca|n}} * {{Z|inc-ogu}}: {{W-|inc-ogu|पुंतार}} * {{Z|hi}}: {{W-|hi|महौत}}, {{W+|hi|महाउत}}, {{W+|hi|महावत|n}} * {{Z|he}}: {{W-|he|פַּיָּל|n|tr=payal}} * {{Z|en}}: {{W+|en|mahout}}, {{W|en|elephant keeper}}, {{W|en|elephant driver}}, {{W|en|elephant trainer}} * {{Z|rkt}}: {{W-|rkt|মাহুত}} * {{Z|ca}}: {{W-|ca|mahout}} * {{Z|ko}}: {{W-|ko|머하웃}} * {{Z|lt}}: {{W-|lt|mahoutas}} * {{Z|mk}}: {{W-|mk|ма́хаут|n}} * {{Z|ml}}: {{W+|ml|ആനപ്പാപ്പാൻ|n}}, {{W+|ml|പാപ്പാൻ|n}} * {{Z|hu}}: {{W-|hu|elefánthajcsár}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|elefantfører}} * {{Z|pl}}: {{W+|pl|kornak|n}} * {{Z|pt}}: {{W+|pt|cornaca|n}} * {{Z|pa}}: {{W-|pa|ਮਹੌਤ}} * {{Z|ro}}: {{W+|ro|cornac}} * {{Z|ru}}: {{W-|ru|махау́т|n}}, {{W-|ru|[[пого́нщик]] [[слон|слоно́в]]|n}} * {{Z|es}}: {{W-|es|mahout|n}}, {{W+|es|cornaca|n}} * {{Z|sv}}: {{W-|sv|mahout}} * {{Z|ta}}: {{W+|ta|பணிக்கன்}}, {{W+|ta|யானைப்பாகன்}} * {{Z|th}}: {{W+|th|ควาญ}}, {{W-|th|ควาญช้าง}} * {{Z|te}}: {{W+|te|గజారోహుడు}}, {{W+|te|మావటి}} * {{Z|mkh-mvi}}: {{W-|mkh-mvi|quan voi}} * {{Z|vi}}: {{W+|vi|quản tượng}} * {{Z|km}}: {{W-|km|ហត្ថិគោបកៈ|tr=hattʰe’koopa’ka’}}, {{W-|km|ហ្មដំរី}}, {{W+|km|ទ្រមាក់|tr=trɔmeak}} {{werger-bin}} :{{werger çavkanî|en|mahout|beş=Ev qismê Wergerê|oldid=75056231}} bljulah7vi5dr2gh0hrq9ydy7u9zu0n çileyê havînê 0 980029 6328889 6260340 2026-08-11T11:24:51Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328889 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|ç(h)ileyê ha"vînê|ç(h)ilê ha"vînê}} === Navdêr === [[Wêne:Northern Spain (20576352056).jpg|thumb|Li '''çileyê havînê''' bi piranî hewa gelekî germ e, barîn kêm e yan nîne û erd hişk dibe.]] {{navdêr|ku|z=n}} # [[nîv]]a [[havîn]]ê, [[nav]]a [[havîn]]ê, <br>[[germ]]tirîn [[dem]]a [[havîn]]ê, <br>40 rojên germtirîn yên havînê #: {{dijwate|ku|çileyê zivistanê}} # [[cejn]]eke [[êzidî|êzidiyan]] e ku [[havîn]]an tê kirin: #* {{jêder-malper|ku|jêgirtin=Îro roja duşemê 02.08.2021ê Cejna '''Çilê Havînê''' ye li nava êzdiyan lêbelê îsal ji ber vîrusa koronayê merasîmên cejna çileyê havînê nayêne kirin.|malper=basnews.com|https://www.basnews.com/kr/|sal=8/2021|sernav=Îro Cejna Çilê Havînê ye li nava êzdiyan|url=https://www.basnews.com/kr/babat/704832}} ==== Formên alternatîv ==== * {{mj|devkî}} [[çilê havînê]] ==== Bi alfabeyên din ==== * {{ku-ar|چلەیێ هاڤینێ}} * {{ku-kr|чʹьләйе һавине}} ==== Pirhejmar ==== * {{mj|nivîskî}} [[çileyên havînê]], [[çileyên havînan]] * {{mj|devkî}} [[çilên havînê]], [[çilên havîna]] ==== Etîmolojî ==== [[çile]] + [[-yê]] + [[havîn]] + [[-ê]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Hochsommer|n}} * {{Z|ar}}: {{W-|ar|قَيْظ}}, {{W-|ar|مُنْتَصَفُ الصَّيْف}} * {{Z|et}}: {{W-|et|kesksuvi}}, {{W-|et|südasuvi}} * {{Z|fa}}: {{W-|fa|چله‌ی تابستان|tr=çileyi tabistan}} * {{Z|fi}}: {{W-|fi|keskikesä}} * {{Z|nl}}: {{W+|nl|midzomer|n}} * {{Z|en}}: {{W+|en|midsummer}}, {{W+|en|dog days}} * {{Z|is}}: {{W-|is|miðsumar|nt}} * {{Z|ja}}: {{W+|ja|真夏|tr=まなつ, manatsu}} * {{Z|ko}}: {{W+|ko|한여름}} * {{Z|nv}}: {{W-|nv|shį́ʼííłnííʼ|sc=Latn}} * {{Z|pl}}: {{W-|pl|śródlecie|nt}} * {{Z|ro}}: {{W-|ro|mijlocul verii|nt}}, {{W+|ro|miezul verii|nt}} * {{Z|se}}: {{W-|se|mihcamárat}} * norwecî: *: {{Z|nb}}: {{W-|nb|midtsommer|nt}} * {{Z|es}}: {{W-|es|pleno verano|n}} * {{Z|sv}}: {{W+|sv|midsommar|c}} * {{Z|tr}}: {{W-|tr|yazın ortası}} * {{Z|el}}: {{W+|el|μεσοκαλόκαιρο|nt}} {{werger-bin}} fm3g8de8ar0xrq8zuswf6y3rgerbzlr 6328927 6328889 2026-08-11T11:41:24Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6328927 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|ç(h)ileyê ha"vînê|ç(h)ilê ha"vînê}} === Navdêr === [[Wêne:Northern Spain (20576352056).jpg|thumb|Li '''çileyê havînê''' bi piranî hewa gelekî germ e, barîn kêm e yan nîne û erd hişk dibe.]] {{navdêr|ku|z=n}} # [[nîv]]a [[havîn]]ê, [[nav]]a [[havîn]]ê, <br>[[germ]]tirîn [[dem]]a [[havîn]]ê, <br>40 rojên germtirîn yên havînê #: {{dijwate|ku|çileyê zivistanê}} # [[cejn]]eke [[êzidî|êzidiyan]] e ku [[havîn]]an tê kirin: #* {{jêder-malper|ku|jêgirtin=Îro roja duşemê 02.08.2021ê Cejna '''Çilê Havînê''' ye li nava êzdiyan lêbelê îsal ji ber vîrusa koronayê merasîmên cejna çileyê havînê nayêne kirin.|malper=basnews.com|https://www.basnews.com/kr/|sal=8/2021|sernav=Îro Cejna Çilê Havînê ye li nava êzdiyan|url=https://www.basnews.com/kr/babat/704832}} ==== Bi alfabeyên din ==== * {{ku-ar|چلەیێ هاڤینێ}} * {{ku-kr|чʹьләйе һавине}} ==== Formên alternatîv ==== * {{mj|devkî}} [[çilê havînê]] ==== Etîmolojî ==== [[çile]] + [[-yê]] + [[havîn]] + [[-ê]] ==== Pirhejmar ==== * {{mj|nivîskî}} [[çileyên havînê]], [[çileyên havînan]] * {{mj|devkî}} [[çilên havînê]], [[çilên havîna]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Hochsommer|n}} * {{Z|ar}}: {{W-|ar|قَيْظ}}, {{W-|ar|مُنْتَصَفُ الصَّيْف}} * {{Z|et}}: {{W-|et|kesksuvi}}, {{W-|et|südasuvi}} * {{Z|fa}}: {{W-|fa|چله‌ی تابستان|tr=çileyi tabistan}} * {{Z|fi}}: {{W-|fi|keskikesä}} * {{Z|nl}}: {{W+|nl|midzomer|n}} * {{Z|en}}: {{W+|en|midsummer}}, {{W+|en|dog days}} * {{Z|is}}: {{W-|is|miðsumar|nt}} * {{Z|ja}}: {{W+|ja|真夏|tr=まなつ, manatsu}} * {{Z|ko}}: {{W+|ko|한여름}} * {{Z|nv}}: {{W-|nv|shį́ʼííłnííʼ|sc=Latn}} * {{Z|pl}}: {{W-|pl|śródlecie|nt}} * {{Z|ro}}: {{W-|ro|mijlocul verii|nt}}, {{W+|ro|miezul verii|nt}} * {{Z|se}}: {{W-|se|mihcamárat}} * norwecî: *: {{Z|nb}}: {{W-|nb|midtsommer|nt}} * {{Z|es}}: {{W-|es|pleno verano|n}} * {{Z|sv}}: {{W+|sv|midsommar|c}} * {{Z|tr}}: {{W-|tr|yazın ortası}} * {{Z|el}}: {{W+|el|μεσοκαλόκαιρο|nt}} {{werger-bin}} p6lqttc85jybqs7p6n20pro7wrcq4ex çilê havînê 0 980030 6328890 5932215 2026-08-11T11:24:54Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328890 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # {{guherto|çileyê havînê}} #* {{jêder-malper|ku|jêgirtin=Îro roja duşemê 02.08.2021ê Cejna '''Çilê Havînê''' ye li nava êzdiyan lêbelê îsal ji ber vîrusa koronayê merasîmên cejna çileyê havînê nayêne kirin.|malper=basnews.com|https://www.basnews.com/kr/|sal=8/2021|sernav=Îro Cejna Çilê Havînê ye li nava êzdiyan|url=https://www.basnews.com/kr/babat/704832}} ==== Etîmolojî ==== Ji {{heve|ku|çile|havîn}}. 94mnpb1wvioo7pxfwdaz4idpwxkgnmy ekoturîzm 0 980033 6328941 6260769 2026-08-11T11:47:16Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328941 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|ekʰotʰurîzm}} === Navdêr === [[Wêne:Llano del Muerto en Perquín, El Salvador - 2011.jpg|thumb|[[sûlav|Sûlav]] yek ji [[xweştivî]]tirîn [[dîmen]]ên geştiyarî ne.]] {{navdêr|ku|z=m}} # [[geştiyarî|geştyariya]] [[berpirsiyarane]], <br>[[turîzm]]a ku [[rêz lê girtin|rêz li]] [[heywan]] û [[riwek]] û [[aborî|aboriya]] [[cih]]ê [[turîzm]]ê [[rêz lê girtin|digire]] #: {{hevwate|ku|turîzma ekolojîk|geştiyariya kesk|turîzma kesk}} #* {{jêder-malper|ku|jêgirtin=Li Sariqamûşa navçeya Qersê ya xweza û daristanên wê newaze ne, qada '''ekoturîzmê''' roj bi roj bala turîstên xwemalî û biyanî dikişîne.|malper=AA|sal=7/2023|sernav=Qada ekoturîzmê ya li Qersê derfet dide ku meriv ji qelebalixiya bajaran dûr bikeve|url=https://www.aa.com.tr/kk/jiyan/qada-eko-tur%C3%AEzm%C3%AA-ya-li-qers%C3%AA-derfet-dide-ku-meriv-ji-qelebalixiya-bajaran-d%C3%BBr-bikeve/29350913}} ==== Formên alternatîv ==== * [[ekotûrîzm]] ==== Bi alfabeyên din ==== * {{ku-ar|ئەکۆتوریزم}} * {{ku-kr|әкотӧризм}} ==== Têkildarî ==== * [[ekoturîst]] * [[ekoturîstîk]] ==== Etîmolojî ==== Ji {{deyn|en|ku|ecotourism}}, binêre ''[[eko-]]'' û ''[[turîzm]]'' ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W-|af|ekotoerisme}} * {{Z|de}}: {{W-|de|Ökotourismus|n}} * {{Z|az}}: {{W-|az|ekoturizm}} * {{Z|cs}}: {{W-|cs|ekoturistika}} * {{Z|zh}}: :*mandarînî: {{W+|cmn|生態旅遊|tr=shēngtài lǚyóu}}, {{W|cmn|生態觀光|tr=shēngtài guānguāng}} * {{Z|id}}: {{W-|id|ekowisata}}, {{W+|id|ekoturisme}} * {{Z|ar}}: {{W-|ar|سِيَاحَة بِيئِيَّة‎|m}} * {{Z|hy}}: {{W|hy|էկոտուրիզմ|tr=ēkoturizm}} * {{Z|eo}}: {{W-|eo|ekoturismo}} * {{Z|et}}: {{W-|et|ökoturism}} * {{Z|fi}}: {{W-|fi|ekomatkailu}}, {{W-|fi|ekoturismi}} * {{Z|fr}}: {{W|fr|écotourisme|n}} * {{Z|nl}}: {{W+|nl|ecotoerisme}} * {{Z|en}}: {{W+|en|ecotourism}} * {{Z|it}}: {{W-|it|ecoturismo|n}} * {{Z|is}}: {{W-|is|visthæf ferðamennska}} * {{Z|ca}}: {{W+|ca|ecoturisme|n}} * {{Z|lv}}: {{W-|lv|ekotūrisms}} * {{Z|lt}}: {{W-|lt|ekoturizmas}} * {{Z|ms}}: {{W-|ms|ekopelancongan}} * {{Z|hu}}: {{W-|hu|ökoturizmus}} * {{Z|no}}: {{W-|no|økoturisme}} * {{Z|pl}}: {{W-|pl|ekoturystyka}} * {{Z|pt}}: {{W-|pt|ecoturismo|n}} * {{Z|ro}}: {{W-|ro|ecoturism}} * {{Z|se}}: {{W|se|ekoturisma}} * {{Z|sc}}: {{W|sc|ecoturismu}} * {{Z|sh}}: {{W-|sh|eko-turizam}} * {{Z|es}}: {{W+|es|ecoturismo|n}} * {{Z|sv}}: {{W-|sv|ekoturism}} * {{Z|tl}}: {{W-|tl|ekoturismo}} * {{Z|tr}}: {{W-|tr|ekoturizm}} * {{Z|vi}}: {{W-|vi|du lịch sinh thái}} {{werger-bin}} hm5wkw4khz226po9sgl1wcparlj4xwd Endam 0 980048 6328946 6295204 2026-08-11T11:48:18Z Balyozbot 7867 /* Serenav */ sererastkirin 6328946 wikitext text/x-wiki {{bnr-h|endam}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Serenav === {{serenav|ku|z=n}} # {{f|ku|nadir}} Navekî {{navkes|ku|law}} e. #* {{jêder-malper|ku|jêgirtin=Nûçegihanê Rûdawê '''Endam''' Cebar ragihand... ku... agir bi wî cihî ketiye û nehatiye kontrolkirin...|malper=Rudaw.net/kurmanci|sal=7/2023|sernav=Agir bi derdora Firokexenaya Herîrê ket...|url=https://www.rudaw.net/kurmanci/kurdistan/060720237}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Etîmolojî ==== Ji {{q|ku|endam}}. 9ijzd171m7k4q936kgy7f2akmhrn68r jeopark 0 1170332 6328995 6309308 2026-08-11T11:51:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328995 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Yehliu_-_Mushroom_Rock_01.jpg|thumb|250px|'''Jeoparkek''']] {{navdêr|ku|z=m}} # [[park|Park]]a ku ji ber [[giringî|giringiya]] [[jeolojî|jeolojiya]] xwe hatiye [[parastin]]. #* {{jêder-malper|ku|jêgirtin='''Jeoparka''' Nemrûdê ya li Bidlîsê li ser Şaxa '''Jeoparka''' Kurewî ya Rêxistina Perwerde, Zanist û Çandê ya Neteweyên Yekbûyî (UNESCO) hat hesibandin. Ji ber vê, li '''jeoparkê''' xebat tên kirin û li vir 50 qadên jeosîtê hatin diyarkirin. .|malper=Aa.com.tr/kk/|sal=9/2023|sernav=Li Jeoparka Nemrûdê 50 qadên jeosîtê hatin diyarkirin|url=https://www.aa.com.tr/kk/pg/galeriya-w%C3%AAneyan/li-jeoparka-nemr%C3%BBd%C3%AA-50-qad%C3%AAn-jeos%C3%AEt%C3%AA-hatin-diyarkirin/}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Têkildar ==== * [[jeolog]] * [[jeolojî]] * [[jeolojîk]] * [[jeosît]] * [[jeoturîzm]] ==== Etîmolojî ==== Ji {{qertaf|ku|jeo-|park}} li ber modela {{ji|en|ku|geopark}}, {{ji|fr|ku|géoparc}} û/yan {{ji|tr|ku|jeopark}}. ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W|ar|حديقة جيولوجية|m}} * {{Z|fa}}: {{W+|fa|ژئوپارک|tr=jêopark}} * {{Z|fr}}: {{W+|fr|géoparc}} * {{Z|en}}: {{W+|en|geopark}} * {{Z|tr}}: {{W+|tr|jeopark}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|jeopark}} kulbv2pm4jtv17r36by4owks284m47m jeosît 0 1170334 6328996 6309310 2026-08-11T11:51:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6328996 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === [[Wêne:Yehliu_-_Mushroom_Rock_01.jpg|thumb|250px|'''Jeosîtek''']] {{navdêr|ku|z=m}} # [[cih|Cihê]] bi [[jeolojî|jeolojiya]] xwe [[giring]]; [[cih]]ê ku ji ber [[giringî|giringiya]] [[jeolojî|jeolojiya]] xwe hatiye [[parastin]]. #* {{jêder-malper|ku|jêgirtin=Jeoparka Nemrûdê ya li Bidlîsê li ser Şaxa Jeoparka Kurewî ya Rêxistina Perwerde, Zanist û Çandê ya Neteweyên Yekbûyî (UNESCO) hat hesibandin. Ji ber vê, li jeoparkê xebat tên kirin û li vir 50 qadên '''jeosîtê''' hatin diyarkirin.|malper=Aa.com.tr/kk/|sal=9/2023|sernav=Li Jeoparka Nemrûdê 50 qadên jeosîtê hatin diyarkirin|url=https://www.aa.com.tr/kk/pg/galeriya-w%C3%AAneyan/li-jeoparka-nemr%C3%BBd%C3%AA-50-qad%C3%AAn-jeos%C3%AEt%C3%AA-hatin-diyarkirin/}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Têkildar ==== * [[jeolog]] * [[jeolojî]] * [[jeolojîk]] * [[jeopark]] * [[jeoturîzm]] ==== Etîmolojî ==== Ji {{qertaf|ku|jeo-|sîte}} li ber modela {{ji|en|ku|geosite}}, {{ji|fr|ku|géosite}} û/yan {{ji|tr|ku|jeosit}}. ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W+|fr|géosite}} * {{Z|en}}: {{W+|en|geosite}} * {{Z|tr}}: {{W+|tr|jeosit}} {{werger-bin}} mj0tis6gum7efcai24udl6tiwurikyl mentiq 0 1207870 6329054 6311950 2026-08-11T11:53:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329054 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{awayekî din|ku|mantiq}} #* {{jêder-malper|ku|jêgirtin=Bi vegera li ferhengan tê zanîn ku zenberî cureyek ji cureyên gemiyên mezin e. Û li vir, ji xwe dê '''mentiq''' û atmosfera mailkên xanî roniyê bihavêjin ser quncikên tarî yên di zimanê Mem û Zînê de. Xanî dibêje ez bûme mîna Dicle, gava ku pêlan vedide û gemiyên mîna Zenberî dide berxwe.|nivîskar=Jan Dost|sernav=Bêjing û zenberekên seydayê Bozarslan|url=https://diyarname.com/article.php?Idx=94|malper=Diyarname.com|sal=3/2007}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[bêmentiq]] * [[bêmentiqî]] * [[bimentiq]] * [[mentiqdar]] * [[mentiqdarî]] * [[mentiqî]] maxlzalda9pycpsbd2j7wmweas7hrkv destpirtûk 0 1254028 6328909 6323424 2026-08-11T11:27:45Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328909 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA|destp(h)irtûk}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[kitêb|Kitêba]] [[referans]]ê; [[kitêb]]a [[zanist]]ekê ku mirov dikare [[gav]]a [[hewce]] be lê li hin [[agahî|agahiyan]] [[lê gerîn|bigere]] #: {{hevwate|ku|rêbername|berdestname|destname|kitêba destî}} #* {{jêder-malper|ku|jêgirtin=Di '''destpirtûka''' “Rewşa Derûnî, Trawma û Alîkarî Piştî Karesatan” de pisporên tenduristiya derûnî xwestiye li ser çend xalên girîng rawestin ku mirov di wan rewşên karesat û bobelatan de hay ji bertek, nîşêt û rêyên xweparastinê hebin da ku hem bo xwe û hem bo derdora xwe bibin alîkar.|malper=Rudaw.net/kurmanci|sal=10/2023|sernav=Destpirtûka ‘Rewşa Derûnî, Trawma û Alîkarî Piştî Karesatan’ derket|url=https://www.rudaw.net/kurmanci/culture/30102023}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{pêk|ku|dest|pirtûk}}, {{yekser|en|ku|handbook|hûr=1}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Handbuch|nt}} * {{Z|eu}}: {{W-|eu|eskuliburu}}, {{W-|eu|gidaliburu}} * {{Z|be}}: {{W-|be|даве́днік|n|sc=Cyrl}} * {{Z|bg}}: {{W+|bg|справочник|n}}, {{W+|bg|наръчник|n}} * {{Z|cs}}: {{W+|cs|příručka|m}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|手冊|tr=shǒucè}} * {{Z|id}}: {{W+|id|buku pegangan}} * {{Z|hy}}: {{W+|hy|ձեռնարկ}} * {{Z|eo}}: {{W-|eo|manlibro}} * {{Z|fa}}: {{W+|fa|کتاب دستی}} * {{Z|fi}}: {{W+|fi|käsikirja}} * {{Z|fr}}: {{W+|fr|manuel|n}} * {{Z|fy}}: {{W-|fy|hânboek|nt}} * {{Z|gd}}: {{W-|gd|leabhar-làimhe|n}} * {{Z|hi}}: {{W-|hi|लघु ग्रंथ|n}} * {{Z|nl}}: {{W+|nl|handboek|nt}} * {{Z|he}}: {{W-|he|סֵפֶר עֵזֶר|n|tr=séfer 'ézer}}, {{W-|he|סֵפֶר כִּיס|n|tr=séfer kís}}, {{W-|he|ספר שימוש|n|tr=séfer shimúsh|cuda=ספר שימוש \ סֵפֶר שִׁמּוּשׁ}} * {{Z|ang}}: {{W-|ang|handbōc|m}} * {{Z|en}}: {{W+|en|handbook}} * {{Z|it}}: {{W+|it|manuale|n}}, {{W+|it|guida|m}} * {{Z|is}}: {{W-|is|handbók|m}} * {{Z|ja}}: {{W+|ja|便覧|tr=べんらん, benran|sc=Jpan}}, {{W-|ja|ハンドブック|tr=handobukku|sc=Jpan}}, {{W+|ja|手帳|tr=てちょう, techō|sc=Jpan}}, {{W-|ja|手帖|tr=てちょう, techō|sc=Jpan}}, {{W+|ja|案内書|tr=あんないしょ, annaisho|sc=Jpan}} * {{Z|ko}}: {{W+|ko|편람}}, {{W+|ko|안내서}}, {{W-|ko|핸드북}} * {{Z|lv}}: {{W-|lv|rokasgrāmata|m}} * {{Z|mk}}: {{W-|mk|при́рачник|n}}, {{W-|mk|у́патство|nt}} * {{Z|ms}}: {{W-|ms|buku panduan}} * {{Z|mi}}: {{W-|mi|pukapuka aratohu}} * {{Z|hu}}: {{W+|hu|kézikönyv}}, {{W+|hu|segédkönyv}}, {{W+|hu|tankönyv}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|håndbok|n|m}} * {{Z|pl}}: {{W+|pl|podręcznik|n}} * {{Z|pt}}: {{W+|pt|manual|n}} * {{Z|ro}}: {{W+|ro|manual|nt}} * {{Z|ru}}: {{W+|ru|спра́вочник|n}}, {{W+|ru|посо́бие|nt}} * {{Z|sd}}: {{W+|sd|دَستِينامو|n}} * {{Z|es}}: {{W+|es|manual|n}}, {{W+|es|prontuario|n}} * {{Z|sv}}: {{W+|sv|handbok|g}} * {{Z|tl}}: {{W-|tl|dalaklat}} * {{Z|tr}}: {{W+|tr|el kitabı}} * {{Z|uk}}: {{W+|uk|довідни́к|n|sc=Cyrl}} * {{Z|vi}}: {{W+|vi|sổ tay}} * {{Z|cy}}: {{W+|cy|llawlyfr|n}} * {{Z|yi}}: {{W-|yi|האַנטבוך|nt}}, {{W-|yi|האַנטביכל|nt}} * {{Z|el}}: {{W+|el|εγχειρίδιο|nt}} *: Kevn: {{W-|grc|ἐγχειρίδιον|nt}} {{werger-bin}} :{{werger çavkanî|en|handbook|beş=Ev qismê Wergerê|oldid=73175653}} l4jrg2qhgn223yu3rmwaxqe6qo7su61 bîbliyomanî 0 1263704 6328823 6260917 2026-08-11T00:31:33Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328823 wikitext text/x-wiki {{bêçavkanî}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[şeydayî|şeydayiya]] [[kitêb]] û [[pirtûk]]an, <br>[[mecnûnî|mecnûniya]] [[kitêb]]an, <br>[[hezkirin]]a [[bêhed]] ji [[kitêb]]an û [[berhevkirin]]a wan #* {{jêder-malper|ku|jêgirtin=“Kesên ji pirtûkan hez dikin re bibliyofil tê gotin. Bibliyo pirtûk e, fîl jî hezkirin e, bibliyofil yanê kesê ji pirtûkan hez dike. Wekî din bibliyomanî heye. Yanê mirovê ku pirtûkan kom dike. Ez bi xwe di navbera bibliyofilî û bibliyomanî de me.|malper=Rudaw.net/kurmanci|sal=11/2023|sernav=Sehafekî Kurd wekî arkeologan dikeve pey pirtûkên kevin|url=https://www.rudaw.net/kurmanci/culture/13112023}} ==== Formên alternatîv ==== * [[bîbliyomaniya]] * [[bîbliyomanya]] ==== Têkildar ==== * [[bîbliyomanyak]] ==== Etîmolojî ==== Ji {{deyn|tr|ku|bibliyomani}} ji {{ji|fr|ku|bibliomanie}}; ''[[bîbliyo-]]'' + ''[[-manî]]''. ==== Werger ==== {{werger-ser}} * {{Z|fr}}: {{W+|fr|bibliomanie|m}} * {{Z|en}}: {{W+|en|bibliomania}} * {{Z|pl}}: {{W+|pl|bibliomania|m}} * {{Z|pt}}: {{W+|pt|bibliomania|m}} * {{Z|tr}}: {{W+|tr|bibliyomani}} * {{Z|el}}: {{W+|el|βιβλιομανία|m}} {{werger-bin}} :{{werger çavkanî|en|bibliomania|beş=Ev qismê Wergerê|oldid=75998002}} kvu9mygt6b66r29vpgwx9wuy9nhwj1o cîwarbûn 0 1318756 6328875 6304445 2026-08-11T10:52:28Z Balyozbot 7867 /* Navdêr */ sererastkirin 6328875 wikitext text/x-wiki {{bnr-l|cîwar bûn}} == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[bicihbûn|Bicihbûn]]a li cihekî. #: {{hevmane|ku|îskan}} #* {{jêder-malper|ku|jêgirtin=Gelek demên dirêj ew hev nabînin. Piştî hatin û '''cîwarbûna''' Stockholmê jî tenêmayîna Şanazê dîsa berdewam dike.|nivîskar=Rohat Alakom|sernav=Ji Edebîyata Kurdên Swêdê: Trîlojîya Mehmed Dehsiwar|url=https://www.kurdarastirmalari.com/yazi-detay-oku-114|urlya-arşîvê=https://web.archive.org/web/20240213174151/https://www.kurdarastirmalari.com/yazi-detay-oku-114|malper=kurdarastirmalari.com|dîrok=2021-04-09}} #* {{jêder-kovar|ku|jêgirtin=Mesela di nav rêvebiriyên mandater de li Iraq û Sûriyeyê ji bo Kurdan çêbûna hin fersendan, Silêmanî, Şam û heta dereceyekê Bexda derxistiye pêş; di wextê Şerê Cîhanê yê Yekem de '''cîwarbûna''' hin eşîrên Êzidî li Qefqasyayê, Rewan (Êrîvan) kiriye navendek; di dema cuntayên leşkerî de koçberiya ber bi diyasporayê ve, hin bajarên Ewropayê lê xasma Stockholm derxistiye pêş; di dema şerê sar de avabûna komareke temenkin li Mehabadê wahayeke edebî welidandiye; bi geşbûna têkoşîna Kurdî re li Kurdistanê çêbûna hin reform û destkeftiyan, cardin Stenbol, Silêmanî, Hewlêr, Amedê wek mekanên senkronîk ên Kurdî derxistiye pêş.|kovar=Nûbihar Akademî|sernav=Qonaxa Stenbolê di Edebiyata Kurdî ya Modern de|url=https://dergipark.org.tr/tr/download/article-file/503946|nivîskar=Ramazan Çeçen|urlya-arşîvê=https://web.archive.org/web/20240213174616/https://dergipark.org.tr/tr/download/article-file/503946|hejmar=8|sal=2017|rûpel=44}} #* {{jêder-malper|ku|jêgirtin=Hejmara yên ku '''cîwarbûna''' li Kurdistanê baştir dibînin, piştî dagîrkirina Mûsilê duqat dibe.|nivîskar=Dr. Azad Ehmed Elî|sernav=Erebên Kurdistanê û têkiliyên wan bi Erebên Erebistanê re|url=https://www.rudaw.net/kurmanci/opinion/18042015|urlya-arşîvê=https://web.archive.org/web/20240213175205/https://www.rudaw.net/kurmanci/opinion/18042015|malper=Rûdaw Kurmancî|dîrok=2015-04-18}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{heve|ku|cîwar|bûn}}. "Bi"ya di serî de ji bo sivikkirina telafûzê ketîye, eslen wekî "'''''bi'''cihûwar'''bûn'''''". ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|settling}} * {{Z|tr}}: {{W+|tr|yerleşme}} {{werger-bin}} 5pdbtwkbsj9tridwmpm9noy3ygla1m9 kurmanciya jorê 0 1324887 6329035 6310773 2026-08-11T11:53:02Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329035 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|ziman}} {{hevmaneya|ku|kurmancî}} #* {{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û|heve=îzafe}} ==== Binêre ==== * {{mane|soranî}} {{g|ku|kurmanciya jêrê}} g7sz3igqbvinlm1sk1mdvzpuzqgfuao kurmanciya jêrê 0 1324888 6329034 6310774 2026-08-11T11:53:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6329034 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|ziman}} {{hevmaneya|ku|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û|heve=îzafe}} ==== Binêre ==== * {{mane|kurmancî}} {{g|ku|kurmanciya jorê}} 9bhm6t1odohoqkg2nalb7thrkh567a5 Wîkîferheng:ceribandin/Default 4 1324891 6328899 6328078 2026-08-11T11:25:31Z Balyozbot 7867 /* Lêker */ sererastkirin 6328899 wikitext text/x-wiki {{<noinclude>Wîkîferheng:ceribandin</noinclude>/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|ku|jêgirtin=Jêgirtinek ji kitêbekê.|nivîskar=Rojen Barnas|sernav=Sîlvan/ Silîvan / FARQÎN|sal=2013|weşandxane=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. q4bgsog0zn6pp8cav0or7552fxwc8y4 Bikarhêner:Wikihez/skrîpt/js/delete.js 2 1357331 6328726 6327906 2026-08-10T21:36:24Z Wikihez 7344 6328726 javascript text/javascript // <nowiki> // Key: mass-delete-category // Label: Jêbirina bi kom // Info: Rûpelên di kategoriyê de an rûpelên girêdayî (Girêdanên li ser vir) bi komî jê dibe (Taybet ji bo adminan) (function() { // Navê fonksiyonê li vir wekî 'mass-delete-category' tê diyarkirin daku loader.js bikar bîne window.wikihez_scripts = window.wikihez_scripts || {}; window.wikihez_scripts['mass-delete-category'] = function() { // Mode diyar bike: 'category' an 'backlinks' function getMode() { if (mw.config.get('wgNamespaceNumber') === 14) { return 'category'; } if (mw.config.get('wgCanonicalSpecialPageName') === 'Whatlinkshere') { return 'backlinks'; } return null; } const mode = getMode(); if (!mode) { mw.notify('Ev amûr tenê di rûpelên kategoriyê de an di rûpelên "Girêdanên li ser vir" de dixebite.', { type: 'error' }); return; } // Rûpela armanc a bidest bixe (kategorî bixwe, an rûpela ku Taybet:Girêdanên_li_ser_vir lê dinêre) function getTargetTitle() { if (mode === 'category') { return mw.config.get('wgPageName'); } // backlinks mode let target = mw.config.get('wgRelevantPageName'); if (!target) { target = mw.util.getParamValue('target'); } return target; } const targetTitle = getTargetTitle(); if (!targetTitle) { mw.notify('Rûpela armanc nehat dîtin.', { type: 'error' }); return; } mw.loader.using(["mediawiki.api", "mediawiki.util", "jquery.ui"]).done(function() { const api = new mw.Api(); function getCategoryMembers(categoryName, callback) { api.get({ action: "query", list: "categorymembers", cmtitle: categoryName, cmlimit: "max", format: "json" }).done(function(data) { if (data.query && data.query.categorymembers) { const members = data.query.categorymembers.reduce((acc, member) => { // Hemû namespaces: 14 binkategorî ne, yên din rûpelên normal/yên din in const group = (member.ns === 14) ? '14' : 'others'; if (!acc[group]) acc[group] = []; acc[group].push(member.title); return acc; }, { 'others': [], '14': [] }); callback(members); } else { callback({ 'others': [], '14': [] }); } }).fail(() => callback({ 'others': [], '14': [] })); } function getBacklinkMembers(pageTitle, callback) { api.get({ action: "query", list: "backlinks", bltitle: pageTitle, bllimit: "max", format: "json" }).done(function(data) { if (data.query && data.query.backlinks) { const nsMap = {}; const members = data.query.backlinks.reduce((acc, member) => { // Rûpelên ku bixwe redirect in ber bi armancê ve, ji yên din cuda tomar bike const group = member.redirect !== undefined ? 'redirects' : 'others'; if (!acc[group]) acc[group] = []; acc[group].push(member.title); nsMap[member.title] = member.ns; return acc; }, { 'others': [], 'redirects': [] }); members.nsMap = nsMap; callback(members); } else { callback({ 'others': [], 'redirects': [], nsMap: {} }); } }).fail(() => callback({ 'others': [], 'redirects': [], nsMap: {} })); } function getMembers(callback) { if (mode === 'category') { getCategoryMembers(targetTitle, callback); } else { getBacklinkMembers(targetTitle, callback); } } // Sedemên jêbirinê yên pêş-danasînkirî. Yekem ji bo mode/target diyar e, // "bot" gişî ye, "custom" nivîsandina bi destan vedibe. function getReasonPresets() { const presets = []; if (mode === 'category') { presets.push({ key: 'default', label: 'Paqijkirina kategoriyê', value: "Paqijkirina kategoriya [[:Kategorî:Madeyên ku bên jêbirin\n|Madeyên ku bên jêbirin]]" }); } else { presets.push({ key: 'default', label: 'Bêçavkanî', value: `Formên [[${targetTitle}]] hatine jêbirin çunkî bêçavkanî ne` }); } presets.push({ key: 'bot', label: 'Xeletiya botê', value: 'Xeletiya botê' }); presets.push({ key: 'custom', label: 'Din (bi destan)', value: '' }); return presets; } function getDefaultReason() { return getReasonPresets()[0].value; } function getDialogTitle() { return mode === 'category' ? 'Jêbirina bi kom ji kategoriyê' : 'Jêbirina bi kom ji rûpelên girêdayî'; } function getSecondGroupConfig() { // { value: hilbijartina di members de, label: ya ku têtê nîşandan } return mode === 'category' ? { value: '14', label: 'Binkategorî' } : { value: 'redirects', label: 'Redirect' }; } function displayModal(members) { const secondGroup = getSecondGroupConfig(); const reasonPresets = getReasonPresets(); const reasonOptionsHtml = reasonPresets.map(p => `<option value="${p.key}">${mw.html.escape(p.label)}</option>` ).join(''); const modalHtml = ` <style> #md-container { /* Şêwaza ronahiyê ya standard */ --md-bg: #ffffff; --md-fg: #202122; --md-border: #a2a9b1; --md-input-bg: #ffffff; --md-list-bg: #f8f9fa; --md-item-border: #eaecf0; --md-item-hover: #fee7e6; --md-danger-bg: #d33333; --md-danger-fg: #ffffff; --md-btn-bg: #f8f9fa; --md-btn-fg: #202122; --md-progress-track: #eaecf0; font-family: sans-serif; padding: 10px; background: var(--md-bg); color: var(--md-fg); } /* Şêwaza tarî: dema tercîha pergalê tarî be (skin-theme-clientpref-os) */ @media (prefers-color-scheme: dark) { html.skin-theme-clientpref-os #md-container { --md-bg: #101418; --md-fg: #eaecf0; --md-border: #54595d; --md-input-bg: #27292d; --md-list-bg: #18181d; --md-item-border: #36383d; --md-item-hover: #3a2626; --md-danger-bg: #f54739; --md-danger-fg: #ffffff; --md-btn-bg: #2b2d31; --md-btn-fg: #eaecf0; --md-progress-track: #36383d; } } /* Şêwaza tarî: dema bikarhêner bi zelalî moda şevê hilbijartibe */ html.skin-theme-clientpref-night #md-container { --md-bg: #101418; --md-fg: #eaecf0; --md-border: #54595d; --md-input-bg: #27292d; --md-list-bg: #18181d; --md-item-border: #36383d; --md-item-hover: #3a2626; --md-danger-bg: #f54739; --md-danger-fg: #ffffff; --md-btn-bg: #2b2d31; --md-btn-fg: #eaecf0; --md-progress-track: #36383d; } /* Fallback: heke tu klasa skînê tune be lê pergal tarî be (nimûne, li derveyî wîkiyê) */ @media (prefers-color-scheme: dark) { html:not(.skin-theme-clientpref-day):not(.skin-theme-clientpref-night):not(.skin-theme-clientpref-os) #md-container { --md-bg: #101418; --md-fg: #eaecf0; --md-border: #54595d; --md-input-bg: #27292d; --md-list-bg: #18181d; --md-item-border: #36383d; --md-item-hover: #3a2626; --md-danger-bg: #f54739; --md-danger-fg: #ffffff; --md-btn-bg: #2b2d31; --md-btn-fg: #eaecf0; --md-progress-track: #36383d; } } .md-input-group { margin-bottom: 12px; } .md-input-group label { display: block; font-weight: bold; margin-bottom: 5px; color: var(--md-fg); } #md-reason, #md-pattern, #md-reason-preset { width: 100%; padding: 8px; box-sizing: border-box; border: 1px solid var(--md-border); background: var(--md-input-bg); color: var(--md-fg); } #md-reason-preset { margin-bottom: 6px; } #md-pattern { font-family: monospace; } #md-list { border: 1px solid var(--md-border); max-height: 200px; overflow-y: scroll; background: var(--md-list-bg); margin-bottom: 10px; } .md-item { padding: 5px 10px; border-bottom: 1px solid var(--md-item-border); cursor: pointer; font-size: 0.85em; display: flex; justify-content: space-between; color: var(--md-fg); } .md-item:hover { background-color: var(--md-item-hover); } .md-item.selected { background-color: var(--md-danger-bg) !important; color: var(--md-danger-fg); } #md-progress-container { display: none; margin-bottom: 15px; } #md-progress-bar { width: 100%; background: var(--md-progress-track); height: 12px; border-radius: 6px; overflow: hidden; } #md-progress-fill { width: 0%; height: 100%; background: var(--md-danger-bg); transition: width 0.2s; } #md-status-text { font-size: 0.85em; margin-top: 5px; text-align: center; color: var(--md-fg); } .md-buttons { display: flex; gap: 5px; } .md-btn { padding: 6px 12px; border: 1px solid var(--md-border); background: var(--md-btn-bg); color: var(--md-btn-fg); cursor: pointer; } .md-btn-danger { background: var(--md-danger-bg); color: var(--md-danger-fg); border-color: var(--md-danger-bg); font-weight: bold; margin-left: auto; } .md-btn:disabled { opacity: 0.5; cursor: default; } /* Şêwaza dîalogê ya jQuery UI (sernav, kêlek) */ .md-dialog.ui-dialog { background: var(--md-bg, #fff); border-color: var(--md-border, #a2a9b1); } .md-dialog .ui-dialog-titlebar { background: var(--md-list-bg, #f8f9fa); border-color: var(--md-border, #a2a9b1); color: var(--md-fg, #202122); } .md-dialog .ui-dialog-title { color: var(--md-fg, #202122); } .md-dialog .ui-dialog-content { background: var(--md-bg, #fff); color: var(--md-fg, #202122); } html.skin-theme-clientpref-night .md-dialog.ui-dialog, html.skin-theme-clientpref-night .md-dialog .ui-dialog-titlebar, html.skin-theme-clientpref-night .md-dialog .ui-dialog-content { background: #101418; color: #eaecf0; border-color: #54595d; } @media (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .md-dialog.ui-dialog, html.skin-theme-clientpref-os .md-dialog .ui-dialog-titlebar, html.skin-theme-clientpref-os .md-dialog .ui-dialog-content { background: #101418; color: #eaecf0; border-color: #54595d; } } </style> <div id="md-container"> <div class="md-input-group"> <label>Sedemê jêbirinê:</label> <select id="md-reason-preset"> ${reasonOptionsHtml} </select> <input type="text" id="md-reason" placeholder="Sedemê binivîse..." value="${getDefaultReason()}"> </div> <div class="md-input-group"> <label>Fîltra Regex (vebijarkî):</label> <input type="text" id="md-pattern" placeholder="Nimûne: ^Bikarhêner:.*"> </div> <div class="md-input-group"> <input type="radio" id="pgRadio" name="md-type" value="others" checked> <label style="display:inline" for="pgRadio">Rûpel (Hemû)</label> &nbsp; <input type="radio" id="catRadio" name="md-type" value="${secondGroup.value}"> <label style="display:inline" for="catRadio">${secondGroup.label}</label> </div> ${mode === 'backlinks' ? ` <div class="md-input-group"> <input type="checkbox" id="md-ns0-filter"> <label style="display:inline" for="md-ns0-filter">Tenê made (ns:0)</label> </div> ` : ''} <div id="md-list"></div> <div id="md-progress-container"> <div id="md-progress-bar"><div id="md-progress-fill"></div></div> <div id="md-status-text">Amade ye...</div> </div> <div class="md-buttons"> <button class="md-btn" id="md-selectAll">Hemûyan hilbijêre</button> <button class="md-btn md-btn-danger" id="md-deleteButton">Jê bibe</button> </div> </div> `; const $dialog = $('<div>').html(modalHtml).dialog({ title: getDialogTitle(), width: 500, modal: true, dialogClass: 'md-dialog' }); function renderList() { const type = $('input[name="md-type"]:checked').val(); const items = members[type] || []; const $list = $('#md-list').empty(); const pattern = $('#md-pattern').val(); const ns0Only = $('#md-ns0-filter').is(':checked'); let regex; try { if(pattern) regex = new RegExp(pattern); } catch(e) {} items.forEach(item => { if (regex && !regex.test(item)) return; if (ns0Only && members.nsMap && members.nsMap[item] !== 0) return; const $el = $('<div>').addClass('md-item').text(item); $list.append($el); }); } $('#md-list').on('click', '.md-item', function() { $(this).toggleClass('selected'); }); $('#md-selectAll').on('click', function() { $('.md-item').addClass('selected'); }); $('#md-reason-preset').on('change', function() { const key = $(this).val(); const preset = reasonPresets.find(p => p.key === key); if (preset && key !== 'custom') { $('#md-reason').val(preset.value); } else { $('#md-reason').val('').focus(); } }); $('#md-pattern, input[name="md-type"], #md-ns0-filter').on('input change', renderList); $('#md-deleteButton').on('click', function() { const selected = $('.md-item.selected').map(function() { return $(this).text(); }).get(); const reason = $('#md-reason').val(); if (selected.length === 0) { alert("Ji kerema xwe rûpelan hilbijêre!"); return; } if (!confirm(`Tu dixwazî ${selected.length} rûpelan jê bibe? Ev kiryar paşve naye girtin!`)) return; $(this).prop('disabled', true); $('.md-btn').prop('disabled', true); $('#md-progress-container').show(); processDeletions(selected, reason, $dialog); }); renderList(); } async function processDeletions(titles, reason, $dialog) { let deleted = 0; const total = titles.length; for (let i = 0; i < total; i++) { const title = titles[i]; const progress = Math.round(((i + 1) / total) * 100); $('#md-progress-fill').css('width', progress + '%'); $('#md-status-text').text(`Tê jêbirin: ${i + 1} / ${total} (${title})`); try { await api.postWithToken("csrf", { action: "delete", title: title, reason: reason + " ([[Bikarhêner:Wikihez/skrîpt/js/delete.js|delete.js]])" }); deleted++; } catch (err) { console.error("Xeletî di jêbirina rûpela " + title + ":", err); } } $('#md-status-text').text(`Temam bû! ${deleted} rûpel hatin jêbirin.`); setTimeout(() => { $dialog.dialog('close'); location.reload(); }, 1500); } // Destpêkirina pêvajoyê getMembers(displayModal); }); }; })(); // </nowiki> 1joxs6uicbjt3wp91ns8itv3hvuycku Gotûbêj:loxîn 1 1357389 6328871 6238977 2026-08-11T09:41:54Z Bibliophile 1215 6328871 wikitext text/x-wiki == loxîn û gûlik == <gallery> Wêne:Эрему́рус замечательный (лат. Eremúrus spectabílis).jpg|thumb|1. ''Eremurus spectabilis'' Wêne:Asphodelus aestivus.jpg|2. ''Asphodelus'' </gallery> Silav @[[Bikarhêner:Bibliophile|Bibliophile]], Te {{q|ku|gûlik}} wekî hevmaneya ''loxîn'' nivîsandiye bi tirkî jî {{q|tr|çiriş otu}}. Ez gûlikê wekî ''Eremurus spectabilis'' (1) nas dikim. ''loxîn'' "Eremurus spectabilis" (1) û "Asphodelus" (2) e? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:19, 25 hezîran 2026 (UTC) :Herwiha peyva "loxîn" li ku derê tê bikaranîn (tenê li Hawêlê)? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:24, 25 hezîran 2026 (UTC) :: Çavkaniya min gulik wekî loxîn bi nav dikir, lewma min wisa got nebe ez ji kitêban jî kontrol bikim. fls66rlsol5i4bsz3pokkohqsfiaymh 6328872 6328871 2026-08-11T09:42:03Z Bibliophile 1215 6328872 wikitext text/x-wiki == loxîn û gûlik == <gallery> Wêne:Эрему́рус замечательный (лат. Eremúrus spectabílis).jpg|thumb|1. ''Eremurus spectabilis'' Wêne:Asphodelus aestivus.jpg|2. ''Asphodelus'' </gallery> Silav @[[Bikarhêner:Bibliophile|Bibliophile]], Te {{q|ku|gûlik}} wekî hevmaneya ''loxîn'' nivîsandiye bi tirkî jî {{q|tr|çiriş otu}}. Ez gûlikê wekî ''Eremurus spectabilis'' (1) nas dikim. ''loxîn'' "Eremurus spectabilis" (1) û "Asphodelus" (2) e? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:19, 25 hezîran 2026 (UTC) :Herwiha peyva "loxîn" li ku derê tê bikaranîn (tenê li Hawêlê)? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:24, 25 hezîran 2026 (UTC) :: Çavkaniya min gulik wekî loxîn bi nav dikir, lewma min wisa got nebe ez ji kitêban jî kontrol bikim.[[Bikarhêner:Bibliophile|Bibliophile]] ([[Gotûbêja bikarhêner:Bibliophile|gotûbêj]]) 09:42, 11 tebax 2026 (UTC) 2rjwtzh6l9jfd4mp0s9q7x6aga817sc Modul:quote 828 1357519 6328695 6328692 2026-08-10T12:05:54Z Wikihez 7344 6328695 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/ceribandin" 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) 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.", full = "ante"}, ["c."] = {anchor = "c.", full = "circa"}, ["p."] = {anchor = "p.", full = "post"}, } -- Process prefixes 'a.' (ante), 'c.' (circa) 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) local prefix = usub(date, 1, 2) local abbr = abbrs[prefix] local abbr_prefix = "" if abbr then abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.anchor .. "</abbr>]]'' " -- Remove lowercase letter, period, and space from beginning of date parameter. date = ugsub(date, "^%l%.%s*", "") end return abbr_prefix, 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). -- -- 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 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") 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 -- 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 = 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 = "tercimeya " 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) 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 "hejmar") 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, need_date 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-meqaleyê", 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,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,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ê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, --{"level", "level"}, --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 = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, 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ê"}, } 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 -- 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 = {} 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 if parent_args[1] == nil 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, ["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 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 qxmnlverr39d7qqulbqclnk1beyii59 6328697 6328695 2026-08-10T12:33:34Z Wikihez 7344 6328697 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/ceribandin" 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) 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). -- -- 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 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") 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 -- 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 = 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 = "tercimeya " 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) 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 "hejmar") 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, need_date 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-meqaleyê", 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,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,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ê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, --{"level", "level"}, --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 = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, 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ê"}, } 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 -- 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 = {} 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 if parent_args[1] == nil 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, ["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 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 n9w10o5umledsk9mwbuqxgoxz8v2w8n 6328708 6328697 2026-08-10T17:26:58Z Wikihez 7344 6328708 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/ceribandin" 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) -- Use the content language's date formatting (as format_date_args() does for the main date) so month names are -- translated (e.g. into Kurdish), instead of {{#formatdate:}}, which reorders day/month/year but always leaves -- month names in English. 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). -- -- 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 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") 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 -- 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 = 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 = "tercimeya " 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) 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 "hejmar") 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, need_date 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-meqaleyê", 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,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,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ê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, --{"level", "level"}, --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 = {"hj", "hejmar"}, sade = "hejmar", urlya = "hejmarê"}, 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ê"}, } 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 -- 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 = {} -- If there's no actual quote text (or translation) to display after the source line, don't add the trailing -- colon, mirroring the equivalent check in show_cite() below. local len_visible = args.text and ulen((args.text:gsub("<[^<>]+>", ""))) or 0 if len_visible == 0 and (not args.t or args.t == "-") and not (args.tr or args.ts or args.norm or args.origtext) then args.nocolon = true end 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 if parent_args[1] == nil 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, ["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 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 ghmuka0r6qbnaps2ofo3c7hds6uemon 6328709 6328708 2026-08-10T17:45:07Z Wikihez 7344 6328709 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/ceribandin" 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). -- -- 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 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") 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 -- 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 = 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 = "tercimeya " 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) 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, need_date 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-meqaleyê", 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,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,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ê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, --{"level", "level"}, --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 if parent_args[1] == nil 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, ["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 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 qc54si103dc4fqnp3oxtb4wbupcr9vn 6328716 6328709 2026-08-10T18:18:15Z Wikihez 7344 6328716 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/ceribandin" 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). -- -- 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 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") 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 -- 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 = 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) 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, need_date 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-meqaleyê", 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,5", true}, {"trans-title", "trans-journal,tercimeya-kovar,trans-magazine,trans-newspaper,tercimeya-xezete,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ê,newspaper_translators,work_tlr,tercimanê-xebatê,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,urlya-kovarê,magazineurl,newspaperurl,urlya-xezeteyê,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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --tercimeyên other video-game params {"system", "sîstem"}, {"system", "pergal"}, {"scene", "sehne"}, --{"level", "level"}, --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 if parent_args[1] == nil 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, ["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 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 6yed4inoyyxwegu6xns1rvjkhdtc9je 6328731 6328716 2026-08-10T22:02:22Z Wikihez 7344 6328731 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/ceribandin" 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). -- -- 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 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") 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 -- 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 = 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) 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, need_date 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-meqaleyê", 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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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-madeyê"}, {"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ê"}, --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 if parent_args[1] == nil 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, ["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 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 pgz7ycwkmxbjd7p5mi5fz95lvbyhbb9 6328747 6328731 2026-08-10T23:11:38Z Wikihez 7344 6328747 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/ceribandin" 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). -- -- 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 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") 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 -- 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 = 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) 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, need_date 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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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 if parent_args[1] == nil 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, ["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 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 rlzy4h6l6n0sf8yeaq9hiy53k8xfzwj 6328765 6328747 2026-08-11T00:19:34Z Wikihez 7344 6328765 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/ceribandin" 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). -- -- 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 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. local month_names = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", } 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 = month_names[mon_num] .. " " .. 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 -- 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 = 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) 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, need_date 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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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"} 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 if parent_args[1] == nil 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, ["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 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 4uapdmqfdzwwtd3x33eweqj8vmeyyqz 6329080 6328765 2026-08-11T11:58:52Z Wikihez 7344 6329080 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/ceribandin" 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). -- -- 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 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. local month_names = { "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December", } 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 = month_names[mon_num] .. " " .. 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 -- 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 = 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) 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, need_date 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) 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) 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] = {required = require_lang, 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, ascite = boolean, } -- 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 if parent_args[1] == nil 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, ["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 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 jzqzgpnwn3c0fpa0egcr6y04y81xjrf Wîkîferheng:Xebat 4 1357857 6328696 6328217 2026-08-10T12:18:11Z Wikihez 7344 6328696 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) d7qsxhlyjgx1o4owzd8kc7b61fs2hag 6328699 6328696 2026-08-10T12:53:10Z Wikihez 7344 /* Modul:quote */ 6328699 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) ::Ev modul hema bêje hazir e. Hûn li ser van madeyan çi difikirin: # {{para|tarîx}} lazim e full date be eger na, lazim e {{para|sal}} were bikaranîn. Feqat "'''2021''' kanûna pêşîn 23" bi vî şiklî bi min ne problem e çnkî derdê en.wikt "attestation" e delîla herî pêşî jî sal e. #: {{demo|sep=wisa xuya dibe<br>|<nowiki>{{jêder-kitêb/ceribandin|en |tarîx=23 December 2021|nivîskar=Harry Hobbs; George Williams|sernav=Micronations and the Search for Sovereignty|url=https://www.cambridge.org/core/books/micronations-and-the-search-for-sovereignty/B0414A3A322695D9EE71E4CDDFDA06DE|weşanxane=Cambridge University Press|rûpel=155|isbn=978-1-009-15012-5|jêgirtin=jêgirtin.|t=-}}</nowiki>}} #{{para|amadekar}}/{{para|edîtor}}/{{para|terciman}} bi şiklê edîtoriya, amadekariya, tercimekirina #: {{demo|sep=dide<br>|<nowiki>{{jêder-kitêb/ceribandin|en |sernav=Medical Surgical Nursing|serî=Juta's Manual of Nursing|cildê-seriyê=volume 4|edîtor=Sophie Mataniele Mogotlane; Joyce Mokoena; Motshedisi Eunice Chauke; Anne Young|sal=2005|weşanxane=Juta Academic|isbn=978-0702171840|rûpel=!12-29|jêgirtin=jêgirtin|t=-}}</nowiki>}} = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) 9v95ld9eiynt3y92k2cdokacfewljj9 6328700 6328699 2026-08-10T13:09:23Z Wikihez 7344 /* Modul:quote */ 6328700 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) ::Ev modul hema bêje hazir e. Hûn li ser van madeyan çi difikirin: # {{para|tarîx}} lazim e full date be eger na, lazim e {{para|sal}} were bikaranîn. Feqat "'''2021''' kanûna pêşîn 23" bi vî şiklî bi min ne problem e çnkî derdê en.wikt "attestation" e delîla herî pêşî jî sal e. #: {{demo|sep=wisa xuya dibe<br>|<nowiki>{{jêder-kitêb/ceribandin|en |tarîx=23 December 2021|nivîskar=Harry Hobbs; George Williams|sernav=Micronations and the Search for Sovereignty|url=https://www.cambridge.org/core/books/micronations-and-the-search-for-sovereignty/B0414A3A322695D9EE71E4CDDFDA06DE|weşanxane=Cambridge University Press|rûpel=155|isbn=978-1-009-15012-5|jêgirtin=jêgirtin.|t=-}}</nowiki>}} #{{para|amadekar}}/{{para|edîtor}}/{{para|terciman}} bi şiklê edîtoriya, amadekariya, tercimekirina #: {{demo|sep=dide<br>|<nowiki>{{jêder-kitêb/ceribandin|en |sernav=Medical Surgical Nursing|serî=Juta's Manual of Nursing|cildê-seriyê=volume 4|edîtor=Sophie Mataniele Mogotlane; Joyce Mokoena; Motshedisi Eunice Chauke; Anne Young|sal=2005|weşanxane=Juta Academic|isbn=978-0702171840|rûpel=!12-29|jêgirtin=jêgirtin|t=-}}</nowiki>}} --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:09, 10 tebax 2026 (UTC) = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) bhtcx93n0atwg41ij3kjeel0grxz3fe 6328701 6328700 2026-08-10T13:11:11Z Wikihez 7344 /* Modul:quote */ Bersiv 6328701 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) ::Ev modul hema bêje hazir e. Hûn li ser van madeyan çi difikirin: # {{para|tarîx}} lazim e full date be eger na, lazim e {{para|sal}} were bikaranîn. Feqat "'''2021''' kanûna pêşîn 23" bi vî şiklî bi min ne problem e çnkî derdê en.wikt "attestation" e delîla herî pêşî jî sal e. #: {{demo|sep=wisa xuya dibe<br>|<nowiki>{{jêder-kitêb/ceribandin|en |tarîx=23 December 2021|nivîskar=Harry Hobbs; George Williams|sernav=Micronations and the Search for Sovereignty|url=https://www.cambridge.org/core/books/micronations-and-the-search-for-sovereignty/B0414A3A322695D9EE71E4CDDFDA06DE|weşanxane=Cambridge University Press|rûpel=155|isbn=978-1-009-15012-5|jêgirtin=jêgirtin.|t=-}}</nowiki>}} #{{para|amadekar}}/{{para|edîtor}}/{{para|terciman}} bi şiklê edîtoriya, amadekariya, tercimekirina #: {{demo|sep=dide<br>|<nowiki>{{jêder-kitêb/ceribandin|en |sernav=Medical Surgical Nursing|serî=Juta's Manual of Nursing|cildê-seriyê=volume 4|edîtor=Sophie Mataniele Mogotlane; Joyce Mokoena; Motshedisi Eunice Chauke; Anne Young|sal=2005|weşanxane=Juta Academic|isbn=978-0702171840|rûpel=!12-29|jêgirtin=jêgirtin|t=-}}</nowiki>}} --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:09, 10 tebax 2026 (UTC) :@[[Bikarhêner:Bikarhêner|Bikarhêner]] û @[[Bikarhêner:Ghybu|Ghybu]] Hîn gelek tişt hene divê îzah bikin û fikrê we pirs bikim, feqat îzahkirin pir zor e, em dest bi bikaranînê bikin û dûre tiştên ku hûn naxwazin em dikarin biguherînîn. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:11, 10 tebax 2026 (UTC) = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) fax54xi1t4e7lvvocp1n6l6cc9ewu5y 6328702 6328701 2026-08-10T13:11:28Z Wikihez 7344 /* Modul:quote */ 6328702 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) ::Ev modul hema bêje hazir e. Hûn li ser van madeyan çi difikirin: # {{para|tarîx}} lazim e full date be eger na, lazim e {{para|sal}} were bikaranîn. Feqat "'''2021''' kanûna pêşîn 23" bi vî şiklî bi min ne problem e çnkî derdê en.wikt "attestation" e delîla herî pêşî jî sal e. #: {{demo|sep=wisa xuya dibe<br>|<nowiki>{{jêder-kitêb/ceribandin|en |tarîx=23 December 2021|nivîskar=Harry Hobbs; George Williams|sernav=Micronations and the Search for Sovereignty|url=https://www.cambridge.org/core/books/micronations-and-the-search-for-sovereignty/B0414A3A322695D9EE71E4CDDFDA06DE|weşanxane=Cambridge University Press|rûpel=155|isbn=978-1-009-15012-5|jêgirtin=jêgirtin.|t=-}}</nowiki>}} #{{para|amadekar}}/{{para|edîtor}}/{{para|terciman}} bi şiklê edîtoriya, amadekariya, tercimekirina #: {{demo|sep=dide<br>|<nowiki>{{jêder-kitêb/ceribandin|en |sernav=Medical Surgical Nursing|serî=Juta's Manual of Nursing|cildê-seriyê=volume 4|edîtor=Sophie Mataniele Mogotlane; Joyce Mokoena; Motshedisi Eunice Chauke; Anne Young|sal=2005|weşanxane=Juta Academic|isbn=978-0702171840|rûpel=!12-29|jêgirtin=jêgirtin|t=-}}</nowiki>}} --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:09, 10 tebax 2026 (UTC) :@[[Bikarhêner:Bikarhêner|Bikarhêner]] û @[[Bikarhêner:Ghybu|Ghybu]] Hîn gelek tişt hene divê îzah bikin û fikrê we pirs bikim, feqat îzahkirin pir zor e, em dest bi bikaranînê bikin û dûre tiştên ku hûn naxwazin em dikarin biguherînîn, dibe? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:11, 10 tebax 2026 (UTC) = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) n272pqzpdwteuitb7rgaiyxtyx43rw2 6328712 6328702 2026-08-10T18:05:06Z Bikarhêner 3719 /* Modul:quote */ Bersiv 6328712 wikitext text/x-wiki {{/ser}} = Karên ferhengî = == Mane == * [[:Kategorî:Madeyên bê beşa mane]] ** [[:Kategorî:Madeyên bê beşa mane bi kurmancî]] Li ser van rûpelan ev made hene ku maneyan wan nehatine nivîsin û divê werin nivîsin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Etîmolojî == *[[:Kategorî:Daxwazên etîmolojiyê]] **[[:Kategorî:Daxwazên etîmolojiyê bi kurmancî]] Li ser van rûpelan ev made hene ku etîmolojiya wan hîn nehatine nivîsin. Ji bo alîkariyê binêre [[WF:Etîmolojî]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Cureyê rêzimanî == * [[:Kategorî:Gotarên bê kategoriya rêzimanî]] * [[:Kategorî:Gotarên bê kategoriya rêzimanî bi kurmancî]] Li ser van rûpelan ev made hene ku cureyên wan yên rêzimanî hîn nehatine nivîsin. Ji bo alîkariyê binêre [[Alîkarî:Cureyên peyvan]] —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Kontrol == * [[:Kategorî:Kontrol]] ** [[:Kategorî:Kontrola maneyê]] Ev madde bi botê hatine çêkirin, yek bi yek divê werin kontrolkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) = Şablon = == IPA == * {{ş|IPA}} divê [[Modul:IPA]] bi kar bîne. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Deng == Kurdîkirina belgekirina {{ş|deng}} lazim e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:06, 19 tîrmeh 2026 (UTC) = Modul = == Modul:form of/templates == * [[Modul:form of/templates]]: Divê ev modul were rojanekirin û xeletiyên berê wekî ([[hevalê]]) werin rastkirin. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) *:Merheba @[[Bikarhêner:Ghybu|Ghybu]] Te gotibû di vê modulê de xeletî hene, jkx tu dikarî li vir binivîsî çi kêmasî hene, daku wextê rojane dikim ez ji bîr nekim? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:16, 21 tîrmeh 2026 (UTC) *::Silav. Nizanim ji bîra min çûye... Herwiha ji bo çêkirina formên navdêran zanînên cîns û tîpa dawî bes e: *::* (-ê, mê) => çemandî, bangkirin *::* (-ê, nêr) => îzafe *::* (-ê, mê û nêr) => îzafe (nêr), bangkirin (mê), çemandî (mê) *::* (-a) => îzafe (mê) *::* (-ekî) => îzafe û çemandî (nêr, nebinavkirî) *::* (-eke) = > îzafe (mê, nebinavkirî) *::* ... *:: <code>if find(mw.title.getCurrentTitle().subpageText, 'ekî$') then ... end</code> *::<code><nowiki>{{ku-tewîn-navForm|<navdêr>|<zayend>}</nowiki></code> *::Tablo û nivîs di yekcarî de tên çêkirin... *::Feqet problem lêzêdekirina mînakan e. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 17:34, 21 tîrmeh 2026 (UTC) *:::Lêzêdekirina kîjan nimûneyan? Ev koda js ji bo çi ye? Qisûrê nenêre min fêm nekir :/ [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:13, 21 tîrmeh 2026 (UTC) *::::Li vira ([[hevalê#Formeke navdêrê]]) di bin maneyên 1. û 2. mînak nayên tevlî kirin :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:18, 21 tîrmeh 2026 (UTC) *:::::Ev tercîh e, ne mecbûrî ye, em dikarin [https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&diff=prev&oldid=6276350 wisa] bikin. Wekî din? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:29, 21 tîrmeh 2026 (UTC) *::::::Min li jor tênê got ku tenê parametreyên "navdêr" û "zayend" hewce nee. Bi '''[//ku.wiktionary.org/w/index.php?title=heval%C3%AA&curid=969734&diff=6276353&oldid=6276350 vî]''' awayî jî tê çêkirin. Parametreyên din ne hewce ne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:38, 21 tîrmeh 2026 (UTC) *:::::::Ji bo wê şabloneke din lazim e, bila ev şablon wekî îngilîzî bimîne em ji bo kurmancî yekî din çêkin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:42, 21 tîrmeh 2026 (UTC) *::::::::[https://ku.wiktionary.org/w/index.php?title=heval%C3%AA&oldid=6276885 wisa] çawa ye? Bi min nivîsîna nimûneyan zêde ne lazim e ji ber ku ti kes serê xwe pê naêşîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:46, 23 tîrmeh 2026 (UTC) *:::::::::@[[Bikarhêner:Ghybu|Ghybu]] Vê şablonê bi kar bînin an na? Navê şablonê kê çi be? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:07, 24 tîrmeh 2026 (UTC) == Modul:columns == * [[Modul:columns]] were rojanekirin û {{ş|kol3}} bila lînka ''nîşan bide'' deyne beriya sernavê, kolê di qutiya rengî de bila nebe. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Modul:etymon == * [[Modul:etymon kevn]]: Rojanekirin hewce ye. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Modul:ziman/code to canonical name]] == Belgekirina skrîptê û js divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:31, 22 tîrmeh 2026 (UTC) :* [[MediaWiki:UpdateLanguageNameAndCode.js]] :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:50, 22 tîrmeh 2026 (UTC) ::* [[Modul:ziman/print]] ::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:52, 22 tîrmeh 2026 (UTC) :::*[[Modul:ziman/şablon]] :::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:56, 22 tîrmeh 2026 (UTC) ::::* [[MediaWiki:Gadget-translation editor.js/ziman.json]] ::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:06, 22 tîrmeh 2026 (UTC) == [[Modul:quote]] == Piştî ev modul hate hazirkirin, lazim e navên jegirtinan werin rastkirin û li hemûyan {{param|jêgirtin}} were zêdekirin. Bnr. [[Gotûbêja şablonê:Jêgirtin/Ehmedê Xanî/Mem û Zîn]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:27, 5 tebax 2026 (UTC) ::Ev modul hema bêje hazir e. Hûn li ser van madeyan çi difikirin: # {{para|tarîx}} lazim e full date be eger na, lazim e {{para|sal}} were bikaranîn. Feqat "'''2021''' kanûna pêşîn 23" bi vî şiklî bi min ne problem e çnkî derdê en.wikt "attestation" e delîla herî pêşî jî sal e. #: {{demo|sep=wisa xuya dibe<br>|<nowiki>{{jêder-kitêb/ceribandin|en |tarîx=23 December 2021|nivîskar=Harry Hobbs; George Williams|sernav=Micronations and the Search for Sovereignty|url=https://www.cambridge.org/core/books/micronations-and-the-search-for-sovereignty/B0414A3A322695D9EE71E4CDDFDA06DE|weşanxane=Cambridge University Press|rûpel=155|isbn=978-1-009-15012-5|jêgirtin=jêgirtin.|t=-}}</nowiki>}} #{{para|amadekar}}/{{para|edîtor}}/{{para|terciman}} bi şiklê edîtoriya, amadekariya, tercimekirina #: {{demo|sep=dide<br>|<nowiki>{{jêder-kitêb/ceribandin|en |sernav=Medical Surgical Nursing|serî=Juta's Manual of Nursing|cildê-seriyê=volume 4|edîtor=Sophie Mataniele Mogotlane; Joyce Mokoena; Motshedisi Eunice Chauke; Anne Young|sal=2005|weşanxane=Juta Academic|isbn=978-0702171840|rûpel=!12-29|jêgirtin=jêgirtin|t=-}}</nowiki>}} --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:09, 10 tebax 2026 (UTC) :@[[Bikarhêner:Bikarhêner|Bikarhêner]] û @[[Bikarhêner:Ghybu|Ghybu]] Hîn gelek tişt hene divê îzah bikin û fikrê we pirs bikim, feqat îzahkirin pir zor e, em dest bi bikaranînê bikin û dûre tiştên ku hûn naxwazin em dikarin biguherînîn, dibe? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 13:11, 10 tebax 2026 (UTC) ::Dibe, piştî çêbû, em di praktîkê de bibînin ku çawa ye. -- [[Bikarhêner:Bikarhêner|Bikarhêner]] ([[Gotûbêja bikarhêner:Bikarhêner|gotûbêj]]) 18:05, 10 tebax 2026 (UTC) = Javascript = == [[Mediawiki:Gadget-citoid-helper.js]] == Ji bo bi citoidê kopîkirina malûmatên çavkaniyan amûreke wisa lazim e. Xisûsen ji ber ku bi çend amûrên din dikare were bikaranîn. Feqat çend problem hene, şablonên me de kêmasiya parametreyan gelek in û xerîteyên citoidê hîn nehatine çêkirin. Wana sererast bikin dûre vê amûrê çêkin, piştre [[MediaWiki:Gadget-start.js|start.js]] û [[MediaWiki:Gadget-wikt.add-examples.js|add examples.js]] were rojanekirin. - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:04, 19 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]], ez dibêjim karê Modul:quote zêde wext bistîne, bila em dest bi bikaranîna van amûran bikin dûre kêmasiyan em ê temam bikin înşela. Dikarî vana li cihên xwe yên rast kopî paste bikî? # [[Special:PermanentLink/6291574|Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] --> [[Mediawiki:Gadget-citoid-helper.js]] # Ya li jêr kopî bike qismê herî dawî ya AmûrênVeşartî li [[MediaWiki:Gadgets-definition]]: ## <code><nowiki>* citoid-helper[ResourceLoader|hidden|default|dependencies=mediawiki.util]|citoid-helper.js</nowiki></code> --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:58, 26 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-start.js]] == Rojanekirin hewce ye. Min gelek tişt lê zêde kir lê ez niha test dikime. Piştre em bar bikin: * [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] * [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:08, 17 tîrmeh 2026 (UTC) :Min [[MediaWiki:Gadget-start.js/data.json|data.json]] çêkir ji bo ku bi hêsanî malûmatên heyî werin guhartin bêyî guhartina Javascriptê. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:49, 18 tîrmeh 2026 (UTC) :Xeletiyên ku ji bîr nekim rast bikim: :* Wextê min çavkanî "kitêb" hilbijart û bi destî tije kir xeletiyeke [https://ku.wiktionary.org/w/index.php?title=xezete&diff=prev&oldid=6265392 wisa] derket her kelîme hate lînkkirin. :* <code>html("⠿")</code> ev ne lazim e. :* textarea ji bo çavkaniyên jêgirtinan xaseten yên sernav hîn jî ne draggable e. :* pêşdîtina zindî checkbox wextê tê rakirin, pêşdîtin winda nabe. :* Butona mobîlê ya vekirina formê di moda tarî de belî nabe, tenê wekî qutiyeke tarî xuya dibe. :* Metna hişyarkirinê di guhartina rûpelên heyî de lazim e baştir bikim. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:51, 18 tîrmeh 2026 (UTC) ::Ev problem çêbûn, ez ê binêrim ka çi problemên din hene. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:15, 19 tîrmeh 2026 (UTC) :::Çêke: Ji bo qismê çavkaniyê yek dikare API call û Kategorî:Çavkanî bi kar bîne ji bo ku şablon zêde bikî ji yên heyî. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:21, 19 tîrmeh 2026 (UTC) ::::Ev jî çêbû, min beşa çavkanî jî çêkir. Eger xeletî dernekeve û problema valahiya piştî etîketê ji bîr nekim, piştî rojanekirina amûrên linkify, û citoid em dikarin bar bikin. Ez ê ti tiştê nû îlawe nekim, zêde dirêj bû. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:14, 21 tîrmeh 2026 (UTC) :::::Merheba @[[Bikarhêner:Bikarhêner|Bikarhêner]]. Dikarî wana bar bikî? :::::* [[Bikarhêner:Wikihez/Gadget-start.js]] --> [[MediaWiki:Gadget-start.js]] :::::* [[Bikarhêner:Wikihez/Gadget-start.css]] --> [[MediaWiki:Gadget-start.css]] :::::* [[MediaWiki:Gadgets-definition]] wisa rojane bike: :::::* start[ResourceLoader|default|package|dependencies=mediawiki.util,ext.gadget.StorageUtils,ext.gadget.citoid-helper]|start.js|start.css|start.js/data.json :::::[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:39, 5 tebax 2026 (UTC) == [[Mediawiki:Gadget-QQ.js]] == Ev amûr di şikle Minerva de. Her daîm vê xeletiyê dide: <syntaxhighlight lang="js"> TypeError: Cannot read properties of null (reading 'addEventListener') at css () at runScript () at Array.<anonymous> () at flushCssBuffer () </syntaxhighlight> [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:29, 18 tîrmeh 2026 (UTC) :* [[Bikarhêner:Wikihez/skrîpt/js/Gadget-QQ.js]] --> [[Mediawiki:Gadget-QQ.js]] :* [[Bikarhêner:Wikihez/Gadget-QQ.css]] --> [[Mediawiki:Gadget-QQ.css]] :Ez dibêjim çêbû lê ka çend roj biceribînim. Tiştên ku hatin sererastkirin: :# Google Books API Key dikarî zêde bikî, dixe cookies û di gerokê de dimîne. Berê bê API Key dixebitiya lê êdî mecbûr e ku API Key-a te hebe, bidestxistina wê ne zêde zor e lê dîsa jî tevlihev e. :# Êdî di mobîlê de dixebite, heta di mobîlê de xweştir xuya dike. :# Moda tarî :# OOUI dewsa jquery.ui :# Li qutiyê çi dixwazî zêde bikî, dikare li gorî îsm, sifet, fiîl bitewîne. Lê ji bo fiîl tenê dikare çend heb inflection bîne. :# Butona paqij bike lê zêde kir. :# Çend paqijiyên jêgirtinên Google Kitêbê niha hene. :[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 23:38, 18 tîrmeh 2026 (UTC) ::Tewandina fiîlan û xeletiya modulê lazim e were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:40, 21 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-wikt.add-examples.js]] == Min ev amûr hinek rojane kir feqat çend problem hene berî ku bar bikin. Tiştên ku min guhart: # Êdî li sayfeyên bi {{ş|maneid}} jî dixebite, # Cihê di wîkîtekstê de yê ku jêgirtin were îlawekirin baştir bû, # [[Mediawiki:Gadget-citoid-helper.js|citoid helper]] zêde kir ji bo ku bi hêsanî çavkanî bi riya doi, isbn an urlyê werin tijîkirin. * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]] --> [[MediaWiki:Gadget-wikt.add-examples.css]] * [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] --> [[MediaWiki:Gadget-wikt.add-examples.js]] - --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 00:50, 19 tîrmeh 2026 (UTC) :Min "wikt." qismên cache kirinê ya wîkiya fransî bi [[MediaWiki:Gadget-StorageUtils.js]] guhartiye. loma ji bîr nekin wê amûrê li [[MediaWiki:Gadgets-definition]] zêde bikin. û navê amûrê jî biguhêrînin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:15, 23 tîrmeh 2026 (UTC) ::Berê li ser WF:ceribandin dixebitî. niha naxebite. Divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 22:10, 7 tebax 2026 (UTC) == Gadget-translation editor == * [[MediaWiki:Gadget-translation editor.js]]: divê formata en.wîktê were bikaranîn ji ber ku me gelek tercime ji en.wîktê kopî kir û ev js hîn nikare formata wekî li jêr bi kar bîne. <syntaxhighlight lang="wikitext"> * {{Z|sh}}: *: Kirîlî: *: Latînî </syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == [[Mediawiki:Gadget-linkify.js]] == * ''rûpeleke'' wekî<syntaxhighlight lang="wikitext">[[rûpeleke]]</syntaxhighlight> lînk dike, bi regexê belkî dikare wisa bike <syntaxhighlight lang="wikitext">[[rûpel]]eke</syntaxhighlight> —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) * Amûreke din wekî [[User:Wikihez/Gadget-linkify.js|linkify]] lazim e ku herfên mezin biçûk bike ji bo kurmancî.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :{{r|Bikarhêner}} Merheba bira, dikarî viya jî bar bikî?: * [[Special:PermanentLink/6291974|linkify]] --> [[Mediawiki:Gadget-linkify.js]] Spas--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:42, 29 tîrmeh 2026 (UTC) :Dûre [https://ku.wiktionary.org/wiki/MediaWiki:Gadget-start.js#L-283 li vir] wiktviLinkify bike kuLinkify xêra xwe [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 11:51, 29 tîrmeh 2026 (UTC) ::Min ji bîr kir lê zêde bikim niha nikare "Dİ" bike "di", xeletiyeke berbelav a di nivîsên kurdî de, herfên din ên wekî ll yan rr jî hewce ne werin zêdekirin. Dûre em zêde bikin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 21:42, 29 tîrmeh 2026 (UTC) :::Min nû ferq kir, sayfeyên ku hîn nehatine çêkirin wîkîlînk nake. Problemeke mezin e divê were rastkirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:15, 30 tîrmeh 2026 (UTC) ::::Na, lînk dike, tiştekî din heye... [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:49, 31 tîrmeh 2026 (UTC) == Amûra manayê == Amûreke din ji bo nivîsina maneyê wekî Nimûne zêde bike lazim e [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6276876 js] [https://ku.wiktionary.org/w/index.php?title=%C5%9Eablon:ceribandin2&oldid=6265629 şablon] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6265642 css] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:12, 23 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-jeder.js]] == @[[Bikarhêner:Ghybu|Ghybu]] Çavkaniyên jêderê di moda pêşdîtinê de jêderê vedişêre, ew jî min gelek eciz dike wextê çavkanî zêde dikim. Min ji Claude pirsî û kodan nîşanî wê da, wisa cewab da: Yes — and this file actually explains the whole thing precisely, better than my earlier guess about extract-stripping. What's happening: the CSS rule <syntaxhighlight lang="css"> .jeder{ display:none; } </syntaxhighlight> hides every citation by default, *unconditionally*. The only thing that ever makes it visible again is the gadget's JS: it finds each `.jeder`, builds the short "`— (year, author, +)`" summary from the `.j-pewist` fields, and either reveals the short version or — for citations with no `.j-pewist` fields — explicitly sets `display:inline` on the original. So visibility of citations depends entirely on this JS running. In the normal article view (Image 1) it runs, so you see the collapsed "`(1918, E. Rehmî Ji Mala Hekariyan, Amadekar: M. E. Bozarslan, +)`" form. In whatever generated Image 2 — a hover-preview/extract/API render — gadget JS doesn't execute, so nothing ever removes the `display:none`, and the citation vanishes completely rather than degrading to "still visible, just not collapsed." <b>The fix:</b> flip the default so the *un-collapsed* state is the safe fallback, and let JS do the hiding only after it successfully builds the short version. That way, any context without JS shows the full citation instead of nothing. CSS — remove the blanket hide: <syntaxhighlight lang="css"> .jeder { /* intentionally no display:none here — see Gadget-... .js */ } </syntaxhighlight> JS — do the hiding from script, after the short form exists: {{veşêre-ser}} <syntaxhighlight lang="js"> // 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'); }); }); </syntaxhighlight> Net effect: - JS-enabled readers (normal article view): identical experience to today — collapsed short form with `+`/`↩` toggle. - No-JS contexts (previews, extracts, screen readers before JS loads, print, etc.): full citation is shown instead of nothing — a real regression fix rather than a cosmetic one. One caveat worth being upfront about: this fixes it *if* the preview context renders the gadget's HTML/CSS but doesn't execute gadget JS (which is the far more common case, and what this code strongly suggests is happening). If Image 2 instead comes from a pipeline that strips the `.jeder`/`.jegirtin-text` elements out of the HTML entirely before this CSS/JS even gets a chance to apply, no on-wiki CSS/JS change can help — that'd need the extract-generation config changed instead. Given what this gadget file shows, though, I'd bet on the CSS-hide explanation. {{veşêre-bin}} Em dûre biceribînin eger xeletî tinebe, vî tiştî jî rast bikin. --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:00, 23 tîrmeh 2026 (UTC) :Ez APIya MediaWiki rind nizanim belkî Claude dizane:) Em nikarin bibêjin dema ku moda "''action=edit''" e fonksiyona <code>function vesere()</code> bi kar meyîne. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 15:57, 24 tîrmeh 2026 (UTC) ::Na, di moda "edît"-ê de <code>var elmTab = null</code>... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:13, 24 tîrmeh 2026 (UTC) ?: <syntaxhighlight lang="js"> if ( mw.config.get('wgAction') === 'edit' || mw.config.get('wgAction') === 'submit' ){ var elmTab = []; } else { var elmTab = $(this).find('.j-pewist').clone(); } </syntaxhighlight> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:31, 24 tîrmeh 2026 (UTC) :Ez jî nizanim Claude çiqas ji mediawiki fêm dike lê heta niha ti tişt nîne ku min jê pirs kir û nikaribû çêke, bila wekî reklam nebe feqat Claude mikemmel e, dibêjim "li vir çima xeletiyeke wisa derdikeve" di dosyeya 2000 rêzî de diçe tiştê xelet tenê rast dike tiştekî din naguherîne. Chatgpt û aistudio qet wisa nakin, eynî dosyeyê deh cara dinivîsin, deh netîceyên cuda derdikevin :D :Em dikarin vê amûrê wextê edit û submitê neaktîv bikin wekî <syntaxhighlight lang="js">if (!(action === "edit" || action === "submit")) { :return;</syntaxhighlight> lê wê demê display:none wê çibe nizanim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:23, 24 tîrmeh 2026 (UTC) ::display:none ne hewce ye ma jixwe di nav kodê [https://ku.wiktionary.org/w/index.php?title=MediaWiki:Gadget-jeder.js&oldid=6069025#L-49 L-49] de inline/none heye? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:53, 24 tîrmeh 2026 (UTC) :Min bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/vector-2022.js&diff=prev&oldid=6290816#L-28] ceriband feqat nexebitî. "display:none" di pêşdîtinê de dixebite feqat js naşixule. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 14:43, 25 tîrmeh 2026 (UTC) ::Kodên JSê pir hez nakim (pêşta hukurina APIya MWyê hewce bû) dîsa jî ez ê seh bikim :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:49, 27 tîrmeh 2026 (UTC) :::Ez niha bi vî şiklî [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/test.js&oldid=6290820] [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Wikihez/common.css&oldid=6290821#L-8] bi kar tînim ti problem nîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:09, 27 tîrmeh 2026 (UTC) == [[MediaWiki:Gadget-PagePreviews.js]] == Ez dibêjim em vê amûrê jî çêkin [[:en:MediaWiki:Gadget-PagePreviews.js]] --[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 10:56, 3 tebax 2026 (UTC) = Moda tarî = == [[Şablon:wîkîpediya]] == Rengê tarî de xirab e.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:36, 4 tebax 2026 (UTC) = Bot = Karên ku bi botê werin çêkirin ji kerema xwe li vir binivîsin. == Kategorî:Biwêj == [[:Kategorî:Biwêj]] divê were paqijkirin, lîsteya madeyên {{ş|biwêj}} çêke, yên ku tê de bûn, kirin, man hene filtre bike yên din bi destî tê çêkirin.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Jêgirtin == Xistina jêgirtinên beşa [https://ku.wiktionary.org/w/index.php?search=insource%3A%2F%3D+*Ji+%5BWw%5D%C3%AAjey%C3%AA+*%3D%2F&title=Taybet%3AL%C3%AAger%C3%AEn&profile=advanced&fulltext=1&ns0=1&searchToken=8rh0bmw8dccsi7aynl6zli8uf ji wêjeyê] li beşa maneyê. —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == Bota Toolforgeê == Botekî Toolforgeê lazim e ji bo ku xeletiyên biçûk wekî şablonên bi navên îngilîzî werin kurdîkirin yan jî valahiya beşan rast bike û hwd.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) :Min [[Bikarhêner:Wikihez/skrîpt/py/kuwiktkozmetik.py|paqijiyen kozmetîk]] hazir kir feqat hîn navên şablonan naguhêre. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 20:05, 4 tebax 2026 (UTC) == Updatew == Bota [[Bikarhêner:Wikihez/skrîpt/py/updateW.py|updateW]] divê were rojanekirin. Yan jî yekî nû were çêkirin. Şablonên {{ş|W}} di beşa tercimeyan de sererast dike û zimanan rêz dike. Ya niha xeletiya navê zimanî dide.—[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 16:17, 16 tîrmeh 2026 (UTC) == sihir --> sêhr == Tercimeyên ''[[sêhr]]'' hemû dibêje ''sihir'' loma bi botê lazim e kirin ''sêhr''. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 17:43, 18 tîrmeh 2026 (UTC) :Sihirbaz --> sêhrbaz [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:07, 18 tîrmeh 2026 (UTC) == Tercimeyên dîroknas == Li tercimeyên [[dîroknas]], hevmaneyên wê hewce ye were îlawekirin. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 18:44, 18 tîrmeh 2026 (UTC) == Mewlûd == Sererastkirina jêgirtinên mewlûdê [https://ku.wiktionary.org/w/index.php?search=insource%3A%2Fw%5C%3AMela+His%C3%AAn%C3%AA+Batey%C3%AE%2F&title=Taybet%3AL%C3%AAger%C3%AEn&ns0=1&searchToken=8m0tguy3sqt7edr4sg0u8hedo] wekî [https://ku.wiktionary.org/w/index.php?title=dax%C3%AEdar&curid=284303&diff=6265851&oldid=6142285] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 09:43, 20 tîrmeh 2026 (UTC) 7jdncj9hld46blh9ot7h3mqpdbirsct Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js 2 1358179 6328710 6291542 2026-08-10T17:50:54Z Wikihez 7344 6328710 javascript text/javascript /** * citeKurdifier.js * * Converts English citation templates (quote-web, quote-book, quote-journal) * and a set of their parameters into their Kurdish Wiktionary equivalents, * using an inline configuration (see CONFIG below). * * Works directly on the edit textbox (#wpTextbox1) — no page fetch needed, * since the config now lives in this file rather than on a wiki page. * * Requires: morebits.js, templateParamRenamer.js (loaded first) */ /* global mw, $, Morebits, TemplateParamRenamer */ ( function () { 'use strict'; var CONFIG = { "templates": { "jêder-malper": "jêder-malper/ceribandin", "jêder-kitêb": "jêder-kitêb/ceribandin", "jêder-kovar": "jêder-kovar/ceribandin", "quote-web": "jêder-malper/ceribandin", "quote-book": "jêder-kitêb/ceribandin", "quote-journal": "jêder-kovar/ceribandin", }, "basic_params": { "access-date": "roja-gihiştinê", "cîh": "cih", "newversion": "versiyona-nû", "passage": "jêgirtin", "text": "jêgirtin", "jg": "jêgirtin", "transliteration": "tr", "transcription": "ts", "normalization": "norm", "translation": "tercime", "gloss": "tercime", "lit": "hrf", "lb": "e", "origtext": "metna-orîjînal", "origtr": "tr-orîjînal", "origts": "ts-orîjînal", "orignorm": "norm-orîjînal", "origsc": "sc-orîjînal", "orignormsc": "normsc-orîjînal", "origsubst": "subst-orîjînal", "origlb": "e-orîjînal", "nocat": "nekat", }, "numbered_params": { "^role(\\d*)$": "rol$1", "^roles(\\d*)$": "rol$1", "^speaker(\\d*)$": "rol$1", "^tlr(\\d*)$": "terciman$1", "^translator(\\d*)$": "terciman$1", "^translators(\\d*)$": "terciman$1", "^chapter_tlr(\\d*)$": "tercimanê-beşê$1", "^chapter_tlrs(\\d*)$": "tercimanê-beşê$1", "^chapter_translator(\\d*)$": "tercimanê-beşê$1", "^chapter_translators(\\d*)$": "tercimanê-beşê$1", "^lang(\\d*)$": "ziman$1", "^first(\\d*)$": "pêşnav$1", "^2ndfirst(\\d*)$": "2pêşnav$1", "^last(\\d*)$": "paşnav$1", "^2ndlast(\\d*)$": "2paşnav$1", "^trans-author(\\d*)$": "tercimeya-nivîskar$1", "^author(\\d*)$": "nivîskar$1", "^writer(\\d*)$": "nivîskar$1", "^writers(\\d*)$": "nivîskar$1", "^2ndauthor(\\d*)$": "2nivîskar$1", "^authorlink(\\d*)$": "lînka-nivîskar$1", "^2ndauthorlink(\\d*)$": "2lînka-nivîskar$1", "^trans-authorlink(\\d*)$": "lînka-tercimeya-nivîskar$1", "^trans-first(\\d*)$": "tercimeya-pêşnav$1", "^trans-last(\\d*)$": "tercimeya-paşnav$1", "^volume(\\d*)$": "cild$1", "^volumes(\\d*)$": "cildên$1", "^volume_plain(\\d*)$": "cild-sade$1", "^volumeurl(\\d*)$": "urlya-cild$1", "^volume_prefix(\\d*)$": "pêşgira-cild$1", "^vol(\\d*)$": "cild$1", "^vol_plain(\\d*)$": "cild-sade$1", "^volurl(\\d*)$": "urlya-cild$1", "^vol_prefix(\\d*)$": "pêşgira-cild$1", "^issue(\\d*)$": "hejmar$1", "^issues(\\d*)$": "hejmarên$1", "^issue_plain(\\d*)$": "hejmar-sade$1", "^issueurl(\\d*)$": "urlya-hejmarê$1", "^issue_prefix(\\d*)$": "pêşgira-hejmarê$1", "^number(\\d*)$": "nimare$1", "^numbers(\\d*)$": "nimareyên$1", "^number_plain(\\d*)$": "nimare-sade$1", "^numberurl(\\d*)$": "urlya-nimareyê$1", "^number_prefix(\\d*)$": "pêşgira-nimareyê$1", "^line(\\d*)$": "rêz$1", "^lines(\\d*)$": "rêzên$1", "^line_plain(\\d*)$": "rêz-sade$1", "^lineurl(\\d*)$": "urlya-rêzê$1", "^line_prefix(\\d*)$": "pêşgira-rêzê$1", "^page(\\d*)$": "rûpel$1", "^pages(\\d*)$": "rûpelên$1", "^page_plain(\\d*)$": "rûpel-sade$1", "^pageurl(\\d*)$": "urlya-rûpelê$1", "^page_prefix(\\d*)$": "pêşgira-rûpelê$1", "^column(\\d*)$": "stûn$1", "^columns(\\d*)$": "stûnên$1", "^column_plain(\\d*)$": "stûn-sade$1", "^columnurl(\\d*)$": "urlya-stûnê$1", "^column_prefix(\\d*)$": "pêşgira-stûnê$1", "^coauthors(\\d*)$": "hevnivîskar$1", "^quotee(\\d*)$": "jê-tê-girtin$1", "^editor(\\d*)$": "edîtor$1", "^editors(\\d*)$": "edîtor$1", "^mainauthor(\\d*)$": "nivîskarê-sereke$1", "^compiler(\\d*)$": "berhevkar$1", "^compilers(\\d*)$": "berhevkar$1", "^director(\\d*)$": "derhêner$1", "^directors(\\d*)$": "derhêner$1", "^lyricist(\\d*)$": "gotinnivîs$1", "^lyrics-translator(\\d*)$": "tercimanê-gotinan$1", "^composer(\\d*)$": "bestekar$1", "^actor(\\d*)$": "aktor$1", "^artist(\\d*)$": "artîst$1", "^feat(\\d*)$": "mêvan$1", "^default-authorlabel(\\d*)$": "standard-etîketa-nivîskar$1", "^authorlabel(\\d*)$": "etîketa-nivîskar$1", "^title(\\d*)$": "sernav$1", "^trans-title(\\d*)$": "tercimeya-sernav$1", "^series(\\d*)$": "serî$1", "^seriesvolume(\\d*)$": "cildê-seriyê$1", "^notitle(\\d*)$": "bêsernav$1", "^entry(\\d*)$": "made$1", "^entryurl(\\d*)$": "urlya-madeyê$1", "^trans-entry(\\d*)$": "tercimeya-madeyê$1", "^chapter(\\d*)$": "beş$1", "^chapterurl(\\d*)$": "urlya-beşê$1", "^chapter_number(\\d*)$": "hejmara-beşê$1", "^chapter_plain(\\d*)$": "beş-sade$1", "^chapter_series(\\d*)$": "seriya-beşê$1", "^chapter_seriesvolume(\\d*)$": "cildê-seriya-beşê$1", "^trans-chapter(\\d*)$": "tercimeya-beşê$1", "^section(\\d*)$": "qisim$1", "^sectionurl(\\d*)$": "urlya-qismê$1", "^section_number(\\d*)$": "hejmara-qismê$1", "^section_plain(\\d*)$": "qisim-sade$1", "^section_series(\\d*)$": "rêzeya-qismê$1", "^section_seriesvolume(\\d*)$": "cildê-seriya-qismê$1", "^trans-section(\\d*)$": "tercimeya-qismê$1", "^system(\\d*)$": "sîstem$1", "^scene(\\d*)$": "sehne$1", "^archiveurl(\\d*)$": "urlya-arşîvê$1", "^edition(\\d*)$": "çap$1", "^edition_plain(\\d*)$": "çap-sade$1", "^archivedate(\\d*)$": "tarîxa-arşîvê$1", "^accessdate(\\d*)$": "tarîxa-gihiştinê$1", "^nodate(\\d*)$": "bêtarîx$1", "^type(\\d*)$": "cure$1", "^genre(\\d*)$": "janr$1", "^medium(\\d*)$": "medya$1", "^others(\\d*)$": "kesên-din$1", "^quoted_in(\\d*)$": "cihê-jêgirtinê$1", "^location(\\d*)$": "cih$1", "^publisher(\\d*)$": "weşanxane$1", "^original(\\d*)$": "orîjînal$1", "^orjînal(\\d*)$": "orîjînal$1", "^by(\\d*)$": "ji-aliyê$1", "^note(\\d*)$": "not$1", "^note_plain(\\d*)$": "not-sade$1", "^other(\\d*)$": "yê-din$1", "^source(\\d*)$": "çavkanî$1", "^worklang(\\d*)$": "zimanê-eserê$1", "^termlang(\\d*)$": "zimanê-termê$1", "^origlang(\\d*)$": "zimanê-orîjînal$1", "^origworklang(\\d*)$": "zimanê-esera-orîjînal$1", "^date(\\d*)$": "tarîx$1", "^year(\\d*)$": "sal$1", "^month(\\d*)$": "meh$1", "^start_date(\\d*)$": "tarîxa-destpêkê$1", "^start_year(\\d*)$": "sala-destpêkê$1", "^start_month(\\d*)$": "meha-destpêkê$1", "^origdate(\\d*)$": "tarîxa-orîjînal$1", "^origyear(\\d*)$": "sala-orîjînal$1", "^sala orîjînal(\\d*)$": "sala-orîjînal$1", "^origmonth(\\d*)$": "meha-orîjînal$1", "^origstart_date(\\d*)$": "tarîxa-destpêkê-orîjînal$1", "^origstart_year(\\d*)$": "sala-destpêkê-orîjînal$1", "^origstart_month(\\d*)$": "meha-destpêkê-orîjînal$1", "^date_published(\\d*)$": "tarîxa-weşandinê$1", "^year_published(\\d*)$": "sala-weşandinê$1", "^sala weşandinê(\\d*)$": "sala-weşandinê$1", "^month_published(\\d*)$": "meha-weşandinê$1", "^start_date_published(\\d*)$": "tarîxa-destpêkê-weşandin$1", "^start_year_published(\\d*)$": "sala_destpêkê-weşandin$1", "^start_month_published(\\d*)$": "meha-destpêkê-weşandin$1", //kovar journal "^article(\\d*)$": "meqale$1", "^titleurl(\\d*)$": "urlya-sernav$1", "^articleurl(\\d*)$": "urlya-meqaleyê$1", "^trans-article(\\d*)$": "tercimeya-meqaleyê$1", "^title_tlr(\\d*)$": "tercimanê-sernav$1", "^title_tlrs(\\d*)$": "tercimanê-sernav$1", "^title_translator(\\d*)$": "tercimanê-sernav$1", "^title_translators(\\d*)$": "tercimanê-sernav$1", "^article_tlrs(\\d*)$": "tercimanê-meqaleyê$1", "^article_translator(\\d*)$": "tercimanê-meqaleyê$1", "^article_translators(\\d*)$": "tercimanê-meqaleyê$1", "^title_series(\\d*)$": "seriya-sernav$1", "^article_series(\\d*)$": "seriya-meqaleyê$1", //chapter_seriesvolume "^title_seriesvolume(\\d*)$": "cildê-seriya-sernav$1", "^article_seriesvolume(\\d*)$": "cildê-seriya-meqaleyê$1", //chapter_number "^title_number(\\d*)$": "hejmara-sernav$1", "^article_number(\\d*)$": "hejmara-meqaleyê$1", //chapter_plain "^title_plain(\\d*)$": "sernav-sade$1", "^article_plain(\\d*)$": "meqale-sade$1", //title (periodical name) "^journal(\\d*)$": "kovar$1", "^magazine(\\d*)$": "kovar$1", "^newspaper(\\d*)$": "xezete$1", "^work(\\d*)$": "xebat$1", //trans-title "^trans-journal(\\d*)$": "tercimeya-kovar$1", "^trans-magazine(\\d*)$": "tercimeya-kovar$1", "^trans-newspaper(\\d*)$": "tercimeya-xezete$1", "^trans-work(\\d*)$": "tercimeya-xebat$1", //tlr (periodical translator) "^journal_tlr(\\d*)$": "tercimanê-kovar$1", "^journal_tlrs(\\d*)$": "tercimanê-kovar$1", "^journal_translator(\\d*)$": "tercimanê-kovar$1", "^journal_translators(\\d*)$": "tercimanê-kovar$1", "^magazine_tlr(\\d*)$": "tercimanê-kovar$1", "^magazine_tlrs(\\d*)$": "tercimanê-kovar$1", "^magazine_translator(\\d*)$": "tercimanê-kovar$1", "^magazine_translators(\\d*)$": "tercimanê-kovar$1", "^newspaper_tlr(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_tlrs(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translator(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translators(\\d*)$": "tercimanê-xezeteyê$1", "^work_tlr(\\d*)$": "tercimanê-xebatê$1", "^work_tlrs(\\d*)$": "tercimanê-xebatê$1", "^work_translator(\\d*)$": "tercimanê-xebatê$1", "^work_translators(\\d*)$": "tercimanê-xebatê$1", //url (periodical url) "^journalurl(\\d*)$": "urlya-kovarê$1", "^magazineurl(\\d*)$": "urlya-kovarê$1", "^newspaperurl(\\d*)$": "urlya-xezeteyê$1", "^workurl(\\d*)$": "urlya-xebatê$1", //source "^newsagency(\\d*)$": "ajans$1", "^news_agency(\\d*)$": "ajans$1", //chapter (individual webpage/entry title) — website citations "^webpage(\\d*)$": "rûpela-webê$1", "^webpageurl(\\d*)$": "urlya-webê$1", "^trans-webpage(\\d*)$": "tercimeya-webê$1", "^webpage_tlr(\\d*)$": "tercimanê-webê$1", "^webpage_series(\\d*)$": "seriya-webê$1", "^webpage_seriesvolume(\\d*)$": "cildê-seriya-webê$1", "^webpage_number(\\d*)$": "hejmara-webê$1", "^webpage_plain(\\d*)$": "web-sade$1", //title (site/work name) — website citations "^site(\\d*)$": "websîte$1", "^trans-site(\\d*)$": "tercimeya-sîteyê$1", } }; function run() { var $textbox = $( '#wpTextbox1' ); if ( !$textbox.length ) { mw.notify( 'Qutîka guhertinê (wpTextbox1) nehat dîtin. Tu li rûpelekê ya guhertinê yî?', { type: 'error' } ); return; } var originalText = $textbox.val(); var newText = TemplateParamRenamer.rename( originalText, CONFIG ); if ( newText === originalText ) { mw.notify( 'Tu şablon nehat dîtin ku were guhertin.' ); return; } // Update the textbox in place. The user still reviews and clicks // "Save"/"Show changes" themselves — this script never submits // the form or touches the API. $textbox.val( newText ).trigger( 'change' ); // Append a note to the edit summary, if present, without // clobbering anything the user already typed. var $summary = $( '#wpSummary' ); if ( $summary.length ) { var note = 'kurdîkirina şablonên jêderê (citeKurdifier)'; var current = $summary.val(); $summary.val( current ? current + '; ' + note : note ); } mw.notify( 'Şablonên jêderê hatin kurdîkirin. Ji kerema xwe biguherînan kontrol bike û tomar bike.' ); } $( function () { // Only makes sense to show this on an edit form if ( !$( '#wpTextbox1' ).length ) { return; } var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'citeKurdifier', 'ca-cite-kurdifier', 'Şablonên jêderê bike kurdî' ); // addPortletLink returns null if 'p-cactions' doesn't exist in the current skin. if ( portletLink ) { portletLink.addEventListener( 'click', function ( e ) { e.preventDefault(); run(); } ); } } ); }() ); 5372abvtxts53k63fsae3k61cv6wd3r 6328722 6328710 2026-08-10T18:51:26Z Wikihez 7344 6328722 javascript text/javascript /** * citeKurdifier.js * * Converts English citation templates (quote-web, quote-book, quote-journal) * and a set of their parameters into their Kurdish Wiktionary equivalents, * using an inline configuration (see CONFIG below). * * Works directly on the edit textbox (#wpTextbox1) — no page fetch needed, * since the config now lives in this file rather than on a wiki page. * * Requires: morebits.js, templateParamRenamer.js (loaded first) */ /* global mw, $, Morebits, TemplateParamRenamer */ ( function () { 'use strict'; var CONFIG = { "templates": { "jêder-malper": "jêder-malper/ceribandin", "jêder-kitêb": "jêder-kitêb/ceribandin", "jêder-kovar": "jêder-kovar/ceribandin", "quote-web": "jêder-malper/ceribandin", "quote-book": "jêder-kitêb/ceribandin", "quote-journal": "jêder-kovar/ceribandin", }, "basic_params": { "access-date": "roja-gihiştinê", "cîh": "cih", "newversion": "versiyona-nû", "passage": "jêgirtin", "text": "jêgirtin", "jg": "jêgirtin", "transliteration": "tr", "transcription": "ts", "normalization": "norm", "translation": "tercime", "gloss": "tercime", "lit": "hrf", "lb": "e", "origtext": "metna-orîjînal", "origtr": "tr-orîjînal", "origts": "ts-orîjînal", "orignorm": "norm-orîjînal", "origsc": "sc-orîjînal", "orignormsc": "normsc-orîjînal", "origsubst": "subst-orîjînal", "origlb": "e-orîjînal", "nocat": "nekat", }, "numbered_params": { "^role(\\d*)$": "rol$1", "^roles(\\d*)$": "rol$1", "^speaker(\\d*)$": "rol$1", "^tlr(\\d*)$": "terciman$1", "^translator(\\d*)$": "terciman$1", "^translators(\\d*)$": "terciman$1", "^chapter_tlr(\\d*)$": "tercimanê-beşê$1", "^chapter_tlrs(\\d*)$": "tercimanê-beşê$1", "^chapter_translator(\\d*)$": "tercimanê-beşê$1", "^chapter_translators(\\d*)$": "tercimanê-beşê$1", "^lang(\\d*)$": "ziman$1", "^first(\\d*)$": "pêşnav$1", "^2ndfirst(\\d*)$": "2pêşnav$1", "^last(\\d*)$": "paşnav$1", "^2ndlast(\\d*)$": "2paşnav$1", "^trans-author(\\d*)$": "tercimeya-nivîskar$1", "^author(\\d*)$": "nivîskar$1", "^writer(\\d*)$": "nivîskar$1", "^writers(\\d*)$": "nivîskar$1", "^2ndauthor(\\d*)$": "2nivîskar$1", "^authorlink(\\d*)$": "lînka-nivîskar$1", "^2ndauthorlink(\\d*)$": "2lînka-nivîskar$1", "^trans-authorlink(\\d*)$": "lînka-tercimeya-nivîskar$1", "^trans-first(\\d*)$": "tercimeya-pêşnav$1", "^trans-last(\\d*)$": "tercimeya-paşnav$1", "^volume(\\d*)$": "cild$1", "^volumes(\\d*)$": "cildên$1", "^volume_plain(\\d*)$": "cild-sade$1", "^volumeurl(\\d*)$": "urlya-cild$1", "^volume_prefix(\\d*)$": "pêşgira-cild$1", "^vol(\\d*)$": "cild$1", "^vol_plain(\\d*)$": "cild-sade$1", "^volurl(\\d*)$": "urlya-cild$1", "^vol_prefix(\\d*)$": "pêşgira-cild$1", "^issue(\\d*)$": "hejmar$1", "^issues(\\d*)$": "hejmarên$1", "^issue_plain(\\d*)$": "hejmar-sade$1", "^issueurl(\\d*)$": "urlya-hejmarê$1", "^issue_prefix(\\d*)$": "pêşgira-hejmarê$1", "^number(\\d*)$": "nimare$1", "^numbers(\\d*)$": "nimareyên$1", "^number_plain(\\d*)$": "nimare-sade$1", "^numberurl(\\d*)$": "urlya-nimareyê$1", "^number_prefix(\\d*)$": "pêşgira-nimareyê$1", "^line(\\d*)$": "rêz$1", "^lines(\\d*)$": "rêzên$1", "^line_plain(\\d*)$": "rêz-sade$1", "^lineurl(\\d*)$": "urlya-rêzê$1", "^line_prefix(\\d*)$": "pêşgira-rêzê$1", "^page(\\d*)$": "rûpel$1", "^pages(\\d*)$": "rûpelên$1", "^page_plain(\\d*)$": "rûpel-sade$1", "^pageurl(\\d*)$": "urlya-rûpelê$1", "^page_prefix(\\d*)$": "pêşgira-rûpelê$1", "^column(\\d*)$": "stûn$1", "^columns(\\d*)$": "stûnên$1", "^column_plain(\\d*)$": "stûn-sade$1", "^columnurl(\\d*)$": "urlya-stûnê$1", "^column_prefix(\\d*)$": "pêşgira-stûnê$1", "^coauthors(\\d*)$": "hevnivîskar$1", "^quotee(\\d*)$": "jê-tê-girtin$1", "^editor(\\d*)$": "edîtor$1", "^editors(\\d*)$": "edîtor$1", "^mainauthor(\\d*)$": "nivîskarê-sereke$1", "^compiler(\\d*)$": "berhevkar$1", "^compilers(\\d*)$": "berhevkar$1", "^director(\\d*)$": "derhêner$1", "^directors(\\d*)$": "derhêner$1", "^lyricist(\\d*)$": "gotinnivîs$1", "^lyrics-translator(\\d*)$": "tercimanê-gotinan$1", "^composer(\\d*)$": "bestekar$1", "^actor(\\d*)$": "aktor$1", "^artist(\\d*)$": "artîst$1", "^feat(\\d*)$": "mêvan$1", "^default-authorlabel(\\d*)$": "standard-etîketa-nivîskar$1", "^authorlabel(\\d*)$": "etîketa-nivîskar$1", "^title(\\d*)$": "sernav$1", "^trans-title(\\d*)$": "tercimeya-sernav$1", "^series(\\d*)$": "serî$1", "^seriesvolume(\\d*)$": "cildê-seriyê$1", "^notitle(\\d*)$": "bêsernav$1", "^entry(\\d*)$": "made$1", "^entryurl(\\d*)$": "urlya-madeyê$1", "^trans-entry(\\d*)$": "tercimeya-madeyê$1", "^chapter(\\d*)$": "beş$1", "^chapterurl(\\d*)$": "urlya-beşê$1", "^chapter_number(\\d*)$": "hejmara-beşê$1", "^chapter_plain(\\d*)$": "beş-sade$1", "^chapter_series(\\d*)$": "seriya-beşê$1", "^chapter_seriesvolume(\\d*)$": "cildê-seriya-beşê$1", "^trans-chapter(\\d*)$": "tercimeya-beşê$1", "^section(\\d*)$": "qisim$1", "^sectionurl(\\d*)$": "urlya-qismê$1", "^section_number(\\d*)$": "hejmara-qismê$1", "^section_plain(\\d*)$": "qisim-sade$1", "^section_series(\\d*)$": "rêzeya-qismê$1", "^section_seriesvolume(\\d*)$": "cildê-seriya-qismê$1", "^trans-section(\\d*)$": "tercimeya-qismê$1", "^system(\\d*)$": "sîstem$1", "^scene(\\d*)$": "sehne$1", "^archiveurl(\\d*)$": "urlya-arşîvê$1", "^edition(\\d*)$": "çap$1", "^edition_plain(\\d*)$": "çap-sade$1", "^archivedate(\\d*)$": "tarîxa-arşîvê$1", "^accessdate(\\d*)$": "tarîxa-gihiştinê$1", "^nodate(\\d*)$": "bêtarîx$1", "^type(\\d*)$": "cure$1", "^genre(\\d*)$": "janr$1", "^medium(\\d*)$": "medya$1", "^others(\\d*)$": "kesên-din$1", "^quoted_in(\\d*)$": "cihê-jêgirtinê$1", "^location(\\d*)$": "cih$1", "^publisher(\\d*)$": "weşanxane$1", "^original(\\d*)$": "orîjînal$1", "^orjînal(\\d*)$": "orîjînal$1", "^by(\\d*)$": "ji-aliyê$1", "^note(\\d*)$": "not$1", "^note_plain(\\d*)$": "not-sade$1", "^other(\\d*)$": "yê-din$1", "^source(\\d*)$": "çavkanî$1", "^worklang(\\d*)$": "zimanê-eserê$1", "^termlang(\\d*)$": "zimanê-termê$1", "^origlang(\\d*)$": "zimanê-orîjînal$1", "^origworklang(\\d*)$": "zimanê-esera-orîjînal$1", "^date(\\d*)$": "tarîx$1", "^year(\\d*)$": "sal$1", "^month(\\d*)$": "meh$1", "^start_date(\\d*)$": "tarîxa-destpêkê$1", "^start_year(\\d*)$": "sala-destpêkê$1", "^start_month(\\d*)$": "meha-destpêkê$1", "^origdate(\\d*)$": "tarîxa-orîjînal$1", "^origyear(\\d*)$": "sala-orîjînal$1", "^sala orîjînal(\\d*)$": "sala-orîjînal$1", "^origmonth(\\d*)$": "meha-orîjînal$1", "^origstart_date(\\d*)$": "tarîxa-destpêkê-orîjînal$1", "^origstart_year(\\d*)$": "sala-destpêkê-orîjînal$1", "^origstart_month(\\d*)$": "meha-destpêkê-orîjînal$1", "^date_published(\\d*)$": "tarîxa-weşandinê$1", "^year_published(\\d*)$": "sala-weşandinê$1", "^sala weşandinê(\\d*)$": "sala-weşandinê$1", "^month_published(\\d*)$": "meha-weşandinê$1", "^start_date_published(\\d*)$": "tarîxa-destpêkê-weşandin$1", "^start_year_published(\\d*)$": "sala_destpêkê-weşandin$1", "^start_month_published(\\d*)$": "meha-destpêkê-weşandin$1", //kovar journal "^article(\\d*)$": "meqale$1", "^titleurl(\\d*)$": "urlya-sernav$1", "^articleurl(\\d*)$": "urlya-meqaleyê$1", "^trans-article(\\d*)$": "tercimeya-meqaleyê$1", "^title_tlr(\\d*)$": "tercimanê-sernav$1", "^title_tlrs(\\d*)$": "tercimanê-sernav$1", "^title_translator(\\d*)$": "tercimanê-sernav$1", "^title_translators(\\d*)$": "tercimanê-sernav$1", "^article_tlr(\\d*)$": "tercimanê-meqaleyê$1", "^article_tlrs(\\d*)$": "tercimanê-meqaleyê$1", "^article_translator(\\d*)$": "tercimanê-meqaleyê$1", "^article_translators(\\d*)$": "tercimanê-meqaleyê$1", "^title_series(\\d*)$": "seriya-sernav$1", "^article_series(\\d*)$": "seriya-meqaleyê$1", //chapter_seriesvolume "^title_seriesvolume(\\d*)$": "cildê-seriya-sernav$1", "^article_seriesvolume(\\d*)$": "cildê-seriya-meqaleyê$1", //chapter_number "^title_number(\\d*)$": "hejmara-sernav$1", "^article_number(\\d*)$": "hejmara-meqaleyê$1", //chapter_plain "^title_plain(\\d*)$": "sernav-sade$1", "^article_plain(\\d*)$": "meqale-sade$1", //title (periodical name) "^journal(\\d*)$": "kovar$1", "^magazine(\\d*)$": "kovar$1", "^newspaper(\\d*)$": "xezete$1", "^work(\\d*)$": "xebat$1", //trans-title "^trans-journal(\\d*)$": "tercimeya-kovar$1", "^trans-magazine(\\d*)$": "tercimeya-kovar$1", "^trans-newspaper(\\d*)$": "tercimeya-xezete$1", "^trans-work(\\d*)$": "tercimeya-xebat$1", //tlr (periodical translator) "^journal_tlr(\\d*)$": "tercimanê-kovarê$1", "^journal_tlrs(\\d*)$": "tercimanê-kovarê$1", "^journal_translator(\\d*)$": "tercimanê-kovarê$1", "^journal_translators(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlr(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlrs(\\d*)$": "tercimanê-kovarê$1", "^magazine_translator(\\d*)$": "tercimanê-kovarê$1", "^magazine_translators(\\d*)$": "tercimanê-kovarê$1", "^newspaper_tlr(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_tlrs(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translator(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translators(\\d*)$": "tercimanê-xezeteyê$1", "^work_tlr(\\d*)$": "tercimanê-xebatê$1", "^work_tlrs(\\d*)$": "tercimanê-xebatê$1", "^work_translator(\\d*)$": "tercimanê-xebatê$1", "^work_translators(\\d*)$": "tercimanê-xebatê$1", //url (periodical url) "^journalurl(\\d*)$": "urlya-kovarê$1", "^magazineurl(\\d*)$": "urlya-kovarê$1", "^newspaperurl(\\d*)$": "urlya-xezeteyê$1", "^workurl(\\d*)$": "urlya-xebatê$1", //source "^newsagency(\\d*)$": "ajans$1", "^news_agency(\\d*)$": "ajans$1", //chapter (individual webpage/entry title) — website citations "^webpage(\\d*)$": "rûpela-webê$1", "^webpageurl(\\d*)$": "urlya-webê$1", "^trans-webpage(\\d*)$": "tercimeya-webê$1", "^webpage_tlr(\\d*)$": "tercimanê-webê$1", "^webpage_series(\\d*)$": "seriya-webê$1", "^webpage_seriesvolume(\\d*)$": "cildê-seriya-webê$1", "^webpage_number(\\d*)$": "hejmara-webê$1", "^webpage_plain(\\d*)$": "web-sade$1", //title (site/work name) — website citations "^site(\\d*)$": "websîte$1", "^trans-site(\\d*)$": "tercimeya-sîteyê$1", } }; function run() { var $textbox = $( '#wpTextbox1' ); if ( !$textbox.length ) { mw.notify( 'Qutîka guhertinê (wpTextbox1) nehat dîtin. Tu li rûpelekê ya guhertinê yî?', { type: 'error' } ); return; } var originalText = $textbox.val(); var newText = TemplateParamRenamer.rename( originalText, CONFIG ); if ( newText === originalText ) { mw.notify( 'Tu şablon nehat dîtin ku were guhertin.' ); return; } // Update the textbox in place. The user still reviews and clicks // "Save"/"Show changes" themselves — this script never submits // the form or touches the API. $textbox.val( newText ).trigger( 'change' ); // Append a note to the edit summary, if present, without // clobbering anything the user already typed. var $summary = $( '#wpSummary' ); if ( $summary.length ) { var note = 'kurdîkirina şablonên jêderê (citeKurdifier)'; var current = $summary.val(); $summary.val( current ? current + '; ' + note : note ); } mw.notify( 'Şablonên jêderê hatin kurdîkirin. Ji kerema xwe biguherînan kontrol bike û tomar bike.' ); } $( function () { // Only makes sense to show this on an edit form if ( !$( '#wpTextbox1' ).length ) { return; } var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'citeKurdifier', 'ca-cite-kurdifier', 'Şablonên jêderê bike kurdî' ); // addPortletLink returns null if 'p-cactions' doesn't exist in the current skin. if ( portletLink ) { portletLink.addEventListener( 'click', function ( e ) { e.preventDefault(); run(); } ); } } ); }() ); 1dbm8clciqgpjt1dfk4pppxl4cfui5o 6328732 6328722 2026-08-10T22:04:02Z Wikihez 7344 6328732 javascript text/javascript /** * citeKurdifier.js * * Converts English citation templates (quote-web, quote-book, quote-journal) * and a set of their parameters into their Kurdish Wiktionary equivalents, * using an inline configuration (see CONFIG below). * * Works directly on the edit textbox (#wpTextbox1) — no page fetch needed, * since the config now lives in this file rather than on a wiki page. * * Requires: morebits.js, templateParamRenamer.js (loaded first) */ /* global mw, $, Morebits, TemplateParamRenamer */ ( function () { 'use strict'; var CONFIG = { "templates": { "jêder-malper": "jêder-malper/ceribandin", "jêder-kitêb": "jêder-kitêb/ceribandin", "jêder-kovar": "jêder-kovar/ceribandin", "quote-web": "jêder-malper/ceribandin", "quote-book": "jêder-kitêb/ceribandin", "quote-journal": "jêder-kovar/ceribandin", "jêder-vîdeo": "jêder-vîdeo/ceribandin", "quote-av": "jêder-vîdeo/ceribandin", }, "basic_params": { "access-date": "roja-gihiştinê", "cîh": "cih", "newversion": "versiyona-nû", "passage": "jêgirtin", "text": "jêgirtin", "jg": "jêgirtin", "transliteration": "tr", "transcription": "ts", "normalization": "norm", "translation": "tercime", "gloss": "tercime", "lit": "hrf", "lb": "e", "origtext": "metna-orîjînal", "origtr": "tr-orîjînal", "origts": "ts-orîjînal", "orignorm": "norm-orîjînal", "origsc": "sc-orîjînal", "orignormsc": "normsc-orîjînal", "origsubst": "subst-orîjînal", "origlb": "e-orîjînal", "nocat": "nekat", }, "numbered_params": { "^role(\\d*)$": "rol$1", "^roles(\\d*)$": "rol$1", "^speaker(\\d*)$": "rol$1", "^tlr(\\d*)$": "terciman$1", "^translator(\\d*)$": "terciman$1", "^translators(\\d*)$": "terciman$1", "^chapter_tlr(\\d*)$": "tercimanê-beşê$1", "^chapter_tlrs(\\d*)$": "tercimanê-beşê$1", "^chapter_translator(\\d*)$": "tercimanê-beşê$1", "^chapter_translators(\\d*)$": "tercimanê-beşê$1", "^lang(\\d*)$": "ziman$1", "^first(\\d*)$": "pêşnav$1", "^2ndfirst(\\d*)$": "2pêşnav$1", "^last(\\d*)$": "paşnav$1", "^2ndlast(\\d*)$": "2paşnav$1", "^trans-author(\\d*)$": "tercimeya-nivîskar$1", "^author(\\d*)$": "nivîskar$1", "^writer(\\d*)$": "nivîskar$1", "^writers(\\d*)$": "nivîskar$1", "^2ndauthor(\\d*)$": "2nivîskar$1", "^authorlink(\\d*)$": "lînka-nivîskar$1", "^2ndauthorlink(\\d*)$": "2lînka-nivîskar$1", "^trans-authorlink(\\d*)$": "lînka-tercimeya-nivîskar$1", "^trans-first(\\d*)$": "tercimeya-pêşnav$1", "^trans-last(\\d*)$": "tercimeya-paşnav$1", "^volume(\\d*)$": "cild$1", "^volumes(\\d*)$": "cildên$1", "^volume_plain(\\d*)$": "cild-sade$1", "^volumeurl(\\d*)$": "urlya-cild$1", "^volume_prefix(\\d*)$": "pêşgira-cild$1", "^vol(\\d*)$": "cild$1", "^vol_plain(\\d*)$": "cild-sade$1", "^volurl(\\d*)$": "urlya-cild$1", "^vol_prefix(\\d*)$": "pêşgira-cild$1", "^issue(\\d*)$": "hejmar$1", "^issues(\\d*)$": "hejmarên$1", "^issue_plain(\\d*)$": "hejmar-sade$1", "^issueurl(\\d*)$": "urlya-hejmarê$1", "^issue_prefix(\\d*)$": "pêşgira-hejmarê$1", "^number(\\d*)$": "nimare$1", "^numbers(\\d*)$": "nimareyên$1", "^number_plain(\\d*)$": "nimare-sade$1", "^numberurl(\\d*)$": "urlya-nimareyê$1", "^number_prefix(\\d*)$": "pêşgira-nimareyê$1", "^line(\\d*)$": "rêz$1", "^lines(\\d*)$": "rêzên$1", "^line_plain(\\d*)$": "rêz-sade$1", "^lineurl(\\d*)$": "urlya-rêzê$1", "^line_prefix(\\d*)$": "pêşgira-rêzê$1", "^page(\\d*)$": "rûpel$1", "^pages(\\d*)$": "rûpelên$1", "^page_plain(\\d*)$": "rûpel-sade$1", "^pageurl(\\d*)$": "urlya-rûpelê$1", "^page_prefix(\\d*)$": "pêşgira-rûpelê$1", "^column(\\d*)$": "stûn$1", "^columns(\\d*)$": "stûnên$1", "^column_plain(\\d*)$": "stûn-sade$1", "^columnurl(\\d*)$": "urlya-stûnê$1", "^column_prefix(\\d*)$": "pêşgira-stûnê$1", "^coauthors(\\d*)$": "hevnivîskar$1", "^quotee(\\d*)$": "jê-tê-girtin$1", "^editor(\\d*)$": "edîtor$1", "^editors(\\d*)$": "edîtor$1", "^mainauthor(\\d*)$": "nivîskarê-sereke$1", "^compiler(\\d*)$": "berhevkar$1", "^compilers(\\d*)$": "berhevkar$1", "^director(\\d*)$": "derhêner$1", "^directors(\\d*)$": "derhêner$1", "^lyricist(\\d*)$": "gotinnivîs$1", "^lyrics-translator(\\d*)$": "tercimanê-gotinan$1", "^composer(\\d*)$": "bestekar$1", "^actor(\\d*)$": "aktor$1", "^artist(\\d*)$": "artîst$1", "^feat(\\d*)$": "mêvan$1", "^default-authorlabel(\\d*)$": "standard-etîketa-nivîskar$1", "^authorlabel(\\d*)$": "etîketa-nivîskar$1", "^title(\\d*)$": "sernav$1", "^trans-title(\\d*)$": "tercimeya-sernav$1", "^series(\\d*)$": "serî$1", "^seriesvolume(\\d*)$": "cildê-seriyê$1", "^notitle(\\d*)$": "bêsernav$1", "^entry(\\d*)$": "made$1", "^entryurl(\\d*)$": "urlya-madeyê$1", "^trans-entry(\\d*)$": "tercimeya-madeyê$1", "^chapter(\\d*)$": "beş$1", "^chapterurl(\\d*)$": "urlya-beşê$1", "^chapter_number(\\d*)$": "hejmara-beşê$1", "^chapter_plain(\\d*)$": "beş-sade$1", "^chapter_series(\\d*)$": "seriya-beşê$1", "^chapter_seriesvolume(\\d*)$": "cildê-seriya-beşê$1", "^trans-chapter(\\d*)$": "tercimeya-beşê$1", "^section(\\d*)$": "qisim$1", "^sectionurl(\\d*)$": "urlya-qismê$1", "^section_number(\\d*)$": "hejmara-qismê$1", "^section_plain(\\d*)$": "qisim-sade$1", "^section_series(\\d*)$": "rêzeya-qismê$1", "^section_seriesvolume(\\d*)$": "cildê-seriya-qismê$1", "^trans-section(\\d*)$": "tercimeya-qismê$1", "^system(\\d*)$": "sîstem$1", "^scene(\\d*)$": "sehne$1", "^level(\\d*)$": "seviye$1", "^archiveurl(\\d*)$": "urlya-arşîvê$1", "^edition(\\d*)$": "çap$1", "^edition_plain(\\d*)$": "çap-sade$1", "^archivedate(\\d*)$": "tarîxa-arşîvê$1", "^accessdate(\\d*)$": "tarîxa-gihiştinê$1", "^nodate(\\d*)$": "bêtarîx$1", "^type(\\d*)$": "cure$1", "^genre(\\d*)$": "janr$1", "^medium(\\d*)$": "medya$1", "^others(\\d*)$": "kesên-din$1", "^quoted_in(\\d*)$": "cihê-jêgirtinê$1", "^location(\\d*)$": "cih$1", "^publisher(\\d*)$": "weşanxane$1", "^original(\\d*)$": "orîjînal$1", "^orjînal(\\d*)$": "orîjînal$1", "^by(\\d*)$": "ji-aliyê$1", "^note(\\d*)$": "not$1", "^note_plain(\\d*)$": "not-sade$1", "^other(\\d*)$": "yê-din$1", "^source(\\d*)$": "çavkanî$1", "^worklang(\\d*)$": "zimanê-eserê$1", "^termlang(\\d*)$": "zimanê-termê$1", "^origlang(\\d*)$": "zimanê-orîjînal$1", "^origworklang(\\d*)$": "zimanê-esera-orîjînal$1", "^date(\\d*)$": "tarîx$1", "^year(\\d*)$": "sal$1", "^month(\\d*)$": "meh$1", "^start_date(\\d*)$": "tarîxa-destpêkê$1", "^start_year(\\d*)$": "sala-destpêkê$1", "^start_month(\\d*)$": "meha-destpêkê$1", "^origdate(\\d*)$": "tarîxa-orîjînal$1", "^origyear(\\d*)$": "sala-orîjînal$1", "^sala orîjînal(\\d*)$": "sala-orîjînal$1", "^origmonth(\\d*)$": "meha-orîjînal$1", "^origstart_date(\\d*)$": "tarîxa-destpêkê-orîjînal$1", "^origstart_year(\\d*)$": "sala-destpêkê-orîjînal$1", "^origstart_month(\\d*)$": "meha-destpêkê-orîjînal$1", "^date_published(\\d*)$": "tarîxa-weşandinê$1", "^year_published(\\d*)$": "sala-weşandinê$1", "^sala weşandinê(\\d*)$": "sala-weşandinê$1", "^month_published(\\d*)$": "meha-weşandinê$1", "^start_date_published(\\d*)$": "tarîxa-destpêkê-weşandin$1", "^start_year_published(\\d*)$": "sala_destpêkê-weşandin$1", "^start_month_published(\\d*)$": "meha-destpêkê-weşandin$1", //kovar journal "^article(\\d*)$": "meqale$1", "^titleurl(\\d*)$": "urlya-sernav$1", "^articleurl(\\d*)$": "urlya-meqaleyê$1", "^trans-article(\\d*)$": "tercimeya-meqaleyê$1", "^title_tlr(\\d*)$": "tercimanê-sernav$1", "^title_tlrs(\\d*)$": "tercimanê-sernav$1", "^title_translator(\\d*)$": "tercimanê-sernav$1", "^title_translators(\\d*)$": "tercimanê-sernav$1", "^article_tlr(\\d*)$": "tercimanê-meqaleyê$1", "^article_tlrs(\\d*)$": "tercimanê-meqaleyê$1", "^article_translator(\\d*)$": "tercimanê-meqaleyê$1", "^article_translators(\\d*)$": "tercimanê-meqaleyê$1", "^title_series(\\d*)$": "seriya-sernav$1", "^article_series(\\d*)$": "seriya-meqaleyê$1", //chapter_seriesvolume "^title_seriesvolume(\\d*)$": "cildê-seriya-sernav$1", "^article_seriesvolume(\\d*)$": "cildê-seriya-meqaleyê$1", //chapter_number "^title_number(\\d*)$": "hejmara-sernav$1", "^article_number(\\d*)$": "hejmara-meqaleyê$1", //chapter_plain "^title_plain(\\d*)$": "sernav-sade$1", "^article_plain(\\d*)$": "meqale-sade$1", //title (periodical name) "^journal(\\d*)$": "kovar$1", "^magazine(\\d*)$": "kovar$1", "^newspaper(\\d*)$": "xezete$1", "^work(\\d*)$": "xebat$1", //trans-title "^trans-journal(\\d*)$": "tercimeya-kovar$1", "^trans-magazine(\\d*)$": "tercimeya-kovar$1", "^trans-newspaper(\\d*)$": "tercimeya-xezete$1", "^trans-work(\\d*)$": "tercimeya-xebatê$1", //tlr (periodical translator) "^journal_tlr(\\d*)$": "tercimanê-kovarê$1", "^journal_tlrs(\\d*)$": "tercimanê-kovarê$1", "^journal_translator(\\d*)$": "tercimanê-kovarê$1", "^journal_translators(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlr(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlrs(\\d*)$": "tercimanê-kovarê$1", "^magazine_translator(\\d*)$": "tercimanê-kovarê$1", "^magazine_translators(\\d*)$": "tercimanê-kovarê$1", "^newspaper_tlr(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_tlrs(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translator(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translators(\\d*)$": "tercimanê-xezeteyê$1", "^work_tlr(\\d*)$": "tercimanê-xebatê$1", "^work_tlrs(\\d*)$": "tercimanê-xebatê$1", "^work_translator(\\d*)$": "tercimanê-xebatê$1", "^work_translators(\\d*)$": "tercimanê-xebatê$1", //url (periodical url) "^journalurl(\\d*)$": "urlya-kovarê$1", "^magazineurl(\\d*)$": "urlya-kovarê$1", "^newspaperurl(\\d*)$": "urlya-xezeteyê$1", "^workurl(\\d*)$": "urlya-xebatê$1", //source "^newsagency(\\d*)$": "ajans$1", "^news_agency(\\d*)$": "ajans$1", //chapter (individual webpage/entry title) — website citations "^webpage(\\d*)$": "rûpela-webê$1", "^webpageurl(\\d*)$": "urlya-webê$1", "^trans-webpage(\\d*)$": "tercimeya-webê$1", "^webpage_tlr(\\d*)$": "tercimanê-webê$1", "^webpage_series(\\d*)$": "seriya-websîteyê$1", "^webpage_seriesvolume(\\d*)$": "cildê-seriya-webê$1", "^webpage_number(\\d*)$": "hejmara-webê$1", "^webpage_plain(\\d*)$": "web-sade$1", //title (site/work name) — website citations "^site(\\d*)$": "websîte$1", "^trans-site(\\d*)$": "tercimeya-sîteyê$1", //chapter (episode) — audio/video citations "^episode(\\d*)$": "xelek$1", "^episodeurl(\\d*)$": "urlya-xelekê$1", "^trans-episode(\\d*)$": "tercimeya-xelekê$1", "^episode_series(\\d*)$": "seriya-xelekê$1", "^episode_seriesvolume(\\d*)$": "cildê-seriya-xelekê$1", "^episode_number(\\d*)$": "hejmara-xelekê$1", "^episode_plain(\\d*)$": "xelek-sade$1", //volume (season) — audio/video citations "^season(\\d*)$": "sezon$1", "^seasons(\\d*)$": "sezonên$1", "^season_plain(\\d*)$": "sezon-sade$1", "^seasonurl(\\d*)$": "urlya-sezonê$1", } }; function run() { var $textbox = $( '#wpTextbox1' ); if ( !$textbox.length ) { mw.notify( 'Qutîka guhertinê (wpTextbox1) nehat dîtin. Tu li rûpelekê ya guhertinê yî?', { type: 'error' } ); return; } var originalText = $textbox.val(); var newText = TemplateParamRenamer.rename( originalText, CONFIG ); if ( newText === originalText ) { mw.notify( 'Tu şablon nehat dîtin ku were guhertin.' ); return; } // Update the textbox in place. The user still reviews and clicks // "Save"/"Show changes" themselves — this script never submits // the form or touches the API. $textbox.val( newText ).trigger( 'change' ); // Append a note to the edit summary, if present, without // clobbering anything the user already typed. var $summary = $( '#wpSummary' ); if ( $summary.length ) { var note = 'kurdîkirina şablonên jêderê (citeKurdifier)'; var current = $summary.val(); $summary.val( current ? current + '; ' + note : note ); } mw.notify( 'Şablonên jêderê hatin kurdîkirin. Ji kerema xwe biguherînan kontrol bike û tomar bike.' ); } $( function () { // Only makes sense to show this on an edit form if ( !$( '#wpTextbox1' ).length ) { return; } var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'citeKurdifier', 'ca-cite-kurdifier', 'Şablonên jêderê bike kurdî' ); // addPortletLink returns null if 'p-cactions' doesn't exist in the current skin. if ( portletLink ) { portletLink.addEventListener( 'click', function ( e ) { e.preventDefault(); run(); } ); } } ); }() ); 7dw078g8p7gnxnn2tx8gp8oushewbgy 6328748 6328732 2026-08-10T23:12:38Z Wikihez 7344 6328748 javascript text/javascript /** * citeKurdifier.js * * Converts English citation templates (quote-web, quote-book, quote-journal) * and a set of their parameters into their Kurdish Wiktionary equivalents, * using an inline configuration (see CONFIG below). * * Works directly on the edit textbox (#wpTextbox1) — no page fetch needed, * since the config now lives in this file rather than on a wiki page. * * Requires: morebits.js, templateParamRenamer.js (loaded first) */ /* global mw, $, Morebits, TemplateParamRenamer */ ( function () { 'use strict'; var CONFIG = { "templates": { "jêder-malper": "jêder-malper/ceribandin", "jêder-kitêb": "jêder-kitêb/ceribandin", "jêder-kovar": "jêder-kovar/ceribandin", "quote-web": "jêder-malper/ceribandin", "quote-book": "jêder-kitêb/ceribandin", "quote-journal": "jêder-kovar/ceribandin", "jêder-vîdeo": "jêder-vîdeo/ceribandin", "quote-av": "jêder-vîdeo/ceribandin", }, "basic_params": { "access-date": "roja-gihiştinê", "cîh": "cih", "newversion": "versiyona-nû", "passage": "jêgirtin", "text": "jêgirtin", "jg": "jêgirtin", "transliteration": "tr", "transcription": "ts", "normalization": "norm", "translation": "tercime", "gloss": "tercime", "lit": "hrf", "lb": "e", "origtext": "metna-orîjînal", "origtr": "tr-orîjînal", "origts": "ts-orîjînal", "orignorm": "norm-orîjînal", "origsc": "sc-orîjînal", "orignormsc": "normsc-orîjînal", "origsubst": "subst-orîjînal", "origlb": "e-orîjînal", "nocat": "nekat", "brackets": "parantez", }, "numbered_params": { "^role(\\d*)$": "rol$1", "^roles(\\d*)$": "rol$1", "^speaker(\\d*)$": "rol$1", "^tlr(\\d*)$": "terciman$1", "^translator(\\d*)$": "terciman$1", "^translators(\\d*)$": "terciman$1", "^chapter_tlr(\\d*)$": "tercimanê-beşê$1", "^chapter_tlrs(\\d*)$": "tercimanê-beşê$1", "^chapter_translator(\\d*)$": "tercimanê-beşê$1", "^chapter_translators(\\d*)$": "tercimanê-beşê$1", "^lang(\\d*)$": "ziman$1", "^first(\\d*)$": "pêşnav$1", "^2ndfirst(\\d*)$": "2pêşnav$1", "^last(\\d*)$": "paşnav$1", "^2ndlast(\\d*)$": "2paşnav$1", "^trans-author(\\d*)$": "tercimeya-nivîskar$1", "^author(\\d*)$": "nivîskar$1", "^writer(\\d*)$": "nivîskar$1", "^writers(\\d*)$": "nivîskar$1", "^2ndauthor(\\d*)$": "2nivîskar$1", "^authorlink(\\d*)$": "lînka-nivîskar$1", "^2ndauthorlink(\\d*)$": "2lînka-nivîskar$1", "^trans-authorlink(\\d*)$": "lînka-tercimeya-nivîskar$1", "^trans-first(\\d*)$": "tercimeya-pêşnav$1", "^trans-last(\\d*)$": "tercimeya-paşnav$1", "^volume(\\d*)$": "cild$1", "^volumes(\\d*)$": "cildên$1", "^volume_plain(\\d*)$": "cild-sade$1", "^volumeurl(\\d*)$": "urlya-cild$1", "^volume_prefix(\\d*)$": "pêşgira-cild$1", "^vol(\\d*)$": "cild$1", "^vol_plain(\\d*)$": "cild-sade$1", "^volurl(\\d*)$": "urlya-cild$1", "^vol_prefix(\\d*)$": "pêşgira-cild$1", "^issue(\\d*)$": "hejmar$1", "^issues(\\d*)$": "hejmarên$1", "^issue_plain(\\d*)$": "hejmar-sade$1", "^issueurl(\\d*)$": "urlya-hejmarê$1", "^issue_prefix(\\d*)$": "pêşgira-hejmarê$1", "^number(\\d*)$": "nimare$1", "^numbers(\\d*)$": "nimareyên$1", "^number_plain(\\d*)$": "nimare-sade$1", "^numberurl(\\d*)$": "urlya-nimareyê$1", "^number_prefix(\\d*)$": "pêşgira-nimareyê$1", "^line(\\d*)$": "rêz$1", "^lines(\\d*)$": "rêzên$1", "^line_plain(\\d*)$": "rêz-sade$1", "^lineurl(\\d*)$": "urlya-rêzê$1", "^line_prefix(\\d*)$": "pêşgira-rêzê$1", "^page(\\d*)$": "rûpel$1", "^pages(\\d*)$": "rûpelên$1", "^page_plain(\\d*)$": "rûpel-sade$1", "^pageurl(\\d*)$": "urlya-rûpelê$1", "^page_prefix(\\d*)$": "pêşgira-rûpelê$1", "^column(\\d*)$": "stûn$1", "^columns(\\d*)$": "stûnên$1", "^column_plain(\\d*)$": "stûn-sade$1", "^columnurl(\\d*)$": "urlya-stûnê$1", "^column_prefix(\\d*)$": "pêşgira-stûnê$1", "^coauthors(\\d*)$": "hevnivîskar$1", "^quotee(\\d*)$": "jê-tê-girtin$1", "^editor(\\d*)$": "edîtor$1", "^editors(\\d*)$": "edîtor$1", "^mainauthor(\\d*)$": "nivîskarê-sereke$1", "^compiler(\\d*)$": "berhevkar$1", "^compilers(\\d*)$": "berhevkar$1", "^director(\\d*)$": "derhêner$1", "^directors(\\d*)$": "derhêner$1", "^lyricist(\\d*)$": "gotinnivîs$1", "^lyrics-translator(\\d*)$": "tercimanê-gotinan$1", "^composer(\\d*)$": "bestekar$1", "^actor(\\d*)$": "aktor$1", "^artist(\\d*)$": "artîst$1", "^feat(\\d*)$": "mêvan$1", "^default-authorlabel(\\d*)$": "standard-etîketa-nivîskar$1", "^authorlabel(\\d*)$": "etîketa-nivîskar$1", "^title(\\d*)$": "sernav$1", "^trans-title(\\d*)$": "tercimeya-sernav$1", "^series(\\d*)$": "serî$1", "^seriesvolume(\\d*)$": "cildê-seriyê$1", "^notitle(\\d*)$": "bêsernav$1", "^entry(\\d*)$": "made$1", "^entryurl(\\d*)$": "urlya-madeyê$1", "^trans-entry(\\d*)$": "tercimeya-made$1", "^chapter(\\d*)$": "beş$1", "^chapterurl(\\d*)$": "urlya-beşê$1", "^chapter_number(\\d*)$": "hejmara-beşê$1", "^chapter_plain(\\d*)$": "beş-sade$1", "^chapter_series(\\d*)$": "seriya-beşê$1", "^chapter_seriesvolume(\\d*)$": "cildê-seriya-beşê$1", "^trans-chapter(\\d*)$": "tercimeya-beş$1", "^section(\\d*)$": "qisim$1", "^sectionurl(\\d*)$": "urlya-qismê$1", "^section_number(\\d*)$": "hejmara-qismê$1", "^section_plain(\\d*)$": "qisim-sade$1", "^section_series(\\d*)$": "rêzeya-qismê$1", "^section_seriesvolume(\\d*)$": "cildê-seriya-qismê$1", "^trans-section(\\d*)$": "tercimeya-qism$1", "^system(\\d*)$": "sîstem$1", "^scene(\\d*)$": "sehne$1", "^level(\\d*)$": "seviye$1", "^archiveurl(\\d*)$": "urlya-arşîvê$1", "^edition(\\d*)$": "çap$1", "^edition_plain(\\d*)$": "çap-sade$1", "^archivedate(\\d*)$": "tarîxa-arşîvê$1", "^accessdate(\\d*)$": "tarîxa-gihiştinê$1", "^nodate(\\d*)$": "bêtarîx$1", "^type(\\d*)$": "cure$1", "^genre(\\d*)$": "janr$1", "^medium(\\d*)$": "medya$1", "^others(\\d*)$": "kesên-din$1", "^quoted_in(\\d*)$": "cihê-jêgirtinê$1", "^location(\\d*)$": "cih$1", "^publisher(\\d*)$": "weşanxane$1", "^original(\\d*)$": "orîjînal$1", "^orjînal(\\d*)$": "orîjînal$1", "^by(\\d*)$": "ji-aliyê$1", "^note(\\d*)$": "not$1", "^note_plain(\\d*)$": "not-sade$1", "^other(\\d*)$": "yê-din$1", "^source(\\d*)$": "çavkanî$1", "^worklang(\\d*)$": "zimanê-eserê$1", "^termlang(\\d*)$": "zimanê-termê$1", "^origlang(\\d*)$": "zimanê-orîjînal$1", "^origworklang(\\d*)$": "zimanê-esera-orîjînal$1", "^date(\\d*)$": "tarîx$1", "^year(\\d*)$": "sal$1", "^month(\\d*)$": "meh$1", "^start_date(\\d*)$": "tarîxa-destpêkê$1", "^start_year(\\d*)$": "sala-destpêkê$1", "^start_month(\\d*)$": "meha-destpêkê$1", "^origdate(\\d*)$": "tarîxa-orîjînal$1", "^origyear(\\d*)$": "sala-orîjînal$1", "^sala orîjînal(\\d*)$": "sala-orîjînal$1", "^origmonth(\\d*)$": "meha-orîjînal$1", "^origstart_date(\\d*)$": "tarîxa-destpêkê-orîjînal$1", "^origstart_year(\\d*)$": "sala-destpêkê-orîjînal$1", "^origstart_month(\\d*)$": "meha-destpêkê-orîjînal$1", "^date_published(\\d*)$": "tarîxa-weşandinê$1", "^year_published(\\d*)$": "sala-weşandinê$1", "^sala weşandinê(\\d*)$": "sala-weşandinê$1", "^month_published(\\d*)$": "meha-weşandinê$1", "^start_date_published(\\d*)$": "tarîxa-destpêkê-weşandin$1", "^start_year_published(\\d*)$": "sala_destpêkê-weşandin$1", "^start_month_published(\\d*)$": "meha-destpêkê-weşandin$1", //kovar journal "^article(\\d*)$": "meqale$1", "^titleurl(\\d*)$": "urlya-sernav$1", "^articleurl(\\d*)$": "urlya-meqaleyê$1", "^trans-article(\\d*)$": "tercimeya-meqale$1", "^title_tlr(\\d*)$": "tercimanê-sernav$1", "^title_tlrs(\\d*)$": "tercimanê-sernav$1", "^title_translator(\\d*)$": "tercimanê-sernav$1", "^title_translators(\\d*)$": "tercimanê-sernav$1", "^article_tlr(\\d*)$": "tercimanê-meqaleyê$1", "^article_tlrs(\\d*)$": "tercimanê-meqaleyê$1", "^article_translator(\\d*)$": "tercimanê-meqaleyê$1", "^article_translators(\\d*)$": "tercimanê-meqaleyê$1", "^title_series(\\d*)$": "seriya-sernav$1", "^article_series(\\d*)$": "seriya-meqaleyê$1", //chapter_seriesvolume "^title_seriesvolume(\\d*)$": "cildê-seriya-sernav$1", "^article_seriesvolume(\\d*)$": "cildê-seriya-meqaleyê$1", //chapter_number "^title_number(\\d*)$": "hejmara-sernav$1", "^article_number(\\d*)$": "hejmara-meqaleyê$1", //chapter_plain "^title_plain(\\d*)$": "sernav-sade$1", "^article_plain(\\d*)$": "meqale-sade$1", //title (periodical name) "^journal(\\d*)$": "kovar$1", "^magazine(\\d*)$": "kovar$1", "^newspaper(\\d*)$": "xezete$1", "^work(\\d*)$": "xebat$1", //trans-title "^trans-journal(\\d*)$": "tercimeya-kovar$1", "^trans-magazine(\\d*)$": "tercimeya-kovar$1", "^trans-newspaper(\\d*)$": "tercimeya-xezete$1", "^trans-work(\\d*)$": "tercimeya-xebat$1", //tlr (periodical translator) "^journal_tlr(\\d*)$": "tercimanê-kovarê$1", "^journal_tlrs(\\d*)$": "tercimanê-kovarê$1", "^journal_translator(\\d*)$": "tercimanê-kovarê$1", "^journal_translators(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlr(\\d*)$": "tercimanê-kovarê$1", "^magazine_tlrs(\\d*)$": "tercimanê-kovarê$1", "^magazine_translator(\\d*)$": "tercimanê-kovarê$1", "^magazine_translators(\\d*)$": "tercimanê-kovarê$1", "^newspaper_tlr(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_tlrs(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translator(\\d*)$": "tercimanê-xezeteyê$1", "^newspaper_translators(\\d*)$": "tercimanê-xezeteyê$1", "^work_tlr(\\d*)$": "tercimanê-xebatê$1", "^work_tlrs(\\d*)$": "tercimanê-xebatê$1", "^work_translator(\\d*)$": "tercimanê-xebatê$1", "^work_translators(\\d*)$": "tercimanê-xebatê$1", //url (periodical url) "^journalurl(\\d*)$": "urlya-kovarê$1", "^magazineurl(\\d*)$": "urlya-kovarê$1", "^newspaperurl(\\d*)$": "urlya-xezeteyê$1", "^workurl(\\d*)$": "urlya-xebatê$1", //source "^newsagency(\\d*)$": "ajans$1", "^news_agency(\\d*)$": "ajans$1", //chapter (individual webpage/entry title) — website citations "^webpage(\\d*)$": "rûpela-webê$1", "^webpageurl(\\d*)$": "urlya-webê$1", "^trans-webpage(\\d*)$": "tercimeya-web$1", "^webpage_tlr(\\d*)$": "tercimanê-webê$1", "^webpage_series(\\d*)$": "seriya-websîteyê$1", "^webpage_seriesvolume(\\d*)$": "cildê-seriya-webê$1", "^webpage_number(\\d*)$": "hejmara-webê$1", "^webpage_plain(\\d*)$": "web-sade$1", //title (site/work name) — website citations "^site(\\d*)$": "websîte$1", "^trans-site(\\d*)$": "tercimeya-sîte$1", //chapter (episode) — audio/video citations "^episode(\\d*)$": "xelek$1", "^episodeurl(\\d*)$": "urlya-xelekê$1", "^trans-episode(\\d*)$": "tercimeya-xelek$1", "^episode_series(\\d*)$": "seriya-xelekê$1", "^episode_seriesvolume(\\d*)$": "cildê-seriya-xelekê$1", "^episode_number(\\d*)$": "hejmara-xelekê$1", "^episode_plain(\\d*)$": "xelek-sade$1", //volume (season) — audio/video citations "^season(\\d*)$": "sezon$1", "^seasons(\\d*)$": "sezonên$1", "^season_plain(\\d*)$": "sezon-sade$1", "^seasonurl(\\d*)$": "urlya-sezonê$1", } }; function run() { var $textbox = $( '#wpTextbox1' ); if ( !$textbox.length ) { mw.notify( 'Qutîka guhertinê (wpTextbox1) nehat dîtin. Tu li rûpelekê ya guhertinê yî?', { type: 'error' } ); return; } var originalText = $textbox.val(); var newText = TemplateParamRenamer.rename( originalText, CONFIG ); if ( newText === originalText ) { mw.notify( 'Tu şablon nehat dîtin ku were guhertin.' ); return; } // Update the textbox in place. The user still reviews and clicks // "Save"/"Show changes" themselves — this script never submits // the form or touches the API. $textbox.val( newText ).trigger( 'change' ); // Append a note to the edit summary, if present, without // clobbering anything the user already typed. var $summary = $( '#wpSummary' ); if ( $summary.length ) { var note = 'kurdîkirina şablonên jêderê (citeKurdifier)'; var current = $summary.val(); $summary.val( current ? current + '; ' + note : note ); } mw.notify( 'Şablonên jêderê hatin kurdîkirin. Ji kerema xwe biguherînan kontrol bike û tomar bike.' ); } $( function () { // Only makes sense to show this on an edit form if ( !$( '#wpTextbox1' ).length ) { return; } var portletLink = mw.util.addPortletLink( 'p-cactions', '#', 'citeKurdifier', 'ca-cite-kurdifier', 'Şablonên jêderê bike kurdî' ); // addPortletLink returns null if 'p-cactions' doesn't exist in the current skin. if ( portletLink ) { portletLink.addEventListener( 'click', function ( e ) { e.preventDefault(); run(); } ); } } ); }() ); 6nnt76bq32m4119jvl85d917ouvwowv Bikarhêner:Balyozbot/kontrol/rêzkirina beşan 2 1358302 6328864 6328137 2026-08-11T01:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: +1 xeta 6328864 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) == Ş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" kglj3wq7f971etsu452h8kjclwnc81x Modul:quote/ceribandin 828 1358481 6328698 2026-08-10T12:51:52Z Wikihez 7344 Rûpel bi "--[=[ 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..." hat çêkirin 6328698 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) 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 = {}, 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( ( "Can't specify |%s= along with multiple %s-separated entities in |%s=; use the <t:...> " .. "inline modifier attached to the individual entities" ):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 = ("Can't currently handle embedded links in '%s', with <alt:...> text '%s'"):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 return serial_comma_join(parts, {conj = 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.", full = "ante"}, ["c."] = {anchor = "c.", full = "circa"}, ["p."] = {anchor = "p.", full = "post"}, } -- Process prefixes 'a.' (ante), 'c.' (circa) 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) local prefix = usub(date, 1, 2) local abbr = abbrs[prefix] local abbr_prefix = "" if abbr then abbr_prefix = "''[[Appendix:Glossary#" .. abbr.anchor .. '|<abbr title="' .. abbr.full .. '">' .. abbr.anchor .. "</abbr>]]'' " -- Remove lowercase letter, period, and space from beginning of date parameter. date = ugsub(date, "^%l%.%s*", "") end return abbr_prefix, 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). -- -- 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( ( "Timestamp |%s=%s (possibly canonicalized from its original format) could not be parsed; see the " .. "[[mw:Help:Extension:ParserFunctions##time|documentation for the #time parser function]]" ):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 tonumber(date) ~= nil then error( ("|%s= should contain a full date (year, month, day of month); use |%s= for year"):format( pname(param_pref .. "date"), pname(param_pref .. "year") ) ) elseif date and date:find("%s*%a+,%s*%d+%s*$") then error( ("|%s= should contain a full date (year, month, day of month); use |%s=, |%s= for month and year"):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") if date and year then error(("Only one of |%s= or |%s= should be specified"):format(pname("date"), pname("year"))) end if date and month then error( ("|%s= should only be specified in conjunction with |%s=, not with |%s="):format( pname("month"), pname("year"), pname("date") ) ) end if start_date and start_year then error(("Only one of |%s= or |%s= should be specified"):format(pname("start_date"), pname("start_year"))) end if start_date and start_month then error( ("|%s= should only be specified in conjunction with |%s=, not with |%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( ("|%s= or |%s=/|%s= cannot be specified without specifying |%s= or |%s=/|%s="):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") .. " (last accessed)") 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 -- 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 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 not allowed to contain a space, but saw |%s=%s"):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 = 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]nonymous$") 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(("Can't specify links in |%s=%s"):format(authorlink_param, authorlink)) end if txt:find("%[%[") then error(("Can't specify links in %s=%s"):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 = "anonymous author" authorobjs[1].link = "anonymous author" 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(format_multivalued_annotated_text(authorobjs)) elseif trans_authorlink then error( ( "Can't specify |%s= along with multiple semicolon-separated entities in |%s=; use the " .. "<t:...> inline modifier attached to the individual entities and put the link directly " .. "in the value of the inline modifier" ):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(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(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("anonymous" .. anonymous_suffix) elseif 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 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(("Specify only one of |%s= or %s="):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(("Cannot specify |%s= without %s="):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( ("Cannot specify |%s= without |%s=; put the numeric value in |%s= directly"):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) if author_outputted then add_authorlabel() end local coauthors = parse_and_format_multivalued_annotated_text("coauthors", "and") if coauthors then local with_prefix = "" if author_outputted then with_prefix = "with " 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", "translated by ", ", transl.", nil, " translator") 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(("Can't specify both |%s= and |%s="):format(sgval_fullname, plval_fullname)) end if sgval or plval then local verbed_by = verbed .. " by " 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", "chapter ", "“", "”") local function add_entry() if formatted_entry then add_with_sep(formatted_entry) if not a("notitle") then add("in ") 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 add("in ") 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") 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") if format_as_cite then if role then if actor then add_with_sep(actor .. " as ") end sep = nil add_with_sep(role) elseif actor then add_with_sep(actor .. " (" .. (#actor_objs > 1 and "actors" or "actor") .. ")") end else if role then add_with_sep("spoken by " .. role) if actor then sep = nil add_with_sep(" (" .. actor .. ")") end elseif actor then add_with_sep(actor .. " (" .. (#actor_objs > 1 and "actors" or "actor") .. ")") 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") 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", "translated by ", ", transl.", nil, " translator") author_outputted = false add_sg_and_pl_authorlike("editor", "edited") add_sg_and_pl_authorlike("compiler", "compiled") add_sg_and_pl_authorlike("director", "directed") add_authorlike("lyricist", nil, " (lyrics)", nil, " lyricist") add_authorlike("lyrics-translator", nil, " (translation)", nil, " lyrics translator") add_authorlike("composer", nil, " (music)", nil, " composer") 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") if mainauthor then add_with_sep(mainauthor) author_outputted = true end add_authorlike("tlr", "translated by ", ", transl.", nil, " translator") add_sg_and_pl_authorlike("editor", "edited") add_sg_and_pl_authorlike("compiler", "compiled") add_sg_and_pl_authorlike("director", "directed") add_authorlike("lyricist", nil, " (lyrics)", nil, " lyricist") add_authorlike("lyrics-translator", nil, " (translation)", nil, " lyrics translator") add_authorlike("composer", nil, " (music)", nil, " composer") 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")) add(format_annotated_text(titleobj, tag_with_cite, tag_with_cite)) 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 add(maintenance_line("Please provide the book title or journal name")) 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(("Supply only one of |%s= and |%s="):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 == "en") then local langs = format_langs(args[1] or args.lang) if langs then add(" (in " .. 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(("Supply only one of |%s= and |%s="):format(edition_fullname, edition_plain_fullname)) end if edition then add_with_sep(edition .. " edition") 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(("Can't specify " .. plain_fullname .. " with " .. paramname .. " or " .. plparamname)) elseif sgval and plval then -- if both singular and plural, display "page 1 of 1-10" numspec = singular_desc .. " " .. sgval .. " of " .. 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 = "unnumbered " .. singular_desc else local desc if val:find("^!") then val = val:gsub("^!", "") desc = sgval and singular_desc or pluralize(singular_desc) 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 = pluralize(singular_desc) 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 "volume") if volume then add_with_sep(volume) end local issue = format_numeric_param("issue", a("issue_prefix") or "number") 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 "number") 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("Please specify the language of the quote using |1=")) 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, "in " .. format_langs(quotelang)) end else if quotelang ~= termlang then insert(annotations, "quotation in " .. format_langs(quotelang)) end insert(annotations, "overall work in " .. format_langs(worklang)) end else local lang2 = a("lang2") if lang2 then insert(annotations, "in " .. 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") if artist then add_with_sep("performed by " .. artist) end local feat = parse_and_format_multivalued_annotated_text("feat", "and") if feat then sep = " " add_with_sep("ft. " .. feat) end if not format_as_cite then add_actor_role() end local others = parse_and_format_annotated_text("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("quoted in " .. quoted_in) insert(tracking_categories, "Quotations using quoted-in parameter") 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("sourced from " .. source) 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") local origtype = a("deriv") or "translation" if original or by then add_with_sep(origtype .. " of " .. (original or "original") .. (by and " by " .. by 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 = "in " .. format_langs(origlang) end if origworklang then origworklangtext = "overall work in " .. 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 .. " of original" .. (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, "Please provide a date or year", 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("published " .. formatted_date_published .. (platform and " via " .. platform or "")) elseif platform then add_with_sep("via " .. 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 add(", archived from ") 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( ("When |%s= is specified, |%s= must also be included"):format(archiveurl_fullname, url_fullname) ) end end add("[" .. url .. " the original] on ") 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( ("When |%s= is specified, |%s= must also be included"):format( archiveurl_fullname, archivedate_fullname ) ) end 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(", retrieved " .. format_date(a("accessdate"))) end end local formatted_section = format_chapterlike("section", "section ") 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(", scene: " .. scene) end local level = parse_and_format_annotated_text("level") if level then add(", level/area: " .. 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 "page", ", ") handle_numeric_param("column", a("column_prefix") or "column", ", ") handle_numeric_param("line", a("line_prefix") or "line", ", ") -- 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(("Can't have |%s%s= without |author%s= or |last%s="):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. "quoted in" or "republished as". add(args.newversion) elseif not args.edition2 then if has_new_title_or_author() then add("republished as") else add("republished") 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, "Can we [[:Category:Requests for date|date]] this quote?", year_last ) -- 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, need_date 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(("Can't have |%s= without |2ndauthor= or |2ndlast="):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(("Can't have |%s= without |2ndauthor= or |2ndlast="):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, "Citations using nocat parameter") else insert(tracking_categories, "Quotations using nocat parameter") 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(("Bad value for `args.pagename`: '%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, termlang:getFullName() .. " terms with quotations") end end if need_date then local argslangobj = get_first_lang(argslang) insert(categories, "Requests for date in " .. argslangobj:getCanonicalName() .. " entries") 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"}, {"title", "4"}, {"url", "5"}, {"year", "2"}, {"page", "6"}, {"text", "7"}, {"t", "8"}, }, journal = { {"year", "2"}, {"author", "3"}, {"chapter", "title,article,4", true}, {"chapterurl", "titleurl,articleurl", true}, {"trans-chapter", "trans-title,trans-article", true}, {"chapter_tlr", "title_tlr,title_tlrs,title_translator,title_translators,article_tlr,article_tlrs,article_translator,article_translators", true}, {"chapter_series", "title_series,article_series", true}, {"chapter_seriesvolume", "title_seriesvolume,article_seriesvolume", true}, {"chapter_number", "title_number,article_number", true}, {"chapter_plain", "title_plain,article_plain", true}, {"title", "journal,magazine,newspaper,work,5", true}, {"trans-title", "trans-journal,trans-magazine,trans-newspaper,trans-work", true}, {"tlr", "journal_tlr,journal_tlrs,journal_translator,journal_translators,magazine_tlr,magazine_tlrs,magazine_translator,magazine_translators,newspaper_tlr,newspaper_tlrs,newspaper_translator,newspaper_translators,work_tlr,work_tlrs,work_translator,work_translators", true}, {"url", "6,journalurl,magazineurl,newspaperurl,workurl", true}, {"page", "7"}, {"source", "newsagency,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) 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( ("Unrecognized value '%s' for type%s=; possible values are %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= and |%s= are aliases; cannot specify a value for both"):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= is an alias of |%s=; cannot specify a value for both"):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 if typ then process_type_aliases(args, typ, false, alias_map) end local typ2 = args.type2 or direct_args.type2 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(("Alias spec '%s' should have one colon in it"):format(alias_spec)) 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= and |%s= are aliases; cannot specify a value for both"):format(saw_source, source)) end end end if saw_source then if args[dest] then error(("|%s= is an alias of |%s=; cannot specify a value for both"):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( ("Cannot specify a value |%s=%s as it would be overwritten or ignored"):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) 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"} -- First, the "single" params that don't have FOO2 or FOOn versions. local params = { [deprecated and "lang" or 1] = {required = require_lang, type = "language", sublist = true, default = "und"}, ["lang2"] = language_sublist, ["newversion"] = true, ["author"] = list_allow_holes, ["2ndauthor"] = true, ["trans-author"] = list_allow_holes, ["authorlink"] = list_allow_holes, ["2ndauthorlink"] = true, ["trans-authorlink"] = list_allow_holes, ["first"] = list_allow_holes, ["2ndfirst"] = true, ["trans-first"] = list_allow_holes, ["last"] = list_allow_holes, ["2ndlast"] = true, ["trans-last"] = list_allow_holes, ["nocat"] = boolean, ["nocolon"] = boolean, -- quote params text = true, passage = {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, t = true, translation = alias_of_t, gloss = alias_of_t, lb = true, brackets = boolean, -- original quote params origtext = true, origtr = true, origts = true, orignorm = true, origsc = script, orignormsc = script, origsubst = true, origlb = true, usenodot = boolean, nodot = boolean, inline = boolean, asquote = boolean, ascite = boolean, } -- 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"} 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 -- 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 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 -- 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= should begin with a language code prefix") end origtextlang = get_lang(origtextlang, nil, "allow etym") or error("origtext= should begin with a language code prefix") origsc = args.origsc orignormsc = args.orignormsc else for _, noparam in ipairs{"origtr", "origts", "origsc", "orignorm", "orignormsc", "origsubst", "origlb"} do if args[noparam] then error(("Cannot specify %s= without origtext="):format(noparam)) end end end return origtext, origtextlang, origsc, orignormsc end local function get_quote(args, is_cite) 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, } 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 = "<dl><dd>" .. format_usex(usex_data) .. "</dd></dl>" 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 = {} insert(parts, '<div class="citation-whole"><span class="cited-source">') insert(parts, export.source(args, alias_map, nil, other_controls)) insert(parts, "</span>") insert(parts, get_quote(args)) insert(parts, "</div>") 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 if parent_args[1] == nil 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, ["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 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 6o2boijssnzfvdyknbvpnnbbo2zzu5x Şablon:quote-av 10 1358482 6328724 2026-08-10T21:30:24Z Wikihez 7344 [[:en:Template:quote-av]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6328724 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t | volume_prefix = season | number_prefix = episode | chapter_plain = {{#if:{{{track|}}}|track {{{track|}}}{{#if:{{{time|}}}{{{at|}}}|,&#32;}} }}{{#if:{{{time|}}} | {{{time}}} from the start{{#if:{{{at|}}} |, {{{at}}} }} | {{#if:{{{at|}}} | {{{at}}} }} }} | alias = author: writer,writers; chapter: episode; chapterurl: episodeurl; trans-chapter: trans-episode; chapter_series: episode_series; chapter_seriesvolume: episode_seriesvolume; chapter_number: episode_number; chapter_plain: episode_plain; volume: season; volumes: seasons; volume_plain: season_plain; volumeurl: seasonurl; platform: network; | ignore = track,time,at }}</includeonly><!-- --><noinclude>{{quote-av|en|episode=[[w:Lisa the Iconoclast|Lisa the Iconoclast]]|title=[[w:The Simpsons|The Simpsons]]|season=7|number=16|writer=[[w:David X. Cohen|David X. Cohen]]|date=18 February 1996|note=production code 3F13|passage=''Mrs. Krabappel:'' "[[embiggen|Embiggens]]"? I never heard that word before moving to Springfield. / ''Ms. Hoover:'' I don't know why; it's a perfectly '''cromulent''' word. / [...] / ''Principal Skinner:'' He's embiggened that role with his '''cromulent''' performance.}}<!-- -->{{documentation}}</noinclude> 5o1f5b3yqc0ngk21sdefsxofc7h9wkq 6328730 6328724 2026-08-10T21:59:45Z Wikihez 7344 6328730 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t | volume_prefix = sezon | number_prefix = xelek | chapter_plain = {{#if:{{{track|}}}|traka {{{track|}}}{{#if:{{{time|}}}{{{at|}}}|,&#32;}} }}{{#if:{{{time|}}} | {{{time}}} ji destpêkê ve{{#if:{{{at|}}} |, {{{at}}} }} | {{#if:{{{at|}}} | {{{at}}} }} }} | alias = author: writer,writers; chapter: episode,xelek; chapterurl: episodeurl,urlya-xelekê; trans-chapter: trans-episode,tercimeya-xelekê; chapter_series: episode_series,seriya-xelekê; chapter_seriesvolume: episode_seriesvolume,cildê-seriya-xelekê; chapter_number: episode_number,hejmara-xelekê; chapter_plain: episode_plain,xelek-sade; volume: season,sezon; volumes: seasons,sezonên; volume_plain: season_plain,sezon-sade; volumeurl: seasonurl,urlya-sezonê; platform: network; | ignore = track,time,at }}</includeonly><!-- --><noinclude>{{quote-av|en|episode=[[w:Lisa the Iconoclast|Lisa the Iconoclast]]|title=[[w:The Simpsons|The Simpsons]]|season=7|number=16|writer=[[w:David X. Cohen|David X. Cohen]]|date=18 February 1996|note=production code 3F13|passage=''Mrs. Krabappel:'' "[[embiggen|Embiggens]]"? I never heard that word before moving to Springfield. / ''Ms. Hoover:'' I don't know why; it's a perfectly '''cromulent''' word. / [...] / ''Principal Skinner:'' He's embiggened that role with his '''cromulent''' performance.}}<!-- -->{{documentation}}</noinclude> kv9bf6kf6es9cc6x9qoufsktuklhyf1 6328749 6328730 2026-08-10T23:18:56Z Wikihez 7344 6328749 wikitext text/x-wiki <includeonly>{{#invoke:quote|quote_t | volume_prefix = sezon | number_prefix = xelek | chapter_plain = {{#if:{{{track|{{{trak|}}}}}}|traka {{{track|{{{trak|}}}}}}{{#if:{{{time|{{{dem|}}}}}}{{{at|{{{gav|}}}}}}|,&#32;}} }}{{#if:{{{time|{{{dem|}}}}}} | {{{time|{{{dem|}}}}}} ji destpêkê ve{{#if:{{{at|{{{gav|}}}}}} |, {{{at|{{{gav|}}}}}} }} | {{#if:{{{at|{{{gav|}}}}}} | {{{at|{{{gav|}}}}}} }} }} | alias = author: writer,writers; chapter: episode,xelek; chapterurl: episodeurl,urlya-xelekê; trans-chapter: trans-episode,tercimeya-xelek; chapter_series: episode_series,seriya-xelekê; chapter_seriesvolume: episode_seriesvolume,cildê-seriya-xelekê; chapter_number: episode_number,hejmara-xelekê; chapter_plain: episode_plain,xelek-sade; volume: season,sezon; volumes: seasons,sezonên; volume_plain: season_plain,sezon-sade; volumeurl: seasonurl,urlya-sezonê; platform: network; | ignore = track,trak,time,dem,at,gav }}</includeonly><!-- --><noinclude>{{quote-av|en|episode=[[w:Lisa the Iconoclast|Lisa the Iconoclast]]|title=[[w:The Simpsons|The Simpsons]]|season=7|number=16|writer=[[w:David X. Cohen|David X. Cohen]]|date=18 February 1996|note=production code 3F13|passage=''Mrs. Krabappel:'' "[[embiggen|Embiggens]]"? I never heard that word before moving to Springfield. / ''Ms. Hoover:'' I don't know why; it's a perfectly '''cromulent''' word. / [...] / ''Principal Skinner:'' He's embiggened that role with his '''cromulent''' performance.}}<!-- -->{{documentation}}</noinclude> 9qld4pjf1k5yrt5375emnv3yiktsxcw Şablon:quote-av/belge 10 1358483 6328725 2026-08-10T21:30:25Z Wikihez 7344 [[:en:Template:quote-av/documentation]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6328725 wikitext text/x-wiki {{documentation subpage}} {{uses lua|Module:quote}} ===Usage=== This template can be used in a dictionary entry to provide a quotation from an audio or video recording, including a film or a radio or television program. ===Sample templates=== ; Most basic parameters for English quotations <syntaxhighlight lang="wikitext" style="overflow:auto"> #* {{quote-av|1=|year=|author=|actor=|role=|title=|season=|number=|time=|text=}} </syntaxhighlight> ; Most basic parameters for non-English quotations <syntaxhighlight lang="wikitext" style="overflow:auto"> #* {{quote-av|1=|year=|author=|actor=|role=|title=|season=|number=|time=|text=|t=}} </syntaxhighlight> ; Commonly used parameters <syntaxhighlight lang="wikitext" style="overflow:auto"> #* {{quote-av|1=|author=|authorlink=|actor=|role=|episode=|title=|url=|archiveurl=|archivedate=|season=|number=|writer=|location=|publisher=|year=|isbn=|oclc=|time=|text=|t=|tr=}} </syntaxhighlight> ; All available parameters <syntaxhighlight lang="wikitext" style="overflow:auto"> #* {{quote-av|1=|author=|authorlink=|writer=|writers=|director=|directors=|actor=|role=|episode=|trans-episode=|title=|trans-title=|url=|archiveurl=|archivedate=|format=|medium=|worklang=|season=|number=|network=|location=|publisher=|date=|month=|year=|year_published=|accessdate=|isbn=|oclc=|id=|time=|at=|text=|passage=|t=|translation=|lit=|tr=|transliteration=|footer=|brackets=|subst=}} </syntaxhighlight> The following example: : <code><nowiki>{{quote-av|en|writer={{w|Cameron Crowe}}|actor={{w|Jay Mohr}}|role=Bob Sugar|title={{w|Jerry Maguire}}|location=Culver City, Calif.|publisher={{w|TriStar Pictures}}; distributed by [[w:Sony Pictures Home Entertainment|Columbia TriStar Home Video]]|year=1996|year_published=1997|isbn=978-0-8001-4174-5|text=It's also my job to take care of the '''skanks''' on the road that you bang.}}</nowiki></code> produces this: : {{quote-av|en|writer={{w|Cameron Crowe}}|actor={{w|Jay Mohr}}|role=Bob Sugar|title={{w|Jerry Maguire}}|location=Culver City, Calif.|publisher={{w|TriStar Pictures}}; distributed by [[w:Sony Pictures Home Entertainment|Columbia TriStar Home Video]]|year=1996|year_published=1997|isbn=978-0-8001-4174-5|text=It's also my job to take care of the '''skanks''' on the road that you bang.}} As there are no specific parameters for quoting multiple lines of a conversation, it is suggested that these be written in the following form, using <code>/</code> as a line separator: : <code><nowiki>|text=role A (actor A): first line / role B (actor B): second line...</nowiki></code> ===Parameters=== All parameters are optional except those marked "Mandatory", and may contain inline interwikis or external links as needed. {| class="wikitable" !Parameter !Remarks |- style="vertical-align:top;" | style="text-align:center;" | <code>1</code> | A comma-separated list of language codes indicating the language(s) of the quoted text; for a list of the codes, see [[Wiktionary:List of languages]]. If the language is other than English, the template will indicate this fact by displaying "(in [''language''])" (for one language), or "(in [''language''] and [''language''])" (for two languages), or "(in [''language''], [''language''] ... and [''language''])" (for three or more languages). The entry page will also be added to a category in the form "Category:[''Language''] terms with quotations" for the first listed language (unless <code>termlang</code> is specified, in which case that language is used for the category, or <code>nocat</code> is specified, in which case the page will not be added to any category). The first listed language also determines the font to use and the appropriate transliteration to display, if the text is in a non-Latin script. Use {{para|worklang}} to specify the language(s) that the overall recording is in: see below. |- style="vertical-align:top;" | style="text-align:center;" | <code>author</code> and <code>authorlink</code>, or <code>writer</code> or <code>writers</code> | The author or writer(s) of the episode or program quoted. The parameter {{para|authorlink}} can be used to link to an [[w:|English Wikipedia]] article about the author. |- style="vertical-align:top;" | style="text-align:center;" | <code>director</code> or <code>directors</code> | The director(s) of the episode or program quoted. |- style="vertical-align:top;" | style="text-align:center;" | <code>actor</code> | The actor quoted. |- style="vertical-align:top;" | style="text-align:center;" | <code>role</code> or <code>roles</code> or <code>speaker</code> | The role played by the actor; or, the person (in a non-acting role) speaking. |- style="vertical-align:top;" | style="text-align:center;" | <code>episode</code> | The title of the episode quoted. If specifying an episode number only, use <code>number</code>. |- style="vertical-align:top;" | style="text-align:center;" | <code>trans-episode</code> | If the title of the episode is not in English, this parameter can be used to provide an English translation of the title. |- style="vertical-align:top;" | style="text-align:center;" | <code>title</code> | '''Mandatory''': the title of the recording. |- style="vertical-align:top;" | style="text-align:center;" | <code>trans-title</code> | If the title of the recording is not in English, this parameter can be used to provide an English translation of the title. |- style="vertical-align:top;" | style="text-align:center;" | <code>url</code> | The [[w:Universal Resource Locator|URL]] or web address of the recording. ''Do not link to any webpage that has content in breach of [[w:copyright|copyright]]''. |- style="vertical-align:top;" | style="text-align:center;" | <code>archiveurl</code> and <code>archivedate</code><br />or<br /><code>accessdate</code> | Use <code>archiveurl</code> and <code>archivedate</code> (which must be used together) to indicate the URL or web address of a webpage on a website such as the [https://archive.org Internet Archive] or [https://perma.cc Perma.cc] at which the webpage has been archived, and the date on which the webpage was archived. Alternatively, if the webpage cannot be archived, use <code>accessdate</code> to indicate when its URL was accessed. |- style="vertical-align:top;" | style="text-align:center;" | <code>format</code> | The format of the recording, for example, "<kbd>Betamax</kbd>" or "<kbd>VHS</kbd>" (which are videotape formats). |- style="vertical-align:top;" | style="text-align:center;" | <code>medium</code> | The medium of the recording, for example, "<kbd>Blu-ray</kbd>", "<kbd>CD</kbd>", "<kbd>DVD</kbd>", "<kbd>motion picture</kbd>", "<kbd>podcast</kbd>", "<kbd>television production</kbd>" or "<kbd>videotape</kbd>". |- style="vertical-align:top;" | style="text-align:center;" | <code>season</code> and <code>number</code> | The [[w:television program#Seasons/series|season or series]] number and episode number of the episode of the program quoted. For example, if quoting from season 3, episode 1, type "<kbd>season=3</kbd> and "<kbd>number=1</kbd>". Use <code>episode</code> to specify the name of the episode. |- style="vertical-align:top;" | style="text-align:center;" | <code>network</code> | The {{w|television network}} or {{w|radio network}} on which the recording is broadcast. |- style="vertical-align:top;" | style="text-align:center;" | <code>location</code> | The location(s) where the recording was published. If more than one location is stated, separate the locations with semicolons, like this: "<kbd>London; New York, N.Y.</kbd>". |- style="vertical-align:top;" | style="text-align:center;" | <code>publisher</code> | The name of one or more publishers of the recording. If more than one publisher is stated, separate the names with semicolons. |- style="vertical-align:top;" | style="text-align:center;" | <code>date</code><br />or<br /><code>year</code> (and <code>month</code>) | '''Mandatory''': the date, or year (and month), that the recording was published. Use either <code>date</code>, or <code>year</code> (and <code>month</code>), not both. |- style="vertical-align:top;" | style="text-align:center;" | <code>year_published</code> | If you use <code>date</code> or <code>year</code> to indicate when the recording was originally released (for example, in cinemas), <code>year_published</code> can be used to indicate a subsequent publication (for example, on DVD). |- style="vertical-align:top;" | style="text-align:center;" | <code>isbn</code>, <code>oclc</code> or <code>id</code> | The [[w:International Standard Book Number|International Standard Book Number]] (ISBN) or [[w:OCLC|Online Computer Library Center]] (OCLC) number (which can be looked up at the [http://www.worldcat.org WorldCat] website) of the recording. Use <code>id</code> for an identifier other than the ones listed above. |- style="vertical-align:top;" | style="text-align:center;" | <code>time</code> | The time in hours, minutes and seconds from the start of the recording at which the quoted text occurs. For example, if the quoted text appears 1 hour, 30 minutes and 6 seconds into the recording, type "<kbd>time=1:30:06</kbd>". |- style="vertical-align:top;" | style="text-align:center;" | <code>at</code> | Use this parameter to identify where in the recording the quoted text occurs other than by specifying the time from the start of the recording. For example, the parameter can be used to indicate that the text occurs in a particular act and scene of a play. |- style="vertical-align:top;" | style="text-align:center;" | <code>text</code> or <code>passage</code> | The portion of the recording being quoted. Highlight the term defined in bold in the quoted text like this: "<kbd><nowiki>'''Thalia'''</nowiki></kbd>". |- style="vertical-align:top;" | style="text-align:center;" | <code>worklang</code> | A comma-separated list of language codes indicating the language(s) that the overall recording is written in, if different from the quoted text; for a list of the codes, see [[Wiktionary:List of languages]]. |- style="vertical-align:top;" | style="text-align:center;" | <code>termlang</code> | A language code indicating the language of the term being illustrated, if different from the quoted text; for a list of the codes, see [[Wiktionary:List of languages]]. If specified, this language is the one used when adding the page to a category of the form "Category:[''Language''] terms with quotations"; otherwise, the first listed language specified using <code>1</code> is used. Only specify this parameter if the language of the quotation is different from the term's language, e.g. a Middle English quotation used to illustrate a modern English term or an English definition of a Vietnamese term in a Vietnamese-English dictionary. |- style="vertical-align:top;" | style="text-align:center;" | <code>nocat</code> | Use <kbd>nocat=y</kbd> or <kbd>nocat=1</kbd> or <kbd>nocat=on</kbd> to suppress adding the page to a category of the form "Category:[''Language''] terms with quotations". This should not normally be done. |- style="vertical-align:top;" | style="text-align:center;" | <code>brackets</code> | Use "<kbd>brackets=on</kbd>" to surround a quotation with [[bracket]]s. 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. |- style="vertical-align:top;" | style="text-align:center;" | <code>t</code> or <code>translation</code> | If the quoted text is not in English, this parameter can be used to provide an English [[translation]] of it. |- style="vertical-align:top;" | style="text-align:center;" | <code>lit</code> | If the quoted text is not in English and the translation supplied using <code>t</code> or <code>translation</code> is idiomatic, this parameter can be used to provide a [[literal]] English [[translation]]. |- style="vertical-align:top;" | style="text-align:center;" | <code>footer</code> | This parameter can be used to specify arbitrary text to insert in a separate line at the bottom, to specify a comment, footnote, etc. |- style="vertical-align:top;" | style="text-align:center;" | <code>tr</code> or <code>transliteration</code> | If the quoted text uses a different {{w|writing system}} from the {{w|Latin alphabet}} (the usual alphabet used in English), this parameter can be used to provide a [[transliteration]] of it into the Latin alphabet. Note that many languages provide an automatic transliteration if this argument is not specified. |- style="vertical-align:top;" | style="text-align:center;" | <code>subst</code> | Phonetic substitutions to be applied to handle irregular transliterations in certain languages with a non-Latin writing system and automatic transliteration (e.g. Russian and Yiddish). If specified, should be one or more substitution expressions separated by commas, where each substitution expression is of the form <code>FROM//TO</code> (<code>FROM/TO</code> is also accepted), where <code>FROM</code> specifies the source text in the source script (e.g. Cyrillic or Hebrew) and <code>TO</code> is the corresponding replacement text, also in the source script. The intent is to respell irregularly-pronounced words phonetically prior to transliteration, so that the transliteration reflects the pronunciation rather than the spelling. The substitutions are applied in order. Note that Lua patterns can be used in <code>FROM</code> and <code>TO</code> in lieu of literal text; see [[WT:LUA]]. See also {{temp|ux}} for an example of using <code>subst</code> (the usage is identical to that template). |} ===Examples=== * '''Wikitext''': {{temp|quote-av|2=en|3=writer=<nowiki>{{w|Julian Fellowes}}</nowiki>|4=title=<nowiki>{{w|Downton Abbey}}</nowiki>|5=season=<nowiki>[[w:Downton Abbey (series 2)|2]]</nowiki>|6=number=1|7=year=2011|8=time=26:03|9=text=<nowiki>Did I tell you I've been given a '''colonelcy''' in the North Riding Volunteers?</nowiki>}} * '''Result''': ** {{quote-av|en|writer={{w|Julian Fellowes}}|title={{w|Downton Abbey}}|season=[[w:Downton Abbey (series 2)|2]]|number=1|year=2011|time=26:03|text=Did I tell you I've been given a '''colonelcy''' in the North Riding Volunteers?}} ===TemplateData=== {{TemplateData header}} <templatedata> { "description": "This template can be used in a dictionary entry to provide a quotation from an audio or video recording, including a film or a radio or television program.", "params": { "1": { "label": "Language", "description": "A comma-separated list of language codes indicating the language(s) of the quoted text.", "example": "en", "type": "string", "required": true, "suggested": true }, "title": { "label": "Title", "description": "The title of the recording, film etc.", "type": "string", "example": "Citizen Kane", "required": true }, "year": { "label": "Year of release", "description": "The year that the recording was published. Use either \"date\" or \"year\", not both.", "type": "number", "example": "1941", "suggested": true }, "date": { "label": "Date of release", "description": "Use either \"year\" or \"date\", not both.", "type": "string", "example": "September 5 1941", "suggested": true }, "author": { "label": "Writer (screenplay)", "description": "The author or writer(s) of the film, episode or program quoted. Separate multiple names with semicolons.", "type": "string", "aliases": ["writer", "writers"], "example": "Herman J. Mankiewicz; Orson Welles", "suggested": true }, "authorlink": { "label": "Wikipedia author page", "description": "English Wikipedia article about the author.", "type": "string", "example": "Herman J. Mankiewicz", "suggested": false }, "director": { "label": "Director", "description": "The director(s) of the film, episode or program quoted. Separate multiple names with semicolons.", "type": "string", "aliases": ["directors"], "example": "Orson Welles" }, "actor": { "label": "Actor (speaker)", "description": "The actor or speaker quoted.", "type": "string", "example": "Joseph Cotten" }, "role": { "label": "Role", "description": "The role played by the actor.", "type": "string", "example": "Jedediah Leland" }, "publisher": { "label": "Publisher", "description": "The name of one or more publishers of the recording. If more than one publisher is stated, separate the names with semicolons.", "type": "string", "example": "RKO Radio Pictures" }, "medium": { "label": "Recording medium", "description": "The medium of the recording.", "type": "string", "example": "\"motion picture\", \"television production\", \"podcast\", \"DVD\", \"Blu-ray\", \"CD\" or \"videotape\"" }, "time": { "label": "Timecode", "description": "The time in hours, minutes and seconds from the start of the recording at which the quoted text occurs (HH:MM:SS).", "type": "string", "example": "1:30:06" }, "at": { "label": "Context", "description": "Use this parameter to identify where in the recording the quoted text occurs other than by specifying the time from the start of the recording. For example, the parameter can be used to indicate that the text occurs in a particular act and scene of a play.", "type": "string", "example": "act V, scene iii" }, "network": { "label": "Network", "description": "The television network or radio network on which the recording is broadcast.", "type": "string", "example": "20th Century Fox Television" }, "season": { "label": "Season number (series)", "description": "The season number of the episode of the program quoted.", "type": "number", "example": "1" }, "number": { "label": "Episode number (series)", "description": "The number of the episode of the program quoted.", "type": "number", "example": "10" }, "episode": { "label": "Episode title (series)", "type": "string", "description": "The title of the episode quoted. If specifying an episode number only, use \"number\".", "example": "Homer's Night Out" }, "text": { "label": "Quoted line", "description": "The portion of the recording being quoted. Highlight the term defined in bold. As there are no specific parameters for quoting multiple lines of a conversation, it is suggested that these be written using \"/\" as a line separator.", "aliases": ["passage"], "type": "content", "required": true, "example": "Bernstein, am I a '''stuffed shirt'''? Am I a horse-faced hypocrite? Am I a New England school marm?" }, "translation": { "label": "Translation", "description": "If the quoted text is not in English, this parameter can be used to provide an English translation of it.", "aliases": ["t"], "type": "content" }, "url": { "label": "URL", "description": "The URL of the recording. Do not link to any webpage that has content in breach of copyright.", "type": "url" }, "brackets": { "label": "Brackets", "description": "Use \"on\" to surround a quotation with brackets. This indicates that the quotation contains a mere mention of a term or does not provide an actual instance of a term but provides information about related terms.", "type": "boolean", "example": "on" } }, "maps": { "citoid": { "language": "1", "title": "title", "date": "date", "url": "url", "director": "director", "distributor": "publisher", "scriptwriter": "author" } }, "paramOrder": [ "1", "title", "year", "date", "author", "authorlink", "actor", "role", "time", "at", "medium", "network", "text", "translation", "season", "number", "episode", "publisher", "url", "director", "brackets" ], "format": "inline" } </templatedata> ===See also=== * {{temp|cite-av}} – for citations in reference sections and on talk pages * <code><nowiki>{{</nowiki>[[w:Template:cite AV media|cite AV media]]<nowiki>}}</nowiki></code> – the corresponding template at the English Wikipedia {{citation templates}} <includeonly> [[Category:Citation templates]] </includeonly> 80nodkmctuz2nn5fukf77xvkenozm4n