Wîkîferheng kuwiktionary https://ku.wiktionary.org/wiki/Destp%C3%AAk MediaWiki 1.47.0-wmf.16 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 ker 0 3570 6342018 6341018 2026-08-24T13:00:21Z Wikihez 7344 /* Navdêr 1 */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342018 wikitext text/x-wiki {{bnr-h|ker|kêr|kerr|kêrr|-ker}} == {{ziman|ku}} == === Bilêvkirin === * {{q|ku|ker|cuda=(dewarek)|id=dewarek}} {{IPA|ku|/kʰɜɾ/}}, {{arF|که‌ر}} ** {{deng|ku|LL-Q36368 (kur)-Dildadil-ker.wav|dever=Amed}} *** {{beş|Navdêr 1}} {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-ker (navdêr 1).wav|dever=Bidlîs}} * {{beş|Navdêr 3}} {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-ker (Navdêr 3).wav|dever=Bidlîs}} * {{q|ku|ker|cuda=(parçe)|id=parçe}} {{IPA|ku|/kɜɾ/}}, {{arF|که‌ر}} ** {{q|ku|ker|cuda=(koma pezî)|id=koma pezî}} {{IPA|ku|/kɜɾ/}}, {{arF|که‌ر}} *** {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-ker(koma pez).wav|dever=Qers}} **** {{beş|Navdêr 4}} {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-ker (navdêr 4).wav|dever=Bidlîs}} * {{q|ku|ker|cuda=(guhgiran)|id=guhgiran}} {{IPA|ku|/kɜr/}}, {{arF|که‌ڕ}} ** {{deng|ku|LL-Q36368 (kur)-Mihemed Qers-kerr.wav|dever=Qers}} *** {{deng|ku|LL-Q36368 (kur)-Dildadil-ker (kesê ku nabihîze).wav|dever=Amed}} **** {{deng|ku|Kmr-Efrîn--kerr.oga|dever=Efrîn}} **** {{beş|Rengdêr 1}} {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-ker (rengdêr 1).wav|dever=Bidlîs}} ***** {{deng|ku|LL-Q36163 (kmr)-Key Mîrza-ker (rengdêr).wav|Deng|dever=Bidlîs}} === Navdêr 1 === [[Wêne:Donkey in Clovelly, North Devon, England.jpg|thumb|Kerek (1)]] [[Wêne:S Veahmätle13.JPG|thumb|'''Kerê''' pezî (2)]] {{navdêr|ku|z=n}} # {{maneid|ku|dewarek}} {{f|ku|guhandar}} [[cûn|Cûnek]] [[dewar]]an e ku [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir e <br>(bi taybetî bo barhilgirtinê tê bikaranîn). #* {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=ابله چه کت طوافی نابینتن بری رش</br>بیزی دکت ژ قنجان ژ رمز و ناز و غنجان</br>قدری گلان چه زانت کربش دڤیت '''کری''' رش|tr=Ebleh çi kit ṭewafê nabînitin Berê reş</br>Bêzê dikit ji qencan ji remz û naz û x̣encan</br>Qedrê gulan çi zanit kerbeş divêt '''kerê''' reş}} # {{maneid|ku|koma pezî}} [[kom|Komeke]] [[pez]]î, [[garan]]a pezî, [[ber]]ê pezî # {{maneid|ku|bêaqil}} {{f|ku|mecazî}} [[bêaqil|Bêaqil]], [[bêhiş]], [[bêmejî]], [[mejîreş]], [[aqilsivik]], [[nezan]]. # {{f|ku|mecazî|heqaret}} (ji peyva ker a heywan) ji bo kesê zir, serhişk û bêpîr û şerde #* {{J:Firat Cewerî:Girtî:1986|jêgirtin=- Hûn in, ha!. . . Ji bo çi hûn diziyê dikin '''ker''' lawê '''keran'''?}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Notên bikaranînê ==== {{agadarî}} Di gelek devokên kurmancî de '''ker''' tenê bo van cûn dewarên nêr bi kar tê. Yên mê '''[[maker]]''' in. ==== Jê ==== {{kol3|ku | keratî | kerçove | kerçovetî | kerî | kerînî | kerîtî | kertî | kurrûk | maker | nêreker }} ==== Etîmolojî ==== Ji {{mîr|ira-pro||*xárah||ker}}, ji {{mîr|iir-pro||*kʰáras||ker}}; belkî taliyê ji zimanekî [[samî]]{{çp}}, bo nimûne ji {{ji|akk|ku|tr=xeradu|w=ker, nêreker}}.{{çp}} Hevreha soranî {{g|ckb|که‌ر|tr=ker}}, zazakî {{q|zza|her}}, hewramî {{g|hac|ھەر‎|tr=her}}, farisî {{g|fa|خر|tr=xer}}, avestayî {{g|ae|𐬑𐬀𐬭𐬀|tr=xere}}, sanskrîtî {{g|sa|खर|tr=khére}}, osetî {{g|os|хӕрӕг|tr=xereg}}, peştûyî {{g|ps|خر|tr=xer}}, belûçî {{g|bal|ہر|tr=her}}. ==== Gotinên pêşiyan ==== * [[şîreta kîrê ker e]] ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|کەر‎|tr=ker}} * {{Z|sdh}}: {{W-|sdh|xer|sc=Latn}} * {{Z|lki}}: {{W-|lki|xer|sc=Latn}} * {{Z|hac}}: {{W-|hac|her|sc=Latn}} * {{Z|zza}}: {{W-|zza|her}} ==== Werger ==== {{werger-ser|dewarek}} * {{Z|ab}}: {{W-|ab|аҽада}} * {{Z|ady}}: {{W-|ady|щыды}} * {{Z|aa}}: {{W-|aa|danán|n}} * {{Z|af}}: {{W+|af|donkie}} * {{Z|akk}}: {{W-|akk|𒀲|n|tr=imēru}} * {{Z|sq}}: {{W+|sq|gomar|n}}, {{W-|sq|magar|n}} * {{Z|de}}: {{W+|de|Esel|n}}; {{W+|de|Grauchen|nt}}, {{W-|de|Grautier|nt}} * {{Z|alt}}: {{W-|alt|эштек}} * {{Z|am}}: {{W-|am|አህያ|tr=äheyya}} * {{Z|ani}}: {{W-|ani|гьаморохи}} * {{Z|arc}}: *: {{Z|syc}}: {{W-|syc|ܚܡܪܐ|g|tr=ḥəmārā}}, {{W-|syc|ܚܡܪܬܐ|m|tr=ḥəmārtā}}, {{W-|syc|ܐܬܢܐ|m|tr=ʾăṯānā}} *: {{Z|tmr}}: {{W-|arc|חֲמָרָא|n|tr=ḥămārā}} * {{Z|rup}}: {{W-|rup|cãci}}, {{W-|rup|dãngã}}, {{W-|rup|gumar}}, {{W-|rup|dãnglãrã}}, {{W-|rup|shonj}}, {{W-|rup|tãronj}}, {{W-|rup|uci}}, {{W-|rup|uricljat}}, {{W-|rup|tar}} * {{Z|as}}: {{W-|as|গাধ}} * {{Z|ast}}: {{W+|ast|burru|n}}, {{W+|ast|burra|m}}, {{W+|ast|pollín|n}} * {{Z|aot}}: {{W-|aot|gada}} * {{Z|av}}: {{W-|av|хӏама}} * {{Z|awa}}: {{W-|awa|गदहा|n}} * {{Z|az}}: {{W+|az|eşşək}}, {{W-|az|ulaq}} * {{Z|bdr}}: {{W-|bdr|keribas}} * {{Z|eu}}: {{W+|eu|asto}} * {{Z|ba}}: {{W-|ba|ишәк}} * {{Z|sne}}: {{W-|sne|kaldei}} * {{Z|be}}: {{W-|be|асёл|n}} * {{Z|bal}}: {{W-|bal|ہر|tr=har}} * {{Z|bn}}: {{W+|bn|গাধা}} * {{Z|br}}: {{W+|br|azen|n}} * {{Z|bdk}}: {{W-|bdk|лем}} * {{Z|bg}}: {{W-|bg|мага́ре|nt}}, {{W-|bg|осе́л|n}} * {{Z|my}}: {{W+|my|မြည်း}} * {{Z|bua}}: {{W-|bua|элжэгэн}} * {{Z|ce}}: {{W-|ce|вир}} * {{Z|cs}}: {{W+|cs|osel|n}} * {{Z|chr}}: {{W-|chr|ᏗᎦᎵᏅᎯᏛ}} * {{Z|chy}}: {{W-|chy|a'éevo'ha}} * {{Z|ny}}: {{W-|ny|bulu}} * {{Z|cic}}: {{W-|cic|haksibish falaa'}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|驢|tr=leoi4}}, {{W-|yue|驢仔|tr=leoi4 zai2}} *: {{Z|dng}}: {{W-|dng|лү}} *: {{Z|hak}}: {{W-|hak|驢仔|tr=lì-è}} *: {{Z|cmn}}: {{W+|cmn|驢|tr=lǘ}}, {{W-|cmn|驢子|tr=lǘzi}} *: {{Z|cdo}}: {{W-|cdo|驢|tr=lè̤}} *: {{Z|nan}}: {{W+|nan|驢|tr=lîr / lû / lî}}, {{W+|nan|驢仔|tr=lû-á / lî-á / lîr-á}} *: {{Z|wuu}}: {{W-|wuu|驢}} * {{Z|cv}}: {{W-|cv|ашак}} * {{Z|chk}}: {{W-|chk|tongki}} * {{Z|dlm}}: {{W-|dlm|samur|n}} * {{Z|da}}: {{W+|da|æsel|nt}} * {{Z|dv}}: {{W-|dv|ހިާމރު}} * {{Z|ovd}}: {{W-|ovd|åsn|m}} * {{Z|id}}: {{W+|id|keledai}} * {{Z|ar}}: {{W+|ar|حِمَار|n}} *: {{Z|arz}}: {{W-|arz|حمار|n|tr=ḥumār, ḥmār}} *: {{Z|acw}}: {{W-|acw|حُمار|n|tr=ḥumār}} *: {{Z|acm}}: {{W-|acm|زمال|n|tr=zmāl}} *: {{Z|afb}}: {{W-|afb|حمار|n|tr=ḥmār}} *: {{Z|aeb}}: {{W-|aeb|بهيم|n|tr=bhīm}} *: {{Z|ary}}: {{W-|ary|حمار|n|tr=ḥmār}}, {{W-|ary|حمارة|m|tr=ḥmāra}}, {{W-|ary|دحش|tr=daḥš}}, {{W-|ary|دحشة|m|tr=daḥša}} * {{Z|hy}}: {{W+|hy|էշ}}, {{W+|hy|ավանակ}} * {{Z|eo}}: {{W+|eo|azeno}} * {{Z|et}}: {{W+|et|eesel}} * {{Z|gez}}: {{W-|gez|አድግ}} * {{Z|ee}}: {{W-|ee|tedzi|nt}} * {{Z|fa}}: {{W+|fa|خر|tr=xar}}, {{W+|fa|الاغ|tr=olâğ}} * {{Z|fo}}: {{W-|fo|asni}} * {{Z|fi}}: {{W+|fi|aasi}} * {{Z|fro}}: {{W-|fro|asne|n}} * {{Z|fr}}: {{W+|fr|âne|n}} * {{Z|fur}}: {{W-|fur|mus}} * {{Z|fy}}: {{W-|fy|ezel}} * {{Z|gd}}: {{W-|gd|asal|m}} * {{Z|gag}}: {{W-|gag|eşek}}, {{W-|gag|yeşek}} * {{Z|gl}}: {{W+|gl|asno}}, {{W+|gl|burro}} * {{Z|got}}: {{W-|got|𐌰𐍃𐌹𐌻𐌿𐍃}} * {{Z|gu}}: {{W-|gu|ગધેડો}} * {{Z|ka}}: {{W+|ka|ვირი}}, {{W+|ka|ჯორი}} * {{Z|ha}}: {{W+|ha|jaki}} * {{Z|hi}}: {{W+|hi|गधा|n}} * {{Z|nl}}: {{W+|nl|ezel|n}} * {{Z|he}}: {{W-|he|חֲמוֹר|n|tr=khamór}}, {{W-|he|אָתוֹן|m|tr=atón}} * {{Z|io}}: {{W+|io|asno}} * {{Z|ang}}: {{W-|ang|esol|n}} * {{Z|en}}: {{W+|en|donkey}} * {{Z|inh}}: {{W-|inh|вир}} * {{Z|ia}}: {{W-|ia|asino}} * {{Z|ga}}: {{W+|ga|asal|n}} * {{Z|ist}}: {{W-|ist|samèri|n-p}} * {{Z|it}}: {{W+|it|asino|n}}, {{W+|it|somaro|n}}, {{W-|it|buricco|n}}, {{W+|it|ciuco}} * {{Z|is}}: {{W+|is|asni}} * {{Z|ja}}: {{W+|ja|驢馬|tr=ろば, roba}}, {{W+|ja|ロバ|tr=roba}} * {{Z|kab}}: {{W-|kab|aɣyul|n}} * {{Z|kl}}: {{W-|kl|siutitooq}} * {{Z|xal}}: {{W-|xal|элҗгн}} * {{Z|ktb}}: {{W-|ktb|harreta}} * {{Z|kn}}: {{W+|kn|ಕತ್ತೆ}} * {{Z|krc}}: {{W-|krc|эшек|tr=eşek}} * {{Z|csb}}: {{W-|csb|osoł|n}}, {{W-|csb|òseł}} * {{Z|ca}}: {{W+|ca|ase|n}}, {{W+|ca|somera|m}}, {{W+|ca|burro|n}}, {{W+|ca|burra|m}}, {{W+|ca|ruc|n}}, {{W+|ca|ruca|m}} * {{Z|qu}}: {{W-|qu|wuru}}, {{W-|qu|asnu}} * {{Z|ks}}: {{W-|ks|خَر|n}} * {{Z|ky}}: {{W+|ky|эшек}} * Ladin: *: {{Z|lld}}: {{W-|lld|musciat|n}} *: {{Z|lld}}: {{W-|lld|müsc|n}} *: {{Z|lld}}: {{W-|lld|èsen|n}},{{W-|lld|musciat|n}} * {{Z|si}}: {{W+|si|බූරුවා}} * {{Z|ko}}: {{W+|ko|당나귀}}, {{W+|ko|나귀}} * {{Z|rop}}: {{W-|rop|ginggong ginggong}} * {{Z|la}}: {{W-|la|asellus}}, {{W-|la|asinus|n}} * {{Z|lv}}: {{W-|lv|ēzelis|n}} * {{Z|lo}}: {{W-|lo|ລາ}}, {{W-|lo|ມ້າລໍ}} * {{Z|lzz}}: {{W-|lzz|ეშეღი}} * {{Z|lez}}: {{W-|lez|лам}} * {{Z|lij}}: {{W-|lij|ase}} * {{Z|li}}: {{W+|li|aezel}} * {{Z|lt}}: {{W+|lt|asilas|n}} * {{Z|khb}}: {{W-|khb|ᩃᩣ}} * {{Z|lb}}: {{W-|lb|Iesel|n}} * {{Z|luo}}: {{W-|luo|punda}} * {{Z|mk}}: {{W-|mk|магаре|nt}} * Malay: *: {{Z|ms}}: {{W-|ms|کلداي}}, {{W-|ms|حمار}} *: Rûmî: {{W+|ms|keldai}}, {{W-|ms|himar}} * {{Z|ml}}: {{W+|ml|കഴുത}} * {{Z|mt}}: {{W-|mt|ħmar|n}} * {{Z|mnc}}: {{W-|mnc|ᡝᡳᡥᡝᠨ}} * {{Z|gv}}: {{W-|gv|assyl|n}} * {{Z|mi}}: {{W-|mi|kāihe}} * {{Z|mr}}: {{W+|mr|गाढव|n}} * {{Z|mhr}}: {{W-|mhr|осёл}} * {{Z|hu}}: {{W+|hu|szamár}} * {{Z|xmf}}: {{W-|xmf|გირინი}} * {{Z|mel}}: {{W-|mel|keledai}} * {{Z|egy}}: {{W-egy|ꜥꜣ|n|h=aA:D52-E7}} * {{Z|mdf}}: {{W-|mdf|ишме}} * {{Z|mn}}: {{W+|mn|илжиг}} * {{Z|nap}}: {{W-|nap|ciuccio}} * {{Z|nv}}: {{W-|nv|télii|sc=Latn}} * {{Z|nds}}: {{W+|nds|Esel|n}} * {{Z|nrf}}: {{W-|nrf|âne|n}} * {{Z|no}}: {{W+|no|esel|nt}} * {{Z|oc}}: {{W+|oc|ase}}, {{W+|oc|asne|n}} * {{Z|or}}: {{W+|or|ଗଧ}} * {{Z|om}}: {{W+|om|harree}} * {{Z|os}}: {{W-|os|хӕрӕг}} * {{Z|ota}}: {{W-|ota|اشك|tr=eşek}} * {{Z|ug}}: {{W-|ug|ئېشەك}} * {{Z|uz}}: {{W+|uz|eshak}} * {{Z|pi}}: {{W-|pi|gadrabha|n}} * {{Z|ps}}: {{W+|ps|خر|n|tr=xar}} * {{Z|pdt}}: {{W-|pdt|Äsel|n}} * {{Z|pox}}: {{W-|pox|asål|n}} * {{Z|pl}}: {{W+|pl|osioł|n}}, {{W+|pl|oślica|m}} * {{Z|pt}}: {{W+|pt|asno|n}}, {{W+|pt|jerico|n}}, {{W+|pt|jegue|n}}, {{W+|pt|jumento|n}}, {{W+|pt|burro|n}} * {{Z|pa}}: {{W-|pa|ਗਧਾ}} * {{Z|kk}}: {{W-|kk|есек}} * {{Z|cop}}: {{W-|cop|ⲉⲱ}} * {{Z|rm}}: {{W-|rm|asen}} * {{Z|rom}}: {{W-|rom|magari|n}}, {{W-|rom|magarka|m}} * {{Z|ro}}: {{W+|ro|măgar|n}}, {{W+|ro|asin|n}} * {{Z|ru}}: {{W+|ru|осёл|n}}, {{W-|ru|осли́ца|m}}, {{W-|ru|иша́к|n}} * {{Z|ssy}}: {{W-|ssy|zanan}} * {{Z|se}}: {{W-|se|ásen}} * {{Z|sm}}: {{W-|sm|asini}} * {{Z|sa}}: {{W+|sa|गर्दभ|n}} * {{Z|sc}}: {{W-|sc|burriccu}}, {{W-|sc|molenti}}, {{W-|sc|molingianu}}, {{W-|sc|àinu}} *: {{Z|sc}}: {{W-|sc|àinu}}, {{W-|sc|bestiolu}}, {{W-|sc|molènti}}, {{W-|sc|bistrassu}} *: {{Z|sc}}: {{W-|sc|poleddu}}, {{W-|sc|polléddu}}, {{W-|sc|pulléddu}}, {{W-|sc|àinu}}, {{W-|sc|àinu}} * {{Z|scn}}: {{W+|scn|sceccu|n}} * {{Z|sid}}: {{W-|sid|harre}} * {{Z|sd}}: {{W-|sd|گڏھ|tr=gaḋahu}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|ма̀гарац|n}}, {{W-|sh|то̀вар|n}} *: Latînî: {{W+|sh|màgarac|n}}, {{W+|sh|tòvar|n}} * {{Z|sco}}: {{W-|sco|cuddie}} * {{Z|cu}}: *: Kirîlî: {{W-|cu|осьлъ|n}} * {{Z|orv}}: {{W-|orv|осьлъ|n}} * {{Z|sk}}: {{W-|sk|somár|n}}, {{W+|sk|osol|n}} * {{Z|sl}}: {{W+|sl|osel|n}}, {{W-|sl|oslica|m}} * {{Z|so}}: {{W+|so|dameer|n}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|ezel|n}}, {{W-|dsb|wósoł|n}} *: {{Z|hsb}}: {{W-|hsb|wosoł|n}} * {{Z|st}}: {{W+|st|tonki}} * {{Z|es}}: {{W+|es|asno|n}}, {{W+|es|burro|n}}, {{W+|es|jumento}} * {{Z|sux}}: {{W-|sux|𒀲|tr=ANŠE}} * {{Z|sw}}: {{W+|sw|punda}} * {{Z|sv}}: {{W+|sv|åsna}} * {{Z|tg}}: {{W+|tg|хар}} * {{Z|tl}}: {{W+|tl|asno}}, {{W-|tl|buriko}} * {{Z|ta}}: {{W+|ta|கழுதை}} * {{Z|twf}}: {{W-|twf|mùldu’úna}} * {{Z|rif}}: {{W-|rif|aɣyur|n}} * {{Z|th}}: {{W+|th|ลา}} * {{Z|te}}: {{W+|te|గాడిద}} * {{Z|crh}}: {{W-|crh|eşek}} * {{Z|tt}}: {{W+|tt|ишәк}} * {{Z|ti}}: {{W-|ti|ኣድጊ}} * {{Z|tr}}: {{W+|tr|eşek}}, {{W+|tr|merkep}}, {{W+|tr|sıpa}} * {{Z|tk}}: {{W-|tk|eşek}} * {{Z|bo}}: {{W-|bo|བོང་བུ}} * {{Z|tpi}}: {{W-|tpi|donki}}, {{W-|tpi|esel}} * {{Z|txb}}: {{W-|txb|kercapo}} * {{Z|tum}}: {{W-|tum|bulu}} * {{Z|tyv}}: {{W-|tyv|элчиген}} * {{Z|udi}}: {{W-|udi|елем}} * {{Z|udm}}: {{W-|udm|ишак}}, {{W-|udm|осёл}} * {{Z|ur}}: {{W-|ur|گدھا|n|tr=gadhā}} * {{Z|uk}}: {{W-|uk|осе́л|n}}, {{W-|uk|віслю́к|n}}, {{W-|uk|іша́к|n}} * {{Z|vec}}: {{W+|vec|muso|n}}, {{W+|vec|àxeno|n}} * {{Z|vi}}: {{W+|vi|lừa}} * {{Z|vo}}: {{W+|vo|cuk}} * {{Z|wa}}: {{W+|wa|ågne|n|m}}, {{W+|wa|bådet|n}}, {{W+|wa|både|m}}, {{W+|wa|bourike|m}}, {{W+|wa|ågntea|n}} * {{Z|wbl}}: {{W-|wbl|xur}} * {{Z|cy}}: {{W-|cy|asyn|n}} * {{Z|wo}}: {{W-|wo|mbaam-sëf|cuda=mbaam-sëf mi}}, {{W-|wo|mbaam-sëf}} * {{Z|km}}: {{W-|km|សត្វលា}}, {{W+|km|លា}} * {{Z|xh}}: {{W-|xh|imbongolo}} * {{Z|sah}}: {{W-|sah|осёл}} * {{Z|yi}}: {{W-|yi|אייזל|n}}, {{W-|yi|חמור|n|tr=khamer}} * {{Z|yo}}: {{W-|yo|kẹ́tẹ́kẹ́tẹ́}} * {{Z|el}}: {{W+|el|γάιδαρος|n}}, {{W+|el|γαϊδούρα|m}}, {{W+|el|γαϊδούρι|nt}}, {{W+|el|όνος|n|m}} *: Kevn: {{W-|grc|ὄνος|n|m}} * {{Z|zu}}: {{W-|zu|imbongolo}}, {{W-|zu|udonki}} * {{Z|zun}}: {{W-|zun|moshok'o}} {{werger-bin}} :{{werger çavkanî|en|donkey|beş=Ev qismê Wergerê|oldid=75539477}} === Navdêr 2 === [[Wêne:Cut-apple-slices_21575-480x360_(4900266300).jpg|thumb|Çend '''kerên''' sêvan.]] {{navdêr|ku|z=n}} {{k-ya nerm}} # {{maneid|ku|parçe}} [[felqe]], [[parçe]], [[qet]], [[par]], [[pirt]]<br> (bi taybetî ya ku bi [[kêr]]ê hatiye [[birîn]]). #* ''Hisreta me '''kerî nanê reş''', [[kas]]ek dewê tirş, [[yan]]ê hin [[toraq]] bû; lê dîsa em ji hale xwe razî bûn.''<ref>1931, ''Hakob Qezeryan-Lazo'', ''Serhatiya Casim'', guhastin:Haciyê Cindî-Emînê Evdal </ref> #: {{mk|ku|'''Kerek''' ji sêva xwe da min.}} #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Cewherek lê kir nezer ew bû du '''ker'''<br />Paşê Wî çêkir ji nûra [[namuwer]]}} ==== Bi alfabeyên din ==== * {{ku-ar|که‌ر}} ==== Formên alternatîv ==== * {{g|ku|kert}} ==== Jê ==== {{kol3|ku | kerker | ker kirin | kerkirin | kerkirî | kêr | ker bûn<q:lêker> | ker kirin<q:lêker> | kerbûn<q:navdêr> | kerkirin<q:navdêr> | kerbûyî<q:rengdêr> | kerkirî<q:rengdêr> }} ==== Etîmolojî ==== Hevreha soranî {{g|ckb|که‌رت|tr=[[kert]]}}, hewramî û zazakî {{q|zza|kerd}}, [[kurdiya başûrî]] {{q|sdh|qeł|sc=Latn}}, belûçî {{q|bal||tr=karç}}, farisî {{g|fa|کارد|tr=kard}}, pehlewî ''kart'', avestayî ''kerite-'', sanskrîtî ''krti-'', ermeniya kevn {{g|xcl|քերեմ|tr=k'êrêm|w=[[jê birin]], [[xîç]] kirin}}, yûnaniya kevn {{g|grc|κείρω|tr=kêiro|w=[[birîn]], [[cew]] kirin}}, latînî {{q|la|curtus|w=[[kurt]]}}, îngilîzî {{q|en|share|w=[[par]], [[beş]]}}, {{q|en|shear|w=[[birîn]], [[cew]] kirin}}, {{q|en|short|w=[[kurt]]}}, hemû ji {{ji|ine-pro|ku|*(s)ker-|w=[[birîn]], [[jê kirin]]}}. :<font style="font-size:10px">'''Çavkanî:''' [[Şablon:Cheung|Cheung p.243]], [[Şablon:Horn|Horn p.185]], [[Şablon:MacKenzie|MacKenzie P.129]], [[Şablon:Watkins|Watkins p.100]] </font> | <font style="font-size:10px">'''Pokorny: '''941 - 942</font> :<font style="font-size:10px">'''[[Hevreh]]''': [[kêr]] [[kurt]], [[çerm]]</font> ==== Bi zaravayên din ==== * {{Z|ckb}}: [[kert]] * {{Z|sdh}}: [[qeł]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Brotscheibe|m}}, {{W+|de|Scheibe|m}}, {{W+|de|Anteil|n}}, {{W+|de|Teil|n}}, {{W+|de|Stück|nt}} * {{Z|be}}: {{W-|be|лу́ста|m}}, {{W-|be|скрыль|n}}, {{W-|be|скі́ба|m}} * {{Z|bg}}: {{W+|bg|филия|nt}}, {{W+|bg|резен|n}} * {{Z|cs}}: {{W+|cs|krajíc|n}}, {{W+|cs|plátek|n}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|片|tr=pin3}} *: {{Z|cmn}}: {{W+|cmn|片|tr=piàn}} * {{Z|da}}: {{W+|da|skive|g}} * {{Z|ar}}: {{W-|ar|شريحة|m}} * {{Z|eo}}: {{W-|eo|tranĉaĵo}} * {{Z|et}}: {{W-|et|viilukas}}, {{W-|et|viil}} * {{Z|fa}}: {{W+|fa|قاچ|tr=qâč}}, {{W+|fa|تیکه|tr=tikke}}, {{W+|fa|لزگه|tr=lazge}}, {{W+|fa|کرچ|tr=karč}} * Polish: [[plaster]], [[plasterek]] ; [[kromka]], [[pajda]] ; [[kawałek]] ; * {{Z|fi}}: {{W+|fi|viipale}} * {{Z|fr}}: {{W+|fr|tranche|m}}, {{W+|fr|tronçon|n}} * {{Z|gd}}: {{W-|gd|sliseag|m}} * {{Z|gl}}: {{W+|gl|rebanda|m}}, {{W+|gl|toro|n}}, {{W-|gl|tallada|m}}, {{W+|gl|posta|m}} * {{Z|nl}}: {{W+|nl|plak|nt}}, {{W+|nl|schijf|nt}} * {{Z|he}}: {{W-|he|פְּרוּסָה|m|tr=prusá}}, {{W-|he|נֵתַח|n|tr=nétaḥ}}, {{W-|he|פֶּלַח|n|tr=pélaḥ}} * {{Z|io}}: {{W+|io|loncho}} * {{Z|en}}: {{W+|en|slice}} * {{Z|izh}}: {{W-|izh|pytky}} * {{Z|it}}: {{W+|it|fetta|m}}, {{W+|it|trancio|n}} * {{Z|is}}: {{W-|is|sneið|m}} * {{Z|ja}}: {{W-|ja|切れ|tr=きれ, kire|sc=Jpan}}, {{W+|ja|一片|tr=いっぺん, ippen|sc=Jpan}}, {{W-|ja|スライス|tr=suraisu|sc=Jpan}} * {{Z|ca}}: {{W+|ca|llesca|m}} * {{Z|ko}}: {{W+|ko|부분}}, {{W+|ko|몫}}, {{W-|ko|슬라이스}} * {{Z|lv}}: {{W+|lv|rika|m}} * {{Z|lo}}: {{W-|lo|ປ່ຽງ}}, {{W-|lo|ແຜ່ນບາງໆ}} * {{Z|lt}}: {{W-|lt|riekė̃|m}} * {{Z|mi}}: {{W-|mi|kōripi}}, {{W-|mi|topenga}} * {{Z|hu}}: {{W+|hu|szelet}}, {{W+|hu|karéj}} * {{Z|egy}}: {{W-egy|fdq|h=f:d-q-Z9:D40}} * {{Z|nrf}}: {{W-|nrf|tranche|m}} * {{Z|pt}}: {{W+|pt|fatia}} * {{Z|ro}}: {{W+|ro|felie|m}} * {{Z|ru}}: {{W-|ru|ломо́ть|n}}, {{W-|ru|ло́мтик|n}}, {{W-|ru|кусо́к|n}}, {{W-|ru|кусо́чек|n}}, {{W+|ru|слайс|n}} * {{Z|scn}}: {{W-|scn|feḍḍa|m}}, {{W+|scn|pezzu|n}} * {{Z|sh}}: {{W+|sh|kriška|m}} * {{Z|es}}: {{W+|es|rebanada|m}} * {{Z|sv}}: {{W+|sv|skiva|g}} * {{Z|th}}: {{W+|th|ชิ้น}} * {{Z|tr}}: {{W+|tr|dilim}} * {{Z|uk}}: {{W-|uk|ски́ба|m}}, {{W-|uk|ски́бка|m}}, {{W-|uk|шмато́к|n}}, {{W-|uk|кусо́к|n}} * {{Z|vi}}: {{W-|vi|lát mỏng}}, {{W-|vi|miếng mỏng}} * {{Z|cy}}: {{W-|cy|tafelll|m}} * {{Z|el}}: {{W+|el|φέτα|m}} *: Kevn: {{W-|grc|τέμαχος|nt}} {{werger-bin}} :{{werger çavkanî|en|slice|beş=Ev qismê Wergerê|oldid=75505183}} === Navdêr 3 === {{navdêr|ku|z=mn}} {{k-ya nerm}} # Kesa/ê tiştekî dike yan tiştek kiriye. #: {{mk|ku|Divê '''kerên''' vê xirabiyê bên sizadan.}} ==== Notên bikaranînê ==== {{agadarî}} Peyva '''ker''' bi vê maneyê kêm serbixwe peyda dibe lê pirtir wek paşgirekê di gel hin peyvan tê bikaranîn: ''[[çêker]], [[şerker]], [[sazker]] ==== Etîmolojî ==== Ji [[rehê dema niha]] yê kevn yê lêkera [[kirin]] ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|doer}}, {{W+|en|actor}}, {{W+|en|agent}} {{werger-bin}} === Navdêr 4 === {{navdêr|ku|z=n}} # {{mj|kom, grûp}} {{bnr|kerî}} === Rengdêr 1 === {{rengdêr|ku}} {{k-ya nerm}}, {{r-ya req}} # {{senseid|ku|guhgiran}}Kesa/ê [[qet]] yan [[baş]] [[deng]]an [[bihîstin|nabihîze]]. #: {{hevmane|ku|guhgiran|nebihîz}} #: {{mk|ku|'''Ker''' û [[lal]]|kesa/ê ne [[karîn|dikare]] [[axiftin|biaxive]] û ne jî [[bîstin|bibîze]]|birêz=1}} ==== Bi alfabeyên din ==== * {{ku-ar|که‌ڕ}} ==== Formên alternatîv ==== * {{g|ku|kerr}} ==== Jê ==== {{kol3|ku | ker bûn<q:lêker> | ker kirin<q:lêker> | xwe lê ker kirin | kerbûn<q:navdêr> | kerkirin<q:navdêr> | kerbûyî<q:rengdêr> | kerkirî<q:rengdêr> | kerî | kerînî | kerîtî | kerker | kertî }} ==== Etîmolojî ==== Hevreha soranî {{g|ckb|که‌ڕ|tr=kerr}}, [[kurdiya başûrî]] [[keř]], zazakî ''kerr'', hewramî ''kerr'', belûçî {{g|ckb|کر|tr=kerr}}, {{hv|fa|کر|tr=kerr}}, {{hv|pal||k-rr|sc=Latn}}, soxdî ''k-rn-'', {{hv|ae||kerne-|sc=Latn}}, peştûyî {{g|ps|کوڼ|tr=kuṇ}}, {{hv|sa|कर्ण}} (kárṇa-: [[guh]]), slavoniya kevn [[кърнъ]] (kŭrnŭ), latviyayî [[kurls]], {{hv|lt|kurčias}}, hemû ji {{ji|ine-pro|ku|*kʷorno-|w=[[guh]]}}. Maneya bingehîn "guh" bû lê di zimanên îranî û yên [[baltî]] de maneya "[[guhgiran]]" wergirtiye. Di zimanên hindî de bi maneya "guh" maye: hindî [[कान]] (kan), urdûyî {{g|ur|کان|tr=kan}}, bengalî [[কর্ণ]] (korno) û [[কান]] (kan)... ==== Bide ber ==== {{kol2|ku| | {{g|ku|kor}} | {{g|ku|lal}} }} ==== Werger ==== {{werger-ser|guhgiran}} * {{Z|ab}}: {{W-|ab|адагәа}} * {{Z|ady}}: {{W-|ady|дэгу}} * {{Z|af}}: {{W-|af|dowe}} * {{Z|xag}}: {{W-|xag|𐕆𐔼𐕒𐔽𐔰}} * {{Z|akl}}: {{W-|akl|bungoe}} * {{Z|sq}}: {{W-|sq|i shurdhër}} * {{Z|de}}: {{W+|de|taub}}, {{W+|de|gehörlos}} * {{Z|an}}: {{W-|an|xordo}} * {{Z|rup}}: {{W-|rup|surdu}} * {{Z|as}}: {{W-|as|কলা}}, {{W-|as|অন্ধ}} * {{Z|ast}}: {{W-|ast|sordu}}, {{W-|ast|xordu}} * {{Z|av}}: {{W-|av|гӏинкъаб}} * {{Z|az}}: {{W+|az|kar}} * {{Z|ban}}: {{W-|ban|bongol}} * {{Z|eu}}: {{W+|eu|gor}} * {{Z|ba}}: {{W-|ba|һаңғырау}} * {{Z|sne}}: {{W-|sne|bongam}} * {{Z|be}}: {{W-|be|глухі́}} * {{Z|bcl}}: {{W-|bcl|bungog}} * {{Z|br}}: {{W+|br|bouzar}} * {{Z|bg}}: {{W+|bg|глух}} * {{Z|my}}: {{W+|my|နားပင်း}} * {{Z|ccc}}: {{W-|ccc|majchayi}} * {{Z|ce}}: {{W-|ce|къора}} * {{Z|cs}}: {{W+|cs|hluchý|n}} * {{Z|chr}}: {{W-|chr|ᏧᎵᎡᎾ}} * {{Z|zh}}: *: {{Z|yue}}: {{W-|yue|耳聾|tr=ji5 lung4}}, {{W-|yue|聾|tr=lung4}} *: {{Z|cmn}}: {{W+|cmn|聾|tr=lóng}}, {{W+|cmn|耳聾|tr=ěrlóng}} *: {{Z|nan}}: {{W-|nan|耳聾|tr=hīⁿ-lâng}} * {{Z|dlm}}: {{W-|dlm|suard}} * {{Z|da}}: {{W+|da|døv}} * {{Z|id}}: {{W+|id|tuli}}, {{W-|id|tuna rungu}} * {{Z|ar}}: {{W-|ar|أَصَمّ}} *: {{Z|arz}}: {{W-|arz|أصم|n|tr=ʔaṣamm}}, {{W-|arz|أطرش|n|tr=ʔaṭraš}} * {{Z|hy}}: {{W+|hy|խուլ}} * {{Z|eo}}: {{W+|eo|surda}} * {{Z|et}}: {{W-|et|kurt}} * {{Z|fa}}: {{W+|fa|کر|tr=kar}}, {{W+|fa|ناشنوا|tr=nâšenavâ}} * {{Z|fo}}: {{W-|fo|deyvur}} * {{Z|fi}}: {{W+|fi|kuuro}}, {{W-|fi|kuulovammainen}} * {{Z|fr}}: {{W+|fr|sourd}} * {{Z|fur}}: {{W-|fur|sort}}, {{W-|fur|sord}} * {{Z|frr}}: {{W-|frr|duuf}} * {{Z|fy}}: {{W-|fy|dôf}} * {{Z|gd}}: {{W-|gd|bodhar}} * {{Z|gl}}: {{W-|gl|xordo}} * {{Z|got}}: {{W-|got|𐌱𐌰𐌿𐌸𐍃}} * {{Z|ka}}: {{W+|ka|ყრუ}}, {{W-|ka|სმენადაკარგული}} * {{Z|ht}}: {{W-|ht|soud}} * {{Z|haw}}: {{W-|haw|kuli}} * {{Z|mba}}: {{W-|mba|bungol}} * {{Z|hi}}: {{W+|hi|बहरा}} * {{Z|nl}}: {{W+|nl|doof}}, {{W+|nl|dove}} * {{Z|hrx}}: {{W-|hrx|daab}} * {{Z|iba}}: {{W-|iba|achak}} * {{Z|he}}: {{W-|he|חֵירֵשׁ|tr=kheresh}} * {{Z|ang}}: {{W-|ang|dēaf}} * {{Z|en}}: {{W+|en|deaf}} * {{Z|izh}}: {{W-|izh|gluuhkoi}} * {{Z|ga}}: {{W-|ga|bodhar}} *: {{Z|sga}}: {{W-|sga|bodar}} * {{Z|ist}}: {{W-|ist|surdo}} * {{Z|it}}: {{W+|it|sordo}} * {{Z|is}}: {{W+|is|daufur}} * {{Z|ja}}: {{W-|ja|[[耳]]の[[聞こえる|聞こえない]]|tr=みみのきこえない, mimi no kikoenai}}, {{W-|ja|耳が不自由|tr=mimi ga fujiyuu}} * {{Z|kaw}}: {{W-|kaw|buḍĕg}} * {{Z|jv}}: {{W+|jv|budheg}}, {{W+|jv|jampeng}} * {{Z|kbd}}: {{W-|kbd|дэгу}} * {{Z|ca}}: {{W+|ca|sord}} * {{Z|kjj}}: {{W-|kjj|баьш}} * {{Z|si}}: {{W+|si|බිහිරි}} * {{Z|ko}}: {{W-|ko|[[귀머거리]]-의}} * {{Z|kw}}: {{W-|kw|bodhar}} * {{Z|co}}: {{W+|co|sordu}} * {{Z|lld}}: {{W-|lld|sëurt}} * {{Z|lad}}: {{W-|lad|sodro}} * {{Z|ltg}}: {{W-|ltg|kūrslys|n}} * {{Z|la}}: {{W+|la|surdus|n}} * {{Z|lv}}: {{W-|lv|kurls|n}}, {{W-|lv|nedzirdīgs}} * {{Z|lo}}: {{W-|lo|ຫູໜວກ}} * {{Z|lez}}: {{W-|lez|биши}} * {{Z|lt}}: {{W-|lt|kurčias}} * {{Z|lb}}: {{W+|lb|daf}} * {{Z|mk}}: {{W-|mk|глув}} * {{Z|pse}}: {{W-|pse|pekak}} * {{Z|ms}}: {{W+|ms|pekak}}, {{W-|ms|tuli}}, {{W-|ms|congek}}, {{W-|ms|tunakerna}} * {{Z|mt}}: {{W-|mt|trux}} * {{Z|mnc}}: {{W-|mnc|ᡩᡠᡨᡠ}} * {{Z|msk}}: {{W-|msk|bungul}} * {{Z|mi}}: {{W+|mi|turi}}, {{W-|mi|pūwharawhara}} * {{Z|mrw}}: {{W-|mrw|bengel}}, {{W-|mrw|biso}} * {{Z|mr}}: {{W-|mr|बधीर}}, {{W+|mr|बहिरा}} * {{Z|hu}}: {{W+|hu|süket}}, {{W+|hu|siket}} * {{Z|xmf}}: {{W-|xmf|ჸუნგა}}, {{W-|xmf|ჸურუ}}, {{W-|xmf|ჸუჯა}}, {{W-|xmf|დაგუა|cuda=დაგუ̂ა}} * {{Z|mel}}: {{W-|mel|pakeak}}, {{W-|mel|tulek}} * {{Z|mui}}: {{W-|mui|pekak}} * {{Z|nv}}: {{W-|nv|ajéékałgo ąąh dahazʼą́}}, {{W-|nv|jééhkał}} * {{Z|nds}}: {{W-|nds|dow}} * {{Z|nay}}: {{W-|nay|plombatji}} * {{Z|no}}: *: {{Z|no}}: {{W+|no|døv}} *: {{Z|nn}}: {{W+|nn|døv}}, {{W-|nn|dauv}} * {{Z|oc}}: {{W+|oc|sord}} * {{Z|or}}: {{W+|or|ବଧିର}} * {{Z|om}}: {{W-|om|duudaa}} * {{Z|ota}}: {{W-|ota|صاغر|tr=sağır}} * {{Z|ps}}: {{W+|ps|کوڼ|tr=kuṇ}} * {{Z|pdt}}: {{W-|pdt|doof}} * {{Z|pl}}: {{W+|pl|głuchy|n}} * {{Z|pt}}: {{W+|pt|surdo}} * {{Z|kk}}: {{W-|kk|саңырау}} * {{Z|ro}}: {{W+|ro|surd}} * {{Z|ru}}: {{W-|ru|глухо́й}} * {{Z|se}}: {{W-|se|bealjeheapmi}} * {{Z|sms}}: {{W-|sms|kluuǥǥai}} * {{Z|sa}}: {{W+|sa|बधिर}}, {{W+|sa|कल्ल}} * {{Z|sc}}: {{W-|sc|suldu}}, {{W-|sc|surdu}} * {{Z|ceb}}: {{W-|ceb|bungol}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|глув}}, {{W-|sh|глух}} *: Latînî: {{W+|sh|gluv}}, {{W+|sh|gluh}} * {{Z|sco}}: {{W-|sco|deif}} * {{Z|sk}}: {{W-|sk|hluchý|n}} * {{Z|sl}}: {{W+|sl|gluh}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|głuchy}} * {{Z|es}}: {{W+|es|sordo}} * {{Z|su}}: {{W-|su|torék}} * {{Z|sva}}: {{W-|sva|ყუ̂რიუ̂}}, {{W-|sva|ყუგ}} * {{Z|sv}}: {{W+|sv|döv}} * {{Z|tg}}: {{W+|tg|кар}} * {{Z|tl}}: {{W-|tl|bingi}} * {{Z|th}}: {{W-|th|หูหนวก}} * {{Z|te}}: {{W+|te|చెవిటి}} * {{Z|crh}}: {{W-|crh|sağır}} * {{Z|tr}}: {{W+|tr|sağır}} * {{Z|bo}}: {{W-|bo|འོན་པ}} * {{Z|tli}}: {{W-|tli|lkhool.áxhji}} * {{Z|ur}}: {{W-|ur|بہرا|tr=bahrā}} * {{Z|uby}}: {{W-|uby|дагәы}} * {{Z|uk}}: {{W-|uk|глухи́й}} * {{Z|vec}}: {{W-|vec|sórdo}} * {{Z|vi}}: {{W+|vi|điếc}} * {{Z|vo}}: {{W-|vo|surdik}} * {{Z|cy}}: {{W+|cy|byddar}} * {{Z|km}}: {{W+|km|ថ្លង់|tr=tlɑŋ}} * {{Z|yai}}: {{W-|yai|кар}} * {{Z|yi}}: {{W-|yi|טויב}}, {{W-|yi|טויבלעך}}, {{W-|yi|חושימדיק|tr=khushemdik}} * {{Z|esu}}: {{W-|esu|niitesciigatelria}} * {{Z|el}}: {{W+|el|κωφός|n}}, {{W+|el|κουφός|n}} *: Kevn: {{W-|grc|κωφός}} * {{Z|bfi}}: {{W-|bfi|H@Ear}} * {{Z|ase}}: {{W-|ase|1@Jaw 1@Chin}} {{werger-bin}} :{{werger çavkanî|en|deaf|beş=Ev qismê Wergerê|oldid=75710619}} === Rengdêr 2 === {{rengdêr|ku}} # {{mj|bêdeng}} {{bnr|kirr}} === Çavkanî === {{çavkanî}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # {{f|ckb|guhandar}} {{ckb-Arab|کەر}} == {{ziman|sl}} == === Girêdek === {{girêdek|sl}} # [[çimkî#ku|çimkî]], [[çunkî#ku|çunkî]], [[ji ber ku#ku|ji ber ku]] 8mnz38hdpmsu89tz0yp1ayzcomp36m8 tar 0 4064 6341909 6337914 2026-08-24T12:55:29Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341909 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr 1 === {{navdêr|ku|z=m}} # [[milbend]]a [[darîn]] ya li dor [[bêjing]]ê yan [[moxel]]ê #* {{bênimûne|ku}} ==== Jê ==== {{kol3|ku|cure=Jê |tar bûn<q:lêker> |tar kirin<q:lêker> |tarbûn<q:navdêr> |tarkirin<q:navdêr> |tarbûyî<q:rengdêr> |tarkirî<q:rengdêr> }} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[dar]] an jî [[cih]]ên ku [[mirîşk]] li [[ser]] dihêwirin #* {{bênimûne|ku}} # darê li fêza [[pûnik]]a mirîşkan, [[lûs]] #* {{bênimûne|ku}} ==== Ji wêjeya klasîk ==== * {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=Wer ji qewseynan bi mîzan bêne der cotek xedeng</br>Dê ceger bit pare pare sîne '''tar''' û mar-i bit}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} Ji erebî ÎTAR ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Rübe}} {{mê}} * {{Z|fa}}: {{W+|fa|تار|guman=erê}}, {{W+|fa|چرخان|guman=erê}}, {{W+|fa|خوشی|guman=erê}}, {{W-|fa|سینه ریز|guman=erê}}, {{W+|fa|فونداسیون|guman=erê}}, {{W+|fa|کیف|guman=erê}}, {{W+|fa|گردنبند|guman=erê}}, {{W-|fa|وسیله بافتن|guman=erê}} * {{Z|en}}: {{W+|en|tambourine|guman=erê}} * {{Z|tr}}: {{W+|tr|çalma}}, {{W+|tr|ense çukuru}}, {{W+|tr|kasnak}}, {{W+|tr|mahalle}}, {{W+|tr|sarık}}, {{W+|tr|şalgam}}, {{W+|tr|tünek}}, {{W+|tr|çember|guman=erê}}, {{W+|tr|tahra|guman=erê}}, {{W+|tr|taze|guman=erê}} {{werger-bin}} === Navdêr 3 === {{navdêr|ku|z=m}} # [[bac]], [[bêşî]], [[bide]], [[xerac]], [[zerîbe]], [[vêrgî]], [[olam]] #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 4 === {{navdêr|ku|z=}} # {{f|ku|riwek}} ''Binêre'': '''[[şêlim]]''' #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 5 === {{navdêr|ku|z=m}} # {{guharto|ku|tax|w=mehele}} #* {{bênimûne|ku}} == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|rup}} === Çavkanî === {{rûpela wergerê|rup|ker}} == {{ziman|ast}} == === Bilêvkirin === * {{deng|ast|LL-Q29507 (ast)-Limotecariu-tar.wav|Deng|dever=Uviéu, Spanya}} === Lêker === {{lêker|ast}} # (kesek/tiştek) {{g|ku|bûn}} #* {{bênimûne|ast}} === Çavkanî === {{rûpela wergerê|ast|bûn}} == {{ziman|en}} == === Bilêvkirin === * {{IPA|en|/tɑɹ/|[tʰɑɻ]|[tʰɑɹ]|[tʰɑ˞]|lang=en}} * {{deng|en|en-us-tar.ogg|dever=DYA}} * {{deng|en|en-au-tar.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en}} # [[qîr]], [[qetran]] #* {{bênimûne|en}} == {{ziman|kdr}} == === Rengdêr === {{rengdêr|kdr}} # {{g|ku|teng}} #* {{bênimûne|kdr}} === Çavkanî === {{rûpela wergerê|kdr|teng}} == {{ziman|hu}} == === Rengdêr === {{rengdêr|hu}} # {{mijar|hu|anatomî}} {{g|ku|keçel}} #* {{bênimûne|hu}} === Çavkanî === {{rûpela wergerê|hu|keçel}} == {{ziman|crh}} == === Rengdêr === {{rengdêr|crh}} # {{g|ku|teng}} #* {{bênimûne|crh}} === Çavkanî === {{rûpela wergerê|crh|teng}} 36pr3uzli4utfs19vrrii2q8f50a7mt 6341952 6341909 2026-08-24T12:57:58Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341952 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr 1 === {{navdêr|ku|z=m}} # [[milbend]]a [[darîn]] ya li dor [[bêjing]]ê yan [[moxel]]ê #* {{bênimûne|ku}} ==== Jê ==== {{kol3|ku|cure=Jê |tar bûn<q:lêker> |tar kirin<q:lêker> |tarbûn<q:navdêr> |tarkirin<q:navdêr> |tarbûyî<q:rengdêr> |tarkirî<q:rengdêr> }} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[dar]] an jî [[cih]]ên ku [[mirîşk]] li [[ser]] dihêwirin #* {{bênimûne|ku}} # darê li fêza [[pûnik]]a mirîşkan, [[lûs]] #* {{bênimûne|ku}} ==== Ji wêjeya klasîk ==== * {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=Wer ji qewseynan bi mîzan bêne der cotek xedeng</br>Dê ceger bit pare pare sîne '''tar''' û mar-i bit}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} Ji erebî ÎTAR ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Rübe}} {{mê}} * {{Z|fa}}: {{W+|fa|تار|guman=erê}}, {{W+|fa|چرخان|guman=erê}}, {{W+|fa|خوشی|guman=erê}}, {{W-|fa|سینه ریز|guman=erê}}, {{W+|fa|فونداسیون|guman=erê}}, {{W+|fa|کیف|guman=erê}}, {{W+|fa|گردنبند|guman=erê}}, {{W-|fa|وسیله بافتن|guman=erê}} * {{Z|en}}: {{W+|en|tambourine|guman=erê}} * {{Z|tr}}: {{W+|tr|çalma}}, {{W+|tr|ense çukuru}}, {{W+|tr|kasnak}}, {{W+|tr|mahalle}}, {{W+|tr|sarık}}, {{W+|tr|şalgam}}, {{W+|tr|tünek}}, {{W+|tr|çember|guman=erê}}, {{W+|tr|tahra|guman=erê}}, {{W+|tr|taze|guman=erê}} {{werger-bin}} === Navdêr 3 === {{navdêr|ku|z=m}} # [[bac]], [[bêşî]], [[bide]], [[xerac]], [[zerîbe]], [[vêrgî]], [[olam]] #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 4 === {{navdêr|ku|z=}} # {{f|ku|riwek}} ''Binêre'': '''[[şêlim]]''' #* {{bênimûne|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} === Navdêr 5 === {{navdêr|ku|z=m}} # {{guharto|ku|tax|w=mehele}} #* {{bênimûne|ku}} == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|rup}} === Çavkanî === {{rûpela wergerê|rup|ker}} == {{ziman|ast}} == === Bilêvkirin === * {{deng|ast|LL-Q29507 (ast)-Limotecariu-tar.wav|Deng|dever=Uviéu, Spanya}} === Lêker === {{lêker|ast}} # (kesek/tiştek) {{g|ku|bûn}} #* {{bênimûne|ast}} === Çavkanî === {{rûpela wergerê|ast|bûn}} == {{ziman|en}} == === Bilêvkirin === * {{IPA|en|/tɑɹ/|[tʰɑɻ]|[tʰɑɹ]|[tʰɑ˞]|lang=en}} * {{deng|en|en-us-tar.ogg|dever=DYA}} * {{deng|en|en-au-tar.ogg|dever=Awistralya}} === Navdêr === {{navdêr|en}} # [[qîr]], [[qetran]] #* {{bênimûne|en}} == {{ziman|kdr}} == === Rengdêr === {{rengdêr|kdr}} # {{g|ku|teng}} #* {{bênimûne|kdr}} === Çavkanî === {{rûpela wergerê|kdr|teng}} == {{ziman|hu}} == === Rengdêr === {{rengdêr|hu}} # {{mijar|hu|anatomî}} {{g|ku|keçel}} #* {{bênimûne|hu}} === Çavkanî === {{rûpela wergerê|hu|keçel}} == {{ziman|crh}} == === Rengdêr === {{rengdêr|crh}} # {{g|ku|teng}} #* {{bênimûne|crh}} === Çavkanî === {{rûpela wergerê|crh|teng}} k9lnz49absfkrfdi0sla0z9xlf4ipmu xur 0 4619 6341910 6336925 2026-08-24T12:55:32Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341910 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[xurîn]] yan [[xurandin]] #* {{bênimûne|ku}} ==== Ji wêjeya klasîk ==== * {{J:Mem û Zîn:1692|jêgirtin=Mexlût-i wekî heyat û Kewser</br>Qet'a çu nebû ne '''xur''' ne xwabek</br>Wan bîr nedihat-i nan û abek}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[xwir]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|Jucken}} {{nt}}, {{W+|de|Juckreiz}} {{n}} * {{Z|ay}}: {{W-|ay|jasi}} * {{Z|ar}}: {{W+|ar|شمس|guman=erê}} * {{Z|eo}}: {{W-|eo|juko}}, {{W-|eo|jukado}} * {{Z|fa}}: {{W+|fa|آفتاب}}, {{W+|fa|خورشید}}, {{W+|fa|خارش}}, {{W+|fa|حساسیت}}, {{W+|fa|آلرژی}} * {{Z|fi}}: {{W+|fi|kutina}}, {{W+|fi|syyhy}} * {{Z|fr}}: {{W+|fr|démangeaison}}, {{W+|fr|prurit}} * {{Z|nl}}: {{W+|nl|jeuk}} {{n}} * {{Z|he}}: {{W-|he|לגרד|sc=Hebr}} [legared] * {{Z|en}}: {{W+|en|itch}}, {{W+|en|sol}} * {{Z|it}}: {{W+|it|prurito}} * {{Z|ja}}: {{W+|ja|かゆみ|tr=kayumi}} * {{Z|ko}}: {{W-|ko|가려움}} * {{Z|pl}}: {{W+|pl|świąd}} * {{Z|pt}}: {{W+|pt|coceira}} {{mê}} * {{Z|ro}}: {{W+|ro|mâncărime}} {{mê}} * {{Z|ru}}: [[зуд]] (zud) * {{Z|es}}: {{W+|es|prurito}} * {{Z|sv}}: {{W+|sv|klåda}} * {{Z|th}}: {{W-|th|อาการคัน}} * {{Z|tr}}: {{W+|tr|kaşıntı}}, {{W+|tr|kaşınma}}, {{W+|tr|liken}}, {{W+|tr|yiyici}}, {{W+|tr|yem|guman=erê}}, {{W+|tr|su çiçeği|guman=erê}} {{werger-bin}} === 2. kesê ku tehl û dijwar dipeyive === {{cure?|ku}} # (kesê ku tehl û dijwar dipeyive) ''Binêre'': '''[[xurr]]''' === 3. roj, stêra ku germê û ronahiyê dide dinyaya me === {{cure?|ku}} # (roj, stêra ku germê û ronahiyê dide dinyaya me) ''Binêre'': '''[[xor]]''' == {{ziman|wbl}} == === Navdêr === {{navdêr|wbl}} # {{mijar|wbl|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|wbl}} === Çavkanî === {{rûpela wergerê|wbl|ker}} 5f622as617u7hm9yifdi2sbb8o5kgbc 6341956 6341910 2026-08-24T12:58:10Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341956 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[xurîn]] yan [[xurandin]] #* {{bênimûne|ku}} ==== Ji wêjeya klasîk ==== * {{J:Mem û Zîn:1692|jêgirtin=Mexlût-i wekî heyat û Kewser</br>Qet'a çu nebû ne '''xur''' ne xwabek</br>Wan bîr nedihat-i nan û abek}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[xwir]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W-|de|Jucken}} {{nt}}, {{W+|de|Juckreiz}} {{n}} * {{Z|ay}}: {{W-|ay|jasi}} * {{Z|ar}}: {{W+|ar|شمس|guman=erê}} * {{Z|eo}}: {{W-|eo|juko}}, {{W-|eo|jukado}} * {{Z|fa}}: {{W+|fa|آفتاب}}, {{W+|fa|خورشید}}, {{W+|fa|خارش}}, {{W+|fa|حساسیت}}, {{W+|fa|آلرژی}} * {{Z|fi}}: {{W+|fi|kutina}}, {{W+|fi|syyhy}} * {{Z|fr}}: {{W+|fr|démangeaison}}, {{W+|fr|prurit}} * {{Z|nl}}: {{W+|nl|jeuk}} {{n}} * {{Z|he}}: {{W-|he|לגרד|sc=Hebr}} [legared] * {{Z|en}}: {{W+|en|itch}}, {{W+|en|sol}} * {{Z|it}}: {{W+|it|prurito}} * {{Z|ja}}: {{W+|ja|かゆみ|tr=kayumi}} * {{Z|ko}}: {{W-|ko|가려움}} * {{Z|pl}}: {{W+|pl|świąd}} * {{Z|pt}}: {{W+|pt|coceira}} {{mê}} * {{Z|ro}}: {{W+|ro|mâncărime}} {{mê}} * {{Z|ru}}: [[зуд]] (zud) * {{Z|es}}: {{W+|es|prurito}} * {{Z|sv}}: {{W+|sv|klåda}} * {{Z|th}}: {{W-|th|อาการคัน}} * {{Z|tr}}: {{W+|tr|kaşıntı}}, {{W+|tr|kaşınma}}, {{W+|tr|liken}}, {{W+|tr|yiyici}}, {{W+|tr|yem|guman=erê}}, {{W+|tr|su çiçeği|guman=erê}} {{werger-bin}} === 2. kesê ku tehl û dijwar dipeyive === {{cure?|ku}} # (kesê ku tehl û dijwar dipeyive) ''Binêre'': '''[[xurr]]''' === 3. roj, stêra ku germê û ronahiyê dide dinyaya me === {{cure?|ku}} # (roj, stêra ku germê û ronahiyê dide dinyaya me) ''Binêre'': '''[[xor]]''' == {{ziman|wbl}} == === Navdêr === {{navdêr|wbl}} # {{mijar|wbl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|wbl}} === Çavkanî === {{rûpela wergerê|wbl|ker}} cyd2mtpxskqhg7y3mgosc9r8vu7gid7 و 0 4922 6342207 6293032 2026-08-24T20:03:30Z Şêr 1103 /* {{ziman|ckb}} */ mînak 6342207 wikitext text/x-wiki {{bnr-h|ۆ|ؤ}} == {{ziman|ku}} == === Cînav === {{cînav|ku|sc=Arab|tr=wi}} # [[wî]] #* {{bêmînak|ku}} ==== Bikaranîn ==== * [[kurmanciya rojhilatî]] (Ûrmiye, Hekarî) ==== Têkilî ==== * [[vi]] == {{ziman|ckb}} == === Tîp === {{tîp|ckb|و / وـ / ـوـ / ـو|tr=u, w}} # [[tîp|Tîp]]ek [[alfabe]]ya [[erebî]] û [[kurdî-erebî]] ye, [[hember]]î '''{{q|ku|w}}''' û '''{{q|ku|u}}''' ya kurdî-latînî ye û navê wê {{q|ku|waw}} e. #* {{bêmînak|ckb}} ==== Binêre herwiha ==== * {{Alfabeya soranî}} === Girêdek === {{girêdek|ckb}} # [[û#Girêdek|û]] #* {{mînak|ckb|من و تۆ دەچین بۆ ماڵەوە.|tr=Min u to deçîn bo malewe.|werger=Ez û tu diçin malê.}} #* {{mînak|ckb|نان و ئاو|tr=nan u aw|werger=nan û av}} ==== Formên alternatîv ==== * {{g|ckb|وە}} == {{ziman|aeb}} == === Girêdek === {{girêdek|aeb|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|aeb}} == {{ziman|acw}} == === Girêdek === {{girêdek|acw|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|acw}} == {{ziman|arz}} == === Girêdek === {{girêdek|arz|tr=we}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|arz}} == {{ziman|ar}} == === Bilêvkirin === * ''(navê tîpê)'' {{IPA|ar|/waːw/}} * ''(yekedeng)'' {{IPA|ar|/w/}} * {{deng|ar|Ar-و.ogg}} * {{deng|ar|LL-Q13955 (ara)-Spotless Mind1988-و.wav|Deng|dever=Batna, Cezayir}} * {{deng|ar|LL-Q13955 (ara)-Nehaoua-و.wav|Deng|dever=}} === Tîp === [[Wêne:Lettre 27 wâw.gif |thumb]] {{tîp|ar|و / ‍و|tr=wāw}} # Tîpa bîst û heftem a alfebaya erebî. #* {{bêmînak|ar}} ==== Binêre herwiha ==== * {{Alfabeya erebî}} == {{ziman|fa}} == === Bilêvkirin === * {{deng|fa|LL-Q9168 (fas)-Berrely-و.wav|Deng|dever=London,QY}} === Tîp === {{tîp|fa|و / وـ / ـوـ / ـو|tr=vâv}} # [[sihem|Sihem]] [[tîp]]a [[alfabe]]ya [[farisî]]-[[erebî]] ye. #* {{bêmînak|fa}} ==== Binêre herwiha ==== * {{lîste:alfabe/fa}} === Girêdek === {{girêdek|fa|tr=o, va}} # [[û]] #* {{bêmînak|fa}} == {{ziman|ota}} == === Girêdek === {{girêdek|ota|tr=ve}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|ota}} p7mblweid5r04v74h6vqd8jck4n71vc 6342212 6342207 2026-08-24T20:16:19Z Wikihez 7344 @[[User:Şêr]] nimûne bi #: jêgirtin bi #* dest pê dikin çunkî jêgirtin dikare gelek dirêj be û bi [jêgirtin] tên veşartin em naxwazin nimûne werin veşartin :) ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6342212 wikitext text/x-wiki {{bnr-h|ۆ|ؤ}} == {{ziman|ku}} == === Cînav === {{cînav|ku|sc=Arab|tr=wi}} # [[wî]] #* {{bêmînak|ku}} ==== Bikaranîn ==== * [[kurmanciya rojhilatî]] (Ûrmiye, Hekarî) ==== Têkilî ==== * [[vi]] == {{ziman|ckb}} == === Tîp === {{tîp|ckb|و / وـ / ـوـ / ـو|tr=u, w}} # [[tîp|Tîp]]ek [[alfabe]]ya [[erebî]] û [[kurdî-erebî]] ye, [[hember]]î '''{{q|ku|w}}''' û '''{{q|ku|u}}''' ya kurdî-latînî ye û navê wê {{q|ku|waw}} e. #* {{bêmînak|ckb}} ==== Binêre herwiha ==== * {{Alfabeya soranî}} === Girêdek === {{girêdek|ckb}} # [[û#Girêdek|û]] #: {{mînak|ckb|من و تۆ دەچین بۆ ماڵەوە.|tr=Min u to deçîn bo malewe.|werger=Ez û tu diçin malê.}} #: {{mînak|ckb|نان و ئاو|tr=nan u aw|werger=nan û av}} ==== Formên alternatîv ==== * {{g|ckb|وە}} == {{ziman|aeb}} == === Girêdek === {{girêdek|aeb|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|aeb}} == {{ziman|acw}} == === Girêdek === {{girêdek|acw|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|acw}} == {{ziman|arz}} == === Girêdek === {{girêdek|arz|tr=we}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|arz}} == {{ziman|ar}} == === Bilêvkirin === * ''(navê tîpê)'' {{IPA|ar|/waːw/}} * ''(yekedeng)'' {{IPA|ar|/w/}} * {{deng|ar|Ar-و.ogg}} * {{deng|ar|LL-Q13955 (ara)-Spotless Mind1988-و.wav|Deng|dever=Batna, Cezayir}} * {{deng|ar|LL-Q13955 (ara)-Nehaoua-و.wav|Deng|dever=}} === Tîp === [[Wêne:Lettre 27 wâw.gif |thumb]] {{tîp|ar|و / ‍و|tr=wāw}} # Tîpa bîst û heftem a alfebaya erebî. #* {{bêmînak|ar}} ==== Binêre herwiha ==== * {{Alfabeya erebî}} == {{ziman|fa}} == === Bilêvkirin === * {{deng|fa|LL-Q9168 (fas)-Berrely-و.wav|Deng|dever=London,QY}} === Tîp === {{tîp|fa|و / وـ / ـوـ / ـو|tr=vâv}} # [[sihem|Sihem]] [[tîp]]a [[alfabe]]ya [[farisî]]-[[erebî]] ye. #* {{bêmînak|fa}} ==== Binêre herwiha ==== * {{lîste:alfabe/fa}} === Girêdek === {{girêdek|fa|tr=o, va}} # [[û]] #* {{bêmînak|fa}} == {{ziman|ota}} == === Girêdek === {{girêdek|ota|tr=ve}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|ota}} tcysa4jw1vn89vc0gp1pl9d357rvpbc 6342229 6342212 2026-08-24T20:41:12Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342229 wikitext text/x-wiki {{bnr-h|ۆ|ؤ}} == {{ziman|ku}} == === Cînav === {{cînav|ku|sc=Arab|tr=wi}} # [[wî]] #* {{bêmînak|ku}} ==== Notên bikaranînê ==== * [[kurmanciya rojhilatî]] (Ûrmiye, Hekarî) ==== Têkildar ==== * [[vi]] == {{ziman|ckb}} == === Tîp === {{tîp|ckb|و / وـ / ـوـ / ـو|tr=u, w}} # [[tîp|Tîp]]ek [[alfabe]]ya [[erebî]] û [[kurdî-erebî]] ye, [[hember]]î '''{{q|ku|w}}''' û '''{{q|ku|u}}''' ya kurdî-latînî ye û navê wê {{q|ku|waw}} e. #* {{bêmînak|ckb}} ==== Herwiha binêre ==== * {{Alfabeya soranî}} === Girêdek === {{girêdek|ckb}} # [[û#Girêdek|û]] #: {{mînak|ckb|من و تۆ دەچین بۆ ماڵەوە.|tr=Min u to deçîn bo malewe.|werger=Ez û tu diçin malê.}} #: {{mînak|ckb|نان و ئاو|tr=nan u aw|werger=nan û av}} ==== Formên alternatîv ==== * {{g|ckb|وە}} == {{ziman|aeb}} == === Girêdek === {{girêdek|aeb|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|aeb}} == {{ziman|acw}} == === Girêdek === {{girêdek|acw|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|acw}} == {{ziman|arz}} == === Girêdek === {{girêdek|arz|tr=we}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|arz}} == {{ziman|ar}} == === Bilêvkirin === * ''(navê tîpê)'' {{IPA|ar|/waːw/}} * ''(yekedeng)'' {{IPA|ar|/w/}} * {{deng|ar|Ar-و.ogg}} * {{deng|ar|LL-Q13955 (ara)-Spotless Mind1988-و.wav|Deng|dever=Batna, Cezayir}} * {{deng|ar|LL-Q13955 (ara)-Nehaoua-و.wav|Deng|dever=}} === Tîp === [[Wêne:Lettre 27 wâw.gif |thumb]] {{tîp|ar|و / ‍و|tr=wāw}} # Tîpa bîst û heftem a alfebaya erebî. #* {{bêmînak|ar}} ==== Herwiha binêre ==== * {{Alfabeya erebî}} == {{ziman|fa}} == === Bilêvkirin === * {{deng|fa|LL-Q9168 (fas)-Berrely-و.wav|Deng|dever=London,QY}} === Tîp === {{tîp|fa|و / وـ / ـوـ / ـو|tr=vâv}} # [[sihem|Sihem]] [[tîp]]a [[alfabe]]ya [[farisî]]-[[erebî]] ye. #* {{bêmînak|fa}} ==== Herwiha binêre ==== * {{lîste:alfabe/fa}} === Girêdek === {{girêdek|fa|tr=o, va}} # [[û]] #* {{bêmînak|fa}} == {{ziman|ota}} == === Girêdek === {{girêdek|ota|tr=ve}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|ota}} sizwtska4rkws8q1lwll9k0w2gmdzbz 6342239 6342229 2026-08-24T21:12:06Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, Valahiya beşan rast kir.) 6342239 wikitext text/x-wiki {{bnr-h|ۆ|ؤ}} == {{ziman|ku}} == === Cînav === {{cînav|ku|sc=Arab|tr=wi}} # [[wî]] #* {{bêmînak|ku}} ==== Notên bikaranînê ==== * [[kurmanciya rojhilatî]] (Ûrmiye, Hekarî) ==== Têkildar ==== * [[vi]] == {{ziman|ckb}} == === Tîp === {{tîp|ckb|و / وـ / ـوـ / ـو|tr=u, w}} # [[tîp|Tîpek]] [[alfabe]]ya [[erebî]] û [[kurdî-erebî]] ye, [[hember]]î '''{{q|ku|w}}''' û '''{{q|ku|u}}''' ya kurdî-latînî ye û navê wê {{q|ku|waw}} e. #* {{bêmînak|ckb}} ==== Herwiha binêre ==== * {{Alfabeya soranî}} === Girêdek === {{girêdek|ckb}} # [[û#Girêdek|û]] #: {{mînak|ckb|من و تۆ دەچین بۆ ماڵەوە.|tr=Min u to deçîn bo malewe.|werger=Ez û tu diçin malê.}} #: {{mînak|ckb|نان و ئاو|tr=nan u aw|werger=nan û av}} ==== Formên alternatîv ==== * {{g|ckb|وە}} == {{ziman|aeb}} == === Girêdek === {{girêdek|aeb|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|aeb}} == {{ziman|acw}} == === Girêdek === {{girêdek|acw|tr=u}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|acw}} == {{ziman|arz}} == === Girêdek === {{girêdek|arz|tr=we}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|arz}} == {{ziman|ar}} == === Bilêvkirin === * ''(navê tîpê)'' {{IPA|ar|/waːw/}} * ''(yekedeng)'' {{IPA|ar|/w/}} * {{deng|ar|Ar-و.ogg}} * {{deng|ar|LL-Q13955 (ara)-Spotless Mind1988-و.wav|Deng|dever=Batna, Cezayir}} * {{deng|ar|LL-Q13955 (ara)-Nehaoua-و.wav|Deng|dever=}} === Tîp === [[Wêne:Lettre 27 wâw.gif |thumb]] {{tîp|ar|و / ‍و|tr=wāw}} # Tîpa bîst û heftem a alfebaya erebî. #* {{bêmînak|ar}} ==== Herwiha binêre ==== * {{Alfabeya erebî}} == {{ziman|fa}} == === Bilêvkirin === * {{deng|fa|LL-Q9168 (fas)-Berrely-و.wav|Deng|dever=London,QY}} === Tîp === {{tîp|fa|و / وـ / ـوـ / ـو|tr=vâv}} # [[sihem|Sihem]] [[tîp]]a [[alfabe]]ya [[farisî]]-[[erebî]] ye. #* {{bêmînak|fa}} ==== Herwiha binêre ==== * {{lîste:alfabe/fa}} === Girêdek === {{girêdek|fa|tr=o, va}} # [[û]] #* {{bêmînak|fa}} == {{ziman|ota}} == === Girêdek === {{girêdek|ota|tr=ve}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|ota}} bipz8pz93i98tu4x5qifunx4007jmfj ferman 0 9812 6341905 6326061 2026-08-24T12:49:38Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341905 wikitext text/x-wiki {{bnr-h|Ferman}} == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/fɛɾ.mɑːn/}} * {{deng|ku|LL-Q36368 (kur)-Dildadil-ferman.wav|Deng|dever=Amed}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[emir]], [[gotin]]a kesek dibêje û [[divê]] kesek din wek wê gotinê bike #: {{nm|ku|Serokê wan '''fermana''' rawestandina şerî daye.|Serokê wan gotiye ku nabe şerr bê kirin.}} #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ya [[qelem]] binvîs bi emrê Padîşah<br>Ez çi binvîsim bi '''ferman''' ya Îlah}} # [[xirab]] [[bûn]]a [[rewş]]ê, [[jînoside]] #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|فه‌رمان}} ==== Formên alternatîv ==== {{kol3|ku |ferwar |firman |firwar }} ==== Jê ==== {{kol3|ku|cure=Jê |ferman dan<pos:lêker> |ferman kirin<pos:lêker> |ferman wergirtin |fermanlo bûn |fermandan<pos:navdêr> |fermankirin<pos:navdêr> |fermanwergirtin<pos:navdêr> |fermandayî<pos:rengdêr> |fermankirî<pos:rengdêr> |fermanwergirtî |bêferman |bêfermanî |biferman |bifermanî |fermanber |fermanberî |fermandar |fermandarî |fermander |fermanderî |fermangir |fermangirî |fermanlo |fermanname |fermanî |fermanwergir |fermanwergirî }} ==== Etîmolojî ==== Ji {{ji|ira}}, [[fer-]] ([[ber-]], [[pêş-]] + [[-man]] ([[raman]]; [[şîret]], [[nesîhet]]), [[hevreh]]a {{hv|ckb|فرمان}}, {{hv|hac|هەرمانە|tr=hermane|w=xebat}}, {{hv|fa|فرمان|tr=ferman}}, {{hv|pal|frm'n|tr=freman}}, hexamenîşî ''fremana-'', avestayî ''fremeynye-'', latînî [[praemoneo|praemoneō]], binere * [[fer-]] + {{ji|ine-pro|ku|-}} * [[menos]] ([[raman]] > li wê binere). [[հրաման]] (hremen) ya ermenî ji zimanekî îranî hatiye wergirtin. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|bevel}}, {{W|af|opdrag}}, {{W|af|gebod}} * {{Z|de}}: {{W|de|Befehl}} {{n}}, {{W|de|Anweisung}} {{mê}}, {{W|de|Auftrag}} {{n}}, {{W|de|Diktat}} {{nt}}, {{W|de|Gebot}} {{nt}}, {{W|de|Kommando}} {{nt}}, {{W|de|Ordnung}} {{mê}}, {{W|de|Verordnung}} {{mê}}, {{W|de|Erlaß}}, {{W|de|Dekret|m|guman=erê}} * {{Z|eu}}: {{W|eu|agindu|xs=Basque}}, {{W|eu|men}} * {{Z|bg}}: {{W|bg|заповед}} {{mê}}, {{W|bg|нареждане}} {{nt}} * {{Z|cs}}: {{W|cs|příkaz}} {{n}}, {{W|cs|rozkaz}} {{n}}, {{W|cs|povel}} {{n}} * {{Z|ar}}: {{W|ar|امر}},{{W|ar|فرمان}}, {{W|ar|توصية}}, {{W|ar|قتل جماعي}}, {{W|ar|إبادة}}, {{W|ar|أمر|guman=erê}}, {{W|ar|الوصیة|guman=erê}}, {{W|ar|إیعاز|guman=erê}}, {{W|ar|مرسوم|guman=erê}} * {{Z|hy}}: {{W|hy|հրաման|tr=hraman}} * {{Z|eo}}: {{W|eo|ordono|xs=Esperanto}} * {{Z|fa}}: {{W|fa|امر}}, {{W|fa|پروانگی}}, {{W|fa|فرمان}}, {{W|fa|فرمایش}}, {{W|fa|فرمان|tr=farmân}}, {{W|fa|tr=ord|ارد|cuda=اُرد}}, {{W|fa|دستور|tr=dastur}}, {{W|fa|قتل عام}} * {{Z|fi}}: {{W|fi|käsky}}, {{W|fi|komento}} * {{Z|fro}}: {{W|fro|comandement}} {{n}} * {{Z|gd}}: {{W|gd|òrdugh}} {{n}} * {{Z|nl}}: {{W|nl|opdracht|c}}, {{W|nl|bevel}} {{nt}} * {{Z|he}}: [[פקודה]] (pquda) * {{Z|ang}}: {{W|ang|gebod|xs=Old English}} * {{Z|en}}: {{W|en|behest}}, {{W|en|order}}, {{W|en|decree}}, {{W|en|dictation}}, {{W|en|dictum}}, {{W|en|prescription}}, {{W|en|ukase}}, {{W|en|rescript}}, {{W|en|command}}, {{W|en|rule}}, {{W|en|dictate}}, {{W|en|directive}}, (2){{W|en|genocide}}, {{W|en|injuction|guman=erê}} * {{Z|it}}: {{W+|it|ordine}}, {{W+|it|decreto}}, {{W+|it|comando}} * {{Z|ja}}: {{W|ja|命令|tr=めいれい, meirei}} * {{Z|ca}}: {{W|ca|ordre}} {{mê}}, {{W|ca|manat}} {{n}} * {{Z|la}}: {{W|la|edictum}} {{nt}} * {{Z|hu}}: {{W|hu|parancs}} * {{Z|pl}}: {{W|pl|rozkaz}} {{n}} * {{Z|sh}}: {{W|sh|zapovijed}} {{mê}} * {{Z|sh}}: {{W|sh|zapovijed (f) |cuda=zȁpovijēd (f) |xs=Serbo-Croatian}}, {{W|sh|zapoved (f)|cuda=zȁpovēd (f)|xs=Serbo-Croatian}}, {{W|sh|komanda|xs=Serbo-Croatian}}, {{W|sh|naredba|xs=Serbo-Croatian}} * {{Z|es}}: {{W|es|orden}} {{mê}}, {{W|es|mandato}} {{n}} * {{Z|tl}}: {{W|tl|utos}}, {{W|tl|kautusan}} * {{Z|th}}: {{W|th|สั่ง|tr=sang}} * {{Z|te}}: [[ఆజ్ఞ]] (aajna), {{W|te|ఉత్తరువు|tr=uttaruvu}}, {{W|te|ఆనతి|tr=anati}} * {{Z|tr}}: {{W|tr|emir}}, {{W|tr|fermuar}}, {{W|tr|irade}}, {{W|tr|kaime}}, {{W|tr|ölüm fermanı}}, {{W|tr|carcur}}, {{W|tr|ferman}}, {{W|tr|komut}}, {{W|tr|buyruk}}, {{W|tr|emretme}}, {{W|tr|âmirlik}}, {{W|tr|yarlık}}, {{W|tr|buyrultu|guman=erê}}, {{W|tr|buyuru|guman=erê}} * {{Z|el}}: {{W|el|εντολή}} {{mê}}, {{W|el|διαταγή}} {{mê}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # ferman, [[emir]] #* {{bêmînak|tr}} swk9mz7gh6071wddmrnqaohlizui2lf atmosfer 0 9840 6342201 6297139 2026-08-24T19:26:16Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6342201 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m}} # [[hewa]], [[seqa]], [[keş]], [[keşuba]] #* {{bêmînak|ku}} # [[rewş]], [[kawdan]], [[destûdar]], [[hal]], [[barûdox]], [[durum]] #* {{jêder-websîte|ku|nivîskar=w:Omer Faruk Baran|sernav=‘Kara Üzüm Habbesi’ya Kardeş Türkülerê û Qere Tirî Hebesîya Wê|websîte=Botan Times|url=https://www.botantimes.com/kara-uzum-habbesiya-kardes-turkulere-u-qere-tiri-hebesiya-we/|tarîx=2023-07-25|jêgirtin=Koma Kardeş Türkülerê dawîya sedsala 20an bi nermbûna '''atmosfera''' sîyasî û bi rabûna hinek yasaxan re aştî û biratîyeka muzîkal anîye Tirkîyê.}} ==== Ji wêjeyê ==== ''niho xebat ji bo hevdîtina serokwezîrê Kurdistanê Nêçîrvan Barzanî digel Recep Tayyip Erdoganî têt kirin û heger encameka pozîtîv jê derkeve û li Tirkiyeyê '''atmosfer''' hinekê nerm bibe ne dûr e ko paşê serokê Kurdistanê Mesûd Barzanî û serokkomarê tirkan Abdullah Gul jî bikarin hevdu bibînin.'' (Nefel.com, 3/2008) ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[atmosfêr]] ==== Jê ==== * [[atmosferî]] ==== Etîmolojî ==== Ji latînî ==== Bi zaravayên din ==== * {{Z|ckb}}: [[tewşik]] ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Atmosphäre|m}}, {{W+|de|Stimmung|m}}, {{W+|de|Ambiente|m|guman=erê}} * {{Z|id}}: {{W+|id|atmosfir}}, {{W+|id|udara}}, {{W+|id|suasana}} * {{Z|ar}}: {{W+|ar|غلاف جوي}} * {{Z|fa}}: {{W+|fa|اتمسفر}}, {{W+|fa|جو}}, {{W+|fa|جو زمین}}, {{W-|fa|هوای بیرون}} * {{Z|fi}}: {{W+|fi|ilmapiiri}}, {{W+|fi|atmosfääri}} * {{Z|fr}}: {{W+|fr|atmosphère}}, {{W+|fr|ambiance}} * {{Z|nl}}: {{W+|nl|overeenstemming}}, {{W+|nl|samenklank}} * {{Z|io}}: {{W+|io|atmosfero}}, {{W+|io|etoso}} * {{Z|en}}: {{W+|en|atmosphere}}, {{W+|en|mood}}, {{W+|en|aerospace}}, {{W+|en|ambiance}}, {{W+|en|aura}} * {{Z|es}}: {{W+|es|atmosfera}}, {{W+|es|atmósfera}} * {{Z|sv}}: {{W+|sv|atmosfär}}, {{W+|sv|stämning}} * {{Z|tr}}: {{W-|tr|gazyuvarı}}, {{W+|tr|atmosfer|guman=erê}}, {{W+|tr|hava küre|guman=erê}}, {{W+|tr|hava yuvarı|guman=erê}} {{werger-bin}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-atmosfer.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[mehwa]], atmosfer #* {{bêmînak|tr}} # [[birah]] #* {{bêmînak|tr}} # [[hewa]] #* {{bêmînak|tr}} # atmosfer #* {{bêmînak|tr}} i6pljvr8e8q8cyv4k7cvmrmmzqaqeoq 6342202 6342201 2026-08-24T19:26:44Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6342202 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m}} # [[hewa]], [[seqa]], [[keş]], [[keşuba]] #* {{bêmînak|ku}} # [[rewş]], [[kawdan]], [[destûdar]], [[hal]], [[barûdox]], [[durum]] #* {{jêder-websîte|ku|nivîskar=w:Omer Faruk Baran|sernav=‘Kara Üzüm Habbesi’ya Kardeş Türkülerê û Qere Tirî Hebesîya Wê|websîte=Botan Times|url=https://www.botantimes.com/kara-uzum-habbesiya-kardes-turkulere-u-qere-tiri-hebesiya-we/|tarîx=2023-07-25|jêgirtin=Koma Kardeş Türkülerê dawîya sedsala 20an bi nermbûna '''atmosfera''' sîyasî û bi rabûna hinek yasaxan re aştî û biratîyeka muzîkal anîye Tirkîyê.}} #* {{jêder|ku|jêgirtin=niho xebat ji bo hevdîtina serokwezîrê Kurdistanê Nêçîrvan Barzanî digel Recep Tayyip Erdoganî têt kirin û heger encameka pozîtîv jê derkeve û li Tirkiyeyê '''atmosfer''' hinekê nerm bibe ne dûr e ko paşê serokê Kurdistanê Mesûd Barzanî û serokkomarê tirkan Abdullah Gul jî bikarin hevdu bibînin.|Nefel.com, 3/2008}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * {{g|ku|atmosfêr}} ==== Jê ==== * {{g|ku|atmosferî}} ==== Etîmolojî ==== Ji latînî ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W-|ckb|tewşik}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Atmosphäre|m}}, {{W+|de|Stimmung|m}}, {{W+|de|Ambiente|m|guman=erê}} * {{Z|id}}: {{W+|id|atmosfir}}, {{W+|id|udara}}, {{W+|id|suasana}} * {{Z|ar}}: {{W+|ar|غلاف جوي}} * {{Z|fa}}: {{W+|fa|اتمسفر}}, {{W+|fa|جو}}, {{W+|fa|جو زمین}}, {{W-|fa|هوای بیرون}} * {{Z|fi}}: {{W+|fi|ilmapiiri}}, {{W+|fi|atmosfääri}} * {{Z|fr}}: {{W+|fr|atmosphère}}, {{W+|fr|ambiance}} * {{Z|nl}}: {{W+|nl|overeenstemming}}, {{W+|nl|samenklank}} * {{Z|io}}: {{W+|io|atmosfero}}, {{W+|io|etoso}} * {{Z|en}}: {{W+|en|atmosphere}}, {{W+|en|mood}}, {{W+|en|aerospace}}, {{W+|en|ambiance}}, {{W+|en|aura}} * {{Z|es}}: {{W+|es|atmosfera}}, {{W+|es|atmósfera}} * {{Z|sv}}: {{W+|sv|atmosfär}}, {{W+|sv|stämning}} * {{Z|tr}}: {{W-|tr|gazyuvarı}}, {{W+|tr|atmosfer|guman=erê}}, {{W+|tr|hava küre|guman=erê}}, {{W+|tr|hava yuvarı|guman=erê}} {{werger-bin}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-atmosfer.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[mehwa]], atmosfer #* {{bêmînak|tr}} # [[birah]] #* {{bêmînak|tr}} # [[hewa]] #* {{bêmînak|tr}} # atmosfer #* {{bêmînak|tr}} 7fcp3g63jfg94c84o3a5akqxa2jkwww asin 0 15525 6341908 6297045 2026-08-24T12:55:15Z Balyozbot 7867 /* Navdêr */ sererastkirin 6341908 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/ʌːˈsɘn/}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-asin.wav|Deng|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Iron_electrolytic_and_1cm3_cube.jpg|thumb|'''Asinê''' xwerû.]] {{navdêr|ku|z=n}} # {{guharto|ku|hesin}} #* {{jêder-kitêb|ku|sc=Arab|sal=1683|nivîskar=Ehmedê Xanî|sernav=Nûbihara Biçûkan|jêgirtin=سمع بهستن بصر دیتن و نیرین نظر</br>هیڤی‌نمایی کیه مبلس و آیس قنوط</br>'''آسن''' و پولا چنه هردو انیث و ذکر|tr=Semiʿ bihistin; beṣer dîtin, u nêrîn neẓer</br>Hêvî-nemayî kî ye: mublis u ayis qenûṭ</br>'''Asin''' u pola çi ne: herdu unîs̤ u z̤eker}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاسن}} *: (''klasîk'') {{g|ku|sc=Arab|آسن|tr=-}} * {{ku-kr|асьн}} ==== Jê ==== * [[asinger]] * [[asingerî]] * [[asinî]] ==== Bide ber ==== * [[asan]] == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[hesin]] #* {{bêmînak|zza}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # asin, [[hesin]] #* {{bêmînak|ckb}} == {{ziman|bcl}} == === Girêdek === {{girêdek|bcl}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|bcl}} == {{ziman|kxd}} == === Rengdêr === {{rengdêr|kxd}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|kxd}} === Çavkanî === {{rûpela wergerê|kxd|sûr}} == {{ziman|id}} == === Rengdêr === {{rengdêr|id}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|id}} === Çavkanî === {{rûpela wergerê|id|sûr}} == {{ziman|jv}} == === Bilêvkirin === * {{deng|jv|LL-Q33549 (jav)-Menyusurisudutnegeri-asin.wav|Deng|dever=Kebutuh, Îndonezya}} * {{deng|jv|LL-Q33549 (jav)-Dewinta88-asin.wav|Deng|dever=Purworejo, Îndonezya}} * {{deng|jv|LL-Q33549 (jav)-Tetheow-asin.wav|Deng|dever=Mojokerto, Îndonezya}} === Rengdêr === {{rengdêr|jv}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|jv}} === Çavkanî === {{rûpela wergerê|jv|sûr}} == {{ziman|ms}} == === Rengdêr === {{rengdêr|ms}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|ms}} === Çavkanî === {{rûpela wergerê|ms|sûr}} == {{ziman|oj}} == === Navdêr === {{navdêr|oj}} # {{f|oj|erdnîgarî}} {{g|ku|kevir}}, {{g|ku|kuç}}, {{g|ku|ber}} #* {{bêmînak|oj}} === Çavkanî === {{rûpela wergerê|oj|kevir}} == {{ziman|ro}} == === Bilêvkirin === * {{deng|ro|LL-Q7913 (ron)-Papaeta-asin.wav|Deng|dever=}} === Navdêr === {{navdêr|ro|z=n}} # {{mijar|ro|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|ro}} === Çavkanî === {{rûpela wergerê|ro|ker}} 31yu9ubxk3bq68310s9uco0g2e0v1mp 6341949 6341908 2026-08-24T12:57:53Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341949 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/ʌːˈsɘn/}} * {{deng|ku|LL-Q36163 (kmr)-Ebulfîda-asin.wav|Deng|dever=Bidlîs}} * {{ku-kîte}} === Navdêr === [[Wêne:Iron_electrolytic_and_1cm3_cube.jpg|thumb|'''Asinê''' xwerû.]] {{navdêr|ku|z=n}} # {{guharto|ku|hesin}} #* {{jêder-kitêb|ku|sc=Arab|sal=1683|nivîskar=Ehmedê Xanî|sernav=Nûbihara Biçûkan|jêgirtin=سمع بهستن بصر دیتن و نیرین نظر</br>هیڤی‌نمایی کیه مبلس و آیس قنوط</br>'''آسن''' و پولا چنه هردو انیث و ذکر|tr=Semiʿ bihistin; beṣer dîtin, u nêrîn neẓer</br>Hêvî-nemayî kî ye: mublis u ayis qenûṭ</br>'''Asin''' u pola çi ne: herdu unîs̤ u z̤eker}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} ==== Bi alfabeyên din ==== * {{ku-ar|ئاسن}} *: (''klasîk'') {{g|ku|sc=Arab|آسن|tr=-}} * {{ku-kr|асьн}} ==== Jê ==== * [[asinger]] * [[asingerî]] * [[asinî]] ==== Bide ber ==== * [[asan]] == {{ziman|zza}} == === Navdêr === {{navdêr|zza}} # [[hesin]] #* {{bêmînak|zza}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|sc=Latn}} # asin, [[hesin]] #* {{bêmînak|ckb}} == {{ziman|bcl}} == === Girêdek === {{girêdek|bcl}} # [[û#ku|û]] ([[herwiha#ku|herwiha]], [[hem#ku|hem]]) #* {{bêmînak|bcl}} == {{ziman|kxd}} == === Rengdêr === {{rengdêr|kxd}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|kxd}} === Çavkanî === {{rûpela wergerê|kxd|sûr}} == {{ziman|id}} == === Rengdêr === {{rengdêr|id}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|id}} === Çavkanî === {{rûpela wergerê|id|sûr}} == {{ziman|jv}} == === Bilêvkirin === * {{deng|jv|LL-Q33549 (jav)-Menyusurisudutnegeri-asin.wav|Deng|dever=Kebutuh, Îndonezya}} * {{deng|jv|LL-Q33549 (jav)-Dewinta88-asin.wav|Deng|dever=Purworejo, Îndonezya}} * {{deng|jv|LL-Q33549 (jav)-Tetheow-asin.wav|Deng|dever=Mojokerto, Îndonezya}} === Rengdêr === {{rengdêr|jv}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|jv}} === Çavkanî === {{rûpela wergerê|jv|sûr}} == {{ziman|ms}} == === Rengdêr === {{rengdêr|ms}} # {{g|ku|sûr}}, {{g|ku|şor}}, {{g|ku|têrxwê}} #* {{bêmînak|ms}} === Çavkanî === {{rûpela wergerê|ms|sûr}} == {{ziman|oj}} == === Navdêr === {{navdêr|oj}} # {{f|oj|erdnîgarî}} {{g|ku|kevir}}, {{g|ku|kuç}}, {{g|ku|ber}} #* {{bêmînak|oj}} === Çavkanî === {{rûpela wergerê|oj|kevir}} == {{ziman|ro}} == === Bilêvkirin === * {{deng|ro|LL-Q7913 (ron)-Papaeta-asin.wav|Deng|dever=}} === Navdêr === {{navdêr|ro|z=n}} # {{mijar|ro|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|ro}} === Çavkanî === {{rûpela wergerê|ro|ker}} bzot8t7mcuei8dov63g9jvubgmp9ex0 خر 0 18864 6342163 5897300 2026-08-24T13:07:32Z Wikihez 7344 /* Kurmancî */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342163 wikitext text/x-wiki {{bnr-h|جر|جز|حر|خز|چر|جڑ}} == {{ziman|ar}} == === Lêker 1 === {{lêker|ar|خَرَّ}} # {{bêwate|ar}} #* {{bêmînak|ar}} === Lêker 2 === {{lêker|ar|خَرَّ}} # {{bêwate|ar}} #* {{bêmînak|ar}} === Navdêr === {{navdêr|ar|خَرّ|z=n}} # {{bêwate|ar}} #* {{bêmînak|ar}} == {{ziman|ku}} == === Navdêr === {{navdêr|ku|tr=-}} # {{ku-Latn|xir}} #* {{bêmînak|ku}} === Rengdêr === {{rengdêr|ku|tr=-}} # {{ku-Latn|xir}} #* {{bêmînak|ku}} == {{ziman|fa}} == === Bilêvkirin === * {{IPA|fa|/xer/}} === Navdêr === {{navdêr|fa|tr=xar}} # {{f|fa|guhandar}} [[ker]] #* {{bêmînak|fa}} ==== Hevmane ==== * {{g|fa|الاغ‎|tr=olâğ}} 6tmejkscip7z3p7boeswlowojbs73r1 6342164 6342163 2026-08-24T13:07:55Z Wikihez 7344 6342164 wikitext text/x-wiki {{bnr-h|جر|جز|حر|خز|چر|جڑ}} == {{ziman|ku}} == === Navdêr === {{navdêr|ku|tr=-}} # {{ku-Latn|xir}} #* {{bêmînak|ku}} === Rengdêr === {{rengdêr|ku|tr=-}} # {{ku-Latn|xir}} #* {{bêmînak|ku}} == {{ziman|fa}} == === Bilêvkirin === * {{IPA|fa|/xer/}} === Navdêr === {{navdêr|fa|tr=xar}} # {{f|fa|guhandar}} [[ker]] #* {{bêmînak|fa}} ==== Hevmane ==== * {{g|fa|الاغ‎|tr=olâğ}} m3xm215r9g5x0e9oogvmpi5ie4ik44g durum 0 23923 6342203 6326331 2026-08-24T19:31:04Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342203 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m}} # {{tirkmancî}} [[rewş]], [[kawdan]], [[destûdar]], [[hal]], [[barûdox]] #* {{mînak|ku|Rewşa min ya aborî ne baş e!}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Formên alternatîv ==== * [[dirim]] * [[dirm]] * [[durim]] * [[durm]] ==== Etîmolojî ==== Deyn ji {{deyn|tr|ku|durum}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W|de|Sache}} {{mê}} * {{Z|en}}: {{W|en|contagious|guman=erê}}, {{W|en|infectious|guman=erê}}, {{W|en|transmissible|guman=erê}}, {{W|en|bronchitis|guman=erê}}, {{W|en|catching|guman=erê}}, {{W|en|germ|guman=erê}}, {{W|en|tubercle bacillus|guman=erê}} * {{Z|tr}}: {{W|tr|atmosfer}}, {{W|tr|sari hastalık|guman=erê}}, {{W|tr|bulaşıcı|guman=erê}} {{werger-bin}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-Veravi95-durum.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # [[rewş]], [[asûn]] #* {{bêmînak|tr}} # [[timtêl]], [[barûdox]], [[tentêl]], [[hal]], [[weziyet]] #* {{bêmînak|tr}} # [[derawa]], [[derqel]] #* {{bêmînak|tr}} l5r44cpiv4q7qde9ww23dxuczxkhmp7 misil 0 24841 6341904 6341778 2026-08-24T12:47:33Z Wikihez 7344 /* Hoker */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6341904 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[mîna]], [[wek]], [[şibî]], [[nola]], [[fena]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Zû gihiştin, çûne dora Mekkehê, <br>ket'ne bûsan '''mislê''' ava bingehê”.}} ==== Formên alternatîv ==== * [[misl]] ==== Etîmolojî ==== Ji {{deyn|ar|ku}}, têkildarî [[mesele]] û [[mîsal]] == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[hinkûf]], [[dirûv]], [[manend]] #* {{bêmînak|tr}} # [[tibab]], [[mêjer]] #* {{bêmînak|tr}} # [[car]], [[qat]] #: ''on misli daha büyük deh car hin jê mezintir'' lvrh0ryoay51xoc6x7c2xu9201ko2yc palas 0 34922 6342248 6337440 2026-08-24T22:06:36Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342248 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|palace}}, {{W+|en|colonnade|guman=erê}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # palas #* {{bênimûne|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} ==== Etîmolojî ==== {{bêetîmolojî|tr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} {{werger-bin}} i0ikeenjlhbumtlsjs6pbbg6jhbl73i 6342249 6342248 2026-08-24T22:08:48Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6342249 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|palace}}, {{W+|en|colonnade|guman=erê}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # palas #* {{bênimûne|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} ==== Etîmolojî ==== {{bêetîmolojî|tr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} {{werger-bin}} c3vi7lwcr25jrny0y48issxdy7f298k 6342252 6342249 2026-08-24T22:16:48Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342252 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar=Ronahî|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|palace}}, {{W+|en|colonnade|guman=erê}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # palas #* {{bênimûne|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} ==== Etîmolojî ==== {{bêetîmolojî|tr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} {{werger-bin}} nqinx77jaoga3u3i1cqv5tflw4fypye 6342253 6342252 2026-08-24T22:17:13Z Wikihez 7344 Guhartoya [[Special:Diff/6342252|6342252]] yê [[Special:Contributions/Wikihez|Wikihez]] ([[User talk:Wikihez|gotûbêj]]) şûnde kir 6342253 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|palace}}, {{W+|en|colonnade|guman=erê}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # palas #* {{bênimûne|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} ==== Etîmolojî ==== {{bêetîmolojî|tr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} {{werger-bin}} c3vi7lwcr25jrny0y48issxdy7f298k 6342254 6342253 2026-08-24T22:18:21Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342254 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|en}}: {{W+|en|palace}}, {{W+|en|colonnade|guman=erê}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar=Ronahî|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # palas #* {{bênimûne|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} ==== Etîmolojî ==== {{bêetîmolojî|tr}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} {{werger-bin}} jcldt25hoa6p6twjrs0dxy3p9dc2keh 6342255 6342254 2026-08-24T22:19:25Z Wikihez 7344 6342255 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar=Ronahî|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|palace}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} * {{Z|en}}: {{W+|en|palace}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|palas|id=seray}} {{îzah|[[seray]]}} #* {{bênimûne|tr}} ==== Etîmolojî ==== Ji {{deyn|fr|tr|palace}}. === Rengdêr === {{rengdêr|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} iv2pjr938qu5nfvsgprkza80fbwbxsh 6342256 6342255 2026-08-24T22:20:04Z Wikihez 7344 /* Navdêr 1 */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342256 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar={{w|Ronahî (kovar)|Ronahî}}|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|palace}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} * {{Z|en}}: {{W+|en|palace}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|palas|id=seray}} {{îzah|[[seray]]}} #* {{bênimûne|tr}} ==== Etîmolojî ==== Ji {{deyn|fr|tr|palace}}. === Rengdêr === {{rengdêr|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} imhgdom7o8ozimuacd2wavfkz6ld6hi 6342257 6342256 2026-08-24T22:20:15Z Wikihez 7344 /* Navdêr 1 */ 6342257 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar={{w|Ronahî (kovar)|Ronahî}}|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|palace}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} * {{Z|en}}: {{W+|en|palace}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|palas|id=seray}} {{îzah|[[seray]]}} #* {{bênimûne|tr}} ==== Etîmolojî ==== Ji {{deyn|fr|tr|palace}}. === Rengdêr === {{rengdêr|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} a8771pihptzbswlb8xdexummuooxj09 6342259 6342257 2026-08-24T22:22:24Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342259 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar={{w|Ronahî (kovar)|Ronahî}}|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|palace}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} * {{Z|en}}: {{W+|en|palace}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|palas|id=seray}}, [[seray]] #* {{bênimûne|tr}} ==== Etîmolojî ==== Ji {{deyn|fr|tr|palace}}. === Rengdêr === {{rengdêr|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} e92e7l1xld4zqev5ur3c00k7bopn7r2 6342264 6342259 2026-08-24T22:29:29Z Wikihez 7344 /* Navdêr 1 */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342264 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr 1 === {{navdêr|ku|z=m}} # {{maneid|ku|merş}} [[merş|Merşek]] e ku ji [[hirî|hiriya]] bizinan hatiye ristin. #* {{J:Mem û Zîn:1692|jêgirtin=Zîn rabû we çûye xelweta xas<br />Tacdîn ne ma ne cil ne '''palas'''<br />Esbab û tecemmul û defîne}} #* {{jêder-kitêb|ku|nivîskar=H. Şalçjan|sernav=Rêya teze, pyêsa ji sê perda|terciman=w:Heciyê Cindî|sal=1934|rûpel=5|jêgirtin=Li ser dîwarê malê û hundur malê ser şirîteke pêrêzî çend çil, '''palas''', kincik, paçik raxistine û her tişt tevî heve.}} #* {{jêder-kovar|ku|nivîskar=Emoyê Cilînî|sernav=Jin û Mêr|kovar={{w|Ronahî (kovar)|Ronahî}}|hejmar=24|sal=1944|rûpel=468|jêgirtin=Zilam şûr û mirtalê xwe hilanî, pîrek jî lihêf û '''palasa''' xwe li pişta xwe kirin; birê ketin hatin welatê Mêrdinê, ser kaniya Emer axa.}} #* {{J:Ciwanmerd Kulek:Zemanekî li Sê Welatan|jêgirtin={{...}}berêvaran '''palasa''' xwe biavêta ber derî û li ser rûnişta,{{...}}}} #* {{jêder-websîte|ku|nivîskar=Abdulqadîr GOK|sernav=@Abdulka46195111|websîte=Twitter|url=https://x.com/Abdulka46195111/status/2089731192576672182|tarîx=2026-08-18|jêgirtin=Odeya me ya mêvana di sala 1980 de du tene '''palas''' û hival hebûn.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Fußmatte|f}} * {{Z|en}}: {{W+|en|sackcloth}}, {{W+|en|sacking}} * {{Z|tr}}: {{W+|tr|çul}} {{werger-bin}} === Navdêr 2 === {{navdêr|ku|z=m}} # [[koşk]], [[eywan]], [[seray]], [[qesr]], [[dîwan]], [[koçk]] #* {{bênimûne|ku}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== Ji {{deyn|fr|ku|palace}}. ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Palast|m}}, {{W+|de|Schloss|n}} * {{Z|en}}: {{W+|en|palace}} * {{Z|tr}}: {{W+|tr|saray}}, {{W+|tr|savan}}, {{W+|tr|palas}} {{werger-bin}} == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{g|ku|palas|id=seray}}, [[seray]] #* {{bênimûne|tr}} ==== Etîmolojî ==== Ji {{deyn|fr|tr|palace}}. === Rengdêr === {{rengdêr|tr}} # [[hêsan]], [[rihet]] #* {{bênimûne|tr}} 4x9kpvde22shb1wnvg7clmwbw1b6mup hergîz 0 41151 6342297 6134724 2026-08-24T23:17:28Z Şêr 1103 ipa 6342297 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[ticar]], [[qet]], [[hîç]], [[ticarî]], ne [[car]]ekê jî, ne [[ti]] [[car]]an #:''Ez hergîz te ji bîr nakim.'' (Tu dê herdem li bîra min bî.) # {{kontrol|rêz=erê|[[yekcar]]}} ==== Dijmane ==== * [[herdem]] * [[hergav]] * [[hertim]] ==== Têkildar ==== * [[carine]] * [[car-car]] ==== Ji wêjeyê ==== * {{jêder|ku|jêgirtin=Mirovê ku bi regezê xwe bi wî cûnê berpirsiyê ve girêdayî cihê daxê ye nekare hergîz rizgar bibe ji nişteyê efsaneyên têkel bi rûdanên rasteqîne di qunaxên dîrokî yên ciyawaz de, herweha rasteqîniya kesayetiyan jî yên ku di rojgara me de mîna qehreman yan pêşrew yan pêşewa dihên li bîr û qelem dan.|Sebrî Silêvanî: ''Medya Erebî'', Avestakurd.net, 2003, jêwergirtin 10/2011}} ==== Etîmolojî ==== Ji {{deyn|fa|ku|هرگز|tr=hergiz}}, ji {{mîr|pal|fa|tr=hegriz|w=yekcar jî}}, ji {{q|pal|tr=hegr|w=yekcar}} + {{q|pal|tr=-iz|w=jî, -iş}}, {{hv|peo|𐏃𐎣𐎼𐎶𐎨𐎡𐎹|tr=heker-mçî|w=yekcar jî}}, {{ji|ine-pro|ku|*sm̥-kr̥t|w=carekê, yekcar}}. Bide ber {{q|ku|yekcar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|nooit}} * {{Z|sq}}: {{W|sq|asnjëherë}}, {{W|sq|kurrë}} * {{Z|de}}: {{W|de|nie}}, {{W|de|niemals}}, {{W|de|nimmer}} * {{Z|be}}: {{W|be|ніразу}} * {{Z|da}}: {{W|da|aldrig}} * {{Z|id}}: {{W|id|tidak pernah}} * {{Z|eo}}: {{W|eo|neniam}} * {{Z|fo}}: {{W|fo|ongantíð}} * {{Z|fi}}: {{W|fi|koskaan}}, {{W|fi|ikinä}}, {{W|fi|milloinkaan}} * {{Z|fr}}: {{W|fr|jamais}} * {{Z|fy}}: {{W|fy|nea}} * {{Z|nl}}: {{W|nl|nimmer}}, {{W|nl|nooit}} * {{Z|ang}}: {{W|ang|næfre}} * {{Z|en}}: {{W|en|never}}, {{W|en|nohow|guman=erê}} * {{Z|it}}: {{W|it|mai}}, {{W|it|non … mai}} * {{Z|ca}}: {{W|ca|mai}} * {{Z|la}}: {{W|la|nunquam}} * {{Z|yua}}: {{W|yua|mixbik’in}} * {{Z|hu}}: {{W|hu|soha}} * {{Z|no}}: {{W|no|aldri}} * {{Z|pap}}: {{W|pap|hamas}}, {{W|pap|nunka}} * {{Z|pl}}: {{W|pl|nigdy}} * {{Z|pt}}: {{W|pt|jamais}}, {{W|pt|não … nunca}}, {{W|pt|nunca}}, {{W|pt|em tempo algum}} * {{Z|ro}}: {{W|ro|niciodată}} * {{Z|srn}}: {{W|srn|nemre}}, {{W|srn|noyti}} * {{Z|es}}: {{W|es|jamás}}, {{W|es|nunca}} * {{Z|sv}}: {{W|sv|aldrig}}, {{W-|sv|inte någon gång}} * {{Z|tr}}: {{W|tr|asla}}, {{W|tr|hiç bir zaman|guman=erê}}, {{W|tr|katiyen|guman=erê}} {{werger-bin}} m5dozrps0p2zbsw1ryl80n2g4eclb4z 6342314 6342297 2026-08-24T23:41:19Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342314 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Hoker === {{hoker|ku}} # [[ticar]], [[qet]], [[hîç]], [[ticarî]], ne [[car]]ekê jî, ne [[ti]] [[car]]an #:''Ez hergîz te ji bîr nakim.'' (Tu dê herdem li bîra min bî.) # {{kontrol|rêz=erê|[[yekcar]]}} ==== Ji wêjeyê ==== * {{jêder|ku|jêgirtin=Mirovê ku bi regezê xwe bi wî cûnê berpirsiyê ve girêdayî cihê daxê ye nekare hergîz rizgar bibe ji nişteyê efsaneyên têkel bi rûdanên rasteqîne di qunaxên dîrokî yên ciyawaz de, herweha rasteqîniya kesayetiyan jî yên ku di rojgara me de mîna qehreman yan pêşrew yan pêşewa dihên li bîr û qelem dan.|Sebrî Silêvanî: ''Medya Erebî'', Avestakurd.net, 2003, jêwergirtin 10/2011}} ==== Dijmane ==== * [[herdem]] * [[hergav]] * [[hertim]] ==== Têkildar ==== * [[carine]] * [[car-car]] ==== Etîmolojî ==== Ji {{deyn|fa|ku|هرگز|tr=hergiz}}, ji {{mîr|pal|fa|tr=hegriz|w=yekcar jî}}, ji {{q|pal|tr=hegr|w=yekcar}} + {{q|pal|tr=-iz|w=jî, -iş}}, {{hv|peo|𐏃𐎣𐎼𐎶𐎨𐎡𐎹|tr=heker-mçî|w=yekcar jî}}, {{ji|ine-pro|ku|*sm̥-kr̥t|w=carekê, yekcar}}. Bide ber {{q|ku|yekcar}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W|af|nooit}} * {{Z|sq}}: {{W|sq|asnjëherë}}, {{W|sq|kurrë}} * {{Z|de}}: {{W|de|nie}}, {{W|de|niemals}}, {{W|de|nimmer}} * {{Z|be}}: {{W|be|ніразу}} * {{Z|da}}: {{W|da|aldrig}} * {{Z|id}}: {{W|id|tidak pernah}} * {{Z|eo}}: {{W|eo|neniam}} * {{Z|fo}}: {{W|fo|ongantíð}} * {{Z|fi}}: {{W|fi|koskaan}}, {{W|fi|ikinä}}, {{W|fi|milloinkaan}} * {{Z|fr}}: {{W|fr|jamais}} * {{Z|fy}}: {{W|fy|nea}} * {{Z|nl}}: {{W|nl|nimmer}}, {{W|nl|nooit}} * {{Z|ang}}: {{W|ang|næfre}} * {{Z|en}}: {{W|en|never}}, {{W|en|nohow|guman=erê}} * {{Z|it}}: {{W|it|mai}}, {{W|it|non … mai}} * {{Z|ca}}: {{W|ca|mai}} * {{Z|la}}: {{W|la|nunquam}} * {{Z|yua}}: {{W|yua|mixbik’in}} * {{Z|hu}}: {{W|hu|soha}} * {{Z|no}}: {{W|no|aldri}} * {{Z|pap}}: {{W|pap|hamas}}, {{W|pap|nunka}} * {{Z|pl}}: {{W|pl|nigdy}} * {{Z|pt}}: {{W|pt|jamais}}, {{W|pt|não … nunca}}, {{W|pt|nunca}}, {{W|pt|em tempo algum}} * {{Z|ro}}: {{W|ro|niciodată}} * {{Z|srn}}: {{W|srn|nemre}}, {{W|srn|noyti}} * {{Z|es}}: {{W|es|jamás}}, {{W|es|nunca}} * {{Z|sv}}: {{W|sv|aldrig}}, {{W-|sv|inte någon gång}} * {{Z|tr}}: {{W|tr|asla}}, {{W|tr|hiç bir zaman|guman=erê}}, {{W|tr|katiyen|guman=erê}} {{werger-bin}} bm2lbzodt4bjtn6m07noaa9o4b46054 ase 0 44229 6341913 5913877 2026-08-24T12:55:41Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341913 wikitext text/x-wiki == {{ziman|fi}} == === Navdêr === {{navdêr|fi}} # [[çek]], [[sîleh]] #* {{bêmînak|fi}} ==== Bide ber ==== * [[asê]] ==== Jê ==== * [[aseellinen]] * [[aseeton]] * [[aseistaa]] * [[aseistettu]] == {{ziman|lij}} == === Navdêr === {{navdêr|lij}} # {{mijar|lij|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|lij}} === Çavkanî === {{rûpela wergerê|lij|ker}} == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=n}} # {{mijar|ca|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|ca}} === Çavkanî === {{rûpela wergerê|ca|ker}} == {{ziman|oc}} == === Navdêr === {{navdêr|oc}} # {{mijar|oc|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|oc}} === Çavkanî === {{rûpela wergerê|oc|ker}} 8b9ttmufx3lmjp9754p333nekg7tknd 6341972 6341913 2026-08-24T12:58:43Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341972 wikitext text/x-wiki == {{ziman|fi}} == === Navdêr === {{navdêr|fi}} # [[çek]], [[sîleh]] #* {{bêmînak|fi}} ==== Bide ber ==== * [[asê]] ==== Jê ==== * [[aseellinen]] * [[aseeton]] * [[aseistaa]] * [[aseistettu]] == {{ziman|lij}} == === Navdêr === {{navdêr|lij}} # {{mijar|lij|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|lij}} === Çavkanî === {{rûpela wergerê|lij|ker}} == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=n}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|ca}} === Çavkanî === {{rûpela wergerê|ca|ker}} == {{ziman|oc}} == === Navdêr === {{navdêr|oc}} # {{mijar|oc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|oc}} === Çavkanî === {{rûpela wergerê|oc|ker}} 6v4x16poqfuz1jnfizux4dstfa8q4nm 6342165 6341972 2026-08-24T13:41:08Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342165 wikitext text/x-wiki == {{ziman|fi}} == === Navdêr === {{navdêr|fi}} # [[çek]], [[sîleh]] #* {{bêmînak|fi}} ==== Jê ==== * [[aseellinen]] * [[aseeton]] * [[aseistaa]] * [[aseistettu]] ==== Bide ber ==== * [[asê]] == {{ziman|lij}} == === Navdêr === {{navdêr|lij}} # {{mijar|lij|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|lij}} === Çavkanî === {{rûpela wergerê|lij|ker}} == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=n}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|ca}} === Çavkanî === {{rûpela wergerê|ca|ker}} == {{ziman|oc}} == === Navdêr === {{navdêr|oc}} # {{mijar|oc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bêmînak|oc}} === Çavkanî === {{rûpela wergerê|oc|ker}} 1jb7agcwhu92lu6rfaavm069gpkm1xi zulf 0 46085 6341906 6135622 2026-08-24T12:49:58Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341906 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[bisk]], [[kezî]], [[pirç]], [[por]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Xatûn dibêje bavêj [[xeyal]]an,<br>Were ser [[doşek]] û [[pal]]an,<br>Bihn ke [[zulf]] û [[xal]]an,<br>Law dibe [[zilf]]ê [[herîr]]e.}} ==== Bide ber ==== * [[zilif]] * [[zilf]] * [[zulif]] * [[zuluf]] ==== Etîmolojî ==== Ji {{deyn|fa|ku|زلف|tr=zulf}}. Di kurdî de tenê di zimanê [[helbestkî]] de peyda dibe. ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|زلف}}, {{W+|fa|گیسو}} * {{Z|en}}: {{W+|en|trespasser}}, {{W-|en|lock of hair}}, {{W-|en|tress of hair}} * {{Z|tr}}: {{W+|tr|zülüf}} {{werger-bin}} 7tx19t9hpjm2cgn93d6yii5ehilbenm 6342166 6341906 2026-08-24T13:41:11Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342166 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[bisk]], [[kezî]], [[pirç]], [[por]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Xatûn dibêje bavêj [[xeyal]]an,<br>Were ser [[doşek]] û [[pal]]an,<br>Bihn ke [[zulf]] û [[xal]]an,<br>Law dibe [[zilf]]ê [[herîr]]e.}} ==== Etîmolojî ==== Ji {{deyn|fa|ku|زلف|tr=zulf}}. Di kurdî de tenê di zimanê [[helbestkî]] de peyda dibe. ==== Bide ber ==== * [[zilif]] * [[zilf]] * [[zulif]] * [[zuluf]] ==== Werger ==== {{werger-ser}} * {{Z|fa}}: {{W+|fa|زلف}}, {{W+|fa|گیسو}} * {{Z|en}}: {{W+|en|trespasser}}, {{W-|en|lock of hair}}, {{W-|en|tress of hair}} * {{Z|tr}}: {{W+|tr|zülüf}} {{werger-bin}} d1i64d1s000je2or5q076mmhmxxmff3 sosîs 0 47791 6342562 6326693 2026-08-25T11:13:45Z Şêr 1103 ipa 6342562 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === [[Wêne:Kielbasa7.jpg|thumb|çend sosîs]] {{navdêr|ku|z=m}} # [[xwarin|Xwarineke]] [[dirêj]] û [[balolk]] e û ji [[goşt]]ê [[hêrayî]] û hin [[berhem]]ên din hatiye çêkirin. #* {{bêmînak|ku}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Jê ==== * [[sosîsk]] ==== Etîmolojî ==== Ji {{ji|fr|ku|saucisse}}. ==== Werger ==== {{werger-ser}} * {{Z|af}}: {{W+|af|wors}} * {{Z|de}}: {{W+|de|Wurst|f}}, {{W+|de|Würstchen|n}} * {{Z|cs}}: {{W+|cs|párek}}, {{W+|cs|klobása}}, {{W+|cs|jitrnice}} * {{Z|zh}}: {{W+|zh|香腸}}, [[香肠]] (xiāngcháng) * {{Z|da}}: {{W+|da|pølse}} * {{Z|ar}}: [[سجق]] (sucuq) * {{Z|eo}}: {{W+|eo|kolbaso}} * {{Z|fo}}: {{W-|fo|pylsa}} * {{Z|fi}}: {{W+|fi|makkara}} * {{Z|fr}}: {{W+|fr|saucisse}} * {{Z|fy}}: {{W-|fy|woarst}} * {{Z|nl}}: {{W+|nl|beuling}}, {{W+|nl|worst}} * {{Z|en}}: {{W+|en|sausage}} * {{Z|it}}: {{W+|it|salsiccia}} * {{Z|is}}: {{W+|is|pylsa}} * {{Z|ja}}: [[ソーセージ]] (sōsēji) * {{Z|ca}}: {{W+|ca|botifarra}} * {{Z|ko}}: [[소시지]] (sosiji) * {{Z|lv}}: {{W-|lv|desa|f}} * {{Z|hu}}: {{W+|hu|kolbász}} * {{Z|no}}: {{W+|no|pølse}} * {{Z|pap}}: {{W-|pap|wòrs}}, {{W-|pap|wòrst}} * {{Z|pl}}: {{W+|pl|kiełbasa}} * {{Z|pt}}: {{W+|pt|salsicha}} * {{Z|ru}}: {{W+|ru|колбаса}} * {{Z|sh}}: {{W+|sh|kobasica|f}} * {{Z|sh}}: *: Kirîlî: [[кобасица]] {{mê}} *: Latînî: {{W-|la|kobasica|f}} * {{Z|es}}: {{W+|es|embutido}} * {{Z|sv}}: {{W+|sv|korv}} * {{Z|tr}}: {{W+|tr|sosis}} * {{Z|zu}}: {{W+|zu|isositshi}} {{werger-bin}} tt1s5x7zlhakn5zsstld1bdwaw2cfx7 danan 0 51379 6341911 6304563 2026-08-24T12:55:34Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341911 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/dɑːˈnɑːn/}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|danan|form=negerguhêz|niha=în|borî=anî|pêşgir=da}} {{lêker|ku|c=gh}} # {{bnr2|danîn}} ==== Bi alfabeyên din ==== * {{ku-ar|دانان}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|ablegen}}, {{W+|de|anpflanzen}}, {{W+|de|hinstellen}}, {{W+|de|pflanzen}} * {{Z|ar}}: {{W-|ar|الإلقاء|guman=erê}}, {{W-|ar|الإنشاء|guman=erê}}, {{W-|ar|تألیـــف|guman=erê}} * {{Z|fa}}: {{W+|fa|گذاشتن}}, {{W+|fa|فرونشستن}}, {{W+|fa|ترک کردن}} * {{Z|en}}: {{W+|en|deploy}}, {{W+|en|comportment|guman=erê}}, {{W+|en|compose|guman=erê}}, {{W+|en|composition|guman=erê}}, {{W+|en|devotement|guman=erê}}, {{W+|en|emplacement|guman=erê}}, {{W+|en|evolve|guman=erê}}, {{W+|en|founding|guman=erê}}, {{W+|en|taxying|guman=erê}}, {{W+|en|emplace|guman=erê}}, {{W+|en|imposition|guman=erê}}, {{W+|en|put down|guman=erê}}, {{W+|en|put together|guman=erê}}, {{W+|en|putting|guman=erê}}, {{W+|en|putting down|guman=erê}}, {{W+|en|set down|guman=erê}}, {{W+|en|situating|guman=erê}}, {{W+|en|stick down|guman=erê}}, {{W+|en|subside|guman=erê}} * {{Z|tr}}: {{W+|tr|dikmek}}, {{W+|tr|iniş}}, {{W-|tr|fidan dikmek}} {{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}} {{werger-bin}} == {{ziman|aa}} == === Navdêr === {{navdêr|aa|danán|z=n}} # {{mijar|aa|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|aa}} === Çavkanî === {{rûpela wergerê|aa|ker}} qgpwjyooq41al6oqtkqqofy4xj7v65s 6341959 6341911 2026-08-24T12:58:14Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341959 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/dɑːˈnɑːn/}} * {{ku-kîte}} === Lêker === {{ku-tewîn-lk|danan|form=negerguhêz|niha=în|borî=anî|pêşgir=da}} {{lêker|ku|c=gh}} # {{bnr2|danîn}} ==== Bi alfabeyên din ==== * {{ku-ar|دانان}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|ablegen}}, {{W+|de|anpflanzen}}, {{W+|de|hinstellen}}, {{W+|de|pflanzen}} * {{Z|ar}}: {{W-|ar|الإلقاء|guman=erê}}, {{W-|ar|الإنشاء|guman=erê}}, {{W-|ar|تألیـــف|guman=erê}} * {{Z|fa}}: {{W+|fa|گذاشتن}}, {{W+|fa|فرونشستن}}, {{W+|fa|ترک کردن}} * {{Z|en}}: {{W+|en|deploy}}, {{W+|en|comportment|guman=erê}}, {{W+|en|compose|guman=erê}}, {{W+|en|composition|guman=erê}}, {{W+|en|devotement|guman=erê}}, {{W+|en|emplacement|guman=erê}}, {{W+|en|evolve|guman=erê}}, {{W+|en|founding|guman=erê}}, {{W+|en|taxying|guman=erê}}, {{W+|en|emplace|guman=erê}}, {{W+|en|imposition|guman=erê}}, {{W+|en|put down|guman=erê}}, {{W+|en|put together|guman=erê}}, {{W+|en|putting|guman=erê}}, {{W+|en|putting down|guman=erê}}, {{W+|en|set down|guman=erê}}, {{W+|en|situating|guman=erê}}, {{W+|en|stick down|guman=erê}}, {{W+|en|subside|guman=erê}} * {{Z|tr}}: {{W+|tr|dikmek}}, {{W+|tr|iniş}}, {{W-|tr|fidan dikmek}} {{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}} {{werger-bin}} == {{ziman|aa}} == === Navdêr === {{navdêr|aa|danán|z=n}} # {{mijar|aa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} #* {{bênimûne|aa}} === Çavkanî === {{rûpela wergerê|aa|ker}} bqwz6to21hw06ezr1khxffdcp0cvi9t cadû 0 52716 6342194 6339495 2026-08-24T18:49:19Z Wikihez 7344 Guhartoya [[Special:Diff/6129049|6129049]] yê [[Special:Contributions/~2025-42872-61|~2025-42872-61]] ([[User talk:~2025-42872-61|gotûbêj]]) şûnde kir 6342194 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/d͡ʒʌːˈduː/}} ** (''[[rojhilatî]]'') {{IPA|ku|/d͡ʒʌːˈdʉː/}} * {{ku-kîte}} === Navdêr === [[Wêne:Veringenstadt Denkmal Anna Bader.jpg|thumb|250px|Cadûyek]] {{navdêr|ku|z=m}} # [[pîrebok|Pîrebok]], [[pîrhevok]], [[pîrevok]], [[pîretewt]], [[ecûz]], [[pîrhebok]], [[pîrelik]], [[pîrejin]]ên [[sihirbaz]]. #* {{bêmînak|ku}} # [[pîrejin|Pîrejinên]] [[kirêt]] yan [[cirnexweş]], [[pitpito]]. #* {{bêmînak|ku}} ==== Ji wêjeya klasîk ==== * {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=Zulfan ji ber cotê esed<br />Sehharê cohtê '''cadûyan'''<br>Îro ji remza ebrûyan}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Bi alfabeyên din ==== * {{ku-ar|جادوو}} ==== Jê ==== {{stûn| * [[cadûtî]] * [[cadûyane]] * [[cadûyî]] * [[cadûyîtî]] }} ==== Etîmolojî ==== Ji {{ji|ira-pro|ku|*yatu-}}, [[hevreh]]a avestayî ''yatu-'', sanskrîtî [[यातु]] (yatû), pehlewî ''catû'', belûçî {{g|bal|جاتو|tr=catû}} û {{g|bal|جادو|tr=cadû}}, farisî {{g|fa|جادو|tr=cadû}}, soranî {{g|ckb|جادوو|tr=cadû}}. Bo hin nimûneyên din jî, ku tê de "y" ya îraniya kevn di îraniya nû de dibe "c" binere: [[ciwan]], [[cejn]], [[cihû]]. [[Cadı]] ya tirkî ji zimanekî îranî hatiye wergirtin. ==== Werger ==== {{werger-ser}} * {{Z|ab}}: {{W-|ab|арупап}} * {{Z|ady}}: {{W-|ady|нэгъучӏыцэ}}, {{W-|ady|уды}} * {{Z|af}}: {{W-|af|heks}} * {{Z|sq}}: {{W+|sq|yshtëse|m}} * {{Z|goh}}: {{W-|goh|hagzissa|m}} * {{Z|gml}}: {{W-|gml|eteninne|m}} * {{Z|pdc}}: {{W-|pdc|Hex|m}} * {{Z|de}}: {{W+|de|Hexe|m}}, {{W-|de|Gabelreiterin|m}}, {{W+|de|Hexer|n}}, {{W+|de|Hexenmeister|n}} * {{Z|arc}}: {{W-|arc|חרשתא|m}} * {{Z|ast}}: {{W+|ast|bruxa}} * {{Z|az}}: {{W+|az|cadugər}} * {{Z|eu}}: {{W-|eu|sorgin}}, {{W-|eu|belagile}} * {{Z|be}}: {{W-|be|ве́дзьма|m}}, {{W-|be|чараўні́ца|m}} * {{Z|br}}: {{W+|br|gwrac'h|m}}, {{W+|br|sorserez}} * {{Z|bg}}: {{W+|bg|ве́щица|m}}, {{W+|bg|вълше́бница|m}}, {{W+|bg|магьо́сница|m}}, {{W+|bg|чароде́йка|m}} * {{Z|my}}: {{W+|my|ရွာသူ}}, {{W+|my|စုန်း}}, {{W+|my|ကဝေ}} * {{Z|ccc}}: {{W-|ccc|shikechpalo}} * {{Z|ce}}: {{W-|ce|гӏам}}, {{W-|ce|алмаз}}, {{W-|ce|ешап}} * {{Z|cs}}: {{W+|cs|čarodějnice|m}} * {{Z|ny}}: {{W-|ny|mfiti|c1|c2}} * {{Z|zh}}: *: {{Z|cmn}}: {{W+|cmn|巫|tr=wū}}, {{W+|cmn|巫婆|tr=wūpó}}, {{W+|cmn|巫人|tr=wūrén}}, {{W+|cmn|女巫|tr=nǚwū}}, {{W-|cmn|神婆|tr=shénpó}}, {{W+|cmn|魔女|tr=mónǚ}}, {{W+|cmn|女妖|tr=nǚyāo}}, {{W-|cmn|師婆|tr=shīpó}} *: {{Z|nan}}: {{W-|nan|神姐|tr=sîn-chiá}} * {{Z|da}}: {{W-|da|heks|g}} * {{Z|egl}}: {{W-|egl|stria|m}}, {{W-|egl|strìa|m}} * {{Z|id}}: {{W+|id|ahli sihir}}, {{W-|id|penyihir}} * {{Z|ar}}: {{W-|ar|سَاحِرَة|m}} * {{Z|hy}}: {{W+|hy|կախարդ}}, {{W+|hy|վհուկ}} *: {{Z|xcl}}: {{W-|xcl|վհուկ}}, {{W-|xcl|հմայք}} * {{Z|eo}}: {{W-|eo|sorĉistino}} * {{Z|et}}: {{W-|et|nõid}} * {{Z|fa}}: {{W+|fa|ساحره|tr=sâhare}} * {{Z|fo}}: {{W-|fo|gandakelling|m}}, {{W-|fo|gívur|m}} * {{Z|fi}}: {{W+|fi|noita}} * {{Z|fr}}: {{W+|fr|sorcière|m}}, {{W+|fr|stryge|m}} * {{Z|fur}}: {{W-|fur|strie|m}} * {{Z|frr}}: {{W-|frr|Gögeler|g}} * {{Z|stq}}: {{W-|stq|Häkse|m}} * {{Z|fy}}: {{W-|fy|tsjoenster}} * {{Z|gd}}: {{W-|gd|ban-draoidh|m}}, {{W-|gd|buidseach|m}}, {{W-|gd|bana-bhuidseach|m}} * {{Z|gl}}: {{W+|gl|meiga|m}}, {{W+|gl|bruxa|m}}, {{W-|gl|feiticeira|m}}, {{W-|gl|saga|m}}, {{W-|gl|bieiteira|m}}, {{W-|gl|fada|m}}, {{W+|gl|lurpia|m}}, {{W-|gl|antaruxa|m}}, {{W-|gl|sursuncorda|m}}, {{W-|gl|bencedeira|m}}, {{W-|gl|croucha|m}}, {{W-|gl|vedoreira|m}}, {{W-|gl|chamorra|m}}, {{W-|gl|distria|m}}, {{W-|gl|xugota|m}}, {{W-|gl|nubeira|m}} * {{Z|gu}}: {{W-|gu|વિચ}}, {{W-|gu|ચૂડેલ}} * {{Z|ka}}: {{W-|ka|გრძნეული}}, {{W-|ka|ჯადოქარი}}, {{W-|ka|კუდიანი}} * {{Z|ht}}: {{W-|ht|sòsyè}} * {{Z|hi}}: {{W+|hi|चुड़ैल|m}}, {{W-|hi|जादूगरनी|m}}, {{W+|hi|डाइन|m}} * {{Z|hil}}: {{W-|hil|bahoy}} * {{Z|nl}}: {{W+|nl|heks|m}}, {{W+|nl|kol|m}}, {{W+|nl|tovenares|m}}, {{W+|nl|mare|m}} * {{Z|hrx}}: {{W-|hrx|Hex|m}} * {{Z|he}}: {{W-|he|מְכַשֵּׁפָה|m|tr=mekhashefá}} * {{Z|ang}}: {{W-|ang|hægtesse|m}}, {{W-|ang|wiċċe|m}}, {{W-|ang|wiċċa|n}} * {{Z|enm}}: {{W-|enm|wicche}} * {{Z|en}}: {{W+|en|witch}} * {{Z|ga}}: {{W+|ga|cailleach|m}}, {{W-|ga|bean Ultach|m}}, {{W-|ga|cailleach Ultach|n}}, {{W-|ga|amaid|m}}, {{W-|ga|cailleach feasa|m}}, {{W-|ga|seanchailleach|m}} *: {{Z|sga}}: {{W-|sga|badb|m}}, {{W-|sga|ammait|m}} * {{Z|it}}: {{W+|it|strega|m}}, {{W+|it|fattucchiera|m}}, {{W+|it|versiera|m}}, {{W+|it|maliarda|m}}, {{W+|it|saga|m}} * {{Z|is}}: {{W-|is|galdrakerling|m}}, {{W+|is|norn|m}} * {{Z|ja}}: {{W+|ja|魔女|tr=まじょ majo}} * {{Z|kbd}}: {{W-|kbd|уд}} * {{Z|kl}}: {{W-|kl|ilisiitsoq}}, {{W-|kl|kussuk}} * {{Z|kn}}: {{W+|kn|ಮಾಟಗಾತಿ}}, {{W+|kn|ಮಾಂತ್ರಿಕ ಸ್ತ್ರೀ}}, {{W+|kn|ಮಾಯಗಾತಿ}} * {{Z|krc}}: {{W-|krc|обур}} * {{Z|krl}}: {{W-|krl|noita}} * {{Z|ca}}: {{W+|ca|bruixa|m}} * {{Z|qu}}: {{W-|qu|layqa}} * {{Z|ky}}: {{W+|ky|желмогуз}} * {{Z|ko}}: {{W+|ko|무당}}, {{W+|ko|마녀}} * {{Z|kw}}: {{W-|kw|gwragh|m}} * {{Z|co}}: {{W-|co|strega}}, {{W-|co|sdreia}}, {{W-|co|maga}}, {{W-|co|moca}} * {{Z|mfe}}: {{W-|mfe|churel}}, {{W-|mfe|sorsier}} * {{Z|ltg}}: {{W-|ltg|rogona}} * {{Z|la}}: {{W-|la|magus|n}}, {{W-|la|maga|m}}, {{W-|la|maleficus|n}}, {{W-|la|malefica|m}}, {{W-|la|venēficus|n}}, {{W-|la|venēfica|m}}, {{W+|la|fascināns|n|m}}, {{W-|la|fascinātor|n}}, {{W-|la|fascinātrīx|m}}, {{W+|la|sāgus|n}}, {{W-|la|sāga|m}}, {{W-|la|striga|m}}, {{W-|la|lamia|m}}, {{W-|la|pȳthōnissa|m}}, {{W+|la|strix|m}} * {{Z|lv}}: {{W+|lv|ragana|m}}, {{W-|lv|mačka|m}} * {{Z|lo}}: {{W-|lo|ແມ່​ມົດ}} * {{Z|li}}: {{W+|li|heks|m}} * {{Z|lt}}: {{W-|lt|ragana|m}} * {{Z|lmo}}: {{W-|lmo|stria|m}}, {{W-|lmo|strïon|n}} * {{Z|lb}}: {{W-|lb|Hex|m}} * {{Z|mk}}: {{W-|mk|вештерка|m}}, {{W-|mk|волшебничка|m}} * {{Z|mg}}: {{W+|mg|mpamosavy}} * {{Z|ml}}: {{W-|ml|മന്ത്രവാദം}} * {{Z|ms}}: {{W-|ms|ahli sihir}}, {{W-|ms|penyihir|}}, {{W+|ms|sahir|}} * {{Z|mt}}: {{W-|mt|saħħara}} * {{Z|gv}}: {{W-|gv|ben obbee|m}}, {{W-|gv|buitçh|m}}, {{W-|gv|caillagh|m}} * {{Z|mi}}: {{W-|mi|hinematarau}} * {{Z|hu}}: {{W+|hu|boszorka}}, {{W+|hu|boszorkány}}, {{W+|hu|bába}} * {{Z|nv}}: {{W-|nv|áńtʼį́į́hii}}, {{W-|nv|adiłgąshii}} * {{Z|nds}}: *: {{Z|nds-de}}: {{W-|nds-de|Hex|m}}, {{W-|nds-de|Wicker|n}}, {{W-|nds-de|Wickersch|m}}, {{W-|nds-de|Wickersche|m}}, {{W-|nds-de|Witsch|m}} * {{Z|nrf}}: {{W-|nrf|chorchiéthe|m}} * {{Z|non}}: {{W-|non|seiðkona|m}}, {{W-|non|vǫlva|m}}, {{W-|non|galdrakona|m}} * {{Z|no}}: *: {{Z|nb}}: {{W-|nb|heks|m|n}} *: {{Z|nn}}: {{W-|nn|trollkjerring|m}}, {{W-|nn|heks|m}} * {{Z|oc}}: {{W+|oc|masca|m}}, {{W+|oc|bruèissa|m}}, {{W+|oc|fachilhièra|m}}, {{W+|oc|fachinièra|m}} * {{Z|uz}}: {{W+|uz|jodugar}} * {{Z|pdt}}: {{W-|pdt|Hakjs|m}} * {{Z|pl}}: {{W+|pl|czarownica|m}}, {{W+|pl|wiedźma|m}}, {{W+|pl|jędza|m}}, {{W+|pl|heksa|m}} * {{Z|roa-opt}}: {{W-|roa-opt|sorteira|m}} * {{Z|pt}}: {{W+|pt|bruxa|m}}, {{W+|pt|estria|m}}, {{W-|pt|estrige|m}}, {{W+|pt|feiticeira|m}} * {{Z|kk}}: {{W-|kk|мыстан}}, {{W-|kk|жезтырнақ}} * {{Z|rm}}: {{W-|rm|stria}}, {{W-|rm|streia}} * {{Z|rom}}: {{W-|rom|ćovaxani|m}}, {{W-|rom|ćovali|m}}, {{W-|rom|drabarìca|m}}, {{W-|rom|drabarni|m}} *: {{Z|rml}}: {{W-|rml|čovaxani|m}}, {{W-|rml|čovaxanî|m}}, {{W-|rml|vjeďma|m}} *: {{Z|rmo}}: {{W-|rmo|čovaxani|m}}, {{W-|rmo|broška|m}}, {{W-|rmo|heksa|m}} *: {{Z|rmw}}: {{W-|rmw|čovexani|m}} * {{Z|ro}}: {{W+|ro|vrăjitoare|n}}, {{W+|ro|vrăjitor|n}} * {{Z|ru}}: {{W+|ru|ве́дьма|m}}, {{W+|ru|колду́нья|m}}, {{W+|ru|волше́бница}}, {{W+|ru|чароде́йка|m}} * {{Z|smj}}: {{W-|smj|guobas}} * {{Z|sat}}: {{W-|sat|ᱯᱷᱩᱠᱨᱤᱱ}} * {{Z|ceb}}: {{W-|ceb|mamamarang}}, {{W-|ceb|bruha}} * {{Z|sh}}: *: Kirîlî: {{W-|sh|вѐштица|m}}, {{W-|sh|вјѐштица|m}}, {{W-|sh|штри̏га|m}}, {{W-|sh|цо̀прница|m}} *: Latînî: {{W+|sh|vèštica|m}}, {{W+|sh|vjèštica|m}}, {{W+|sh|štrȉga|m}}, {{W+|sh|còprnica|m}} * {{Z|syc}}: {{W-|syc|ܚܪܫܬܐ|m}} * {{Z|sco}}: {{W-|sco|ell-woman}}, {{W-|sco|galdragon}}, {{W-|sco|gyre carline}}, {{W-|sco|hexie}}, {{W-|sco|sorceres}}, {{W-|sco|wancanny carlin}}, {{W-|sco|weird-woman}}, {{W-|sco|wise woman}}, {{W-|sco|wise wife}}, {{W-|sco|witch}}, {{W-|sco|witch-carline}}, {{W-|sco|witch-queen}}, {{W-|sco|witch-wife}} * {{Z|sk}}: {{W-|sk|čarodejnica|m}}, {{W+|sk|striga|m}}, {{W+|sk|bosorka|m}} * {{Z|sl}}: {{W+|sl|čarovnica|m}} * Sorbî: *: {{Z|dsb}}: {{W-|dsb|chódota|m}} *: {{Z|hsb}}: {{W-|hsb|chodojta|m}}, {{W-|hsb|kuzłarnča|m}} * {{Z|es}}: {{W+|es|bruja|m}}, {{W+|es|hechicera|m}}, {{W-|es|maga|m}} * {{Z|sux}}: {{W-|sux|𒊩𒈦𒈦|ts=mašmaš}} * {{Z|sw}}: {{W+|sw|mchawi|cm-wa}} * {{Z|sv}}: {{W+|sv|häxa|g}}, {{W+|sv|trollpacka|g}}, {{W-|sv|trollkvinna|g}} * {{Z|tg}}: {{W-|tg|ҷодугарзан}}, {{W-|tg|албастӣ}}, {{W-|tg|соҳира}} * {{Z|tl}}: {{W-|tl|mananagisama}}, {{W-|tl|mangkukulam}} * {{Z|ta}}: {{W-|ta|சூனியக்காரி}}, {{W+|ta|விரிச்சிகன்}} * {{Z|twf}}: {{W-|twf|còhəo’óna}} * {{Z|th}}: {{W-|th|แม่มด}} * {{Z|te}}: {{W-|te|మంత్రగత్తె}} * {{Z|tr}}: {{W+|tr|büyücü}}, {{W+|tr|sihirbaz}}, {{W+|tr|cadı}} * {{Z|tpi}}: {{W-|tpi|puripurimeri}}, {{W-|tpi|poisinmeri}}, {{W-|tpi|sanguma meri}} * {{Z|tn}}: {{W-|tn|moloi|c1}} * {{Z|udi}}: {{W-|udi|тӏатӏмер}}, {{W-|udi|куси}} * {{Z|ur}}: {{W-|ur|چڑیل|tr=cuṛail}} * {{Z|uk}}: {{W-|uk|ві́дьма|m}}, {{W-|uk|чарівни́ця|m}}, {{W-|uk|чаклу́нка|m}} * {{Z|vec}}: {{W+|vec|striga|m}} * {{Z|vep}}: {{W-|vep|noid}} * {{Z|vi}}: {{W+|vi|phù thuỷ}} * {{Z|vo}}: {{W+|vo|magivan}}, {{W-|vo|himagivan}}, {{W+|vo|jimagivan}} * {{Z|vor}}: {{W-|vor|nõid}} * {{Z|vot}}: {{W-|vot|nõitõ}} * {{Z|war}}: {{W-|war|barangan}} * {{Z|cy}}: {{W-|cy|dewines|m}}, {{W-|cy|gwrach}} * {{Z|wym}}: {{W-|wym|pyłwajs}} * {{Z|km}}: {{W+|km|មេមត់}}, {{W-|km|ឌាក៌នី}} * {{Z|xh}}: {{W-|xh|igqwirhakazi|c5|c6}} * {{Z|yi}}: {{W-|yi|מכשפֿה|m|tr=makhsheyfe}} * {{Z|el}}: {{W+|el|μάγισσα|m}} *: Kevn: {{W-|grc|φαρμακίς|m}} {{werger-bin}} :{{werger çavkanî|en|witch|beş=Ev qismê Wergerê|oldid=75822919}} 0h71rjd90mjip6whmzmj84ga3tx0a0m ده 0 61872 6342281 6234609 2026-08-24T22:47:57Z Wikihez 7344 /* Hoker */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342281 wikitext text/x-wiki {{bnr-h|دہ|دە|دٔہ|دٕہ}} == {{ziman|ku}} == === Hoker === {{hoker|ku|tr=-}} # {{ku-Latn|de}} == {{ziman|arz}} == === Cînav === {{cînav|arz|tr=da}} # {{g|ku|ev}} ([[yekjimar]], [[biker]]) == {{ziman|avd}} == === Daçek === {{daçek|avd|tr=de}} # {{g|ku|di ... de}} === Çavkanî === {{rûpela wergerê|avd|di ... de}} == {{ziman|fa}} == === Hejmar === {{hejmar|fa|tr=deh}} # [[deh]] === Navdêr === {{navdêr|fa|tr=dêh}} # [[gund]] === Rehekî lêkerê === {{reh|fa|tr=-deh-}} # {{rehê dema niha|fa|دادن}} ## [[-d-]], [[-de-]]. obdnll5jgip0soafry1xihak8wckwsa palace 0 95897 6342258 6086769 2026-08-24T22:20:57Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342258 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-palace.ogg|dever=DYA}} * {{deng|en|LL-Q1860 (eng)-Grendelkhan-palace.wav|Deng|dever=Connecticut, DYA}} === Navdêr === {{navdêr|en}} # [[seray]], [[koşk]], [[palas]] 4wg7sqg294uvfr4f2xy41sjzx9k4ezg asal 0 123970 6341916 6045360 2026-08-24T12:55:50Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341916 wikitext text/x-wiki == {{ziman|gd}} == === Navdêr === {{navdêr|gd|z=m}} # {{mijar|gd|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gd|ker}} == {{ziman|ga}} == === Bilêvkirin === * {{deng|ga|LL-Q9142 (gle)-Ériugena-asal.wav|Deng|dever=Îrland, QY}} === Navdêr === {{navdêr|ga|z=n}} # {{mijar|ga|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ga|ker}} == {{ziman|uz}} == === Navdêr === {{navdêr|uz}} # {{mijar|uz|xwarin}} {{g|ku|hingiv}}, {{g|ku|hingivîn}} === Çavkanî === {{rûpela wergerê|uz|hingiv}} == {{ziman|rom}} == === Lêker === {{lêker|rom}} # {{g|ku|kenîn}} == {{ziman|tr}} == === Rengdêr === {{rengdêr|tr}} # [[sereke]], [[bingehî]] == {{ziman|vec}} == === Navdêr === {{navdêr|vec}} # {{g|ku|pola}} === Çavkanî === {{rûpela wergerê|vec|pola}} pd2ywc79i5jt9zfl91f9f8a3v2fraq4 6341986 6341916 2026-08-24T12:59:13Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341986 wikitext text/x-wiki == {{ziman|gd}} == === Navdêr === {{navdêr|gd|z=m}} # {{mijar|gd|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gd|ker}} == {{ziman|ga}} == === Bilêvkirin === * {{deng|ga|LL-Q9142 (gle)-Ériugena-asal.wav|Deng|dever=Îrland, QY}} === Navdêr === {{navdêr|ga|z=n}} # {{mijar|ga|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ga|ker}} == {{ziman|uz}} == === Navdêr === {{navdêr|uz}} # {{mijar|uz|xwarin}} {{g|ku|hingiv}}, {{g|ku|hingivîn}} === Çavkanî === {{rûpela wergerê|uz|hingiv}} == {{ziman|rom}} == === Lêker === {{lêker|rom}} # {{g|ku|kenîn}} == {{ziman|tr}} == === Rengdêr === {{rengdêr|tr}} # [[sereke]], [[bingehî]] == {{ziman|vec}} == === Navdêr === {{navdêr|vec}} # {{g|ku|pola}} === Çavkanî === {{rûpela wergerê|vec|pola}} gg39ectck2celkcuq7zh8jyl3tr8sdq ezel 0 135682 6341915 6339654 2026-08-24T12:55:47Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341915 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|Îslam}} [[ebed]], [[bêdestpêk]], [[berî]] [[destpêk]]a [[gerdûn]]ê, [[berî]] [[hebûn]]a her tiştî: #* {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=Ellah sehergaha '''ezel'''<br>Zatê tecellaya xwe da<br>Nûra cemala lemyezel<br>Yelmûmê ’işqê şu`le da}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|y}} ==== Notên bikaranînê ==== {{agadarî}} Tenê di berhemên [[dînî]] û hinek helbestên [[klasîk]] de ==== Bi alfabeyên din ==== * {{ku-ar|ئەزەل}} ==== Etîmolojî ==== Ji {{deyn|ar|ku|أَزَلْ}} ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W+|ar|أَزَل|n}} * {{Z|fr}}: {{W+|fr|éternité|m}} * {{Z|en}}: {{W+|en|eternity}} {{werger-bin}} == {{ziman|fy}} == === Navdêr === {{navdêr|fy}} # {{mijar|fy|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fy|ker}} == {{ziman|nl}} == === Navdêr === {{navdêr|nl|z=n}} # {{mijar|nl|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nl|ker}} == {{ziman|dsb}} == === Navdêr === {{navdêr|dsb|z=n}} # {{mijar|dsb|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dsb|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-ezel.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # {{g|ku|ezel}}, [[ebed]], [[bêdestpêk]] ==== Etîmolojî ==== Ji {{deyn|ar|tr|أَزَلْ}} 8imh9eu44bdn9jxm9s6bvakml1khicu 6341982 6341915 2026-08-24T12:59:06Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341982 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # {{f|ku|Îslam}} [[ebed]], [[bêdestpêk]], [[berî]] [[destpêk]]a [[gerdûn]]ê, [[berî]] [[hebûn]]a her tiştî: #* {{J:Melayê Cizîrî:Dîwana Melayê Cizîrî|jêgirtin=Ellah sehergaha '''ezel'''<br>Zatê tecellaya xwe da<br>Nûra cemala lemyezel<br>Yelmûmê ’işqê şu`le da}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê|y}} ==== Notên bikaranînê ==== {{agadarî}} Tenê di berhemên [[dînî]] û hinek helbestên [[klasîk]] de ==== Bi alfabeyên din ==== * {{ku-ar|ئەزەل}} ==== Etîmolojî ==== Ji {{deyn|ar|ku|أَزَلْ}} ==== Werger ==== {{werger-ser}} * {{Z|ar}}: {{W+|ar|أَزَل|n}} * {{Z|fr}}: {{W+|fr|éternité|m}} * {{Z|en}}: {{W+|en|eternity}} {{werger-bin}} == {{ziman|fy}} == === Navdêr === {{navdêr|fy}} # {{mijar|fy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fy|ker}} == {{ziman|nl}} == === Navdêr === {{navdêr|nl|z=n}} # {{mijar|nl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nl|ker}} == {{ziman|dsb}} == === Navdêr === {{navdêr|dsb|z=n}} # {{mijar|dsb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dsb|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-ezel.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # {{g|ku|ezel}}, [[ebed]], [[bêdestpêk]] ==== Etîmolojî ==== Ji {{deyn|ar|tr|أَزَلْ}} 994r468liuj1bjeobp8xfv80rym855s eşek 0 135850 6341914 6075697 2026-08-24T12:55:43Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341914 wikitext text/x-wiki == {{ziman|gag}} == === Navdêr === {{navdêr|gag}} # {{mijar|gag|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gag|ker}} == {{ziman|crh}} == === Navdêr === {{navdêr|crh}} # {{mijar|crh|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|crh|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-eşek.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|guhandar}} [[ker]] (Aquus asinus) # [[çoçok]], [[çoço]] (di zimanê zarokan de) # {{f|tr|mecazî}} [[ker]] (ji bo kesê zir, serhişk û bêpîr û şerde) #: {{mk|tr|O eşeğin biri.|rêz=1|Ew kerekî dera hanê ye.}} # [[kerik]] (sêpaya ku mirov radibe sêrê û pê dîwar lê dike an jî didû) == {{ziman|tk}} == === Navdêr === {{navdêr|tk}} # {{mijar|tk|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tk|ker}} o66p80j0a77x0l561nxtseasnlix4m2 6341978 6341914 2026-08-24T12:58:57Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341978 wikitext text/x-wiki == {{ziman|gag}} == === Navdêr === {{navdêr|gag}} # {{mijar|gag|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gag|ker}} == {{ziman|crh}} == === Navdêr === {{navdêr|crh}} # {{mijar|crh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|crh|ker}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-eşek.wav|Deng|dever=}} === Navdêr === {{navdêr|tr}} # {{f|tr|guhandar}} [[ker]] (Aquus asinus) # [[çoçok]], [[çoço]] (di zimanê zarokan de) # {{f|tr|mecazî}} [[ker]] (ji bo kesê zir, serhişk û bêpîr û şerde) #: {{mk|tr|O eşeğin biri.|rêz=1|Ew kerekî dera hanê ye.}} # [[kerik]] (sêpaya ku mirov radibe sêrê û pê dîwar lê dike an jî didû) == {{ziman|tk}} == === Navdêr === {{navdêr|tk}} # {{mijar|tk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tk|ker}} f955ulyvdjt6wkfm3b7t23m4y5023hv nisyan 0 156757 6341891 6139309 2026-08-24T12:39:30Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341891 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[jibîrkirin]], [[bîrakirin]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ey [[şafî|şefî']]ê [[sahib]]ê alayê [[hemd]]<br>Min hene bêhed guneh, [[nisyan]] û [['emd]] }} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} c5g70n0a7eoedlhp85jhjgu3wjsxrop 6342167 6341891 2026-08-24T14:12:08Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6342167 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[jibîrkirin]], [[bîrakirin]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ey [[şafî|şefî'ê]] [[sahib]]ê alayê [[hemd]]<br>Min hene bêhed guneh, [[nisyan]] û [['emd]] }} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 9h4c2716473yetf7ybgn8ozhk4u7ajc 6342185 6342167 2026-08-24T14:46:51Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342185 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[jibîrkirin]], [[bîrakirin]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ey [[şafî|şefî'ê]] [[sahib]]ê alayê [[hemd]]<br>Min hene bêhed guneh, [[nisyan]] û [['emd]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} e86w1pw4pazzmzvujjsb7f7tbm8thax samur 0 161249 6341912 6046144 2026-08-24T12:55:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341912 wikitext text/x-wiki == {{ziman|dlm}} == === Navdêr === {{navdêr|dlm|z=n}} # {{mijar|dlm|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dlm|ker}} == {{ziman|fo}} == === Rengdêr === {{rengdêr|fo}} # {{g|ku|eynî}}, {{g|ku|heman}} === Çavkanî === {{rûpela wergerê|fo|eynî}} == {{ziman|is}} == === Rengdêr === {{rengdêr|is}} # {{g|ku|eynî}}, {{g|ku|heman}} === Çavkanî === {{rûpela wergerê|is|eynî}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-samur.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # seyê avî, [[samûr]] ([[Martes]] # [[samûrî]] (tiştê ji postê seyê avî) qhnxjkrxj1o8pux1qmglp3zxjvjmdqp 6341962 6341912 2026-08-24T12:58:18Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341962 wikitext text/x-wiki == {{ziman|dlm}} == === Navdêr === {{navdêr|dlm|z=n}} # {{mijar|dlm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dlm|ker}} == {{ziman|fo}} == === Rengdêr === {{rengdêr|fo}} # {{g|ku|eynî}}, {{g|ku|heman}} === Çavkanî === {{rûpela wergerê|fo|eynî}} == {{ziman|is}} == === Rengdêr === {{rengdêr|is}} # {{g|ku|eynî}}, {{g|ku|heman}} === Çavkanî === {{rûpela wergerê|is|eynî}} == {{ziman|tr}} == === Bilêvkirin === * {{deng|tr|LL-Q256 (tur)-ToprakM-samur.wav|Deng|dever=Îzmîr, Tirkiye}} === Navdêr === {{navdêr|tr}} # seyê avî, [[samûr]] ([[Martes]] # [[samûrî]] (tiştê ji postê seyê avî) rgbnmryzppkq00vhrro8qwheyelsimt ئابۆر 0 268231 6342351 5879173 2026-08-25T08:41:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342351 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :abor === Navdêr === {{navdêr|ckb}} # [[buhur]], [[rê]], [[rêk]] 8aunyugwp3ph7ghtkzmbcqxmjizahdu ئابروو 0 268232 6342349 5879172 2026-08-25T08:40:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342349 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :abrû === Navdêr === {{navdêr|ckb}} # [[şeref]], [[namûs]] # [[şerm]] gsouwl0qslemrw2exgnsruyb99ppujj ئادەی! 0 268233 6342359 5879181 2026-08-25T08:42:29Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342359 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :adey! === Baneşan === {{baneşan|ckb}} # de! dê! de bike! de haydî! haydî! yella! m1b0whngf4ng3g2iw68z0xrovj6gv3i ئافەریدە 0 268234 6342383 5879208 2026-08-25T08:46:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342383 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aferîde === Navdêr === {{navdêr|ckb}} # [[afirandî]], [[xuliqandî]] gojzq98rz6tyxip47hxi5ld77izltwn 6342420 6342383 2026-08-25T08:56:31Z Şêr 1103 her du jî dibin, lê bila rengdêr li vir bimîne 6342420 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aferîde === Rengdêr === {{rengdêr|ckb}} # [[afirandî]], [[xuliqandî]] 7rg4u8n34mkuic8ru142pedgwjav6ei ئافرەت 0 268236 6342382 5879207 2026-08-25T08:46:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342382 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :afret === Navdêr === {{navdêr|ckb}} # [[jin]], [[pîrek]] 5w9fs5f5njahzpz1yf0wmajngp2mloq ئاھەنگ 0 268238 6342405 5879229 2026-08-25T08:49:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342405 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aheng === Navdêr === {{navdêr|ckb}} # [[şahî]], [[cejn]] # [[aheng]], [[harmonî]] fkiq7n7565e96yzv9dfye3xhsqxxkwu ئاژاڵ 0 268239 6342363 5879187 2026-08-25T08:43:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342363 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ajall === Navdêr === {{navdêr|ckb}} # [[kewal]], [[sewal]], [[heywan]] 6zavpk0dl7m6kvqu3g8eudc87fc0sbs ئاژاوە 0 268240 6342364 5879188 2026-08-25T08:43:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342364 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ajawe === Navdêr === {{navdêr|ckb}} # [[têkoşîn]], [[tevger]], [[micadele]], [[dijberî]] 9fx8zrpr358ymxd8k1ntdrpxai3gqkc ئاکام 0 268241 6342386 5879211 2026-08-25T08:46:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342386 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :akam === Navdêr === {{navdêr|ckb}} # [[encam]], [[dawî]] 2c3oqh9k3har5qynufou3vkqzlm0ffh ئاکار 0 268242 6342385 5879210 2026-08-25T08:46:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342385 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :akar === Navdêr === {{navdêr|ckb}} # [[reftar]], [[tevger]], [[akar]], [[ rabûn-û-rûniştin]] miiua642nq9kryasb6mtdo4o45yqly6 ئال 0 268243 6342387 5879212 2026-08-25T08:46:59Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342387 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :al === Rengdêr === {{rengdêr|ckb}} # tila navîn 13eztxt2f2e6ce3k4nmxmejrelkrk2d ئالف 0 268245 6342388 5879214 2026-08-25T08:47:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342388 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :alif === Navdêr === {{navdêr|ckb}} # [[êm]], [[alif]] oqu6ybxcyyt7bs36rnobswbz7492ebu ئاڵۆز 0 268246 6342393 5879217 2026-08-25T08:47:49Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342393 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :alloz === Rengdêr === {{rengdêr|ckb}} # [[tevlihev]], [[dijwar]], [[aloz]], [[şêlî]] oea30c81t24rru3wbdziludrujbav9d ئاڵتوون 0 268247 6342389 5879213 2026-08-25T08:47:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342389 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :alltûn === Navdêr === {{navdêr|ckb}} # [[zêr]] d5nq1297x6bsvwx18r3cplx6wzvypbs ئاڵووگۆڕ 0 268248 6342392 5879215 2026-08-25T08:47:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342392 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :allûgorr === Navdêr === {{navdêr|ckb}} # [[guher]], [[guherîn]], [[guhartin]], [[danûstandin]], [[têkilî]] 0ggeb0z3m7mhmwovtrwtiny6sbkz3fc ئاڵووگۆز 0 268249 6342391 5879216 2026-08-25T08:47:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342391 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :allûgoz === Navdêr === {{navdêr|ckb}} # [[guhestin]], bi hev guherandin, [[pêguhartin]] ges4ghd7cvuh0vclt675d9tyfsublnc ئام 0 268250 6342394 5879218 2026-08-25T08:47:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342394 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :am === Navdêr === {{navdêr|ckb}} # [[ap]], [[mam]] 1cx6forhsxhyjsymw6lrb32bywnn6rb ئامادە 0 268251 6342395 5879219 2026-08-25T08:48:09Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342395 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amade === Rengdêr === {{rengdêr|ckb}} # [[amade]], [[hazir]] 0c9rnagc0vur4b1bzdh11k0jcoxy8t7 ئاماژ 0 268252 6342397 5879221 2026-08-25T08:48:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342397 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amaj === Navdêr === {{navdêr|ckb}} # [[nîşane]], [[delîl]], [[gova]] cullro8144o6t06i539w54ctedtmiz6 ئامان! 0 268253 6342399 5879223 2026-08-25T08:48:49Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342399 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aman! === Baneşan === {{baneşan|ckb}} # eman! hewar! rq4bgnwwy1c5b6z2g2kk0vilsun8i4a 6342421 6342399 2026-08-25T08:57:50Z Şêr 1103 bilêvkirin û translîterasyon dubare 6342421 wikitext text/x-wiki == {{ziman|ckb}} == === Baneşan === {{baneşan|ckb}} # eman! hewar! fbjxmzkmhe1aniyevop59eghg1mlj9c ئامار 0 268255 6342396 5879220 2026-08-25T08:48:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342396 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amar === Navdêr === {{navdêr|ckb}} # [[hiljimar]], [[statîstîk]] ir6it451l213m3fbd05bjpk9pqre0ph ئاماسان 0 268256 6342398 5879222 2026-08-25T08:48:39Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342398 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amasan === Lêker === {{lêker|ckb}} # [[werimîn]], [[perçivîn]] t9try2ke27kysdxkjuq7gqr7u8i3ibj ئامێر 0 268257 6342404 5879228 2026-08-25T08:49:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342404 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amêr === Navdêr === {{navdêr|ckb}} # [[alav]], [[amûr]], [[alet]] saya9gzzubzfxeldhc5lmq9yiq5b956 ئامۆژن 0 268259 6342403 5879227 2026-08-25T08:49:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342403 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amojin === Navdêr === {{navdêr|ckb}} # [[jinmam]] 5yl3wae7yvup9vgpzkfi43atbhdl1zc ئامۆزا 0 268260 6342402 5879226 2026-08-25T08:49:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342402 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amoza === Navdêr === {{navdêr|ckb}} # [[mamza]], pismam û dotmam, kurmam û keçmam 057rf13xw2x86ncbi0tfc3my6174mdr ئامراز 0 268261 6342400 5879224 2026-08-25T08:48:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342400 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amraz === Navdêr === {{navdêr|ckb}} # [[pirtik]], [[amraz]] lpxi5kx59rs95g7k3g2n36zb2t07ggx ئامسەر 0 268262 6342401 5879225 2026-08-25T08:49:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342401 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :amser === Navdêr === {{navdêr|ckb}} # [[şû]], [[hevser]], jina yan mêrê kesekê/î 3c25d5ii473i13e84druxumiqznrgug ئاپتەر 0 268263 6342352 5879174 2026-08-25T08:41:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342352 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :apter === Navdêr === {{navdêr|ckb}} # [[dîn]], [[şêt]], [[delodîn]] itl0n1papsxn0ocj1hri5rsbr0fparh ئاقل 0 268264 6342384 5879209 2026-08-25T08:46:29Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342384 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aqil === Rengdêr === {{rengdêr|ckb}} # [[biaqil]], [[aqilmend]], [[hişyar]], [[hişmend]] 8g4fntgoosaebi7jf385n65db638q8r ئاراستە 0 268266 6342360 5879183 2026-08-25T08:42:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342360 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :araste === Navdêr === {{navdêr|ckb}} # [[pêşkêşî]], [[raberî]], [[pêşberî]] 34paztday4kqnm1okl9yg9av9ab2qg2 ئارەق 0 268267 6342362 5879186 2026-08-25T08:42:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342362 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :areq === Navdêr === {{navdêr|ckb}} # [[xuh]], [[xwêdan]] tw5l0dc6amndxuys4sq9cds8qnh84an ئارمووش 0 268269 6342361 5879184 2026-08-25T08:42:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342361 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :armûş === Navdêr === {{navdêr|ckb}} # [[hevrîşm]] c0fkyxg00m0oesjdbkq5wrl2s7u2lh5 ئاسایی 0 268272 6342365 5879190 2026-08-25T08:43:29Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342365 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asayî === Rengdêr === {{rengdêr|ckb}} # [[asayî]], [[normalî]], [[adet]] nljc0p8pfof3cpzn4rjwu5ejbjx3d8p ئاساییش 0 268273 6342366 5879191 2026-08-25T08:43:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342366 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asayîş === Navdêr === {{navdêr|ckb}} # [[ewlekar]], [[asayîş]], [[emniyet]] mfj7hxpp8enhgh4rbtma8u6jecbku4n ئاسەوار 0 268274 6342369 5879200 2026-08-25T08:44:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342369 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asewar === Navdêr === {{navdêr|ckb}} # [[kelepûr]], [[bermayî]], bermayiyên bavûkalan 9utcsdr1mk62hk3m8le0h8b4sn1xvs8 ئاسرمە 0 268276 6342368 5879193 2026-08-25T08:43:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342368 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asirme === Navdêr === {{navdêr|ckb}} # [[kurtan]], kincên li hesp, ker û hwd têt kirin okg76t58bd7bgx6zb5w88i9khyq0rm9 ئاسیم 0 268277 6342373 5879198 2026-08-25T08:44:49Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342373 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asîm === Rengdêr === {{rengdêr|ckb}} # [[pispor]] a8ktfjsd1qm5txbh33ckt5kuoywkerb 6342377 6342373 2026-08-25T08:45:27Z Şêr 1103 bi rastî her du jî dibin 6342377 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asîm === Navdêr === {{navdêr|ckb}} # [[pispor]] 3fg9rspkr9zqokz68zuupj5op80bhkg ئاسیو 0 268278 6342374 5879199 2026-08-25T08:44:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342374 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asîw === Navdêr === {{navdêr|ckb}} # [[tengasî]], rewşa dijwar o70ca5n5bu9bi85u3v5d0pirpyz7pb7 ئاسۆک 0 268282 6342372 5879197 2026-08-25T08:44:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342372 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asok === Navdêr === {{navdêr|ckb}} # [[sîber]], [[sî]], [[sih]] 1jscr6ny2lpw3gxae0gfsexaw7curw0 ئاستەم 0 268284 6342367 5879192 2026-08-25T08:43:49Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342367 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :astem === Rengdêr === {{rengdêr|ckb}} # [[piçek]], [[kêm]], ne gelek 2w3yz33obi7pofqk8q8ilj7c9y2uzc8 ئاسوودە 0 268285 6342370 5879195 2026-08-25T08:44:19Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342370 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asûde === Rengdêr === {{rengdêr|ckb}} # [[biewle]], [[tena]] j6jublb8hyvmuxaq052zda352exwei5 ئاسوون 0 268286 6342371 5879196 2026-08-25T08:44:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342371 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :asûn === Navdêr === {{navdêr|ckb}} # [[pozîsyon]], [[rewş]] q6v79nglwgp7dywo4z5ssgs3gdkypx6 ئاشاخە 0 268288 6342375 5879201 2026-08-25T08:45:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342375 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşaxe === Navdêr === {{navdêr|ckb}} # [[rizî]] l2m037yxpyq66cvo9mvh0ohi1q3cpig ئاشچی 0 268289 6342379 5879204 2026-08-25T08:45:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342379 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşçî === Navdêr === {{navdêr|ckb}} # [[xwarinçêker]] ds92q2fsjh3v48u52xfdofhgz5c8nw2 ئاشنا 0 268291 6342381 5879206 2026-08-25T08:45:59Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342381 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşna === Rengdêr === {{rengdêr|ckb}} # [[nas]] rlvsuw6ykoznq918sf5z6a3wh9z8kp2 ئاشپەزخانە 0 268292 6342376 5879202 2026-08-25T08:45:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342376 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşpezxane === Navdêr === {{navdêr|ckb}} # [[metbex]], [[mitfax]] 6b1cx1ytwc8jku9av7tqjcyhjmhx3z7 ئاشت 0 268293 6342378 5879203 2026-08-25T08:45:29Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342378 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşt === Rengdêr === {{rengdêr|ckb}} # [[aşt]], [[aşt]], [[tena]], [[vehewayî]], [[hedayî]], [[tebitî]] ft3xvou158ng44vtfzq1yc4xiyuv8bu ئاشخانە 0 268294 6342380 5879205 2026-08-25T08:45:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342380 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aşxane === Navdêr === {{navdêr|ckb}} # [[xwaringeh]] 8q3op0abp7jotg9thlfih9z6qkshkax ئاتەش 0 268295 6342353 5879175 2026-08-25T08:41:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342353 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ateş === Navdêr === {{navdêr|ckb}} # [[agir]] prxvc5o5ck7oai1zlp68q42bzxw3yqf ئاوا 0 268296 6342406 5879230 2026-08-25T08:49:59Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342406 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awa === Hoker === {{hoker|ckb}} # [[ava]] prsl86i6e4nkx1orc4eukf9vgpz9l41 6342410 6342406 2026-08-25T08:50:31Z Şêr 1103 6342410 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awa === Rengdêr === {{rengdêr|ckb}} # [[ava]] 31jeco08jy27j4d2ijbreglwepc8gzi ئاواڵە 0 268297 6342408 5879232 2026-08-25T08:50:19Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342408 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awalle === Rengdêr === {{rengdêr|ckb}} # [[vekirî]] tgcbpogm1n5x8lz933iy90nedk46hqq ئاواز 0 268300 6342407 5879231 2026-08-25T08:50:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342407 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awaz === Navdêr === {{navdêr|ckb}} # [[awaz]], [[melodî]] e87yf4uird5pmtkrit9hqt8btwzda0v ئاوەدان 0 268301 6342414 5879238 2026-08-25T08:51:09Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342414 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awedan === Rengdêr === {{rengdêr|ckb}} # [[avedan]], [[nûkirin]], [[avakirin]] gygu6po13diuvuoqefcibjkvcfjkn00 6342416 6342414 2026-08-25T08:51:45Z Şêr 1103 6342416 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awedan === Navdêr === {{navdêr|ckb}} # [[avedan]], [[nûkirin]], [[avakirin]] 9nbr05afhhgr069edy52p0qn2o3h8ua ئاوەدانی 0 268302 6342415 5879239 2026-08-25T08:51:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342415 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awedanî === Navdêr === {{navdêr|ckb}} # [[gund]], [[gundî]] rtjkz3ymq89nvft01e73gqza4xwdb10 ئاوەژوو 0 268303 6342430 5879242 2026-08-25T09:30:40Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342430 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awejû === Rengdêr === {{rengdêr|ckb}} # [[vajî]], [[berevajî]] psnpfs2i1eohzqmm6mr6ih2zn6ezg86 ئاوەندیار 0 268305 6342432 5879243 2026-08-25T09:30:50Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342432 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awendyar === Navdêr === {{navdêr|ckb}} # [[navbeynkar]], [[moderator]] mkkmz270rcgllzw9i9fgco4i7qyfr8x ئاوەر 0 268306 6342427 5879240 2026-08-25T09:21:24Z Şêr 1103 navdêr 6342427 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awer === Navdêr === {{navdêr|ckb}} # [[bawerî]], [[wijdan]] l0kh8si6ctgeipline4ahjr2g9s1w7a ئاوەرێژ 0 268307 6342429 5879241 2026-08-25T09:30:30Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342429 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awerêj === Navdêr === {{navdêr|ckb}} # [[avrêj]] 0vx8krjz7dxovm35a32zs2n9i8j1dew ئاوھا 0 268308 6342413 5879237 2026-08-25T08:50:59Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342413 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awha === Hoker === {{hoker|ckb}} # [[wiha]], [[hosa]], [[awiha]] 1lrx04yoocyh42d926gi1flp40n8g80 ئاور 0 268309 6342409 5879233 2026-08-25T08:50:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342409 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awir === Navdêr === {{navdêr|ckb}} # [[awir]], [[nerîn]], [[lênerîn]], [[berêxwedan]] guv5sqbgzaz7yk47ezj3i3z9zw7wef1 ئاوساندن 0 268312 6342412 5879236 2026-08-25T08:50:49Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342412 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awsandin === Lêker === {{lêker|ckb}} # [[werimandin]], [[perçivandin]] qtbcoah38r48azyz2odsifaxr2khe6c ئاوزەنگی 0 268314 6342411 5879234 2026-08-25T08:50:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342411 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :awzengî === Navdêr === {{navdêr|ckb}} # [[rikêb]], [[awzengî]], [[ûzengî]] k9j1jqej7ijy0nr0v3z96ucyclbpk5a ئاخاوتن 0 268315 6342354 6011827 2026-08-25T08:41:39Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342354 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :axawtin === Lêker === {{lêker|ckb}} # {{f|ku|[[xwecih]]}} perwerdekirin, hêvotin, xwedîkirin (nexasim bo yeksimên wek ker, hesp, qantir...) # [[axiftin]], [[peyivîn]], [[ştexilîn]] (ji tesîra kurdiya bakurî) ehv6xzsly6vx9lp01mlb2boq846ommf ئاخێو 0 268316 6342358 5879180 2026-08-25T08:42:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342358 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :axêw === Navdêr === {{navdêr|ckb}} # [[axivger]], [[axiftinker]], [[peyiver]], ya/yê diaxive epg1qxhs0tbgi4prznq6tw9pef65k6m ئاخر 0 268318 6342355 5879177 2026-08-25T08:41:49Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342355 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :axir === Rengdêr === {{rengdêr|ckb}} # [[dawî]] # [[jixwe]], [[manê]], [[nê]] mhe3eaqo4xjbstezpc9nelkp9o6nzx6 ئاخلێف 0 268319 6342356 5879178 2026-08-25T08:41:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342356 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :axlêf === Navdêr === {{navdêr|ckb}} # [[mêrg]], [[çîmen]] 0sflv4t5uzgxa8s5oa9puy5z878jbtr ئاخوون 0 268320 6342357 5879179 2026-08-25T08:42:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342357 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :axûn === Navdêr === {{navdêr|ckb}} # melayê şîiyan gpkzry5bn8n7kuaf8bb7y4238fmbvg7 ئایا؟ 0 268321 6342433 5879244 2026-08-25T09:31:00Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342433 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :aya? === Hoker === {{hoker|ckb}} # ma? gelo? erê? ecebe? t1k0ar17wp5xzh3dunbhyf88x9ws8um ئایندە 0 268322 6342434 5879245 2026-08-25T09:31:10Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342434 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ayinde === Navdêr === {{navdêr|ckb}} # [[pêşeroj]], rojên bên, [[ayinde]] 3hm9bsjg2o1ngszt5dxkr6fwj9pbhm1 ئایین 0 268323 6342435 5879246 2026-08-25T09:31:20Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342435 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ayîn === Navdêr === {{navdêr|ckb}} # [[dîn]], [[ol]], [[ayîn]], [[merasim]], [[rêûresm]], [[dêlindêz]], [[seremonî]] asto7fwblgu3srzpq7j4gx5cxtfqb3p بابۆڵە 0 268324 6342520 5861784 2026-08-25T10:18:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342520 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :babolle === Navdêr === {{navdêr|ckb}} # [[balolk]] pq5n4lh5bsf21dtw0r9gumjc7ofgs55 بابەت 0 268325 6342271 5861785 2026-08-24T22:36:51Z Şêr 1103 6342271 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mijar]], [[babet]] (tiştê ku li ser tê axaftin, nivîsandin an nîqaşkirin; bi almanî: ''Thema'') #: {{mînak|ckb|بابەتی ئەمڕۆ زۆر گرنگە.|tr=Babetî emro zor giringe.|werger=Mijara îro pir girîng e.}} #: {{mînak|ckb|ئێمە باسی بابەتێکی نوێ دەکەین.|tr=Ême basî babetêkî nwê dekeyn.|werger=Em behsa mijareke nû dikin.}} ==== Hevwate ==== * {{g|ckb|مژار}} * {{g|ckb|باس}} ==== Têkildar ==== * {{g|ckb|سەردێڕ}} * {{g|ckb|گفتوگۆ}} d516avxcvl6f6cv7466zy3za3tchtvc 6342272 6342271 2026-08-24T22:37:57Z Şêr 1103 6342272 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mijar]], [[babet]] (tiştê ku li ser tê axaftin, nivîsandin an nîqaşkirin) #: {{mînak|ckb|بابەتی ئەمڕۆ زۆر گرنگە.|tr=Babetî emro zor giringe.|werger=Mijara îro pir girîng e.}} #: {{mînak|ckb|ئێمە باسی بابەتێکی نوێ دەکەین.|tr=Ême basî babetêkî nwê dekeyn.|werger=Em behsa mijareke nû dikin.}} ==== Hevwate ==== * {{g|ckb|مژار}} * {{g|ckb|باس}} ==== Têkildar ==== * {{g|ckb|سەردێڕ}} * {{g|ckb|گفتوگۆ}} hyogenrzwj9ea9zsjy47jbt0lcjqegx 6342274 6342272 2026-08-24T22:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342274 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mijar]], [[babet]] (tiştê ku li ser tê axaftin, nivîsandin an nîqaşkirin) #: {{mînak|ckb|بابەتی ئەمڕۆ زۆر گرنگە.|tr=Babetî emro zor giringe.|werger=Mijara îro pir girîng e.}} #: {{mînak|ckb|ئێمە باسی بابەتێکی نوێ دەکەین.|tr=Ême basî babetêkî nwê dekeyn.|werger=Em behsa mijareke nû dikin.}} ==== Hevmane ==== * {{g|ckb|مژار}} * {{g|ckb|باس}} ==== Têkildar ==== * {{g|ckb|سەردێڕ}} * {{g|ckb|گفتوگۆ}} 1qizmlkqwkjy8pwvtn5rl8jjg3jrw2y بابوسکە 0 268326 6342519 5861783 2026-08-25T10:18:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342519 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :babuske === Navdêr === {{navdêr|ckb}} # [[gewr]] aow7nite4eyopx7j6qcp3zgfxojn79v باچە 0 268327 6342525 5861795 2026-08-25T10:19:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342525 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baçe === Navdêr === {{navdêr|ckb}} # [[belek]], [[rengereng]] bwnwls5fk8sip6ocpf3nkve0ysm59t9 بادیھەوا 0 268329 6342527 5861841 2026-08-25T10:20:09Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342527 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :badîhewa === Hoker === {{hoker|ckb}} # [[bêfeyde]], [[bêencam]] 7o1y0npfo3vopd955n9vghjxz7eatil بافت 0 268330 6342550 5862010 2026-08-25T11:11:03Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342550 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baft === Navdêr === {{navdêr|ckb}} # [[hejî]], [[hêja]], hêjayî tiştekî 1ty121v912cq4gexnt48o2rrlw46rua 6342555 6342550 2026-08-25T11:11:47Z Şêr 1103 6342555 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baft === Rengdêr === {{rengdêr|ckb}} # [[hejî]], [[hêja]], hêjayî tiştekî mqs6i86sir2g2hhwszs8f1y44ahfytv باھێر 0 268331 6342560 5862080 2026-08-25T11:12:33Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342560 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bahêr === Navdêr === {{navdêr|ckb}} # [[beyar]], [[ziwa]], [[hişk]] m6sspidt4w56xinxugc6wsb91syfdg6 6342561 6342560 2026-08-25T11:13:19Z Şêr 1103 6342561 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bahêr === Rengdêr === {{rengdêr|ckb}} # [[beyar]], [[ziwa]], [[hişk]] 9w072ht6e99km5ggejjeejody466zid باڵابستە 0 268336 6342551 5862033 2026-08-25T11:11:13Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342551 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballabiste === Rengdêr === {{rengdêr|ckb}} # [[bejnbost]], [[bejnqut]], [[quto]], [[qutok]] 2ng1kqixhx3jamni5j8rz5959eaa0vl باڵباز 0 268337 6342552 5862047 2026-08-25T11:11:23Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342552 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballbaz === Navdêr === {{navdêr|ckb}} # [[leşker]], [[esker]] baqksipfosuxwey47cr2lt8p5ku4pnt باڵێ 0 268338 6342556 5862058 2026-08-25T11:11:53Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342556 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballê === Baneşan === {{baneşan|ckb}} # [[belê]] qrkm0kpm3329xduyuw7pljap1k6clb5 باڵێف 0 268339 6342557 5862059 2026-08-25T11:12:03Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342557 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballêf === Navdêr === {{navdêr|ckb}} # [[balguh]], [[balîfk]] fd86go2dnsfy8dbak2znwkrijkfzccs باڵۆڵە 0 268340 6342553 5862056 2026-08-25T11:11:33Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342553 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballolle === Navdêr === {{navdêr|ckb}} # [[balolk]] p6nkwxaiyvy7rflvkzkgi1fo9f3r6l3 باڵۆن 0 268341 6342554 5862057 2026-08-25T11:11:43Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342554 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ballon === Navdêr === {{navdêr|ckb}} # [[pivdank]], [[balon]] c2h3743imrvflgmcghqesntfsv4o34i بانگردێن 0 268345 6342558 5862072 2026-08-25T11:12:13Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342558 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bangirdên === Navdêr === {{navdêr|ckb}} # [[bagurdan]], [[bangurdan]], kevirê / berê li ser banên xaniyan têt gerandin daku ban qayim bibe û dilopan neke 27pfofvsf7fssgjj7g25r1nlyalwdwa بانوو 0 268347 6342559 5862073 2026-08-25T11:12:23Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342559 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :banû === Navdêr === {{navdêr|ckb}} # [[xatûn]] flql891eg3qluz4cxl6d2gu53uxwq6e باپیر 0 268348 6342521 5861786 2026-08-25T10:19:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342521 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bapîr === Navdêr === {{navdêr|ckb}} # [[kal]], [[bapîr]], [[bavûkal]] ero45ri2gohwoxiescf1yhxjqmh34rx باڕ 0 268352 6342547 5861843 2026-08-25T11:10:33Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342547 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barr === Navdêr === {{navdêr|ckb}} # [[xort]], [[negihayî]] 2ra8y1w1qmmykl6bnm850w86t65ievr بارام 0 268353 6342348 5861852 2026-08-25T08:33:58Z Şêr 1103 cure 6342348 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :Baram === Serenav === {{serenav|ckb}} # [[Merîx]], [[Mars]] fm3e06h1tyus0tsf34yupc4m3dmytby بارە 0 268354 6342543 5861902 2026-08-25T11:09:53Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342543 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bare === Navdêr === {{navdêr|ckb}} # [[par]], [[behir]], [[pişk]] 97mn1ocwvrg75eoq0jo7wojusokq3wf بارمتە 0 268355 6342542 5861884 2026-08-25T11:09:43Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342542 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barimte === Navdêr === {{navdêr|ckb}} # [[mişkane]], [[barimte]], [[îpotek]] l7k3uf3ev0d6vmep9g9nshf2skfx5k1 بارست 0 268356 6342528 5861873 2026-08-25T10:20:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342528 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barist === Navdêr === {{navdêr|ckb}} # [[berz]], [[bala]], [[bilind]] qxtbwlhb9fjoir8zaqu3w53lj6b44t1 6342529 6342528 2026-08-25T10:22:01Z Şêr 1103 gelo ev peyv heye? 6342529 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barist === Rengdêr === {{rengdêr|ckb|tr=barist}} # [[berz]], [[bala]], [[bilind]] o19q4dmapexjyf4vyuxjz2zimsfuyi3 6342532 6342529 2026-08-25T10:30:53Z Şêr 1103 rastkirina bot rast bû, min mane lê zêde kir, 6342532 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barist === Navdêr === {{navdêr|ckb}} # [[hecîm]], [[barist]] ny2cu8lwqk4khcyynk52yhqzrz5067a 6342533 6342532 2026-08-25T10:31:19Z Şêr 1103 tr= 6342533 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barist === Navdêr === {{navdêr|ckb|tr=barist}} # [[hecîm]], [[barist]] orky67z20tl5t3ua616safx0830olgg 6342534 6342533 2026-08-25T10:31:57Z Şêr 1103 6342534 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barist === Navdêr === {{navdêr|ckb|tr=barist}} # [[hecim]], [[barist]] jfbw6hr2muyczjx8npcolkx2lvypcqg بارشت 0 268357 6342541 5861874 2026-08-25T11:09:33Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342541 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :barişt === Navdêr === {{navdêr|ckb}} # [[nermebaran]], [[lêzme]] 52axmaj4gv6q7nouo7ob9p2xigzsxs5 باستانناسی 0 268363 6342548 5861985 2026-08-25T11:10:43Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342548 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bastannasî === Navdêr === {{navdêr|ckb}} # [[arkeolojî]] qbgbb1v9mf5rosdmjwnbo6s9mgumhva باستورمە 0 268364 6342549 5861986 2026-08-25T11:10:53Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342549 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :basturme === Navdêr === {{navdêr|ckb}} # [[sosîs]], [[bastirme]] io6pded2c1a33q8pjsf9b80xavjro7j باتەک 0 268368 6342522 5861793 2026-08-25T10:19:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342522 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :batek === Navdêr === {{navdêr|ckb}} # [[rewişt]], [[reftar]], [[tevger]], [[ rabûn-rûniştin]] jk82jv60xo487j9oa5t921g94dd0woq باتی 0 268370 6342524 5861792 2026-08-25T10:19:40Z JiyanBot 3048 Bot: Guhartina bêcure -> daçek 6342524 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :batî === Daçek === {{daçek|ckb}} # [[şûna]], [[li şûna]], li ciyê p9h5mlsvcwlvvxmdyqtemtetddd15r3 باتوو 0 268371 6342523 5861791 2026-08-25T10:19:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342523 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :batû === Navdêr === {{navdêr|ckb}} # [[gun]], [[ritil]], [[hêlik]] ogt4h3awar3dnpuc645jtvl48drr61f باوەقۆت 0 268373 6342573 5862090 2026-08-25T11:50:34Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342573 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baweqot === Navdêr === {{navdêr|ckb}} # [[bejnbost]], [[bejnqut]], [[quto]], [[qutok]] m2zyi3segk67kjkdrb214wduhpt5alr 6342586 6342573 2026-08-25T11:54:46Z Şêr 1103 6342586 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baweqot === Rengdêr === {{rengdêr|ckb}} # [[bejnbost]], [[bejnqut]], [[quto]], [[qutok]] 5vtzi0lrphqbmgwwwnt3qabmhuldoqe باوەڕ 0 268374 6342572 5862089 2026-08-25T11:50:24Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342572 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bawerr === Navdêr === {{navdêr|ckb}} # [[bawer]] ocsh3bocvg40if0v27zzqmoiwzdf7t2 باوی 0 268377 6342574 5862088 2026-08-25T11:50:44Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342574 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bawî === Rengdêr === {{rengdêr|ckb}} # [[bahîv]], [[behîv]] mx8cy6udhi0lqanj8w7ee79z77deb53 باوک 0 268378 6342571 5862087 2026-08-25T11:50:14Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342571 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bawk === Navdêr === {{navdêr|ckb}} # [[bav]], [[bab]] 4zkbqi1o0v33leavsew6nyhp7gw57y7 باخەڵ 0 268379 6342526 5861799 2026-08-25T10:19:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342526 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :baxell === Navdêr === {{navdêr|ckb}} # [[paxil]], [[paşil]] 4p6g30icumzjqqgwiyok5o0s4wo6cl8 بایەخ 0 268380 6342579 5862114 2026-08-25T11:51:34Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342579 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayex === Navdêr === {{navdêr|ckb}} # [[nirx]], [[biha]], [[bihagiranî]], [[bayix]], [[giramî]], [[hêjayî]] 4rn93njjj32sijfyls46kybmc3p6fjc باینجان 0 268381 6342576 5862104 2026-08-25T11:51:04Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342576 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayincan === Navdêr === {{navdêr|ckb}} # [[bacan]] a2jy4yrllrjbyu0sr06ui9r1in9oojf بایست 0 268382 6342575 5862093 2026-08-25T11:50:54Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342575 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayist === Navdêr === {{navdêr|ckb}} # [[sedem]], [[ho]], [[faktor]], [[mebest]], [[merem]] # [[divê]] 0zl1koqdtqidr0q60iso8dugk38zt8j بایی 0 268383 6342580 5862112 2026-08-25T11:51:44Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342580 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayî === Navdêr === {{navdêr|ckb}} # [[biha]], [[lêçûn]]: bayî çend e? بایی چەندە؟ bi çendê / çiqasî ye? narydzqnhomwqi9od8wma0kqpu3amyv بازد 0 268384 6342544 5861940 2026-08-25T11:10:03Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342544 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bazd === Navdêr === {{navdêr|ckb}} # [[bez]], [[rev]] a2d6858mqfomvx2zjvsrmlijkdxvrkc بازۆر 0 268386 6342546 5861968 2026-08-25T11:10:23Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342546 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bazor === Navdêr === {{navdêr|ckb}} # [[baz]] 2za0xifen6b9tmvqten3rzdza2l8ojb بازوو 0 268387 6342545 5861965 2026-08-25T11:10:13Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342545 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bazû === Navdêr === {{navdêr|ckb}} # [[belek]], [[rengereng]] 0kyyltor1jfay9selu7z346lh4zydh0 بچەژ 0 268500 6342581 5862184 2026-08-25T11:51:54Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342581 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :biçej === Lêker === {{lêker|ckb}} # [[biçêj]], [[bitam]], [[bilezet]] s0v4pwz5eetp5j0amm5x8c0ocxroscr 6342585 6342581 2026-08-25T11:53:24Z Şêr 1103 Guhartoya [[Special:Diff/6342581|6342581]] yê [[Special:Contributions/JiyanBot|JiyanBot]] ([[User talk:JiyanBot|gotûbêj]]) şûnde kir 6342585 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :biçej === Mane === {{bêcure|ckb}} # [[biçêj]], [[bitam]], [[bilezet]] ay1252vz8framf3khksyvb7imf0ovij بدوو 0 268501 6342582 5862325 2026-08-25T11:52:04Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342582 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bidû === Lêker === {{lêker|ckb}} # [[xeberxweş]], [[biaxiftin]] saz8eaqve0xd5up3psdq1w9ncm7vdlg 6342584 6342582 2026-08-25T11:52:48Z Şêr 1103 6342584 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bidû === Rengdêr === {{rengdêr|ckb}} # [[xeberxweş]], [[biaxiftin]] bmsw90h4tyvomeqxoquyiltyqc3gx5y برادەر 0 268522 6342583 5862364 2026-08-25T11:52:14Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342583 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :birader === Navdêr === {{navdêr|ckb}} # [[dost]], [[heval]], [[birader]] 0i8er5rin8yplmvwrwg12bt5x2am4so ئەبێ 0 268819 6342438 5879324 2026-08-25T09:31:50Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342438 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ebê === Lêker === {{lêker|ckb}} # [[1]], [[dibe]], [[dibit]], dibît 2, [[divê]], [[divêt]] g6fxulox879q7vn6qy595xf0dks9meg ئەبلەق 0 268820 6342436 5879323 2026-08-25T09:31:30Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342436 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ebleq === Rengdêr === {{rengdêr|ckb}} # [[matmayî]], [[ecêbgirtî]], [[mestbûyî]] 7v0pehva4wsf40px5dliw8055mtikjl ئەبیاڵ 0 268821 6342437 5879325 2026-08-25T09:31:40Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342437 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ebyall === Navdêr === {{navdêr|ckb}} # [[betenî]] eybb3gsb34aq12eplcam9sbybmpn0oh ئەجندا 0 268823 6342443 5879330 2026-08-25T09:32:30Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342443 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ecinda === Navdêr === {{navdêr|ckb}} # [[rojev]], [[ajenda]] q39lyp5bubalaz1i4mzlwnj5zq8m1y0 ئەجزاجی 0 268824 6342441 5879328 2026-08-25T09:32:20Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342441 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eczacî === Navdêr === {{navdêr|ckb}} # [[dermanfiroş]] a47i9wt362g848490knuaq2g8ruxvhi ئەدی! 0 268826 6342444 5879331 2026-08-25T09:32:40Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342444 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :edî! === Baneşan === {{baneşan|ckb}} # [[bêguman]], [[bêşik]], [[tabî]], [[helbet]] 49oj6bvdusebfzbqd8dtxnhiqypxja9 ئەدی؟ 0 268827 6342445 5879332 2026-08-25T09:32:50Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342445 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :edî? === Hoker === {{hoker|ckb}} # Ma ne? Ma ne wisan e? gjln3fdgge50jy9b98tcsodcyq83qpy ئەفسانە 0 268828 6342472 5879354 2026-08-25T10:02:42Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342472 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :efsane === Navdêr === {{navdêr|ckb}} # [[efsane]], çîrokên mîtolojîk 4zq14rtkiam9aor4c07qi6livdxyhwy ئەفسەر 0 268829 6342473 5879355 2026-08-25T10:02:52Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342473 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :efser === Navdêr === {{navdêr|ckb}} # [[serleşker]], fermandara/ê leşkerî r0jar1vzgvdo2rxyrqjfj6kkb2efqea ئەگریجە 0 268832 6342475 5879357 2026-08-25T10:11:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342475 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :egrîce === Navdêr === {{navdêr|ckb}} # [[kezî]], [[bisk]] ngcy7hiol4xa610x3io9fqi6lqgoda2 ئەھلی 0 268833 6342493 5879376 2026-08-25T10:14:50Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342493 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ehlî === Rengdêr === {{rengdêr|ckb}} # [[sivîl]], [[medenî]], [[gel]], xelk milet 3l4p1bk4j6dfux044jzho36rl10fbqv ئەژدەھا 0 268834 6342452 5879339 2026-08-25T09:34:00Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342452 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ejdeha === Navdêr === {{navdêr|ckb}} # [[ejdeha]], marê bidestûpê rmphrypn7c4kyaqjn92yjtkeyz8jszc ئەژماردن 0 268836 6342453 5879340 2026-08-25T09:34:10Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342453 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ejmardin === Lêker === {{lêker|ckb}} # [[hijmartin]], [[jimartin]], [[hesab kirin]] cpykxwbi68awjifc8o0utznxlbahr14 ئەژمێر 0 268837 6342456 5879341 2026-08-25T09:41:51Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342456 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ejmêr === Navdêr === {{navdêr|ckb}} # [[hijmêr]], [[hesabgir]] kmpw1oma8838l7n1acax767ro91cci7 ئەلبەت 0 268839 6342476 5879358 2026-08-25T10:11:59Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342476 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :elbet === Hoker === {{hoker|ckb}} # [[helbet]], [[bêguman]], [[bêşik]], [[ bivê-nevê]], [[ hebe-nebe]] lp7igyt8109xcj1qt1eq9terr33z2hm ئەڵێ 0 268840 6342480 5879363 2026-08-25T10:12:39Z JiyanBot 3048 Bot: Guhartina bêcure -> lêker 6342480 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ellê === Lêker === {{lêker|ckb}} # [[dibêje]] 7slh03np5fqczpzg94vtnfo3j0stt74 ئەڵقە 0 268842 6342478 5879360 2026-08-25T10:12:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342478 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ellqe === Navdêr === {{navdêr|ckb}} # [[gustîlk]], [[gustîrk]] 0294cdetocf989j7rmsmz5c0z0f0hiy ئەڵماس 0 268843 6342479 5879361 2026-08-25T10:12:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342479 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ellmas === Navdêr === {{navdêr|ckb}} # [[elmas]] d1t4r8xs3u92svlcazkiyymhx19htmt ئەلمۆدە 0 268844 6342477 5879362 2026-08-25T10:12:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342477 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :elmode === Navdêr === {{navdêr|ckb}} # [[mode]], [[bistîl]] 2ejlmudqynf0tsbi3iky6l4qde7jrs8 ئەمن 0 268846 6342482 5879365 2026-08-25T10:12:59Z JiyanBot 3048 Bot: Guhartina bêcure -> cînav 6342482 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :emin === Cînav === {{cînav|ckb}} # [[min]], [[ez]] jsr54mzzh5jq76fev5c0v3qcoyemjh3 ئەمین 0 268847 6342484 5879367 2026-08-25T10:13:19Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342484 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :emîn === Rengdêr === {{rengdêr|ckb}} # [[pêbawer]], [[emîn]] rucst2w7s0sz6cbix394mb4xvatd3uj ئەمر 0 268848 6342481 5879364 2026-08-25T10:12:50Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342481 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :emr === Navdêr === {{navdêr|ckb}} # [[ferman]], [[bang]], [[gazî]] ihfkufjilohtx8395kt8v0p29sol3xi ئەموست 0 268849 6342483 5879366 2026-08-25T10:13:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342483 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :emust === Navdêr === {{navdêr|ckb}} # [[til]], [[tilî]] 8cxapu3j5o4hss9py8942iqg74e45ef ئەنجام 0 268850 6342486 5879369 2026-08-25T10:13:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342486 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :encam === Navdêr === {{navdêr|ckb}} # [[encam]], [[akam]], [[dawî]] 2b3hhovruk329gd9ralhd7o00w3d8il ئەنجن 0 268851 6342487 5879370 2026-08-25T10:13:49Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342487 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :encin === Navdêr === {{navdêr|ckb}} # [[ker]], [[parçe]], [[qet]] 4su7mgzia0wddbfdiwpz87tdjvwx0rs ئەنجومەن 0 268852 6342488 5879371 2026-08-25T10:13:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342488 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :encumen === Navdêr === {{navdêr|ckb}} # [[encûmen]], [[deste]], [[konsey]] 48ljsvb6t75upihns8oifkie56he2rx ئەندازیار 0 268853 6342489 5879372 2026-08-25T10:14:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342489 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :endazyar === Navdêr === {{navdêr|ckb}} # [[endazyar]], [[mihendis]] 4rze0n3gq3iu3k2cssniuchgs8l71xh ئەنەم 0 268854 6342492 5879375 2026-08-25T10:14:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342492 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :enem === Navdêr === {{navdêr|ckb}} # [[mem]], [[çiçik]], [[bersîng]] bv35t67yddfz1kdqj87fcjtxvtcbhip ئەنگاو 0 268855 6342490 5879373 2026-08-25T10:14:19Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342490 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :engaw === Navdêr === {{navdêr|ckb}} # [[gav]], [[pêngav]] 597i7fr7swpio9vpyrl4fpc3t0by5ah ئەنگوور 0 268856 6342491 5879374 2026-08-25T10:14:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342491 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :engûr === Navdêr === {{navdêr|ckb}} # [[tirî]] lli00ztnl9m662elpcrmrcztohuz2l8 ئەنتیکە 0 268857 6342485 5879368 2026-08-25T10:13:29Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342485 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :entîke === Rengdêr === {{rengdêr|ckb}} # [[seyr]], [[sosret]], [[ecêb]], '': awarte; [[kevnare]], [[ antîk'']] 6sfcdrmkc8ynnzysyv9nnqbjzotgwwn ئەقل 0 268858 6342474 5879356 2026-08-25T10:03:02Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342474 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eqil === Navdêr === {{navdêr|ckb}} # [[aqil]], [[hiş]], [[bîr]], [[awez]] ocix2yhnnac9pqtl9prkrj5m6we07w4 ئەرامەندە 0 268859 6342446 5879333 2026-08-25T09:33:00Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342446 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eramende === Rengdêr === {{rengdêr|ckb}} # [[perîşan]], [[hejar]], [[belengaz]], [[feqîr]] 4rjzrkmg28bjgtjwyasw5v0bldk3oyi ئەرج 0 268860 6342447 5879334 2026-08-25T09:33:10Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342447 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :erc === Navdêr === {{navdêr|ckb}} # [[enîşk]] lt9o1nm8ye4373immycvsbkj4u0lr4z ئەرە 0 268861 6342450 5879337 2026-08-25T09:33:40Z JiyanBot 3048 Bot: Guhartina bêcure -> daçek 6342450 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ere === Daçek === {{daçek|ckb}} # [[birrek]], [[mişar]] fi3n5ybps3vnmwcebbjmwggmup5v28y ئەرک 0 268863 6342449 5879336 2026-08-25T09:33:30Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342449 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :erk === Navdêr === {{navdêr|ckb}} # [[erk]], [[wezîfe]], [[kar]], [[vatinî]] fwh55vxjxdgs77f27zx160firhmdgv8 ئەرز 0 268864 6342448 5879335 2026-08-25T09:33:20Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342448 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :erz === Navdêr === {{navdêr|ckb}} # [[erd]], [[ax]], [[xak]], [[zevî]] 7zpk4ha55tw7oxadxksgbpyews7spe9 ئەسکری 0 268865 6342466 5879348 2026-08-25T10:01:42Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342466 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eskirî === Navdêr === {{navdêr|ckb}} # [[tirî]], libên tirî m21ioll0qd6tllimmfk6pi3imjihmyb ئەسکوێ 0 268866 6342467 5879349 2026-08-25T10:01:52Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342467 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eskiwê === Navdêr === {{navdêr|ckb}} # [[heskû]], [[mifsik]], [[kefçî]] m76dan0ab8row29bjtc96j5x9gycchf ئەسڵەن 0 268867 6342468 5879350 2026-08-25T10:02:02Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342468 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :esllen === Hoker === {{hoker|ckb}} # [[jixwe]], [[eslen]] jv6y3zz0f5yc8py98r0mmsge113qb50 ئەسپایی 0 268870 6342457 5879342 2026-08-25T09:42:01Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342457 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :espayî === Hoker === {{hoker|ckb}} # [[bêpêjnî]], [[tenahî]], [[bêdengî]], [[bêgeremolî]], [[bêqerebalixî]] 62y7mgd2li7t5gqpk28w2mqcxaf7bdu 6342460 6342457 2026-08-25T09:42:51Z Şêr 1103 6342460 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :espayî === Navdêr === {{navdêr|ckb}} # [[bêpêjnî]], [[tenahî]], [[bêdengî]], [[bêgeremolî]], [[bêqerebalixî]] 2exptjs0kql5yxdsyshneerfjupunjr ئەستێرک 0 268873 6342464 5879346 2026-08-25T10:01:22Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342464 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :estêrk === Navdêr === {{navdêr|ckb}} # [[bendav]] l0gna9jmttchm1thvh8t8wyydebvjjj ئەستێوڵک 0 268874 6342465 5879347 2026-08-25T10:01:32Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342465 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :estêwillk === Navdêr === {{navdêr|ckb}} # [[hevîr]] 086j6t2ctr950h86ho5ud12fuudoc6d ئەستی 0 268875 6342463 5879345 2026-08-25T10:01:12Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342463 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :estî === Navdêr === {{navdêr|ckb}} # [[hestî]] 3wqwurs9yzkdoivwnbig0rjpypcj1ia ئەستۆ 0 268876 6342459 5879344 2026-08-25T09:42:21Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342459 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :esto === Navdêr === {{navdêr|ckb}} # [[patik]], [[paşsto]] m11mmy6geetvkcsope0ydbrzbio1toh ئەستوون 0 268877 6342458 5879343 2026-08-25T09:42:11Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342458 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :estûn === Navdêr === {{navdêr|ckb}} # [[stûn]] 8g55x5rja9yypzayx7zg16tyi42gjdv ئەشک 0 268878 6342469 5879351 2026-08-25T10:02:12Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342469 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eşk === Navdêr === {{navdêr|ckb}} # [[enîşk]] oocs63u3jwndci3a5lqsnc4dutjmjb0 ئەشکەنجە 0 268879 6342470 5879352 2026-08-25T10:02:22Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342470 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eşkence === Navdêr === {{navdêr|ckb}} # [[şkence]], [[lêdan]], [[tazîb]] gap5a10hkrapxw9xssmybajl8x6oac1 ئەشیا 0 268881 6342471 5879353 2026-08-25T10:02:32Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342471 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eşya === Navdêr === {{navdêr|ckb}} # [[eşya]], [[tişt]], [[mal]] sm6pseyaecvfe2jk42jhiv6r6v5zec1 ئەتک 0 268882 6342439 5879326 2026-08-25T09:32:00Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342439 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :etk === Navdêr === {{navdêr|ckb}} # [[hetk]], [[rûreşî]], [[şermezarî]] 8t63hvhhccyz3k09itxoey8r9zdty8n ئەتوون 0 268883 6342440 5879327 2026-08-25T09:32:10Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342440 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :etûn === Navdêr === {{navdêr|ckb}} # [[dojeh]], [[cehenem]], [[agiristan]] qqnz97i0nztylac9myb68nt2ubwnlw3 ئەوانیش 0 268886 6342494 5879379 2026-08-25T10:14:59Z JiyanBot 3048 Bot: Guhartina bêcure -> cînav 6342494 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewanîş === Cînav === {{cînav|ckb}} # ew jî, wan jî (pirrhejmar) ofgia86h5jb7s711zhra917augta99b ئەوجا 0 268887 6342495 5879380 2026-08-25T10:15:09Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342495 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewca === Hoker === {{hoker|ckb}} # [[paşî]], [[peyre]], [[dûre]], [[encax]] 6uvd7cd3v06zgphaa5p9ehhoyijhj3w ئەوە 0 268888 6342500 5879384 2026-08-25T10:15:49Z JiyanBot 3048 Bot: Guhartina bêcure -> cînav 6342500 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewe === Cînav === {{cînav|ckb}} #(amrazî amajekirdin) ewa/ê he, ewa/ê ha, ewa/ê han #(baştir e: ew e) ew e ckz3dixqc30l8h03yfy8pi2ep5xa07t ئەوەندە 0 268889 6342502 5879386 2026-08-25T10:16:09Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342502 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewende === Hoker === {{hoker|ckb}} # [[hind]], [[ewqas]], [[weqa]] 403ozjbiyted1kgt2sb117onyjj44a4 ئەوەش 0 268890 6342501 5879385 2026-08-25T10:15:59Z JiyanBot 3048 Bot: Guhartina bêcure -> cînav 6342501 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eweş === Cînav === {{cînav|ckb}} # ew jî 69j3fptty9uyr0ri4mqgna47tq9l9kf ئەورەنگ 0 268891 6342496 5879381 2026-08-25T10:15:20Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342496 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewreng === Navdêr === {{navdêr|ckb}} # [[mirêsdar]], [[mihteşem]], [[ewreng]], [[şiko]] 7m50exow5oyun8uvf05on20lyaif1xx ئەوسا 0 268892 6342499 5879383 2026-08-25T10:15:40Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342499 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewsa === Hoker === {{hoker|ckb}} # [[vêca]], [[îca]], [[îja]], [[vêga]], [[hingê]], vêca hingê, [[wê gavê]], [[wê demê]], wî wextî 93bxbmtcy9zygh0haujaew46x7snrz4 ئەوزار 0 268893 6342497 5879382 2026-08-25T10:15:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342497 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ewzar === Navdêr === {{navdêr|ckb}} # [[amraz]], [[alav]], [[amûr]], [[alet]] tkp4ldnu1xg8afy3mvjw9pqvcfgqckg ئەی 0 268894 6342503 5879387 2026-08-25T10:16:19Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342503 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ey === Baneşan === {{baneşan|ckb}} # [[pa]], [[ma]], [[gelo]] :Min kurr im, ey to? Ez kurr im, pa tu (çi yî)? axyqmiuznp75xz67s8316vdogkbfjn3 ئەی! 0 268895 6342504 5879388 2026-08-25T10:16:29Z JiyanBot 3048 Bot: Guhartina bêcure -> baneşan 6342504 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ey! === Baneşan === {{baneşan|ckb}} # [[ey!]] s02phchq487kovzyokmxixraejpor6o ئەینا؟ 0 268897 6342505 5879389 2026-08-25T10:16:39Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342505 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :eyna? === Hoker === {{hoker|ckb}} # ma ne? ma ne wisan e? a9nvw1gmvh94y2zo3e2sdzi8p3v6jdn ئەزبۆلە 0 268898 6342451 5879338 2026-08-25T09:33:50Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342451 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :ezbole === Navdêr === {{navdêr|ckb}} # [[biharat]] bv8h0ph4jk6dcuqdeuze0mgu6i3sg1w ئیجا 0 270139 6342507 5879311 2026-08-25T10:16:49Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342507 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îca === Hoker === {{hoker|ckb}} # [[vêca]], [[îca]], [[vêga]], '':(ew kat) hingê, [[wê demê]], vê gavê'' 7dvo7nogk29lddneeq2e2ccdw7yq8an ئیفتادە 0 270141 6342513 5879317 2026-08-25T10:17:49Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342513 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îftade === Rengdêr === {{rengdêr|ckb}} # [[êxtiyar]], [[pîr]], [[kal]] 8p4df21bk5jz6kdeqc5qipt1uyr87gp ئیم 0 270142 6342514 5879318 2026-08-25T10:17:59Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342514 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îm === Navdêr === {{navdêr|ckb}} # [[ev]] 1n2k3zbs6luzksx1ztcu6nt9qgid26r ئیمرۆ 0 270143 6342515 5879319 2026-08-25T10:18:09Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342515 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îmro === Hoker === {{hoker|ckb}} # [[îro]] 0dfos3g8xpfzhjl0lnwfi6omg9vxa5f ئیمسال 0 270144 6342516 5879320 2026-08-25T10:18:19Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342516 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îmsal === Hoker === {{hoker|ckb}} # [[îsal]] e06cblr38xmd5q1gv8jw2xlmddbpron ئیمشەو 0 270145 6342517 5879321 2026-08-25T10:18:29Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342517 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îmşew === Hoker === {{hoker|ckb}} # [[îşev]] e78h04n6gs5c9vmaymmfwvh6pwxuuuk ئینجا 0 270146 6342518 5879322 2026-08-25T10:18:39Z JiyanBot 3048 Bot: Guhartina bêcure -> hoker 6342518 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :înca === Hoker === {{hoker|ckb}} # [[vêca]], [[îca]], [[vêga]], '':(ew kat) hingê, [[wê demê]], vê gavê'' 71z1e9haw7frrpb1p89029wdq4a5mwu ئیرھاب 0 270147 6342509 5879313 2026-08-25T10:17:09Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342509 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îrhab === Navdêr === {{navdêr|ckb}} # [[teror]], [[terorîzm]], [[tirskarî]] shuhurebovzt6n1eoqeai9ylvanen9f ئیرھابی 0 270148 6342510 5879314 2026-08-25T10:17:20Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342510 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îrhabî === Rengdêr === {{rengdêr|ckb}} # [[terorîst]], [[tirskar]] d91sz87yy9btgqb6mqnkqelf7yze8iz ئیستیقالە 0 270150 6342511 5879315 2026-08-25T10:17:29Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342511 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îstîqale === Navdêr === {{navdêr|ckb}} # [[îstîfa]], [[destjêberdan]], [[devjêberdan]], [[îstifa]] 2utsvf5w75ne14bixp0ejcts2dz48wy ئیختیار 0 270152 6342508 5879312 2026-08-25T10:16:59Z JiyanBot 3048 Bot: Guhartina bêcure -> rengdêr 6342508 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îxtiyar === Rengdêr === {{rengdêr|ckb}} # [[êxtiyar]], [[pîr]], [[kal]] ii9vng79bfi49av498o93q87jc9ubtw ئیش 0 270153 6342512 5879316 2026-08-25T10:17:39Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342512 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :îş === Navdêr === {{navdêr|ckb}} # [[kar]], [[şol]], [[şuxl]], [[îş]] mknbuci2oqzyk29y5f4fl0kr9xac64c باینجانی ڕەش 0 272358 6342577 5862106 2026-08-25T11:51:14Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342577 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayincanî reş === Navdêr === {{navdêr|ckb}} # [[bacanreş(k)]] fepgjl1vhp5yk6qg5688jzhhgvtjgxk باینجانی سوور 0 272359 6342578 5862108 2026-08-25T11:51:24Z JiyanBot 3048 Bot: Guhartina bêcure -> navdêr 6342578 wikitext text/x-wiki == {{ziman|ckb}} == === Bilêvkirin === :bayincanî sûr === Navdêr === {{navdêr|ckb}} # [[bacansor(k)]] pnnwi68rg01ljvmn49rr9sfuhzjp4tv secrete 0 279405 6342530 6091107 2026-08-25T10:27:54Z Wikihez 7344 /* Jê */ [[Bikarhêner:Wikihez/templateScript2.js|TS]]: sererastkirin 6342530 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{deng|en|en-us-secrete.ogg|dever=DYA}} === Lêker === {{lêker|en}} # [[avzêkirin]], [[îfrazkirin]] # [[veşartin]] ==== Jê ==== * {{g|en|secretory}} * {{g|en|secretion}} d92a9ayel25e1rimdi6065dmnrns50z şehsuwar 0 282162 6342188 6341833 2026-08-24T14:47:00Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342188 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # Kesê ku [[siwarbûn]]a [[hesp]]an baş dizane. #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Derd û [[dax]] im bê qerar im bê bihar im be çîmen<br>Bê hebîb im bê tebîb im hem xerîb im bê weten<br>Şubhê Ye'qûbî ji eşqa Yûsufî gul [[pîrehen]]<br>[[Mu'nis]]ê derd û xeman im sakinê beytul [[h'ezen]].<br>Tar û mar im intizar im [[şehsuwar]]a min nehat.}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} hzdfw6eno46a7fkbutiu6g0pgjypjqj kîstan 0 283194 6341883 6339874 2026-08-24T12:33:31Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341883 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[zozan]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Zivistanê evê [[yol]]ê, evê beriyê evê [[çol]]ê<br/>[[mij|Mijê]] avête der dolê [[xunav]]ê girtî [[kîstan]]ê.}} ==== Etîmolojî ==== {{ji?|ku}} ==== Bi zaravayên din ==== * {{Z|ckb}}: {{W|ckb|کوێستان|tr=kwêstan}} ==== Werger ==== {{werger-ser}} {{werger-bin}} snqo4eqyk4udqnwwnitjpilpwcksw1u mededkar 0 283199 6342177 6341867 2026-08-24T14:46:27Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342177 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[alîkar]], [[harîkar]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[pertew|Pertewa]] şem'a [[cemal]]ê min disojit dem bi dem<br>[[îştiyaq]]a [[zulf]] û [[xal]]an têk kirim deryayê xem<br>Dame ber [[pêça]] [[firaq]]ê [[wesl]]ê qet nakit kerem<br>Ma [[mededkar]]ê me bit "înna fetehna" sibh û dem<br>Werne sotim ateşe dil [[şehriyar]]a min nehat.}} # Kesê ku alikariyê dike. ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 24ecyffmzaf55gzajf62a1zfwccyggi enwer 0 283202 6342172 6341763 2026-08-24T14:46:12Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342172 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # kes an jî tiştê bi[[nûr]], [[bi ronahî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[hilo|Hulo]] ey seyidê alem [[hilo|hulo]] ey [[mefxer]]ê Adem<br>Ji [[rewd]]ê rabibî [[xatem]] ji nav wê [[merqed]]a [[enwer]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} rzp5srvoaj4nq317raknxcvzzuz26u1 mefxer 0 283203 6342178 6341858 2026-08-24T14:46:30Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342178 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # kes an jî tiştê dibe sedema [[meth]]kirinê #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[hilo|Hulo]] ey seyidê alem [[hilo|hulo]] ey [[mefxer]]ê Adem<br>Ji [[rewd]]ê rabibî [[xatem]] ji nav wê [[merqed]]a [[enwer]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} f2f8j4ct6vs21hk2jomx2fdl4gaqbs5 muhebbet 0 283258 6342180 6341869 2026-08-24T14:46:36Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342180 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[suhbet]], [[hevpeyvîn]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[şehkitêb]]ek min divêt behsî [[muhebbet]] bi't-temam<br>sed [[tilsim]] û [[sihr]] tê da [[pêkve]] [[siryanî|Suryanî]] [[meqam]]<br>[[ebced]]a eşqê me xwend û 'eql wenda kir û mam<br>[[hûrî|Hûriya]] baxê [[buhuşt]]ê [[tûtî]]ya [[tawusxeram]]<br>xeyrî Bateyî padişaha min delala kê yî tu}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 86cqyrny5q87j8zzjmfvlnmm95mvpo5 eqlam 0 283559 6342173 6341828 2026-08-24T14:46:15Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342173 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # pirjimariya [[qelem]]. #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Xudane wehy û [[tenzil]]ê bi [[eqlam]] bi [[tebcil]]ê<br>Qelem da [[nesx]]ê încîle nema Tewrat û [[xeclanî]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} mw952q33czjtswehq8cyvwfvrbh808i mursel 0 283560 6342182 6341854 2026-08-24T14:46:42Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342182 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # kes an jî tiştê hatiye şandin # [[pêxember]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=bi hûkme seyyide [[mursel]] [[nebi]]ye [[axir]] û ewwel<br>[[betal]] kir [[dînha]] [[mûcmel]] bi [[ayat]] û bi [[Quran]]ê}} ==== Têkildar ==== * [[îrsal]] bûn ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} a4soqahdk7u413zmxq07zul2v9g4hau mûcmel 0 283561 6341893 6284877 2026-08-24T12:42:59Z Balyozbot 7867 /* Rengdêr */ +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341893 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # Bi kurtasî [[vegotin]]. # {{mane?|ku}} #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=bi hûkme seyyide [[mursel]] [[nebi]]ye [[axir]] û ewwel<br>[[betal]] kir [[dînha]] [[mûcmel]] bi [[ayat]] û bi [[Quran]]ê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} ng9f6plbf1eymsas07sw9fbcrob82pw mensûx 0 283563 6341892 6142211 2026-08-24T12:41:10Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341892 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[bêhukm]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Çe [[încîl]] û çe [[Tewrat]] in di [[mensûx]] in di [[mulx'at]] in<br>Bi wî navî [[misemmat]] in hukim çû [[kenz]]ê [[rehman]]î}} # ji [[hukm]] rabûn, [[nesux]] bûn ==== Etîmolojî ==== Ji {{deyn|ar|ku|مَنْسُوخ}}. ==== Werger ==== {{werger-ser}} * {{Z|en}}: a {{W|en|superceding}} law, a law which {{W|en|trump}}s a previous one {{werger-bin}} ft7he8gfgj01b6ccpa1wcpdrtukxu6c misemmat 0 283564 6342179 6341863 2026-08-24T14:46:33Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342179 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # {{e|ku|şiîr}} [[menzûme]]ya ku [[beyt]]ên wê bi[[qafiye]] û ji çar beşan pêk tê #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Çe [[încîl]] û çe [[Tewrat]] in di [[mensûx]] in di [[mulx'at]] in<br>Bi wî navî [[misemmat]] in hukim çû [[kenz]]ê [[rehman]]î}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} cviqogs42qth4ibqarfi391r0o0gu4l temcîd 0 283567 6342189 6341843 2026-08-24T14:47:03Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342189 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[hewandin]], [[ezimandin]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Bi ayat bi [[tewhîd]]ê ji [[teşrîf]]ê û [[temcîd]]ê<br>Şeva [[xurrem]] di [[tewlîd]]ê [[senem]] [[hûr]] bûn di [[Tîcan]]ê}} # Ji bilî [[bang]]î [[dia]] û [[minaceet]]ên di [[mînare]]yan de tên xwendin. ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 4hbux62gy37cb8p9nn3pjceo8hz5m6m xeclanî 0 283569 6341890 6320279 2026-08-24T12:39:07Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341890 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[şermezarî]], [[rûreşî]], [[şerm]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Xudanê [[wehî]] û [[tenzil]]ê bi [[eqlam]], bi [[tebcîl]]ê<br> Qelem da [[nesx]]ê [[Incîl]]ê, nema [[Tewrat]] û [[xeclanî]]}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{ji|ar|ku|خجلان}} ([[xeclan]]: [[şermîn]], [[şermker]], [[şermezar]]) ==== Werger ==== {{werger-ser}} * {{Z|fi}}: {{W+|fi|häpeä}} * {{Z|en}}: {{W+|en|shame}} {{werger-bin}} r1k2f7obp2fjfsjb5sg5orco5yuyed6 karîsaz 0 283576 6341899 6283238 2026-08-24T12:44:34Z Balyozbot 7867 /* Rengdêr */ +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341899 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[jêhatî]], [[bikêrhatî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin='''Karîsazê''' bende û sultanê can<br/>Rehîm û Rehman, letîf û mihriban}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} bbk9ts40np85ki9sv0cal3am6ox0gss aferîd 0 283587 6341898 5019521 2026-08-24T12:44:21Z Balyozbot 7867 /* Formeke lêkerê */ +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341898 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} === Formeke lêkerê === {{lêker|ku|form=erê}} # Forma [[dema borî]] ya kesê [[sêyem]] ya ji [[lêker]]a '''[[aferîden]]'''. #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Asîmanê bê sitûn wî kir bedîd<br>Sûretê ba xal û xet wî '''aferîd''' }} ==== Etîmolojî ==== Ji {{ji|fa|ku|آفریدن}} (aferîden: [[afirandin]], [[xuliqandin]], [[çêkirin]]) 9oedgdltb4vi3awgkvy05n4as5jtl8m esselat 0 283591 6342175 6341847 2026-08-24T14:46:21Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342175 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[silav]] û [[selewat]] û [[dua]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[Ger divêtin hûn]] ji [[nar]]ê [[bin]] [[necat]] <br>Bi [[eşq|'işq]] û şewqek hûn bibêjin [[esselat]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 4mqrjd0de6ch97a54l8eiucm8zmzfqu destegîr 0 283593 6342171 6341871 2026-08-24T14:46:09Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342171 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[alîkar]], [[alîgir]], [[piştgir]], [[piştevan]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[destegîr|Destegîr]] û [[mustexas]]ê [[herdu kewn]]<br>Bo gunehkaran [[penah]] û [[pişt]] û [['ewn]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} lhcopctl6hmbtx536c40aymvr0ero14 westane 0 283615 6341889 6339787 2026-08-24T12:38:59Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341889 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=}} # [[rawestîn]], [[sekinîn]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Sef bi sef '''westane''' pişta wî Melek<br>[[nazir|Nazirê]] Nûra Muhemmed ew Melek}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Ferien|m|guman=erê}} {{werger-bin}} jia3f5t317bw9hhg23peyeu91voyf4u sacidîn 0 283616 6341903 6125631 2026-08-24T12:46:18Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341903 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Lêker === {{lêker|ku|c=}} # xwe [[tewandin]], xwe [[çemandin]], çûn sucdê #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[pifkirin|Pif kirî]] ruhê [[xwe|xu]], ew bû [[nazenîn]]<br>[[lew|Lew]] Melek hatin ji bo wî [[sacidîn]] }} ==== Werger ==== {{werger-ser}} {{werger-bin}} ckrl8wfbj9jlkjh9lscxiscn4k0nqmn cebhet 0 283618 6341885 6304103 2026-08-24T12:35:43Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341885 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=m}} # [[enî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Hem bi [[ferman]]a Xuda wê se'etê<br>Nûr ji piştê hate [[nîv]]a [[cebhet]]ê.}} ==== Tewandin ==== {{ku-tewîn-nav/nû|mê}} ==== Etîmolojî ==== Ji {{ji|ar|ku|جبهة}} (cebhe<sup>t</sup>: [[enî]]) ku serekaniya peyva [[cepe]] / [[cephe]] ya kurdî ye jî. 04j9xcgu6sevn1vaqvdtjftr7bzr7ii îbham 0 283620 6342176 6341764 2026-08-24T14:46:24Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342176 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # tila beranî, tila sereke û stûr ya destan #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Hate [[îbham]]ê dibên nûra 'Elî<br>Şu'lê da tilyan û Cennet [[muncelî]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} qv3td21qnbfva86pm1v3zd94l23h6p4 sed hezar û hem çihar û bîst-i elf 0 283711 6341901 5786392 2026-08-24T12:45:47Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341901 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # 124 000, sed û bîst û çar hezar #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[sed hezar û hem çihar û bîst-i elf]] <br>Her yekî bû yek Nebiyyê [[dil-şikerf]]}} cyw9ljjpgjbjy5pmrfjahvuf58zsxue Malik-ul mulkê Celîlê Zulcelal 0 283713 6341902 6265805 2026-08-24T12:45:58Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341902 wikitext text/x-wiki {{jêbirin|deng}} == {{ziman|ku}} == === Mane === {{cure?|ku}} # Padîşahê milkê hêja û rêzdar #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Hate emrê Padîşahê Layezal<br>[[Malik-ul mulkê Celîlê Zulcelal]] }} oade2vrvxuuawa1nhyom1y4n5sgdf5a li yek 0 283757 6341896 5786394 2026-08-24T12:43:40Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341896 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # li hev #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Qedrê Mewlûdê nizanim bêjim ez<br>[[li yek|Li yek]] hişyar bin [[nebe|nebête]] [[cergebez]]}} o4ey1n8e0resuwfkfjyy2ubajbmhc4b ’ezîm 0 283759 6341884 6142258 2026-08-24T12:34:28Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341884 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[mezin]], [[gir]], [[girs]], [[gewre]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ew Xudayê [[melik|malik]]ê mulkê [[’ezîm]]<br>Daye me mîrasa Qur'ana Kerîm}} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 1gxyggb7fcfbwjjuxeoeh1kp0n68rcu 6342169 6341884 2026-08-24T14:12:14Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6342169 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[mezin]], [[gir]], [[girs]], [[gewre]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ew Xudayê [[melik|malikê]] mulkê [[’ezîm]]<br>Daye me mîrasa Qur'ana Kerîm}} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} t926wyvla99ba2cr3dzsdf0op1gcshu 6342170 6342169 2026-08-24T14:46:06Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342170 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[mezin]], [[gir]], [[girs]], [[gewre]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ew Xudayê [[melik|malikê]] mulkê [[’ezîm]]<br>Daye me mîrasa Qur'ana Kerîm}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} he5rwsfeoxxwceiotufa36mk22g0dv5 Sellî ya Rebbî 'ela xeyr-îl beşer 0 284237 6341895 5786399 2026-08-24T12:43:22Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341895 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # Ya Xwedê, dilovaniya xwe li qenctirîn mirovî (anku Mihemed pêxemberî) bibarîne #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[Sellî ya Rebbî 'ela xeyr-îl beşer]]<br>Ta hebin teyr û bixwînin ber [[şecer]] }} 51dv1su621wxxrsj488bewgrz88tnxp xakîpa 0 284238 6341886 6142273 2026-08-24T12:36:23Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341886 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # axa binê pêyan #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[xakîpa|Xakîpa]]yê Ehmed ew [[Beyt-ul heram]] <br>Lew [[şerîf]] in [[zemzem|Zemzem]] û [[rukn]] û [[meqam]]}} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} t86nqe3m0luvxge79cekc2j78kh7pyj 6342168 6341886 2026-08-24T14:12:11Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6342168 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # axa binê pêyan #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[xakîpa|Xakîpayê]] Ehmed ew [[Beyt-ul heram]] <br>Lew [[şerîf]] in [[zemzem|Zemzem]] û [[rukn]] û [[meqam]]}} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} asvfef5789cng9dezyidr935faoj5m2 6342192 6342168 2026-08-24T14:47:12Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342192 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # axa binê pêyan #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=[[xakîpa|Xakîpayê]] Ehmed ew [[Beyt-ul heram]] <br>Lew [[şerîf]] in [[zemzem|Zemzem]] û [[rukn]] û [[meqam]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} rxjqnw8hnr078qd85781gyv3rrac37c 'emd 0 284240 6341894 6265759 2026-08-24T12:43:04Z Balyozbot 7867 /* Mane */ +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341894 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # [[kêmasî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ey şefî'ê sahibê alayê hemd<br>Min hene bêhed guneh, nisyan û ''''emd'''}} 9z1gvwf5rsmmqlibjp6akjswm7e2w7p wasiq 0 284241 6342191 6341844 2026-08-24T14:47:09Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342191 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[civandî]], [[komkirî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Lê me hêvî [[wasiq]] e dê ez [[feqîr]]<br>Jê rê alaya te bim [[roja esîr|roja 'esîr]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} fe8zyj6pseui4v6z5ox3zql3knyf3c1 tesnîm 0 284253 6342190 6341827 2026-08-24T14:47:06Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342190 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # ava [[biheşt]]ê, [[rûbar]]ek ji nav biheştê #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Girt û ba [[tesnîm]]ê [[safî]] kir [[hevîr]]<br>[[têkvedan|Têkveda]] heta ku ew qenc bû [[xemîr]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} d4jab0vodhffwhdo5julrnojmc9xinz nubûwwet 0 284345 6342186 6341802 2026-08-24T14:46:54Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342186 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[pêxemberî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Paşê bo wî çêkirî duwazdeh [[hicab]] <br>Her yekî xweştir ji yarî bê [[hisab]]<br>Hem [[hidayet]] hem [[nubûwwet]] [[rîf'et]] e<br>[[taet|Ta'et]] e yazdeh [[şefa'et]] [[temmet]]e<br>Her yekî [[westan|westabû]] tê de çendî sal<br>Lê [['eded]] [[mes-pare]] [['ilm]]ê [[layezal|Layezal]].}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 6i8wi0imcnnykl94l9hw2tzsudolppf rîfet 0 284347 6341887 6142290 2026-08-24T12:37:18Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341887 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[payedarî]], [[payebilindî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Paşê bo wî çêkirî duwazdeh [[hicab]] <br>Her yekî xweştir ji yarî bê [[hisab]]<br>Hem [[hidayet]] hem [[nubûwwet]] [[rîf'et]] e <br>[[taet|Ta'et]] e yazdeh [[şefa'et]] [[temmet]]e<br>Her yekî [[westan|westabû]] tê de çendî sal<br>Lê [['eded]] [[mes-pare]] 'ilmê [[layezal|Layezal]]}} ==== Etîmolojî ==== {{ji?}} ==== Werger ==== {{werger-ser}} {{werger-bin}} fn4x9h6gkd56iwojunvuy2abro3odi5 6342187 6341887 2026-08-24T14:46:57Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342187 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[payedarî]], [[payebilindî]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Paşê bo wî çêkirî duwazdeh [[hicab]] <br>Her yekî xweştir ji yarî bê [[hisab]]<br>Hem [[hidayet]] hem [[nubûwwet]] [[rîf'et]] e <br>[[taet|Ta'et]] e yazdeh [[şefa'et]] [[temmet]]e<br>Her yekî [[westan|westabû]] tê de çendî sal<br>Lê [['eded]] [[mes-pare]] 'ilmê [[layezal|Layezal]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 7c6uj3pdjv1tgeves2nupj80onryewh eslab 0 284355 6342174 6341795 2026-08-24T14:46:18Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342174 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # [[dûnde]], [[zuriyet]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Hate [[eslab]]ê [[butunî]] [[tahir]] e<br>Qet nebû yek jî, xerab û [[facir]] e<br>Jêrî Ednan ta ji 'Ebdullah [[guhest]]<br>Bîst û yek bab in, hemî rast û durust}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} to3hzmia5ofu8cbp1ul8el8rnsd83xc munqelib 0 284357 6342181 6341837 2026-08-24T14:46:39Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342181 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # kesê înqilabê dike # tişt an jî kesê xwe guhorî # {{mane?|ku}} #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ew emanet hate nik 'Ebdulmenaf<br>Hem ji nik 'Ebdulmenaf ew [[muxtefî]]<br>Hate pişta Haşim ew Nûra sefî<br>Hem ji Haşim bû emanet [[munqelib]]<br>Hate bû [[mêhvan]]ê 'Ebdulmuttelib<br>Silsila wî ta bi Adem da û bab<br>[[pêkve|Pêkve]] dê biçne [[biheşt]]ê [[bêhîsab]]}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} 61l4xug7ev8wrxd6uotnv454p8w775p muxtefî 0 284358 6342184 6341830 2026-08-24T14:46:48Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342184 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # Tişt an kesê xwe [[veşartin|vedişêre]]. #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Ew emanet hate nik 'Ebdulmenaf<br>Hem ji nik 'Ebdulmenaf ew [[muxtefî]]<br>Hate pişta Haşim ew Nûra sefî}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} s64zkhd8clq0rfgh1ci58sqkpjl818j musteqer 0 284368 6342183 6341857 2026-08-24T14:46:45Z Balyozbot 7867 Bot: Sererastkirina şablonan û koda zimên 6342183 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Navdêr === {{navdêr|ku}} # rewşa ku bi [[aram]]î, bi [[îstiqrar]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Nûra Ebû-Bekir di [[wasta]]yê 'Umer <br>'Usman di [[xunser]] [[musteqer]] <br>Hate [[îbham]]ê dibên nûra 'Elî <br>[[şu'lê|Şu'lê]] da tilyan û Cennet [[muncelî]] <br>Hatî Hewwa û nezer da nûrî saf <br>Gotî: “- Ya Adem çi nûr e pir [[şefaf]]? }} ==== Têkildar ==== * [[îstiqrar]] ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} p96vkytjnw7h2h6kxb8av5cmvqpt094 Kunî Hebîbê Ehmeda 0 284372 6341900 5786404 2026-08-24T12:45:21Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341900 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # peyda bibe ey Mihemedê delal! #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Girtî yek [[qebde]] ji nûra xwe Xuda,<br>Gote wê: "'''Kunî Hebîbê Ehmeda'''".<br>Hêj ne [[erş]] û [[ferş]] û kursî û qelem<br>Hêj ne [[lewh]] û [[enbiya]]yê [[muhteşem]]<br>Salîha [[tesbîh]] kirî nûra [[şikelf]]<br>Şeş [[mîet]] [[elf]] û çîhar û bîst û [[elf]]}} j4w0qdhi35fkx46a8mvdgtyzkfavrwn sucûd 0 284436 6341888 6287703 2026-08-24T12:38:15Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341888 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-kîte}} === Rengdêr === {{rengdêr|ku}} # [[sicde]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Pirr girî û xweş girî bê hed gelek<br>[[Newheê “inna zelemna”]] çû felek<br>Rojekê ew [[der]] [[sucûd]]ê bê [[mefer]]<br>Pirr girî û hem li erşê kir [[nezer]] }} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Anbetung|f|guman=erê}} {{werger-bin}} swf4nw5mrqbdxn705t3xohbsks1jh9q Newheê “inna zelemna” 0 284437 6341897 5786406 2026-08-24T12:44:16Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341897 wikitext text/x-wiki == {{ziman|ku}} == === Mane === {{cure?|ku}} # dengê “min neheqî kir” #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Pirr girî û xweş girî bê hed gelek<br>[[Newheê “inna zelemna”]] çû felek<br>Rojekê ew [[der]] [[sucûd]]ê bê [[mefer]]<br>Pirr girî û hem li erşê kir [[nezer]]}} h6vb6ik3s8gic5mihx8mx42aj1p01g2 pronoun 0 311453 6342262 6261515 2026-08-24T22:27:26Z Wikihez 7344 /* Navdêr */ bnr en.wikt (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342262 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{mj|KY}} {{IPA|en|/ˈpɹəʊnaʊn/}} * {{mj|DYA}} {{IPA|en|/ˈpɹoʊ.naʊn/}} * {{deng|en|en-us-pronoun.ogg|dever=DYA}} === Navdêr === {{en-navdêr}} # {{f|en|rêziman}} [[cînav|Cînav]], [[pronom]]. # {{f|en|bi piranî|wek pirjimar}} Her cînavê ku tercîhên însanekî tarîf dike, bi piranî nasnameya cinsî tarîf dike. #: {{mk|en|My '''pronouns''' are she/her.|Cînava min a cinsî, keçik e.|rêz=1}} ==== Jornav ==== * {{g|en|part of speech}} * {{g|en|pro-form}} ==== Jê ==== {{kol3|en |adjective pronoun|adjectival pronoun|demonstrative pronoun|pronoun demonstrative|determinative pronoun|emphasizing pronoun|indefinite pronoun|intensive pronoun|interrogative pronoun|object pronoun|personal pronoun|possessive pronoun|reciprocal pronoun|reflexive pronoun|relative pronoun|subject pronoun|substantive pronoun|substantival pronoun |gender-neutral pronoun|epicene pronoun|reflexive possessive pronoun|prepositional pronoun|resumptive pronoun|play the pronoun game|weak pronoun }} ==== Formên alternatîv ==== * {{g|en|pronoune}} {{mj|kevnbûyî}} ==== Etîmolojî ==== Ji {{pêş|en|pro-|noun}}, modelbûyî ji ser {{ji|frm|en|pronom}}, ji {{ji|la|en|pronomen}}, ew bixwe deynkirî ji {{ji|grc|en|ᾰ̓ντωνῠμῐ́ᾱ}}. ==== Têkildar ==== * {{g|en|pronominal}} == {{ziman|sco}} == === Navdêr === {{navdêr|sco}} # {{mijar|sco|zimannasî}} {{g|ku|cînav}}, {{g|ku|zemîr}} === Çavkanî === {{rûpela wergerê|sco|cînav}} 3g5edrq67su8v4pro4wrtda1jgzgtb9 6342263 6342262 2026-08-24T22:28:25Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342263 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{mj|KY}} {{IPA|en|/ˈpɹəʊnaʊn/}} * {{mj|DYA}} {{IPA|en|/ˈpɹoʊ.naʊn/}} * {{deng|en|en-us-pronoun.ogg|dever=DYA}} === Navdêr === {{en-navdêr}} # {{f|en|rêziman}} [[zemîr|Zemîr]], [[cînav]], [[pronom]]. # {{f|en|bi piranî|wek pirjimar}} Her cînavê ku tercîhên însanekî tarîf dike, bi piranî nasnameya cinsî tarîf dike. #: {{mk|en|My '''pronouns''' are she/her.|Cînava min a cinsî, keçik e.|rêz=1}} ==== Jornav ==== * {{g|en|part of speech}} * {{g|en|pro-form}} ==== Jê ==== {{kol3|en |adjective pronoun|adjectival pronoun|demonstrative pronoun|pronoun demonstrative|determinative pronoun|emphasizing pronoun|indefinite pronoun|intensive pronoun|interrogative pronoun|object pronoun|personal pronoun|possessive pronoun|reciprocal pronoun|reflexive pronoun|relative pronoun|subject pronoun|substantive pronoun|substantival pronoun |gender-neutral pronoun|epicene pronoun|reflexive possessive pronoun|prepositional pronoun|resumptive pronoun|play the pronoun game|weak pronoun }} ==== Formên alternatîv ==== * {{g|en|pronoune}} {{mj|kevnbûyî}} ==== Etîmolojî ==== Ji {{pêş|en|pro-|noun}}, modelbûyî ji ser {{ji|frm|en|pronom}}, ji {{ji|la|en|pronomen}}, ew bixwe deynkirî ji {{ji|grc|en|ᾰ̓ντωνῠμῐ́ᾱ}}. ==== Têkildar ==== * {{g|en|pronominal}} == {{ziman|sco}} == === Navdêr === {{navdêr|sco}} # {{mijar|sco|zimannasî}} {{g|ku|cînav}}, {{g|ku|zemîr}} === Çavkanî === {{rûpela wergerê|sco|cînav}} s8x04dlofc87f3vw8yoypqawe8zjae6 6342276 6342263 2026-08-24T22:41:12Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342276 wikitext text/x-wiki == {{ziman|en}} == === Bilêvkirin === * {{mj|KY}} {{IPA|en|/ˈpɹəʊnaʊn/}} * {{mj|DYA}} {{IPA|en|/ˈpɹoʊ.naʊn/}} * {{deng|en|en-us-pronoun.ogg|dever=DYA}} === Navdêr === {{en-navdêr}} # {{f|en|rêziman}} [[zemîr|Zemîr]], [[cînav]], [[pronom]]. # {{f|en|bi piranî|wek pirjimar}} Her cînavê ku tercîhên însanekî tarîf dike, bi piranî nasnameya cinsî tarîf dike. #: {{mk|en|My '''pronouns''' are she/her.|Cînava min a cinsî, keçik e.|rêz=1}} ==== Formên alternatîv ==== * {{g|en|pronoune}} {{mj|kevnbûyî}} ==== Jornav ==== * {{g|en|part of speech}} * {{g|en|pro-form}} ==== Jê ==== {{kol3|en |adjective pronoun|adjectival pronoun|demonstrative pronoun|pronoun demonstrative|determinative pronoun|emphasizing pronoun|indefinite pronoun|intensive pronoun|interrogative pronoun|object pronoun|personal pronoun|possessive pronoun|reciprocal pronoun|reflexive pronoun|relative pronoun|subject pronoun|substantive pronoun|substantival pronoun |gender-neutral pronoun|epicene pronoun|reflexive possessive pronoun|prepositional pronoun|resumptive pronoun|play the pronoun game|weak pronoun }} ==== Têkildar ==== * {{g|en|pronominal}} ==== Etîmolojî ==== Ji {{pêş|en|pro-|noun}}, modelbûyî ji ser {{ji|frm|en|pronom}}, ji {{ji|la|en|pronomen}}, ew bixwe deynkirî ji {{ji|grc|en|ᾰ̓ντωνῠμῐ́ᾱ}}. == {{ziman|sco}} == === Navdêr === {{navdêr|sco}} # {{mijar|sco|zimannasî}} {{g|ku|cînav}}, {{g|ku|zemîr}} === Çavkanî === {{rûpela wergerê|sco|cînav}} ddmaezhw4mea6nfmjg4zgh5hhkt4tkn omasum 0 314433 6342235 5731346 2026-08-24T20:54:15Z Şêr 1103 ne pirtûk, pizrûk :) 6342235 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} #(biyol.) [[hezarpizrûk]] q7537kgws5lcruneew7pqpmfgakpae5 6342245 6342235 2026-08-24T21:24:00Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v1.7). 6342245 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} #(biyol.) [[hezarpizrûk]] #* {{jêder-kitêb|en|nivîskar=Peter Langer|sernav=Comparative Anatomy of the Gastrointestinal Tract in Eutheria II: Taxonomy, Biogeography and Food. Laurasiatheria|weşanxane=Walter de Gruyter GmbH & Co KG|sal=2017|isbn=978-3-11-056221-7|url=https://www.google.com.tr/books/edition/Comparative_Anatomy_of_the_Gastrointesti/Ge45DwAAQBAJ?hl=en&gbpv=1&dq=omasum&pg=PA481&printsec=frontcover|jêgirtin=In the bovine '''omasum''', Becker et al. (1963) found laminae of the fourth order.}} qjj2szl3m3qcygicbs9kk5tnx3fhsj6 qefik 0 455381 6342330 6325327 2026-08-25T05:23:37Z Wikihez 7344 /* Navdêr 2 */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342330 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{ku-IPA}} * {{ku-kîte}} === Navdêr === {{navdêr|ku|z=n}} # [[berqef]] ango bin [[lat]] û [[zinar]]an #* {{jêder-kovar|ku|jêgirtin=Zivistanê di çeman û golên pir kûr de, '''qefikê''' tahtan cîhê kombûna wan e. Taht tune bin ew erdê vedidin di nav av, qûm û heriyê de ji xwe re qulikan çêdikin û dikevinê. Di wan qulan de bi destan tê girtin. Di girtînê de hostatî lazim e. Masiyên qulan celebê bi cisn in, rind in.|kovar=Kovara Kurmancî|sernav=Masî û masîvanî|url=https://www.institutkurde.org/publications/kurmanci/telechargement/ku50.pdf|nivîskar=Eyûb Sînan KIRAN|weşanxane=Weşanên Enstîtuya kurdî ya Parîsê|hejmar=50|sal=Havîn 2012|rûpel=4}} ==== Tewandin ==== {{ku-tewîn-nav/nû|nêr}} === Navdêr 2 === [[Wêne:Soil sifter.jpg|thumb|Qefika xîzê]] {{navdêr|ku|z=m}} # {{f|ku|Elegez|Kurdiya Kavkazê}} [[amûr]]eke ku pê [[xîz]]ê [[eleg]] dikin, [[kevirgir]], [[bêjing]], [[serad]]. #* {{jêder|ku|jêgirtin=Qûm tê '''qefik''' û hebek ji wê diçe hundur,<br/>Wir diêşîne, nexweş diêxe ruhber bi kenc,<br/>Û rokê jî nişkeva ji wir... dertê durr.|Çerkezê Reş, Şorişa Xebera, Yêrêvan, 1986}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{bêetîmolojî|ku}} ==== Werger ==== {{werger-ser}} {{werger-bin}} nmr4d0wm54syvlq7ps73pknz7whk3jj یاری 0 579929 6342268 6081018 2026-08-24T22:33:08Z Şêr 1103 /* {{ziman|ckb}} */ 6342268 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|sc=Arab|tr=-}} # {{ku-Latn|yarî}} #* {{jêder-kitêb|ku|jêgirtin=ھەردەم دا لورین چیتە نك و دا بویکا باربی ژبیر کەت ھێلیتە ل مال، چونکی '''یاری''' دگەل ھەڤالا خۆ دکرن و بەس ھزرا وێ لسەر یارییا بوو دگەل وێ|sc=ku-Arab|tr=Herdem da Lurîn çîte nik û da bwîka barbî jibîr ket hêlîte li mal, çunkî yarî digel hevala xo dikirin û bes hizra wê liser '''yarîya''' bû digel wê.|sernav=Bêrîvan û Hîvî (Çîrokêt Zarokan)|nivîskar=Leylan Îsmeîl|weşanxane=Çapxana Xanî|cih=Dihok|sal=2012|r=15}} == {{ziman|sdh}} == === Navdêr === {{navdêr|sdh}} # [[alîkarî]] == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[lîstik]] #: {{mînak|ckb|ئەم یارییە زۆر خۆشە.|tr=Em yariye zor xoşe.|werger=Ev lîstik pir xweş e.}} #: {{mînak|ckb|یارییەکە کاتژمێر هەشت دەست پێدەکات.|tr=Yaryeke katjimêr heşt dest pêdekat.|werger=Lîstik di saet heştan de dest pê dike.}} ==== Lêker ==== * {{g|ckb|یاری کردن}} ==== Têkildar ==== * {{g|ckb|یاریزان}} * {{g|ckb|یاریگە}} == {{ziman|fa}} == === Navdêr === {{navdêr|fa|tr=yâri}} # [[alîkarî]], [[harîkarî]], [[harî]], [[alî]], [[destek]], [[misaede]], [[yarmetî]] ==== Jê ==== * {{g|fa|یاری رساندن|tr=yâri rasândan}} 4hjdsbhzffr7jvjk6pzfw35e31nxyb8 6342275 6342268 2026-08-24T22:41:09Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342275 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|sc=Arab|tr=-}} # {{ku-Latn|yarî}} #* {{jêder-kitêb|ku|jêgirtin=ھەردەم دا لورین چیتە نك و دا بویکا باربی ژبیر کەت ھێلیتە ل مال، چونکی '''یاری''' دگەل ھەڤالا خۆ دکرن و بەس ھزرا وێ لسەر یارییا بوو دگەل وێ|sc=ku-Arab|tr=Herdem da Lurîn çîte nik û da bwîka barbî jibîr ket hêlîte li mal, çunkî yarî digel hevala xo dikirin û bes hizra wê liser '''yarîya''' bû digel wê.|sernav=Bêrîvan û Hîvî (Çîrokêt Zarokan)|nivîskar=Leylan Îsmeîl|weşanxane=Çapxana Xanî|cih=Dihok|sal=2012|r=15}} == {{ziman|sdh}} == === Navdêr === {{navdêr|sdh}} # [[alîkarî]] == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[lîstik]] #: {{mînak|ckb|ئەم یارییە زۆر خۆشە.|tr=Em yariye zor xoşe.|werger=Ev lîstik pir xweş e.}} #: {{mînak|ckb|یارییەکە کاتژمێر هەشت دەست پێدەکات.|tr=Yaryeke katjimêr heşt dest pêdekat.|werger=Lîstik di saet heştan de dest pê dike.}} ==== Têkildar ==== * {{g|ckb|یاریزان}} * {{g|ckb|یاریگە}} ==== Lêker ==== * {{g|ckb|یاری کردن}} == {{ziman|fa}} == === Navdêr === {{navdêr|fa|tr=yâri}} # [[alîkarî]], [[harîkarî]], [[harî]], [[alî]], [[destek]], [[misaede]], [[yarmetî]] ==== Jê ==== * {{g|fa|یاری رساندن|tr=yâri rasândan}} 2qlpv1gwb0czt53f2lg06wr6grp6pjs ئاشتی 0 580116 6342286 5652692 2026-08-24T22:55:15Z Şêr 1103 6342286 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=-|sc=Arab}} # {{ku-Latn|aştî}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[aştî]], [[aramî]] (rewşa lihevhatin, aramî û nebûna şer û pevçûnan) #: {{mînak|ckb|هەموو جیهان پێویستی بە ئاشتی هەیە.|tr=Hemû cîhan pêwîstî be aştî heye.|werger=Pêdiviya hemû cîhanê bi aştiyê heye.}} #: {{mînak|ckb|ئەوان پەیامی ئاشتی و پێکەوەژیان بڵاودەکەنەوە.|tr=Ewan peyamî aştî u pêkewejiyan bilawdekenewe.|werger=Ew peyama aştî û pêkvejiyanê belav dikin.}} ==== Dijmane ==== * {{g|ckb|شەڕ}} * {{g|ckb|جەنگ}} ==== Hevmane ==== * {{g|ckb|ئارامی}} * {{g|ckb|تەبایی}} * {{g|ckb|پێکهاتن}} ==== Têkildar ==== * {{g|ckb|ئاشتیخواز}} * {{g|ckb|پێکەوەژیان}} * {{g|ckb|ئاسایش|tr=asayiş}} psglqtb7tp83u9cr12h5u941e93xo4p 6342316 6342286 2026-08-24T23:41:25Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342316 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=-|sc=Arab}} # {{ku-Latn|aştî}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[aştî]], [[aramî]] (rewşa lihevhatin, aramî û nebûna şer û pevçûnan) #: {{mînak|ckb|هەموو جیهان پێویستی بە ئاشتی هەیە.|tr=Hemû cîhan pêwîstî be aştî heye.|werger=Pêdiviya hemû cîhanê bi aştiyê heye.}} #: {{mînak|ckb|ئەوان پەیامی ئاشتی و پێکەوەژیان بڵاودەکەنەوە.|tr=Ewan peyamî aştî u pêkewejiyan bilawdekenewe.|werger=Ew peyama aştî û pêkvejiyanê belav dikin.}} ==== Hevmane ==== * {{g|ckb|ئارامی}} * {{g|ckb|تەبایی}} * {{g|ckb|پێکهاتن}} ==== Dijmane ==== * {{g|ckb|شەڕ}} * {{g|ckb|جەنگ}} ==== Têkildar ==== * {{g|ckb|ئاشتیخواز}} * {{g|ckb|پێکەوەژیان}} * {{g|ckb|ئاسایش|tr=asayiş}} chet2pdvvjqtbev6gm9c8hqlv3hujgh زانست 0 580398 6342282 5042708 2026-08-24T22:49:59Z Şêr 1103 6342282 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m|tr=-|sc=Arab}} # {{guherto|ku|zanist}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[zanist]], [[elm]], [[zanîn]] (sîstema zanînê ya ku li ser ceribandin, ezmûn û delîlan ava dibe) #: {{mînak|ckb|زانست کلیلی پێشکەوتنی مرۆڤایەتییە.|tr=Zanist klîlî pêşkewtinî mirovayetîye.|werger=Zanist kilîla pêşketina mirovahiyê ye.}} #: {{mînak|ckb|ئەو حەزێکی زۆری بۆ فێربوونی زانست هەیە.|tr=Ew hezêkî zorî bo fêrbûnî zanist heye.|werger=Hezeke wî ya mezin ji bo fêrbûna zanistê heye.}} ==== Têkildar ==== * {{g|ckb|زانا}} * {{g|ckb|زانکۆ}} * {{g|ckb|زانستی}} q1f7dafcuh3xv54mcloakxde0fvpjsx 6342283 6342282 2026-08-24T22:51:46Z Şêr 1103 /* Navdêr */ 6342283 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|z=m|tr=-|sc=Arab}} # {{guherto|ku|zanist}} == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb|tr=zanist}} # [[zanist]], [[elm]], [[zanîn]] (sîstema zanînê ya ku li ser ceribandin, ezmûn û delîlan ava dibe) #: {{mînak|ckb|زانست کلیلی پێشکەوتنی مرۆڤایەتییە.|tr=Zanist klîlî pêşkewtinî mirovayetîye.|werger=Zanist kilîla pêşketina mirovahiyê ye.}} #: {{mînak|ckb|ئەو حەزێکی زۆری بۆ فێربوونی زانست هەیە.|tr=Ew hezêkî zorî bo fêrbûnî zanist heye.|werger=Hezeke wî ya mezin ji bo fêrbûna zanistê heye.}} ==== Têkildar ==== * {{g|ckb|زانا}} * {{g|ckb|زانکۆ}} * {{g|ckb|زانستی}} 9zigiql20npq308jkcf6i7k8s5kmi7s Gotûbêja modulê:ku-Arab-translit 829 652404 6342322 6341874 2026-08-25T00:47:22Z Ghybu 1393 /* Test */ Bersiv 6342322 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. W" li jor qala modula "parser" kirye; bi vê modulê tê zanîn ku ew peyv lêker, navêr û tiştekî din e. ::Feqet ji bo hevokan problemek din heye: zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn... Bnr. ''[[:en:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) 2qjjmxafe6zpvj4gfqpd8i9j3zel9tl 6342323 6342322 2026-08-25T00:48:14Z Ghybu 1393 /* Test */ 6342323 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê tê zanîn ku ew peyv lêker, navêr û tiştekî din e. ::Feqet ji bo hevokan problemek din heye: zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn... Bnr. ''[[:en:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) 8bpt4xhnpf4vr3i4auvygwdmypccce0 6342324 6342323 2026-08-25T00:49:28Z Ghybu 1393 /* Test */ 6342324 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê tê zanîn ku ew peyv lêker, navêr û tiştekî din e. ::Feqet ji bo hevokan problemek din heye: zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn... Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) iuevkixp5s2da45gbgmqkb4s2j2iitp 6342325 6342324 2026-08-25T00:50:47Z Ghybu 1393 /* Test */ 6342325 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê tê zanîn ku ew peyv lêker, navêr û tiştekî din e. ::Feqet ji bo hevokan problemeke din heye: zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn... Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) df9o49v01x7nlhkkjebldqnjz41gv5q 6342326 6342325 2026-08-25T00:55:00Z Ghybu 1393 /* Test */ 6342326 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê tê zanîn ku ew peyv lêker, navêr û tiştekî din e. Zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn.. ::Feqet ji bo hevokan nayê zanîn.. Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) f44cxyzpqcs4gjaftbtbseh2yfdlqh0 6342327 6342326 2026-08-25T01:01:04Z Ghybu 1393 /* Test */ 6342327 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê an jî bi şablona ku hatiye bikaranîn tê zanîn ku ew peyv lêker, navêr û tiştekî din e. Zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên zanîn.. ::Feqet ji bo hevokan nayê zanîn.. Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) c77wcm9duvo9k2wngge3oa5h57fih7u 6342328 6342327 2026-08-25T01:02:06Z Ghybu 1393 /* Test */ 6342328 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê an jî bi şablona ku hatiye bikaranîn tê zanîn ku ew peyv lêker, navêr û tiştekî din e. Zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr, renddêr, ...). Li gor cureyê peyvê paşgir û pêşgir tên fêm kirin... ::Feqet ji bo hevokan nayê zanîn.. Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) 66wg8kdexpiyj4ta5j368feqn0r2ygq 6342329 6342328 2026-08-25T01:12:08Z Ghybu 1393 /* Test */ 6342329 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê an jî bi şablona ku hatiye bikaranîn tê zanîn ku ew peyv lêker, navdêr (tewandî an na) û tiştekî din e. Zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr (tewandî an na ?), rengdêr, ...). Li gor cureyê rêzimanî paşgir û pêşgir tên fêm kirin... Li vira em dibêjin: dema ku ew lêker e bnr. paşgirên lêkeran, dema ku ew naddêr e bnr. paşgirên navdêran, ... ::Feqet ji bo hevokan nayê fêm kirin... Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) tsirikoqnyop2n8nbcidhjbvxguj06z 6342342 6342329 2026-08-25T07:52:50Z Şêr 1103 /* Test */ Bersiv 6342342 wikitext text/x-wiki == kod == :<small>Ji [[Gotûbêja bikarhêner:Ghybu]]</small> Silav. Ghybu tu dikarî [[Bikarhêner:Calak/ckb-translit.js|ev kod]] biguherîn bo lua? Ji bo wikiferhenga înglzî dixwazim her wek [[:en:Module:Armn-translit]]. Pirr spas.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 19:12, 27 pûşper 2018 (UTC) :{{ragihandin|Calak}} Erê, ez çêdikim.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 02:36, 28 pûşper 2018 (UTC) ::Baştire li ser [[Modul:ku-translit]] kar bikin.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 15:18, 29 pûşper 2018 (UTC) :::regex: | , //b , //s li lua de kar neke.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:19, 29 pûşper 2018 (UTC) ::::{{Silav|Calak}}, dizanim ("|" di nav parantezan kar nake...). Te koda javascript'ê ceriband: [https://sourceforge.net/projects/kurdinus/?source=typ_redirect]? Bo mînak: "برا" bo "Bra" dinivîse...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 20:23, 29 pûşper 2018 (UTC) :::::Min ceriband. dyar -> diyar, bra -> bira, aşkra -> aşkira li javascript jî kar neke. Ev ne gringe, niha divê ku grifên | , //b , //s çareser bikin... .--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 20:39, 29 pûşper 2018 (UTC) ::::::{{ragihandin|Calak}}"//b , //s" ne pirsgirêk e, [https://ku.wiktionary.org/wiki/Modul:ku-xwendin vitira] jî tê çêkirin (bo tabloyan) / "|" --> [https://ku.wiktionary.org/w/index.php?title=Modul:ku-Arab&diff=2989948&oldid=2989908]/ //s --> %s. Min tiştik fehm nekir: weteya vê regexê çi ye: [^ء-يٱ-ەwy] (ez tîpên erebî pirr nizanim)? [ٱ-ە]?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 29 pûşper 2018 (UTC) ::::::: ء-ي + ٱ-ە + w + y ::::::: yanî hemî tîpên erebî-kurdî + w + y. :::::::--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:34, 29 pûşper 2018 (UTC) :::::::: ء-ي + ٱ-ە = hemî tîpên erebî-kurdî :::::::::no alternation (the | operator)--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 08:03, 30 pûşper 2018 (UTC)). ::::::::::{{ragihandin|Calak}} Alternatîf nivîsandina du carî ye, mînak (the operator -->test test): text = mw.ustring.gsub('the operator', '(the|operator)', 'test') '''alternatîf''' text= mw.ustring.gsub('the operator', 'the', 'test') text= mw.ustring.gsub(text, 'operator', 'test') return text ::::::::::--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 11:57, 30 pûşper 2018 (UTC) {{outdent|::::::::::}}{{ragihandin|Calak}} Min koda berî li gorî peyvan çêkir, vitira bikarananîn regex'an hêsan e. Niha "/b" û "/s" ne pêwîst in. Bi min pirsgirêk hat rakirin...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:13, 30 pûşper 2018 (UTC) :Niha pirsgirek heye. Li coda javascript de dinivîse "zanistname" an "destkarîy". lêbelê li vir "zansitname" an "destikarîy" hatiye nivîsandin!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 22:04, 30 pûşper 2018 (UTC) ::{{ragihandin|Calak}} Çêbû. Niha koda lua wekî koda javascript'ê derdikevî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 23:22, 30 pûşper 2018 (UTC) :::Pirr spas. Ji kerema xwe re [[:en:Module:ckb-translit]] edit bike; bizane çi guherandinek pêwîste. function "export.tr" 3 parameter dixwaze "text, lang, sc". Bo zanyarî zêdetir binêre [[:en:Module:tg-translit]], [[:en:Module:bg-translit]] bizane çawan kar dike. dest xweş.--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 10:39, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Li [https://en.wiktionary.org/wiki/Module:languages/data3/c vira] (ckb) tê çêkirin. Koda <code>translit_module = "ckb-translit",</code> tevlî agahiyên <code>m["ckb"]</code> bike.--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 13:13, 1 tîrmeh 2018 (UTC) {{outdent|:::}}{{ragihandin|Calak}} Tu dikarî [[:en:Category:Terms with manual transliterations different from the automated ones/ckb|vana]] kontrol bikî? Di nav gotarê de transliterasyonên ku hatine nivîsandin û transliterasyonên lua yek ninin--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:22, 1 tîrmeh 2018 (UTC) :Erê [https://en.wiktionary.org/wiki/Special:Contributions/Calak binêre]. Pirranî ł, ř, ē, ū li cihê ll, rr, ê, û hatiye nivîsandin. Tu dikarî bi bot [[:en:Category:Terms with redundant transliterations/ckb]] jê bibî?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:28, 1 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, feqet bi botê destûr pêwîst e. Na?--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 21:36, 1 tîrmeh 2018 (UTC) :::Dikarî her Ghybu bi kar bihînî, kes nazane. Tenê pêwîste bi texîr (delay) edit bikî!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 21:41, 1 tîrmeh 2018 (UTC) ::::{{ragihandin|Calak}} Min ceriband: bot ser hemû wîkiyan dişuxilî feqet ser en-wîkî nedişuxilî...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 22:21, 1 tîrmeh 2018 (UTC) * {{ku-translit|دەستکاریی}} li cihê destkarîy. Çima?!--[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:54, 2 tîrmeh 2018 (UTC) :[https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990641&oldid=2990279] heke و nehat ی + ی = îy --[[Bikarhêner:Calak|Çalak]]<sup>[[Bikarhêner nîqaş:Calak|Готубеж]] </sup> 17:58, 2 tîrmeh 2018 (UTC) ::{{ragihandin|Calak}} Erê, pirsgirêk ew guherandina ye...--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:01, 2 tîrmeh 2018 (UTC) :::{{ragihandin|Calak}} Ew jî çêbû: [https://ku.wiktionary.org/w/index.php?title=Modul:ku-translit&curid=652329&diff=2990667&oldid=2990656]--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu#top|gotûbêj]]) 18:32, 2 tîrmeh 2018 (UTC) == Pirsgêrek == [https://ku.wiktionary.org/w/index.php?title=%D8%AC%D9%86%D8%B3&diff=3735258&oldid=3735231&diffmode=source] (''cinis'')--[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:17, 31 tebax 2019 (UTC) == Test == {{silav|Şêr}}. Ji bo testan, tiştekî vitira baştir e: [[:en:Module:ckb-translit/testcases]]. Bi vî awayî em hertim dizanin ku şablon rind dişxule an na... [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:37, 23 tebax 2026 (UTC) :Silav Ghybu, spas, ev [[:Modul:ku-Arab-translit/testcases]] wisa baş e? An jî bila bibe ckb? -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:40, 23 tebax 2026 (UTC) ::Na ji bo zimanê kurmancî jî tê bikaranîn ji ber vê yekê em "ku-Arab" kir. Herwiha li gor vê modelê kodê binivîse [[Modul:ckb-translit/testcases]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 16:50, 23 tebax 2026 (UTC) :::{{r|şêr}} [//ku.wiktionary.org/w/index.php?title=%DA%AF%D8%B1%D9%86%DA%AF&curid=269299&diff=6341546&oldid=5994849] Ji bo gotinên vitira hîn pirr zû ye, belkî problemên din derdikevin :) Te tenê peyvên ku di nav lîsteya TestCasê de sererast kiriye. Tu çito dizanî ku yên din de problemên din derneketine? Vana jî werin kontrol kirin: [[:Kategorî:Translîterasyona zarûrî û manûel bi soranî]] / [[:Kategorî:Transliterasyona zarûrî û manûel bi soranî]] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:39, 23 tebax 2026 (UTC) ::::Xebera te ye, gelekî zû ye :(, min ew lîste dît, û dixwest bi awayekî rêz bikim, lê hê nizanim çawa. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:47, 23 tebax 2026 (UTC) :::::Bi AutoWikiBrowser-ê, sernavê gotar û translîterasyonan (kategoriyên jor) bigir {{param2|tr}}. Paşê jî ew lîsteyê tevlî ''TestCasê'' bike û sererast bike... Paşê jî hemû peyvên soranî bigir û test bike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:54, 23 tebax 2026 (UTC) ::::::Min ji bîr kir ku AWB hê jî heye. :P Ez ê lê binêrim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:57, 23 tebax 2026 (UTC) :::::::Min bêyî AWB çêkir: [[:Bikarhêner:Şêr/lîste2]]. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:38, 23 tebax 2026 (UTC) ::::::::Ez dibêm dikarî otomatîk lîste çêkî bi riya [[Modul:parser]] an [[Modul:template parser]] feqat çawa nizanim :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]]) 19:45, 23 tebax 2026 (UTC) :::::::::Min bi Pythoncan û Luayê çêkir. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:47, 23 tebax 2026 (UTC) ::::::::::Li gorî [[:Bikarhêner:Şêr/lîste2|lîsteyê]] gelek sererastkirin hewce ne, di kodê de. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:50, 23 tebax 2026 (UTC) :::::::::::Bo agahdarî: nivîsên bi "ll"/"ł" (wekî {{q|ckb|ئاژه‌ڵ|tr=-}} ajell/ajeł) û "rr/ř" ne cuda ne.. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:53, 23 tebax 2026 (UTC) ::::::::::::Min fam kir :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 19:57, 23 tebax 2026 (UTC) :::::::::::::Rewşa dawî [[:Bikarhêner:Şêr/lîste2|ev]] e. Ez ê rojeke din, dema wextê min çêbû, dewam bikim. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:19, 23 tebax 2026 (UTC) {{outdent|:::::::::::::}} {{r|Şêr}} Tu nikarî translîterasyonan bi vî awayî (li gor dengdêr/dengdaran û kîtekirinê) sererast bikî. Binêre {{q|ckb|ئاسن|tr=asin}} û {{q|ckb|ئاسنان|tr=asnan}}, her du jî bi hêsanî tên bilêvkirin, "a-sin" û "as-nan". Çima em dibêjin yê rast "a-si-nan" e? Ji ber ku em peyva "asin" nas dikin û li gor rêzimanî "asin" + "an" = "asinan" ne <s>"asnan"</s> e. Bi gotineke din zanîna peyva ne tewandî hewce ye {{=D}}. 1) Di tabloyên tewadinan de pêşta peyva sade (ne tewandî) translît bike başê jî translîta paşgiran tevlî bike : {{q|ckb|ئاسن|tr=asin}} + {{q|ku|ان}} = asin + an = asinan. Ne yekcarê de... 2) Li vira jî belkî paşgir û pêşgir werin jêkirin û translîtên wan her sêyan werin kirin û paşê jî dîsa werin cem hev :) <poem> peyv ↓ paşgir/pêşgir hene? (ان, ێک, ەکە, ەکان, ...) ↓ pêşgir + pSade <small>(peyv bi pêşgir/paşgirê)</small> + paşgir ↓ translit(paşgir) + translit(pSade) + translît(paşgir) ↓ translît </poem> --[[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 02:35, 24 tebax 2026 (UTC) :Silav @Ghybu, :Gelek spas ji bo vê ravekirinê, tam di cih de ye. Îro ez li ser modulê xebitîm û gihîştim heman encama te: Tenê bi rêzikên tîpan (regex) mirov nikare peyvên :hevedudanî û paşgiran bi awayekî durust çareser bike. :Min îro di modulê de rêzikek ji bo 4 tîpên bêdeng çêkir (POSITION 1) û bi vê yekê me peyvên mîna kirdin, birdinewe, girtine rast kirin. Lê dîsa jî ji ber ku kod fêm nake peyv ji kîjan beşan pêk tê, ez mecbûr mam ji bo peyvên wek hengwîn, birrbirre an agirpijên lîsteyeke taybet a îstîsnayan (word_exceptions) çêbikin. :Ji ber vê yekê, ez bi tevahî bi pêşniyara te re hemfikir im: Divê em pêşî peyvê parçe bikin (rayek + paşgir), paşê her beşekê cuda wergerînin latînî. :Mînak di peyva birdinewe de: :1. Pêşî paşgira -ewe jê dibe \to tenê birdin dimîne. :2. Kod bi rehetî birdin dike latînî. :3. Paşê ewe lê zêde dibe \to dibe birdinewe. :Bi vî awayî pêdiviya me bi van hemû rêzikên giran û îstîsnayan namîne û piraniya pirsgirêkên "Cuda ye" çareser dibin. :Çend pirsên min ji bo gava bê: : - Gelo lîsteyeke te ya paşgirên sereke (wek -an, -ewe, -tir, -în, -din, -tin) heye an te dest pê kiriye? : - Heke koda te ya pêşnûme ji bo vê parçekirinê hebe, ez dikarim li ser Module:ku-Arab-translit/sandbox zêde bikim da ku em bi mînakên îro biceribînin? :Silav û rêz, :--[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 10:25, 24 tebax 2026 (UTC) ::Bo Wîkîferhengê tiştekî vitira tenê ji bo sererastkirinên peyvan tê çêkirin ji ber ku em cureyê peyvê dizaninê. We li jor qala modula "parser" kiriye; bi vê modulê an jî bi şablona ku hatiye bikaranîn tê zanîn ku ew peyv lêker, navdêr (tewandî an na) û tiştekî din e. Zanîna kategoriya rêzimanî hewce ye (lêker (kîjan dem?), navdêr (tewandî an na ?), rengdêr, ...). Li gor cureyê rêzimanî paşgir û pêşgir tên fêm kirin... Li vira em dibêjin: dema ku ew lêker e bnr. paşgirên lêkeran, dema ku ew naddêr e bnr. paşgirên navdêran, ... ::Feqet ji bo hevokan nayê fêm kirin... Bnr. ''[[:en:w:Part-of-speech tagging]]''. Ji bo soranî hatiye çêkirin, bnr. ''[https://universaldependencies.org/ckb/index.html UD for Central Kurdish]'' û ''[https://github.com/sinaahmadi/KurdishPOSTagger KurdishPOSTagger]'' (github). [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 00:47, 25 tebax 2026 (UTC) :::Gelek spas Ghybu, min fam kir. Wisa bi rehetî çênabe, diyar e. :) Belkî bi rêya POS-Tagger tiştek/çareyek bê dîtin. Lê bi awayekî tam-otomatîk zor e, wekî ku te jî got -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 07:52, 25 tebax 2026 (UTC) 8h6eouqcq66spzrx1w0dbhpenpsmbt2 esel 0 670576 6341907 6252056 2026-08-24T12:50:18Z Balyozbot 7867 +şablona jêgirtinê [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341907 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * [[']]esel === Navdêr === {{navdêr|ku|z=}} # {{f|ku|tenê di edebiyata klasîk de}} [[hingivîn]], [[hingiv]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Spî û wek şîr şêrîn, wek esel <br>[[nê|Nê]] ji wê şîr û esel bûne mesel}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌سه‌ل}} ==== Formên alternatîv ==== * [['esel]] ==== Etîmolojî ==== Ji {{deyn|ar|ku|عسل|tr='esel}}. == {{ziman|no}} == === Navdêr === {{navdêr|no|z=nt}} # {{mijar|no|heywan}} {{g|ku|ker}} ([[dewar]]ek) === Çavkanî === {{rûpela wergerê|no|ker}} == {{ziman|tpi}} == === Navdêr === {{navdêr|tpi}} # {{mijar|tpi|heywan}} {{g|ku|ker}} ([[dewar]]ek) === Çavkanî === {{rûpela wergerê|tpi|ker}} 6gg2b670q4ovdhmdddlxna04bjtb43r 6341917 6341907 2026-08-24T12:55:53Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341917 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * [[']]esel === Navdêr === {{navdêr|ku|z=}} # {{f|ku|tenê di edebiyata klasîk de}} [[hingivîn]], [[hingiv]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Spî û wek şîr şêrîn, wek esel <br>[[nê|Nê]] ji wê şîr û esel bûne mesel}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌سه‌ل}} ==== Formên alternatîv ==== * [['esel]] ==== Etîmolojî ==== Ji {{deyn|ar|ku|عسل|tr='esel}}. == {{ziman|no}} == === Navdêr === {{navdêr|no|z=nt}} # {{mijar|no|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|no|ker}} == {{ziman|tpi}} == === Navdêr === {{navdêr|tpi}} # {{mijar|tpi|heywan}} {{g|ku|ker}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tpi|ker}} q1xooe16m571kr7nkpccfln96orajej 6341989 6341917 2026-08-24T12:59:20Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6341989 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * [[']]esel === Navdêr === {{navdêr|ku|z=}} # {{f|ku|tenê di edebiyata klasîk de}} [[hingivîn]], [[hingiv]] #* {{J:Mela Hisênê Bateyî:Mewlûda Kurdî|jêgirtin=Spî û wek şîr şêrîn, wek esel <br>[[nê|Nê]] ji wê şîr û esel bûne mesel}} ==== Bi alfabeyên din ==== * {{ku-ar|عه‌سه‌ل}} ==== Formên alternatîv ==== * [['esel]] ==== Etîmolojî ==== Ji {{deyn|ar|ku|عسل|tr='esel}}. == {{ziman|no}} == === Navdêr === {{navdêr|no|z=nt}} # {{mijar|no|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|no|ker}} == {{ziman|tpi}} == === Navdêr === {{navdêr|tpi}} # {{mijar|tpi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tpi|ker}} j7chhh8mhjnsh8h0w37l28bozyjcv8l بوون 0 670784 6342209 5044962 2026-08-24T20:05:44Z Şêr 1103 mînak 6342209 wikitext text/x-wiki == {{ziman|ckb}} == === Lêker === {{lêker|ckb}} # [[bûn]] #* {{mînak|ckb|ئەو دەبێتە پزیشک.|tr=Ew debête pizîşk.|werger=Ew dibe bijîşk.}} #* {{mînak|ckb|هەوا سارد دەبێت.|tr=Hewa sard debêt.|werger=Hewa sar dibe.}} #* {{mînak|ckb|من فێری زمانی کوردی دەبم.|tr=Min fêrî zimanî Kurdî debim.|werger=Ez fêrî zimanê kurdî dibim.}} 6vm12x8ir41e649ajcjdyl7kjlr4h22 6342215 6342209 2026-08-24T20:18:26Z Şêr 1103 6342215 wikitext text/x-wiki == {{ziman|ckb}} == === Lêker === {{lêker|ckb}} # [[bûn]] #: {{mînak|ckb|ئەو دەبێتە پزیشک.|tr=Ew debête pizîşk.|werger=Ew dibe bijîşk.}} #: {{mînak|ckb|هەوا سارد دەبێت.|tr=Hewa sard debêt.|werger=Hewa sar dibe.}} #: {{mînak|ckb|من فێری زمانی کوردی دەبم.|tr=Min fêrî zimanî Kurdî debim.|werger=Ez fêrî zimanê kurdî dibim.}} g2j17qqttzkddmaf7vq9px6hjxvx5zx zanan 0 745692 6341920 5299217 2026-08-24T12:56:34Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341920 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|zan|mê|çemandî|binavkirî}} {{navdêr|ku|form=erê}} # ''Rewşa [[çemandî]] ya pirjimar a binavkirî ya'' '''[[zan]]'''. == {{ziman|ssy}} == === Navdêr === {{navdêr|ssy}} # {{mijar|ssy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ssy|ker}} 71zciqb5fl2zw5ejlciu5wwwi3ouiwe asino 0 796730 6341918 6020721 2026-08-24T12:56:26Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341918 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|as|mê|bangkirin}} {{navdêr|ku|form=erê}} # ''Rewşa [[bangkirin]]ê ya mê ya pirjimar ya'' '''[[as]]'''. == {{ziman|ilo}} == === Cînav === {{cînav|ilo}} # [[kî#ku|kî]] == {{ziman|ia}} == === Navdêr === {{navdêr|ia}} # {{mijar|ia|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ia|ker}} == {{ziman|it}} == === Bilêvkirin === * {{deng|it|LL-Q652 (ita)-Ciampix-asino.wav|Deng|dever=Îtalya}} === Navdêr === {{navdêr|it|z=n}} # {{mijar|it|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|it|ker}} 1dyy1cxlvrypyubqub670w546d8506m 𒀲 0 838020 6341919 5298730 2026-08-24T12:56:30Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341919 wikitext text/x-wiki == {{ziman|akk}} == === Navdêr === {{navdêr|akk|tr=imēru|z=n}} # {{mijar|akk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|akk|ker}} == {{ziman|sux}} == === Navdêr === {{navdêr|sux}} # [[hesp]] 3yb6pblfsi7of0gc2f2ml5s0jfw38i9 Bikarhêner:Wikihez/common.js 2 873671 6342200 6333720 2026-08-24T19:21:44Z Wikihez 7344 6342200 javascript text/javascript /*---------Gadget-morebits.js------------- [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js]] [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js&action=raw&ctype=text/javascript'); mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); ( function () { 'use strict'; if ( [ 'Recentchanges', 'Watchlist' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) === -1 ) { return; } var style = document.createElement( 'style' ); style.textContent = '.mw-rollback-link { display: none !important; }'; document.head.appendChild( style ); }() ); //[[Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/quicklinks.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/quicklinks.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js&action=raw&ctype=text/javascript'); /*---------QQ.js------------- [[Bikarhêner:Wikihez/Gadget-QQ.js]] [[Bikarhêner:Wikihez/Gadget-QQ.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-QQ.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-QQ.js&action=raw&ctype=text/javascript'); */ /*---------add-examples.js------------- [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.js&action=raw&ctype=text/javascript'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/loader.js&action=raw&ctype=text/javascript') importScript( 'Bikarhêner:Wikihez/skrîpt/js/copyTitle.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/copyTitle.js]] // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/addAutoCat.js&action=raw&ctype=text/javascript'); //importScript( 'Bikarhêner:Wikihez/newentrywiz.js' ); // Backlink: [[Bikarhêner:Wikihez/newentrywiz.js]] //[[Bikarhêner:Wikihez/CreateTranslation.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/CreateTranslation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/wergerîne.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/wergerîne.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/getinflections.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/getinflections.js&action=raw&ctype=text/javascript'); //[[:w:Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js]] mw.loader.load('//ku.wikipedia.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/templateScript2.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/templateScript2.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/şablon-lêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/şablon-lêke.js&action=raw&ctype=text/javascript'); mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:BrandonXLF/TodoList.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/test.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/test.js&action=raw&ctype=text/javascript'); //================================================================================================================================ /*---------start.js------------- [[Bikarhêner:Wikihez/Gadget-start.js]] [[Bikarhêner:Wikihez/Gadget-start.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-start.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-start.js&action=raw&ctype=text/javascript'); */ //importScript( 'Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] //importScript( 'Bikarhêner:Wikihez/Gadget-linkify.js' ); // Backlink: [[Bikarhêner:Wikihez/Gadget-linkify.js]] //[[Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/editor.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/LanguageUtils.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/LanguageUtils.js&action=raw&ctype=text/javascript'); /*---------aWa.js------------- [[Bikarhêner:Wikihez/Gadget-aWa.js]] [[Bikarhêner:Wikihez/Gadget-aWa.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-aWa.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-aWa.js&action=raw&ctype=text/javascript'); */ // This array of dependencies comes from [[MediaWiki:Gadgets-definition]]. // If the list of dependencies changes, copy the text after dependencies= // for TranslationAdder and run console.log(JSON.stringify("paste dependencies here".split(/, ?/))) // in your browser's JavaScript console. Put the resulting array as the first argument to mw.loader.using. //[[User:Wikihez/skrîpt/js/TranslationAdder.js]] //mw.loader.using(["ext.gadget.LegacyScriptsNewNode","mediawiki.cookie","mediawiki.util"], //function() { // importScript('User:Wikihez/skrîpt/js/TranslationAdder.js'); //}); /* // [[:w:en:MediaWiki:Gadget-edittop.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-edittop.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/addAutoCat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Balyozbot/Gadget-CommonWikt.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozbot/Gadget-CommonWikt.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/hw-ceke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/hw-ceke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/sort-langheaders.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/sort-langheaders.js&action=raw&ctype=text/javascript'); //[[:en:User:Conrad.Irwin/Api.js]] mw.loader.load('//en.wiktionary.org/w/index.php?title=User:Conrad.Irwin/Api.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/etîket-çêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/etîket-çêke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/tagger.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/tagger.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-CatMaker.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-CatMaker.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/VisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/VisibilityToggles.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/XMLize.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/XMLize.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/RhymesAdder.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/RhymesAdder.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Editor.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/FilterTranslations.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/FilterTranslations.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/custom.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/custom.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/reformat.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/reformat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/translateWiki.js]] ji aliyê [[Bikarhêner:Guherto]], [[Taybet:PermanentLink/4854098#Translatewiki.net]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/translateWiki.js&action=raw&ctype=text/javascript'); // Various fixes for the trees generated by [[Module:family tree]]. $(function () { // Show the top toggle. $('.familytree-toptoggle').css('display', ''); // Initialize the text of the toggles. $('.familytree').get().forEach(function (tree) { var isCollapsed = tree.classList.contains('mw-collapsed'); var toggles = $(tree).find('.familytree-toggle'); if (toggles[0]) { var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) { return className.indexOf('mw-customtoggle-familytree') === 0; })[0]; if (customToggleClass) { var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible')); if (toggledElement) { toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext')); } } } }); // Change the text in the custom toggles generated by [[Module:family tree]] // when they are clicked. $('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible', function (event) { if (this.id.indexOf('mw-customcollapsible-familytree') === 0) { var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle')); if (event.type === 'beforeExpand') { toggle.html(this.dataset.collapsetext); } else { // beforeCollapse toggle.html(this.dataset.expandtext); } event.stopPropagation(); } }); }); */ 08el5b0dei0dyr0pqkayc93xvlm0jxq 6342565 6342200 2026-08-25T11:17:35Z Wikihez 7344 6342565 javascript text/javascript /*---------Gadget-morebits.js------------- [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js]] [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js&action=raw&ctype=text/javascript'); mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); ( function () { 'use strict'; if ( [ 'Recentchanges', 'Watchlist' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) === -1 ) { return; } var style = document.createElement( 'style' ); style.textContent = '.mw-rollback-link { display: none !important; }'; document.head.appendChild( style ); }() ); //[[Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/quicklinks.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/quicklinks.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js&action=raw&ctype=text/javascript'); /*---------QQ.js------------- [[Bikarhêner:Wikihez/Gadget-QQ.js]] [[Bikarhêner:Wikihez/Gadget-QQ.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-QQ.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-QQ.js&action=raw&ctype=text/javascript'); */ /*---------add-examples.js------------- [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.js&action=raw&ctype=text/javascript'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/loader.js&action=raw&ctype=text/javascript') importScript( 'Bikarhêner:Wikihez/skrîpt/js/copyTitle.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/copyTitle.js]] // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/addAutoCat.js&action=raw&ctype=text/javascript'); //importScript( 'Bikarhêner:Wikihez/newentrywiz.js' ); // Backlink: [[Bikarhêner:Wikihez/newentrywiz.js]] //[[Bikarhêner:Wikihez/CreateTranslation.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/CreateTranslation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/wergerîne.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/wergerîne.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/getinflections.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/getinflections.js&action=raw&ctype=text/javascript'); //[[:w:Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js]] mw.loader.load('//ku.wikipedia.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/templateScript2.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/templateScript2.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/şablon-lêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/şablon-lêke.js&action=raw&ctype=text/javascript'); mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:BrandonXLF/TodoList.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/test.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/test.js&action=raw&ctype=text/javascript'); //================================================================================================================================ /*---------start.js------------- [[Bikarhêner:Wikihez/Gadget-start.js]] [[Bikarhêner:Wikihez/Gadget-start.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-start.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-start.js&action=raw&ctype=text/javascript'); */ importScript( 'Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] //importScript( 'Bikarhêner:Wikihez/Gadget-linkify.js' ); // Backlink: [[Bikarhêner:Wikihez/Gadget-linkify.js]] //[[Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/editor.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/LanguageUtils.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/LanguageUtils.js&action=raw&ctype=text/javascript'); /*---------aWa.js------------- [[Bikarhêner:Wikihez/Gadget-aWa.js]] [[Bikarhêner:Wikihez/Gadget-aWa.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-aWa.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-aWa.js&action=raw&ctype=text/javascript'); */ // This array of dependencies comes from [[MediaWiki:Gadgets-definition]]. // If the list of dependencies changes, copy the text after dependencies= // for TranslationAdder and run console.log(JSON.stringify("paste dependencies here".split(/, ?/))) // in your browser's JavaScript console. Put the resulting array as the first argument to mw.loader.using. //[[User:Wikihez/skrîpt/js/TranslationAdder.js]] //mw.loader.using(["ext.gadget.LegacyScriptsNewNode","mediawiki.cookie","mediawiki.util"], //function() { // importScript('User:Wikihez/skrîpt/js/TranslationAdder.js'); //}); /* // [[:w:en:MediaWiki:Gadget-edittop.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-edittop.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/addAutoCat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Balyozbot/Gadget-CommonWikt.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozbot/Gadget-CommonWikt.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/hw-ceke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/hw-ceke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/sort-langheaders.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/sort-langheaders.js&action=raw&ctype=text/javascript'); //[[:en:User:Conrad.Irwin/Api.js]] mw.loader.load('//en.wiktionary.org/w/index.php?title=User:Conrad.Irwin/Api.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/etîket-çêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/etîket-çêke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/tagger.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/tagger.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-CatMaker.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-CatMaker.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/VisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/VisibilityToggles.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/XMLize.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/XMLize.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/RhymesAdder.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/RhymesAdder.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Editor.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/FilterTranslations.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/FilterTranslations.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/custom.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/custom.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/reformat.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/reformat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/translateWiki.js]] ji aliyê [[Bikarhêner:Guherto]], [[Taybet:PermanentLink/4854098#Translatewiki.net]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/translateWiki.js&action=raw&ctype=text/javascript'); // Various fixes for the trees generated by [[Module:family tree]]. $(function () { // Show the top toggle. $('.familytree-toptoggle').css('display', ''); // Initialize the text of the toggles. $('.familytree').get().forEach(function (tree) { var isCollapsed = tree.classList.contains('mw-collapsed'); var toggles = $(tree).find('.familytree-toggle'); if (toggles[0]) { var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) { return className.indexOf('mw-customtoggle-familytree') === 0; })[0]; if (customToggleClass) { var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible')); if (toggledElement) { toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext')); } } } }); // Change the text in the custom toggles generated by [[Module:family tree]] // when they are clicked. $('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible', function (event) { if (this.id.indexOf('mw-customcollapsible-familytree') === 0) { var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle')); if (event.type === 'beforeExpand') { toggle.html(this.dataset.collapsetext); } else { // beforeCollapse toggle.html(this.dataset.expandtext); } event.stopPropagation(); } }); }); */ hwucoxpt1eznk1z3kot62bheg2mn65k 6342566 6342565 2026-08-25T11:26:02Z Wikihez 7344 6342566 javascript text/javascript /*---------Gadget-morebits.js------------- [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js]] [[Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/Gadget/Gadget-morebits.js&action=raw&ctype=text/javascript'); importScript( 'Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=User:Joeytje50/JWB.js/load.js&action=raw&ctype=text/javascript'); ( function () { 'use strict'; if ( [ 'Recentchanges', 'Watchlist' ].indexOf( mw.config.get( 'wgCanonicalSpecialPageName' ) ) === -1 ) { return; } var style = document.createElement( 'style' ); style.textContent = '.mw-rollback-link { display: none !important; }'; document.head.appendChild( style ); }() ); //[[Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/templateParamRenamer.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/quicklinks.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/quicklinks.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/citeKurdifier.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-defaultVisibilityToggles.js&action=raw&ctype=text/javascript'); /*---------QQ.js------------- [[Bikarhêner:Wikihez/Gadget-QQ.js]] [[Bikarhêner:Wikihez/Gadget-QQ.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-QQ.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-QQ.js&action=raw&ctype=text/javascript'); */ /*---------add-examples.js------------- [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.js]] [[Bikarhêner:Wikihez/Gadget-wikt.add-examples.css]]*/ mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-wikt.add-examples.js&action=raw&ctype=text/javascript'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/loader.js&action=raw&ctype=text/javascript') importScript( 'Bikarhêner:Wikihez/skrîpt/js/copyTitle.js' ); // Backlink: [[Bikarhêner:Wikihez/skrîpt/js/copyTitle.js]] // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/addAutoCat.js&action=raw&ctype=text/javascript'); //importScript( 'Bikarhêner:Wikihez/newentrywiz.js' ); // Backlink: [[Bikarhêner:Wikihez/newentrywiz.js]] //[[Bikarhêner:Wikihez/CreateTranslation.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/CreateTranslation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/wergerîne.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/wergerîne.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/getinflections.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/getinflections.js&action=raw&ctype=text/javascript'); //[[:w:Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js]] mw.loader.load('//ku.wikipedia.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/OngletPurge.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/templateScript2.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/templateScript2.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/şablon-lêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/şablon-lêke.js&action=raw&ctype=text/javascript'); mw.loader.load('https://en.wikipedia.org/w/index.php?title=User:BrandonXLF/TodoList.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/test.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/test.js&action=raw&ctype=text/javascript'); //================================================================================================================================ /*---------start.js------------- [[Bikarhêner:Wikihez/Gadget-start.js]] [[Bikarhêner:Wikihez/Gadget-start.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-start.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-start.js&action=raw&ctype=text/javascript'); */ //importScript( 'Bikarhêner:Wikihez/Gadget-linkify.js' ); // Backlink: [[Bikarhêner:Wikihez/Gadget-linkify.js]] //[[Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/Gadget-catfix.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/editor.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/UpdateLanguageNameAndCode.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/skrîpt/js/TranslationAdder-Data.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/LanguageUtils.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/LanguageUtils.js&action=raw&ctype=text/javascript'); /*---------aWa.js------------- [[Bikarhêner:Wikihez/Gadget-aWa.js]] [[Bikarhêner:Wikihez/Gadget-aWa.css]] mw.loader.load(mw.util.wikiScript() + '?title=Bikarhêner:Wikihez/Gadget-aWa.css&action=raw&ctype=text/css', 'text/css'); mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-aWa.js&action=raw&ctype=text/javascript'); */ // This array of dependencies comes from [[MediaWiki:Gadgets-definition]]. // If the list of dependencies changes, copy the text after dependencies= // for TranslationAdder and run console.log(JSON.stringify("paste dependencies here".split(/, ?/))) // in your browser's JavaScript console. Put the resulting array as the first argument to mw.loader.using. //[[User:Wikihez/skrîpt/js/TranslationAdder.js]] //mw.loader.using(["ext.gadget.LegacyScriptsNewNode","mediawiki.cookie","mediawiki.util"], //function() { // importScript('User:Wikihez/skrîpt/js/TranslationAdder.js'); //}); /* // [[:w:en:MediaWiki:Gadget-edittop.js]] mw.loader.load('//en.wikipedia.org/w/index.php?title=MediaWiki:Gadget-edittop.js&action=raw&ctype=text/javascript'); // [[Bikarhêner:Wikihez/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/addAutoCat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Balyozbot/Gadget-CommonWikt.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozbot/Gadget-CommonWikt.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/hw-ceke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/hw-ceke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/sort-langheaders.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/sort-langheaders.js&action=raw&ctype=text/javascript'); //[[:en:User:Conrad.Irwin/Api.js]] mw.loader.load('//en.wiktionary.org/w/index.php?title=User:Conrad.Irwin/Api.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/etîket-çêke.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/etîket-çêke.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/tagger.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/tagger.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-CatMaker.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-CatMaker.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/VisibilityToggles.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/VisibilityToggles.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Gadget-WiktAccFormCreation.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/XMLize.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/XMLize.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/RhymesAdder.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/RhymesAdder.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/Editor.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/Editor.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/FilterTranslations.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/FilterTranslations.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/custom.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/custom.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/reformat.js]] //mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/reformat.js&action=raw&ctype=text/javascript'); //[[Bikarhêner:Wikihez/translateWiki.js]] ji aliyê [[Bikarhêner:Guherto]], [[Taybet:PermanentLink/4854098#Translatewiki.net]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Wikihez/translateWiki.js&action=raw&ctype=text/javascript'); // Various fixes for the trees generated by [[Module:family tree]]. $(function () { // Show the top toggle. $('.familytree-toptoggle').css('display', ''); // Initialize the text of the toggles. $('.familytree').get().forEach(function (tree) { var isCollapsed = tree.classList.contains('mw-collapsed'); var toggles = $(tree).find('.familytree-toggle'); if (toggles[0]) { var customToggleClass = Array.prototype.filter.call(toggles[0].classList, function (className) { return className.indexOf('mw-customtoggle-familytree') === 0; })[0]; if (customToggleClass) { var toggledElement = $('#' + customToggleClass.replace('mw-customtoggle', 'mw-customcollapsible')); if (toggledElement) { toggles.html(toggledElement.data(isCollapsed ? 'expandtext' : 'collapsetext')); } } } }); // Change the text in the custom toggles generated by [[Module:family tree]] // when they are clicked. $('.mw-collapsible').on('beforeExpand.mw-collapsible beforeCollapse.mw-collapsible', function (event) { if (this.id.indexOf('mw-customcollapsible-familytree') === 0) { var toggle = $('.' + this.id.replace('mw-customcollapsible', 'mw-customtoggle')); if (event.type === 'beforeExpand') { toggle.html(this.dataset.collapsetext); } else { // beforeCollapse toggle.html(this.dataset.expandtext); } event.stopPropagation(); } }); }); */ 5bp2hucxhm7i96zui3jnlnys63trebn Bikarhêner:Wikihez/test.js 2 969083 6342195 6329713 2026-08-24T18:56:24Z Wikihez 7344 6342195 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); var jederKurt = $('<span>' + nivisKurt + '</span>') .append(zede).append(')') .addClass('jeder-kurt') .css('font-size', '0.85em') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').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(); }); oq09syuvz5lsdc2zxlqj8kkxlo8omi0 6342197 6342195 2026-08-24T19:17:01Z Wikihez 7344 6342197 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').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; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field nivisaKurtTevliBike($(this), elm); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); not5vq6ftxx3g1m3fa3hbhrrkfufhba 6342198 6342197 2026-08-24T19:18:52Z Wikihez 7344 6342198 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê kurt bike / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>+</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'kurt bike') .css('font-weight', 'bold'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').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; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field nivisaKurtTevliBike($(this), elm); } // else: no j-pewist fields to shorten — leave the full citation // as it already renders (visible), nothing to do. }); } vesere(); }); 4prhrxc4rgedwpoozphtc2os4w5c3oh 6342204 6342198 2026-08-24T19:34:26Z Wikihez 7344 6342204 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>[+]</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>[↩]</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } // Minimum length (chars) the full citation must exceed the shortened one by before the toggle is worth // showing. When the j-pewist fields already cover most/all of the source (e.g. everything crammed into // one j-pewist span, nothing meaningful left outside it), "short" and "full" end up nearly identical and // clicking "+" looks like it does nothing. var MIN_SAVINGS = 4; function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').each(function() { var $sund = $(this); var elmTab = $sund.find('.j-pewist').clone(); if (!elmTab.length) { // No j-pewist fields to shorten — leave the full citation as it already renders, nothing to do. return; } var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field // Compare the plain text of the short version against the full citation's own text (read before // any "+"/"↩" link is appended below) to see whether shortening actually removes anything. var fullText = $sund.text().replace(/\s+/g, ' ').trim(); var shortText = ($('<div>').html(elm).text() + ':').replace(/\s+/g, ' ').trim(); if (fullText.length - shortText.length < MIN_SAVINGS) { return; } nivisaKurtTevliBike($sund, elm); }); } vesere(); }); 708g44w58n50ycmzhjhygz8funmqi8o 6342205 6342204 2026-08-24T19:37:09Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6342205 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>[+]</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-weight', 'bold'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-weight', 'bold'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } // Minimum length (chars) the full citation must exceed the shortened one by before the toggle is worth // showing. When the j-pewist fields already cover most/all of the source (e.g. everything crammed into // one j-pewist span, nothing meaningful left outside it), "short" and "full" end up nearly identical and // clicking "+" looks like it does nothing. var MIN_SAVINGS = 4; function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').each(function() { var $sund = $(this); var elmTab = $sund.find('.j-pewist').clone(); if (!elmTab.length) { // No j-pewist fields to shorten — leave the full citation as it already renders, nothing to do. return; } var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field // Compare the plain text of the short version against the full citation's own text (read before // any "+"/"↩" link is appended below) to see whether shortening actually removes anything. var fullText = $sund.text().replace(/\s+/g, ' ').trim(); var shortText = ($('<div>').html(elm).text() + ':').replace(/\s+/g, ' ').trim(); if (fullText.length - shortText.length < MIN_SAVINGS) { return; } nivisaKurtTevliBike($sund, elm); }); } vesere(); }); ht7ubb4ipox4kphm50fnlajtsbi3vzx 6342206 6342205 2026-08-24T19:40:04Z Wikihez 7344 6342206 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>[+]</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } // Minimum length (chars) the full citation must exceed the shortened one by before the toggle is worth // showing. When the j-pewist fields already cover most/all of the source (e.g. everything crammed into // one j-pewist span, nothing meaningful left outside it), "short" and "full" end up nearly identical and // clicking "+" looks like it does nothing. var MIN_SAVINGS = 4; function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. $('.cited-source, .e-source').each(function() { var $sund = $(this); var elmTab = $sund.find('.j-pewist').clone(); if (!elmTab.length) { // No j-pewist fields to shorten — leave the full citation as it already renders, nothing to do. return; } var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field // Compare the plain text of the short version against the full citation's own text (read before // any "+"/"↩" link is appended below) to see whether shortening actually removes anything. var fullText = $sund.text().replace(/\s+/g, ' ').trim(); var shortText = ($('<div>').html(elm).text() + ':').replace(/\s+/g, ' ').trim(); if (fullText.length - shortText.length < MIN_SAVINGS) { return; } nivisaKurtTevliBike($sund, elm); }); } vesere(); }); ewuuknv76lkc5mifxg1jwagxkzlx3g9 6342208 6342206 2026-08-24T20:03:39Z Wikihez 7344 6342208 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>[+]</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } // Minimum length (chars) the full citation must exceed the shortened one by before the toggle is worth // showing. When the j-pewist fields already cover most/all of the source (e.g. everything crammed into // one j-pewist span, nothing meaningful left outside it), "short" and "full" end up nearly identical and // clicking "+" looks like it does nothing. var MIN_SAVINGS = 4; function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. // Only ".cited-source" nested in "div.citation-whole" (Modul:quote's block/usage-example mode) is targeted -- a "<ref>"/footnote or bibliography-list citation renders as "span.citation-whole" instead (Modul:quote's inline/cite mode: "(is_inline and span or div)"), so this selector already excludes those on its own; the reference/footnote closest() check below is just a backstop. $('div.citation-whole > .cited-source, .e-source').each(function() { var $sund = $(this); if ($sund.closest('.reference-text, .mw-references-wrap, ol.references').length) { // Footnote/reference citation -- shortening doesn't belong here. return; } var elmTab = $sund.find('.j-pewist').clone(); if (!elmTab.length) { // No j-pewist fields to shorten — leave the full citation as it already renders, nothing to do. return; } var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field // Compare the plain text of the short version against the full citation's own text (read before // any "+"/"↩" link is appended below) to see whether shortening actually removes anything. var fullText = $sund.text().replace(/\s+/g, ' ').trim(); var shortText = ($('<div>').html(elm).text() + ':').replace(/\s+/g, ' ').trim(); if (fullText.length - shortText.length < MIN_SAVINGS) { return; } nivisaKurtTevliBike($sund, elm); }); } vesere(); }); j9buihbmp5n0l1a1di0nl0se8wrmfh3 6342210 6342208 2026-08-24T20:07:07Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6342210 javascript text/javascript // Ji bo şablonên [[Şablon:jêder]] hatiye nivîsandin. // Parametreyên ku di navbera "<span class="j-pewist">...</span>" an "{{j-pêwîst|...}}" de ne venaşêre. // Each jeder is registered under the "Jêderê" category in window.VisibilityToggles // (from [[MediaWiki:Gadget-VisibilityToggles.js]]), so the "Jêderê veşêre / Jêderê nîşan bide" // sidebar link can show or hide every jeder at once; each "+"/"↩" link toggles just its own entry. $(function() { function nivisaKurtTevliBike(sund, nivisKurt) { var zede = $('<a>[+]</a>') .addClass('click') .attr('href', '#') .attr('title', 'zêdetir') .css('font-size', '0.85em'); var kurt = $(' <a>↩</a>') .addClass('click-kurt') .attr('href', '#') .attr('title', 'veşêre') .css('font-size', '0.85em'); // Colon matches the one Modul:quote's export.source() appends to the full citation (see ":" not being part of any .j-pewist span, so it has to be re-added here). var jederKurt = $('<span>' + nivisKurt + ':</span>') .append(' ').append(zede) .addClass('jeder-kurt') .insertAfter(sund); sund.append(' ').append(kurt); // defaultStatus = false: the category's initial status is "visible" (full // citation shown), so the sidebar link starts as "Jêderê veşêre". var toggle = window.VisibilityToggles.register("Jêderê", function show() { sund.css('display', 'inline'); jederKurt.css('display', 'none'); }, function hide() { sund.css('display', 'none'); jederKurt.css('display', 'inline'); }, false); zede.add(kurt).on('click', function(e) { e.preventDefault(); toggle(); }); } // Minimum length (chars) the full citation must exceed the shortened one by before the toggle is worth // showing. When the j-pewist fields already cover most/all of the source (e.g. everything crammed into // one j-pewist span, nothing meaningful left outside it), "short" and "full" end up nearly identical and // clicking "+" looks like it does nothing. var MIN_SAVINGS = 4; function vesere() { // .cited-source = Modul:quote's wrapper, now used by jêder-* templates (Modul_jeder.lua routes through Modul:quote); .e-source = Modul:usex's own wrapper (renamed from "jeder"), used by plain {{usex|source=}}-style annotations. // Only ".cited-source" nested in "div.citation-whole" (Modul:quote's block/usage-example mode) is targeted -- a "<ref>"/footnote or bibliography-list citation renders as "span.citation-whole" instead (Modul:quote's inline/cite mode: "(is_inline and span or div)"), so this selector already excludes those on its own; the reference/footnote closest() check below is just a backstop. $('div.citation-whole > .cited-source, .e-source').each(function() { var $sund = $(this); if ($sund.closest('.reference-text, .mw-references-wrap, ol.references').length) { // Footnote/reference citation -- shortening doesn't belong here. return; } var elmTab = $sund.find('.j-pewist').clone(); if (!elmTab.length) { // No j-pewist fields to shorten — leave the full citation as it already renders, nothing to do. return; } var elm = ''; for (var i = elmTab.length - 1; i >= 0; i--) { elm = elmTab.eq(i).html() + ', ' + elm; } elm = elm.replace(/,\s*$/, ''); // drop trailing ", " from the last field // Compare the plain text of the short version against the full citation's own text (read before // any "+"/"↩" link is appended below) to see whether shortening actually removes anything. var fullText = $sund.text().replace(/\s+/g, ' ').trim(); var shortText = ($('<div>').html(elm).text() + ':').replace(/\s+/g, ' ').trim(); if (fullText.length - shortText.length < MIN_SAVINGS) { return; } nivisaKurtTevliBike($sund, elm); }); } vesere(); }); l8fvycee35u98emxvy6w20h563r80q1 hevalê 0 969734 6342260 6291668 2026-08-24T22:23:56Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342260 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} ##: {{nimûne|ku|test}} 9uh3zx7mees9txhsdnwdkrs4wg6kzv7 6342261 6342260 2026-08-24T22:24:13Z Wikihez 7344 /* Formeke navdêrê */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342261 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} apy2fk4sy0hktyht2zbib7u1h5yq4x3 6342266 6342261 2026-08-24T22:32:38Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342266 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} #* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser gotina "heval" û "xalo"|websîte=HINDIK - RINDIK|url=https://zinarexamo.blogspot.com/2009/09/li-ser-gotina-heval-u-xalo.html|tarîx=2009-09-18|jêgirtin=Helbet gava meriv xwar rûne û rast bipeyive, Zinar Ala ne '''hevalê''' min ê zaroktiyê ye, ez bawer dikim ez 20-30 salekî jê mestir im.}} kj7ev7bfswq9lrvl6j82xy5v749ws7v 6342267 6342266 2026-08-24T22:33:03Z Wikihez 7344 /* Formeke navdêrê */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342267 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} ##* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser gotina "heval" û "xalo"|websîte=HINDIK - RINDIK|url=https://zinarexamo.blogspot.com/2009/09/li-ser-gotina-heval-u-xalo.html|tarîx=2009-09-18|jêgirtin=Helbet gava meriv xwar rûne û rast bipeyive, Zinar Ala ne '''hevalê''' min ê zaroktiyê ye, ez bawer dikim ez 20-30 salekî jê mestir im.}} t8br4l9xanna5nfi4nnl3v01q1547r9 6342269 6342267 2026-08-24T22:33:21Z Wikihez 7344 /* Formeke navdêrê */ 6342269 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} #* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser gotina "heval" û "xalo"|websîte=HINDIK - RINDIK|url=https://zinarexamo.blogspot.com/2009/09/li-ser-gotina-heval-u-xalo.html|tarîx=2009-09-18|jêgirtin=Helbet gava meriv xwar rûne û rast bipeyive, Zinar Ala ne '''hevalê''' min ê zaroktiyê ye, ez bawer dikim ez 20-30 salekî jê mestir im.}} kj7ev7bfswq9lrvl6j82xy5v749ws7v 6342270 6342269 2026-08-24T22:34:54Z Wikihez 7344 /* Formeke navdêrê */ {{j-wesf|halê îzafeyî}} ? (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342270 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} #* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser gotina "heval" û "xalo"|websîte=HINDIK - RINDIK|url=https://zinarexamo.blogspot.com/2009/09/li-ser-gotina-heval-u-xalo.html|tarîx=2009-09-18|jêgirtin=Helbet gava meriv xwar rûne û rast bipeyive, Zinar Ala ne '''hevalê''' {{j-wesf|halê îzafeyî}} min ê zaroktiyê ye, ez bawer dikim ez 20-30 salekî jê mestir im.}} iaa77kql538k5i31puw58bc99m344zm 6342273 6342270 2026-08-24T22:39:18Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342273 wikitext text/x-wiki == {{ziman|ku}} == === Bilêvkirin === * {{IPA|ku|/hɛˈvɑːleː/}} * {{ku-kîte}} === Formeke navdêrê === {{ku-tew-nav|heval|mê û nêr}} {{navdêr|ku|form=erê}} # {{ku-tewîna-nav|heval|mê û nêr}} #* {{jêder-websîte|ku|nivîskar=Zinarê Xamo|sernav=Li ser gotina "heval" û "xalo"|websîte=HINDIK - RINDIK|url=https://zinarexamo.blogspot.com/2009/09/li-ser-gotina-heval-u-xalo.html|tarîx=2009-09-18|jêgirtin=Helbet gava meriv xwar rûne û rast bipeyive, Zinar Ala ne '''hevalê''' {{j-wesf|halê îzafeyî}} min ê zaroktiyê ye, ez bawer dikim ez 20-30 salekî jê mestir im.}} #* {{jêder-websîte|ku|nivîskar=Xecê|sernav=Rê Heval|websîte=www.muzikakurdi.org|url=https://www.muzikakurdi.org/xece-re-heval_2d9b0eefb.html|tarîx=2019-10-26|jêgirtin=Rê '''hevalê''' çima nayê<br>Yar '''hevalê''' {{j-wesf|halê çemandî}} çima nayê}} 4djin8xbwm6gobd8oc47y0cq8ykh4d6 پەژارە 0 975605 6342307 5085107 2026-08-24T23:31:51Z Şêr 1103 6342307 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[kovan]], [[xem]], [[keser]], [[kul]], [[pejarî]] (hesteke kûr a xemgînî, dilgiraniyê an êşa derûnî) #: {{mînak|ckb|دڵی پڕ بوو لە پەژارە و خەم.|tr=Dillî pirr bû le pejare u xem.|werger=Dilê wî tijî xem û kovan bû.}} #: {{mînak|ckb|گوێگرتن لە مۆسیقا پەژارەی دەروونی کەم دەکردەوە.|tr=Gwêgirtin le mosîqa pejareyî derûnî kem dekirdewe.|werger=Guhdarkirina muzîkê kovana wî ya derûnî kêm dikir.}} ==== Dijmane ==== * {{g|ckb|شادی}} * {{g|ckb|دڵخۆشی}} * {{g|ckb|کەیف}} ==== Hevmane ==== * {{g|ckb|خەم}} * {{g|ckb|مەینەت}} * {{g|ckb|کوڵ}} ==== Têkildar ==== * {{g|ckb|پەژارەبار}} * {{g|ckb|دڵگرانی}} * {{g|ckb|ئازار}} ejffb0q22cbb8czgii1m8poj8rg7ydx 6342311 6342307 2026-08-24T23:41:10Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342311 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[kovan]], [[xem]], [[keser]], [[kul]], [[pejarî]] (hesteke kûr a xemgînî, dilgiraniyê an êşa derûnî) #: {{mînak|ckb|دڵی پڕ بوو لە پەژارە و خەم.|tr=Dillî pirr bû le pejare u xem.|werger=Dilê wî tijî xem û kovan bû.}} #: {{mînak|ckb|گوێگرتن لە مۆسیقا پەژارەی دەروونی کەم دەکردەوە.|tr=Gwêgirtin le mosîqa pejareyî derûnî kem dekirdewe.|werger=Guhdarkirina muzîkê kovana wî ya derûnî kêm dikir.}} ==== Hevmane ==== * {{g|ckb|خەم}} * {{g|ckb|مەینەت}} * {{g|ckb|کوڵ}} ==== Dijmane ==== * {{g|ckb|شادی}} * {{g|ckb|دڵخۆشی}} * {{g|ckb|کەیف}} ==== Têkildar ==== * {{g|ckb|پەژارەبار}} * {{g|ckb|دڵگرانی}} * {{g|ckb|ئازار}} b6xa7lzt1zbmw57dj7bertyhe7yyifk Gotûbêja bikarhêner:Wikihez 3 977511 6342217 6337695 2026-08-24T20:25:03Z Şêr 1103 /* Soranî bi tîpên latînî */ beşeke nû 6342217 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) j9c7w3m5uszuz9me83r0k3eb5co835h 6342219 6342217 2026-08-24T20:31:15Z Wikihez 7344 /* Soranî bi tîpên latînî */ Bersiv 6342219 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) bacij1bed72wmipxs2sky39l196cqzz 6342223 6342219 2026-08-24T20:36:31Z Şêr 1103 /* Soranî bi tîpên latînî */ Bersiv 6342223 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) keicdur0b63b910ev5ksg1zv7582kwq 6342236 6342223 2026-08-24T20:56:41Z Wikihez 7344 /* Soranî bi tîpên latînî */ Bersiv 6342236 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) nplo2vw562n07j1g4hny3zgixkmku7q 6342242 6342236 2026-08-24T21:17:49Z Şêr 1103 /* Soranî bi tîpên latînî */ Bersiv 6342242 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) 8mo2advrdvnbf0sfzrpx1bbbj0bhmum 6342243 6342242 2026-08-24T21:20:09Z Wikihez 7344 /* Soranî bi tîpên latînî */ Bersiv 6342243 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) :::::Welleh eynî wisa ye :D Gelek kes ketine derdê dîtina kelîmeya kurdî ya herî orîjînal, ji bîr dikin ka milet wê çawa bike :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:20, 24 tebax 2026 (UTC) e66pcp1v6v7jdn7ibo6c0nranzmsdb3 6342244 6342243 2026-08-24T21:21:09Z Wikihez 7344 /* Soranî bi tîpên latînî */ Bersiv 6342244 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) :::::Welleh eynî wisa ye :D Gelek kes ketine derdê dîtina kelîmeya kurdî ya herî orîjînal, ji bîr dikin ka milet wê çawa bike :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:20, 24 tebax 2026 (UTC) ::::::Not: Mala te ava :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:21, 24 tebax 2026 (UTC) pcvwwa4fnuh95rs140qgqua2e2zr9p3 6342289 6342244 2026-08-24T22:58:28Z Wikihez 7344 /* Soranî bi tîpên latînî */ Bersiv 6342289 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) :::::Welleh eynî wisa ye :D Gelek kes ketine derdê dîtina kelîmeya kurdî ya herî orîjînal, ji bîr dikin ka milet wê çawa bike :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:20, 24 tebax 2026 (UTC) ::::::Not: Mala te ava :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:21, 24 tebax 2026 (UTC) :::::::Tu çima amûra me ya [[Wf:Nû]] naceribînî? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:58, 24 tebax 2026 (UTC) 71wzdcx8hyjwyut2zef2fcsswk71z78 6342302 6342289 2026-08-24T23:24:01Z Şêr 1103 /* Soranî bi tîpên latînî */ Bersiv 6342302 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) :::::Welleh eynî wisa ye :D Gelek kes ketine derdê dîtina kelîmeya kurdî ya herî orîjînal, ji bîr dikin ka milet wê çawa bike :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:20, 24 tebax 2026 (UTC) ::::::Not: Mala te ava :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:21, 24 tebax 2026 (UTC) :::::::Tu çima amûra me ya [[Wf:Nû]] naceribînî? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:58, 24 tebax 2026 (UTC) ::::::::Hmm, ka ez lê binêrim, bê ka ya nû çawa ye. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:24, 24 tebax 2026 (UTC) lxp5o9j83tr1ukk05txw7t2vz6r469x 6342318 6342302 2026-08-24T23:42:29Z Şêr 1103 /* Soranî bi tîpên latînî */ Bersiv 6342318 wikitext text/x-wiki == Astengî Bi Sepana Lingua Libre. == Silav Birêz, Vaye 2-3 roj e ku ez nikarim dengê xwe bi rêya sepana Lingua Libre'yê ve biweşînim. Ez dikarim têkevim û deng tomar bikim, lê nikarim dengê xwe li ser Wikimedia Commons biweşînim. Gava ku ez pêl li ser bişkoka "Li Ser Wikimedia Commons Biweşîne" dikim qebûl nake û bişkoka "Dubare Biceribîne Barkirin Bi Ser Neket" dide nîşan. Gava ez pêlê wê jî dikim, tiştek nabe û ev bişkok dîsa derkevî ser holê. Tû kar nake. Derbarê vî mijarê min li ser tora Lingua Libre nivîsand, lê tû encam derneket. Ev program dengê min tomar dike, le naweşîne. Gelo tû fikr û ramanê te li ser vî mijarê heye? Sipas. [[Bikarhêner:Key Mîrza|Key Mîrza]] ([[Gotûbêja bikarhêner:Key Mîrza|gotûbêj]]) 23:38, 28 kanûna paşîn 2023 (UTC) == Modul û şablonên Wîkîpediya yên Zazakî == Silav birêz Balyozxane! Tu dikarî di Wîkîpediya Zazakî de alîkariya min bikî? Li wir kesek neqeydkirî hin modul û şablon guhert. Ji ber vê yekê agahî tevlihev dibin. Min ew vegerand, lê ew wek nimûne di "Nıfus" ([https://diq.wikipedia.org/wiki/Modul:N%C4%B1fus Modul:Nıfus] û [https://diq.wikipedia.org/wiki/%C5%9Eablon:N%C4%B1fus Şablon:Nıfus]) de xuya nake. Ez berê spas dikim! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 19:50, 21 gulan 2023 (UTC) :@[[Bikarhêner:Mirzali|Mirzali]] Silav. Problemeke gelemper li wîkiyê heye. Bnr. [[:w:en:Wikipedia:Village_pump_(technical)#Graph_extension_disabled_per_immediate_effect|vê gotûbêja en.wîkiyê]]. Grafîk niha naxebite heta xwediyên wîkiyê çareser bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 05:46, 22 gulan 2023 (UTC) :: Spas ji bo pêşniyarê! -- [[Bikarhêner:Mirzali|Mirzali]] ([[Gotûbêja bikarhêner:Mirzali|gotûbêj]]) 06:12, 22 gulan 2023 (UTC) == Li ser pêwîstiya sê çavkaniyan ji bo nivîsên etîmolojiya peyvên kurdî. == Silav Birêz, Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzika bo afirandina peyveke nû bo etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse. Dema ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî çavkanîyê bibînî û peyt bikî Bo çin nivîsandina etîmolojiya peyvên Kurdî evqas erzan e. Çima rêzikên afirandina peyveke nû, bo nivîsa etîmolojî jî derbas nabe? Ma çawa birêz "Ferhengvan" li gorê kêfa xwe etîmolojiya peyvan dinivîse? Dema ku ez ji wî çavkanî daxwaz dikim yan qet nayînî yan jî tenê yek çavkanî nîşan dide û ku meriv nikarî ew çavkanîyê bibînî û peyt bikî. Ma tenê çavkaniyek têr e? Yan gerek sisê bibe? Ger tu bawer nakî ez dikarim çendîn nimune nîşanê te bidim. Benda bersiva cenabê te me. Sipas [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 08:59, 6 hezîran 2023 (UTC) :Silav @[[Bikarhêner:Ebulfîda|Ebulfîda]]. Tu hinek bi awayekî şovenîst tevdigerî. Hinek bêhnfireh be ji kerema xwe re. Tu çavkanî dixwazî lê belê çavkanî kêm in. Yên heyî jî tu qebûl nakî. Min ji te re Chyet wek referans da, te ew jî qebûl nekir. Chyet nêzî 40 zimanan dizane û hemû zaravayên kurdî jî dizane dîsa jî tu qebûl nakî. Tu wekî folk etymology difikirî û dixwazî her tiştî bikî kurdî. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 08:37, 8 hezîran 2023 (UTC) ::Sipas, Ma tu jî şovenê hevalê xwe nînî? Bo çin 3 referans bo her kes nameşe? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:33, 8 hezîran 2023 (UTC) :::Xwedê hiş daye mirov ku bi kar bînî: :::1-Çawa peyva "Befr", "Baran" ya Kurdî/Îranî heye lê "Cemed"a Kurdî/Îranî tineye? Dibe? Hemû bi hev re girêdayî nînin? Pirtirîn dewletên ereban da "cemed" çênabe. Ma çima reha/koka cemed "cam" ne bî? Ma hemû zimanzanan û etîmologan ser rêya rast in? Li gor min na. Ez zimanzanek wek "Garnik S. Asatrian" û "David Neil MacKenzie" nas nakim. Min jiyana wan xwendiye her du jî dijminatiya Kurdan kirine: :::https://www.quora.com/Do-you-believe-that-all-Kurdish-linguists-to-date-have-acted-impartially-and-scientifically/answer/Hamdi-Aciksoz :::2- Ger peyva "Evîn"a Kurdî tinebe, gelo Kurd ji Ereban hînê hezkirinê bûne? [[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 19:50, 8 hezîran 2023 (UTC) == Derbarê pêwistiya 3 referans bo afirandina peyvên nû û nivîsên etîmolojiyên nû. == Birêz, Êdî ez westiyam. Cara dawî ji te û hemû nivîskaran rica dikim ku bêyî 3 referans peyvên nû neafirînin û etîmolojî nenivîsînin. Ger ez rastîyê nivîsek/referansek bêyî 3 referans bikevim ezê bi hirs û dijûn livir derkevim. Ji we rica dikim mercên xwe bi kar bînin.[[Bikarhêner:Ebulfîda|Ebulfîda]] ([[Gotûbêja bikarhêner:Ebulfîda|gotûbêj]]) 17:42, 10 hezîran 2023 (UTC) :Qaîdeyeke ji bo etîmolojiyê wekî ku tu dibêjî tune ye. Ger dixwazî, dikarî dengdaneke bidî destpêkirin û li gorî encama dengdanê em dikarin bixebitin. Bi xatirê te. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:21, 14 hezîran 2023 (UTC) == Çêkirina botekê == Merheba hêja {{r|Balyozxane}} Ez bi şanazî dibînim ku tu bota "Balyozbot" bo zêdekirina rûpelên nû ji beşa wergeran bi kar tînî. Ev karekî pir baş e, siheta te xweş! Gelo ez jî dikarim bi awayekî wisa bibim alîkar? Bi silavên germ re! --[[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 07:00, 9 tebax 2023 (UTC) :@[[Bikarhêner:Ferhengvan|Ferhengvan]] Balyozbot niha bi otomatîk naxebite, Ez li ser scrîptekê dixebitim ya ku dikare hemû wergerê carekê de çêke. Ger rast bixebite, ez ê skrîptê bidim te. Lê niha hin pirsgirêk çêdibin. Wisa dixuye ku ew ê çênebe. Lê dîsa jî hewl didim. :::P.S. Tu dikarî [[:w:WP:AWB]] biceribînî. Heger hinek hîn bibî, dikarî hesabekî botê çêkî û ez dikarim alîkariya te bikim. :[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:29, 9 tebax 2023 (UTC) ::Silav @[[Bikarhêner:Ghybu|Ghybu]] Çêkirina gelek rûpelan bi butonekê qedexe ye yan na? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:03, 9 tebax 2023 (UTC) :::Silav, ne qedexe ye. Piraniya rupelên fr.wiki û en.wiki bi botê hatine çêkirin. Tenê ''[//meta.wikimedia.org/wiki/Copyright copyright]'' û ''[//meta.wikimedia.org/wiki/Bot_policy Bot policy]'' dîqet bikin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 18:14, 9 tebax 2023 (UTC) ::Gelek spas bo xebata te ya hêja! [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 18:35, 9 tebax 2023 (UTC) :::@[[Bikarhêner:Ghybu|Ghybu]] Ez behsa botekê nakim. Nimûne Ez dikarim bi hesaba xwe ya Balyozxane gelek rûpel carekê de çêkim bi skrîpta [[User:Balyozbot/CreateTranslation.js]]? Dema pêlî "Hemû çêke" dikî, skrîpt yek bi yek hemû rûpelên wergeran çêdike. Ew tiştek normal e? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:37, 9 tebax 2023 (UTC) ::::Nimûne: [[Taybet:Beşdarî/Balyozxane|2 deqe 34 rûpel hatin çêkirin bi skrîptê]] [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:49, 9 tebax 2023 (UTC) :::::Tu hesabê xwe wekî botê bikar tinî û leza guherandina botê hindik bilind e (>12 guherandin/deq). Bi min, bo guherandinên biçûk pirsgirêk tine ye... Feqet tu nikarî tenê carekê de pênc sed an hezar gotar bi vî avayî çêkî :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 20:50, 9 tebax 2023 (UTC) ::::::@[[Bikarhêner:Ghybu|Ghybu]] çima na yaw bazarî tune ye? {{=D}} Bi hesabê xwe deqê de çend gotar bi vî awayî çêkim, ne pirsgirêk e? Ne tenê ez, ez ê bidime Ferhengvanî jî :D [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:16, 9 tebax 2023 (UTC) :::::::Bnr. [https://ku.wiktionary.org/wiki/Got%C3%BBb%C3%AAja_bikarh%C3%AAner:%C5%9E%C3%AAr#Nochmal_wegen_Deinem_Bot] [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:23, 9 tebax 2023 (UTC) ::::::::@[[Bikarhêner:Ghybu|Ghybu]] Li gorî Bot policy 12 edits per minute ji bo botekê baş e. Lê tiştek li ser bikarhêneran nayê gotin. Em ji deqê de 12 rûpel çêkin pirsgirêk çêbibe? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:38, 9 tebax 2023 (UTC) :::::::::Min ne got ku ew problem e ji ber ku li vira kes ne dijî ye (wikiyên din eleqedar nake). Dîsa jî, belkî, li ser Dîwanê ji bo bikaranîna amûrê dengek pêwîst e {{=)}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:49, 9 tebax 2023 (UTC) ::::::::::PS: Problem tenê ji bo [[Taybet:Guherandinên dawî]] ye (nayê xwandin) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 21:56, 9 tebax 2023 (UTC) :::::::::::Li ser Wergerê: bi min dema ku hemû beşa Wergerê li ser en.wiki tê kopî kirin, nivîsanda çavkanîyê jî pêwîst e, wekî: [//ku.wiktionary.org/w/index.php?title=xwarin&diff=5207568&oldid=5207001]. Na? [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 22:13, 9 tebax 2023 (UTC) ::::::::::::bi ya min dengdan ne hewce ye lê ger tu bêjî hewce ye, em dikarin yekî çêkin :/ ::::::::::::ji bo guherandinên dawî min etiketek çêkir, nimûne [https://ku.wiktionary.org/w/index.php?title=Bikarh%C3%AAner:Balyozxane/testinggg&action=history] tu dikarî guhartinên dawî parzûn bikî ji bo ku guhartinên bi vî etîketî neyên dîtin. ::::::::::::Belê çavkanîdayîn jî pêwîst e. Ez ê wê jî tevlî skrîptê bikim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 22:32, 9 tebax 2023 (UTC) {{outdent|::::::::::::}} {{silav|Ferhengvan}}. Min koda çêkirina wergeran nû kir. Êdî ne hewce ye yek bi yek pê li lînkan bikî. Pê li "Hemû çêke" bike. "Cureyê peyvê hilbijêre", Maneya wergerê binivîse ( bi otomatîkî navê rûpelê tê lê dikarî tiştên din lê zêde bikî), dûre ger dixwazî "Etîket" lê zêde bike bike "element, anatomî, biyolojî, ekonomî, hwd.) Dûre pê li "Bişîne" bike. Hemû werger yek bi yek tên çêkirin. Di deqiqeyê de herî zêde 6 rûpel çêdike loma hinek hêdî ye. @[[User:Ghybu|Ghbu]] Çiqas bilez be ne pirsgirêk e? --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:22, 11 tebax 2023 (UTC) :Ji bo veşartina rûpelên ku bi CreateTranslation hatine çêkirin di rûpela Guhartinên dawî de pê li "Nîşankirin" bikin, dûre Pê li "Yên bijartî derxe" bikin û "CreateTranslation hilbijêrin. Bi vî awayî vedişêrin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:24, 11 tebax 2023 (UTC) ::Her hebî, pir baş çêdike. Wisa here, em ê di çend mehan de bigihin milyonek rûpelan :-) [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 14:07, 11 tebax 2023 (UTC) :::@[[Bikarhêner:Ferhengvan|Ferhengvan]] înşela :) lê divê em hay jê hebin rûpelên xelet çênekin, dema çêdikî maneya peyvê bi eşkere bidin nivîsîn [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:17, 11 tebax 2023 (UTC) ::::@[[Bikarhêner:Ferhengvan|Ferhengvan]] herwiha ger te xeletîyek dît, min agahdar bike. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:18, 11 tebax 2023 (UTC) ::::Merheba, ji cûrên peyvan (navdêr, rengdêr, lêker...) "hejmar" kêm e, divê ew jî hebe. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:29, 12 tebax 2023 (UTC) * @[[Bikarhêner:Ferhengvan|Ferhengvan]] di vê navberê de ger wextê te hebe, Xêra xwe dikarî navê zimanan jî bikî kurdî [[Modul:ziman]], ji ber ku em gelek rûpel çêdikin navên zimanan bi îngilîzî dimînin. Divê werin kurdîkirin ji bo ku em karibin kategoriyên wan çêkin. Ji bo çêkirina kategoriyan Koda jêr tevlî [[Special:MyPage/common.js|rûpela xwe ya common.js]] bike: <syntaxhighlight lang="javascript> //[[Bikarhêner:Balyozxane/addAutoCat.js]] mw.loader.load('//ku.wiktionary.org/w/index.php?title=Bikarhêner:Balyozxane/addAutoCat.js&action=raw&ctype=text/javascript'); </syntaxhighlight> :--[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) ::{{r|Ferhengvan}} Rûpelên xelet çêneke. Min hejmar lê zêde kir lê dema tiştek kêm be heta were sererastkirin bisekine Xêra xwe. --[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 06:39, 12 tebax 2023 (UTC) :::Temam. Lê yên çêkirî ne xelet in ji ber ku hemû hejmar di heman demê de navdêr in jî. [[Bikarhêner:Ferhengvan|Ferhengvan]] ([[Gotûbêja bikarhêner:Ferhengvan|gotûbêj]]) 06:51, 12 tebax 2023 (UTC) ::::Silav @[[Bikarhêner:Ghybu|Ghybu]]. Em çêkirina rûpelan bi hesaba xwe dewam bikin yan jî hesaba xwe ya botê bi kar bînin? pîng {{r|Ferhengvan}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 19:37, 14 tebax 2023 (UTC) == Bot == Silav Balyozxane, Sererastkirina rêzimanî bi botê problem e: te jî [https://ku.wiktionary.org/w/index.php?title=Koban%C3%AE&curid=279200&diff=5551838&oldid=5551836 dît], ji ber ku jêgirtin û çavkaniyan jî sererast dike :) [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 14:48, 21 îlon 2023 (UTC) :Silav @[[Bikarhêner:Ghybu|Ghybu]] Min yek bi yek AWB kontrol dikir û wextê xeletî çêkir, min rawestand, xeletiyê rast kir û dîsa dewam kir :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:50, 21 îlon 2023 (UTC) == çêkirina forman bo [[hûr kirin]] == Silav Balyozxane, gelo çi dibe sedem ku forma [[hûr kir]] bi awayekî otomatîk nayê afirandin? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:15, 12 çiriya paşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Li cem min pirsgirêk tine ye. Ka rûpelê purge bike û dîsa biceribîne. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:18, 12 çiriya paşîn 2023 (UTC) ::Silav, niha, piştî ku te rêz guhart, çêbû. - [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:20, 12 çiriya paşîn 2023 (UTC) :::Û gelek caran divê ez ji peyvê derkevim ji ber ku form amade nabin (dema ku ez pê lê dikim). Bnr.: [https://ku.wiktionary.org/w/index.php?title=d%C3%BBr_kir&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=d%C3%BBr%20kirin&accel1=pos-l%C3%AAker%20bor%C3%AE%7C1%7Cyj-form-of&accel2=pos-l%C3%AAker%20bor%C3%AE%7C2%7Cyj-form-of&accel3=pos-l%C3%AAker%20bor%C3%AE%7C3%7Cyj-form-of&accel4=pos-l%C3%AAker%20bor%C3%AE%7C123%7Cp-form-of]. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:21, 12 çiriya paşîn 2023 (UTC) ::: Gava ez ji formê dertêm, û dîsa li ser gotara sereke dîsa pê li formê bikim, hingê çêdibe. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:23, 12 çiriya paşîn 2023 (UTC) ::::@[[Bikarhêner:Şêr|Şêr]] Ger li jor URL hebe û tê de agahdarî hebin, wê demê ne hewce ye derkevî rûpelê dîsa bar bike ew ê were çêkirin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 11:37, 12 çiriya paşîn 2023 (UTC) :::::Baş e, mala te ava. :) Dem baş --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:38, 12 çiriya paşîn 2023 (UTC) ::::::URL bi piranî tune. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 11:42, 12 çiriya paşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Ez lê dinêrim lê min ti pirsgirêk nedît. Belkî tu hinek zû tevdigerî û bêyî ku lînk were derdikevî? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 12:17, 12 çiriya paşîn 2023 (UTC) ::::::::@[[Bikarhêner:Şêr|Şêr]] Hay ji syntaxhighlighter hebe, dema vekirî be carinan ji ber wê encam dernakevin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:26, 12 çiriya paşîn 2023 (UTC) == amûra "wergerîne" == Silav keko, min hewl da ku wergeran (ji ferhenga en) bidim wergirtin bi rêya amûra te, lê nebû. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:18, 16 çiriya paşîn 2023 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Silav. Te çi kir? Divê ji en.wiktê beşa Translation rasterast li rûpeleke ku.wiktê kopî bikî. Ti tişt neguherîne. Divê şablonên <nowiki>{{trans-top}} û {{trans-bottom}}</nowiki> hebe. (Heke navê şablona trans-top-see be divê -see jê bibî.) Dûre pê li Wergerîne bike û navê rûpela en.wiktê binivîse. Tiştek din nenivîse. Ew qas :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:21, 16 çiriya paşîn 2023 (UTC) ::@[[Bikarhêner:Şêr|Şêr]] Di amûra CreateTranslation de piştî te pê li "Bişîne" kir, divê rûpel vekirî bimîne heta hemû werger werin çêkirin. Ger ji rûpelê derkevî, amûr betal dibe. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) ::Spas, fam kir ;) :::PS: qismê > beşa çêtir e, ji ber ku beş "kurdîtir" e. Silav --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:32, 16 çiriya paşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] "beş" li vir wekî hemû beşa Wergerê karibe were fêmkirin, lê di beşekê de dikare ji yekî zêdetir qism hebin loma me peyva qism tercîh kir. Herwiha ji mêj ve ye me dev ji dîtina peyveke "kurdîtir" berdaye, kîjan peyv berbelav be em wê bi kar tînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:39, 16 çiriya paşîn 2023 (UTC) ::::Ez jî wisa difikirim. Lê mixabin hin kurdên me serê xwe bi "paqijkirina" kurdî diêşînin. Ger em li gorî vê mantiqê tev bigerin, divê em nîvê zimanê almanî jê bibin. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:47, 16 çiriya paşîn 2023 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Va ye dîsa em ketin vê nîqaşê [[:w:Gotûbêj:Bangeşe#Barkirina_Bangeşe_12-2023]]. Xwedê ez ê dîn bibim. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 10 kanûna pêşîn 2023 (UTC) ::::::Herwiha [[:w:Pêjimêrk]] {{dîwar}} [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:06, 10 kanûna pêşîn 2023 (UTC) ::::::Bi demê re gotinên biyanî tevkariyeke girîng li zimanê kurdî kirine û bûne beşekî ji wê. Ev peyv danûstandina çandî, pêşketina zanistî û bandorên din nîşan didin. Zimanekî bê peyvên biyanî ne tenê ji aliyê zimanî ve belengaz e, di heman demê de ji aliyê çandî ve jî îzole dibe û nikare xwe adapte bike. Tê bêjî qey 5 hezar peyvên latînî wê kurdî xira bikin. :) Serê xwe bi wan neêşîne. Bawer bike mirov newêre kurdên me hînî kurdî bike. Wek mînak gava ez bêjim kursî, wê tiliyên xwe di nav çavên min re rakin. :( Wê li dewsa wê bêjin "rûniştek", lê ev peyv ji bo her tiştê ku mirov li ser "rûdinê" tine ziman. Xeman nexwe, yên wisa wê xilas nebin :-) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:29, 10 kanûna pêşîn 2023 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Erê lê pirsgirêk ew ê fêmbariya wîkîpediya xira dibe. Loma dixwazim qet nebe tiştên wekî sernavên gotar û kategoriyan baş bin lê ew jî nabe. Ew kes timî bi peyvên ecêb dinivîse ku êdî meriv jê ti tişt fêm nake. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:31, 10 kanûna pêşîn 2023 (UTC) ::::::::Ez jî li aliyê te me. Lê bawer ke wî hevalî ji ev peyv ji yekî wek "xwe" hîn bûne. Ev şaşî ne ya wî ye. Gava ew jî van xeletiyan bidomîne, wê yên piştî wî jî wisa hîn bibin. :( --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:35, 10 kanûna pêşîn 2023 (UTC) == Forma nû a çêkirina peyvan zû bar dibe == Silav Balyozxane, bi min forma nû a (wek ya viyetnamî) zû bar dibe. Dema ez dixwazim formên tewandî yên navdêran çêbikim, formên skrîptê bar nabin dema ku ez forma kesk ya tabloya tewandinê ditikînim.. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:55, 1 kanûna pêşîn 2023 (UTC) :[https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1 Mînak] --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 15:56, 1 kanûna pêşîn 2023 (UTC) ::Silav @[[Bikarhêner:Şêr|Şêr]] Dema di URLyê de ''User:Balyozxane/creation/intro'' [https://ku.wiktionary.org/w/index.php?title=avaker%C3%AAn&action=edit&redlink=1&editintro=User:Balyozxane/creation/intro&accel_lang=ku&accel_lemma=avaker&accel1=pos-navd%C3%AAr%20def%7Cconstr%7Cp-form-of%20gender-n] hebe li cem min form bar nabe. Lê wekî din her tim bar dibe. Ger karekî te bi vî amûrî tinebe dikarî li ser [[Taybet:Tercîh#mw-prefsection-gadgets]] neçalak bikî. Li qutiya li kêleka "Forma çêkirina rûpelên nû çalak bike" bitikîne ew ê were '''ne'''çalakkirin. Dûre dikarî dîsa çalak bikî. Niha çareseriyeke din nabînim. Ger fikrekî te hebe, bibêje em biceribînin. [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 16:06, 1 kanûna pêşîn 2023 (UTC) :::Spas, min ne-çalak kirin, pirsgirêk çareser bû. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 16:09, 1 kanûna pêşîn 2023 (UTC) == çêkirina kategoriyên tên xwestin == Silav Balyozxane, ez [https://ku.wiktionary.org/wiki/Taybet:Kategor%C3%AEy%C3%AAn_t%C3%AAn_xwestin van] kategoriyên xwestî bi bo çêbikim? Min kategoriyek wek test çêkir, [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ker%C3%AE li vir bnr] -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:26, 2 kanûna pêşîn 2023 (UTC) :Silav @[[Bikarhêner:Şêr|Şêr]]. Ger dixwazî, çêke lê pêşî [[WF:SB#katbike-rec]] bi kar bîne wek "pwb.py katbike-rec -wantedcategories". (Ne hewce ye lîsteyekî çêkî) Daku jorkategorî û înterwîkî lê were zêdekirin. Piştî hemû xilas bû îcar bi [[WF:SB#katbike]] dîsa hemû -wantedcategories çêke. Spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:30, 2 kanûna pêşîn 2023 (UTC) ::Temam, spas, va min dest pê kir [https://ku.wiktionary.org/wiki/Kategor%C3%AE:Peyv%C3%AAn_kurd%C3%AE_bi_pa%C5%9Fgira_-ok%C3%AE]. Ez ê vêga bi hesabê bot bidim çêkirin. Êvara te bimîne xweş, û spas ji bo keda te. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:46, 2 kanûna pêşîn 2023 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Gelek spas! A te jî bimîne xweş :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 21:49, 2 kanûna pêşîn 2023 (UTC) == Speech recognition ji bo kurmancî == Silav bira, te [https://huggingface.co/Akashpb13/xlsr_kurmanji_kurdish ev] dîtiye? Xuya ye ku nû ji bo kurmancî hatiye çêkirin. Piraniya hevokan hema bêje ji sedî 90 nas dike --17:50, 7 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 17:50, 7 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] ne welle min nedîtiye û zêde bala min tiştên wisa nakişîne lê belê hevalê @[[Bikarhêner:Guherto|Guherto]] pê eleqedar dibe, ez ê jê re bişînim. Gelek spas! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:59, 7 kanûna paşîn 2024 (UTC) ::Ev tişt bala min dikişînin. :)) Eger pirsên Guherto hebin, dikare bi min re bikeve têkiliyê. Êvara te bimîne xweş :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 18:02, 7 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Ew ê dê gelek bextiyar be :) Êvar baş! [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 18:05, 7 kanûna paşîn 2024 (UTC) ::::{{r|Şêr}} Di sala 2023an li ser ''commonvoice.mozilla'' de zêdetirî 15 hezar devokên kurdî hatine qeyd kirin, bnr https://commonvoice.mozilla.org/kmr. Berê me nikarîbû bikin ji ber ku dane kêm bûn, niha bi ''[[:w:en:Artificial neural network]]'' bi hêsanî tê çêkirin. [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 19:25, 7 kanûna paşîn 2024 (UTC) :::::Silav Ghybu, gelek spas ji bo agahiyê, bo keda we. Jixwe li wir Mozilla Commonvoice jî wek çavkanî hatiye bikaranîn. Silav û rêz. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:13, 7 kanûna paşîn 2024 (UTC) ::::::[https://huggingface.co/facebook/mms-tts-kmr-script_latin?text=Ew+%C3%AEro+%C3%A7i+dike%3F Ev jî] nivîsê dike deng. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:28, 9 kanûna paşîn 2024 (UTC) :::::::@[[Bikarhêner:Şêr|Şêr]] Te ceriband? Xweş dixebite gelo? Belkî em dikarin gotarên Wîkîpediyayê bidin xwendin û lînka dengî li rûpelan zêde bikin :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:31, 9 kanûna paşîn 2024 (UTC) ::::::::Min hê îro dît. Li gorî testên min nîvî-nîvî ye. Modela deng di hin peyvan xwe pirsgirêkan derdixe, zêde "qeba" ye, û hin tîp tên daqurtandin (bi lêv nake). [Û her wiha]Pêdiviya me bi zimanekî naziktir heye. :)) Model divê hinekî were perwerdekirin. Ji bo niha ez bikaranîna wê pêşniyar nakim bi rastî.- Silav û rêz ..[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:40, 9 kanûna paşîn 2024 (UTC) ::::::::Ez ê li ser Google Colab, modelê daxim û test bikim. Lê tu jî diarî peyvên xwe an jî cumleyên/hevokên xwe binivîsî. :) Wê gavê ne hewce ye ku tu daxî. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:42, 9 kanûna paşîn 2024 (UTC) :::::::::Gelek spas! Ez ê li ser PAWS biceribînim [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 20:48, 9 kanûna paşîn 2024 (UTC) ::::::::::Merheba ji we re hevalno. Min hê li ew tiştê ko Şêr lînk kiriye neceribandiye lê piçekî tecrûba min bi van tiştan re heye. Wextê ko hê nû Metayê proja xwe ya bi navê "[https://ai.meta.com/blog/multilingual-model-speech-recognition/ MMS]" derxistibû min xwest biceribênim û min dûvre jî ceriband. TTSa wê zêde bi kêr nayê ji ber ko dengên rast dernaxe (li gora alfabê diçe û alfaba me ji bo şanîkirina dengan bi kêr nayê), lê speech-recognitiona wê bi kêr tê. Hinek gotinan peve dinivîsêne lê ew piştre rehet kare were edilandin (bi destan jî û bi otomatîkî jî). Metayê proja NLLByê jî derxistibû û ew jî di mesela tercimekirinê de ji Google Translate gelekî baştir e. (Dîse jî ji bo kurmancî ya herî baş Bing Translate e). Ez bi rastî bêjim ez piçekî bi xwe serbilind im, [[Wîkîferheng:Dîwan/arşîv 2020#CommonVoice bi kurmancî|ji ber ko herî pêşî min ji CommonVoicê xwest ko kurmancî lê zêde bikin]], berî çar salan. [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:09, 10 kanûna paşîn 2024 (UTC) :::::::::::@[[Bikarhêner:Şêr|Şêr]] Ew proja ko te lînk kiriye ji MMSa Metayê kevntir e. Berî 2 salan hatiye çêkirin û li vir dosyeyek li serê heye: https://aclanthology.org/2022.lrec-1.689.pdf [[Bikarhêner:Guherto|Guherto]] ([[Gotûbêja bikarhêner:Guherto|gotûbêj]]) 11:13, 10 kanûna paşîn 2024 (UTC) == POS-Tag Kurmancî == Min tiştekî wisa ya bikêrhatî dît niha: [http://stanza.run/]. --23:33, 13 kanûna paşîn 2024 (UTC) [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:33, 13 kanûna paşîn 2024 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Gelek spas. Min niha ceriband xweş xuya dike :D. Dikarî emaila xwe vekî, dixwazim tiştek li te pirs bikim? [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 23:43, 13 kanûna paşîn 2024 (UTC) :{{r|Şêr}} Min ê vê amûrê kod bikira, bnr. [//ku.wiktionary.org/wiki/W%C3%AEk%C3%AEferheng:D%C3%AEwan/2023#Am%C3%BBr%C3%AAn_anal%C3%AEzkirina_kurmanc%C3%AE? ''Amûrên analîzkirina kurmancî?''] Ping {{r|Ferhengvan}} [[Bikarhêner:Ghybu|Ghybu]] ([[Gotûbêja bikarhêner:Ghybu|gotûbêj]]) 23:47, 13 kanûna paşîn 2024 (UTC) ::{{r|Ghybu}}, {{r|Balyozxane}}, di hin lêkeran de kêmasî hene, lê bi piranî dixebite. Mirov dikare [https://huggingface.co/stanfordnlp/stanza-kmr li vir] pêşniyazan bike? --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:03, 14 kanûna paşîn 2024 (UTC) ::{{r|Balyozxane}}, min standina e-peyaman aktîv kir. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 08:07, 14 kanûna paşîn 2024 (UTC) :::@[[Bikarhêner:Şêr|Şêr]] Min şand, înşela te dîtibe :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 13:46, 14 kanûna paşîn 2024 (UTC) ::::Belê, min dît. Lê divê pêşî ez wê sepanokê daxim. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) :::::@[[Bikarhêner:Şêr|Şêr]] Temam bira :) [[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 14:12, 14 kanûna paşîn 2024 (UTC) ::::::Min ID şand. ;) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 14:23, 14 kanûna paşîn 2024 (UTC) == tîpen erebî == : → ''Li rûpela'' [[Wîkîferheng:Dîwan/2024#tîpen erebî]] ''hat barkirin.'' == [[Wîkîferheng:ceribandin/aWa]] == null —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:05, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî ye —[[Bikarhêner:Balyozbot|Balyozbot]] ([[Gotûbêja bikarhêner:Balyozbot|gotûbêj]]) 21:15, 19 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:06, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:07, 24 çiriya paşîn 2024 (UTC) == [[Wîkîferheng:ceribandin/aWa]] == Silav @Balyozxane: Gotara te ya Wîkîferheng:ceribandin/aWa dê were jêbirin ji ber ku bêçavkanî —[[Bikarhêner:Balyozxane|Balyozxane]] ([[Gotûbêja bikarhêner:Balyozxane#top|gotûbêj]]) 17:20, 24 çiriya paşîn 2024 (UTC) == Files on Commons == Hi! I moved most of the files to Commons. So now they can be used on other wikis. The local files in [[:Kategorî:Gotarên ku bên jêbirin]] can now be deleted. Can you have a look? [[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 16:20, 31 kanûna pêşîn 2024 (UTC) :@[[Bikarhêner:MGA73|MGA73]] Sorry for the late reply. I've been quite busy lately, your message completely slipped my mind. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:53, 13 kanûna paşîn 2025 (UTC) :: Hello! No worries :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 06:41, 14 kanûna paşîn 2025 (UTC) I noticed that there is one unused file without a license: [[:Wêne:Wîkîferheng-guhertin.png]]. It it is no longer usable then I suggest to delete it. --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:41, 14 kanûna paşîn 2025 (UTC) :Done, thanks! [[Bikarhêner:Wikihez|Wikihez]]<small><sup>'''[[Bikarhêner:Balyozxane|Balyozxane]]''' ([[Gotûbêja bikarhêner:Wikihez|gotûbêj]])</sup></small> 15:44, 14 kanûna paşîn 2025 (UTC) ::Happy to help. Now [[Special:ListFiles]] looks nice and short :-) --[[Bikarhêner:MGA73|MGA73]] ([[Gotûbêja bikarhêner:MGA73|gotûbêj]]) 15:46, 14 kanûna paşîn 2025 (UTC) == Kom == Silav bira, hê jî ew koma we ya ku tu, Bikarhêner û her wiha Guherto tê de bûn, heye? Ez jî demekê tê de bûm, lê ji ber zanîngehê dema min tune bû, û ez bêdeng û bêseda jê derketibûm. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:38, 7 sibat 2025 (UTC) :@[[Bikarhêner:Şêr|Şêr]] Erê, Min mesaj şand ka lê binêre :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:06, 7 sibat 2025 (UTC) ::@[[Bikarhêner:Wikihez|Wikihez]], niha min dît. :) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:13, 7 sibat 2025 (UTC) == jêgirtin == #* {{jêder-pirtûk|ku|jêgirtin=û |nivîskar=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=9|isbn=9786257724838}} merhaba. Navê wergêr xuya nake dikarî bidî xuya kirin xêra xwe. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:01, 28 sibat 2025 (UTC) :Merheba {{r|Rewiye tine}}. Gereg {{param|wergêr}} be te "Wergêr:" nivîsiye.--[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:06, 28 sibat 2025 (UTC) ::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Bira, qaîdeyeke wisa heye ku nimûneyên bikaranîna kelîmeyan gereg pêşî ji nivîskarên bi kurdî nivîsîne were wergirtin, eger çavkaniyên ji kitêbên kurdî tine be, wê demê meriv dikare tercimeyên kitêban ji zimanên din bi kar bîne. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:11, 28 sibat 2025 (UTC) :::Yanê pirtukên werger ji bo mînak naye qebûl kirin? [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:16, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Em nabêjin "nayê qebûlkirin" lê gereg pêşî çavkaniyên kurdî be dûre yên tercime. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:23, 28 sibat 2025 (UTC) :::Rast e. Lê min vê pirtûkê xwendîye û hinek peyva bijartîye. Ez nîyetim wan jêgirtina derbas bikim. Mesele ev e. Berîya vê, min ji pirtûkên klasîk jî jêgirtina derbas kiriye. Ji bo hişyarî mala te ava. [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 19:27, 28 sibat 2025 (UTC) ::::@[[Bikarhêner:Rewiye tine|Rewiye tine]] Yên klasîk pir muhîm in, tê de kîjan kelîme derbas bin gereg em herf bi herf li wir qeyd bikin, lê yên tercime tenê eger çavkaniyên kurdî tinebin baş in. Tu dîsa kelîmeyên ku te bijartine binivîse lê ji bo kelîmeyên naskirî nekî çêtir e. Qerar dîsa jî ya te ye. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 19:32, 28 sibat 2025 (UTC) == kurmancîyek şkestî == Silav {{r|Wikihez}} https://www.youtube.com/watch?v=hH-DO1RT8zM [[Bikarhêner:Rewiye tine|Rewiye tine]] ([[Gotûbêja bikarhêner:Rewiye tine|gotûbêj]]) 12:23, 24 adar 2025 (UTC) == You may be an eligible candidate for the U4C election == <div lang="en" dir="ltr" class="mw-content-ltr"> Greetings, The [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee|Universal Code of Conduct Coordinating Committee (U4C)]] seeks candidates for the 2026 election. The U4C is the global committee responsible for overseeing enforcement of the [[foundation:Special:MyLanguage/Policy:Universal Code of Conduct|Universal Code of Conduct]]. Elections are held annually, if elected a committee member serves for two years. This year the U4C requires candidates to hold administrator rights on at least one wiki, which is why you are being contacted as you appear to hold this right. There are other requirements, such as candidates must be at least 18 years old and may not be employed by the Wikimedia Foundation or other related chapters and affiliates. You can find more information in the [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026#Call_for_Candidates|call for candidates on Meta-wiki]]. Additionally, the committee's working language is English; some ability to communicate in English is required. The election opens on 18 May, if you are eligible and interested you have until 10 May to submit your candidacy. There will be a week in between for candidates to answer questions from the community. Voting takes place privately in [[m:Special:MyLanguage/SecurePoll|SecurePoll]], successful candidates must receive at least 60% support. More information is available on [[m:Special:MyLanguage/Universal_Code_of_Conduct/Coordinating_Committee/Election/2026|the 2026 Elections page]], including timelines and other candidacy information. If you read over the material and consider yourself qualified, please consider submitting your name to run for the committee. If you think someone else in your community might be interested and qualified, please encourage them to run. In partnership with the U4C -- [[m:User:Keegan (WMF)|Keegan (WMF)]] ([[m:User_talk:Keegan (WMF)|talk]]) 20:06, 28 nîsan 2026 (UTC) </div> <!-- Message sent by User:Keegan (WMF)@metawiki using the list at https://meta.wikimedia.org/w/index.php?title=User:Keegan_(WMF)/test&oldid=30472432 --> == [[bilgîsayar]] == Silav @[[Bikarhêner:Wikihez|Wikihez]], di gotara [[bilgîsayar]] de çavkanî hewce ne. ''[[Wîkîferheng:Pîvekên tevlîkirinê|Çavkanî hewce ye]].'' —[[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 00:11, 30 hezîran 2026 (UTC) == Lîsteyek heye? == Silav WikiHez, te got şablon hene, eceba lîsteyek heye ku ez jê hemû şablonên WikiFerhengê bibînim? [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:14, 31 tîrmeh 2026 (UTC) :Merheba @[[Bikarhêner:Kurdanparez|Kurdanparez]], Li vira [[Alîkarî:Bikaranîna şablonan]] lîsteyek heye feqat hem gelek ji wan kevn bûne, hem jî ne mimkûn e em hemû şablonan rêz bikin. Pêşî li ser wîkîya îngilîzî li şablona dixwazî bigere, eger înterwîkiyan de tinebe, ji min re binivîse ez ê çêkim. :Pirsek Min non-gloss [[:en:T:n-g]] wekî {{ş|îzaha ne eleqedarî maneyê}} (bi kurtî înm) tercime kir feqat çi eleqeyê ez jî nizanim fikrekî te hebe li gotûbêjê binivîse em rast bikin. Niha dibêjim, gloss bikim îzaha maneyî, non-gloss bikim îzaha nemaneyî belkî baştir be, tu çi dibêjî? [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:22, 31 tîrmeh 2026 (UTC) ::Gelek spas. Ez ê li wir binivîsim. [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 22:27, 31 tîrmeh 2026 (UTC) :::@[[Bikarhêner:Kurdanparez|Kurdanparez]] [https://ku.wiktionary.org/w/index.php?title=dimil%C3%AE&diff=6292587&oldid=6292584] Ji bo înlîne-modifiers bnr [[Modul:columns#L-711]] ji bo etîketan [[Modul:labels#Çêkirina_etîketan]] jkx yên ku kêm in îlawe bike. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:49, 31 tîrmeh 2026 (UTC) ::::Gelek spas :)) [[Bikarhêner:Kurdanparez|Kurdanparez]] ([[Gotûbêja bikarhêner:Kurdanparez|gotûbêj]]) 23:03, 31 tîrmeh 2026 (UTC) == کرمانجی == سەلام. پرسیارێکم هەبوو، کرمانجی زمانە یان زاراوە؟ [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 12:34, 19 tebax 2026 (UTC) :زاراوا یە فەقات ژ بۆ ژ هەڤ ئێجستنا کورمانجی و سۆرانی ل ڤر وەکی زمان خویا دبە [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 12:41, 19 tebax 2026 (UTC) ::باشە لە [https://ku.wiktionary.org/wiki/Destp%C3%AAk دەستپێک] نووسراوە «فەرهەنگ بە '''کورمانجی''' و زێدەیێ ۳۸۱۹ زیمانێن دینێ»، باشتر نەبوو نووسرابا '''کوردی کرمانجی'''؟ ::[[:Kategorî:Kurmancî|لێرەش]] لە نێو ئەو باکسەی نووسراوە '''زیمانێ کورمانجی''' نەک '''زاراڤەیا کورمانجی'''. [[Bikarhêner:SiNa|SiNa]] ([[Gotûbêja bikarhêner:SiNa|gotûbêj]]) 19:02, 19 tebax 2026 (UTC) :::Ew ne tiştên muhîm in, ne lazim e em her daîm kurdî kurmancî binivîsin, kurmancî jî soranî jî kurdî ne, her kes jî wisa qebûl dike. Kategorî jî ji ber ku otomatîk tê çêkirin min nexwest wextê xwe pê re xerc bikim. [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 10:51, 21 tebax 2026 (UTC) == Soranî bi tîpên latînî == Silav birako, min dît ku bo eynî/heman kelîmeyên soranî guhartoya bi tîpên latînî jî heye. Û translîterasyon jî tevlihev dibe. Wekî nimûne binêre: [https://ku.wiktionary.org/wiki/b%C3%AErkirdinewe#Soran%C3%AE]. Gelo baş e ku her du guharto hebin (farisî-erêbî û latînî)? Ez newêrim devê mijarê vekim,lê bala min kişand. :)) --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:25, 24 tebax 2026 (UTC) :Merheba, tiştên wisa li [[WF:Dîwan]]ê binivîsî çêtir e, feqat eger tenê fikrê min dipirsî, bi min yên soranî qet ne hewce ne, îro soranî tenê bi '''herfên''' erebî tên nivîsin feqat min kovarên kevn ên 1970î de soranî bi herfên latînî jî dîtine, [https://books.vejin.net/ck/books Vejîn Kitêbekan] jî yên erebî transkrîbeyî latînî dikin. Dîsa jî bila hebin, zerara wan nîne bi şerta ku li vir hatiye dayîn: [[Wîkîferheng:Dîwan/2026#Peyvên_soranî_bi_latînî_(Kategorî:Soranî)]] [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:31, 24 tebax 2026 (UTC) ::Spas ji bo bersivê. Bi taybetî min ji ber şablonan pirsî, ji ber ku tîp^en ji alfabeya erebî jî tevlî dibin. Wa Ghybu mijar vekiriye. Gava wextê min çêbû. Ez ê cewaba wî bidim. --[[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 20:36, 24 tebax 2026 (UTC) :::Bnr [[Modul:rêziman#L-188]] tu dikarî yên bi latînî bi riya <code>lang:findBestScript(pagename)</code> derxî. :::Li vir[https://ku.wiktionary.org/w/index.php?title=%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1&curid=1358825&diff=6342225&oldid=6342224] rênima çi ye? Talîmat e? hejmardarî mihasebe ye? Kesê ku vê ferhengê bi kar tîne çawa ji heqê vî zimanî derkeve? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 20:56, 24 tebax 2026 (UTC) ::::Ez ê Scriptê biceribînim. Ji ber pirsaa te: Erê, min niha ew guhartin. Ji bo ferhengê wê ferhengeke din lazim be :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 21:17, 24 tebax 2026 (UTC) :::::Welleh eynî wisa ye :D Gelek kes ketine derdê dîtina kelîmeya kurdî ya herî orîjînal, ji bîr dikin ka milet wê çawa bike :D [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:20, 24 tebax 2026 (UTC) ::::::Not: Mala te ava :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 21:21, 24 tebax 2026 (UTC) :::::::Tu çima amûra me ya [[Wf:Nû]] naceribînî? :) [[Bikarhêner:Wikihez|Wikihez]] ([[Gotûbêja bikarhêner:Wikihez#top|gotûbêj]]) 22:58, 24 tebax 2026 (UTC) ::::::::Hmm, ka ez lê binêrim, bê ka ya nû çawa ye. :) -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:24, 24 tebax 2026 (UTC) :::::::::Min aktîv kir, gelekî xweşik, lê dirêj e. :) Bi awayekî bidetay hatiye çêkirin. Destên te qet êşê nebînin. -- [[Bikarhêner:Şêr|Şêr]] ([[Gotûbêja bikarhêner:Şêr|gotûbêj]]) 23:42, 24 tebax 2026 (UTC) 8hp5zgq3n6thvrvzyap6an1hbt9rlb8 bizinêt 0 977895 6342284 6260660 2026-08-24T22:52:34Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342284 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|bizin|mê|îzafe|binavkirî}} {{navdêr|ku|z=m|form=erê}} # {{f|ku|kurmanciya rojhilatî}} ''Rewşa [[îzafeyî]] ya pirjimar a binavkirî ya'' '''[[bizin]]'''. ## {{guherto|bizinên}} ##* {{jêder-kitêb|ku|sernav=Mam Bapir and the Village Imam: XVI: Ḥekayêta Mam Bapîr û Imamê Gundî|weşanxane=BRILL|sal=2026|rûpel=104–107|isbn=978-90-04-75443-0|url=https://brill.com/view/book/9789004754430/BP000017.xml|jêgirtin=Mam Bapîr got, “qerar bît, bes ez jî li cîyê wê çakîyê sihî '''bizinêt''' bi-şîr xelat bideme te.”}} ==== Formên alternatîv ==== * {{f|ku|kurmanciya rojhilatî}} [[biznêt]] nlo2cntyy88w49dbxn3ljv1wadtapjk 6342285 6342284 2026-08-24T22:53:21Z Wikihez 7344 /* {{ziman|ku}} */ 6342285 wikitext text/x-wiki == {{ziman|ku}} == === Formeke navdêrê === {{ku-tew-nav|bizin|mê|îzafe|binavkirî}} {{navdêr|ku|z=m|form=erê}} # {{f|ku|kurmanciya rojhilatî}} ''Rewşa [[îzafeyî]] ya pirjimar a binavkirî ya'' '''[[bizin]]'''. ## {{guherto|bizinên}} ##* {{J:Shamdinani Stories I:2026|rûpel=104–107|jêgirtin=Mam Bapîr got, “qerar bît, bes ez jî li cîyê wê çakîyê sihî '''bizinêt''' bi-şîr xelat bideme te.”}} ==== Formên alternatîv ==== * {{f|ku|kurmanciya rojhilatî}} [[biznêt]] ahveviwd5zbbtqd1hmd252532nzmw9m asen 0 995833 6342111 5425406 2026-08-24T13:04:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342111 wikitext text/x-wiki == {{ziman|rm}} == === Navdêr === {{navdêr|rm}} # {{mijar|rm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rm|ker}} == {{ziman|vi}} == === Navdêr === {{navdêr|vi}} # {{f|vi|element}} [[arsenîk#ku|arsenîk]] == {{ziman|cy}} == === Navdêr === {{navdêr|cy|z=m}} # {{mijar|cy|heywan}} {{g|ku|maker}} === Çavkanî === {{rûpela wergerê|cy|maker}} eoyhsno1bifwp135fqgmf5myd569y5h bulu 0 1008278 6342078 5793638 2026-08-24T13:02:43Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342078 wikitext text/x-wiki == {{ziman|kxd}} == === Navdêr === {{navdêr|kxd}} # {{f|kxd|anatomî}} [[pûrt#ku|pûrt]], [[mû#ku|mû]] == {{ziman|ny}} == === Navdêr === {{navdêr|ny}} # {{mijar|ny|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ny|ker}} == {{ziman|id}} == === Navdêr === {{navdêr|id}} # {{f|id|anatomî}} [[mû#ku|mû]], {{g|ku|pûrt}}, [[pirç#ku|pirç]] == {{ziman|ms}} == === Navdêr === {{navdêr|ms}} # {{f|ms|anatomî}} [[pûrt#ku|pûrt]], [[mû#ku|mû]] == {{ziman|srn}} == === Navdêr === {{navdêr|srn}} # {{mijar|srn|heywan}} {{g|ku|ga}} (nêrên çêlekan) === Çavkanî === {{rûpela wergerê|srn|ga}} == {{ziman|tum}} == === Navdêr === {{navdêr|tum}} # {{mijar|tum|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tum|ker}} 9fkjy0oeojtdqk2m9wnafbt6dptc243 magar 0 1010636 6342140 5298733 2026-08-24T13:05:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342140 wikitext text/x-wiki == {{ziman|sq}} == === Navdêr === {{navdêr|sq|z=n}} # {{mijar|sq|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sq|ker}} == {{ziman|gl}} == === Girêdek === {{girêdek|gl}} # [[lê#ku|lê]] ([[feqet#ku|feqet]], [[ema#ku|ema]], [[lakin#ku|lakin]]) jgqmtv1g26emm3sjaexk2ajjtk353dz magari 0 1010822 6342158 5299214 2026-08-24T13:05:50Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342158 wikitext text/x-wiki == {{ziman|it}} == === Hoker === {{hoker|it}} # [[belkî#ku|belkî]], [[dibe ku#ku|dibe ku]] == {{ziman|rom}} == === Navdêr === {{navdêr|rom|z=n}} # {{mijar|rom|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rom|ker}} dw5vs9b0wnd7885d2ksog173xsa1yme вир 0 1014554 6341926 5505542 2026-08-24T12:56:56Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341926 wikitext text/x-wiki == {{ziman|ce}} == === Navdêr === {{navdêr|ce}} # {{mijar|ce|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ce|ker}} == {{ziman|inh}} == === Navdêr === {{navdêr|inh}} # {{mijar|inh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|inh|ker}} == {{ziman|koi}} == === Navdêr === {{navdêr|koi}} # {{f|koi|anatomî}} [[xwîn#ku|xwîn]] == {{ziman|lez}} == === Navdêr === {{navdêr|lez}} # {{mijar|lez|av}} {{g|ku|gol}}, {{g|ku|deryaçe}}, {{g|ku|gol}}a {{g|ku|av}}ê === Çavkanî === {{rûpela wergerê|lez|gol}} == {{ziman|udm}} == === Navdêr === {{navdêr|udm}} # {{f|udm|anatomî}} [[xwîn#ku|xwîn]] == {{ziman|yai}} == === Navdêr === {{navdêr|yai}} # {{f|yai|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) cm39zerkmut9ejea8rd49a4wty9ltth ашак 0 1023004 6342034 5298887 2026-08-24T13:01:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342034 wikitext text/x-wiki == {{ziman|cv}} == === Navdêr === {{navdêr|cv}} # {{mijar|cv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cv|ker}} == {{ziman|tyv}} == === Navdêr === {{navdêr|tyv}} # {{f|tyv|malbat}} {{g|ku|mêr}}, {{g|ku|şû}}, (mêrê jinekê) awdhu05rpqz58cz1ffhinytayhhmwoy muso 0 1023236 6341933 5299399 2026-08-24T12:57:14Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341933 wikitext text/x-wiki == {{ziman|eo}} == === Navdêr === {{navdêr|eo}} # {{f|eo|heywan}} {{g|ku|mişk}} == {{ziman|io}} == === Navdêr === {{navdêr|io}} # {{f|io|heywan}} {{g|ku|mişk}} == {{ziman|vec}} == === Navdêr === {{navdêr|vec|z=n}} # {{mijar|vec|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|vec|ker}} edqw8t7vjaoaqyhjfdg1tj0p7n1c510 лем 0 1026659 6342025 5416462 2026-08-24T13:00:47Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342025 wikitext text/x-wiki == {{ziman|bdk}} == === Navdêr === {{navdêr|bdk}} # {{mijar|bdk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bdk|ker}} == {{ziman|myv}} == === Navdêr === {{navdêr|myv}} # {{g|ku|nav}} ({{g|ku|ism}}) == {{ziman|mdf}} == === Navdêr === {{navdêr|mdf}} # {{g|ku|nav}} ({{g|ku|ism}}) == {{ziman|rue}} == === Hoker === {{hoker|rue}} # {{g|ku|tenê}} === Çavkanî === {{rûpela wergerê|rue|tenê}} p0ggnkzbvh7tj7ldtch8a2s8mzzhuj2 лам 0 1034611 6341963 5600833 2026-08-24T12:58:20Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341963 wikitext text/x-wiki == {{ziman|ce}} == === Navdêr === {{navdêr|ce}} # {{f|ce|erdnîgarî}} {{g|ku|çiya}} === Çavkanî === {{rûpela wergerê|ce|çiya}} == {{ziman|lez}} == === Navdêr === {{navdêr|lez}} # {{mijar|lez|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lez|ker}} == {{ziman|mn}} == === Navdêr === {{navdêr|mn}} # {{mijar|mn|dîn}} {{g|ku|rahib}}, {{g|ku|rihban}}, {{g|ku|keşîş}} === Çavkanî === {{rûpela wergerê|mn|rahib}} am0lq2e9gmzzqf1wmp5zmrlbff80ary gada 0 1038534 6341937 5298866 2026-08-24T12:57:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341937 wikitext text/x-wiki == {{ziman|aot}} == === Navdêr === {{navdêr|aot}} # {{mijar|aot|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|aot|ker}} == {{ziman|rom}} == === Navdêr === {{navdêr|rom}} # {{g|ku|cil}}, {{g|ku|kinc}}, {{g|ku|libas}}, {{g|ku|cilik}}, {{g|ku|cilûberg}} === Çavkanî === {{rûpela wergerê|rom|cil}} nu7od0u4l3hg0gs4znb9hswbp3giwva burra 0 1039992 6342150 5425397 2026-08-24T13:05:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342150 wikitext text/x-wiki == {{ziman|ast}} == === Navdêr === {{navdêr|ast}} # {{mijar|ast|heywan}} {{g|ku|mahîn}}, {{g|ku|mehîn}} === Çavkanî === {{rûpela wergerê|ast|mahîn}} == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=m}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ca|ker}} == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=m}} # {{mijar|pt|heywan}} {{g|ku|maker}} === Çavkanî === {{rûpela wergerê|pt|maker}} == {{ziman|es}} == === Navdêr === {{navdêr|es|z=m}} # {{mijar|es|heywan}} {{g|ku|maker}} === Çavkanî === {{rûpela wergerê|es|maker}} 684h9vbkhy3zdiyjcelbktscg0t386r аҽада 0 1051804 6341984 5298719 2026-08-24T12:59:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341984 wikitext text/x-wiki == {{ziman|ab}} == === Navdêr === {{navdêr|ab}} # {{mijar|ab|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ab|ker}} 697hrow0d228g159k2hcno1s9gvfce7 щыды 0 1051805 6342095 5298721 2026-08-24T13:03:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342095 wikitext text/x-wiki == {{ziman|ady}} == === Navdêr === {{navdêr|ady}} # {{mijar|ady|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ady|ker}} p2mdoyrp0ju3c99vq9wigsniygdv1as donkie 0 1051809 6342152 5298727 2026-08-24T13:05:37Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342152 wikitext text/x-wiki == {{ziman|af}} == === Navdêr === {{navdêr|af}} # {{mijar|af|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|af|ker}} aiq3lgs5i4k5hm6ywsmhd6w4waugn7j Grauchen 0 1051816 6342142 5298737 2026-08-24T13:05:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342142 wikitext text/x-wiki == {{ziman|de}} == === Navdêr === {{navdêr|de|z=nt}} # {{mijar|de|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|de|ker}} g6y04rrpb39heyx4mvsdtuq5l0gl3gm Grautier 0 1051820 6342159 5298741 2026-08-24T13:05:52Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342159 wikitext text/x-wiki == {{ziman|de}} == === Navdêr === {{navdêr|de|z=nt}} # {{mijar|de|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|de|ker}} g6y04rrpb39heyx4mvsdtuq5l0gl3gm ܚܡܪܐ 0 1051824 6341925 5323405 2026-08-24T12:56:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341925 wikitext text/x-wiki == {{ziman|arc}} == === Navdêr === {{navdêr|arc|tr=ḥamrā}} # {{mijar|arc|vexwarin}} {{g|ku|mey}}, {{g|ku|bade}}, {{g|ku|şerab}} === Çavkanî === {{rûpela wergerê|arc|mey}} == {{ziman|syc}} == === Navdêr === {{navdêr|syc|tr=ḥəmārā}} # {{mijar|syc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|syc|ker}} d9k6bghkppii57byvkp6t2jq0rp0w78 ܚܡܪܬܐ 0 1051829 6342035 5298750 2026-08-24T13:01:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342035 wikitext text/x-wiki == {{ziman|syc}} == === Navdêr === {{navdêr|syc|tr=ḥəmārtā|z=m}} # {{mijar|syc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|syc|ker}} dcig644mxmhkq0ddsmv16x8wlit0qo3 חמרא 0 1051833 6342023 5298754 2026-08-24T13:00:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342023 wikitext text/x-wiki == {{ziman|arc}} == === Navdêr === {{navdêr|arc|חֲמָרָא|tr=ḥămārā|z=n}} # {{mijar|arc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|arc|ker}} b5bql2bxhlcjhslbgziebu0mxyx0b8n cãci 0 1051836 6342125 5298758 2026-08-24T13:04:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342125 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy dãngã 0 1051839 6341976 5298761 2026-08-24T12:58:52Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341976 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy gumar 0 1051843 6342133 5298765 2026-08-24T13:04:52Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342133 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy dãnglãrã 0 1051847 6342071 5298769 2026-08-24T13:02:32Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342071 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy မြည်း 0 1051854 6341960 5298778 2026-08-24T12:58:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341960 wikitext text/x-wiki == {{ziman|my}} == === Navdêr === {{navdêr|my}} # {{mijar|my|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|my|ker}} td4xwv18dlbcdjujvl3xrbi1dzg9g3c ulaq 0 1051858 6342079 5298782 2026-08-24T13:02:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342079 wikitext text/x-wiki == {{ziman|az}} == === Navdêr === {{navdêr|az}} # {{mijar|az|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|az|ker}} 69lsle9mhpprnwuwvhvyf3obbwabvag keribas 0 1051862 6342130 5298787 2026-08-24T13:04:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342130 wikitext text/x-wiki == {{ziman|bdr}} == === Navdêr === {{navdêr|bdr}} # {{mijar|bdr|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bdr|ker}} k7lg37fq5sk5tqzmwo1cgdvctkurrm3 магаре 0 1051864 6341954 5299111 2026-08-24T12:58:03Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341954 wikitext text/x-wiki == {{ziman|bg}} == === Navdêr === {{navdêr|bg|мага́ре|z=nt}} # {{mijar|bg|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bg|ker}} == {{ziman|mk}} == === Navdêr === {{navdêr|mk|z=nt}} # {{mijar|mk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mk|ker}} 2fq6wid8rxox828o67yu45k38jf816m गदहा 0 1051868 6341928 5298795 2026-08-24T12:57:02Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341928 wikitext text/x-wiki == {{ziman|awa}} == === Navdêr === {{navdêr|awa|z=n}} # {{mijar|awa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|awa|ker}} 4rcr6b734hvzwqx4je4oksaj1un6blq ишәк 0 1051872 6341947 5299296 2026-08-24T12:57:49Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341947 wikitext text/x-wiki == {{ziman|ba}} == === Navdêr === {{navdêr|ba}} # {{mijar|ba|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ba|ker}} == {{ziman|tt}} == === Navdêr === {{navdêr|tt}} # {{mijar|tt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tt|ker}} ivmczpx637vdvij5m6zvxztm13qx4o2 ہر 0 1051875 6342116 5320214 2026-08-24T13:04:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342116 wikitext text/x-wiki == {{ziman|bal}} == === Navdêr === {{navdêr|bal|tr=har}} # {{mijar|bal|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bal|ker}} == {{ziman|ur}} == === Cînav === {{cînav|ur|tr=har}} # {{g|ku|her}} (hemû) === Çavkanî === {{rûpela wergerê|ur|her}} qyd5r973k61r164rzupnh93euzmr7rh uricljat 0 1051880 6342127 5298807 2026-08-24T13:04:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342127 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy tãronj 0 1051884 6342104 5298811 2026-08-24T13:03:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342104 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy গাধ 0 1051888 6342000 5298815 2026-08-24T12:59:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342000 wikitext text/x-wiki == {{ziman|as}} == === Navdêr === {{navdêr|as}} # {{mijar|as|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|as|ker}} pdsbnsny9z42wuh6hnzm055sl6d8kj1 ܐܬܢܐ 0 1051891 6342086 5298819 2026-08-24T13:02:57Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342086 wikitext text/x-wiki == {{ziman|syc}} == === Navdêr === {{navdêr|syc|tr=ʾăṯānā|z=m}} # {{mijar|syc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|syc|ker}} 290a9n3w5ad5mnn8tny23d75pu5k6ix አህያ 0 1051895 6342068 5298823 2026-08-24T13:02:24Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342068 wikitext text/x-wiki == {{ziman|am}} == === Navdêr === {{navdêr|am|tr=äheyya}} # {{mijar|am|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|am|ker}} a2n204ahjmei0ypxtsu3w73eztyjgxf гьаморохи 0 1051899 6342097 5298827 2026-08-24T13:03:26Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342097 wikitext text/x-wiki == {{ziman|ani}} == === Navdêr === {{navdêr|ani}} # {{mijar|ani|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ani|ker}} nsddekat7uj64ufc24pevmdxe2ryq64 uci 0 1051904 6342117 5298832 2026-08-24T13:04:21Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342117 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy gomar 0 1051906 6342045 5298836 2026-08-24T13:01:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342045 wikitext text/x-wiki == {{ziman|sq}} == === Navdêr === {{navdêr|sq|z=n}} # {{mijar|sq|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sq|ker}} 6uxs73cfpt27zrbcw3bcziym13gwml6 хӏама 0 1051910 6341935 5298840 2026-08-24T12:57:18Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341935 wikitext text/x-wiki == {{ziman|av}} == === Navdêr === {{navdêr|av}} # {{mijar|av|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|av|ker}} o5kfe2bcrh48vwi322tv1cpuvovmdxs shonj 0 1051913 6342137 5298844 2026-08-24T13:05:02Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342137 wikitext text/x-wiki == {{ziman|rup}} == === Navdêr === {{navdêr|rup}} # {{mijar|rup|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rup|ker}} lof15udyfoz0sw1ousk6oda2944wbzy эштек 0 1051915 6342091 5298848 2026-08-24T13:03:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342091 wikitext text/x-wiki == {{ziman|alt}} == === Navdêr === {{navdêr|alt}} # {{mijar|alt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|alt|ker}} mpwoj9vbq25392t9uupqwdsvx00f8bh pollín 0 1051917 6342011 5298852 2026-08-24T13:00:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342011 wikitext text/x-wiki == {{ziman|ast}} == === Navdêr === {{navdêr|ast|z=n}} # {{mijar|ast|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ast|ker}} axn0yrhsi6lrvt7s35yywaprvoi4ij4 kaldei 0 1051922 6342107 5298857 2026-08-24T13:04:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342107 wikitext text/x-wiki == {{ziman|sne}} == === Navdêr === {{navdêr|sne}} # {{mijar|sne|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sne|ker}} lklp5cs1tbdzzps6hkrtpw5ecqghyzn асёл 0 1051924 6342049 5298862 2026-08-24T13:01:42Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342049 wikitext text/x-wiki == {{ziman|be}} == === Navdêr === {{navdêr|be|z=n}} # {{mijar|be|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|be|ker}} gjb5nynbrajtp0vthzw5k9rohw9rnjt azen 0 1051929 6342056 6061536 2026-08-24T13:01:58Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342056 wikitext text/x-wiki == {{ziman|br}} == === Bilêvkirin === * {{deng|br|LL-Q12107 (bre)-Arzhela Aelia-azen.wav|Deng|dever=Carhaix-Plouguer, Fransa}} * {{deng|br|LL-Q12107 (bre)-TeauDD-azen.wav|Deng|dever=Skol an Emsav, Fransa}} === Navdêr === {{navdêr|br|z=n}} # {{mijar|br|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|br|ker}} mcasg6j93ypw3ldvy8xiussa0q3tisf asto 0 1051933 6342129 5298873 2026-08-24T13:04:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342129 wikitext text/x-wiki == {{ziman|eu}} == === Navdêr === {{navdêr|eu}} # {{mijar|eu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|eu|ker}} kbg74xtmzeid6e7c7s00k3gaidckhy5 осел 0 1051938 6342145 6122154 2026-08-24T13:05:23Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342145 wikitext text/x-wiki == {{ziman|bg}} == === Bilêvkirin === * {{deng|bg|LL-Q7918 (bul)-Kiril kovachev-осел.wav|Deng|dever=}} === Navdêr === {{navdêr|bg|осе́л|z=n}} # {{mijar|bg|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bg|ker}} == {{ziman|uk}} == === Navdêr === {{navdêr|uk|осе́л|z=n}} # {{mijar|uk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|uk|ker}} d8zgctm3x4yyejjnn81cj3dthrvm5aj 驢仔 0 1051942 6341991 5298976 2026-08-24T12:59:22Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341991 wikitext text/x-wiki == {{ziman|hak}} == === Navdêr === {{navdêr|hak|tr=lì-è}} # {{mijar|hak|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hak|ker}} == {{ziman|nan}} == === Navdêr === {{navdêr|nan|tr=lû-á / lî-á / lîr-á}} # {{mijar|nan|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nan|ker}} == {{ziman|yue}} == === Navdêr === {{navdêr|yue|tr=leoi4 zai2}} # {{mijar|yue|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|yue|ker}} 10scnty8mzdvvc7wc2b2lt669rhuvqg 0 1051949 6342050 5299045 2026-08-24T13:01:44Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342050 wikitext text/x-wiki == {{ziman|yue}} == === Navdêr === {{navdêr|yue|tr=leoi4}} # {{mijar|yue|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|yue|ker}} == {{ziman|wuu}} == === Navdêr === {{navdêr|wuu}} # {{mijar|wuu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wuu|ker}} == {{ziman|nan}} == === Navdêr === {{navdêr|nan|tr=lîr / lû / lî}} # {{mijar|nan|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nan|ker}} == {{ziman|cdo}} == === Navdêr === {{navdêr|cdo|tr=lè̤}} # {{mijar|cdo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cdo|ker}} == {{ziman|cmn}} == === Navdêr === {{navdêr|cmn|tr=lǘ}} # {{mijar|cmn|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cmn|ker}} dlkhgc6881ii9pf8mjram7kehjr4yu9 лү 0 1051956 6342075 5298898 2026-08-24T13:02:37Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342075 wikitext text/x-wiki == {{ziman|dng}} == === Navdêr === {{navdêr|dng}} # {{mijar|dng|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dng|ker}} bnxwc21gllf8ktoi44c1ln1h8686o1c ᏗᎦᎵᏅᎯᏛ 0 1051964 6341969 5298911 2026-08-24T12:58:36Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341969 wikitext text/x-wiki == {{ziman|chr}} == === Navdêr === {{navdêr|chr}} # {{mijar|chr|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|chr|ker}} 0hpfbdg92w5qq3qy3frwdk5nmhlxybi tongki 0 1051968 6342036 5298915 2026-08-24T13:01:12Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342036 wikitext text/x-wiki == {{ziman|chk}} == === Navdêr === {{navdêr|chk}} # {{mijar|chk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|chk|ker}} qff9alvia1ntq969lm7d5bcb2wtz93f osel 0 1051972 6342113 6117106 2026-08-24T13:04:13Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342113 wikitext text/x-wiki == {{ziman|cs}} == === Navdêr === {{navdêr|cs|z=n}} # {{mijar|cs|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cs|ker}} == {{ziman|pms}} == === Navdêr === {{navdêr|pms|z=n}} # {{mijar|pms|heywan}} {{g|ku|teyr}}, {{g|ku|firinde}}, {{g|ku|balinde}} #* {{bênimûne|pms}} === Çavkanî === {{rûpela wergerê|pms|teyr}} == {{ziman|sl}} == === Navdêr === {{navdêr|sl|z=n}} # {{mijar|sl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sl|ker}} 1jmnag5mwfsnuombsrmtiggfpwzqcin بهيم 0 1051975 6342126 5298923 2026-08-24T13:04:37Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342126 wikitext text/x-wiki == {{ziman|aeb}} == === Navdêr === {{navdêr|aeb|tr=bhīm|z=n}} # {{mijar|aeb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|aeb|ker}} i5fnmfg2z8qst3mevfwv5dbgfrhwqul элжэгэн 0 1051978 6341997 5298926 2026-08-24T12:59:36Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341997 wikitext text/x-wiki == {{ziman|bua}} == === Navdêr === {{navdêr|bua}} # {{mijar|bua|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bua|ker}} tgox7gwhfh6059r7vlxluo02atptngy haksibish falaa' 0 1051983 6342053 5298933 2026-08-24T13:01:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342053 wikitext text/x-wiki == {{ziman|cic}} == === Navdêr === {{navdêr|cic}} # {{mijar|cic|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cic|ker}} db1l0zwimog0j83a7ppt24ov6ikr4bh دحش 0 1051985 6341994 5298937 2026-08-24T12:59:28Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341994 wikitext text/x-wiki == {{ziman|ary}} == === Navdêr === {{navdêr|ary|tr=daḥš}} # {{mijar|ary|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ary|ker}} sxswrp4gc4qzewi7drdfut9wubfdm56 a'éevo'ha 0 1051987 6342031 5298941 2026-08-24T13:01:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342031 wikitext text/x-wiki == {{ziman|chy}} == === Navdêr === {{navdêr|chy}} # {{mijar|chy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|chy|ker}} akhh9mooqftpprvhph2fnqha60qi06b azeno 0 1051992 6342077 5298946 2026-08-24T13:02:41Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342077 wikitext text/x-wiki == {{ziman|eo}} == === Navdêr === {{navdêr|eo}} # {{mijar|eo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|eo|ker}} bshwwvqet4odfl5il4bxk2bcw2lgwp2 åsn 0 1051996 6341927 5298950 2026-08-24T12:57:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341927 wikitext text/x-wiki == {{ziman|ovd}} == === Navdêr === {{navdêr|ovd|z=m}} # {{mijar|ovd|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ovd|ker}} qvzokgl3iqaq92qzbe0738u8u10lha9 tedzi 0 1051999 6342033 5298953 2026-08-24T13:01:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342033 wikitext text/x-wiki == {{ziman|ee}} == === Navdêr === {{navdêr|ee|z=nt}} # {{mijar|ee|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ee|ker}} i2s2nb7ssssccydxlq09oxw86d3dqkk 𐌰𐍃𐌹𐌻𐌿𐍃 0 1052005 6341981 5298962 2026-08-24T12:59:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341981 wikitext text/x-wiki == {{ziman|got}} == === Navdêr === {{navdêr|got}} # {{mijar|got|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|got|ker}} 40xi4hy7xwmtw6r48sebsjhnrzi5a5j ավանակ 0 1052014 6342032 5298979 2026-08-24T13:01:02Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342032 wikitext text/x-wiki == {{ziman|hy}} == === Navdêr === {{navdêr|hy}} # {{mijar|hy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hy|ker}} 0ft7twgn25rbzgny1ec8dhntx110gel 6342121 6342032 2026-08-24T13:04:27Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: Ji [[en:ավանակ|en.wikt]] 6342121 wikitext text/x-wiki == {{ziman|hy}} == === Bilêvkirin === {{hy-IPA}} * {{deng|hy|Hy-ավանակ.ogg|dever=Ermenistana rojhilat}} === Navdêr === [[Wêne:Կենդանական_աշխարհ_77.jpg|thumb|{{lang|hy|Ավանակներ}}]] {{navdêr|hy}} # {{mijar|hy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} ==== Etîmolojî ==== Ji {{mîr|xcl|hy|յաւանակ}}. ==== Dûnde ==== * {{dû|ota|آواناق|tr=avanak|deyn=1}} ** {{dû|tr|avanak}} * {{dû|cpg|αβανάκ|deyn=1}} * {{dû|el|αβανάκης|deyn=1|qq=Constantinople}} cd0v3us4ki7lra7kq8rljkhn8t69xfo دحشة 0 1052017 6341999 5298982 2026-08-24T12:59:42Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341999 wikitext text/x-wiki == {{ziman|ary}} == === Navdêr === {{navdêr|ary|tr=daḥša|z=m}} # {{mijar|ary|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ary|ker}} 8ypqvh34pt8t78onb7visw6gqcmd3g9 æsel 0 1052019 6342135 5298985 2026-08-24T13:04:57Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342135 wikitext text/x-wiki == {{ziman|da}} == === Navdêr === {{navdêr|da|z=nt}} # {{mijar|da|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|da|ker}} 1h520xaicpoun1q3geaapajdxol49ob ހިާމރު 0 1052020 6341966 5298988 2026-08-24T12:58:27Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341966 wikitext text/x-wiki == {{ziman|dv}} == === Navdêr === {{navdêr|dv}} # {{mijar|dv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dv|ker}} g9v6jzqw8v3rav0izo3uutjq5jt7bkp 驢子 0 1052025 6341979 5298994 2026-08-24T12:58:58Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341979 wikitext text/x-wiki == {{ziman|cmn}} == === Navdêr === {{navdêr|cmn|tr=lǘzi}} # {{mijar|cmn|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cmn|ker}} knf9d2exo8ojrmtovxveyw8liof46xo asno 0 1052028 6342115 5299352 2026-08-24T13:04:17Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342115 wikitext text/x-wiki == {{ziman|gl}} == === Navdêr === {{navdêr|gl}} # {{mijar|gl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gl|ker}} == {{ziman|io}} == === Navdêr === {{navdêr|io}} # {{mijar|io|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|io|ker}} == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=n}} # {{mijar|pt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pt|ker}} == {{ziman|es}} == === Navdêr === {{navdêr|es|z=n}} # {{mijar|es|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|es|ker}} == {{ziman|tl}} == === Navdêr === {{navdêr|tl}} # {{mijar|tl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tl|ker}} 4l80bmo9ttgfkhomam3a1odsfse6w0e yeşek 0 1052031 6341980 5299003 2026-08-24T12:59:03Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341980 wikitext text/x-wiki == {{ziman|gag}} == === Navdêr === {{navdêr|gag}} # {{mijar|gag|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gag|ker}} gkt9jpa72yc3bz4mz6j53s0e6fhga5l زمال 0 1052034 6342024 5299006 2026-08-24T13:00:45Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342024 wikitext text/x-wiki == {{ziman|acm}} == === Navdêr === {{navdêr|acm|tr=zmāl|z=n}} # {{mijar|acm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|acm|ker}} mg11kydbl5ksxq76tu9ep4qo4dz2tlz eesel 0 1052041 6342110 5299015 2026-08-24T13:04:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342110 wikitext text/x-wiki == {{ziman|et}} == === Navdêr === {{navdêr|et}} # {{mijar|et|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|et|ker}} eyepnnxn604j4r6gihaugyd74w26ghu አድግ 0 1052042 6342002 5299017 2026-08-24T12:59:49Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342002 wikitext text/x-wiki == {{ziman|gez}} == === Navdêr === {{navdêr|gez}} # {{mijar|gez|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gez|ker}} 46n03j1c17insh1wt0i00vze3vfygnu ગધેડો 0 1052043 6342162 5299020 2026-08-24T13:05:59Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342162 wikitext text/x-wiki == {{ziman|gu}} == === Navdêr === {{navdêr|gu}} # {{mijar|gu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gu|ker}} e0oc2tojdazfqqjl4zhd8wutzw3z6jg aasi 0 1052045 6342102 5299023 2026-08-24T13:03:46Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342102 wikitext text/x-wiki == {{ziman|fi}} == === Navdêr === {{navdêr|fi}} # {{mijar|fi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fi|ker}} 60y3air99flt78lrqrf5ao8iybo5wa6 asne 0 1052048 6342046 5299172 2026-08-24T13:01:35Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342046 wikitext text/x-wiki == {{ziman|fro}} == === Navdêr === {{navdêr|fro|z=n}} # {{mijar|fro|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fro|ker}} == {{ziman|oc}} == === Navdêr === {{navdêr|oc|z=n}} # {{mijar|oc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|oc|ker}} 097flzyci7zbwdxb1vruh3goszam8zy էշ 0 1052050 6342001 5299029 2026-08-24T12:59:47Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342001 wikitext text/x-wiki == {{ziman|hy}} == === Navdêr === {{navdêr|hy}} # {{mijar|hy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hy|ker}} 0ft7twgn25rbzgny1ec8dhntx110gel элҗгн 0 1052054 6342014 5299033 2026-08-24T13:00:17Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342014 wikitext text/x-wiki == {{ziman|xal}} == === Navdêr === {{navdêr|xal}} # {{mijar|xal|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|xal|ker}} 1tm17f2elhct4xfpe48lnw08c2ccszm حمارة 0 1052057 6342042 5425359 2026-08-24T13:01:26Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342042 wikitext text/x-wiki == {{ziman|ary}} == === Navdêr === {{navdêr|ary|tr=ḥmāra|z=m}} # {{mijar|ary|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ary|ker}} == {{ziman|ar}} == === Navdêr === {{navdêr|ar|حِمَارَة|z=m}} # {{mijar|ar|heywan}} {{g|ku|maker}} === Çavkanî === {{rûpela wergerê|ar|maker}} ha29v9j4gq3kxpcp2lanv5oyw8l77fy ロバ 0 1052059 6342040 5299039 2026-08-24T13:01:21Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342040 wikitext text/x-wiki == {{ziman|ja}} == === Navdêr === {{navdêr|ja|tr=roba}} # {{mijar|ja|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ja|ker}} owchta4ad31sis5wsbnz71povyoyhua âne 0 1052062 6341961 5299087 2026-08-24T12:58:18Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341961 wikitext text/x-wiki == {{ziman|fr}} == === Navdêr === {{navdêr|fr|z=n}} # {{mijar|fr|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fr|ker}} == {{ziman|nrf}} == === Navdêr === {{navdêr|nrf|z=n}} # {{mijar|nrf|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nrf|ker}} kgtlt58vhg2zjl2k4b115lkn2i4iet8 ಕತ್ತೆ 0 1052066 6342037 5299047 2026-08-24T13:01:14Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342037 wikitext text/x-wiki == {{ziman|kn}} == === Navdêr === {{navdêr|kn}} # {{mijar|kn|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|kn|ker}} sm7dqlhv2x6a5xmaa48kroe3ikw5k6j ვირი 0 1052069 6342067 6001155 2026-08-24T13:02:22Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342067 wikitext text/x-wiki == {{ziman|ka}} == === Bilêvkirin === * {{deng|ka|LL-Q8108 (kat)-Jana (Guilhelma)-ვირი.wav|Deng|dever=}} === Navdêr === {{navdêr|ka}} # {{mijar|ka|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ka|ker}} i61l7qiqw5v668djhyljk9uvjp3mjvw asni 0 1052070 6342029 5299334 2026-08-24T13:00:56Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342029 wikitext text/x-wiki == {{ziman|fo}} == === Navdêr === {{navdêr|fo}} # {{mijar|fo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|fo|ker}} == {{ziman|is}} == === Navdêr === {{navdêr|is}} # {{mijar|is|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|is|ker}} qzt7i045r8cp4xgstqqf0vbb1mpko7l गधा 0 1052073 6341970 5299059 2026-08-24T12:58:38Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341970 wikitext text/x-wiki == {{ziman|hi}} == === Navdêr === {{navdêr|hi|z=n}} # {{mijar|hi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hi|ker}} 79ylng559trjfwmqk2z229lofuy48n8 burro 0 1052075 6342013 5333429 2026-08-24T13:00:14Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342013 wikitext text/x-wiki == {{ziman|gl}} == === Navdêr === {{navdêr|gl}} # {{mijar|gl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gl|ker}} == {{ziman|it}} == === Navdêr === {{navdêr|it|z=n}} # {{mijar|it|xwarin}} {{g|ku|nîvişk}} === Çavkanî === {{rûpela wergerê|it|nîvişk}} == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=n}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ca|ker}} == {{ziman|lmo}} == === Navdêr === {{navdêr|lmo}} # {{mijar|lmo|xwarin}} {{g|ku|nîvişk}} === Çavkanî === {{rûpela wergerê|lmo|nîvişk}} == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=n}} # {{mijar|pt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pt|ker}} == {{ziman|es}} == === Navdêr === {{navdêr|es|z=n}} # {{mijar|es|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|es|ker}} s7pfmqg8lvhgqg8g1pqrx8b01v2rbx8 punda 0 1052076 6342106 5299391 2026-08-24T13:03:56Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342106 wikitext text/x-wiki == {{ziman|luo}} == === Navdêr === {{navdêr|luo}} # {{mijar|luo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|luo|ker}} == {{ziman|sw}} == === Navdêr === {{navdêr|sw}} # {{mijar|sw|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sw|ker}} f6jc68mcu2yw7u3hu5qj62k97e550tq გირინი 0 1052078 6342064 5299066 2026-08-24T13:02:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342064 wikitext text/x-wiki == {{ziman|xmf}} == === Navdêr === {{navdêr|xmf}} # {{mijar|xmf|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|xmf|ker}} 8v3mggmztxor502vs5ikjda29xfexp5 ᩃᩣ 0 1052080 6342141 5299068 2026-08-24T13:05:12Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342141 wikitext text/x-wiki == {{ziman|khb}} == === Navdêr === {{navdêr|khb}} # {{mijar|khb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|khb|ker}} pt0pfzlfw1cc1xmhq3alz1fhmn3pm92 harreta 0 1052081 6342092 5299070 2026-08-24T13:03:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342092 wikitext text/x-wiki == {{ziman|ktb}} == === Navdêr === {{navdêr|ktb}} # {{mijar|ktb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ktb|ker}} 3ful1xniuwixff6smfwzeujo14vly75 ลา 0 1052083 6341924 5299072 2026-08-24T12:56:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341924 wikitext text/x-wiki == {{ziman|th}} == === Navdêr === {{navdêr|th}} # {{mijar|th|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|th|ker}} ph5zwq8xf5nimsixd96qmi0xneg580q గాడిద 0 1052085 6342020 5299076 2026-08-24T13:00:36Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342020 wikitext text/x-wiki == {{ziman|te}} == === Navdêr === {{navdêr|te}} # {{mijar|te|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|te|ker}} ra6ri7493sda0wgutxhg7y2e1ah7mhk jaki 0 1052087 6342026 5299078 2026-08-24T13:00:49Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342026 wikitext text/x-wiki == {{ziman|ha}} == === Navdêr === {{navdêr|ha}} # {{mijar|ha|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ha|ker}} 8f6yah47qq184vgn7osyodo1hzpagfy asilas 0 1052088 6342054 5299080 2026-08-24T13:01:54Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342054 wikitext text/x-wiki == {{ziman|lt}} == === Navdêr === {{navdêr|lt|z=n}} # {{mijar|lt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lt|ker}} froddlejfijo54jpto0yegfrppfp11x गाढव 0 1052090 6342136 5299082 2026-08-24T13:05:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342136 wikitext text/x-wiki == {{ziman|mr}} == === Navdêr === {{navdêr|mr|z=n}} # {{mijar|mr|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mr|ker}} 2i0gvmqkanmwycubuyitey3hgd1s5b8 Iesel 0 1052092 6342148 5999926 2026-08-24T13:05:29Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342148 wikitext text/x-wiki == {{ziman|lb}} == === Bilêvkirin === * {{deng|lb|LL-Q9051 (ltz)-Procrastineur49-Iesel.wav|Deng|dever=Lûksembûrg}} === Navdêr === {{navdêr|lb|z=n}} # {{mijar|lb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lb|ker}} 1vzbhb8u4ax7vc0yl6yo6t532ybatgd assyl 0 1052095 6342044 5299088 2026-08-24T13:01:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342044 wikitext text/x-wiki == {{ziman|gv}} == === Navdêr === {{navdêr|gv|z=n}} # {{mijar|gv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|gv|ker}} 3tw3z14tv9bevyo6d7flq1joszykr2x ჯორი 0 1052097 6342021 5299090 2026-08-24T13:00:38Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342021 wikitext text/x-wiki == {{ziman|ka}} == === Navdêr === {{navdêr|ka}} # {{mijar|ka|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ka|ker}} syscxf8lnhk11asntio9unzcwfuueop szamár 0 1052099 6341946 5299092 2026-08-24T12:57:46Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341946 wikitext text/x-wiki == {{ziman|hu}} == === Navdêr === {{navdêr|hu}} # {{mijar|hu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hu|ker}} pgo2h782i2ufu5sj4563rl9b804ox9z കഴുത 0 1052101 6342149 5299094 2026-08-24T13:05:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342149 wikitext text/x-wiki == {{ziman|ml}} == === Navdêr === {{navdêr|ml}} # {{mijar|ml|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ml|ker}} epurby2bqnyp24xwy1r6aisn5yiieop ħmar 0 1052102 6342128 5299097 2026-08-24T13:04:41Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342128 wikitext text/x-wiki == {{ziman|mt}} == === Navdêr === {{navdêr|mt|z=n}} # {{mijar|mt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mt|ker}} 8fzxlg21cw9fs2v25a92vpm0omlbg7g ეშეღი 0 1052104 6342016 5299099 2026-08-24T13:00:22Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342016 wikitext text/x-wiki == {{ziman|lzz}} == === Navdêr === {{navdêr|lzz}} # {{mijar|lzz|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lzz|ker}} 0661n8yvqpbxhng9bb54ohud1xfj6f2 kāihe 0 1052107 6342139 5299102 2026-08-24T13:05:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342139 wikitext text/x-wiki == {{ziman|mi}} == === Navdêr === {{navdêr|mi}} # {{mijar|mi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mi|ker}} be8r344q8c5gerkq4jtgnsc2fn8y46e aezel 0 1052110 6342055 5299107 2026-08-24T13:01:56Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342055 wikitext text/x-wiki == {{ziman|li}} == === Navdêr === {{navdêr|li}} # {{mijar|li|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|li|ker}} 6nei7dy544sk9sm0q86tl0ofygdwwjj mùldu’úna 0 1052112 6341936 5299109 2026-08-24T12:57:22Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341936 wikitext text/x-wiki == {{ziman|twf}} == === Navdêr === {{navdêr|twf}} # {{mijar|twf|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|twf|ker}} b972f6ld2zd2whxjexo59f7uwozg1ei ᡝᡳᡥᡝᠨ 0 1052115 6341967 5299113 2026-08-24T12:58:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341967 wikitext text/x-wiki == {{ziman|mnc}} == === Navdêr === {{navdêr|mnc}} # {{mijar|mnc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mnc|ker}} 6r0cm89165kwfrdbvsvrnf849txhbwv aɣyur 0 1052117 6341944 5299115 2026-08-24T12:57:41Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341944 wikitext text/x-wiki == {{ziman|rif}} == === Navdêr === {{navdêr|rif|z=n}} # {{mijar|rif|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rif|ker}} j3qq1hi6z5idryt086kay97qa0l1voa илжиг 0 1052120 6342007 5299119 2026-08-24T13:00:01Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342007 wikitext text/x-wiki == {{ziman|mn}} == === Navdêr === {{navdêr|mn}} # {{mijar|mn|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mn|ker}} qbikf9o5waxwvmngu0nc8km376tg8a6 کلداي 0 1052122 6341941 5299122 2026-08-24T12:57:34Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341941 wikitext text/x-wiki == {{ziman|ms}} == === Navdêr === {{navdêr|ms}} # {{mijar|ms|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ms|ker}} 6cbz2ahycqn86gy4kn70qetz86ften7 keldai 0 1052124 6341988 5299124 2026-08-24T12:59:18Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341988 wikitext text/x-wiki == {{ziman|ms}} == === Navdêr === {{navdêr|ms}} # {{mijar|ms|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ms|ker}} 6cbz2ahycqn86gy4kn70qetz86ften7 aɣyul 0 1052127 6341995 5299127 2026-08-24T12:59:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341995 wikitext text/x-wiki == {{ziman|kab}} == === Navdêr === {{navdêr|kab|z=n}} # {{mijar|kab|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|kab|ker}} mj9vy34m0fc6uqykdwhc5uwjk2qjmvj himar 0 1052128 6342043 5299130 2026-08-24T13:01:28Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342043 wikitext text/x-wiki == {{ziman|ms}} == === Navdêr === {{navdêr|ms}} # {{mijar|ms|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ms|ker}} 6cbz2ahycqn86gy4kn70qetz86ften7 keledai 0 1052130 6342087 5299364 2026-08-24T13:03:00Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342087 wikitext text/x-wiki == {{ziman|id}} == === Navdêr === {{navdêr|id}} # {{mijar|id|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|id|ker}} == {{ziman|mel}} == === Navdêr === {{navdêr|mel}} # {{mijar|mel|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mel|ker}} 7mh13vrsus7u4o2pj2xwq06ke1kdx2x siutitooq 0 1052133 6341998 5299136 2026-08-24T12:59:38Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341998 wikitext text/x-wiki == {{ziman|kl}} == === Navdêr === {{navdêr|kl}} # {{mijar|kl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|kl|ker}} p4fw72zch7hse65ttqossy2ql0fepm0 ишме 0 1052136 6341943 5299139 2026-08-24T12:57:38Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341943 wikitext text/x-wiki == {{ziman|mdf}} == === Navdêr === {{navdêr|mdf}} # {{mijar|mdf|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mdf|ker}} 3rylcrqw7068y8koeitmkd3ps7onf7p اشك 0 1052139 6341940 5299142 2026-08-24T12:57:32Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341940 wikitext text/x-wiki == {{ziman|ota}} == === Navdêr === {{navdêr|ota|tr=eşek}} # {{mijar|ota|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ota|ker}} hxx3ac7llk5kkzqz1o47yx9t3o0kyux осёл 0 1052141 6342094 5299400 2026-08-24T13:03:16Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342094 wikitext text/x-wiki == {{ziman|mhr}} == === Navdêr === {{navdêr|mhr}} # {{mijar|mhr|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|mhr|ker}} == {{ziman|ru}} == === Navdêr === {{navdêr|ru|z=n}} # {{mijar|ru|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ru|ker}} == {{ziman|sah}} == === Navdêr === {{navdêr|sah}} # {{mijar|sah|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sah|ker}} == {{ziman|udm}} == === Navdêr === {{navdêr|udm}} # {{mijar|udm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|udm|ker}} lmrsrg81d1hu5to2xhao156dqwspklh хӕрӕг 0 1052148 6341964 5299154 2026-08-24T12:58:22Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341964 wikitext text/x-wiki == {{ziman|os}} == === Navdêr === {{navdêr|os}} # {{mijar|os|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|os|ker}} jruxsr5mjn7jsv527pl5dtqqs2rl14g eshak 0 1052152 6342038 5299160 2026-08-24T13:01:16Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342038 wikitext text/x-wiki == {{ziman|uz}} == === Navdêr === {{navdêr|uz}} # {{mijar|uz|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|uz|ker}} lgc4adbpznqyjyx1i0ne8bad8h7jsnt asål 0 1052155 6342060 5299163 2026-08-24T13:02:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342060 wikitext text/x-wiki == {{ziman|pox}} == === Navdêr === {{navdêr|pox|z=n}} # {{mijar|pox|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pox|ker}} dkyx2c1xy7090im7je4r8pz5dqll3ju télii 0 1052157 6341942 5299166 2026-08-24T12:57:36Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341942 wikitext text/x-wiki == {{ziman|nv}} == === Navdêr === {{navdêr|nv}} # {{mijar|nv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nv|ker}} ak5mz80i98seeimr12jkqmp648xp9as ئېشەك 0 1052162 6342157 5299175 2026-08-24T13:05:48Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342157 wikitext text/x-wiki == {{ziman|ug}} == === Navdêr === {{navdêr|ug}} # {{mijar|ug|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ug|ker}} qz6mr92g2w9y18789s1fnjuo61gyh3o ਗਧਾ 0 1052164 6341922 5299178 2026-08-24T12:56:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341922 wikitext text/x-wiki == {{ziman|pa}} == === Navdêr === {{navdêr|pa}} # {{mijar|pa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pa|ker}} lyewscegtxbblfveibyhx8i8813dm60 oślica 0 1052167 6342138 5299181 2026-08-24T13:05:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342138 wikitext text/x-wiki == {{ziman|pl}} == === Navdêr === {{navdêr|pl|z=m}} # {{mijar|pl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pl|ker}} lnbu4dc8b2afvxeqziffwyuzi9u48ju ଗଧ 0 1052170 6342069 5299184 2026-08-24T13:02:28Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342069 wikitext text/x-wiki == {{ziman|or}} == === Navdêr === {{navdêr|or}} # {{mijar|or|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|or|ker}} fbjdnppms2d2dy59wqtsnqpqpuw1b4h ciuccio 0 1052174 6342151 5299190 2026-08-24T13:05:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342151 wikitext text/x-wiki == {{ziman|nap}} == === Navdêr === {{navdêr|nap}} # {{mijar|nap|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|nap|ker}} ik7cdtwbhn50imbsh5nvxfpgob5fexc Äsel 0 1052177 6342109 5299193 2026-08-24T13:04:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342109 wikitext text/x-wiki == {{ziman|pdt}} == === Navdêr === {{navdêr|pdt|z=n}} # {{mijar|pdt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pdt|ker}} 98aw9mpfqxljj1exd5j4b5cvx5qrunk jumento 0 1052180 6342154 5299387 2026-08-24T13:05:42Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342154 wikitext text/x-wiki == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=n}} # {{mijar|pt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pt|ker}} == {{ziman|es}} == === Navdêr === {{navdêr|es}} # {{mijar|es|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|es|ker}} gyf3tg04wamdv9l7qk28e67v73w0z8u есек 0 1052183 6342010 5299199 2026-08-24T13:00:08Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342010 wikitext text/x-wiki == {{ziman|kk}} == === Navdêr === {{navdêr|kk}} # {{mijar|kk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|kk|ker}} k5crv00n85w5t8is2xwqpatos65ueas jerico 0 1052185 6342081 5299202 2026-08-24T13:02:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342081 wikitext text/x-wiki == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=n}} # {{mijar|pt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pt|ker}} t1eu8jw4niqwuudrt1f2nu340m96cha jegue 0 1052188 6342062 5299205 2026-08-24T13:02:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342062 wikitext text/x-wiki == {{ziman|pt}} == === Navdêr === {{navdêr|pt|z=n}} # {{mijar|pt|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pt|ker}} t1eu8jw4niqwuudrt1f2nu340m96cha gadrabha 0 1052190 6342093 5299208 2026-08-24T13:03:14Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342093 wikitext text/x-wiki == {{ziman|pi}} == === Navdêr === {{navdêr|pi|z=n}} # {{mijar|pi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|pi|ker}} 1abrahu9znu7yi8sz67vqgnb9b8fju6 ослица 0 1052193 6342006 5299211 2026-08-24T12:59:59Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342006 wikitext text/x-wiki == {{ziman|ru}} == === Navdêr === {{navdêr|ru|осли́ца|z=m}} # {{mijar|ru|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ru|ker}} 3q9bztbxhonjqh0g0tw5ubyixv7f743 somera 0 1052198 6342134 5299220 2026-08-24T13:04:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342134 wikitext text/x-wiki == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=m}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ca|ker}} hnjisxlh6n5zva15mhecxo7kpq0yc69 ruca 0 1052200 6342153 5299223 2026-08-24T13:05:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342153 wikitext text/x-wiki == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=m}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ca|ker}} hnjisxlh6n5zva15mhecxo7kpq0yc69 òseł 0 1052203 6342012 5299226 2026-08-24T13:00:13Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342012 wikitext text/x-wiki == {{ziman|csb}} == === Navdêr === {{navdêr|csb}} # {{mijar|csb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|csb|ker}} bisy32hecjqm8nj13r20f1t7g705n3v خَر 0 1052209 6341931 5299235 2026-08-24T12:57:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341931 wikitext text/x-wiki == {{ziman|ks}} == === Navdêr === {{navdêr|ks|z=n}} # {{mijar|ks|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ks|ker}} ob6a8m0hyhc7d1o53wnhaq4jepsgdi7 wuru 0 1052211 6341987 5299238 2026-08-24T12:59:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341987 wikitext text/x-wiki == {{ziman|qu}} == === Navdêr === {{navdêr|qu}} # {{mijar|qu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|qu|ker}} 5h4clps4fkaty8boxgus82nzqvg2n9z ⲉⲱ 0 1052215 6342028 5299244 2026-08-24T13:00:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342028 wikitext text/x-wiki == {{ziman|cop}} == === Navdêr === {{navdêr|cop}} # {{mijar|cop|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cop|ker}} bejye73adlnw5950tw8p1stnfxsr5sg magarka 0 1052217 6342103 5299247 2026-08-24T13:03:48Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342103 wikitext text/x-wiki == {{ziman|rom}} == === Navdêr === {{navdêr|rom|z=m}} # {{mijar|rom|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rom|ker}} h4xvqxil90vojhsx1gat0rfvjj146j9 חמור 0 1052219 6341971 5299431 2026-08-24T12:58:41Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341971 wikitext text/x-wiki == {{ziman|he}} == === Navdêr === {{navdêr|he|חֲמוֹר|tr=khamór|z=n}} # {{mijar|he|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|he|ker}} == {{ziman|yi}} == === Navdêr === {{navdêr|yi|tr=khamer|z=n}} # {{mijar|yi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|yi|ker}} sp78ac3n7n8dkywrcu0137bwbi6zlb2 אתון 0 1052222 6341985 5299253 2026-08-24T12:59:13Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341985 wikitext text/x-wiki == {{ziman|he}} == === Navdêr === {{navdêr|he|אָתוֹן|tr=atón|z=m}} # {{mijar|he|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|he|ker}} 45d7alw3t1etr84vt2wzi03haio1314 măgar 0 1052226 6342005 5299262 2026-08-24T12:59:56Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342005 wikitext text/x-wiki == {{ziman|ro}} == === Navdêr === {{navdêr|ro|z=n}} # {{mijar|ro|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ro|ker}} olej6gsbne1f0jk4ike0qiapfhqjuhc эшек 0 1052228 6342088 5299392 2026-08-24T13:03:02Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342088 wikitext text/x-wiki == {{ziman|krc}} == === Navdêr === {{navdêr|krc|tr=eşek}} # {{mijar|krc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|krc|ker}} == {{ziman|ky}} == === Navdêr === {{navdêr|ky}} # {{mijar|ky|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ky|ker}} cqd1toqm4sn4qxyp7tk7ugqsctmboal müsc 0 1052230 6341955 5299270 2026-08-24T12:58:08Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341955 wikitext text/x-wiki == {{ziman|lld}} == === Navdêr === {{navdêr|lld|z=n}} # {{mijar|lld|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lld|ker}} 5d70h9pvbqmuyidf8s5f6li9t1nt9nt ginggong ginggong 0 1052231 6342052 5299272 2026-08-24T13:01:49Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342052 wikitext text/x-wiki == {{ziman|rop}} == === Navdêr === {{navdêr|rop}} # {{mijar|rop|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|rop|ker}} 1y2uetw9kkhvywu96kampc8brnx3v42 asinus 0 1052233 6342041 5299274 2026-08-24T13:01:23Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342041 wikitext text/x-wiki == {{ziman|la}} == === Navdêr === {{navdêr|la|z=n}} # {{mijar|la|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|la|ker}} 96sgr9ggi1agliyaqn258d10mhn8jmd èsen 0 1052235 6342061 5299276 2026-08-24T13:02:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342061 wikitext text/x-wiki == {{ziman|lld}} == === Navdêr === {{navdêr|lld|z=n}} # {{mijar|lld|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lld|ker}} 5d70h9pvbqmuyidf8s5f6li9t1nt9nt 당나귀 0 1052237 6342112 5299278 2026-08-24T13:04:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342112 wikitext text/x-wiki == {{ziman|ko}} == === Navdêr === {{navdêr|ko}} # {{mijar|ko|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ko|ker}} nngbcyh60ryp6nwv00v3b6d866z2mli ēzelis 0 1052238 6342105 5299280 2026-08-24T13:03:54Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342105 wikitext text/x-wiki == {{ziman|lv}} == === Navdêr === {{navdêr|lv|z=n}} # {{mijar|lv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lv|ker}} 1imv8jrynum063m6hv44iafubofpjk0 musciat 0 1052240 6342100 5299282 2026-08-24T13:03:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342100 wikitext text/x-wiki == {{ziman|lld}} == === Navdêr === {{navdêr|lld|z=n}} # {{mijar|lld|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lld|ker}} 5d70h9pvbqmuyidf8s5f6li9t1nt9nt asellus 0 1052242 6342039 5299284 2026-08-24T13:01:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342039 wikitext text/x-wiki == {{ziman|la}} == === Navdêr === {{navdêr|la}} # {{mijar|la|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|la|ker}} gncmq9zw6ricizlxhjstd7pl1qrff54 ລາ 0 1052244 6342085 5299286 2026-08-24T13:02:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342085 wikitext text/x-wiki == {{ziman|lo}} == === Navdêr === {{navdêr|lo}} # {{mijar|lo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lo|ker}} 6rqx2l2cem6tw4ju32i8y0vgdxg9dfg ມ້າລໍ 0 1052246 6342047 5299288 2026-08-24T13:01:37Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342047 wikitext text/x-wiki == {{ziman|lo}} == === Navdêr === {{navdêr|lo}} # {{mijar|lo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|lo|ker}} 6rqx2l2cem6tw4ju32i8y0vgdxg9dfg សត្វលា 0 1052247 6342098 5299290 2026-08-24T13:03:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342098 wikitext text/x-wiki == {{ziman|km}} == === Navdêr === {{navdêr|km}} # {{mijar|km|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|km|ker}} imu5w57jqqq80y03bxr1u0o32ib7apn ågne 0 1052248 6342108 5299292 2026-08-24T13:04:03Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342108 wikitext text/x-wiki == {{ziman|wa}} == === Navdêr === {{navdêr|wa|z=m}} # {{mijar|wa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wa|ker}} 07xf1faqbn9bknz41nha82qzikp5dlj bourike 0 1052249 6342120 5299294 2026-08-24T13:04:27Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342120 wikitext text/x-wiki == {{ziman|wa}} == === Navdêr === {{navdêr|wa|z=m}} # {{mijar|wa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wa|ker}} 07xf1faqbn9bknz41nha82qzikp5dlj លា 0 1052251 6341932 5299298 2026-08-24T12:57:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341932 wikitext text/x-wiki == {{ziman|km}} == === Navdêr === {{navdêr|km}} # {{mijar|km|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|km|ker}} imu5w57jqqq80y03bxr1u0o32ib7apn ågntea 0 1052252 6342058 5299302 2026-08-24T13:02:03Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342058 wikitext text/x-wiki == {{ziman|wa}} == === Navdêr === {{navdêr|wa|z=n}} # {{mijar|wa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wa|ker}} kmmkdmk8472fhxsb2ss363jf39pcmpk mbaam-sëf 0 1052254 6342048 5299304 2026-08-24T13:01:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342048 wikitext text/x-wiki == {{ziman|wo}} == === Navdêr === {{navdêr|wo}} # {{mijar|wo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wo|ker}} eij5zikt1nggfjp0yuwcb4kyk4bgake බූරුවා 0 1052255 6341929 5299306 2026-08-24T12:57:04Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341929 wikitext text/x-wiki == {{ziman|si}} == === Navdêr === {{navdêr|si}} # {{mijar|si|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|si|ker}} kub7oq4pt0sj42y7ai73rx2e6oih9yr ኣድጊ 0 1052256 6342118 5299308 2026-08-24T13:04:23Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342118 wikitext text/x-wiki == {{ziman|ti}} == === Navdêr === {{navdêr|ti}} # {{mijar|ti|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ti|ker}} btzgtb5euehbt0lzagtpd7d6bl78dtg både 0 1052258 6342123 5299310 2026-08-24T13:04:31Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342123 wikitext text/x-wiki == {{ziman|wa}} == === Navdêr === {{navdêr|wa|z=m}} # {{mijar|wa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wa|ker}} 07xf1faqbn9bknz41nha82qzikp5dlj imbongolo 0 1052260 6342070 5299360 2026-08-24T13:02:30Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342070 wikitext text/x-wiki == {{ziman|xh}} == === Navdêr === {{navdêr|xh}} # {{mijar|xh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|xh|ker}} == {{ziman|zu}} == === Navdêr === {{navdêr|zu}} # {{mijar|zu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|zu|ker}} pfu9i0eyrmsjga6gsdoe32snginzl84 магарац 0 1052262 6342160 5299314 2026-08-24T13:05:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342160 wikitext text/x-wiki == {{ziman|sh}} == === Navdêr === {{navdêr|sh|ма̀гарац|z=n}} # {{mijar|sh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sh|ker}} 1f8sqd7q5w7iafwuccl7riyfw650il1 товар 0 1052263 6342132 6020023 2026-08-24T13:04:49Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342132 wikitext text/x-wiki == {{ziman|bg}} == === Navdêr === {{navdêr|bg|това́р|z=n}} # {{g|ku|bar}}, {{g|ku|piştî}} === Çavkanî === {{rûpela wergerê|bg|piştî}} == {{ziman|ky}} == === Navdêr === {{navdêr|ky}} # {{g|ku|kelûpel}}, {{g|ku|eşya}}, {{g|ku|tişt}} #* {{bêmînak|ky}} === Çavkanî === {{rûpela wergerê|ky|kelûpel}} == {{ziman|mk}} == === Navdêr === {{navdêr|mk|z=n}} # {{g|ku|bar}}, {{g|ku|piştî}} === Çavkanî === {{rûpela wergerê|mk|piştî}} == {{ziman|ru}} == === Navdêr === {{navdêr|ru|това́р|z=n}} # {{g|ku|kelûpel}}, {{g|ku|eşya}}, {{g|ku|tişt}} #* {{bêmînak|ru}} === Çavkanî === {{rûpela wergerê|ru|kelûpel}} == {{ziman|sh}} == === Navdêr === {{navdêr|sh|то̀вар|z=n}} # {{mijar|sh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sh|ker}} == {{ziman|uk}} == === Navdêr === {{navdêr|uk|това́р|z=n}} # {{g|ku|kelûpel}}, {{g|ku|eşya}}, {{g|ku|tişt}} #* {{bêmînak|uk}} === Çavkanî === {{rûpela wergerê|uk|kelûpel}} ldc08zb1we4mjzv0vq66zgd2rkpr6wv осьлъ 0 1052264 6342099 5299326 2026-08-24T13:03:33Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342099 wikitext text/x-wiki == {{ziman|cu}} == === Navdêr === {{navdêr|cu|z=n}} # {{mijar|cu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cu|ker}} == {{ziman|orv}} == === Navdêr === {{navdêr|orv|z=n}} # {{mijar|orv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|orv|ker}} pley5wn2l7z30lofi95w8i5rxactt8c asyn 0 1052265 6342089 5299320 2026-08-24T13:03:04Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342089 wikitext text/x-wiki == {{ziman|cy}} == === Navdêr === {{navdêr|cy|z=n}} # {{mijar|cy|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|cy|ker}} scqamgyb5cw5qmrqlpyu1ilrttlpkc2 magarac 0 1052266 6342090 5299322 2026-08-24T13:03:06Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342090 wikitext text/x-wiki == {{ziman|sh}} == === Navdêr === {{navdêr|sh|màgarac|z=n}} # {{mijar|sh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sh|ker}} mq9stt7ofqbfzlqsqc643lvqja5s525 tovar 0 1052267 6342161 6020012 2026-08-24T13:05:57Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342161 wikitext text/x-wiki == {{ziman|uz}} == === Navdêr === {{navdêr|uz}} # {{g|ku|kelûpel}}, {{g|ku|eşya}}, {{g|ku|tişt}} #* {{bêmînak|uz}} === Çavkanî === {{rûpela wergerê|uz|kelûpel}} == {{ziman|sh}} == === Navdêr === {{navdêr|sh|tòvar|z=n}} # {{mijar|sh|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sh|ker}} == {{ziman|sk}} == === Navdêr === {{navdêr|sk|z=n}} # {{g|ku|kelûpel}}, {{g|ku|eşya}}, {{g|ku|tişt}} #* {{bêmînak|sk}} === Çavkanî === {{rûpela wergerê|sk|kelûpel}} qdtqd5k24zf2lun6y36a2w2sndi6sb3 ишак 0 1052270 6341945 5299407 2026-08-24T12:57:44Z Balyozbot 7867 sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341945 wikitext text/x-wiki == {{ziman|ru}} == === Navdêr === {{navdêr|ru|иша́к|z=n}} # {{mijar|ru|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ru|ker}} == {{ziman|udm}} == === Navdêr === {{navdêr|udm}} # {{mijar|udm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|udm|ker}} msd0crtpxq9tb0uv1bogv7his3cjbdv samèri 0 1052272 6342015 5299330 2026-08-24T13:00:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342015 wikitext text/x-wiki == {{ziman|ist}} == === Navdêr === {{navdêr|ist}} # {{mijar|ist|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ist|ker}} gmts1acrej14xmkp94fnoh4syolyzca buricco 0 1052274 6342004 5299332 2026-08-24T12:59:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342004 wikitext text/x-wiki == {{ziman|it}} == === Navdêr === {{navdêr|it|z=n}} # {{mijar|it|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|it|ker}} 4ucg5v82oghryjxwfqn825nm2lzdaba moshok'o 0 1052278 6341965 5299338 2026-08-24T12:58:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341965 wikitext text/x-wiki == {{ziman|zun}} == === Navdêr === {{navdêr|zun}} # {{mijar|zun|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|zun|ker}} mj9ds14n07xowpjkxnbi46xt162dyck 驢馬 0 1052279 6342147 5299340 2026-08-24T13:05:27Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342147 wikitext text/x-wiki == {{ziman|ja}} == === Navdêr === {{navdêr|ja|tr=ろば, roba}} # {{mijar|ja|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ja|ker}} projiziqdneef6nkqrrbt0dv2btvf28 ásen 0 1052281 6342076 5299344 2026-08-24T13:02:39Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342076 wikitext text/x-wiki == {{ziman|se}} == === Navdêr === {{navdêr|se}} # {{mijar|se|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|se|ker}} kykve2j1ojqcd1vpx2smfbxhhx41epg udonki 0 1052282 6342119 5299346 2026-08-24T13:04:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342119 wikitext text/x-wiki == {{ziman|zu}} == === Navdêr === {{navdêr|zu}} # {{mijar|zu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|zu|ker}} 7kx51eet84c4am4un2alg5dqsys1ddy tonki 0 1052284 6341975 5299348 2026-08-24T12:58:49Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341975 wikitext text/x-wiki == {{ziman|st}} == === Navdêr === {{navdêr|st}} # {{mijar|st|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|st|ker}} fv3y6gla56vyfhz73ef105cpviivcev åsna 0 1052286 6342146 5299350 2026-08-24T13:05:25Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342146 wikitext text/x-wiki == {{ziman|sv}} == === Navdêr === {{navdêr|sv}} # {{mijar|sv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sv|ker}} sjkj81czgcawtug2r8ddj9htbqog7g6 donki 0 1052288 6342051 5299354 2026-08-24T13:01:47Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342051 wikitext text/x-wiki == {{ziman|tpi}} == === Navdêr === {{navdêr|tpi}} # {{mijar|tpi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tpi|ker}} i9fobrl3158nhlofy4cy6kpjcfwwka2 esol 0 1052294 6342063 5299366 2026-08-24T13:02:13Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342063 wikitext text/x-wiki == {{ziman|ang}} == === Navdêr === {{navdêr|ang|z=n}} # {{mijar|ang|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ang|ker}} c2ea91ny5xzmny50y0cthtpblj7oibn गर्दभ 0 1052296 6341939 5299370 2026-08-24T12:57:30Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341939 wikitext text/x-wiki == {{ziman|sa}} == === Navdêr === {{navdêr|sa|z=n}} # {{mijar|sa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sa|ker}} bpjs4ipnih4doaiztirh4ngpgnjg8qv ciuco 0 1052298 6341977 5299372 2026-08-24T12:58:55Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341977 wikitext text/x-wiki == {{ziman|it}} == === Navdêr === {{navdêr|it}} # {{mijar|it|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|it|ker}} 2q9o6p497bxmus3yfzpu1iytlf8ue3x 나귀 0 1052301 6341974 5299375 2026-08-24T12:58:46Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341974 wikitext text/x-wiki == {{ziman|ko}} == === Navdêr === {{navdêr|ko}} # {{mijar|ko|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ko|ker}} nngbcyh60ryp6nwv00v3b6d866z2mli asnu 0 1052302 6342131 5299376 2026-08-24T13:04:47Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342131 wikitext text/x-wiki == {{ziman|qu}} == === Navdêr === {{navdêr|qu}} # {{mijar|qu|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|qu|ker}} 5h4clps4fkaty8boxgus82nzqvg2n9z kercapo 0 1052304 6341957 5299378 2026-08-24T12:58:11Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341957 wikitext text/x-wiki == {{ziman|txb}} == === Navdêr === {{navdêr|txb}} # {{mijar|txb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|txb|ker}} 9qwvs6ez3xgfagndt52yuu2bjqap55v ruc 0 1052308 6342027 5299383 2026-08-24T13:00:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342027 wikitext text/x-wiki == {{ziman|ca}} == === Navdêr === {{navdêr|ca|z=n}} # {{mijar|ca|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ca|ker}} 9lalwdzkgyjldijorl0n22us6bcebe0 osoł 0 1052311 6342155 5299389 2026-08-24T13:05:44Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342155 wikitext text/x-wiki == {{ziman|csb}} == === Navdêr === {{navdêr|csb|z=n}} # {{mijar|csb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|csb|ker}} kd4c08q0nt3e3xgia56ovpmd7o4mfmc asini 0 1052312 6342124 5299390 2026-08-24T13:04:33Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342124 wikitext text/x-wiki == {{ziman|sm}} == === Navdêr === {{navdêr|sm}} # {{mijar|sm|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sm|ker}} eoynjrxs7t6likypb4tp7746xc07p6w buriko 0 1052313 6342059 5299393 2026-08-24T13:02:05Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342059 wikitext text/x-wiki == {{ziman|tl}} == === Navdêr === {{navdêr|tl}} # {{mijar|tl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tl|ker}} 7ep5d0bs6afgq4z0neznhdyu2c5bw2t ὄνος 0 1052314 6342003 5299395 2026-08-24T12:59:51Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342003 wikitext text/x-wiki == {{ziman|grc}} == === Navdêr === {{navdêr|grc|z=m}} # {{mijar|grc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|grc|ker}} 9ncr22ifq76upztal66hvhcuv2vdzii елем 0 1052315 6341996 5299397 2026-08-24T12:59:34Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341996 wikitext text/x-wiki == {{ziman|udi}} == === Navdêr === {{navdêr|udi}} # {{mijar|udi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|udi|ker}} dshva049xda6a9n0xf91kqlyskdlo7i àinu 0 1052316 6342096 5299401 2026-08-24T13:03:22Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342096 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 கழுதை 0 1052317 6341948 5299402 2026-08-24T12:57:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341948 wikitext text/x-wiki == {{ziman|ta}} == === Navdêr === {{navdêr|ta}} # {{mijar|ta|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ta|ker}} sjgvyelktmjew32efudsbhggkyuoiwr bestiolu 0 1052318 6342156 5299403 2026-08-24T13:05:46Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342156 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 somaro 0 1052319 6341990 5299404 2026-08-24T12:59:20Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341990 wikitext text/x-wiki == {{ziman|it}} == === Navdêr === {{navdêr|it|z=n}} # {{mijar|it|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|it|ker}} 4ucg5v82oghryjxwfqn825nm2lzdaba ішак 0 1052320 6341983 5299405 2026-08-24T12:59:09Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341983 wikitext text/x-wiki == {{ziman|uk}} == === Navdêr === {{navdêr|uk|іша́к|z=n}} # {{mijar|uk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|uk|ker}} m6ypnd76i3nvrmvwepil10p6ujru44n віслюк 0 1052321 6341938 5299406 2026-08-24T12:57:28Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341938 wikitext text/x-wiki == {{ziman|uk}} == === Navdêr === {{navdêr|uk|віслю́к|z=n}} # {{mijar|uk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|uk|ker}} 4issn6agoakfgvhwpjtbpqu5ct1r77w cuk 0 1052322 6341958 5299408 2026-08-24T12:58:13Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341958 wikitext text/x-wiki == {{ziman|vo}} == === Navdêr === {{navdêr|vo}} # {{mijar|vo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|vo|ker}} lphwi2eaqspy7enkk6udogyp38hl9sq элчиген 0 1052323 6342009 5299409 2026-08-24T13:00:06Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342009 wikitext text/x-wiki == {{ziman|tyv}} == === Navdêr === {{navdêr|tyv}} # {{mijar|tyv|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|tyv|ker}} 0z8rlw6wlx37vdjggcvkunmtf10gyxj bistrassu 0 1052324 6341934 5299410 2026-08-24T12:57:16Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341934 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 molènti 0 1052325 6341951 5299411 2026-08-24T12:57:58Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341951 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 osol 0 1052326 6341930 5299412 2026-08-24T12:57:07Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341930 wikitext text/x-wiki == {{ziman|sk}} == === Navdêr === {{navdêr|sk|z=n}} # {{mijar|sk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sk|ker}} 5o4t8ulrmlojutfmdayxma879lrn6or àxeno 0 1052327 6342030 5299413 2026-08-24T13:00:58Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342030 wikitext text/x-wiki == {{ziman|vec}} == === Navdêr === {{navdêr|vec|z=n}} # {{mijar|vec|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|vec|ker}} h6ffounkg8dyybzffbv05axudf96lmj བོང་བུ 0 1052328 6342066 5299415 2026-08-24T13:02:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342066 wikitext text/x-wiki == {{ziman|bo}} == === Navdêr === {{navdêr|bo}} # {{mijar|bo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|bo|ker}} r9rkkokkpj17qo0qfqhmwkze9aurktb lừa 0 1052329 6342101 5299416 2026-08-24T13:03:44Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342101 wikitext text/x-wiki == {{ziman|vi}} == === Navdêr === {{navdêr|vi}} # {{mijar|vi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|vi|ker}} 3rm4a8zbtfzifs1mxhwln9e85n7psz9 oslica 0 1052330 6341953 5299417 2026-08-24T12:58:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341953 wikitext text/x-wiki == {{ziman|sl}} == === Navdêr === {{navdêr|sl|z=m}} # {{mijar|sl|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sl|ker}} aop59gfqy42uwsvs840juaeri6kfj1u somár 0 1052331 6342017 5299418 2026-08-24T13:00:26Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342017 wikitext text/x-wiki == {{ziman|sk}} == === Navdêr === {{navdêr|sk|z=n}} # {{mijar|sk|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sk|ker}} 5o4t8ulrmlojutfmdayxma879lrn6or گدھا 0 1052332 6342074 5299419 2026-08-24T13:02:35Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342074 wikitext text/x-wiki == {{ziman|ur}} == === Navdêr === {{navdêr|ur|tr=gadhā|z=n}} # {{mijar|ur|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|ur|ker}} thswgrm3mp4s4g6od4fcghejcny7vlo bådet 0 1052333 6341993 5299420 2026-08-24T12:59:26Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341993 wikitext text/x-wiki == {{ziman|wa}} == === Navdêr === {{navdêr|wa|z=n}} # {{mijar|wa|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|wa|ker}} kmmkdmk8472fhxsb2ss363jf39pcmpk dameer 0 1052334 6342143 5299421 2026-08-24T13:05:19Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342143 wikitext text/x-wiki == {{ziman|so}} == === Navdêr === {{navdêr|so|z=n}} # {{mijar|so|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|so|ker}} 7okqa8ojpd7z23g0wvc2rcruagkm4if molenti 0 1052335 6341973 5299423 2026-08-24T12:58:43Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341973 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 wósoł 0 1052336 6342114 5299424 2026-08-24T13:04:15Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342114 wikitext text/x-wiki == {{ziman|dsb}} == === Navdêr === {{navdêr|dsb|z=n}} # {{mijar|dsb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|dsb|ker}} bsts9a6leeqaw9njlyvql54rmnmhcvs burriccu 0 1052337 6342022 5299425 2026-08-24T13:00:41Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342022 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 אייזל 0 1052338 6342144 5299426 2026-08-24T13:05:21Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342144 wikitext text/x-wiki == {{ziman|yi}} == === Navdêr === {{navdêr|yi|z=n}} # {{mijar|yi|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|yi|ker}} 4u4tfr0qnfbf1nshn9vav6sqz0rdnku wosoł 0 1052339 6341950 5299427 2026-08-24T12:57:56Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341950 wikitext text/x-wiki == {{ziman|hsb}} == === Navdêr === {{navdêr|hsb|z=n}} # {{mijar|hsb|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|hsb|ker}} 3c9b4br1bhqxeh9wd87jrcf98rtbeab polléddu 0 1052340 6342122 5299428 2026-08-24T13:04:29Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342122 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 poleddu 0 1052341 6342080 5299429 2026-08-24T13:02:48Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342080 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 sceccu 0 1052342 6341968 5299430 2026-08-24T12:58:34Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341968 wikitext text/x-wiki == {{ziman|scn}} == === Navdêr === {{navdêr|scn|z=n}} # {{mijar|scn|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|scn|ker}} c44c65x4830j0qw7wtkynnrs5npb9vf molingianu 0 1052343 6342082 5299432 2026-08-24T13:02:53Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342082 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 γαϊδούρα 0 1052344 6342057 5299433 2026-08-24T13:02:00Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342057 wikitext text/x-wiki == {{ziman|el}} == === Navdêr === {{navdêr|el|z=m}} # {{mijar|el|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|el|ker}} a4lmiij5jxw5c6cdlqkn17wsxur5imw όνος 0 1052345 6342008 5299434 2026-08-24T13:00:03Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342008 wikitext text/x-wiki == {{ziman|el}} == === Navdêr === {{navdêr|el|z=m}} # {{mijar|el|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|el|ker}} a4lmiij5jxw5c6cdlqkn17wsxur5imw kẹtẹkẹtẹ 0 1052346 6342019 5299435 2026-08-24T13:00:28Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342019 wikitext text/x-wiki == {{ziman|yo}} == === Navdêr === {{navdêr|yo|kẹ́tẹ́kẹ́tẹ́}} # {{mijar|yo|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|yo|ker}} 87s8zu34m6rbl646ibeqxlrapwfw20i گڏھ 0 1052347 6341923 5299436 2026-08-24T12:56:48Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341923 wikitext text/x-wiki == {{ziman|sd}} == === Navdêr === {{navdêr|sd|tr=gaḋahu}} # {{mijar|sd|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sd|ker}} nro2c5o5o2m18gvee1h54opn6ealb4h γάιδαρος 0 1052348 6341992 5299437 2026-08-24T12:59:24Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341992 wikitext text/x-wiki == {{ziman|el}} == === Navdêr === {{navdêr|el|z=n}} # {{mijar|el|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|el|ker}} j1kl2smkh93t648306uz59w3n0i5kh7 γαϊδούρι 0 1052349 6341921 5299439 2026-08-24T12:56:38Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6341921 wikitext text/x-wiki == {{ziman|el}} == === Navdêr === {{navdêr|el|z=nt}} # {{mijar|el|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|el|ker}} 8pe6cdam51yjuyt5g8o03s3mwmj50n7 pulléddu 0 1052350 6342065 5299440 2026-08-24T13:02:17Z Balyozbot 7867 /* Navdêr */ sererastkirin [[Wîkîpediya:AutoWikiBrowser|AWB]] 6342065 wikitext text/x-wiki == {{ziman|sc}} == === Navdêr === {{navdêr|sc}} # {{mijar|sc|heywan}} {{g|ku|ker|id=dewarek}} {{îzaha maneyî|[[dewar]]ek [[şibîn|dişibe]] [[hesp]]an û [[hêstir]]an lê ji wan [[kurt]]tir û [[biçûk]]tir}} === Çavkanî === {{rûpela wergerê|sc|ker}} 4u55d45zlkamo96dobm5io1wn2sbn25 هەبوون 0 1287061 6342211 5951923 2026-08-24T20:08:31Z Şêr 1103 mînak 6342211 wikitext text/x-wiki == {{ziman|ckb}} == === Lêker === {{lêker|ckb}} # [[hebûn]] #* {{mînak|ckb|من پرسیارێکم هەیە.|tr=Min pirsyarêkim heye.|werger=Pirseke min heye.}} #* {{mînak|ckb|ئەو ئۆتۆمبێلێکی هەیە.|tr=Ew otombêlêkî heye.|werger=Otomobîleke wî heye.}} #* {{mînak|ckb|من خوشک و برام هەیە.|tr=Min xuşk u biram heye.|werger=Xwişk û birayên min hene.}} === Navdêr === {{navdêr|ckb}} # [[hebûn]] nbpwq70r6voc6lrcut4ap748o5mdiou پرۆژە 0 1287062 6342343 5951924 2026-08-25T08:05:24Z Şêr 1103 6342343 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[proje]], [[plan]] (xebat û plana birêxistinkirî ya ji bo bidestxistina armanceke taybet di demek diyarkirî de) #: {{mînak|ckb|ئێمە سەرقاڵی جێبەجێکردنی پرۆژەیەکی نوێین.|tr=Ême sergallî cêbecêkirdinî projeyekî nwêyn.|werger=Em bi pêkanîna projeyeke nû mijûl in.}} #: {{mînak|ckb|ئەم پرۆژەیە لە مانگی داهاتوودا تەواو دەبێت.|tr=Em projeye le mangî dahatûda tewaw debêt.|werger=Ev proje di meha bê de temam dibe.}} ==== Hevmane ==== * {{g|ckb|پلان}} ==== Formên alternatîv ==== * {{g|ckb|پڕۆژە}} ==== Têkildar ==== * {{g|ckb|بودجە}} * {{g|ckb|ئامانج}} * {{g|ckb|جێبەجێکردن}} * {{g|ckb|کار}} oshmaki2aa7glthooc9fieonjqnj75i 6342350 6342343 2026-08-25T08:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342350 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[proje]], [[plan]] (xebat û plana birêxistinkirî ya ji bo bidestxistina armanceke taybet di demek diyarkirî de) #: {{mînak|ckb|ئێمە سەرقاڵی جێبەجێکردنی پرۆژەیەکی نوێین.|tr=Ême sergallî cêbecêkirdinî projeyekî nwêyn.|werger=Em bi pêkanîna projeyeke nû mijûl in.}} #: {{mînak|ckb|ئەم پرۆژەیە لە مانگی داهاتوودا تەواو دەبێت.|tr=Em projeye le mangî dahatûda tewaw debêt.|werger=Ev proje di meha bê de temam dibe.}} ==== Formên alternatîv ==== * {{g|ckb|پڕۆژە}} ==== Hevmane ==== * {{g|ckb|پلان}} ==== Têkildar ==== * {{g|ckb|بودجە}} * {{g|ckb|ئامانج}} * {{g|ckb|جێبەجێکردن}} * {{g|ckb|کار}} ai740ovw9elqzu81fo88040ajr9ns7x سەرکەوتن 0 1324978 6342279 6058920 2026-08-24T22:46:15Z Şêr 1103 6342279 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[serkeftin]], [[serfirazî]], [[serketin]] (gihîştina armancekê an bidestxistina encameke baş) #: {{mînak|ckb|هیوای سەرکەوتنت بۆ دەخوازم.|tr=Hîway serkewtinit bo dexwazim.|werger=Hêviya serkeftinê ji bo te dixwazim.}} #: {{mînak|ckb|ئەم پڕۆژەیە سەرکەوتنێکی گەورە بوو.|tr=Em pirojeye serkewtinêkî gewre bû.|werger=Ev proje serkeftineke mezin bû.}} ==== Dijmane ==== * {{g|ckb|شکست}} * {{g|ckb|سەرنەکەوتن}} ==== Hevmane ==== * {{g|ckb|سەرفرازی}} * {{g|ckb|سەرکەوتوویی}} ==== Têkildar ==== * {{g|ckb|سەرکەوتوو}} * {{g|ckb|ئامانج}} 198ak4dx4y3u5vaib9aqqv9egeuj31v 6342317 6342279 2026-08-24T23:41:28Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342317 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[serkeftin]], [[serfirazî]], [[serketin]] (gihîştina armancekê an bidestxistina encameke baş) #: {{mînak|ckb|هیوای سەرکەوتنت بۆ دەخوازم.|tr=Hîway serkewtinit bo dexwazim.|werger=Hêviya serkeftinê ji bo te dixwazim.}} #: {{mînak|ckb|ئەم پڕۆژەیە سەرکەوتنێکی گەورە بوو.|tr=Em pirojeye serkewtinêkî gewre bû.|werger=Ev proje serkeftineke mezin bû.}} ==== Hevmane ==== * {{g|ckb|سەرفرازی}} * {{g|ckb|سەرکەوتوویی}} ==== Dijmane ==== * {{g|ckb|شکست}} * {{g|ckb|سەرنەکەوتن}} ==== Têkildar ==== * {{g|ckb|سەرکەوتوو}} * {{g|ckb|ئامانج}} ezz6wxfpkpbxkswl169c80x6gxl0h3u Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js 2 1357853 6342539 6291574 2026-08-25T11:06:12Z Wikihez 7344 6342539 javascript text/javascript /** * Gadget-citoid-helper.js * * Amûreke hevpar ji bo standina daneyên çavkaniyê ji Citoid û * veguherandina wan bo qadên şablonên jêder-* (jêder-kitêb, jêder-kovar, jêder-websîte, jêder-vîdeo). * * BIKARANÎN JI SCRIPTEKE DIN: * * 1) Riya herî baş: vê rûpelê wek dependency lê zêde bike di eyarên * gadgeta xwe de li ser [[Special:Gadgets]] (an jî MediaWiki:Gadgets-definition), * paşê: * * mw.loader.using("ext.gadget.citoid-helper").then(function () { * wikt.citoid.fetchJederFields(url).then(function (result) { * console.log(result.jederKey, result.fields); * }); * }); * * 2) An jî, heke ne mimkun be gadget bi vî awayî were qeydkirin, fonksiyona * alîkar a `wikt.citoidHelper.ensure()` a li jêr bikar bîne, ku bixweber * vê rûpelê bar dike heke jixwe nehatibe barkirin: * * wikt.citoidHelper.ensure().then(function () { * wikt.citoid.fetchJederFields(url).then(...); * }); * * API ya `window.wikt.citoid`: * - getRestUrl() → {string} URLya REST a Citoid a vê wîkiyê * - yearFromDate(dateStr) → {string} sala (4 reqem) ji rêzikeke tarîxê * - formatAuthors(authors) → {string} navên nivîskaran wek rêzikek yekane * - typeToJederKey(itemType) → {string} "jêder-kitêb" / "jêder-kovar" / "jêder-websîte" / "jêder-vîdeo" * - dataToJederFields(jederKey, data) → {Object<string,string>} merheleyên şablona jêder-* * - fetchData(query) → {jQuery.Promise<Object>} daneya xam a Citoid * - fetchJederFields(query) → {jQuery.Promise<{jederKey, fields, raw}>} hêsankirî * - extractVideoTimestamp(urlStr) → {string} dema "t=" ya URLyeke vîdeoyê, wek "M:SS"/"H:MM:SS" * - TYPE_TO_JEDER → {Object} xerîteya itemType → jederKey */ window.wikt = window.wikt || {}; (function () { "use strict"; // Heke jixwe hatibe barkirin, dubare neke. if (window.wikt.citoid) { return; } // Xerîteya cureyên Citoid (itemType) li ser şablonên me yên jêder-* var CITOID_TYPE_TO_JEDER = { "book": "jêder-kitêb", "bookSection": "jêder-kitêb", "thesis": "jêder-kitêb", "report": "jêder-kitêb", "manuscript": "jêder-kitêb", "journalArticle": "jêder-kovar", "magazineArticle": "jêder-kovar", "newspaperArticle": "jêder-kovar", "webpage": "jêder-websîte", "blogPost": "jêder-websîte", "forumPost": "jêder-websîte", "videoRecording": "jêder-vîdeo", "podcast": "jêder-websîte", "encyclopediaArticle": "jêder-websîte" }; /** * Ji mantiqa [[:en:w:User:BrandonXLF/Citoid.js]] * Vedigere URLya REST a Citoid, li gorî eyarên vê wîkiyê. * @return {string} */ function getRestUrl() { var cfg = mw.config.get("wgCitoidConfig"); var vecfg = mw.config.get("wgVisualEditorConfig"); return (cfg && (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl)) ? (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl) + "v1/data/citation/mediawiki/" : (vecfg && vecfg.fullRestbaseUrl) ? vecfg.fullRestbaseUrl + "v1/data/citation/mediawiki/" : (cfg && cfg.citoidServiceUrl) ? cfg.citoidServiceUrl + "/mediawiki/" : "https://ku.wiktionary.org/api/rest_v1/data/citation/mediawiki/"; } /** * Ji tarîxa Citoid (rêzik an tarîxeke ISO) sala wê (4 reqem) derdixe. * @param dateStr {string} * @return {string} */ function yearFromDate(dateStr) { if (!dateStr) { return ""; } var match = /\d{4}/.exec(dateStr); return match ? match[0] : ""; } /** * Navên nivîskaran ên Citoid (rêzek [pêşnav, paşnav]) dike rêzikek yekane. * @param authors {Array<Array<string>>} * @return {string} */ function formatAuthors(authors) { if (!Array.isArray(authors)) { return ""; } return authors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } function formatEditors(editors) { if (!Array.isArray(editors)) { return ""; } return editors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } /** * Li gorî itemType a Citoid, navê şablona jêder-* a munasib vedigerîne. * @param itemType {string} * @return {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". */ function typeToJederKey(itemType) { return CITOID_TYPE_TO_JEDER[itemType] || "jêder-websîte"; } /** * Ji URLyeke vîdeoyê (parametreya "t", wek li YouTubeyê -- "2m17s" an jî tenê çirkeyan "137") * dema destpêkê derdixe. Ji ber ku URLya safîkirî ya Citoid bi gelemperî vê parametreyê davêje, * ev li ser URLya xwerû ya bikarhêner (_sourceURLInput) tê xebitandin, ne li ser data.url. * @param urlStr {string} * @return {string} Wek "M:SS" an "H:MM:SS", an jî rêzikeke vala eger tune be/neyê nasîn. */ function extractVideoTimestamp(urlStr) { if (!urlStr) { return ""; } var match = /[?&]t=([^&]+)/.exec(urlStr); if (!match) { return ""; } var raw = decodeURIComponent(match[1]); var seconds; if (/^\d+s?$/.test(raw)) { seconds = parseInt(raw, 10); } else { var parts = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(raw); if (!parts || (!parts[1] && !parts[2] && !parts[3])) { return ""; } seconds = (parseInt(parts[1] || "0", 10) * 3600) + (parseInt(parts[2] || "0", 10) * 60) + parseInt(parts[3] || "0", 10); } var h = Math.floor(seconds / 3600); var m = Math.floor((seconds % 3600) / 60); var s = seconds % 60; var ss = s < 10 ? "0" + s : String(s); return h > 0 ? (h + ":" + (m < 10 ? "0" + m : m) + ":" + ss) : (m + ":" + ss); } /** * Daneyên Citoid vediguherîne tabloyeke parametreyên şablona jêder-* (li gorî cureyê wê). * @param jederKey {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". * @param data {Object} Netîceya Citoid. * @return {Object<string, string>} */ function dataToJederFields(jederKey, data) { var out = {}; var author = formatAuthors(data.author); var editor = formatEditors(data.editor); if (author) { out["nivîskar"] = author; } if (editor) { out["amadekar"] = editor; } if (data.title) { out["sernav"] = data.title; } if (data.url) { out.url = data.url; } if (jederKey === "jêder-kitêb") { if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.place) { out.cih = data.place; } if (data.date) { out.sal = yearFromDate(data.date); } if (data.ISBN) { out.isbn = Array.isArray(data.ISBN) ? data.ISBN[0] : data.ISBN; } if (data.edition) { out["çap"] = data.edition; } if (data.pages) { out["rûpel"] = data.pages; } } else if (jederKey === "jêder-kovar") { if (data.publicationTitle) { out.kovar = data.publicationTitle; } if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.volume) { out.cild = data.volume; } if (data.issue) { out.hejmar = data.issue; } if (data.pages) { out["rûpel"] = data.pages; } if (data.date) { out.sal = yearFromDate(data.date); } } else if (jederKey === "jêder-websîte") { if (data.websiteTitle) { out["websîte"] = data.websiteTitle; } if (data.date) { out["tarîx"] = data.date; } } else if (jederKey === "jêder-vîdeo") { delete out["nivîskar"]; // "hunermend" is jêder-vîdeo's own performer/artist field if (author) { out.hunermend = author; } if (data.libraryCatalog) { out.platform = data.libraryCatalog.toLowerCase(); } if (data.date) { out.sal = yearFromDate(data.date); } // Fallback only -- Citoid's own resolved data.url usually drops "t=" already (see extractVideoTimestamp's own comment); the live URL input is the reliable source (see add-examples.js's _autofillVideoTimestamp). var dem = extractVideoTimestamp(data.url); if (dem) { out.dem = dem; } } return out; } /** * Ji Citoid daneyên çavkaniyekê tîne (li gorî URL, DOI an ISBNyê). * @param query {string} * @return {jQuery.Promise} Bi daneya ewil a Citoid (Object) tê safîkirin. */ function fetchData(query) { var url; try { url = encodeURIComponent(decodeURIComponent(query)); } catch (e) { url = encodeURIComponent(query); } return $.get(getRestUrl() + url).then(function (res) { if (!res || !res[0]) { return $.Deferred().reject("Netîceya ji Citoidê vala ye.").promise(); } return res[0]; }); } /** * Fonksiyoneke hêsankirî: ji URL/DOI/ISBNyekê rasterast şablona jêder-* a munasib * û merheleyên wê yên tijîkirî vedigerîne (fetchData + typeToJederKey + dataToJederFields * bi hev re). * @param query {string} * @return {jQuery.Promise} Bi {jederKey: string, fields: Object<string,string>, raw: Object} tê safîkirin. */ function fetchJederFields(query) { return fetchData(query).then(function (data) { var jederKey = typeToJederKey(data.itemType); return { jederKey: jederKey, fields: dataToJederFields(jederKey, data), raw: data }; }); } window.wikt.citoid = { getRestUrl: getRestUrl, yearFromDate: yearFromDate, formatAuthors: formatAuthors, typeToJederKey: typeToJederKey, dataToJederFields: dataToJederFields, fetchData: fetchData, fetchJederFields: fetchJederFields, extractVideoTimestamp: extractVideoTimestamp, TYPE_TO_JEDER: CITOID_TYPE_TO_JEDER }; /** * Alîkar ji bo scriptên din: heke wikt.citoid hîn nehatibe barkirin, * vê rûpelê bixweber bar dike û pey re "resolve" dibe. * Bikaranîn: wikt.citoidHelper.ensure().then(function() { ... wikt.citoid ... }); */ window.wikt.citoidHelper = { ensure: function () { if (window.wikt.citoid) { return $.Deferred().resolve().promise(); } var url = mw.util.getUrl("MediaWiki:Gadget-citoid-helper.js", { action: "raw", ctype: "text/javascript" }); return mw.loader.getScript(mw.config.get("wgServer") + url); } }; })(); geaol1ysidwwsvc4zjbpcfxdo2toyc6 6342564 6342539 2026-08-25T11:17:12Z Wikihez 7344 6342564 javascript text/javascript /** * Gadget-citoid-helper.js * * Amûreke hevpar ji bo standina daneyên çavkaniyê ji Citoid û * veguherandina wan bo qadên şablonên jêder-* (jêder-kitêb, jêder-kovar, jêder-websîte, jêder-vîdeo). * * BIKARANÎN JI SCRIPTEKE DIN: * * 1) Riya herî baş: vê rûpelê wek dependency lê zêde bike di eyarên * gadgeta xwe de li ser [[Special:Gadgets]] (an jî MediaWiki:Gadgets-definition), * paşê: * * mw.loader.using("ext.gadget.citoid-helper").then(function () { * wikt.citoid.fetchJederFields(url).then(function (result) { * console.log(result.jederKey, result.fields); * }); * }); * * 2) An jî, heke ne mimkun be gadget bi vî awayî were qeydkirin, fonksiyona * alîkar a `wikt.citoidHelper.ensure()` a li jêr bikar bîne, ku bixweber * vê rûpelê bar dike heke jixwe nehatibe barkirin: * * wikt.citoidHelper.ensure().then(function () { * wikt.citoid.fetchJederFields(url).then(...); * }); * * API ya `window.wikt.citoid`: * - getRestUrl() → {string} URLya REST a Citoid a vê wîkiyê * - yearFromDate(dateStr) → {string} sala (4 reqem) ji rêzikeke tarîxê * - formatAuthors(authors) → {string} navên nivîskaran wek rêzikek yekane * - typeToJederKey(itemType) → {string} "jêder-kitêb" / "jêder-kovar" / "jêder-websîte" / "jêder-vîdeo" * - dataToJederFields(jederKey, data) → {Object<string,string>} merheleyên şablona jêder-* * - fetchData(query) → {jQuery.Promise<Object>} daneya xam a Citoid * - fetchJederFields(query) → {jQuery.Promise<{jederKey, fields, raw}>} hêsankirî * - extractVideoTimestamp(urlStr) → {string} a video URL's "t=" start time, as "M:SS"/"H:MM:SS" * - TYPE_TO_JEDER → {Object} xerîteya itemType → jederKey */ window.wikt = window.wikt || {}; (function () { "use strict"; // Heke jixwe hatibe barkirin, dubare neke. if (window.wikt.citoid) { return; } // Xerîteya cureyên Citoid (itemType) li ser şablonên me yên jêder-* var CITOID_TYPE_TO_JEDER = { "book": "jêder-kitêb", "bookSection": "jêder-kitêb", "thesis": "jêder-kitêb", "report": "jêder-kitêb", "manuscript": "jêder-kitêb", "journalArticle": "jêder-kovar", "magazineArticle": "jêder-kovar", "newspaperArticle": "jêder-kovar", "webpage": "jêder-websîte", "blogPost": "jêder-websîte", "forumPost": "jêder-websîte", "videoRecording": "jêder-vîdeo", "podcast": "jêder-websîte", "encyclopediaArticle": "jêder-websîte" }; /** * Ji mantiqa [[:en:w:User:BrandonXLF/Citoid.js]] * Vedigere URLya REST a Citoid, li gorî eyarên vê wîkiyê. * @return {string} */ function getRestUrl() { var cfg = mw.config.get("wgCitoidConfig"); var vecfg = mw.config.get("wgVisualEditorConfig"); return (cfg && (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl)) ? (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl) + "v1/data/citation/mediawiki/" : (vecfg && vecfg.fullRestbaseUrl) ? vecfg.fullRestbaseUrl + "v1/data/citation/mediawiki/" : (cfg && cfg.citoidServiceUrl) ? cfg.citoidServiceUrl + "/mediawiki/" : "https://ku.wiktionary.org/api/rest_v1/data/citation/mediawiki/"; } /** * Ji tarîxa Citoid (rêzik an tarîxeke ISO) sala wê (4 reqem) derdixe. * @param dateStr {string} * @return {string} */ function yearFromDate(dateStr) { if (!dateStr) { return ""; } var match = /\d{4}/.exec(dateStr); return match ? match[0] : ""; } /** * Navên nivîskaran ên Citoid (rêzek [pêşnav, paşnav]) dike rêzikek yekane. * @param authors {Array<Array<string>>} * @return {string} */ function formatAuthors(authors) { if (!Array.isArray(authors)) { return ""; } return authors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } function formatEditors(editors) { if (!Array.isArray(editors)) { return ""; } return editors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } /** * Li gorî itemType a Citoid, navê şablona jêder-* a munasib vedigerîne. * @param itemType {string} * @return {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". */ function typeToJederKey(itemType) { return CITOID_TYPE_TO_JEDER[itemType] || "jêder-websîte"; } /** * Extracts a video's start time from its URL's "t=" param (YouTube-style: plain seconds like "137", * or "2m17s"/"1h2m3s"). Reads the caller-supplied URL directly, since Citoid's own resolved data.url * usually strips this param. * @param urlStr {string} * @return {string} "M:SS" or "H:MM:SS", or an empty string if absent/unrecognized. */ function extractVideoTimestamp(urlStr) { if (!urlStr) { return ""; } var match = /[?&]t=([^&]+)/.exec(urlStr); if (!match) { return ""; } var raw = decodeURIComponent(match[1]); var seconds; if (/^\d+s?$/.test(raw)) { seconds = parseInt(raw, 10); } else { var parts = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(raw); if (!parts || (!parts[1] && !parts[2] && !parts[3])) { return ""; } seconds = (parseInt(parts[1] || "0", 10) * 3600) + (parseInt(parts[2] || "0", 10) * 60) + parseInt(parts[3] || "0", 10); } var h = Math.floor(seconds / 3600); var m = Math.floor((seconds % 3600) / 60); var s = seconds % 60; var ss = s < 10 ? "0" + s : String(s); return h > 0 ? (h + ":" + (m < 10 ? "0" + m : m) + ":" + ss) : (m + ":" + ss); } /** * Daneyên Citoid vediguherîne tabloyeke parametreyên şablona jêder-* (li gorî cureyê wê). * @param jederKey {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". * @param data {Object} Netîceya Citoid. * @return {Object<string, string>} */ function dataToJederFields(jederKey, data) { var out = {}; var author = formatAuthors(data.author); var editor = formatEditors(data.editor); if (author) { out["nivîskar"] = author; } if (editor) { out["amadekar"] = editor; } if (data.title) { out["sernav"] = data.title; } if (data.url) { out.url = data.url; } if (jederKey === "jêder-kitêb") { if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.place) { out.cih = data.place; } if (data.date) { out.sal = yearFromDate(data.date); } if (data.ISBN) { out.isbn = Array.isArray(data.ISBN) ? data.ISBN[0] : data.ISBN; } if (data.edition) { out["çap"] = data.edition; } if (data.pages) { out["rûpel"] = data.pages; } } else if (jederKey === "jêder-kovar") { if (data.publicationTitle) { out.kovar = data.publicationTitle; } if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.volume) { out.cild = data.volume; } if (data.issue) { out.hejmar = data.issue; } if (data.pages) { out["rûpel"] = data.pages; } if (data.date) { out.sal = yearFromDate(data.date); } } else if (jederKey === "jêder-websîte") { if (data.websiteTitle) { out["websîte"] = data.websiteTitle; } if (data.date) { out["tarîx"] = data.date; } } else if (jederKey === "jêder-vîdeo") { delete out["nivîskar"]; // "hunermend" is jêder-vîdeo's own performer/artist field if (author) { out.hunermend = author; } if (data.libraryCatalog) { out.platform = data.libraryCatalog.toLowerCase(); } if (data.date) { out.sal = yearFromDate(data.date); } // Fallback only -- Citoid's own resolved data.url usually drops "t=" already (see extractVideoTimestamp's own comment); the live URL input is the reliable source (see add-examples.js's _autofillVideoTimestamp). var dem = extractVideoTimestamp(data.url); if (dem) { out.dem = dem; } } return out; } /** * Ji Citoid daneyên çavkaniyekê tîne (li gorî URL, DOI an ISBNyê). * @param query {string} * @return {jQuery.Promise} Bi daneya ewil a Citoid (Object) tê safîkirin. */ function fetchData(query) { var url; try { url = encodeURIComponent(decodeURIComponent(query)); } catch (e) { url = encodeURIComponent(query); } return $.get(getRestUrl() + url).then(function (res) { if (!res || !res[0]) { return $.Deferred().reject("Netîceya ji Citoidê vala ye.").promise(); } return res[0]; }); } /** * Fonksiyoneke hêsankirî: ji URL/DOI/ISBNyekê rasterast şablona jêder-* a munasib * û merheleyên wê yên tijîkirî vedigerîne (fetchData + typeToJederKey + dataToJederFields * bi hev re). * @param query {string} * @return {jQuery.Promise} Bi {jederKey: string, fields: Object<string,string>, raw: Object} tê safîkirin. */ function fetchJederFields(query) { return fetchData(query).then(function (data) { var jederKey = typeToJederKey(data.itemType); return { jederKey: jederKey, fields: dataToJederFields(jederKey, data), raw: data }; }); } window.wikt.citoid = { getRestUrl: getRestUrl, yearFromDate: yearFromDate, formatAuthors: formatAuthors, typeToJederKey: typeToJederKey, dataToJederFields: dataToJederFields, fetchData: fetchData, fetchJederFields: fetchJederFields, extractVideoTimestamp: extractVideoTimestamp, TYPE_TO_JEDER: CITOID_TYPE_TO_JEDER }; /** * Alîkar ji bo scriptên din: heke wikt.citoid hîn nehatibe barkirin, * vê rûpelê bixweber bar dike û pey re "resolve" dibe. * Bikaranîn: wikt.citoidHelper.ensure().then(function() { ... wikt.citoid ... }); */ window.wikt.citoidHelper = { ensure: function () { if (window.wikt.citoid) { return $.Deferred().resolve().promise(); } var url = mw.util.getUrl("MediaWiki:Gadget-citoid-helper.js", { action: "raw", ctype: "text/javascript" }); return mw.loader.getScript(mw.config.get("wgServer") + url); } }; })(); hysgznpxy83ff6dyeq3htp3t1e3ti3o 6342569 6342564 2026-08-25T11:37:09Z Wikihez 7344 6342569 javascript text/javascript /** * Gadget-citoid-helper.js * * Amûreke hevpar ji bo standina daneyên çavkaniyê ji Citoid û * veguherandina wan bo qadên şablonên jêder-* (jêder-kitêb, jêder-kovar, jêder-websîte, jêder-vîdeo). * * BIKARANÎN JI SCRIPTEKE DIN: * * 1) Riya herî baş: vê rûpelê wek dependency lê zêde bike di eyarên * gadgeta xwe de li ser [[Special:Gadgets]] (an jî MediaWiki:Gadgets-definition), * paşê: * * mw.loader.using("ext.gadget.citoid-helper").then(function () { * wikt.citoid.fetchJederFields(url).then(function (result) { * console.log(result.jederKey, result.fields); * }); * }); * * 2) An jî, heke ne mimkun be gadget bi vî awayî were qeydkirin, fonksiyona * alîkar a `wikt.citoidHelper.ensure()` a li jêr bikar bîne, ku bixweber * vê rûpelê bar dike heke jixwe nehatibe barkirin: * * wikt.citoidHelper.ensure().then(function () { * wikt.citoid.fetchJederFields(url).then(...); * }); * * API ya `window.wikt.citoid`: * - getRestUrl() → {string} URLya REST a Citoid a vê wîkiyê * - yearFromDate(dateStr) → {string} sala (4 reqem) ji rêzikeke tarîxê * - formatAuthors(authors) → {string} navên nivîskaran wek rêzikek yekane * - typeToJederKey(itemType) → {string} "jêder-kitêb" / "jêder-kovar" / "jêder-websîte" / "jêder-vîdeo" * - dataToJederFields(jederKey, data) → {Object<string,string>} merheleyên şablona jêder-* * - fetchData(query) → {jQuery.Promise<Object>} daneya xam a Citoid * - fetchJederFields(query) → {jQuery.Promise<{jederKey, fields, raw}>} hêsankirî * - extractVideoTimestamp(urlStr) → {string} a video URL's "t=" start time, as "M:SS"/"H:MM:SS" * - isYouTubeUrl(urlStr) → {boolean} whether the URL is a youtube.com/youtu.be link * - websiteNameForUrl(urlStr) → {string} jêder-websîte "websîte" value: known-site wikilink, else the bare domain * - TYPE_TO_JEDER → {Object} xerîteya itemType → jederKey */ window.wikt = window.wikt || {}; (function () { "use strict"; // Heke jixwe hatibe barkirin, dubare neke. if (window.wikt.citoid) { return; } // Xerîteya cureyên Citoid (itemType) li ser şablonên me yên jêder-* var CITOID_TYPE_TO_JEDER = { "book": "jêder-kitêb", "bookSection": "jêder-kitêb", "thesis": "jêder-kitêb", "report": "jêder-kitêb", "manuscript": "jêder-kitêb", "journalArticle": "jêder-kovar", "magazineArticle": "jêder-kovar", "newspaperArticle": "jêder-kovar", "webpage": "jêder-websîte", "blogPost": "jêder-websîte", "forumPost": "jêder-websîte", "videoRecording": "jêder-vîdeo", "podcast": "jêder-websîte", "encyclopediaArticle": "jêder-websîte" }; /** * Ji mantiqa [[:en:w:User:BrandonXLF/Citoid.js]] * Vedigere URLya REST a Citoid, li gorî eyarên vê wîkiyê. * @return {string} */ function getRestUrl() { var cfg = mw.config.get("wgCitoidConfig"); var vecfg = mw.config.get("wgVisualEditorConfig"); return (cfg && (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl)) ? (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl) + "v1/data/citation/mediawiki/" : (vecfg && vecfg.fullRestbaseUrl) ? vecfg.fullRestbaseUrl + "v1/data/citation/mediawiki/" : (cfg && cfg.citoidServiceUrl) ? cfg.citoidServiceUrl + "/mediawiki/" : "https://ku.wiktionary.org/api/rest_v1/data/citation/mediawiki/"; } /** * Ji tarîxa Citoid (rêzik an tarîxeke ISO) sala wê (4 reqem) derdixe. * @param dateStr {string} * @return {string} */ function yearFromDate(dateStr) { if (!dateStr) { return ""; } var match = /\d{4}/.exec(dateStr); return match ? match[0] : ""; } /** * Navên nivîskaran ên Citoid (rêzek [pêşnav, paşnav]) dike rêzikek yekane. * @param authors {Array<Array<string>>} * @return {string} */ function formatAuthors(authors) { if (!Array.isArray(authors)) { return ""; } return authors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } function formatEditors(editors) { if (!Array.isArray(editors)) { return ""; } return editors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } /** * Li gorî itemType a Citoid, navê şablona jêder-* a munasib vedigerîne. * @param itemType {string} * @return {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". */ function typeToJederKey(itemType) { return CITOID_TYPE_TO_JEDER[itemType] || "jêder-websîte"; } /** * Whether a URL is a youtube.com/youtu.be link -- used to force jêder-vîdeo regardless of * Citoid's own itemType guess, and to pick the "w:Youtube" platform value. * @param urlStr {string} * @return {boolean} */ function isYouTubeUrl(urlStr) { return /^https?:\/\/(www\.|m\.)?(youtube\.com|youtu\.be)\//i.test(urlStr || ""); } // Known domains mapped to a nicer jêder-websîte "websîte" value (a wikilink where a Wikipedia article exists). var KNOWN_WEBSITE_NAMES = { "x.com": "w:Twitter", "twitter.com": "w:Twitter", "rudaw.net": "w:Rûdaw" }; /** * Bare domain of a URL (protocol and "www." stripped), e.g. "https://www.example.com/x" -> "example.com". * @param urlStr {string} * @return {string} Lowercased domain, or an empty string if urlStr isn't an absolute http(s) URL. */ function bareDomainFromUrl(urlStr) { var match = /^https?:\/\/(?:www\.)?([^\/]+)/i.exec(urlStr || ""); return match ? match[1].toLowerCase() : ""; } /** * A jêder-websîte "websîte" value for a URL: a known-site wikilink (KNOWN_WEBSITE_NAMES) if the domain * matches one, else the bare domain itself as a plain fallback name. * @param urlStr {string} * @return {string} The site name, or an empty string if urlStr isn't an absolute http(s) URL. */ function websiteNameForUrl(urlStr) { var host = bareDomainFromUrl(urlStr); return host ? (KNOWN_WEBSITE_NAMES[host] || host) : ""; } /** * Extracts a video's start time from its URL's "t=" param (YouTube-style: plain seconds like "137", * or "2m17s"/"1h2m3s"). Reads the caller-supplied URL directly, since Citoid's own resolved data.url * usually strips this param. * @param urlStr {string} * @return {string} "M:SS" or "H:MM:SS", or an empty string if absent/unrecognized. */ function extractVideoTimestamp(urlStr) { if (!urlStr) { return ""; } var match = /[?&]t=([^&]+)/.exec(urlStr); if (!match) { return ""; } var raw = decodeURIComponent(match[1]); var seconds; if (/^\d+s?$/.test(raw)) { seconds = parseInt(raw, 10); } else { var parts = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(raw); if (!parts || (!parts[1] && !parts[2] && !parts[3])) { return ""; } seconds = (parseInt(parts[1] || "0", 10) * 3600) + (parseInt(parts[2] || "0", 10) * 60) + parseInt(parts[3] || "0", 10); } var h = Math.floor(seconds / 3600); var m = Math.floor((seconds % 3600) / 60); var s = seconds % 60; var ss = s < 10 ? "0" + s : String(s); return h > 0 ? (h + ":" + (m < 10 ? "0" + m : m) + ":" + ss) : (m + ":" + ss); } /** * Daneyên Citoid vediguherîne tabloyeke parametreyên şablona jêder-* (li gorî cureyê wê). * @param jederKey {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". * @param data {Object} Netîceya Citoid. * @return {Object<string, string>} */ function dataToJederFields(jederKey, data) { var out = {}; var author = formatAuthors(data.author); var editor = formatEditors(data.editor); if (author) { out["nivîskar"] = author; } if (editor) { out["amadekar"] = editor; } if (data.title) { out["sernav"] = data.title; } if (data.url) { out.url = data.url; } if (jederKey === "jêder-kitêb") { if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.place) { out.cih = data.place; } if (data.date) { out.sal = yearFromDate(data.date); } if (data.ISBN) { out.isbn = Array.isArray(data.ISBN) ? data.ISBN[0] : data.ISBN; } if (data.edition) { out["çap"] = data.edition; } if (data.pages) { out["rûpel"] = data.pages; } } else if (jederKey === "jêder-kovar") { if (data.publicationTitle) { out.kovar = data.publicationTitle; } if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.volume) { out.cild = data.volume; } if (data.issue) { out.hejmar = data.issue; } if (data.pages) { out["rûpel"] = data.pages; } if (data.date) { out.sal = yearFromDate(data.date); } } else if (jederKey === "jêder-websîte") { var websiteName = data.websiteTitle || websiteNameForUrl(data.url); if (websiteName) { out["websîte"] = websiteName; } if (data.date) { out["tarîx"] = data.date; } } else if (jederKey === "jêder-vîdeo") { delete out["nivîskar"]; // "hunermend" is jêder-vîdeo's own performer/artist field if (author) { out.hunermend = author; } var platform = isYouTubeUrl(data.url) ? "w:Youtube" : (data.libraryCatalog || "").toLowerCase(); if (platform) { out.platform = platform; } if (data.date) { out.tarîx = data.date; out.sal = yearFromDate(data.date); } // Fallback only -- Citoid's own resolved data.url usually drops "t=" already (see extractVideoTimestamp's own comment); the live URL input is the reliable source (see add-examples.js's _autofillVideoTimestamp). var dem = extractVideoTimestamp(data.url); if (dem) { out.dem = dem; } } return out; } /** * Ji Citoid daneyên çavkaniyekê tîne (li gorî URL, DOI an ISBNyê). * @param query {string} * @return {jQuery.Promise} Bi daneya ewil a Citoid (Object) tê safîkirin. */ function fetchData(query) { var url; try { url = encodeURIComponent(decodeURIComponent(query)); } catch (e) { url = encodeURIComponent(query); } return $.get(getRestUrl() + url).then(function (res) { if (!res || !res[0]) { return $.Deferred().reject("Netîceya ji Citoidê vala ye.").promise(); } return res[0]; }); } /** * Fonksiyoneke hêsankirî: ji URL/DOI/ISBNyekê rasterast şablona jêder-* a munasib * û merheleyên wê yên tijîkirî vedigerîne (fetchData + typeToJederKey + dataToJederFields * bi hev re). * @param query {string} * @return {jQuery.Promise} Bi {jederKey: string, fields: Object<string,string>, raw: Object} tê safîkirin. */ function fetchJederFields(query) { return fetchData(query).then(function (data) { // YouTube links always use jêder-vîdeo, regardless of what itemType Citoid guessed. var jederKey = (isYouTubeUrl(query) || isYouTubeUrl(data.url)) ? "jêder-vîdeo" : typeToJederKey(data.itemType); return { jederKey: jederKey, fields: dataToJederFields(jederKey, data), raw: data }; }); } window.wikt.citoid = { getRestUrl: getRestUrl, yearFromDate: yearFromDate, formatAuthors: formatAuthors, typeToJederKey: typeToJederKey, dataToJederFields: dataToJederFields, fetchData: fetchData, fetchJederFields: fetchJederFields, extractVideoTimestamp: extractVideoTimestamp, isYouTubeUrl: isYouTubeUrl, websiteNameForUrl: websiteNameForUrl, TYPE_TO_JEDER: CITOID_TYPE_TO_JEDER }; /** * Alîkar ji bo scriptên din: heke wikt.citoid hîn nehatibe barkirin, * vê rûpelê bixweber bar dike û pey re "resolve" dibe. * Bikaranîn: wikt.citoidHelper.ensure().then(function() { ... wikt.citoid ... }); */ window.wikt.citoidHelper = { ensure: function () { if (window.wikt.citoid) { return $.Deferred().resolve().promise(); } var url = mw.util.getUrl("MediaWiki:Gadget-citoid-helper.js", { action: "raw", ctype: "text/javascript" }); return mw.loader.getScript(mw.config.get("wgServer") + url); } }; })(); hytm0py1ka1ge82dfwz7iwzkgyrpcsf 6342570 6342569 2026-08-25T11:43:14Z Wikihez 7344 6342570 javascript text/javascript /** * Gadget-citoid-helper.js * * Amûreke hevpar ji bo standina daneyên çavkaniyê ji Citoid û * veguherandina wan bo qadên şablonên jêder-* (jêder-kitêb, jêder-kovar, jêder-websîte, jêder-vîdeo). * * BIKARANÎN JI SCRIPTEKE DIN: * * 1) Riya herî baş: vê rûpelê wek dependency lê zêde bike di eyarên * gadgeta xwe de li ser [[Special:Gadgets]] (an jî MediaWiki:Gadgets-definition), * paşê: * * mw.loader.using("ext.gadget.citoid-helper").then(function () { * wikt.citoid.fetchJederFields(url).then(function (result) { * console.log(result.jederKey, result.fields); * }); * }); * * 2) An jî, heke ne mimkun be gadget bi vî awayî were qeydkirin, fonksiyona * alîkar a `wikt.citoidHelper.ensure()` a li jêr bikar bîne, ku bixweber * vê rûpelê bar dike heke jixwe nehatibe barkirin: * * wikt.citoidHelper.ensure().then(function () { * wikt.citoid.fetchJederFields(url).then(...); * }); * * API ya `window.wikt.citoid`: * - getRestUrl() → {string} URLya REST a Citoid a vê wîkiyê * - yearFromDate(dateStr) → {string} sala (4 reqem) ji rêzikeke tarîxê * - formatAuthors(authors) → {string} navên nivîskaran wek rêzikek yekane * - typeToJederKey(itemType) → {string} "jêder-kitêb" / "jêder-kovar" / "jêder-websîte" / "jêder-vîdeo" * - dataToJederFields(jederKey, data) → {Object<string,string>} merheleyên şablona jêder-* * - fetchData(query) → {jQuery.Promise<Object>} daneya xam a Citoid * - fetchJederFields(query) → {jQuery.Promise<{jederKey, fields, raw}>} hêsankirî * - extractVideoTimestamp(urlStr) → {string} a video URL's "t=" start time, as "M:SS"/"H:MM:SS" * - isYouTubeUrl(urlStr) → {boolean} whether the URL is a youtube.com/youtu.be link * - websiteNameForUrl(urlStr) → {string} jêder-websîte "websîte" value: known-site wikilink, else the bare domain * - TYPE_TO_JEDER → {Object} xerîteya itemType → jederKey */ window.wikt = window.wikt || {}; (function () { "use strict"; // Heke jixwe hatibe barkirin, dubare neke. if (window.wikt.citoid) { return; } // Xerîteya cureyên Citoid (itemType) li ser şablonên me yên jêder-* var CITOID_TYPE_TO_JEDER = { "book": "jêder-kitêb", "bookSection": "jêder-kitêb", "thesis": "jêder-kitêb", "report": "jêder-kitêb", "manuscript": "jêder-kitêb", "journalArticle": "jêder-kovar", "magazineArticle": "jêder-kovar", "newspaperArticle": "jêder-kovar", "webpage": "jêder-websîte", "blogPost": "jêder-websîte", "forumPost": "jêder-websîte", "videoRecording": "jêder-vîdeo", "podcast": "jêder-websîte", "encyclopediaArticle": "jêder-websîte" }; /** * Ji mantiqa [[:en:w:User:BrandonXLF/Citoid.js]] * Vedigere URLya REST a Citoid, li gorî eyarên vê wîkiyê. * @return {string} */ function getRestUrl() { var cfg = mw.config.get("wgCitoidConfig"); var vecfg = mw.config.get("wgVisualEditorConfig"); return (cfg && (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl)) ? (cfg.fullRestbaseUrl || cfg.wbFullRestbaseUrl) + "v1/data/citation/mediawiki/" : (vecfg && vecfg.fullRestbaseUrl) ? vecfg.fullRestbaseUrl + "v1/data/citation/mediawiki/" : (cfg && cfg.citoidServiceUrl) ? cfg.citoidServiceUrl + "/mediawiki/" : "https://ku.wiktionary.org/api/rest_v1/data/citation/mediawiki/"; } /** * Ji tarîxa Citoid (rêzik an tarîxeke ISO) sala wê (4 reqem) derdixe. * @param dateStr {string} * @return {string} */ function yearFromDate(dateStr) { if (!dateStr) { return ""; } var match = /\d{4}/.exec(dateStr); return match ? match[0] : ""; } /** * Navên nivîskaran ên Citoid (rêzek [pêşnav, paşnav]) dike rêzikek yekane. * @param authors {Array<Array<string>>} * @return {string} */ function formatAuthors(authors) { if (!Array.isArray(authors)) { return ""; } return authors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } function formatEditors(editors) { if (!Array.isArray(editors)) { return ""; } return editors.map(function (pair) { return (pair || []).filter(function (part) { return !!part; }).join(" "); }).filter(function (name) { return !!name; }).join("; "); } /** * Li gorî itemType a Citoid, navê şablona jêder-* a munasib vedigerîne. * @param itemType {string} * @return {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". */ function typeToJederKey(itemType) { return CITOID_TYPE_TO_JEDER[itemType] || "jêder-websîte"; } /** * Whether a URL is a youtube.com/youtu.be link -- used to force jêder-vîdeo regardless of * Citoid's own itemType guess, and to pick the "w:Youtube" platform value. * @param urlStr {string} * @return {boolean} */ function isYouTubeUrl(urlStr) { return /^https?:\/\/(www\.|m\.)?(youtube\.com|youtu\.be)\//i.test(urlStr || ""); } // Known domains mapped to a nicer jêder-websîte "websîte" value (a wikilink where a Wikipedia article exists). var KNOWN_WEBSITE_NAMES = { "x.com": "w:Twitter", "twitter.com": "w:Twitter", "rudaw.net": "w:Rûdaw" }; /** * Bare domain of a URL (protocol and "www." stripped), e.g. "https://www.example.com/x" -> "example.com". * @param urlStr {string} * @return {string} Lowercased domain, or an empty string if urlStr isn't an absolute http(s) URL. */ function bareDomainFromUrl(urlStr) { var match = /^https?:\/\/(?:www\.)?([^\/]+)/i.exec(urlStr || ""); return match ? match[1].toLowerCase() : ""; } /** * A jêder-websîte "websîte" value for a URL: a known-site wikilink (KNOWN_WEBSITE_NAMES) if the domain * matches one, else the bare domain itself as a plain fallback name. * @param urlStr {string} * @return {string} The site name, or an empty string if urlStr isn't an absolute http(s) URL. */ function websiteNameForUrl(urlStr) { var host = bareDomainFromUrl(urlStr); return host ? (KNOWN_WEBSITE_NAMES[host] || host) : ""; } /** * Extracts a video's start time from its URL's "t=" param (YouTube-style: plain seconds like "137", * or "2m17s"/"1h2m3s"). Reads the caller-supplied URL directly, since Citoid's own resolved data.url * usually strips this param. * @param urlStr {string} * @return {string} "M:SS" or "H:MM:SS", or an empty string if absent/unrecognized. */ function extractVideoTimestamp(urlStr) { if (!urlStr) { return ""; } var match = /[?&]t=([^&]+)/.exec(urlStr); if (!match) { return ""; } var raw = decodeURIComponent(match[1]); var seconds; if (/^\d+s?$/.test(raw)) { seconds = parseInt(raw, 10); } else { var parts = /^(?:(\d+)h)?(?:(\d+)m)?(?:(\d+)s)?$/.exec(raw); if (!parts || (!parts[1] && !parts[2] && !parts[3])) { return ""; } seconds = (parseInt(parts[1] || "0", 10) * 3600) + (parseInt(parts[2] || "0", 10) * 60) + parseInt(parts[3] || "0", 10); } var h = Math.floor(seconds / 3600); var m = Math.floor((seconds % 3600) / 60); var s = seconds % 60; var ss = s < 10 ? "0" + s : String(s); return h > 0 ? (h + ":" + (m < 10 ? "0" + m : m) + ":" + ss) : (m + ":" + ss); } /** * Daneyên Citoid vediguherîne tabloyeke parametreyên şablona jêder-* (li gorî cureyê wê). * @param jederKey {string} Yek ji "jêder-kitêb", "jêder-kovar", "jêder-websîte" an "jêder-vîdeo". * @param data {Object} Netîceya Citoid. * @return {Object<string, string>} */ function dataToJederFields(jederKey, data) { var out = {}; var author = formatAuthors(data.author); var editor = formatEditors(data.editor); if (author) { out["nivîskar"] = author; } if (editor) { out["amadekar"] = editor; } if (data.title) { out["sernav"] = data.title; } if (data.url) { out.url = data.url; } if (jederKey === "jêder-kitêb") { if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.place) { out.cih = data.place; } if (data.date) { out.sal = yearFromDate(data.date); } if (data.ISBN) { out.isbn = Array.isArray(data.ISBN) ? data.ISBN[0] : data.ISBN; } if (data.edition) { out["çap"] = data.edition; } if (data.pages) { out["rûpel"] = data.pages; } } else if (jederKey === "jêder-kovar") { if (data.publicationTitle) { out.kovar = data.publicationTitle; } if (data.publisher) { out["weşanxane"] = data.publisher; } if (data.volume) { out.cild = data.volume; } if (data.issue) { out.hejmar = data.issue; } if (data.pages) { out["rûpel"] = data.pages; } if (data.date) { out.sal = yearFromDate(data.date); } } else if (jederKey === "jêder-websîte") { var websiteName = data.websiteTitle || websiteNameForUrl(data.url); if (websiteName) { out["websîte"] = websiteName; } if (data.date) { out["tarîx"] = data.date; } } else if (jederKey === "jêder-vîdeo") { delete out["nivîskar"]; // "hunermend" is jêder-vîdeo's own performer/artist field if (author) { out.hunermend = author; } var platform = isYouTubeUrl(data.url) ? "w:Youtube" : (data.libraryCatalog || "").toLowerCase(); if (platform) { out.platform = platform; } if (data.date) { out.tarîx = data.date; out.sal = yearFromDate(data.date); } // Fallback only -- Citoid's own resolved data.url usually drops "t=" already (see extractVideoTimestamp's own comment); the live URL input is the reliable source (see add-examples.js's _autofillVideoTimestamp). var dem = extractVideoTimestamp(data.url); if (dem) { out.dem = dem; } } return out; } /** * Ji Citoid daneyên çavkaniyekê tîne (li gorî URL, DOI an ISBNyê). * @param query {string} * @return {jQuery.Promise} Bi daneya ewil a Citoid (Object) tê safîkirin. */ function fetchData(query) { var url; try { url = encodeURIComponent(decodeURIComponent(query)); } catch (e) { url = encodeURIComponent(query); } return $.get(getRestUrl() + url).then(function (res) { if (!res || !res[0]) { return $.Deferred().reject("Netîceya ji Citoidê vala ye.").promise(); } return res[0]; }); } /** * Fonksiyoneke hêsankirî: ji URL/DOI/ISBNyekê rasterast şablona jêder-* a munasib * û merheleyên wê yên tijîkirî vedigerîne (fetchData + typeToJederKey + dataToJederFields * bi hev re). * @param query {string} * @return {jQuery.Promise} Bi {jederKey: string, fields: Object<string,string>, raw: Object} tê safîkirin. */ function fetchJederFields(query) { return fetchData(query).then(function (data) { // YouTube links always use jêder-vîdeo, regardless of what itemType Citoid guessed. var jederKey = (isYouTubeUrl(query) || isYouTubeUrl(data.url)) ? "jêder-vîdeo" : typeToJederKey(data.itemType); return { jederKey: jederKey, fields: dataToJederFields(jederKey, data), raw: data }; }); } window.wikt.citoid = { getRestUrl: getRestUrl, yearFromDate: yearFromDate, formatAuthors: formatAuthors, typeToJederKey: typeToJederKey, dataToJederFields: dataToJederFields, fetchData: fetchData, fetchJederFields: fetchJederFields, extractVideoTimestamp: extractVideoTimestamp, isYouTubeUrl: isYouTubeUrl, websiteNameForUrl: websiteNameForUrl, TYPE_TO_JEDER: CITOID_TYPE_TO_JEDER }; /** * Alîkar ji bo scriptên din: heke wikt.citoid hîn nehatibe barkirin, * vê rûpelê bixweber bar dike û pey re "resolve" dibe. * Bikaranîn: wikt.citoidHelper.ensure().then(function() { ... wikt.citoid ... }); */ window.wikt.citoidHelper = { ensure: function () { if (window.wikt.citoid) { return $.Deferred().resolve().promise(); } var url = mw.util.getUrl("Bikarhêner:Wikihez/skrîpt/js/Gadget-citoid-helper.js", { action: "raw", ctype: "text/javascript" }); return mw.loader.getScript(mw.config.get("wgServer") + url); } }; })(); 69eanwnod3w7hvca5hwllwotd30lxvy Wîkîferheng:ceribandin/nimûne 4 1357865 6342535 6328388 2026-08-25T10:31:58Z Wikihez 7344 '{{/vê rêzê neguhêre}} {{subst:Wîkîferheng:ceribandin/Default}}' ket şûna rûpelê. 6342535 wikitext text/x-wiki {{/vê rêzê neguhêre}} {{/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. hqjl80riv2j6m3vdffgya7kbbitpdi0 6342536 6342535 2026-08-25T10:32:56Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342536 wikitext text/x-wiki {{/vê rêzê neguhêre}} {{/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ê.}} #: {{nimûne|ku|test}} #* {{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. 5d4ue691d7ir34o207qoc0igkcmq70z Bikarhêner:Wikihez/Gadget-wikt.add-examples.js 2 1357893 6342196 6329668 2026-08-24T18:57:59Z Wikihez 7344 6342196 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. var language = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0].lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> qt13mnkcqt1vzn52piq1i8455gkmxmz 6342199 6342196 2026-08-24T19:20:06Z Wikihez 7344 6342199 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). $("ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole").each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> chgpkjckfgwc17iqk3lh8tbbwwwakf9 6342237 6342199 2026-08-24T20:58:50Z Wikihez 7344 6342237 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // Recurse into a definitions <ol>'s <li>s. A <li> with its own nested <ol> (e.g. a "Formeke heval:" // wrapper line introducing grammatical-form sub-senses) isn't itself a sense with content of its own -- // only its leaves are -- so recurse into that instead of treating the wrapper line as a leaf. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); $li.append($("<ul>").append($placeholder).append($formItem.append($button))); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 5a4mqhonr3ack4v1pnz528z9kp2uqdx 6342240 6342237 2026-08-24T21:13:02Z Wikihez 7344 6342240 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "1.7"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // Recurse into a definitions <ol>'s <li>s. A <li> with its own nested <ol> (e.g. a "Formeke heval:" // wrapper line introducing grammatical-form sub-senses) isn't itself a sense with content of its own -- // only its leaves are -- so recurse into that instead of treating the wrapper line as a leaf. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem.append($button)); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 9kulu2nh366gfqyvs0ojsgkfeeaj6rx 6342246 6342240 2026-08-24T21:24:54Z Wikihez 7344 v. 2.0 êdî heq dike :D 6342246 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // Recurse into a definitions <ol>'s <li>s. A <li> with its own nested <ol> (e.g. a "Formeke heval:" // wrapper line introducing grammatical-form sub-senses) isn't itself a sense with content of its own -- // only its leaves are -- so recurse into that instead of treating the wrapper line as a leaf. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem.append($button)); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); var content = [textInputLayout, sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Check if the line includes the section number (if present) if (!matchedSectionNum || line.includes(" " + matchedSectionNum)) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 0zav6f8gdif909mf9z590i5vj7a2aqq 6342251 6342246 2026-08-24T22:15:45Z Wikihez 7344 6342251 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // Recurse into a definitions <ol>'s <li>s. A <li> with its own nested <ol> (e.g. a "Formeke heval:" // wrapper line introducing grammatical-form sub-senses) isn't itself a sense with content of its own -- // only its leaves are -- so recurse into that instead of treating the wrapper line as a leaf. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem.append($button)); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Translation/transliteration go right after the example text and before the source/citation fields // (not after them) -- they're about the example itself, not the citation. var content = [textInputLayout]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } content.push(sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 1cazwsqu5be22eewtwhbtub8ajlvlmq 6342265 6342251 2026-08-24T22:30:46Z Wikihez 7344 6342265 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // Every top-level "#" line in a definitions <ol> is exactly one addressable insertion point in the // wikitext, so this does NOT recurse into a <li>'s own nested <ol> -- a wrapper like "Formeke heval:" // with grammatical-form readings under it (e.g. from {{ku-tewîna-nav}}) is usually the ENTIRE output of // that single "#" line's one template call, with no separate "##" line behind any of its readings; one // button per generated reading would each try to match a "##" line that doesn't exist and submit() // would fail to find where to insert. So the wrapper <li> itself is treated as the (only) leaf here. function eachTopLevelDefinition($ol, fn) { $ol.children("li").each(function() { fn($(this)); }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachTopLevelDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem.append($button)); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Translation/transliteration go right after the example text and before the source/citation fields // (not after them) -- they're about the example itself, not the citation. var content = [textInputLayout]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } content.push(sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> l6joi8ygi89x08mid2j1caowpm926au 6342280 6342265 2026-08-24T22:46:16Z Wikihez 7344 6342280 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "width" controls field layout below (see _setSourceType): "narrow" for short fields (year, pages, ...), "wide" for fields that always take their own row, unset for medium fields (two-ish per row). var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cih", "label": "Cih" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "width": "narrow" }, { "key": "çap", "label": "Çap", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "isbn", "label": "ISBN", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "nivîskar2", "label": "Nivîskar 2" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "kovar", "label": "Kovar" }, { "key": "terciman", "label": "Terciman" }, { "key": "weşanxane", "label": "Weşanxane" }, { "key": "cild", "label": "Cild", "width": "narrow" }, { "key": "hejmar", "label": "Hejmar", "width": "narrow" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "rûpel", "label": "Rûpel", "width": "narrow" }, { "key": "url", "label": "URL", "width": "wide" } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar" }, { "key": "sernav", "label": "Sernav", "multiline": true, "width": "wide" }, { "key": "terciman", "label": "Terciman" }, { "key": "websîte", "label": "Websîte" }, { "key": "url", "label": "URL", "width": "wide" }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "width": "wide" }, { "key": "sal", "label": "Sal", "width": "narrow" }, { "key": "tarîx", "label": "Tarîx", "width": "narrow" } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($item, $button, language, definitionLevel).$element); console.log("$item", $item); console.log("$button", $button); console.log("language", language); console.log("definitionLevel", definitionLevel); } $button.form.setVisible(true); return false; }); $item.after($formItem.append($button)); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); $button.on("click", function() { if (!$button.form) { $formItem.append(new Form($placeholder, $button, language, definitionLevel).$element); } $button.form.setVisible(true); return false; }); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem.append($button)); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter, and it's also the query field the Citoid button below fetches from. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); var citoidButtonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-citoid-buttons"], items: [this._citoidButton, this._citoidClearButton], }); // Fieldset that holds the fields for whichever jêder-* template is selected. this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // Citoid button + jêder-* fields, framed as one "template" step — unlike the URL field above, this box only makes sense once a jêder-* template is active (there's nothing here for Citoid to fill in free-text mode, since it has no bibliographic fields to populate), so it's hidden for free text (see _setSourceType). this._citoidBox = new OO.ui.PanelLayout({ expanded: false, framed: true, padded: true, classes: ["add-example-citoid-box"], content: [ new OO.ui.LabelWidget({ label: "Ji Citoid an bi destan tijî bike:", classes: ["add-example-citoid-box-title"], }), citoidButtonsLayout, this._jederFieldsFieldset, ], }); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Translation/transliteration go right after the example text and before the source/citation fields // (not after them) -- they're about the example itself, not the citation. var content = [textInputLayout]; if (language !== "ku") { content.push(translationInputLayout, transcriptionInputLayout); } content.push(sourceTypeLayout, this._sourceInputLayout, this._sourceURLInputLayout, this._citoidBox); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help wording in and out of it when switching to/from free text. this._fieldsLayout = new OO.ui.FieldsetLayout({ label: "Nimûneyeke bi " + (languages[this._language] || "zimanekî nenas") + " lê zêde dikî.", items: content, classes: ["add-example-fieldset"], }); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, content: [ this._fieldsLayout, buttonsLayout, ], }); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid button box, and the manual jêder-* fields toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var widthClass = field.width === "narrow" ? "add-example-field-narrow" : field.width === "wide" ? "add-example-field-wide" : "add-example-field-medium"; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: [widthClass], })); }); this._jederFieldsFieldset.addItems(items); } this._jederFieldsFieldset.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid button box: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. this._citoidBox.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text (no Citoid box visible there to explain), Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var index = this._fieldsLayout.items.indexOf(this._sourceURLInputLayout); this._fieldsLayout.removeItems([this._sourceURLInputLayout]); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._sourceURLInput, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); this._fieldsLayout.addItems([this._sourceURLInputLayout], index); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. setVisible: function(visible) { this._$button.toggle(!visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 553r0yvo5ontqkk7p98rz89k9tfigad 6342333 6342280 2026-08-25T06:28:42Z Wikihez 7344 6342333 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order, so e.g. // nivîskar/terciman/weşanxane (5+4+3=12) sit on one row, then sernav gets its own full-width row. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 5 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "nivîskar2", "label": "Nivîskar 2", "span": 4 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>") .text("Nimûneyeke bi " + (languages[language] || "zimanekî nenas") + " lê zêde dikî.") .hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>") .text("Nimûneyeke bi " + (languages[language] || "zimanekî nenas") + " lê zêde dikî.") .hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Fieldset that holds the fields for whichever jêder-* template is selected, laid out as a 12-column // grid (see .add-example-jeder-fields / .add-example-field-span-N in the CSS and _setSourceType). this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset.$element ); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); var buttonsLayout = new OO.ui.HorizontalLayout({ classes: ["add-example-main-buttons"], items: [ this._applyButton, this._cancelButton, this._clearButton, this._loadingImage, ] }); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, buttonsLayout.$element); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], })); }); this._jederFieldsFieldset.addItems(items); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 93cbyvrfc42176fl50wvrciuc936mpk 6342335 6342333 2026-08-25T06:36:40Z Wikihez 7344 6342335 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order, so e.g. // nivîskar/terciman/weşanxane (5+4+3=12) sit on one row, then sernav gets its own full-width row. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 5 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "nivîskar2", "label": "Nivîskar 2", "span": 4 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var languages = {}; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } // Get names of all defined languages var api = new mw.Api(); api.get({ action: "query", format: "json", titles: "MediaWiki:Gadget-translation editor.js/ziman.json", prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable languages = JSON.parse(data.query.pages[pageID].revisions[0].slots.main["*"]); break; } } }); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). Text is filled in at // CLICK time, not here -- "languages" is populated by an async api.get() (see above) that's very // likely still empty at page-load time (when this whole button-creation pass runs), so setting it // now would permanently bake in the "zimanekî nenas" fallback even for a known language. By the // time a user actually clicks, the fetch has long since resolved. var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languages[language] || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute or the async-loaded "languages" code->name map. function languageCodeForOl($ol) { var $h2 = $($ol.prevAll(".mw-heading2, h2").get(0)); return $h2.find(".besazimani").attr("id") || null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). Text filled in at // CLICK time -- see the matching comment in the first pass above ("languages" loads async). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languages[language] || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê pêwîst e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Fieldset that holds the fields for whichever jêder-* template is selected, laid out as a 12-column // grid (see .add-example-jeder-fields / .add-example-field-span-N in the CSS and _setSourceType). this._jederFieldsFieldset = new OO.ui.FieldsetLayout({ classes: ["add-example-jeder-fields"], }); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset.$element ); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê pêwîst e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.clearItems(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; var items = []; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; items.push(new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], })); }); this._jederFieldsFieldset.addItems(items); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> qbwwatjhldl8m6i7jqzs1yvdbrj4wfe 6342336 6342335 2026-08-25T06:53:19Z Wikihez 7344 6342336 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order, so e.g. // nivîskar/terciman/weşanxane (5+4+3=12) sit on one row, then sernav gets its own full-width row. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 5 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "nivîskar2", "label": "Nivîskar 2", "span": 4 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // The display name for a language code, read straight off the page: every language section's <h2> already // carries both the code (as the id of its .besazimani span -- see languageCodeForOl below) AND the name (as // that same span's link text, e.g. <span class="besazimani" id="ckb"><a>Soranî</a></span>) -- so there's no // need to separately fetch/maintain a code->name map (MediaWiki:Gadget-translation editor.js/ziman.json) via // an async API call, which also used to risk a stale-empty-map race if read before it resolved (see the old // git history). Returns null if no section on the page uses this code (shouldn't normally happen, since the // code always comes from a section that's actually on the page). function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Every language section's own <h2> already carries the raw language code directly -- MediaWiki renders // it as <span class="besazimani" id="CODE"> right inside the heading -- so this reads that instead of // needing an existing example's lang attribute. Finds the code by DOCUMENT ORDER (nearest preceding // .besazimani anywhere on the page), not by walking $ol's own siblings with prevAll() -- the mobile // (Minerva) skin wraps each <h2> section's content in its own <section class="mf-section-N">, so on mobile // $ol and its <h2> are NOT siblings (prevAll() would find nothing and silently kill the button for the // whole section); the desktop (Vector) skin keeps them as flat siblings, where this still works the same. function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê pêwîst e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Fields for whichever jêder-* template is selected, laid out as a 12-column grid (see // .add-example-jeder-fields / .add-example-field-span-N in the CSS and _setSourceType). A plain <div>, // NOT an OO.ui.FieldsetLayout -- FieldsetLayout puts its items inside its OWN inner $group <div>, one // level below $element, so a CSS grid class added to $element (via the "classes" config) never actually // reaches the FieldLayout items -- they stayed in normal block flow while $group itself became a single // squeezed 1-of-12 grid cell (the "tiny boxes" bug). Same plain-div pattern as the other grid/flex // containers in this redesign. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê pêwîst e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 2l9kfxbc3zew380kbtjtnl2quvnniqb 6342424 6342336 2026-08-25T09:14:29Z Wikihez 7344 6342424 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order, so e.g. // nivîskar/terciman/weşanxane (5+4+3=12) sit on one row, then sernav gets its own full-width row. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 5 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "nivîskar2", "label": "Nivîskar 2", "span": 4 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "url", "label": "URL", "span": 5 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> i7wn8a7pfgf6sn91iksr0xbd0oyz1vc 6342428 6342424 2026-08-25T09:25:23Z Wikihez 7344 6342428 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget(); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget(); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> g07wgp7u7izc2trfpoi5qwu5awoenfk 6342431 6342428 2026-08-25T09:30:46Z Wikihez 7344 6342431 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 4h8xrv49m13fsa1u4i4q7fg7huqy7ym 6342442 6342431 2026-08-25T09:32:22Z Wikihez 7344 6342442 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element, transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } if (transcription) { code += "|tr=" + transcription; } } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> rkebwdcvqivsld1n6v7vm172wszgl1y 6342454 6342442 2026-08-25T09:34:57Z Wikihez 7344 6342454 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas") + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget(); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Transkrîpsiyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> e0erw86rqgx1ndlo80qf2s9kny2hbeq 6342461 6342454 2026-08-25T09:58:06Z Wikihez 7344 6342461 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._readyHint.text(value ? "Amade ye." : "Metna nimûneyê lazim e."); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, agahiyan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Agahî hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne (matches the mockup's readyHint), kept in sync by // the same textInput "change" handler above that already disables/enables Biweşîne itself. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Agahî ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî agahiyan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. submit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 5277qadhdf12l7tgzawrmt4y2fn1hzf 6342531 6342461 2026-08-25T10:29:13Z Wikihez 7344 6342531 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._updateReadyHint(); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInput.on("change", function() { self._updateReadyHint(); }); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, malûmatan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); this._sourceURLInput.on("change", function() { self._updateReadyHint(); }); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Malûmat hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne: no text yet, text but no source (still submittable // as a bare {{nimûne}}), or fully ready -- kept in sync by _updateReadyHint(), wired to every field below. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); this._updateReadyHint = function() { if (!self._textInput.getValue()) { self._readyHint.text("Metna nimûneyê lazim e."); return; } var hasSource = self._sourceInput.getValue().trim() || self._sourceURLInput.getValue().trim() || Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); self._readyHint.text(hasSource ? "Hazir e." : "Çavkanî nehatiye dayîn."); }; // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; widget.on("change", function() { self._updateReadyHint(); }); var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } this._updateReadyHint(); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); mw.notify("Malûmat ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî malûmatan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Warns before submitting if a Citoid URL/DOI/ISBN was typed but never successfully fetched, then defers to _doSubmit. submit: function() { var sourceURLValue = this._sourceURLInput.getValue().trim(); if (sourceURLValue && !this._citoidSuccessMsg.is(":visible")) { if (!window.confirm("Te lînk, DOI an ISBN nivîsand lê hîn jê malûmat nehatine standin. Bêyî wan berdewam bikî?")) { return; } } this._doSubmit(); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. _doSubmit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 197ozgc5xtobi970thcx58fadn4at2l 6342537 6342531 2026-08-25T10:38:21Z Wikihez 7344 6342537 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._updateReadyHint(); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInput.on("change", function() { self._updateReadyHint(); }); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, malûmatan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); this._sourceURLInput.on("change", function() { self._updateReadyHint(); }); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Malûmat hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne: no text yet, text but no source (still submittable // as a bare {{nimûne}}), or fully ready -- kept in sync by _updateReadyHint(), wired to every field below. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // True while a Citoid-eligible URL/DOI/ISBN is typed in but not yet fetched (or fetched then edited away) and no jêder field has been filled by hand -- the "looks done but isn't" trap this exists to catch. Not applicable in free-text mode, where the fetch button isn't even offered. this._citoidPending = function() { return self._currentJederKey !== "" && !!self._sourceURLInput.getValue().trim() && !self._citoidSuccessMsg.is(":visible") && !Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); }; this._updateReadyHint = function() { if (!self._textInput.getValue()) { self._readyHint.text("Metna nimûneyê lazim e."); return; } if (self._citoidPending()) { self._readyHint.text("Pêşî 'Bi otomatîk tijî bike' bitikîne."); return; } var hasSource = self._sourceInput.getValue().trim() || self._sourceURLInput.getValue().trim() || Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); self._readyHint.text(hasSource ? "Hazir e." : "Çavkanî nehatiye dayîn."); }; // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; widget.on("change", function() { self._updateReadyHint(); }); var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } this._updateReadyHint(); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); self._updateReadyHint(); mw.notify("Malûmat ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî malûmatan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Warns before submitting if a Citoid URL/DOI/ISBN was typed but never successfully fetched, then defers to _doSubmit. submit: function() { if (this._citoidPending() && !window.confirm("Te lînk, DOI an ISBN nivîsand lê hîn jê malûmat nehatine standin. Bêyî wan berdewam bikî?")) { return; } this._doSubmit(); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. _doSubmit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> fg6mthdyyjnbta84ha0cbxnqxfj4f69 6342540 6342537 2026-08-25T11:06:51Z Wikihez 7344 6342540 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] }, "jêder-vîdeo": { "label": "Vîdeo", "fields": [ { "key": "hunermend", "label": "Hunermend", "span": 6 }, { "key": "platform", "label": "Platform", "span": 6 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "dem", "label": "Dem", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._updateReadyHint(); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInput.on("change", function() { self._updateReadyHint(); }); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, malûmatan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); this._sourceURLInput.on("change", function() { self._updateReadyHint(); self._autofillVideoTimestamp(); }); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Malûmat hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne: no text yet, text but no source (still submittable // as a bare {{nimûne}}), or fully ready -- kept in sync by _updateReadyHint(), wired to every field below. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // True while a Citoid-eligible URL/DOI/ISBN is typed in but not yet fetched (or fetched then edited away) and no jêder field has been filled by hand -- the "looks done but isn't" trap this exists to catch. Not applicable in free-text mode, where the fetch button isn't even offered. this._citoidPending = function() { return self._currentJederKey !== "" && !!self._sourceURLInput.getValue().trim() && !self._citoidSuccessMsg.is(":visible") && !Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); }; this._updateReadyHint = function() { if (!self._textInput.getValue()) { self._readyHint.text("Metna nimûneyê lazim e."); return; } if (self._citoidPending()) { self._readyHint.text("Pêşî 'Bi otomatîk tijî bike' bitikîne."); return; } var hasSource = self._sourceInput.getValue().trim() || self._sourceURLInput.getValue().trim() || Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); self._readyHint.text(hasSource ? "Hazir e." : "Çavkanî nehatiye dayîn."); }; // Prefills the Dem field from the typed URL's own "t=" (see wikt.citoid.extractVideoTimestamp) once jêder-vîdeo is active -- never overwrites a value the user already entered by hand. this._autofillVideoTimestamp = function() { var demWidget = self._jederFieldWidgets.dem; if (self._currentJederKey !== "jêder-vîdeo" || !demWidget || demWidget.getValue().trim()) { return; } var dem = wikt.citoid.extractVideoTimestamp(self._sourceURLInput.getValue().trim()); if (dem) { demWidget.setValue(dem); } }; // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; widget.on("change", function() { self._updateReadyHint(); }); var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } this._autofillVideoTimestamp(); this._updateReadyHint(); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); self._updateReadyHint(); mw.notify("Malûmat ji Citoid hatin barkirin."); }, function(errorMsg) { mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî malûmatan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Warns before submitting if a Citoid URL/DOI/ISBN was typed but never successfully fetched, then defers to _doSubmit. submit: function() { if (this._citoidPending() && !window.confirm("Te lînk, DOI an ISBN nivîsand lê hîn jê malûmat nehatine standin. Bêyî wan berdewam bikî?")) { return; } this._doSubmit(); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. _doSubmit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> giao2r0ag0crv5osrq5ii5fa730i43y 6342567 6342540 2026-08-25T11:29:49Z Wikihez 7344 6342567 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] }, "jêder-vîdeo": { "label": "Vîdeo", "fields": [ { "key": "hunermend", "label": "Hunermend", "span": 6 }, { "key": "platform", "label": "Platform", "span": 6 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "tarîx", "label": "Tarîx", "span": 3 }, { "key": "dem", "label": "Dem", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._updateReadyHint(); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInput.on("change", function() { self._updateReadyHint(); }); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, malûmatan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); this._sourceURLInput.on("change", function() { self._updateReadyHint(); self._autofillVideoTimestamp(); }); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Malûmat hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne: no text yet, text but no source (still submittable // as a bare {{nimûne}}), or fully ready -- kept in sync by _updateReadyHint(), wired to every field below. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // True while a Citoid-eligible URL/DOI/ISBN is typed in but not yet fetched (or fetched then edited away) and no jêder field has been filled by hand -- the "looks done but isn't" trap this exists to catch. Not applicable in free-text mode, where the fetch button isn't even offered. this._citoidPending = function() { return self._currentJederKey !== "" && !!self._sourceURLInput.getValue().trim() && !self._citoidSuccessMsg.is(":visible") && !Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); }; this._updateReadyHint = function() { if (!self._textInput.getValue()) { self._readyHint.text("Metna nimûneyê lazim e."); return; } if (self._citoidPending()) { self._readyHint.text("Pêşî 'Bi otomatîk tijî bike' bitikîne."); return; } var hasSource = self._sourceInput.getValue().trim() || self._sourceURLInput.getValue().trim() || Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); self._readyHint.text(hasSource ? "Hazir e." : "Çavkanî nehatiye dayîn."); }; // Prefills the Dem field from the typed URL's own "t=" (see wikt.citoid.extractVideoTimestamp) once jêder-vîdeo is active -- never overwrites a value the user already entered by hand. this._autofillVideoTimestamp = function() { var demWidget = self._jederFieldWidgets.dem; if (self._currentJederKey !== "jêder-vîdeo" || !demWidget || demWidget.getValue().trim()) { return; } var dem = wikt.citoid.extractVideoTimestamp(self._sourceURLInput.getValue().trim()); if (dem) { demWidget.setValue(dem); } }; // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; widget.on("change", function() { self._updateReadyHint(); }); var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } this._autofillVideoTimestamp(); this._updateReadyHint(); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); self._updateReadyHint(); mw.notify("Malûmat ji Citoid hatin barkirin."); }, function(errorMsg) { // Citoid can't fetch some sites at all (e.g. x.com/twitter.com) -- fall back to jêder-websîte with the site name filled in, rather than just a bare error. var fallbackSite = wikt.citoid.websiteNameForKnownUrl(query); if (fallbackSite) { if (self._currentJederKey !== "jêder-websîte") { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData("jêder-websîte"); if (item) { menu.chooseItem(item); // this calls _setSourceType("jêder-websîte") automatically } } var websiteWidget = self._jederFieldWidgets["websîte"]; if (websiteWidget && !websiteWidget.getValue()) { websiteWidget.setValue(fallbackSite); } mw.notify("Citoid nikare vê malperê bixwîne; şablona Websîte hate hilbijartin, ji kerema xwe mayî bi destan tijî bike."); return; } mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî malûmatan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Warns before submitting if a Citoid URL/DOI/ISBN was typed but never successfully fetched, then defers to _doSubmit. submit: function() { if (this._citoidPending() && !window.confirm("Te lînk, DOI an ISBN nivîsand lê hîn jê malûmat nehatine standin. Bêyî wan berdewam bikî?")) { return; } this._doSubmit(); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. _doSubmit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> q9v1cax2v9frajn37pf45opw002iamu 6342568 6342567 2026-08-25T11:35:32Z Wikihez 7344 6342568 javascript text/javascript // <nowiki> // dependencies (declared in MediaWiki:Gadgets-definition): oojs, oojs-ui, ext.gadget.citoid-helper (wikt.citoid), ext.gadget.StorageUtils (ObjectStorage) // Formats a string using {0}, {1}, ... placeholders. if (!String.prototype.format) { String.prototype.format = function(var_args) { var args = arguments; return this.replace(/{(\d+)}/g, function(match, number) { return typeof args[number] !== "undefined" ? args[number] : match; }); }; } $(function() { "use strict"; // Skip pages where this gadget shouldn't run. if ( mw.config.get("wgPageName") !== "Wîkîferheng:ceribandin/nimûne" && mw.config.get("wgNamespaceNumber") !== 108 && mw.config.get("wgNamespaceNumber") !== 0 || mw.config.get("wgPageName") === "Destpêk" || mw.config.get("wgArticleId") === 0 ) return; console.log("Gadget-wikt.add-examples.js dest pê dike…"); var NAME = "[[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]]"; var VERSION = "2.0"; // Persists form drafts via MediaWiki:Gadget-StorageUtils.js (localStorage, falling back to a cookie) so unsaved text survives a failed submit. var draftStorage = new ObjectStorage("add_examples_draft", 1); // Citoid logic lives in MediaWiki:Gadget-citoid-helper.js; it's a registered gadget dependency, so wikt.citoid is already loaded by the time this file runs. // "span" is the field's width in the 12-column grid the fields render in (see .add-example-jeder-fields // in the CSS and _setSourceType below) -- field ORDER here is also the grid's reading order. var jederDefs = { "jêder-kitêb": { "label": "Kitêb", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "cih", "label": "Cih", "span": 2 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "sala-weşandinê", "label": "Sala weşandinê", "span": 2 }, { "key": "çap", "label": "Çap", "span": 1 }, { "key": "rûpel", "label": "Rûpel", "span": 1 }, { "key": "isbn", "label": "ISBN", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-kovar": { "label": "Kovar", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 3 }, { "key": "terciman", "label": "Terciman", "span": 3 }, { "key": "amadekar", "label": "Amadekar", "span": 3 }, { "key": "weşanxane", "label": "Weşanxane", "span": 3 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "kovar", "label": "Kovar", "span": 4 }, { "key": "cild", "label": "Cild", "span": 2 }, { "key": "hejmar", "label": "Hejmar", "span": 2 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "rûpel", "label": "Rûpel", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] }, "jêder-websîte": { "label": "Websîte", "fields": [ { "key": "nivîskar", "label": "Nivîskar", "span": 4 }, { "key": "terciman", "label": "Terciman", "span": 4 }, { "key": "websîte", "label": "Websîte", "span": 4 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "url", "label": "URL", "span": 5 }, { "key": "urlya-arşîvê", "label": "URLya Arşîvê", "span": 5 }, { "key": "sal", "label": "Sal", "span": 1 }, { "key": "tarîx", "label": "Tarîx", "span": 1 } ] }, "jêder-vîdeo": { "label": "Vîdeo", "fields": [ { "key": "hunermend", "label": "Hunermend", "span": 6 }, { "key": "platform", "label": "Platform", "span": 6 }, { "key": "sernav", "label": "Sernav", "multiline": true, "span": 12 }, { "key": "sal", "label": "Sal", "span": 2 }, { "key": "tarîx", "label": "Tarîx", "span": 3 }, { "key": "dem", "label": "Dem", "span": 2 }, { "key": "url", "label": "URL", "span": 12 } ] } }; var sectionNames = { "Navdêr": ["Navdêr"], "Formeke navdêrê": ["Formeke navdêrê"], "Lêker": ["Lêker"], "Formeke lêkerê": ["Formeke lêkerê"], "Rengdêr": ["Rengdêr"], "Formeke rengdêrê": ["Formeke rengdêrê"], "Hoker": ["Hoker"], "Formeke hokerê": ["Formeke hokerê"], "Serenav": ["Serenav"], "Formeke serenavê": ["Formeke serenavê"], "Artîkel": ["Artîkel"], "Baneşan": ["Baneşan"], "Bazinedaçek": ["Bazinedaçek"], "Biwêj": ["Biwêj"], "Cînav": ["Cînav"], "Daçek": ["Daçek"], "Girêdek": ["Girêdek"], "Gotineke pêşiyan": ["Gotineke pêşiyan"], "Hejmar": ["Hejmar"], "Hevok": ["Hevok"], "Îfade": ["Îfade"], "Kurtenav": ["Kurtenav"], "Navgir": ["Navgir"], "Paşdaçek": ["Paşdaçek"], "Paşgir": ["Paşgir"], "Pêşdaçek": ["Pêşdaçek"], "Pêşgir": ["Pêşgir"], "Pirtik": ["Pirtik"], "Reh": ["Reh"], "Sembol": ["Sembol"], "Tîp": ["Tîp"] }; // Template names treated as "real examples" (an allow-list, not the old deny-list) so annotation templates like synonyms/antonyms/alt-forms aren't mistaken for examples. var exampleTemplateNames = ["jêder", "nimûne"].concat(Object.keys(jederDefs)); // Returns the template name starting a "#:"/"#*" line (e.g. "jêder" from "#* {{jêder|ku|...}}"), or null if the line doesn't start with a template. function getLineTemplateName(line) { var m = /^#[:*]\s*\{\{\s*([^|}]+)/.exec(line); return m ? m[1].trim() : null; } // Returns the index of the line where a (possibly multi-line) template block starting at startIndex closes its {{ }} braces, so multi-line templates are treated as one block. function findBlockEnd(lines, startIndex) { var depth = 0; var i = startIndex; for (; i < lines.length; i++) { var opens = (lines[i].match(/\{\{/g) || []).length; var closes = (lines[i].match(/\}\}/g) || []).length; depth += opens - closes; if (depth <= 0) { break; } } return i; } // Ported from start.js: converts literal line breaks typed/pasted into the example/translation/transcription boxes into wikitext <br> tags, since a raw newline would break the single-line "#*" wikitext structure. function nlToBr(text) { return text ? text.replace(/\r\n|\r|\n/g, "<br>") : text; } function escapeHtmlForBackdrop(str) { return String(str) .replace(/&/g, "&amp;") .replace(/</g, "&lt;") .replace(/>/g, "&gt;"); } // Mirrors a textarea's text with a small marker after each line that's followed by an actual typed/pasted linebreak, rendered into a transparent backdrop behind the textarea (see ensureLinebreakBackdrop()). function buildLinebreakBackdropHtml(text) { var lines = text.split(/\r\n|\r|\n/); return $.map(lines, function(line, i) { var isLast = i === lines.length - 1; return escapeHtmlForBackdrop(line) + (isLast ? "" : "<mark class='add-example-linebreak-mark'>↵</mark>\n"); }).join(""); } // Copies the metrics that affect where text wraps/lands (font, line height, padding, border) from the real textarea onto its backdrop via computed style, since the backdrop is a plain <div>, not a themed OOUI input. function syncLinebreakBackdropMetrics(textarea, backdrop) { var cs = window.getComputedStyle(textarea[0]); backdrop.css({ "box-sizing": cs.boxSizing, "padding-top": cs.paddingTop, "padding-right": cs.paddingRight, "padding-bottom": cs.paddingBottom, "padding-left": cs.paddingLeft, "border-width": cs.borderWidth, "border-style": "solid", "font-family": cs.fontFamily, "font-size": cs.fontSize, "font-weight": cs.fontWeight, "line-height": cs.lineHeight, "letter-spacing": cs.letterSpacing }); } // Lazily inserts the transparent backdrop layer used to mark linebreaks, as a sibling of the textarea inside its existing OOUI input wrapper (which OOUI already positions relatively for icon overlays), rather than start.js's approach of wrapping the textarea in a new div — that would risk disturbing OOUI's own layout of the input. Safe to call more than once; the backdrop is cached. function ensureLinebreakBackdrop(textarea) { var existing = textarea.data("addExampleLinebreakBackdrop"); if (existing) { return existing; } var $parent = textarea.parent(); if ($parent.css("position") === "static") { $parent.css("position", "relative"); } var backdrop = $("<div aria-hidden='true'></div>").addClass("add-example-linebreak-backdrop"); textarea.before(backdrop); textarea.data("addExampleLinebreakBackdrop", backdrop); textarea.on("scroll.addExampleLinebreak", function() { backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); }); return backdrop; } // Flags a textarea (via CSS class, for the border tint + tooltip) while it contains a typed/pasted linebreak, so the user notices before it's silently turned into <br> on submit; marks only the exact point of the break via the mirrored backdrop. function highlightLinebreak(el) { var textarea = $(el); var text = textarea.val(); var hasBreak = /\r|\n/.test(text); textarea .toggleClass("add-example-has-linebreak", hasBreak) .attr("title", hasBreak ? "Xeta nû dê wek <br> bê nivîsandin" : ""); if (!hasBreak) { var cached = textarea.data("addExampleLinebreakBackdrop"); if (cached) { cached.hide(); } textarea.removeClass("add-example-has-linebreak-source"); return; } var backdrop = ensureLinebreakBackdrop(textarea); textarea.addClass("add-example-has-linebreak-source"); syncLinebreakBackdropMetrics(textarea, backdrop); backdrop.html(buildLinebreakBackdropHtml(text)).show(); backdrop.scrollTop(textarea.scrollTop()).scrollLeft(textarea.scrollLeft()); } // Wires linebreak detection onto an OOUI multiline widget, matching start.js's scope: only the quote/example text and its translation/transcription, not bibliographic fields. Uses OOUI's own "change" event rather than the raw <textarea> "input" event start.js listens to, since our fields can also be set programmatically (Clear button, draft restore) via setValue(), which doesn't fire a native DOM input event. function watchForLinebreaks(widget) { widget.on("change", function() { highlightLinebreak(widget.$input[0]); }); } var api = new mw.Api(); // Language display name, read from the matching section's .besazimani link text. function languageNameForCode(code) { var $mark = $(".besazimani[id='" + code + "']").first(); return $mark.length ? $mark.text().trim() : null; } // Whether the page title itself (accented Kurdish Latin letters included) is written in Latin script. var pageTitleIsLatin = !/[^\x00-\x7FÀ-ɏḀ-ỿ‘’]/.test(mw.config.get("wgTitle") || ""); // .example/.benimune = old Şablon:jêder hidden marker; .h-usage-example/.h-quotation = Modul:usex containers used directly by Şablon:nimûne; .citation-whole = Modul:quote's own wrapper, now used by jêder-* templates (Modul:quote nests .h-quotation inside .citation-whole > dl > dd instead of putting it directly under the <li>, so it needs its own entry here). // Requiring "ul > li >" is what makes this only match an example that's grouped into its own <ul> -- a // {{nimûne}} (or its "mk" redirect) with no jêder-family citation alongside it in the same definition // renders straight under the definition's own content instead, with no such group; also reused below to // tell whether the second pass still needs to handle a given definition. var EXISTING_EXAMPLE_SELECTOR = "ul > li > .example, ul > li > .benimune, ul > li > .h-usage-example, ul > li > .h-quotation, ul > li > .citation-whole"; $(EXISTING_EXAMPLE_SELECTOR).each(function() { var $element = $(this); var $item = $element.parent(); if (!$item.next().length) { // Get example’s language // bdi[lang] = old hidden marker; .e-example[lang]/.e-quotation[lang] = Modul:usex/Modul:quote already put lang on the visible span. // A jêder-* citation with no jêgirtin= (quotation text) yet renders no h-quotation/e-quotation at all // (see get_quote() in Modul quote.lua) -- exactly the "bare citation" case this button exists to fill // in, so this can't just crash: without the guard, [0] is undefined here and ".lang" throws, which // (since $.each() has no try/catch) silently kills the button for every remaining match on the page. var $langEl = $item.find(".e-example[lang], .e-quotation[lang], bdi[lang]")[0]; if (!$langEl) { console.warn("Gadget-wikt.add-examples: nikaribe zimanê vê nimûneyê bibîne, valakirî hate derbaskirin.", $item); return; } var language = $langEl.lang; if (language === "ku-Latn") { language = "ku"; } console.log('Language:', language); // Get section and indices of associated definition var definitionLevel = []; var $definitionItem = $item.parent().parent(); var $topItem; do { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $topItem = $definitionItem; $definitionItem = $definitionItem.parent().parent(); } while ($definitionItem.prop("tagName") === "LI"); var $section = $($topItem.parent().prevAll(".mw-heading3, h3").get(0)); if ($section.length) { definitionLevel.splice(0, 0, $section.find("h3").attr("id")); } else { console.warn("Gadget-wikt.add-examples: Section heading not found"); // TODO: why does this happen? mw.notify("Beş nehat dîtin. Jkx li WF:Dîwanê vê problemê ragihînin!"); return; } // Remove default edit link if present var $defaultEditLink = $item.find("span.example > span.stubedit"); if ($defaultEditLink.length) { $defaultEditLink.remove(); } // Add a nice button to open the form. $group is the citation-group <ul> itself (parent of $item); // the form panel is inserted AFTER it (see click handler below), not inside it, so the panel isn't // squeezed into that <ul>'s narrow hanging-indent width on mobile -- only the button/title stays // there, matching the "Form redesign for Kurdish example" mockup (title inside the bullet list, // full-width panel below it). var $group = $item.parent(); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($item, $button, $title, language, definitionLevel); $group.after(form.$element); } $button.form.setVisible(true); return false; }); $item.after($formItem); } }); // Second pass: some definitions have no example the pass above could react to at all -- either genuinely // zero examples, or one rendered via {{nimûne}} (or its "mk" redirect) with no jêder-family citation next // to it, which (see the comment on EXISTING_EXAMPLE_SELECTOR above) renders with no "ul > li" group to // match. This walks every recognized POS section's own definitions list directly instead of reacting to // an existing example, and reads the language off the language section's own <h2> rather than off an // example -- so it doesn't need one to already exist. Everything else (Form, submit()) is reused as-is. // MediaWiki wraps each heading in a "mw-heading2"/"mw-heading3"/... div in current skin output; falls // back to the bare heading element for older/other output that doesn't wrap it. function headingOuter($h) { var $wrap = $h.closest(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6"); return $wrap.length ? $wrap : $h; } // Section's language code: nearest preceding .besazimani[id] by document order (not sibling-walking, which mobile's per-section wrapping breaks). function languageCodeForOl($ol) { var $marks = $(".besazimani[id]").add($ol); var ol = $ol.get(0); var idx = $marks.index(ol); for (var i = idx - 1; i >= 0; i--) { var el = $marks.get(i); if (el.id) { return el.id; } } return null; } // A <li> whose OWN direct content (not counting a nested <ol>) is wrapped in ".form-of-definition" is // MediaWiki's "form of" template system marking that content as generated by a template -- e.g. // {{ku-tewîna-nav}}'s "Formeke heval:" wrapper together with its "rewşa îzafeyî"/"rewşa çemandî"/... // readings underneath. That whole nested block is normally the ENTIRE expansion of a single "#" // wikitext line, with no separate "##" line behind any individual reading -- recursing into it would // hand out one button per reading, each trying to match a "##" line that doesn't exist, and submit() // would fail to find where to insert every one of them. A <li> without that class whose nested <ol> // holds real hand-typed prose (e.g. sîno-koreyî/Navdêr's two genuinely separate "##" sub-senses) has // no such problem -- those really are individually addressable wikitext lines. function isFormOfWrapper($li) { return $li.children(".form-of-definition").length > 0; } // Recurse into a <li>'s own nested <ol> UNLESS it's a form-of-template wrapper (see isFormOfWrapper) -- // a wrapper <li> with its own nested <ol> isn't itself a sense with content of its own, only its real // (non-generated) leaves are. function eachLeafDefinition($ol, fn) { $ol.children("li").each(function() { var $li = $(this); var $childOl = $li.children("ol"); if ($childOl.length && !isFormOfWrapper($li)) { $childOl.each(function() { eachLeafDefinition($(this), fn); }); } else { fn($li); } }); } $("h3").each(function() { var sectionType = $(this).text().trim(); if (!sectionNames[sectionType]) { return; // not a recognized word-sense section (Bilêvkirin, Etîmolojî, Çavkanî, ...) } var h3Id = $(this).attr("id"); // Forward-walk siblings to the definitions <ol>, skipping over a declension table/TemplateStyles/the // headword line; stop (nothing to attach to in this section) if another heading comes first instead. var $ol = null; for (var $cursor = headingOuter($(this)).next(); $cursor.length; $cursor = $cursor.next()) { if ($cursor.is("ol")) { $ol = $cursor; break; } if ($cursor.is(".mw-heading2, .mw-heading3, .mw-heading4, .mw-heading5, .mw-heading6, h2, h3, h4, h5, h6")) { break; } } if (!$ol) { return; } var language = languageCodeForOl($ol); if (!language) { console.warn("Gadget-wikt.add-examples: nikaribe koda zimanê vê beşê bibîne.", $ol); return; } eachLeafDefinition($ol, function($li) { // The pass above already added a button here (or will) -- an actual example already wrapped in // its own "ul > li" group. if ($li.find(EXISTING_EXAMPLE_SELECTOR).length) { return; } var definitionLevel = []; var $definitionItem = $li; while ($definitionItem.prop("tagName") === "LI") { // Skip MediaWiki's empty <li class="mw-empty-elt"> placeholders so indices match the real "#" lines in wikitext (see submit()). definitionLevel.splice(0, 0, $definitionItem.prevAll("li:not(.mw-empty-elt)").length); $definitionItem = $definitionItem.parent().parent(); } definitionLevel.splice(0, 0, h3Id); // A hidden, empty placeholder <li> so submit()'s existing "_$lastExample.after(newLi)" insertion // (unchanged, same as the pass above) lands the first submitted example right before the button // -- matching the existing convention of new examples going in before the button, not after it. var $placeholder = $("<li style='display:none'></li>"); var $formItem = $("<li>"); var $button = $("<a href='#'>Nimûneyeke bikaranînê lê zêde bike</a>"); $button.css("color", "var( --color-subtle, #777777 )"); // Shown in the button's place once the form is open (see Form#setVisible). var $title = $("<span class='add-example-form-title'></span>").hide(); $formItem.append($button).append($title); // A "ul" nested directly under a definition "li" starts hidden here (see the HQToggle-controlled // jêder-citation-group "ul", which only ever renders with an explicit "style="display: block"" // set on it) -- this one has no HQToggle to unhide it, so it needs the same explicit override or // the button (and the placeholder above) never becomes visible at all. var $ul = $("<ul>").css("display", "block").append($placeholder).append($formItem); // The form panel is inserted AFTER $ul (not inside it) once opened -- same reasoning as the first // pass above: keeps the full-width panel out of the tight bulleted-list indentation on mobile. $button.on("click", function() { if (!$button.form) { $title.text("Nimûneyeke bi " + (languageNameForCode(language) || "zimanekî nenas").toLowerCase() + " lê zêde dikî."); var form = new Form($placeholder, $button, $title, language, definitionLevel); $ul.after(form.$element); } $button.form.setVisible(true); return false; }); $li.append($ul); }); }); // Pulls the form panel flush with the page's own left/right edges, undoing whatever nested-list indent it inherited from sitting inside a deeply-nested definition. function alignFormToPage($form) { var $container = $form.closest(".mw-parser-output"); if (!$container.length) { return; } var pad = parseFloat(window.getComputedStyle($container[0]).paddingLeft) || 0; var containerLeft = $container.offset().left + pad; var indent = $form.offset().left - containerLeft; $form.css({ marginLeft: indent > 0 ? -indent : 0, width: $container.width() + "px" }); } // Constructor for the edit form; lastExample/button/title/language/definitionLevel identify where the form attaches and what it edits. function Form($lastExample, $button, $title, language, definitionLevel) { var self = this; this._language = language; this._definitionLevel = definitionLevel; this._$lastExample = $lastExample; this._$button = $button; this._$button.form = this; this._$title = $title; this._currentJederKey = ""; this._jederFieldWidgets = {}; this._textInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var textInputLayout = new OO.ui.FieldLayout(this._textInput, { label: "Metna nimûneyê", align: "top", }); this._textInput.on("change", function(value) { self._applyButton.setDisabled(!value); self._updateReadyHint(); }); watchForLinebreaks(this._textInput); // Source type dropdown: free text, a jêder-* template, or "citoid" (a pseudo key, not in jederDefs) meaning "not yet detected" — the default, switched automatically once a Citoid fetch succeeds (see _fillFromCitoid). var sourceTypeMenuItems = [ new OO.ui.MenuOptionWidget({ data: "citoid", label: "Bi Citoidê otomatîk zêde bike" }), new OO.ui.MenuOptionWidget({ data: "", label: "Bi destê xwe binivîsim" }), ]; for (var jederKey in jederDefs) { if (jederDefs.hasOwnProperty(jederKey)) { sourceTypeMenuItems.push(new OO.ui.MenuOptionWidget({ data: jederKey, label: jederDefs[jederKey].label, })); } } this._sourceTypeDropdown = new OO.ui.DropdownWidget({ menu: { items: sourceTypeMenuItems }, label: "Bi Citoidê otomatîk zêde bike", }); var sourceTypeLayout = new OO.ui.FieldLayout(this._sourceTypeDropdown, { label: "Şablona çavkaniyê", align: "top", }); this._sourceTypeDropdown.getMenu().on("choose", function(menuOption) { self._setSourceType(menuOption.getData()); }); this._sourceInput = new OO.ui.MultilineTextInputWidget(); this._sourceInput.on("change", function() { self._updateReadyHint(); }); this._sourceInputLayout = new OO.ui.FieldLayout(this._sourceInput, { label: "Çavkaniya nimûneyê", align: "top", }); // Always visible in every mode (free text included) — submit() reads this unconditionally as the "url=" parameter. The Citoid fetch button sits right next to it (not in a separate box) -- see _urlRowWidget below. this._sourceURLInput = new OO.ui.TextInputWidget({ icon: "link", placeholder: "https://… an jî DOI/ISBN", }); this._citoidButton = new OO.ui.ButtonWidget({ label: "Bi otomatîk tijî bike", icon: "download", flags: ["progressive"], title: "Li gorî URL, DOI an ISBNya jorîn, malûmatan ji Citoid tîne û qadên şablona jêder-* otomatîk tijî dike.", classes: ["add-example-citoid-fetch"], }); this._citoidButton.on("click", this._fillFromCitoid.bind(this)); this._sourceURLInput.on("change", function() { self._updateReadyHint(); self._autofillVideoTimestamp(); }); // URL input + inline "auto-fill" button as one row (replaces the old separate framed Citoid box's // button row) -- a plain OO.ui.Widget used purely as a flex-row container (same pattern as // _loadingImage below: build it empty, then manually append its children's $elements). Disabling // during submit() still goes through the individual _sourceURLInput/_citoidButton references, not // through this wrapper. this._urlRowWidget = new OO.ui.Widget({ classes: ["add-example-url-row"] }); this._urlRowWidget.$element.append(this._sourceURLInput.$element, this._citoidButton.$element); this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Li qutiyê URL, DOI an ISBN binivîse û pê lê bike butona 'Bi otomatîk tijî bike' da ku otomatîk çavkanî were dagirtin.", helpInline: true, }); // Matches the wording just constructed above, so the initial _setSourceType("citoid") call at the end of this constructor doesn't needlessly recreate an identical layout. this._urlFieldIsFreeTextWording = false; // Shown right after a successful Citoid fetch (see _fillFromCitoid); hidden again on clear. this._citoidSuccessMsg = $("<span class='add-example-citoid-success'>✓ Malûmat hatin dagirtin — li jêr kontrol bike.</span>").hide(); // Clears the URL field and any filled jêder-* fields without touching the example text/translation. this._citoidClearButton = new OO.ui.ButtonWidget({ label: "Vala bike", icon: "trash", framed: false, title: "Lînkê û qadên jêder-* yên vê beşê vala bike", classes: ["add-example-citoid-clear"], }); this._citoidClearButton.on("click", function() { self._sourceURLInput.setValue(""); self._citoidSuccessMsg.hide(); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setValue(""); }); }); // Plain div (not OO.ui.FieldsetLayout) so the grid CSS class applies directly to the field items. this._jederFieldsFieldset = $("<div class='add-example-jeder-fields'>"); // "Malûmatên çavkaniyê" header (+ the "Vala bike" clear button) sitting right above the fields grid, // replacing the old framed "Ji Citoid an bi destan tijî bike:" box -- like this only makes sense once // a real jêder-* template is active (there's nothing here to show for the "citoid: not yet detected" // placeholder or for free text), so the whole section toggles together in _setSourceType(). this._jederSection = $("<div class='add-example-jeder-section'>").append( $("<div class='add-example-jeder-header'>") .append($("<span class='add-example-jeder-header-label'>Malûmatên çavkaniyê</span>")) .append(this._citoidClearButton.$element), this._jederFieldsFieldset ); this._translationInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var translationInputLayout = new OO.ui.FieldLayout(this._translationInput, { label: "Tercimeya kurmancî ya nimûneyê", align: "top", }); watchForLinebreaks(this._translationInput); this._transcriptionInput = new OO.ui.MultilineTextInputWidget({ rows: 4 }); var transcriptionInputLayout = new OO.ui.FieldLayout(this._transcriptionInput, { label: "Translîterasyona nimûneyê", align: "top", help: "Tenê lê zêde bike eger metna di nimûneyê de bi alfabeya latînî nehatibe nivîsandin.", helpInline: true, }); watchForLinebreaks(this._transcriptionInput); this._applyButton = new OO.ui.ButtonWidget({ label: "Biweşîne", icon: "check", title: "Nimûneyê ji bo vê tarîfê nimûneyê lê zêde bike", flags: ["progressive", "primary"], disabled: true, }); this._applyButton.on("click", this.submit.bind(this)); // Reactive "ready to submit" hint next to Biweşîne: no text yet, text but no source (still submittable // as a bare {{nimûne}}), or fully ready -- kept in sync by _updateReadyHint(), wired to every field below. this._readyHint = $("<span class='add-example-ready-hint'></span>").text("Metna nimûneyê lazim e."); // True while a Citoid-eligible URL/DOI/ISBN is typed in but not yet fetched (or fetched then edited away) and no jêder field has been filled by hand -- the "looks done but isn't" trap this exists to catch. Not applicable in free-text mode, where the fetch button isn't even offered. this._citoidPending = function() { return self._currentJederKey !== "" && !!self._sourceURLInput.getValue().trim() && !self._citoidSuccessMsg.is(":visible") && !Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); }; this._updateReadyHint = function() { if (!self._textInput.getValue()) { self._readyHint.text("Metna nimûneyê lazim e."); return; } if (self._citoidPending()) { self._readyHint.text("Pêşî 'Bi otomatîk tijî bike' bitikîne."); return; } var hasSource = self._sourceInput.getValue().trim() || self._sourceURLInput.getValue().trim() || Object.keys(self._jederFieldWidgets).some(function(key) { return self._jederFieldWidgets[key].getValue().trim(); }); self._readyHint.text(hasSource ? "Hazir e." : "Çavkanî nehatiye dayîn."); }; // Prefills the Dem field from the typed URL's own "t=" (see wikt.citoid.extractVideoTimestamp) once jêder-vîdeo is active -- never overwrites a value the user already entered by hand. this._autofillVideoTimestamp = function() { var demWidget = self._jederFieldWidgets.dem; if (self._currentJederKey !== "jêder-vîdeo" || !demWidget || demWidget.getValue().trim()) { return; } var dem = wikt.citoid.extractVideoTimestamp(self._sourceURLInput.getValue().trim()); if (dem) { demWidget.setValue(dem); } }; // framed:false (+ the "destructive" flag for the red text/hover) matches the mockup's borderless // "Betal bike" -- a plain colored link rather than a boxed button, distinguishing it from Paqij bike. this._cancelButton = new OO.ui.ButtonWidget({ label: "Betal bike", icon: "close", title: "Formê bigire", flags: ["destructive"], framed: false, }); this._cancelButton.on("click", function() { self.setVisible(false); }); this._clearButton = new OO.ui.ButtonWidget({ label: "Paqij bike", icon: "trash", title: "Hemû qadan vala bike û pêşnûyisên hilanîbûyî jê bibe", }); this._clearButton.on("click", function() { self.clear(); self._clearDraft(); }); // Native CSS spinner (see Gadget-wikt.add-examples.css) instead of an external Commons GIF, so there's no network request and it matches dark/light mode. this._loadingImage = new OO.ui.Widget({ classes: ["add-example-loading"], }); this._loadingImage.$element.append($('<span class="add-example-spinner" aria-hidden="true"></span>')); this._loadingImage.toggle(false); // Two-column top section (see "Form redesign for Kurdish example/Nimûne zêde bike.dc.html"): example // text (+ translation/transliteration for non-ku, right after it, not after the source fields) on the // left; source-type + link/Citoid on the right. Built as plain <div>s, not an OOUI layout -- OOUI has // no CSS-grid container -- so .add-example-top-grid in the CSS can lay them out as a real responsive // 7fr/5fr grid (collapsing to one column on narrow screens). var $topLeft = $("<div class='add-example-top-col'>").append(textInputLayout.$element); if (language !== "ku") { $topLeft.append(translationInputLayout.$element); } if (!pageTitleIsLatin) { $topLeft.append(transcriptionInputLayout.$element); } var $topRight = $("<div class='add-example-top-col'>").append( sourceTypeLayout.$element, this._sourceInputLayout.$element, this._sourceURLInputLayout.$element, this._citoidSuccessMsg ); var $topGrid = $("<div class='add-example-top-grid'>").append($topLeft, $topRight); // Saved on the instance (not just a local var) so _setSourceType() can swap the URL field's label/help // wording in and out of it when switching to/from free text (see the FieldLayout replaceWith() there). this._fieldsLayout = $("<div class='add-example-fieldset'>").append($topGrid, this._jederSection); // Bottom action row -- order/spacing matches the mockup: Biweşîne (+ spinner + ready hint), a spacer // pushing the rest right, then Paqij bike (bordered/subtle) and Betal bike (borderless red text, via // framed:false above). A plain flex <div>, not an OOUI HorizontalLayout, so the raw hint/spacer // elements can sit alongside the real button widgets (same reasoning as the top grid above). var $buttonsRow = $("<div class='add-example-main-buttons'>").append( this._applyButton.$element, this._loadingImage.$element, this._readyHint, $("<span class='add-example-buttons-spacer'></span>"), this._clearButton.$element, this._cancelButton.$element ); this._frame = new OO.ui.PanelLayout({ id: "add-example-definition-{0}-form".format(this._definitionLevel.join("-")), classes: ["add-example-form"], expanded: false, }); this._frame.$element.append(this._fieldsLayout, $buttonsRow); // Default to "citoid" mode; selectItemByData() doesn't fire "choose" (that only fires for interactive selection), so _setSourceType() must also be called explicitly to set up the initial UI. this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); } Form.prototype = { // Returns the jQuery object for this form. get $element() { return this._frame.$element; }, // Switches the source section between free text, Citoid auto-detect (no template chosen yet), and a specific jêder-* template, rebuilding the field list to match. The URL field itself is always visible in every mode (see the constructor); only the free-text textarea, the Citoid fetch button, and the "Malûmatên çavkaniyê" fields section toggle here. _setSourceType: function(jederKey) { var self = this; this._currentJederKey = jederKey; this._jederFieldsFieldset.empty(); this._jederFieldWidgets = {}; var isRealJederKey = jederKey && jederDefs[jederKey]; if (isRealJederKey) { var def = jederDefs[jederKey]; def.fields.forEach(function(field) { var widget = field.multiline ? new OO.ui.MultilineTextInputWidget({ rows: 2, autosize: false }) : new OO.ui.TextInputWidget(); self._jederFieldWidgets[field.key] = widget; widget.on("change", function() { self._updateReadyHint(); }); var layout = new OO.ui.FieldLayout(widget, { label: field.label, align: "top", classes: ["add-example-field-span-" + (field.span || 4)], }); self._jederFieldsFieldset.append(layout.$element); }); } // "Malûmatên çavkaniyê" header + fields grid: only once a real template is chosen/detected -- // nothing to show yet for the plain "citoid: not yet detected" placeholder or for free text. this._jederSection.toggle(!!isRealJederKey); // Free text textarea only for "" (free text); hidden for "citoid" and any real jêder-* key. this._sourceInputLayout.toggle(jederKey === ""); // Citoid fetch button: hidden for free text (nothing there for it to fill in), shown for "citoid" auto-detect and any real jêder-* key. The URL input itself next to it stays visible in every mode. this._citoidButton.toggle(jederKey !== ""); // URL field wording: plain "attach a link" phrasing for free text, Citoid-oriented phrasing otherwise. Only recreated when actually crossing that boundary, not on every dropdown change (e.g. switching between two jêder-* types keeps the same wording, no need to touch the DOM). var isFreeText = jederKey === ""; if (this._urlFieldIsFreeTextWording !== isFreeText) { this._urlFieldIsFreeTextWording = isFreeText; this._sourceURLInput.setPlaceholder(isFreeText ? "URLyeke wekî https://…" : "URLyek wekî https://… an jî DOI/ISBN"); var $oldLayout = this._sourceURLInputLayout.$element; // Re-wraps the SAME _urlRowWidget (still holding _sourceURLInput + _citoidButton) in a new // FieldLayout with the new label/help; the widget's $element moves along with it, same as the // old addItems()/removeItems() swap did for the plain input before this redesign. this._sourceURLInputLayout = new OO.ui.FieldLayout(this._urlRowWidget, isFreeText ? { label: "Adresa webê ya nimûneyê", align: "top", help: "Tenê binivîse eger lînk jixwe di referansa çavkaniyê de tinebe.", helpInline: true, } : { label: "Lînk, DOI an ISBNya çavkaniyê", align: "top", help: "Ev dibe lînka çavkaniyê (url=). Ji bo şablonên jêder-*, dikare bi Citoid an bi destan jî bên dagirtin.", helpInline: true, }); $oldLayout.replaceWith(this._sourceURLInputLayout.$element); } this._autofillVideoTimestamp(); this._updateReadyHint(); }, // Fetches data from MediaWiki:Gadget-citoid-helper.js, picks the matching jêder-* template, and fills its empty fields; citoid-helper is a registered gadget dependency so it's already loaded here. _fillFromCitoid: function() { var self = this; var query = this._sourceURLInput.getValue().trim(); if (!query) { mw.notify("Ji kerema xwe re pêşî URL, DOI an ISBNyekê binivîse."); return; } this._citoidButton.setDisabled(true); this._loadingImage.toggle(true); wikt.citoid.fetchJederFields(query).then(function(result) { // Only let Citoid pick the template type when nothing's been chosen yet (the "citoid" auto-detect default). If the user already selected a specific jêder-* type (or free text), that choice is respected — e.g. picking "Websîte" and fetching a tweet must not silently switch to "Kovar" just because Citoid guessed differently. var wasAutoDetect = self._currentJederKey === "citoid"; if (wasAutoDetect) { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData(result.jederKey); if (item) { menu.chooseItem(item); // this calls _setSourceType(jederKey) automatically } } var targetJederKey = self._currentJederKey; // Fields Citoid returned were shaped for its own detected type; if the active template differs (the case above where the user's choice was kept), re-derive fields for that template instead so e.g. "Websîte" still gets its own website-shaped fields (websîte, tarîx, ...) rather than leftover kovar-shaped ones. var fields = targetJederKey === result.jederKey ? result.fields : wikt.citoid.dataToJederFields(targetJederKey, result.raw); Object.keys(fields).forEach(function(key) { var widget = self._jederFieldWidgets[key]; if (widget && !widget.getValue()) { widget.setValue(fields[key]); } }); self._citoidSuccessMsg.show(); self._updateReadyHint(); mw.notify("Malûmat ji Citoid hatin barkirin."); }, function(errorMsg) { // Citoid can't fetch some sites at all (e.g. x.com/twitter.com) -- fall back to jêder-websîte with a website name guessed from the URL itself, rather than just a bare error. var fallbackSite = wikt.citoid.websiteNameForUrl(query); if (fallbackSite) { if (self._currentJederKey !== "jêder-websîte") { var menu = self._sourceTypeDropdown.getMenu(); var item = menu.findItemFromData("jêder-websîte"); if (item) { menu.chooseItem(item); // this calls _setSourceType("jêder-websîte") automatically } } var websiteWidget = self._jederFieldWidgets["websîte"]; if (websiteWidget && !websiteWidget.getValue()) { websiteWidget.setValue(fallbackSite); } mw.notify("Citoid nikare vê malperê bixwîne; şablona Websîte hate hilbijartin, ji kerema xwe mayî bi destan tijî bike."); return; } mw.notify(typeof errorMsg === "string" ? errorMsg : "Nekarî malûmatan ji Citoid bistîne. Kontrol bike ka URL/DOI/ISBN rast e."); }).always(function() { self._citoidButton.setDisabled(false); self._loadingImage.toggle(false); }); }, // Toggles the visibility of this form and restores any saved draft when shown. The title text takes // the button's place while open (see the "Form redesign for Kurdish example" mockup); the button // itself stays put ready to reappear once the form is cancelled/closed. setVisible: function(visible) { this._$button.toggle(!visible); this._$title.toggle(visible); this._frame.toggle(visible); if (visible) { alignFormToPage(this._frame.$element); var draft = draftStorage.Get() || {}; if (!this._textInput.getValue() && draft.text) { this._textInput.setValue(draft.text); } if (!this._sourceInput.getValue() && draft.source) { this._sourceInput.setValue(draft.source); } if (!this._sourceURLInput.getValue() && draft.sourceURL) { this._sourceURLInput.setValue(draft.sourceURL); } if (!this._translationInput.getValue() && draft.translation) { this._translationInput.setValue(draft.translation); } if (!this._transcriptionInput.getValue() && draft.transcription) { this._transcriptionInput.setValue(draft.transcription); } } }, // Removes any saved draft (localStorage/cookie via MediaWiki:Gadget-StorageUtils.js) so it can't resurface on other pages. _clearDraft: function() { draftStorage.Set({}); }, // Clears all fields in this form. clear: function() { this._textInput.setValue(""); this._sourceInput.setValue(""); this._sourceURLInput.setValue(""); this._translationInput.setValue(""); this._transcriptionInput.setValue(""); this._citoidSuccessMsg.hide(); this._sourceTypeDropdown.getMenu().selectItemByData("citoid"); this._setSourceType("citoid"); }, // Warns before submitting if a Citoid URL/DOI/ISBN was typed but never successfully fetched, then defers to _doSubmit. submit: function() { if (this._citoidPending() && !window.confirm("Te lînk, DOI an ISBN nivîsand lê hîn jê malûmat nehatine standin. Bêyî wan berdewam bikî?")) { return; } this._doSubmit(); }, // Generates and submits the wikicode, then inserts the resulting HTML element if no errors occurred. _doSubmit: function() { var self = this; self._textInput.setDisabled(true); self._sourceInput.setDisabled(true); self._sourceURLInput.setDisabled(true); self._translationInput.setDisabled(true); self._transcriptionInput.setDisabled(true); self._sourceTypeDropdown.setDisabled(true); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(true); }); // self._disableTranslationChk.setDisabled(true); this._applyButton.setDisabled(true); this._clearButton.setDisabled(true); this._loadingImage.toggle(true); var source = this._sourceInput.getValue().trim(); var sourceURL = this._sourceURLInput.getValue().trim(); var text = this._textInput.getValue().trim(); // If a jêder-* template is selected, collect its filled-in fields. var jederParams = []; if (this._currentJederKey && jederDefs[this._currentJederKey]) { jederDefs[this._currentJederKey].fields.forEach(function(field) { var widget = self._jederFieldWidgets[field.key]; var value = widget ? widget.getValue().trim() : ""; if (value) { jederParams.push(field.key + "=" + value); } }); } var usingJederTemplate = this._currentJederKey && jederParams.length > 0; var minakAnNa, sablon; if (usingJederTemplate) { // The jêder-* template itself is used as the template, not as the "2=" content. minakAnNa = "*"; sablon = this._currentJederKey; } else if (source || sourceURL) { minakAnNa = "*"; sablon = "jêder"; } else { minakAnNa = ":"; sablon = "nimûne"; } var listMarker = "".padStart(this._definitionLevel.length - 1, "#") + minakAnNa; var title = mw.config.get('wgTitle'); // jêder-* template, jêder, or nimûne var code = listMarker + " {{" + sablon; // 1= language code code += "|" + this._language; if (usingJederTemplate) { // Fields of the selected jêder-* template, passed straight through as its parameters. jederParams.forEach(function(param) { code += "|" + param; }); } else { // 2= source (free text) if (source) { code += "|2=" + source; } if (sourceURL) { code += "|url=" + sourceURL; } } // jêgirtin/nimûne (quotation text) code += "|"; if (sablon !== "nimûne") { code += "jêgirtin="; } // bold the page title, then convert any literal linebreak in the example text to <br> (see nlToBr) so it can't break the single-line "#*" wikitext code += nlToBr(text.replace(new RegExp("(" + title + "([^( |,|;|?|.|!)]+)?)", "ig"), "'''$1'''")); if (this._language !== "ku") { var translation = nlToBr(this._translationInput.getValue().trim()); if (translation) { code += "|tercime=" + translation; } } var transcription = nlToBr(this._transcriptionInput.getValue().trim()); if (transcription) { code += "|tr=" + transcription; } code += "}}"; // var escapedLangCode = languages[this._language].charAt(0).toUpperCase() + languages[this._language].slice(1); // console.log("escapedLangCode: ", escapedLangCode); var sectionIDPattern = new RegExp("^([\\wîêçş_]+?)_?(\\d+)?_?(\\d+)?$"); console.log("this._definitionLevel[0]: ", this._definitionLevel[0]); var matchSectionID = sectionIDPattern.exec(this._definitionLevel[0]); //var isInflection; var sectionType = matchSectionID[1].replace(/_/, ' '); sectionType = sectionType.replace(/_\d+$/, ''); console.log("sectionType: ", sectionType); var sectionNum = matchSectionID[2] ? parseInt(matchSectionID[2]) : ""; console.log("Section Number:", sectionNum); // Insert new example into page’s code api.get({ action: "query", titles: mw.config.get("wgPageName"), prop: "revisions", rvprop: "content", rvslots: "main", }).then(function(data) { var pageContent; for (var pageID in data.query.pages) { if (data.query.pages.hasOwnProperty(pageID)) { // noinspection JSUnresolvedVariable pageContent = data.query.pages[pageID].revisions[0].slots.main["*"]; break; } } // Look for correct language section var langSectionRegex = new RegExp("==[ ]*{{ziman\\|{0}}}[ ]*==".format(self._language)); var langSectionIndex = pageContent.search(langSectionRegex); console.log("langSectionIndex:", langSectionIndex); if (langSectionIndex === -1) { console.log("langSectionIndex === -1"); error("Xeletiyeke bi koda zimanî heye. Koda zimanî:" + self._language); return; } // Look for correct word type section var lines = pageContent.slice(langSectionIndex).split("\n"); var sectionNamesRegex = Object.keys(sectionNames).join('|'); var sectionRegex = new RegExp('^===[ ]*(' + sectionNamesRegex + ')\\s*(\\d+)?'); var targetLineIndex; for (targetLineIndex = 0; targetLineIndex < lines.length; targetLineIndex++) { var line = lines[targetLineIndex]; console.log("line:", line); var matchSection = sectionRegex.exec(line); if (matchSection) { console.log("matchSection:", matchSection[1]); // Extract section name and number from the matched result var matchedSectionName = matchSection[1]; var matchedSectionNum = matchSection[2]; // It could be undefined if (!sectionNames[sectionType]) { error('Navê beşê xelet e. Di beşên "Ji wêjêyê" û "Ji wêjêya klasîk" ev amûr nayê bikaranîn.'); return; // Exit the function } // Check if the matched section name is in the expected list if (sectionNames[sectionType].includes(matchedSectionName)) { // Match only the specific numbered section the button was clicked in (e.g. "Navdêr 2", // not just the first "===Navdêr...===" heading found) -- both sides are "" when the // section has no number at all (a single unnumbered "===Navdêr==="). var matchedSectionNumValue = matchedSectionNum ? parseInt(matchedSectionNum, 10) : ""; if (matchedSectionNumValue === sectionNum) { // Add more conditions if needed for inflection, e.g., (isInflection === line.includes("Formeke ")) break; } } } } if (targetLineIndex === lines.length) { console.log("targetLineIndex === lines.length"); error("Di navê beşê de xeletî heye. Îhtimalen bi vî navê beşê çend heb hene."); return; } // Look for correct definition var defIndex = -1; var level = 1; for (; targetLineIndex < lines.length; targetLineIndex++) { var m = /^(#+)[^*#:]/.exec(lines[targetLineIndex]); console.log("lines[targetLineIndex]:", lines[targetLineIndex]); if (m) { console.log("m:", m); if (level === m[1].length) { console.log("m[1]:", m[1]); defIndex++; console.log("defIndex:", defIndex); if (self._definitionLevel[level] === defIndex) { console.log("self._definitionLevel[level] === defIndex"); console.log("self._definitionLevel[level]", self._definitionLevel[level]); if (level === self._definitionLevel.length - 1) { console.log("level:", level); break; } else { level++; defIndex = -1; } } } } } // Find where to insert within this definition's "#:"/"#*" block: walk lines after the definition (findBlockEnd() tracks multi-line templates), and use exampleTemplateNames to tell real examples from annotations (synonyms, antonyms, alt-forms, etc.) rather than hard-blocking specific names. var insertionFound = false; var lastRelevantBlockEnd = -1; var isJederFamily = (sablon === "jêder" || Object.prototype.hasOwnProperty.call(jederDefs, sablon)); var scanIndex = targetLineIndex + 1; var emptyTemplate = false; for (; scanIndex < lines.length; scanIndex++) { var scanLine = lines[scanIndex]; if (!scanLine.startsWith("#:") && !scanLine.startsWith("#*")) { // Left this definition's "#:"/"#*" block (e.g. a new definition or section starts). break; } var blockEnd = findBlockEnd(lines, scanIndex); var templateName = getLineTemplateName(scanLine); var isExampleLine = templateName !== null && exampleTemplateNames.indexOf(templateName) !== -1; if (isJederFamily) { // jêder-family examples go after all "#:"/"#*" lines of this definition (both real examples and annotations). lastRelevantBlockEnd = blockEnd; insertionFound = true; } else if (sablon === "nimûne") { // "nimûne" examples go before any "#*" line, but after "#:" lines. if (scanLine.startsWith("#*")) { break; } lastRelevantBlockEnd = blockEnd; insertionFound = true; } scanIndex = blockEnd; // Skip past the whole (possibly multi-line) block } var insertAt = lastRelevantBlockEnd >= 0 ? lastRelevantBlockEnd + 1 : scanIndex; if (lastRelevantBlockEnd >= 0) { emptyTemplate = /#+\*\s*{{[ ]*b?ê?(nimûne|mînak|jêgirtin)\??\s*\|\s*\|?\s*[^|}]+}}/.test(lines[lastRelevantBlockEnd]); } if (emptyTemplate) { console.log("empty Template found", sablon); // Replace empty template with new example lines.splice(lastRelevantBlockEnd, 1, code); } else { console.log("empty Template not found", sablon); // Insert the new example (right after the definition if it had no existing "#:"/"#*" lines yet, or after the relevant block otherwise). lines.splice(insertAt, 0, code); } // Submit new page content api.edit(mw.config.get("wgPageName"), function(_) { return { text: pageContent.slice(0, langSectionIndex) + lines.join("\n"), summary: "+nimûneya bikaranînê bi amûra « {0} » (v{1}).".format(NAME, VERSION), }; }).then(function() { api.parse(code).done(function(data) { var $renderedExample = $(data).find("ul > li").html(); var $item; // Insert rendered example into page if (emptyTemplate) { self._$lastExample.html($renderedExample); $item = self._$lastExample; } else { self._$lastExample.after($item = $("<li>").append($renderedExample)); } $item.css("background-color", "lightgreen"); setTimeout(function() { $item.css("background-color", "inherit"); }, 1000); self._$lastExample = $item; }); self.setVisible(false); self.clear(); self._clearDraft(); reenable(); }); }); function error(errorMessage) { mw.notify(errorMessage || "Nimûne nehat weşandin, îhtimalen rûpel hate guhartin. Ji kerema xwe re rûpelê dîsa bar bike û dîsa biceribîne."); draftStorage.Set({ text: self._textInput.getValue(), source: self._sourceInput.getValue(), sourceURL: self._sourceURLInput.getValue(), translation: self._translationInput.getValue(), transcription: self._transcriptionInput.getValue(), }); reenable(); } function reenable() { self._textInput.setDisabled(false); self._sourceInput.setDisabled(false); self._sourceURLInput.setDisabled(false); self._translationInput.setDisabled(false); self._transcriptionInput.setDisabled(false); self._sourceTypeDropdown.setDisabled(false); Object.keys(self._jederFieldWidgets).forEach(function(key) { self._jederFieldWidgets[key].setDisabled(false); }); // self._disableTranslationChk.setDisabled(false); self._applyButton.setDisabled(false); self._cancelButton.setDisabled(false); self._clearButton.setDisabled(false); self._loadingImage.toggle(false); } }, }; }); // </nowiki> 7zldmogorm05mjkpk30lfdj5yqqz72m Bikarhêner:Wikihez/Gadget-wikt.add-examples.css 2 1357894 6342332 6329670 2026-08-25T06:27:55Z Wikihez 7344 6342332 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "Nimûneyeke bikaranînê lê zêde bike" link once its form is open (see Form#setVisible in the JS) -- stays inside the same bullet <li> the link lived in, matching the "Form redesign for Kurdish example" mockup where the title sits inside the bulleted list and the actual form panel is a separate full-width block below it, not squeezed into the list's own narrow indent. */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text (+ translation/transliteration) on the left, source-type + link/Citoid on the right. Collapses to one column on narrow screens (see the media query below). */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text (URLs, DOIs) shrink instead of overflowing the grid track */ } /* URL input + inline "Bi otomatîk tijî bike" fetch button, side by side in one row (see _urlRowWidget in the JS) -- replaces the old separate framed Citoid box. */ .add-example-url-row { display: flex; gap: 8px; align-items: stretch; } .add-example-url-row .oo-ui-textInputWidget { flex: 1 1 auto; min-width: 0; } .add-example-url-row .add-example-citoid-fetch { flex: none; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* "Malûmatên çavkaniyê" section: the jêder-* fields grid + its header row, replacing the old fully-bordered "Ji Citoid an bi destan tijî bike:" box -- a lightweight top-divider + faint tint instead of a second card stacked inside the form panel above. */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative left/right margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the panel's side edges; NOT bled to the bottom -- the Biweşîne/Betal bike/Paqij bike row comes right after this section (a sibling, not nested inside it) and needs its own normal spacing above it. */ padding: 1em 1.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields (Book/Journal/Website): a real 12-column grid, each field spanning its own jederDefs[key].span columns (see _setSourceType in the JS) instead of the old inline-block width tiers. */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width inside its grid track */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the example text and free-text source/URL fields (the top two-column section) a bit larger for readability than the small bibliographic sub-fields below. */ .add-example-top-col textarea { font-size: 1.05em; } /* Main action row (Biweşîne/Betal bike/Paqij bike): light gap between buttons plus a top border to separate from the fields above; scoped to this class rather than .oo-ui-horizontalLayout generally, since that also matches the small Citoid button row, which doesn't need this treatment. */ .add-example-main-buttons { margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the two-column top section to one column -- 5fr next to 7fr leaves the right column (dropdown + link field) too cramped once the page itself is phone-width, on top of whatever indentation the list this form is attached to already adds. */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: the framed panel gets its own padding on top of the page's, which can push things past the viewport; also loosen the jêder-* fields grid to 2 columns so narrow-span fields (Sal, Çap, ...) don't end up too cramped to use. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } mb8tcb7e6tu00a2jnv5xse4h5i6o30q 6342334 6342332 2026-08-25T06:36:13Z Wikihez 7344 6342334 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. */ .add-example-form { max-width: 640px; width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "Nimûneyeke bikaranînê lê zêde bike" link once its form is open (see Form#setVisible in the JS) -- stays inside the same bullet <li> the link lived in, matching the "Form redesign for Kurdish example" mockup where the title sits inside the bulleted list and the actual form panel is a separate full-width block below it, not squeezed into the list's own narrow indent. */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text (+ translation/transliteration) on the left, source-type + link/Citoid on the right. Collapses to one column on narrow screens (see the media query below). */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text (URLs, DOIs) shrink instead of overflowing the grid track */ } /* URL input + inline "Bi otomatîk tijî bike" fetch button, side by side in one row (see _urlRowWidget in the JS) -- replaces the old separate framed Citoid box. */ .add-example-url-row { display: flex; gap: 8px; align-items: stretch; } .add-example-url-row .oo-ui-textInputWidget { flex: 1 1 auto; min-width: 0; } .add-example-url-row .add-example-citoid-fetch { flex: none; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* "Malûmatên çavkaniyê" section: the jêder-* fields grid + its header row, replacing the old fully-bordered "Ji Citoid an bi destan tijî bike:" box -- a lightweight top-divider + faint tint instead of a second card stacked inside the form panel above. */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative left/right margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the panel's side edges; NOT bled to the bottom -- the Biweşîne/Betal bike/Paqij bike row comes right after this section (a sibling, not nested inside it) and needs its own normal spacing above it. */ padding: 1em 1.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields (Book/Journal/Website): a real 12-column grid, each field spanning its own jederDefs[key].span columns (see _setSourceType in the JS) instead of the old inline-block width tiers. */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width inside its grid track */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the example text and free-text source/URL fields (the top two-column section) a bit larger for readability than the small bibliographic sub-fields below. */ .add-example-top-col textarea { font-size: 1.05em; } /* Main action row (Biweşîne + hint, spacer, Paqij bike, Betal bike): a plain flex <div> now (not an OOUI HorizontalLayout, which used to supply display:flex on its own -- see the JS), so display:flex is set here explicitly. Light gap between items plus a top border to separate from the fields above. */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the two-column top section to one column -- 5fr next to 7fr leaves the right column (dropdown + link field) too cramped once the page itself is phone-width, on top of whatever indentation the list this form is attached to already adds. */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: the framed panel gets its own padding on top of the page's, which can push things past the viewport; also loosen the jêder-* fields grid to 2 columns so narrow-span fields (Sal, Çap, ...) don't end up too cramped to use. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } 9y3d3rspitk0pxk2lvci9twgythyzj5 6342417 6342334 2026-08-25T08:52:33Z Wikihez 7344 6342417 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. No max-width -- the panel is a sibling of the citation <ul> (see the JS) specifically so it can stretch to whatever width the page allows instead of being squeezed by the list's indentation; capping it at a fixed px here would undo that from the outside. */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "Nimûneyeke bikaranînê lê zêde bike" link once its form is open (see Form#setVisible in the JS) -- stays inside the same bullet <li> the link lived in, matching the "Form redesign for Kurdish example" mockup where the title sits inside the bulleted list and the actual form panel is a separate full-width block below it, not squeezed into the list's own narrow indent. */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text (+ translation/transliteration) on the left, source-type + link/Citoid on the right. Collapses to one column on narrow screens (see the media query below). */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text (URLs, DOIs) shrink instead of overflowing the grid track */ } /* URL input on its own line, "Bi otomatîk tijî bike" fetch button on its own line below (see _urlRowWidget in the JS) -- side-by-side left the URL input too narrow to read/type into once the button's own label claimed its fixed content width. */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* "Malûmatên çavkaniyê" section: the jêder-* fields grid + its header row, replacing the old fully-bordered "Ji Citoid an bi destan tijî bike:" box -- a lightweight top-divider + faint tint instead of a second card stacked inside the form panel above. */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative left/right margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the panel's side edges; NOT bled to the bottom -- the Biweşîne/Betal bike/Paqij bike row comes right after this section (a sibling, not nested inside it) and needs its own normal spacing above it. */ padding: 1em 1.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields (Book/Journal/Website): a real 12-column grid, each field spanning its own jederDefs[key].span columns (see _setSourceType in the JS) instead of the old inline-block width tiers. */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width inside its grid track */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the example text and free-text source/URL fields (the top two-column section) a bit larger for readability than the small bibliographic sub-fields below. */ .add-example-top-col textarea { font-size: 1.05em; } /* Main action row (Biweşîne + hint, spacer, Paqij bike, Betal bike): a plain flex <div> now (not an OOUI HorizontalLayout, which used to supply display:flex on its own -- see the JS), so display:flex is set here explicitly. Light gap between items plus a top border to separate from the fields above. */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the two-column top section to one column -- 5fr next to 7fr leaves the right column (dropdown + link field) too cramped once the page itself is phone-width, on top of whatever indentation the list this form is attached to already adds. */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: the framed panel gets its own padding on top of the page's, which can push things past the viewport; also loosen the jêder-* fields grid to 2 columns so narrow-span fields (Sal, Çap, ...) don't end up too cramped to use. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } g8dp1zclv8cqyva5d5x5dfx36mu8tsy 6342419 6342417 2026-08-25T08:54:53Z Wikihez 7344 6342419 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Overall form panel: a white/near-white card lifted off the page with a soft shadow rather than a flat grey fill + hard border, so it reads as one modern panel instead of an old-style boxed form. No max-width -- the panel is a sibling of the citation <ul> (see the JS) specifically so it can stretch to whatever width the page allows instead of being squeezed by the list's indentation; capping it at a fixed px here would undo that from the outside. */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Shadows barely read on dark backgrounds, so this leans more on the border for separation, plus a darker/tighter shadow just to lift it off the page. */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "Nimûneyeke bikaranînê lê zêde bike" link once its form is open (see Form#setVisible in the JS) -- stays inside the same bullet <li> the link lived in, matching the "Form redesign for Kurdish example" mockup where the title sits inside the bulleted list and the actual form panel is a separate full-width block below it, not squeezed into the list's own narrow indent. */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text (+ translation/transliteration) on the left, source-type + link/Citoid on the right. Collapses to one column on narrow screens (see the media query below). */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text (URLs, DOIs) shrink instead of overflowing the grid track */ } /* URL input on its own line, "Bi otomatîk tijî bike" fetch button on its own line below (see _urlRowWidget in the JS) -- side-by-side left the URL input too narrow to read/type into once the button's own label claimed its fixed content width. */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* "Malûmatên çavkaniyê" section: the jêder-* fields grid + its header row, replacing the old fully-bordered "Ji Citoid an bi destan tijî bike:" box -- a lightweight top-divider + faint tint instead of a second card stacked inside the form panel above. */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); /* Negative left/right margin matches .add-example-form's own padding (1.25em) so the tint bleeds to the panel's side edges; NOT bled to the bottom -- the Biweşîne/Betal bike/Paqij bike row comes right after this section (a sibling, not nested inside it) and needs its own normal spacing above it. */ padding: 1em 1.25em; margin: 0.75em -1.25em 0; } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields (Book/Journal/Website): a real 12-column grid, each field spanning its own jederDefs[key].span columns (see _setSourceType in the JS) instead of the old inline-block width tiers. align-items: start (matches .add-example-top-grid above) -- without it, grid's default "stretch" lets fields sharing a row drift to different vertical positions instead of all starting flush at the row's top (visible as one field's label/box sitting visibly lower than its row-mates, e.g. Terciman next to Nivîskar/Websîte). */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width inside its grid track */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Make the example text and free-text source/URL fields (the top two-column section) a bit larger for readability than the small bibliographic sub-fields below. */ .add-example-top-col textarea { font-size: 1.05em; } /* Main action row (Biweşîne + hint, spacer, Paqij bike, Betal bike): a plain flex <div> now (not an OOUI HorizontalLayout, which used to supply display:flex on its own -- see the JS), so display:flex is set here explicitly. Light gap between items plus a top border to separate from the fields above. */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* Loading spinner: plain CSS, not a Commons image, so it needs no network request and matches dark/light mode. */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the two-column top section to one column -- 5fr next to 7fr leaves the right column (dropdown + link field) too cramped once the page itself is phone-width, on top of whatever indentation the list this form is attached to already adds. */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: the framed panel gets its own padding on top of the page's, which can push things past the viewport; also loosen the jêder-* fields grid to 2 columns so narrow-span fields (Sal, Çap, ...) don't end up too cramped to use. */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Ported from start.js/styles.css: warns when the example/translation/transcription boxes contain a literal linebreak, which submit() converts to <br> (see nlToBr in the JS) rather than letting it silently corrupt the single-line "#*" wikitext. */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop layer behind the textarea, mirroring its text with a marker at each break point; font/padding/box-sizing/line-height are copied from the textarea via computed style (see syncLinebreakBackdropMetrics in the JS), not shared CSS classes, since most of the textarea's own sizing rules target "textarea", which this <div> wouldn't match. Created lazily, only once a textarea actually has a break. */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Raises the textarea itself above its backdrop and makes its own background see-through, so the backdrop's break marker shows through behind the typed text. */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed right after each line that's followed by an actual typed/pasted linebreak. */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } f6bj2jhbezhv766a879vhpjymm9bjp5 6342425 6342419 2026-08-25T09:14:45Z Wikihez 7344 6342425 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border, radius, and shadow. No max-width -- stretches to the page's own width. */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Dark mode: lean on the border, not the shadow, for separation */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } k34zpigx3xoyrbo153o1334ofbghq9y 6342426 6342425 2026-08-25T09:17:24Z Wikihez 7344 6342426 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border, radius, and shadow. No max-width -- stretches to the page's own width. */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Dark mode: lean on the border, not the shadow, for separation */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ margin-top: 0 !important; /* overrides OOUI's own stacking margin, not wanted between fields sharing a grid row */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } 7ru77rgc9vjbsc6pmew0dpxofd96gu7 6342462 6342426 2026-08-25T09:58:27Z Wikihez 7344 6342462 css text/css /* [[Şablon:bênimûne]]: nivîsa "Nimûneyekê bide" tê jê birin, ne hewce ye */ .mw-parser-output li:has(> .benimune) { display: none; } /* [[fr:MediaWiki:Gadget-wikt.add-examples.css ]] */ .add-example-form .oo-ui-inputWidget-input { font-family: monospace !important; font-size: 1.2em; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border, radius, and shadow. No max-width -- stretches to the page's own width. */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; border: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); border-radius: 8px; background-color: var(--background-color-base, #fff); box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1); } html.skin-theme-clientpref-night .add-example-form { background-color: var(--background-color-base, #101418); border-color: rgba(255, 255, 255, 0.08); /* Dark mode: lean on the border, not the shadow, for separation */ box-shadow: 0 1px 4px rgba(0, 0, 0, 0.5); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-weight: 700; font-size: 1.05em; color: var(--color-emphasized, #101418); } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--border-color-subtle, rgba(0, 0, 0, 0.08)); background-color: var(--background-color-interactive-subtle, rgba(0, 0, 0, 0.04)); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } html.skin-theme-clientpref-night .add-example-jeder-section { border-top-color: rgba(255, 255, 255, 0.08); background-color: rgba(255, 255, 255, 0.05); } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } .add-example-jeder-header-label { font-size: 13.5px; font-weight: 600; color: var(--color-subtle, #54595d); } .add-example-jeder-header .add-example-citoid-clear { font-size: 12px; } .add-example-jeder-header .add-example-citoid-clear .oo-ui-iconElement-icon { min-width: 14px; min-height: 14px; background-size: 14px; } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ margin-top: 0 !important; /* overrides OOUI's own stacking margin, not wanted between fields sharing a grid row */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header, .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--border-color-subtle, #c8ccd1); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-size: 12.5px; color: var(--color-subtle, #72777d); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--border-color-subtle, #c8ccd1); border-top-color: var(--color-progressive, #36c); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } da5y3rjg2jeak19mz06yea36l4lovri 6342498 6342462 2026-08-25T10:15:34Z Wikihez 7344 6342498 css text/css /* Design tokens shared with the "Entry wizard" redesign, so gadgets read as one site: warm parchment card palette, Spectral/IBM Plex Sans/IBM Plex Mono type, no drop shadows, pill-shaped action buttons. */ @import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,600;1,400&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap'); :root { --wikt-ae-font-sans: 'IBM Plex Sans', system-ui, sans-serif; --wikt-ae-font-mono: 'IBM Plex Mono', monospace; --wikt-ae-card-bg: #fffdf8; --wikt-ae-card-border: #e6dfd2; --wikt-ae-divider: #efe8db; --wikt-ae-input-border: #cfc7b8; --wikt-ae-input-bg: #fff; --wikt-ae-text: #1c1a17; --wikt-ae-text-body: #4a453d; --wikt-ae-text-label: #3d3830; --wikt-ae-text-muted: #8a8378; --wikt-ae-text-placeholder: #b3ab9e; --wikt-ae-accent: #2a5db0; --wikt-ae-accent-hover: #1c4685; --wikt-ae-accent-bg: #eef2fa; --wikt-ae-accent-border: #d5def0; --wikt-ae-destructive: #9c3a28; --wikt-ae-section-bg: #fbf8f1; } html.skin-theme-clientpref-night { --wikt-ae-card-bg: var(--background-color-base, #101418); --wikt-ae-card-border: rgba(255, 255, 255, 0.08); --wikt-ae-divider: rgba(255, 255, 255, 0.06); --wikt-ae-input-border: rgba(255, 255, 255, 0.2); --wikt-ae-input-bg: rgba(255, 255, 255, 0.04); --wikt-ae-text: #f0ece4; --wikt-ae-text-body: #cfc7b8; --wikt-ae-text-label: #e4ddd0; --wikt-ae-text-muted: #a89f8f; --wikt-ae-text-placeholder: #6b6459; --wikt-ae-accent: #6ea1e0; --wikt-ae-accent-hover: #8fb6e8; --wikt-ae-accent-bg: rgba(110, 161, 224, 0.15); --wikt-ae-accent-border: rgba(110, 161, 224, 0.35); --wikt-ae-destructive: #d97a63; --wikt-ae-section-bg: rgba(255, 255, 255, 0.03); } .add-example-form .oo-ui-inputWidget-input { font-family: var(--wikt-ae-font-sans) !important; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border and radius, no shadow (matches the Entry wizard "no shadows" rule) */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; font-family: var(--wikt-ae-font-sans); color: var(--wikt-ae-text); border: 1px solid var(--wikt-ae-card-border); border-radius: 14px; background-color: var(--wikt-ae-card-bg); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-family: var(--wikt-ae-font-sans); font-weight: 600; font-size: 13.5px; color: var(--wikt-ae-text-label); } /* Field labels: consistent weight/size/color across all OOUI FieldLayouts in the form */ .add-example-form .oo-ui-fieldLayout-header label { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; font-weight: 500; color: var(--wikt-ae-text-label); } /* Text inputs: shared border/radius/background, focus ring instead of OOUI's default */ .add-example-form .oo-ui-textInputWidget input, .add-example-form .oo-ui-textInputWidget textarea { border-color: var(--wikt-ae-input-border) !important; border-radius: 10px !important; background-color: var(--wikt-ae-input-bg) !important; } .add-example-form .oo-ui-textInputWidget input:focus, .add-example-form .oo-ui-textInputWidget textarea:focus { border-color: var(--wikt-ae-accent) !important; box-shadow: 0 0 0 3px var(--wikt-ae-accent-bg) !important; } .add-example-form .oo-ui-textInputWidget input { min-height: 44px; } /* Action buttons: pill-shaped, accent-colored to match the Entry wizard's Bişîne/secondary buttons */ .add-example-form .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { border-radius: 999px !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent) !important; border-color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary:hover .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-hover) !important; border-color: var(--wikt-ae-accent-hover) !important; } .add-example-form .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive:not(.oo-ui-flaggedElement-primary) .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-bg) !important; border-color: var(--wikt-ae-accent-border) !important; color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button { color: var(--wikt-ae-destructive) !important; } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--wikt-ae-divider); background-color: var(--wikt-ae-section-bg); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } /* Section eyebrow style, matching the Entry wizard's small-caps section labels */ .add-example-jeder-header-label { font-family: var(--wikt-ae-font-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--wikt-ae-text-muted); } .add-example-jeder-header .add-example-citoid-clear { font-size: 12px; } .add-example-jeder-header .add-example-citoid-clear .oo-ui-iconElement-icon { min-width: 14px; min-height: 14px; background-size: 14px; } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ margin-top: 0 !important; /* overrides OOUI's own stacking margin, not wanted between fields sharing a grid row */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--wikt-ae-divider); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; color: var(--wikt-ae-text-muted); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--wikt-ae-input-border); border-top-color: var(--wikt-ae-accent); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } e1qa6fkmu10c5ghzarl7tgf0mk6j4ep 6342506 6342498 2026-08-25T10:16:44Z Wikihez 7344 6342506 css text/css /* Design tokens shared with the "Entry wizard" redesign, so gadgets read as one site: warm parchment card palette, Spectral/IBM Plex Sans/IBM Plex Mono type, no drop shadows, pill-shaped action buttons. */ @import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,600;1,400&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap'); :root { --wikt-ae-font-sans: 'IBM Plex Sans', system-ui, sans-serif; --wikt-ae-font-mono: 'IBM Plex Mono', monospace; --wikt-ae-card-bg: #fffdf8; --wikt-ae-card-border: #e6dfd2; --wikt-ae-divider: #efe8db; --wikt-ae-input-border: #cfc7b8; --wikt-ae-input-bg: #fff; --wikt-ae-text: #1c1a17; --wikt-ae-text-body: #4a453d; --wikt-ae-text-label: #3d3830; --wikt-ae-text-muted: #8a8378; --wikt-ae-text-placeholder: #b3ab9e; --wikt-ae-accent: #2a5db0; --wikt-ae-accent-hover: #1c4685; --wikt-ae-accent-bg: #eef2fa; --wikt-ae-accent-border: #d5def0; --wikt-ae-destructive: #9c3a28; --wikt-ae-section-bg: #fbf8f1; } html.skin-theme-clientpref-night { --wikt-ae-card-bg: var(--background-color-base, #101418); --wikt-ae-card-border: rgba(255, 255, 255, 0.08); --wikt-ae-divider: rgba(255, 255, 255, 0.06); --wikt-ae-input-border: rgba(255, 255, 255, 0.2); --wikt-ae-input-bg: rgba(255, 255, 255, 0.04); --wikt-ae-text: #f0ece4; --wikt-ae-text-body: #cfc7b8; --wikt-ae-text-label: #e4ddd0; --wikt-ae-text-muted: #a89f8f; --wikt-ae-text-placeholder: #6b6459; --wikt-ae-accent: #6ea1e0; --wikt-ae-accent-hover: #8fb6e8; --wikt-ae-accent-bg: rgba(110, 161, 224, 0.15); --wikt-ae-accent-border: rgba(110, 161, 224, 0.35); --wikt-ae-destructive: #d97a63; --wikt-ae-section-bg: rgba(255, 255, 255, 0.03); } .add-example-form .oo-ui-inputWidget-input { font-family: var(--wikt-ae-font-sans) !important; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border and radius, no shadow (matches the Entry wizard "no shadows" rule) */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; font-family: var(--wikt-ae-font-sans); color: var(--wikt-ae-text); border: 1px solid var(--wikt-ae-card-border); border-radius: 14px; background-color: var(--wikt-ae-card-bg); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-family: var(--wikt-ae-font-sans); font-weight: 600; font-size: 13.5px; color: var(--wikt-ae-text-label); } /* Field labels: consistent weight/size/color across all OOUI FieldLayouts in the form */ .add-example-form .oo-ui-fieldLayout-header label { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; font-weight: 500; color: var(--wikt-ae-text-label); } /* Text inputs: shared border/radius/background, focus ring instead of OOUI's default */ .add-example-form .oo-ui-textInputWidget input, .add-example-form .oo-ui-textInputWidget textarea { border-color: var(--wikt-ae-input-border) !important; border-radius: 10px !important; background-color: var(--wikt-ae-input-bg) !important; } .add-example-form .oo-ui-textInputWidget input:focus, .add-example-form .oo-ui-textInputWidget textarea:focus { border-color: var(--wikt-ae-accent) !important; box-shadow: 0 0 0 3px var(--wikt-ae-accent-bg) !important; } .add-example-form .oo-ui-textInputWidget input { min-height: 44px; } /* Action buttons: pill-shaped, accent-colored to match the Entry wizard's Bişîne/secondary buttons */ .add-example-form .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { border-radius: 999px !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent) !important; border-color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary:hover .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-hover) !important; border-color: var(--wikt-ae-accent-hover) !important; } .add-example-form .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive:not(.oo-ui-flaggedElement-primary) .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-bg) !important; border-color: var(--wikt-ae-accent-border) !important; color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button { color: var(--wikt-ae-destructive) !important; } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--wikt-ae-divider); background-color: var(--wikt-ae-section-bg); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } /* Section eyebrow style, matching the Entry wizard's small-caps section labels */ .add-example-jeder-header-label { font-family: var(--wikt-ae-font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--wikt-ae-text-muted); } .add-example-jeder-header .add-example-citoid-clear { font-size: 12px; } .add-example-jeder-header .add-example-citoid-clear .oo-ui-iconElement-icon { min-width: 14px; min-height: 14px; background-size: 14px; } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ margin-top: 0 !important; /* overrides OOUI's own stacking margin, not wanted between fields sharing a grid row */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--wikt-ae-divider); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; color: var(--wikt-ae-text-muted); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--wikt-ae-input-border); border-top-color: var(--wikt-ae-accent); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } 643u9p5cvmhgaqaopc3ld6oek2eo0hn 6342538 6342506 2026-08-25T10:50:55Z Wikihez 7344 6342538 css text/css /* Design tokens shared with the "Entry wizard" redesign, so gadgets read as one site: warm parchment card palette, Spectral/IBM Plex Sans/IBM Plex Mono type, no drop shadows, pill-shaped action buttons. */ @import url('https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,300;0,400;0,600;1,400&family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;1,400&family=IBM+Plex+Mono:wght@400;500&display=swap'); :root { --wikt-ae-font-sans: 'IBM Plex Sans', system-ui, sans-serif; --wikt-ae-font-mono: 'IBM Plex Mono', monospace; --wikt-ae-card-bg: #fffdf8; --wikt-ae-card-border: #e6dfd2; --wikt-ae-divider: #efe8db; --wikt-ae-input-border: #cfc7b8; --wikt-ae-input-bg: #fff; --wikt-ae-text: #1c1a17; --wikt-ae-text-body: #4a453d; --wikt-ae-text-label: #3d3830; --wikt-ae-text-muted: #8a8378; --wikt-ae-text-placeholder: #b3ab9e; --wikt-ae-accent: #2a5db0; --wikt-ae-accent-hover: #1c4685; --wikt-ae-accent-bg: #eef2fa; --wikt-ae-accent-border: #d5def0; --wikt-ae-destructive: #9c3a28; --wikt-ae-section-bg: #fbf8f1; } html.skin-theme-clientpref-night { --wikt-ae-card-bg: var(--background-color-base, #101418); --wikt-ae-card-border: rgba(255, 255, 255, 0.08); --wikt-ae-divider: rgba(255, 255, 255, 0.06); --wikt-ae-input-border: rgba(255, 255, 255, 0.2); --wikt-ae-input-bg: rgba(255, 255, 255, 0.04); --wikt-ae-text: #f0ece4; --wikt-ae-text-body: #cfc7b8; --wikt-ae-text-label: #e4ddd0; --wikt-ae-text-muted: #a89f8f; --wikt-ae-text-placeholder: #6b6459; --wikt-ae-accent: #6ea1e0; --wikt-ae-accent-hover: #8fb6e8; --wikt-ae-accent-bg: rgba(110, 161, 224, 0.15); --wikt-ae-accent-border: rgba(110, 161, 224, 0.35); --wikt-ae-destructive: #d97a63; --wikt-ae-section-bg: rgba(255, 255, 255, 0.03); } /* {{bênimûne}}'s own "Nimûneyekê bide" prompt is redundant once this gadget's own button renders in its place */ .mw-parser-output li:has(> .benimune) { display: none; } .add-example-form .oo-ui-inputWidget-input { font-family: var(--wikt-ae-font-sans) !important; } .add-example-form .add-example-fieldset { margin-bottom: 1em; } /* Form panel: card with border and radius, no shadow (matches the Entry wizard "no shadows" rule) */ .add-example-form { width: 100%; box-sizing: border-box; margin-top: 0.5em; padding: 1.25em; font-family: var(--wikt-ae-font-sans); color: var(--wikt-ae-text); border: 1px solid var(--wikt-ae-card-border); border-radius: 14px; background-color: var(--wikt-ae-card-bg); } /* Title shown in place of the "add example" link while its form is open */ .add-example-form-title { font-family: var(--wikt-ae-font-sans); font-weight: 600; font-size: 13.5px; color: var(--wikt-ae-text-label); } /* Field labels: consistent weight/size/color across all OOUI FieldLayouts in the form */ .add-example-form .oo-ui-fieldLayout-header label { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; font-weight: 500; color: var(--wikt-ae-text-label); } /* Text inputs: shared border/radius/background, focus ring instead of OOUI's default */ .add-example-form .oo-ui-textInputWidget input, .add-example-form .oo-ui-textInputWidget textarea { border-color: var(--wikt-ae-input-border) !important; border-radius: 10px !important; background-color: var(--wikt-ae-input-bg) !important; } .add-example-form .oo-ui-textInputWidget input:focus, .add-example-form .oo-ui-textInputWidget textarea:focus { border-color: var(--wikt-ae-accent) !important; box-shadow: 0 0 0 3px var(--wikt-ae-accent-bg) !important; } .add-example-form .oo-ui-textInputWidget input { min-height: 44px; } /* Action buttons: pill-shaped, accent-colored to match the Entry wizard's Bişîne/secondary buttons */ .add-example-form .oo-ui-buttonElement-framed > .oo-ui-buttonElement-button { border-radius: 999px !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent) !important; border-color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-progressive.oo-ui-flaggedElement-primary:hover .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-hover) !important; border-color: var(--wikt-ae-accent-hover) !important; } .add-example-form .oo-ui-buttonElement-framed.oo-ui-flaggedElement-progressive:not(.oo-ui-flaggedElement-primary) .oo-ui-buttonElement-button { background-color: var(--wikt-ae-accent-bg) !important; border-color: var(--wikt-ae-accent-border) !important; color: var(--wikt-ae-accent) !important; } .add-example-form .oo-ui-flaggedElement-destructive .oo-ui-buttonElement-button { color: var(--wikt-ae-destructive) !important; } /* Two-column top section: example text left, source type/link right; collapses to one column below 640px */ .add-example-top-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 16px 20px; align-items: start; } .add-example-top-col { display: flex; flex-direction: column; gap: 12px; min-width: 0; /* lets long unbreakable text shrink instead of overflowing */ } /* URL input and Citoid fetch button, each on its own line */ .add-example-url-row { display: flex; flex-direction: column; align-items: stretch; gap: 8px; } .add-example-url-row .oo-ui-textInputWidget { width: 100%; } .add-example-url-row .add-example-citoid-fetch { align-self: flex-start; } .add-example-citoid-success { font-size: 0.92em; color: var(--wikt-palette-green6, #14866d); } /* Source-info section: "Malûmatên çavkaniyê" header + the jêder-* fields grid */ .add-example-jeder-section { border-top: 1px solid var(--wikt-ae-divider); background-color: var(--wikt-ae-section-bg); padding: 1em 1.25em; margin: 0.75em -1.25em 0; /* bleeds tint to the panel's side edges only */ } .add-example-jeder-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 0.6em; } /* Section eyebrow style, matching the Entry wizard's small-caps section labels */ .add-example-jeder-header-label { font-family: var(--wikt-ae-font-mono); font-size: 11px; letter-spacing: 0.12em; color: var(--wikt-ae-text-muted); } .add-example-jeder-header .add-example-citoid-clear { font-size: 12px; } .add-example-jeder-header .add-example-citoid-clear .oo-ui-iconElement-icon { min-width: 14px; min-height: 14px; background-size: 14px; } /* jêder-* template fields: 12-column grid, each field spans its own jederDefs[key].span columns */ .add-example-jeder-fields { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4px 12px; align-items: start; } .add-example-jeder-fields .oo-ui-fieldLayout { min-width: 0; /* lets a field shrink below its content's natural width */ margin-top: 0 !important; /* overrides OOUI's own stacking margin, not wanted between fields sharing a grid row */ } .add-example-field-span-1 { grid-column: span 1; } .add-example-field-span-2 { grid-column: span 2; } .add-example-field-span-3 { grid-column: span 3; } .add-example-field-span-4 { grid-column: span 4; } .add-example-field-span-5 { grid-column: span 5; } .add-example-field-span-6 { grid-column: span 6; } .add-example-field-span-12 { grid-column: span 12; } .add-example-jeder-fields .oo-ui-fieldLayout-header label { font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget { max-width: 100%; width: 100%; font-size: 0.95em; } .add-example-jeder-fields .oo-ui-textInputWidget input, .add-example-jeder-fields .oo-ui-textInputWidget textarea { font-size: 0.95em; padding: 4px 8px; min-height: 2.2em; line-height: 1.4; resize: vertical; } /* Larger font for the top-section textareas than the bibliographic sub-fields below */ .add-example-top-col textarea { font-size: 1.05em; } /* Bottom action row: Biweşîne + hint, spacer, Paqij bike, Betal bike */ .add-example-main-buttons { display: flex; align-items: center; margin-top: 0.75em; padding-top: 0.75em; border-top: 1px solid var(--wikt-ae-divider); gap: 0.5em; flex-wrap: wrap; /* keep buttons from overflowing on narrow screens */ } .add-example-ready-hint { font-family: var(--wikt-ae-font-sans); font-size: 12.5px; color: var(--wikt-ae-text-muted); } .add-example-buttons-spacer { flex: 1 1 auto; } /* CSS-only loading spinner, matches dark/light mode */ .add-example-spinner { display: inline-block; width: 1.2em; height: 1.2em; vertical-align: middle; border: 2px solid var(--wikt-ae-input-border); border-top-color: var(--wikt-ae-accent); border-radius: 50%; animation: add-example-spin 0.8s linear infinite; } @keyframes add-example-spin { to { transform: rotate(360deg); } } /* Narrow screens: collapse the top grid to one column */ @media (max-width: 640px) { .add-example-top-grid { grid-template-columns: 1fr; } } /* Small screens: tighter padding, jêder-fields grid drops to 2 columns */ @media (max-width: 480px) { .add-example-form { padding: 0.75em; } .add-example-jeder-section { margin-left: -0.75em; margin-right: -0.75em; } .add-example-jeder-fields { grid-template-columns: repeat(2, minmax(0, 1fr)); } .add-example-jeder-fields [class*="add-example-field-span-"] { grid-column: span 1; } .add-example-jeder-fields .add-example-field-span-12 { grid-column: span 2; } } /* Warns when the example/translation/transcription text has a literal linebreak */ .add-example-form textarea.add-example-has-linebreak { border-color: var(--wikt-palette-yellow6, #ac6600) !important; } /* Backdrop mirrors the textarea's text with a marker at each linebreak; metrics synced from the textarea via JS */ .add-example-linebreak-backdrop { position: absolute; inset: 0; z-index: 0; margin: 0; overflow: hidden; white-space: pre-wrap; word-wrap: break-word; color: transparent; background: transparent !important; border-color: transparent !important; box-shadow: none !important; resize: none !important; pointer-events: none; display: none; } /* Textarea sits above its backdrop with a transparent background so the marker shows through */ .add-example-form textarea.add-example-has-linebreak-source { position: relative; z-index: 1; background-color: transparent !important; } /* The ↵ marker itself, placed after each line followed by a linebreak */ .add-example-linebreak-mark { background-color: var(--wikt-palette-yellow6, #ac6600); color: var(--wikt-palette-white, #fff); border-radius: 2px; } jp21yqeqf5zc81jf2cdt08lsokxde2v Bikarhêner:Şêr/soranî 2 1358817 6342226 6341881 2026-08-24T20:40:21Z Şêr 1103 '[[https://ckb.wikipedia.org/wiki/%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1]]' ket şûna rûpelê. 6342226 wikitext text/x-wiki [[https://ckb.wikipedia.org/wiki/%D9%86%DB%95%D8%B1%D9%85%D8%A7%D9%85%DB%8E%D8%B1]] ftocpe1lwjywd6sm8nnmcyw8k0nsbxg 6342345 6342226 2026-08-25T08:24:23Z Şêr 1103 6342345 wikitext text/x-wiki aloz kirdin asîm aşpez awale axîret bała bijardin bizûtnewe delêt dellêt dûcarî gaw gowar gutin gwêçke hał hawjîn herzale herzekar hêtûn keban kêwî kolare kwêr meła mêjûnasî mirdar mirdin mîwan nał naman- nat- natan- nay- nayan- nem- neman- net- netan- ney- neyan- nîm pêgeştû pêkewe qisekirdin romanewanî romannûsî ronak runak runakî siłam siław tał tarîk tarîkî telekebaz trê wiłatparêz willat wutin xał załim ئابروو ئابۆر ئاپتەر ئاتەش ئاخاوتن ئاخر ئاخلێف ئاخوون ئاخێو ئادەی! ئاراستە ئارمووش ئارەق ئاژاڵ ئاژاوە ئاسایی ئاساییش ئاستەم ئاسرمە ئاسەوار ئاسوودە ئاسوون ئاسۆک ئاسیم ئاسیو ئاشاخە ئاشپەزخانە ئاشت ئاشچی ئاشخانە ئاشنا ئافرەت ئافەریدە ئاقل ئاکار ئاکام ئال ئالف ئاڵتوون ئاڵووگۆز ئاڵووگۆڕ ئاڵۆز ئام ئامادە ئامار ئاماژ ئاماسان ئامان! ئامراز ئامسەر ئامۆزا ئامۆژن ئامێر ئاھەنگ ئاوا ئاواز ئاواڵە ئاور ئاوزەنگی ئاوساندن ئاوھا ئاوەدان ئاوەدانی ئاوەر ئاوەرێژ ئاوەژوو ئاوەندیار ئایا؟ ئایندە ئایین ئەبلەق ئەبیاڵ ئەبێ ئەتک ئەتوون ئەجزاجی ئەجندا ئەدی! ئەدی؟ ئەرامەندە ئەرج ئەرز ئەرک ئەرە ئەزبۆلە ئەژدەھا ئەژماردن ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا 8zfzdrhgt62byxo8sahkka47pzkvvym 6342346 6342345 2026-08-25T08:24:37Z Şêr 1103 6342346 wikitext text/x-wiki ئابروو ئابۆر ئاپتەر ئاتەش ئاخاوتن ئاخر ئاخلێف ئاخوون ئاخێو ئادەی! ئاراستە ئارمووش ئارەق ئاژاڵ ئاژاوە ئاسایی ئاساییش ئاستەم ئاسرمە ئاسەوار ئاسوودە ئاسوون ئاسۆک ئاسیم ئاسیو ئاشاخە ئاشپەزخانە ئاشت ئاشچی ئاشخانە ئاشنا ئافرەت ئافەریدە ئاقل ئاکار ئاکام ئال ئالف ئاڵتوون ئاڵووگۆز ئاڵووگۆڕ ئاڵۆز ئام ئامادە ئامار ئاماژ ئاماسان ئامان! ئامراز ئامسەر ئامۆزا ئامۆژن ئامێر ئاھەنگ ئاوا ئاواز ئاواڵە ئاور ئاوزەنگی ئاوساندن ئاوھا ئاوەدان ئاوەدانی ئاوەر ئاوەرێژ ئاوەژوو ئاوەندیار ئایا؟ ئایندە ئایین ئەبلەق ئەبیاڵ ئەبێ ئەتک ئەتوون ئەجزاجی ئەجندا ئەدی! ئەدی؟ ئەرامەندە ئەرج ئەرز ئەرک ئەرە ئەزبۆلە ئەژدەھا ئەژماردن ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا 4pivox1ef0es4opno2zlv43kms3iedd 6342347 6342346 2026-08-25T08:28:34Z Şêr 1103 6342347 wikitext text/x-wiki ئابروو ئابۆر ئاپتەر ئاتەش ئاخاوتن ئاخر ئاخلێف ئاخوون ئاخێو ئادەی! ئاراستە ئارمووش ئارەق ئاژاڵ ئاژاوە ئاسایی ئاساییش ئاستەم ئاسرمە ئاسەوار ئاسوودە ئاسوون ئاسۆک ئاسیم ئاسیو ئاشاخە ئاشپەزخانە ئاشت ئاشچی ئاشخانە ئاشنا ئافرەت ئافەریدە ئاقل ئاکار ئاکام ئال ئالف ئاڵتوون ئاڵووگۆز ئاڵووگۆڕ ئاڵۆز ئام ئامادە ئامار ئاماژ ئاماسان ئامان! ئامراز ئامسەر ئامۆزا ئامۆژن ئامێر ئاھەنگ ئاوا ئاواز ئاواڵە ئاور ئاوزەنگی ئاوساندن ئاوھا ئاوەدان ئاوەدانی ئاوەر ئاوەرێژ ئاوەژوو ئاوەندیار ئایا؟ ئایندە ئایین ئەبلەق ئەبیاڵ ئەبێ ئەتک ئەتوون ئەجزاجی ئەجندا ئەدی! ئەدی؟ ئەرامەندە ئەرج ئەرز ئەرک ئەرە ئەزبۆلە ئەژدەھا ئەژماردن ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا { "ئابروو": "Navdêr", "ئابۆر": "Navdêr", "ئاپتەر": "Navdêr", "ئاتەش": "Navdêr", "ئاخاوتن": "Lêker", "ئاخر": "Rengdêr", "ئاخلێف": "Navdêr", "ئاخوون": "Navdêr", "ئاخێو": "Navdêr", "ئادەی!": "Baneşan", "ئاراستە": "Navdêr", "ئارمووش": "Navdêr", "ئارەق": "Navdêr", "ئاژاڵ": "Navdêr", "ئاژاوە": "Navdêr", "ئاسایی": "Rengdêr", "ئاساییش": "Navdêr", "ئاستەم": "Rengdêr", "ئاسرمە": "Navdêr", "ئاسەوار": "Navdêr", "ئاسوودە": "Rengdêr", "ئاسوون": "Navdêr", "ئاسۆک": "Navdêr", "ئاسیم": "Rengdêr", "ئاسیو": "Navdêr", "ئاشاخە": "Navdêr", "ئاشپەزخانە": "Navdêr", "ئاشت": "Rengdêr", "ئاشچی": "Navdêr", "ئاشخانە": "Navdêr", "ئاشنا": "Rengdêr", "ئافرەت": "Navdêr", "ئافەریدە": "Navdêr", "ئاقل": "Rengdêr", "ئاکار": "Navdêr", "ئاکام": "Navdêr", "ئال": "Rengdêr", "ئالف": "Navdêr", "ئاڵتوون": "Navdêr", "ئاڵووگۆز": "Navdêr", "ئاڵووگۆڕ": "Navdêr", "ئاڵۆز": "Rengdêr", "ئام": "Navdêr", "ئامادە": "Rengdêr", "ئامار": "Navdêr", "ئاماژ": "Navdêr", "ئاماسان": "Lêker", "ئامان!": "Baneşan", "ئامراز": "Navdêr", "ئامسەر": "Navdêr", "ئامۆزا": "Navdêr", "ئامۆژن": "Navdêr", "ئامێر": "Navdêr", "ئاھەنگ": "Navdêr", "ئاوا": "Hoker", "ئاواز": "Navdêr", "ئاواڵە": "Rengdêr", "ئاور": "Navdêr", "ئاوزەنگی": "Navdêr", "ئاوساندن": "Lêker", "ئاوھا": "Hoker", "ئاوەدان": "Rengdêr", "ئاوەدانی": "Navdêr", "ئاوەر": "Navdêr", "ئاوەرێژ": "Navdêr", "ئاوەژوو": "Rengdêr", "ئاوەندیار": "Navdêr", "ئایا؟": "Hoker", "ئایندە": "Navdêr", "ئایین": "Navdêr", "ئەبلەق": "Rengdêr", "ئەبیاڵ": "Navdêr", "ئەبێ": "Lêker", "ئەتک": "Navdêr", "ئەتوون": "Navdêr", "ئەجزاجی": "Navdêr", "ئەجندا": "Navdêr", "ئەدی!": "Baneşan", "ئەدی؟": "Hoker", "ئەرامەندە": "Rengdêr", "ئەرج": "Navdêr", "ئەرز": "Navdêr", "ئەرک": "Navdêr", "ئەرە": "Daçek", "ئەزبۆلە": "Navdêr", "ئەژدەھا": "Navdêr", "ئەژماردن": "Lêker", "ئەژمێر": "Navdêr", "ئەسپایی": "Hoker", "ئەستوون": "Navdêr", "ئەستۆ": "Navdêr", "ئەستی": "Navdêr", "ئەستێرک": "Navdêr", "ئەستێوڵک": "Navdêr", "ئەسکری": "Navdêr", "ئەسکوێ": "Navdêr", "ئەسڵەن": "Hoker", "ئەشک": "Navdêr", "ئەشکەنجە": "Navdêr", "ئەشیا": "Navdêr", "ئەفسانە": "Navdêr", "ئەفسەر": "Navdêr", "ئەقل": "Navdêr", "ئەگریجە": "Navdêr", "ئەلبەت": "Hoker", "ئەلمۆدە": "Navdêr", "ئەڵقە": "Navdêr", "ئەڵماس": "Navdêr", "ئەڵێ": "Lêker", "ئەمر": "Navdêr", "ئەمن": "Cînav", "ئەموست": "Navdêr", "ئەمین": "Rengdêr", "ئەنتیکە": "Rengdêr", "ئەنجام": "Navdêr", "ئەنجن": "Navdêr", "ئەنجومەن": "Navdêr", "ئەندازیار": "Navdêr", "ئەنگاو": "Navdêr", "ئەنگوور": "Navdêr", "ئەنەم": "Navdêr", "ئەھلی": "Rengdêr", "ئەوانیش": "Cînav", "ئەوجا": "Hoker", "ئەورەنگ": "Navdêr", "ئەوزار": "Navdêr", "ئەوسا": "Hoker", "ئەوە": "Cînav", "ئەوەش": "Cînav", "ئەوەندە": "Hoker", "ئەی": "Baneşan", "ئەی!": "Baneşan", "ئەینا؟": "Hoker", "ئیجا": "Hoker", "ئیختیار": "Rengdêr", "ئیرھاب": "Navdêr", "ئیرھابی": "Rengdêr", "ئیستیقالە": "Navdêr", "ئیش": "Navdêr", "ئیفتادە": "Rengdêr", "ئیم": "Navdêr", "ئیمرۆ": "Hoker", "ئیمسال": "Hoker", "ئیمشەو": "Hoker", "ئینجا": "Hoker", "بابوسکە": "Navdêr", "بابۆڵە": "Navdêr", "باپیر": "Navdêr", "باتەک": "Navdêr", "باتوو": "Navdêr", "باتی": "Daçek", "باچە": "Navdêr", "باخەڵ": "Navdêr", "بادیھەوا": "Hoker", "بارام": "Navdêr", "بارست": "Navdêr", "بارشت": "Navdêr", "بارمتە": "Navdêr", "بارە": "Navdêr", "بازد": "Navdêr", "بازوو": "Navdêr", "بازۆر": "Navdêr", "باڕ": "Navdêr", "باستانناسی": "Navdêr", "باستورمە": "Navdêr", "بافت": "Navdêr", "باڵابستە": "Rengdêr", "باڵباز": "Navdêr", "باڵۆڵە": "Navdêr", "باڵۆن": "Navdêr", "باڵێ": "Baneşan", "باڵێف": "Navdêr", "بانگردێن": "Navdêr", "بانوو": "Navdêr", "باھێر": "Navdêr", "باوک": "Navdêr", "باوەڕ": "Navdêr", "باوەقۆت": "Navdêr", "باوی": "Rengdêr", "بایست": "Navdêr", "باینجان": "Navdêr", "باینجانی ڕەش": "Navdêr", "باینجانی سوور": "Navdêr", "بایەخ": "Navdêr", "بایی": "Navdêr", "بچەژ": "Lêker", "بدوو": "Lêker", "برادەر": "Navdêr", "براژن": "Navdêr", "برای ھاوپشت": "Navdêr", "بردەمەنی": "Navdêr", "برژانگ": "Navdêr", "برژاو": "Rengdêr", "برسێتی": "Navdêr", "برغوو": "Navdêr", "برنگ": "Navdêr", "برووسکە": "Navdêr", "بریتی": "Rengdêr", "بزاڤ": "Navdêr", "بزان": "Lêker", "بزاوتن": "Lêker", "بزگور": "Navdêr", "بزووتنەوە": "Navdêr", "بڕاو": "Rengdêr", "بڕمێن": "Navdêr", "بڕوانامە": "Navdêr", "بڕۆ": "Lêker", "بڕیار": "Navdêr", "بڕێک": "Rengdêr", "بژاردن": "Lêker", "بژاردە": "Navdêr", "بژوولک": "Navdêr", "بسکە": "Navdêr", "بشێوە": "Rengdêr", "بلیمەت": "Rengdêr", "بڵح": "Rengdêr", "بڵند": "Rengdêr", "بناغە": "Navdêr", "بنچە": "Navdêr", "بنچینەیی": "Rengdêr", "بنکە": "Navdêr", "بنەما": "Navdêr", "بنەوش": "Navdêr", "بەتڵانە": "Navdêr", "بەحر": "Navdêr", "بەخت": "Navdêr", "بەخترەش": "Rengdêr", "بەختەوەر": "Rengdêr", "بەختیار": "Rengdêr", "بەخش": "Navdêr", "بەخشەندە": "Rengdêr", "بەخشەندەیی": "Navdêr", "بەد": "Rengdêr", "بەدبەخت": "Rengdêr", "بەدرەقە": "Navdêr", "بەر سەر کەسێکەوە لەوەڕان": "Lêker", "بەرایی": "Navdêr", "بەردەوک": "Navdêr", "بەرز": "Rengdêr", "بەرزە": "Rengdêr", "بەرژەوەند": "Navdêr", "بەرژەوەندی": "Navdêr", "بەرف": "Navdêr", "بەرگ": "Navdêr", "بەرگری": "Navdêr", "بەرگە": "Navdêr", "بەرگەشتە": "Rengdêr", "بەرە": "Daçek", "بەرەزە": "Navdêr", "بەرەو": "Daçek", "بەرەوژۆرکە": "Hoker", "بەرەوژێرکە": "Hoker", "بەروار": "Navdêr", "بەروودوا": "Hoker", "بەزم": "Navdêr", "بەژ": "Navdêr", "بەستن": "Lêker", "بەستە": "Navdêr", "بەسر": "Navdêr", "بەش": "Navdêr", "بەشدار": "Rengdêr", "بەفر": "Navdêr", "بەق": "Navdêr", "بەقال": "Navdêr", "بەقلیسۆک": "Navdêr", "بەل": "Navdêr", "بەلاش": "Hoker", "بەلایەن": "Navdêr", "بەلایەنی": "Hoker", "بەلەز": "Hoker", "بەلەم": "Navdêr", "بەڵا": "Navdêr", "بەڵام": "Girêdek", "بەڵگە": "Navdêr", "بەڵەد": "Rengdêr", "بەڵەک": "Rengdêr", "بەڵەیاندن": "Lêker", "بەناوبانگ": "Rengdêr", "بەند": "Navdêr", "بەندە": "Navdêr", "بەندەگی": "Navdêr", "بەنگ": "Navdêr", "بەنگکێش": "Navdêr", "بەھا": "Navdêr", "بەھارات": "Navdêr", "بەھانە": "Navdêr", "بەھر": "Navdêr", "بەھرە": "Navdêr", "بەھەشت": "Navdêr", "بەو": "Cînav", "بەوان": "Cînav", "بەیار": "Navdêr", "بەیارمەتیت": "Baneşan", "بەیاز": "Navdêr", "بەیاننامە": "Navdêr", "بەیانی": "Navdêr", "بەیچەڵ": "Navdêr", "بەیدەست": "Rengdêr", "بەینەت": "Navdêr", "بەینەتدار": "Rengdêr", "بوختان": "Navdêr", "بوخچە": "Navdêr", "بوودینە": "Navdêr", "بووردن": "Lêker", "بووژاندن": "Lêker", "بووسە": "Navdêr", "بووم": "Navdêr", "بووواردن": "Lêker", "بووێژ": "Navdêr", "بوێر": "Rengdêr", "بۆچوون": "Navdêr", "بۆران": "Navdêr", "بۆرچین": "Navdêr", "بۆردن": "Lêker", "بۆق": "Navdêr", "بۆقەتە": "Navdêr", "بۆنە": "Navdêr", "بۆینباخ": "Navdêr", "بیانوو": "Navdêr", "بیانی": "Rengdêr", "بیبن": "Navdêr", "بیبی": "Navdêr", "بیجامە": "Navdêr", "بیچم": "Navdêr", "بیراز": "Navdêr", "بیرتەسک": "Rengdêr", "بیرە": "Navdêr", "بیروورِا": "Navdêr", "بیستا": "Navdêr", "بیستراو": "Rengdêr", "بیستن": "Lêker", "بیستەر": "Navdêr", "بیستۆک": "Navdêr", "بیڤر": "Navdêr", "بێتار": "Navdêr", "بێجگە": "Daçek", "بێخ": "Navdêr", "بێخبڕ": "Rengdêr", "بێزار": "Rengdêr", "بێژار": "Navdêr", "بێسەرووشوێن": "Rengdêr", "بێشەڵان": "Navdêr", "بێگانە": "Rengdêr", "بێگومان": "Hoker", "بێلایەن": "Rengdêr", "بێلایەنی": "Navdêr", "بێنەوبەرە": "Navdêr", "بێھیوا": "Rengdêr", "بێوەژن": "Navdêr", "پابەند": "Rengdêr", "پاتری": "Navdêr", "پاچ": "Navdêr", "پاداشت": "Navdêr", "پارێزگار": "Navdêr", "پاساو": "Navdêr", "پاسەوان": "Navdêr", "پانایی": "Navdêr", "پاندان": "Navdêr" } mu7usiieobd868g1hss9jg7510u53ws 6342390 6342347 2026-08-25T08:47:25Z Şêr 1103 Kategorî:Gotarên bê kategoriya rêzimanî bi soranî 6342390 wikitext text/x-wiki [[:Kategorî:Gotarên bê kategoriya rêzimanî bi soranî]] ئابروو ئابۆر ئاپتەر ئاتەش ئاخاوتن ئاخر ئاخلێف ئاخوون ئاخێو ئادەی! ئاراستە ئارمووش ئارەق ئاژاڵ ئاژاوە ئاسایی ئاساییش ئاستەم ئاسرمە ئاسەوار ئاسوودە ئاسوون ئاسۆک ئاسیم ئاسیو ئاشاخە ئاشپەزخانە ئاشت ئاشچی ئاشخانە ئاشنا ئافرەت ئافەریدە ئاقل ئاکار ئاکام ئال ئالف ئاڵتوون ئاڵووگۆز ئاڵووگۆڕ ئاڵۆز ئام ئامادە ئامار ئاماژ ئاماسان ئامان! ئامراز ئامسەر ئامۆزا ئامۆژن ئامێر ئاھەنگ ئاوا ئاواز ئاواڵە ئاور ئاوزەنگی ئاوساندن ئاوھا ئاوەدان ئاوەدانی ئاوەر ئاوەرێژ ئاوەژوو ئاوەندیار ئایا؟ ئایندە ئایین ئەبلەق ئەبیاڵ ئەبێ ئەتک ئەتوون ئەجزاجی ئەجندا ئەدی! ئەدی؟ ئەرامەندە ئەرج ئەرز ئەرک ئەرە ئەزبۆلە ئەژدەھا ئەژماردن ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا { "ئابروو": "Navdêr", "ئابۆر": "Navdêr", "ئاپتەر": "Navdêr", "ئاتەش": "Navdêr", "ئاخاوتن": "Lêker", "ئاخر": "Rengdêr", "ئاخلێف": "Navdêr", "ئاخوون": "Navdêr", "ئاخێو": "Navdêr", "ئادەی!": "Baneşan", "ئاراستە": "Navdêr", "ئارمووش": "Navdêr", "ئارەق": "Navdêr", "ئاژاڵ": "Navdêr", "ئاژاوە": "Navdêr", "ئاسایی": "Rengdêr", "ئاساییش": "Navdêr", "ئاستەم": "Rengdêr", "ئاسرمە": "Navdêr", "ئاسەوار": "Navdêr", "ئاسوودە": "Rengdêr", "ئاسوون": "Navdêr", "ئاسۆک": "Navdêr", "ئاسیم": "Rengdêr", "ئاسیو": "Navdêr", "ئاشاخە": "Navdêr", "ئاشپەزخانە": "Navdêr", "ئاشت": "Rengdêr", "ئاشچی": "Navdêr", "ئاشخانە": "Navdêr", "ئاشنا": "Rengdêr", "ئافرەت": "Navdêr", "ئافەریدە": "Navdêr", "ئاقل": "Rengdêr", "ئاکار": "Navdêr", "ئاکام": "Navdêr", "ئال": "Rengdêr", "ئالف": "Navdêr", "ئاڵتوون": "Navdêr", "ئاڵووگۆز": "Navdêr", "ئاڵووگۆڕ": "Navdêr", "ئاڵۆز": "Rengdêr", "ئام": "Navdêr", "ئامادە": "Rengdêr", "ئامار": "Navdêr", "ئاماژ": "Navdêr", "ئاماسان": "Lêker", "ئامان!": "Baneşan", "ئامراز": "Navdêr", "ئامسەر": "Navdêr", "ئامۆزا": "Navdêr", "ئامۆژن": "Navdêr", "ئامێر": "Navdêr", "ئاھەنگ": "Navdêr", "ئاوا": "Hoker", "ئاواز": "Navdêr", "ئاواڵە": "Rengdêr", "ئاور": "Navdêr", "ئاوزەنگی": "Navdêr", "ئاوساندن": "Lêker", "ئاوھا": "Hoker", "ئاوەدان": "Rengdêr", "ئاوەدانی": "Navdêr", "ئاوەر": "Navdêr", "ئاوەرێژ": "Navdêr", "ئاوەژوو": "Rengdêr", "ئاوەندیار": "Navdêr", "ئایا؟": "Hoker", "ئایندە": "Navdêr", "ئایین": "Navdêr", "ئەبلەق": "Rengdêr", "ئەبیاڵ": "Navdêr", "ئەبێ": "Lêker", "ئەتک": "Navdêr", "ئەتوون": "Navdêr", "ئەجزاجی": "Navdêr", "ئەجندا": "Navdêr", "ئەدی!": "Baneşan", "ئەدی؟": "Hoker", "ئەرامەندە": "Rengdêr", "ئەرج": "Navdêr", "ئەرز": "Navdêr", "ئەرک": "Navdêr", "ئەرە": "Daçek", "ئەزبۆلە": "Navdêr", "ئەژدەھا": "Navdêr", "ئەژماردن": "Lêker", "ئەژمێر": "Navdêr", "ئەسپایی": "Hoker", "ئەستوون": "Navdêr", "ئەستۆ": "Navdêr", "ئەستی": "Navdêr", "ئەستێرک": "Navdêr", "ئەستێوڵک": "Navdêr", "ئەسکری": "Navdêr", "ئەسکوێ": "Navdêr", "ئەسڵەن": "Hoker", "ئەشک": "Navdêr", "ئەشکەنجە": "Navdêr", "ئەشیا": "Navdêr", "ئەفسانە": "Navdêr", "ئەفسەر": "Navdêr", "ئەقل": "Navdêr", "ئەگریجە": "Navdêr", "ئەلبەت": "Hoker", "ئەلمۆدە": "Navdêr", "ئەڵقە": "Navdêr", "ئەڵماس": "Navdêr", "ئەڵێ": "Lêker", "ئەمر": "Navdêr", "ئەمن": "Cînav", "ئەموست": "Navdêr", "ئەمین": "Rengdêr", "ئەنتیکە": "Rengdêr", "ئەنجام": "Navdêr", "ئەنجن": "Navdêr", "ئەنجومەن": "Navdêr", "ئەندازیار": "Navdêr", "ئەنگاو": "Navdêr", "ئەنگوور": "Navdêr", "ئەنەم": "Navdêr", "ئەھلی": "Rengdêr", "ئەوانیش": "Cînav", "ئەوجا": "Hoker", "ئەورەنگ": "Navdêr", "ئەوزار": "Navdêr", "ئەوسا": "Hoker", "ئەوە": "Cînav", "ئەوەش": "Cînav", "ئەوەندە": "Hoker", "ئەی": "Baneşan", "ئەی!": "Baneşan", "ئەینا؟": "Hoker", "ئیجا": "Hoker", "ئیختیار": "Rengdêr", "ئیرھاب": "Navdêr", "ئیرھابی": "Rengdêr", "ئیستیقالە": "Navdêr", "ئیش": "Navdêr", "ئیفتادە": "Rengdêr", "ئیم": "Navdêr", "ئیمرۆ": "Hoker", "ئیمسال": "Hoker", "ئیمشەو": "Hoker", "ئینجا": "Hoker", "بابوسکە": "Navdêr", "بابۆڵە": "Navdêr", "باپیر": "Navdêr", "باتەک": "Navdêr", "باتوو": "Navdêr", "باتی": "Daçek", "باچە": "Navdêr", "باخەڵ": "Navdêr", "بادیھەوا": "Hoker", "بارام": "Navdêr", "بارست": "Navdêr", "بارشت": "Navdêr", "بارمتە": "Navdêr", "بارە": "Navdêr", "بازد": "Navdêr", "بازوو": "Navdêr", "بازۆر": "Navdêr", "باڕ": "Navdêr", "باستانناسی": "Navdêr", "باستورمە": "Navdêr", "بافت": "Navdêr", "باڵابستە": "Rengdêr", "باڵباز": "Navdêr", "باڵۆڵە": "Navdêr", "باڵۆن": "Navdêr", "باڵێ": "Baneşan", "باڵێف": "Navdêr", "بانگردێن": "Navdêr", "بانوو": "Navdêr", "باھێر": "Navdêr", "باوک": "Navdêr", "باوەڕ": "Navdêr", "باوەقۆت": "Navdêr", "باوی": "Rengdêr", "بایست": "Navdêr", "باینجان": "Navdêr", "باینجانی ڕەش": "Navdêr", "باینجانی سوور": "Navdêr", "بایەخ": "Navdêr", "بایی": "Navdêr", "بچەژ": "Lêker", "بدوو": "Lêker", "برادەر": "Navdêr", "براژن": "Navdêr", "برای ھاوپشت": "Navdêr", "بردەمەنی": "Navdêr", "برژانگ": "Navdêr", "برژاو": "Rengdêr", "برسێتی": "Navdêr", "برغوو": "Navdêr", "برنگ": "Navdêr", "برووسکە": "Navdêr", "بریتی": "Rengdêr", "بزاڤ": "Navdêr", "بزان": "Lêker", "بزاوتن": "Lêker", "بزگور": "Navdêr", "بزووتنەوە": "Navdêr", "بڕاو": "Rengdêr", "بڕمێن": "Navdêr", "بڕوانامە": "Navdêr", "بڕۆ": "Lêker", "بڕیار": "Navdêr", "بڕێک": "Rengdêr", "بژاردن": "Lêker", "بژاردە": "Navdêr", "بژوولک": "Navdêr", "بسکە": "Navdêr", "بشێوە": "Rengdêr", "بلیمەت": "Rengdêr", "بڵح": "Rengdêr", "بڵند": "Rengdêr", "بناغە": "Navdêr", "بنچە": "Navdêr", "بنچینەیی": "Rengdêr", "بنکە": "Navdêr", "بنەما": "Navdêr", "بنەوش": "Navdêr", "بەتڵانە": "Navdêr", "بەحر": "Navdêr", "بەخت": "Navdêr", "بەخترەش": "Rengdêr", "بەختەوەر": "Rengdêr", "بەختیار": "Rengdêr", "بەخش": "Navdêr", "بەخشەندە": "Rengdêr", "بەخشەندەیی": "Navdêr", "بەد": "Rengdêr", "بەدبەخت": "Rengdêr", "بەدرەقە": "Navdêr", "بەر سەر کەسێکەوە لەوەڕان": "Lêker", "بەرایی": "Navdêr", "بەردەوک": "Navdêr", "بەرز": "Rengdêr", "بەرزە": "Rengdêr", "بەرژەوەند": "Navdêr", "بەرژەوەندی": "Navdêr", "بەرف": "Navdêr", "بەرگ": "Navdêr", "بەرگری": "Navdêr", "بەرگە": "Navdêr", "بەرگەشتە": "Rengdêr", "بەرە": "Daçek", "بەرەزە": "Navdêr", "بەرەو": "Daçek", "بەرەوژۆرکە": "Hoker", "بەرەوژێرکە": "Hoker", "بەروار": "Navdêr", "بەروودوا": "Hoker", "بەزم": "Navdêr", "بەژ": "Navdêr", "بەستن": "Lêker", "بەستە": "Navdêr", "بەسر": "Navdêr", "بەش": "Navdêr", "بەشدار": "Rengdêr", "بەفر": "Navdêr", "بەق": "Navdêr", "بەقال": "Navdêr", "بەقلیسۆک": "Navdêr", "بەل": "Navdêr", "بەلاش": "Hoker", "بەلایەن": "Navdêr", "بەلایەنی": "Hoker", "بەلەز": "Hoker", "بەلەم": "Navdêr", "بەڵا": "Navdêr", "بەڵام": "Girêdek", "بەڵگە": "Navdêr", "بەڵەد": "Rengdêr", "بەڵەک": "Rengdêr", "بەڵەیاندن": "Lêker", "بەناوبانگ": "Rengdêr", "بەند": "Navdêr", "بەندە": "Navdêr", "بەندەگی": "Navdêr", "بەنگ": "Navdêr", "بەنگکێش": "Navdêr", "بەھا": "Navdêr", "بەھارات": "Navdêr", "بەھانە": "Navdêr", "بەھر": "Navdêr", "بەھرە": "Navdêr", "بەھەشت": "Navdêr", "بەو": "Cînav", "بەوان": "Cînav", "بەیار": "Navdêr", "بەیارمەتیت": "Baneşan", "بەیاز": "Navdêr", "بەیاننامە": "Navdêr", "بەیانی": "Navdêr", "بەیچەڵ": "Navdêr", "بەیدەست": "Rengdêr", "بەینەت": "Navdêr", "بەینەتدار": "Rengdêr", "بوختان": "Navdêr", "بوخچە": "Navdêr", "بوودینە": "Navdêr", "بووردن": "Lêker", "بووژاندن": "Lêker", "بووسە": "Navdêr", "بووم": "Navdêr", "بووواردن": "Lêker", "بووێژ": "Navdêr", "بوێر": "Rengdêr", "بۆچوون": "Navdêr", "بۆران": "Navdêr", "بۆرچین": "Navdêr", "بۆردن": "Lêker", "بۆق": "Navdêr", "بۆقەتە": "Navdêr", "بۆنە": "Navdêr", "بۆینباخ": "Navdêr", "بیانوو": "Navdêr", "بیانی": "Rengdêr", "بیبن": "Navdêr", "بیبی": "Navdêr", "بیجامە": "Navdêr", "بیچم": "Navdêr", "بیراز": "Navdêr", "بیرتەسک": "Rengdêr", "بیرە": "Navdêr", "بیروورِا": "Navdêr", "بیستا": "Navdêr", "بیستراو": "Rengdêr", "بیستن": "Lêker", "بیستەر": "Navdêr", "بیستۆک": "Navdêr", "بیڤر": "Navdêr", "بێتار": "Navdêr", "بێجگە": "Daçek", "بێخ": "Navdêr", "بێخبڕ": "Rengdêr", "بێزار": "Rengdêr", "بێژار": "Navdêr", "بێسەرووشوێن": "Rengdêr", "بێشەڵان": "Navdêr", "بێگانە": "Rengdêr", "بێگومان": "Hoker", "بێلایەن": "Rengdêr", "بێلایەنی": "Navdêr", "بێنەوبەرە": "Navdêr", "بێھیوا": "Rengdêr", "بێوەژن": "Navdêr", "پابەند": "Rengdêr", "پاتری": "Navdêr", "پاچ": "Navdêr", "پاداشت": "Navdêr", "پارێزگار": "Navdêr", "پاساو": "Navdêr", "پاسەوان": "Navdêr", "پانایی": "Navdêr", "پاندان": "Navdêr" } sopgbquf6y6chyctz7j7r558ml3ndf5 6342418 6342390 2026-08-25T08:54:38Z Şêr 1103 6342418 wikitext text/x-wiki [[:Kategorî:Gotarên bê kategoriya rêzimanî bi soranî]] ئاوەر ئاوەرێژ ئاوەژوو ئاوەندیار ئایا؟ ئایندە ئایین ئەبلەق ئەبیاڵ ئەبێ ئەتک ئەتوون ئەجزاجی ئەجندا ئەدی! ئەدی؟ ئەرامەندە ئەرج ئەرز ئەرک ئەرە ئەزبۆلە ئەژدەھا ئەژماردن ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا { "ئاوەر": "Navdêr", "ئاوەرێژ": "Navdêr", "ئاوەژوو": "Rengdêr", "ئاوەندیار": "Navdêr", "ئایا؟": "Hoker", "ئایندە": "Navdêr", "ئایین": "Navdêr", "ئەبلەق": "Rengdêr", "ئەبیاڵ": "Navdêr", "ئەبێ": "Lêker", "ئەتک": "Navdêr", "ئەتوون": "Navdêr", "ئەجزاجی": "Navdêr", "ئەجندا": "Navdêr", "ئەدی!": "Baneşan", "ئەدی؟": "Hoker", "ئەرامەندە": "Rengdêr", "ئەرج": "Navdêr", "ئەرز": "Navdêr", "ئەرک": "Navdêr", "ئەرە": "Daçek", "ئەزبۆلە": "Navdêr", "ئەژدەھا": "Navdêr", "ئەژماردن": "Lêker", "ئەژمێر": "Navdêr", "ئەسپایی": "Hoker", "ئەستوون": "Navdêr", "ئەستۆ": "Navdêr", "ئەستی": "Navdêr", "ئەستێرک": "Navdêr", "ئەستێوڵک": "Navdêr", "ئەسکری": "Navdêr", "ئەسکوێ": "Navdêr", "ئەسڵەن": "Hoker", "ئەشک": "Navdêr", "ئەشکەنجە": "Navdêr", "ئەشیا": "Navdêr", "ئەفسانە": "Navdêr", "ئەفسەر": "Navdêr", "ئەقل": "Navdêr", "ئەگریجە": "Navdêr", "ئەلبەت": "Hoker", "ئەلمۆدە": "Navdêr", "ئەڵقە": "Navdêr", "ئەڵماس": "Navdêr", "ئەڵێ": "Lêker", "ئەمر": "Navdêr", "ئەمن": "Cînav", "ئەموست": "Navdêr", "ئەمین": "Rengdêr", "ئەنتیکە": "Rengdêr", "ئەنجام": "Navdêr", "ئەنجن": "Navdêr", "ئەنجومەن": "Navdêr", "ئەندازیار": "Navdêr", "ئەنگاو": "Navdêr", "ئەنگوور": "Navdêr", "ئەنەم": "Navdêr", "ئەھلی": "Rengdêr", "ئەوانیش": "Cînav", "ئەوجا": "Hoker", "ئەورەنگ": "Navdêr", "ئەوزار": "Navdêr", "ئەوسا": "Hoker", "ئەوە": "Cînav", "ئەوەش": "Cînav", "ئەوەندە": "Hoker", "ئەی": "Baneşan", "ئەی!": "Baneşan", "ئەینا؟": "Hoker", "ئیجا": "Hoker", "ئیختیار": "Rengdêr", "ئیرھاب": "Navdêr", "ئیرھابی": "Rengdêr", "ئیستیقالە": "Navdêr", "ئیش": "Navdêr", "ئیفتادە": "Rengdêr", "ئیم": "Navdêr", "ئیمرۆ": "Hoker", "ئیمسال": "Hoker", "ئیمشەو": "Hoker", "ئینجا": "Hoker", "بابوسکە": "Navdêr", "بابۆڵە": "Navdêr", "باپیر": "Navdêr", "باتەک": "Navdêr", "باتوو": "Navdêr", "باتی": "Daçek", "باچە": "Navdêr", "باخەڵ": "Navdêr", "بادیھەوا": "Hoker", "بارام": "Navdêr", "بارست": "Navdêr", "بارشت": "Navdêr", "بارمتە": "Navdêr", "بارە": "Navdêr", "بازد": "Navdêr", "بازوو": "Navdêr", "بازۆر": "Navdêr", "باڕ": "Navdêr", "باستانناسی": "Navdêr", "باستورمە": "Navdêr", "بافت": "Navdêr", "باڵابستە": "Rengdêr", "باڵباز": "Navdêr", "باڵۆڵە": "Navdêr", "باڵۆن": "Navdêr", "باڵێ": "Baneşan", "باڵێف": "Navdêr", "بانگردێن": "Navdêr", "بانوو": "Navdêr", "باھێر": "Navdêr", "باوک": "Navdêr", "باوەڕ": "Navdêr", "باوەقۆت": "Navdêr", "باوی": "Rengdêr", "بایست": "Navdêr", "باینجان": "Navdêr", "باینجانی ڕەش": "Navdêr", "باینجانی سوور": "Navdêr", "بایەخ": "Navdêr", "بایی": "Navdêr", "بچەژ": "Lêker", "بدوو": "Lêker", "برادەر": "Navdêr", "براژن": "Navdêr", "برای ھاوپشت": "Navdêr", "بردەمەنی": "Navdêr", "برژانگ": "Navdêr", "برژاو": "Rengdêr", "برسێتی": "Navdêr", "برغوو": "Navdêr", "برنگ": "Navdêr", "برووسکە": "Navdêr", "بریتی": "Rengdêr", "بزاڤ": "Navdêr", "بزان": "Lêker", "بزاوتن": "Lêker", "بزگور": "Navdêr", "بزووتنەوە": "Navdêr", "بڕاو": "Rengdêr", "بڕمێن": "Navdêr", "بڕوانامە": "Navdêr", "بڕۆ": "Lêker", "بڕیار": "Navdêr", "بڕێک": "Rengdêr", "بژاردن": "Lêker", "بژاردە": "Navdêr", "بژوولک": "Navdêr", "بسکە": "Navdêr", "بشێوە": "Rengdêr", "بلیمەت": "Rengdêr", "بڵح": "Rengdêr", "بڵند": "Rengdêr", "بناغە": "Navdêr", "بنچە": "Navdêr", "بنچینەیی": "Rengdêr", "بنکە": "Navdêr", "بنەما": "Navdêr", "بنەوش": "Navdêr", "بەتڵانە": "Navdêr", "بەحر": "Navdêr", "بەخت": "Navdêr", "بەخترەش": "Rengdêr", "بەختەوەر": "Rengdêr", "بەختیار": "Rengdêr", "بەخش": "Navdêr", "بەخشەندە": "Rengdêr", "بەخشەندەیی": "Navdêr", "بەد": "Rengdêr", "بەدبەخت": "Rengdêr", "بەدرەقە": "Navdêr", "بەر سەر کەسێکەوە لەوەڕان": "Lêker", "بەرایی": "Navdêr", "بەردەوک": "Navdêr", "بەرز": "Rengdêr", "بەرزە": "Rengdêr", "بەرژەوەند": "Navdêr", "بەرژەوەندی": "Navdêr", "بەرف": "Navdêr", "بەرگ": "Navdêr", "بەرگری": "Navdêr", "بەرگە": "Navdêr", "بەرگەشتە": "Rengdêr", "بەرە": "Daçek", "بەرەزە": "Navdêr", "بەرەو": "Daçek", "بەرەوژۆرکە": "Hoker", "بەرەوژێرکە": "Hoker", "بەروار": "Navdêr", "بەروودوا": "Hoker", "بەزم": "Navdêr", "بەژ": "Navdêr", "بەستن": "Lêker", "بەستە": "Navdêr", "بەسر": "Navdêr", "بەش": "Navdêr", "بەشدار": "Rengdêr", "بەفر": "Navdêr", "بەق": "Navdêr", "بەقال": "Navdêr", "بەقلیسۆک": "Navdêr", "بەل": "Navdêr", "بەلاش": "Hoker", "بەلایەن": "Navdêr", "بەلایەنی": "Hoker", "بەلەز": "Hoker", "بەلەم": "Navdêr", "بەڵا": "Navdêr", "بەڵام": "Girêdek", "بەڵگە": "Navdêr", "بەڵەد": "Rengdêr", "بەڵەک": "Rengdêr", "بەڵەیاندن": "Lêker", "بەناوبانگ": "Rengdêr", "بەند": "Navdêr", "بەندە": "Navdêr", "بەندەگی": "Navdêr", "بەنگ": "Navdêr", "بەنگکێش": "Navdêr", "بەھا": "Navdêr", "بەھارات": "Navdêr", "بەھانە": "Navdêr", "بەھر": "Navdêr", "بەھرە": "Navdêr", "بەھەشت": "Navdêr", "بەو": "Cînav", "بەوان": "Cînav", "بەیار": "Navdêr", "بەیارمەتیت": "Baneşan", "بەیاز": "Navdêr", "بەیاننامە": "Navdêr", "بەیانی": "Navdêr", "بەیچەڵ": "Navdêr", "بەیدەست": "Rengdêr", "بەینەت": "Navdêr", "بەینەتدار": "Rengdêr", "بوختان": "Navdêr", "بوخچە": "Navdêr", "بوودینە": "Navdêr", "بووردن": "Lêker", "بووژاندن": "Lêker", "بووسە": "Navdêr", "بووم": "Navdêr", "بووواردن": "Lêker", "بووێژ": "Navdêr", "بوێر": "Rengdêr", "بۆچوون": "Navdêr", "بۆران": "Navdêr", "بۆرچین": "Navdêr", "بۆردن": "Lêker", "بۆق": "Navdêr", "بۆقەتە": "Navdêr", "بۆنە": "Navdêr", "بۆینباخ": "Navdêr", "بیانوو": "Navdêr", "بیانی": "Rengdêr", "بیبن": "Navdêr", "بیبی": "Navdêr", "بیجامە": "Navdêr", "بیچم": "Navdêr", "بیراز": "Navdêr", "بیرتەسک": "Rengdêr", "بیرە": "Navdêr", "بیروورِا": "Navdêr", "بیستا": "Navdêr", "بیستراو": "Rengdêr", "بیستن": "Lêker", "بیستەر": "Navdêr", "بیستۆک": "Navdêr", "بیڤر": "Navdêr", "بێتار": "Navdêr", "بێجگە": "Daçek", "بێخ": "Navdêr", "بێخبڕ": "Rengdêr", "بێزار": "Rengdêr", "بێژار": "Navdêr", "بێسەرووشوێن": "Rengdêr", "بێشەڵان": "Navdêr", "بێگانە": "Rengdêr", "بێگومان": "Hoker", "بێلایەن": "Rengdêr", "بێلایەنی": "Navdêr", "بێنەوبەرە": "Navdêr", "بێھیوا": "Rengdêr", "بێوەژن": "Navdêr", "پابەند": "Rengdêr", "پاتری": "Navdêr", "پاچ": "Navdêr", "پاداشت": "Navdêr", "پارێزگار": "Navdêr", "پاساو": "Navdêr", "پاسەوان": "Navdêr", "پانایی": "Navdêr", "پاندان": "Navdêr" } qkseath83yv8d0kb5htylmxn5ycg8mn 6342455 6342418 2026-08-25T09:35:10Z Şêr 1103 6342455 wikitext text/x-wiki [[:Kategorî:Gotarên bê kategoriya rêzimanî bi soranî]] ئەژمێر ئەسپایی ئەستوون ئەستۆ ئەستی ئەستێرک ئەستێوڵک ئەسکری ئەسکوێ ئەسڵەن ئەشک ئەشکەنجە ئەشیا ئەفسانە ئەفسەر ئەقل ئەگریجە ئەلبەت ئەلمۆدە ئەڵقە ئەڵماس ئەڵێ ئەمر ئەمن ئەموست ئەمین ئەنتیکە ئەنجام ئەنجن ئەنجومەن ئەندازیار ئەنگاو ئەنگوور ئەنەم ئەھلی ئەوانیش ئەوجا ئەورەنگ ئەوزار ئەوسا ئەوە ئەوەش ئەوەندە ئەی ئەی! ئەینا؟ ئیجا ئیختیار ئیرھاب ئیرھابی ئیستیقالە ئیش ئیفتادە ئیم ئیمرۆ ئیمسال ئیمشەو ئینجا بابوسکە بابۆڵە باپیر باتەک باتوو باتی باچە باخەڵ بادیھەوا بارام بارست بارشت بارمتە بارە بازد بازوو بازۆر باڕ باستانناسی باستورمە بافت باڵابستە باڵباز باڵۆڵە باڵۆن باڵێ باڵێف بانگردێن بانوو باھێر باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا { "ئەژمێر": "Navdêr", "ئەسپایی": "Hoker", "ئەستوون": "Navdêr", "ئەستۆ": "Navdêr", "ئەستی": "Navdêr", "ئەستێرک": "Navdêr", "ئەستێوڵک": "Navdêr", "ئەسکری": "Navdêr", "ئەسکوێ": "Navdêr", "ئەسڵەن": "Hoker", "ئەشک": "Navdêr", "ئەشکەنجە": "Navdêr", "ئەشیا": "Navdêr", "ئەفسانە": "Navdêr", "ئەفسەر": "Navdêr", "ئەقل": "Navdêr", "ئەگریجە": "Navdêr", "ئەلبەت": "Hoker", "ئەلمۆدە": "Navdêr", "ئەڵقە": "Navdêr", "ئەڵماس": "Navdêr", "ئەڵێ": "Lêker", "ئەمر": "Navdêr", "ئەمن": "Cînav", "ئەموست": "Navdêr", "ئەمین": "Rengdêr", "ئەنتیکە": "Rengdêr", "ئەنجام": "Navdêr", "ئەنجن": "Navdêr", "ئەنجومەن": "Navdêr", "ئەندازیار": "Navdêr", "ئەنگاو": "Navdêr", "ئەنگوور": "Navdêr", "ئەنەم": "Navdêr", "ئەھلی": "Rengdêr", "ئەوانیش": "Cînav", "ئەوجا": "Hoker", "ئەورەنگ": "Navdêr", "ئەوزار": "Navdêr", "ئەوسا": "Hoker", "ئەوە": "Cînav", "ئەوەش": "Cînav", "ئەوەندە": "Hoker", "ئەی": "Baneşan", "ئەی!": "Baneşan", "ئەینا؟": "Hoker", "ئیجا": "Hoker", "ئیختیار": "Rengdêr", "ئیرھاب": "Navdêr", "ئیرھابی": "Rengdêr", "ئیستیقالە": "Navdêr", "ئیش": "Navdêr", "ئیفتادە": "Rengdêr", "ئیم": "Navdêr", "ئیمرۆ": "Hoker", "ئیمسال": "Hoker", "ئیمشەو": "Hoker", "ئینجا": "Hoker", "بابوسکە": "Navdêr", "بابۆڵە": "Navdêr", "باپیر": "Navdêr", "باتەک": "Navdêr", "باتوو": "Navdêr", "باتی": "Daçek", "باچە": "Navdêr", "باخەڵ": "Navdêr", "بادیھەوا": "Hoker", "بارام": "Navdêr", "بارست": "Navdêr", "بارشت": "Navdêr", "بارمتە": "Navdêr", "بارە": "Navdêr", "بازد": "Navdêr", "بازوو": "Navdêr", "بازۆر": "Navdêr", "باڕ": "Navdêr", "باستانناسی": "Navdêr", "باستورمە": "Navdêr", "بافت": "Navdêr", "باڵابستە": "Rengdêr", "باڵباز": "Navdêr", "باڵۆڵە": "Navdêr", "باڵۆن": "Navdêr", "باڵێ": "Baneşan", "باڵێف": "Navdêr", "بانگردێن": "Navdêr", "بانوو": "Navdêr", "باھێر": "Navdêr", "باوک": "Navdêr", "باوەڕ": "Navdêr", "باوەقۆت": "Navdêr", "باوی": "Rengdêr", "بایست": "Navdêr", "باینجان": "Navdêr", "باینجانی ڕەش": "Navdêr", "باینجانی سوور": "Navdêr", "بایەخ": "Navdêr", "بایی": "Navdêr", "بچەژ": "Lêker", "بدوو": "Lêker", "برادەر": "Navdêr", "براژن": "Navdêr", "برای ھاوپشت": "Navdêr", "بردەمەنی": "Navdêr", "برژانگ": "Navdêr", "برژاو": "Rengdêr", "برسێتی": "Navdêr", "برغوو": "Navdêr", "برنگ": "Navdêr", "برووسکە": "Navdêr", "بریتی": "Rengdêr", "بزاڤ": "Navdêr", "بزان": "Lêker", "بزاوتن": "Lêker", "بزگور": "Navdêr", "بزووتنەوە": "Navdêr", "بڕاو": "Rengdêr", "بڕمێن": "Navdêr", "بڕوانامە": "Navdêr", "بڕۆ": "Lêker", "بڕیار": "Navdêr", "بڕێک": "Rengdêr", "بژاردن": "Lêker", "بژاردە": "Navdêr", "بژوولک": "Navdêr", "بسکە": "Navdêr", "بشێوە": "Rengdêr", "بلیمەت": "Rengdêr", "بڵح": "Rengdêr", "بڵند": "Rengdêr", "بناغە": "Navdêr", "بنچە": "Navdêr", "بنچینەیی": "Rengdêr", "بنکە": "Navdêr", "بنەما": "Navdêr", "بنەوش": "Navdêr", "بەتڵانە": "Navdêr", "بەحر": "Navdêr", "بەخت": "Navdêr", "بەخترەش": "Rengdêr", "بەختەوەر": "Rengdêr", "بەختیار": "Rengdêr", "بەخش": "Navdêr", "بەخشەندە": "Rengdêr", "بەخشەندەیی": "Navdêr", "بەد": "Rengdêr", "بەدبەخت": "Rengdêr", "بەدرەقە": "Navdêr", "بەر سەر کەسێکەوە لەوەڕان": "Lêker", "بەرایی": "Navdêr", "بەردەوک": "Navdêr", "بەرز": "Rengdêr", "بەرزە": "Rengdêr", "بەرژەوەند": "Navdêr", "بەرژەوەندی": "Navdêr", "بەرف": "Navdêr", "بەرگ": "Navdêr", "بەرگری": "Navdêr", "بەرگە": "Navdêr", "بەرگەشتە": "Rengdêr", "بەرە": "Daçek", "بەرەزە": "Navdêr", "بەرەو": "Daçek", "بەرەوژۆرکە": "Hoker", "بەرەوژێرکە": "Hoker", "بەروار": "Navdêr", "بەروودوا": "Hoker", "بەزم": "Navdêr", "بەژ": "Navdêr", "بەستن": "Lêker", "بەستە": "Navdêr", "بەسر": "Navdêr", "بەش": "Navdêr", "بەشدار": "Rengdêr", "بەفر": "Navdêr", "بەق": "Navdêr", "بەقال": "Navdêr", "بەقلیسۆک": "Navdêr", "بەل": "Navdêr", "بەلاش": "Hoker", "بەلایەن": "Navdêr", "بەلایەنی": "Hoker", "بەلەز": "Hoker", "بەلەم": "Navdêr", "بەڵا": "Navdêr", "بەڵام": "Girêdek", "بەڵگە": "Navdêr", "بەڵەد": "Rengdêr", "بەڵەک": "Rengdêr", "بەڵەیاندن": "Lêker", "بەناوبانگ": "Rengdêr", "بەند": "Navdêr", "بەندە": "Navdêr", "بەندەگی": "Navdêr", "بەنگ": "Navdêr", "بەنگکێش": "Navdêr", "بەھا": "Navdêr", "بەھارات": "Navdêr", "بەھانە": "Navdêr", "بەھر": "Navdêr", "بەھرە": "Navdêr", "بەھەشت": "Navdêr", "بەو": "Cînav", "بەوان": "Cînav", "بەیار": "Navdêr", "بەیارمەتیت": "Baneşan", "بەیاز": "Navdêr", "بەیاننامە": "Navdêr", "بەیانی": "Navdêr", "بەیچەڵ": "Navdêr", "بەیدەست": "Rengdêr", "بەینەت": "Navdêr", "بەینەتدار": "Rengdêr", "بوختان": "Navdêr", "بوخچە": "Navdêr", "بوودینە": "Navdêr", "بووردن": "Lêker", "بووژاندن": "Lêker", "بووسە": "Navdêr", "بووم": "Navdêr", "بووواردن": "Lêker", "بووێژ": "Navdêr", "بوێر": "Rengdêr", "بۆچوون": "Navdêr", "بۆران": "Navdêr", "بۆرچین": "Navdêr", "بۆردن": "Lêker", "بۆق": "Navdêr", "بۆقەتە": "Navdêr", "بۆنە": "Navdêr", "بۆینباخ": "Navdêr", "بیانوو": "Navdêr", "بیانی": "Rengdêr", "بیبن": "Navdêr", "بیبی": "Navdêr", "بیجامە": "Navdêr", "بیچم": "Navdêr", "بیراز": "Navdêr", "بیرتەسک": "Rengdêr", "بیرە": "Navdêr", "بیروورِا": "Navdêr", "بیستا": "Navdêr", "بیستراو": "Rengdêr", "بیستن": "Lêker", "بیستەر": "Navdêr", "بیستۆک": "Navdêr", "بیڤر": "Navdêr", "بێتار": "Navdêr", "بێجگە": "Daçek", "بێخ": "Navdêr", "بێخبڕ": "Rengdêr", "بێزار": "Rengdêr", "بێژار": "Navdêr", "بێسەرووشوێن": "Rengdêr", "بێشەڵان": "Navdêr", "بێگانە": "Rengdêr", "بێگومان": "Hoker", "بێلایەن": "Rengdêr", "بێلایەنی": "Navdêr", "بێنەوبەرە": "Navdêr", "بێھیوا": "Rengdêr", "بێوەژن": "Navdêr", "پابەند": "Rengdêr", "پاتری": "Navdêr", "پاچ": "Navdêr", "پاداشت": "Navdêr", "پارێزگار": "Navdêr", "پاساو": "Navdêr", "پاسەوان": "Navdêr", "پانایی": "Navdêr", "پاندان": "Navdêr" } fjkbmo44y9ap52lrtwkajfenxcmmutw 6342563 6342455 2026-08-25T11:14:46Z Şêr 1103 6342563 wikitext text/x-wiki [[:Kategorî:Gotarên bê kategoriya rêzimanî bi soranî]] باوک باوەڕ باوەقۆت باوی بایست باینجان باینجانی ڕەش باینجانی سوور بایەخ بایی بچەژ بدوو برادەر براژن برای ھاوپشت بردەمەنی برژانگ برژاو برسێتی برغوو برنگ برووسکە بریتی بزاڤ بزان بزاوتن بزگور بزووتنەوە بڕاو بڕمێن بڕوانامە بڕۆ بڕیار بڕێک بژاردن بژاردە بژوولک بسکە بشێوە بلیمەت بڵح بڵند بناغە بنچە بنچینەیی بنکە بنەما بنەوش بەتڵانە بەحر بەخت بەخترەش بەختەوەر بەختیار بەخش بەخشەندە بەخشەندەیی بەد بەدبەخت بەدرەقە بەر سەر کەسێکەوە لەوەڕان بەرایی بەردەوک بەرز بەرزە بەرژەوەند بەرژەوەندی بەرف بەرگ بەرگری بەرگە بەرگەشتە بەرە بەرەزە بەرەو بەرەوژۆرکە بەرەوژێرکە بەروار بەروودوا بەزم بەژ بەستن بەستە بەسر بەش بەشدار بەفر بەق بەقال بەقلیسۆک بەل بەلاش بەلایەن بەلایەنی بەلەز بەلەم بەڵا بەڵام بەڵگە بەڵەد بەڵەک بەڵەیاندن بەناوبانگ بەند بەندە بەندەگی بەنگ بەنگکێش بەھا بەھارات بەھانە بەھر بەھرە بەھەشت بەو بەوان بەیار بەیارمەتیت بەیاز بەیاننامە بەیانی بەیچەڵ بەیدەست بەینەت بەینەتدار بوختان بوخچە بوودینە بووردن بووژاندن بووسە بووم بووواردن بووێژ بوێر بۆچوون بۆران بۆرچین بۆردن بۆق بۆقەتە بۆنە بۆینباخ بیانوو بیانی بیبن بیبی بیجامە بیچم بیراز بیرتەسک بیرە بیرووڕا بیستا بیستراو بیستن بیستەر بیستۆک بیڤر بێتار بێجگە بێخ بێخبڕ بێزار بێژار بێسەرووشوێن بێشەڵان بێگانە بێگومان بێلایەن بێلایەنی بێنەوبەرە بێھیوا بێوەژن پابەند پاتری پاچ پاداشت پارێزگار پاساو پاسەوان پانایی پاندان پایتەخت پرد پشکنین پەتی پەرواز پەشیمان پەلەمە پەیامبەر پەیامنێر پۆتین پۆل پیشە پیشەسازی پێشکەوتن پێو تاقم تكايه تەپەدۆر تەڤۆڵ تەمەڵ تەواو توون تۆپ جەنگاڤەر چابووک چاپاڵێو چاپخانە چاپکراو چاپەز چاتۆڵە چاچی چادرگا چارشێو چارە چارەک چارەنووس چارەنووسساز چارەوا چاسر چاش چاشتێنگا چاشنی چاکەت چاڵ چاڵاو چاڵەچەقیلە چاندەمەنی چاندەنی چاوباشقاڵ چاوەڕوانکراو چاوێشە چایەر چپک چرادان چراکەوان چراورک چرچ چرکان چرکاندن چرکە چرووسان چرووساندن چرووساو چرووک چزاندن چڕان چڕنووک چڕووچاو چش چقڵ چکان چکاندن چکۆک چکۆڵە چلە چلۆکۆک چلۆنھا چلێس چلێسی چڵپاو چڵک چڵکاو چڵم چمک چنگاڵ چنۆک چەپاڵ چەپاڵە چەپاو چەپخوون چەپڕۆ چەپڕۆیی چەپکەن چەپلەر چەپە چەپەجاخ چەپەر چەپەڵۆک چەپووچێڕ چەپۆک چەتاڵ چەتڵەمەز چەتە چەتیانە چەخماق چەرخاو چەرخەمە چەرداخ چەرداوەروو چەردە چەرس چەرم چەرمەسەرێ چەرە چەڕندە چەڕین چەسپ چەش چەشتن چەشکە چەشمە چەشن چەشنی چەقاڵ چەقان چەقاندن چەقەڵ چەقۆساز چەقۆکێش چەکووش چەلاک چەلان چەلاو چەلیپا چەڵەمە چەمچە چەمەر چەمەری چەمووچەم چەمۆڵە چەندایەتی چەندەمین چەندێتی چەنە چەنەباز چەنەبازی چەنەچەن چەنەھەراش چەو چەواشە چەوتانەوە چەوتی چەودار چوارچێوە چواردەور چوارگۆشە چوارلا چوارەک چوالە چوختی چوڕ چوست چۆپین چۆدار چۆڕان چۆڕاندن چۆش! چۆق چۆلاغ چۆلک چۆڵ چۆنھا چۆنیەک چیتۆکە چیل چیلەچەپ چیلەک چیم چێر چێژ چێژان چێژیلە چێش چێشتخانە چێشتکەر چێشتن چێو چێوە چێوین خوێندن خۆشەویست خۆم خۆمان رۆژانە ژار ژاراو ژاراوی ژاربەر ژارقەندە ژارک ژارووژەنگ ژاژ ژاژک ژاڵە ژاندار ژانەسک ژانەسەر ژاوەژاو ژلێواندن ژلێوە ژمار ژماردن ژمارکار ژمارکۆ ژمارەگر ژمارەگری ژمارەیی ژمێرە ژنانە ژنانی ژنەشا ژنێتی ژەقنەبووت ژەک ژەمک ژەندن ژەنگاڵی ژەنگاوی ژەھری ھەڵاخنین ژووان ژووانگا ژووران ژوورەوە ژوورۆچکە ژیار ژیاری ژیانەوە ژیانی ژیرانە ژیربێژ ژیربێژانە ژیرکەلە ژیری ژینامە ژینداری ژیھاتن ژیوار ژێر ژێربەران ژێرپیاڵە ژێرپێ ژێرتیپ ژێرچەپۆکە ژێردەست ژێردەستی ژێرزەمین ژێرزەمینی ژێرسەر ژێرکەنارە ژێرەوە ژێرەوەنان ژێروو ژێرووزەبەر سەنگەر سەنیا سوپا شتن فافۆن فاقە فاک فاڵ فاڵ گرتنەوە فاما فامیدە فامین فانۆس فایل فترە فتوا فتیلە فراژان فراژاندن فراژی فراژیوەر فراوانی فرتەنە فرزەند فرزەند ھێنانەوە فرستادە فرشتەنگ فرە فرەایینی فرەبێژ فرەز فرەنەتەوەیی فرەھزبایی فرەھزبی فرەیی فرۆشتنەوە فرۆشراو فریز فریو فریواندن فریوباز فریوخۆر فزە فڕفڕە فڕفڕۆکە فڕفینگ فڕکان فڕگە فڕن فڕندە فڕنک فڕووج فڕووفێڵ فڕوون فڕۆکەنەھێڵ فڕۆکەوان فڕیشتە فڕین فڕێ فڕێدراو فس فسکە فسکەفسک فشقیات فشەکەر فشەگاڵتە فلیقاندن فلیقاو فڵان فڵت فڵتاندن فڵتەدەمە فڵیتە فم فنددان فەتار فەتار فەتار فەتارەت فەتان فەخفووری فەرامۆش فەرامۆشی فەرتووت فەرخی فەردە فەرز فەرزین فەرق فەرکار فەرکاندن فەرکانە فەرمان فەرمانبەر فەرمانڕەوا فەرمانڕەوایی فەرمانگێڕی فەرمانی فەرمایشت فەرموو فەرموون فەرەھ فەروار فەروو فەریک فەڕاش فەڕاقە فەڕدار فەسڵ فەقیر فەقێ فەکڵە فەلسەفە فەلە فەلەسووف فەن فەنا فەوتان فەوتاندن فەوتاو فوو فوودراو فوورھە فیتەفیت فیچقە فیدا فیدایی فیرست فیز فیزار فیزن فیڕکە فیڕۆ فیسان فیسەڵ فیش فیشاڵ فیشەفیش فیعل فیک فیکە فیکەفیک فێدار فێر فێربوو فێردار فێرداری فێرگە فێسان فێڵ فێڵباز فێڵووفەرەج فێنک قردێلە قرقێنە قنگ قەبەیی قەتران قەساب قەسابخانە قەشەنگ قەنەفە قەول قەیران قەیرە قەیناکە قوپان قوپاو قوربانی قولاپ قۆپچە قۆخ قۆرخ قۆقز کابان کابرا کابە کابینە کاپۆڵ کات کاتپێو کاتەوکات کاچ کاخەز کاخەزدار کادان کارا کاراسک کاراشنا کاراشنایی کاربرا کاربرایەتی کاربڕ کاربەدەستی کاربین کارتە کارخانە کاردانەوە کاردیتوو کارزان کارزانی کارژۆلە کارساز کارکردە کارکەر کارکەنار کارکەناری کارگە کارگەر کارگوزار کارگوزاری کارگێڕ کارگێڕی کارنامە کارنیارنامە کارھاتوو کارەبا کارەز کارەزاو کارەزکەن کارەسات کارەکەر کاروانچی کاروانکەر کاروانکوژ کاروانی کارووبار کارووس کاری کاریگەر کاژاو کاژەڵاخ کاسب کاسبی کاسپ کاستی کاسی کاش کاشانە کاشە کاشی کاف کاک کاکڵ کاکە کاکەلێ کاکەیی کاکۆ کاکیبەکاکی کالان کالە کالی کالیار کاڵا کاڵات کاڵەک کاڵەمستە کاڵی کاماخ کامار کامپ کامەتا کامەرانی کان کاناو کانزا کانزایی کانوون کانیاو کانیبەردینە کانیلە کانیەدرۆزنە کاھوو کاو کاوڕ کاوش کاول کاویر کاوێژ کپەنە کتک کتکنەوتینە کتکی کتووپڕ کتێبباز کتێبەڤان کچانە کچکۆڵە کچنی کچەتیو کچەزا کخ کراس کراو کرتناک کرداری کرداری تێپەر کرداری تێنەپەر کرداری لێکدراو کردە کردەکار کردەگار کرسپ کرمدڵ کرۆت کرۆسک کرۆشتن کرۆک کریڤ کرێ کرێبار کرێکاری کز کزاندنەوە کزانەوە کزر کزۆڵە کزی کڕکڕاگە کڕکەوتوو کڕە کڕەک کڕووزانەوە کڕووزە کڕووھوڕ کڕیار کڕێشاوی کڕێنە کسپ کسپووکۆ کسسە کشان کشت کشتکار کشتگەھ کشتەک کشوومات کشووماتی کفرباز کفندڕ کلت کلتوور کلچان کلچێوک کلدان کلدوومان کلەر کلیل کلیلە کلیم کڵ کڵاش کڵاشچن کڵاواسن کڵاوزرێ کڵاوقژ کڵاونە کڵپە کڵپە لێ ھەڵسان کڵپووھووڕ کڵفت کڵۆ کڵۆر کڵۆش کڵۆڵ کڵۆڵی کڵێس کڵێسمان کڵێشە کنگخشکێ کنگخلیسکێ کنگدەر کنگر کنە کنەکار کنیواڵ کنێر کەباب کەبات کەبار کەپرۆکە کەپەنەک کەت کەتان کەتانە کەتانی کەتن کەتە کەتوو کەتیرە کەچە کەچەڵ کەچەڵی کەرانباوکگاو کەرانە کەرپەسە کەرپیاو کەرت کەرتکراو کەرتە کەرتووپەرت کەرتی کەردڕ کەرسەگ کەرکە کەرکوژ کەرگەز کەرھەنگ کەرە کەرەجی کەرەدێز کەرەسە کەرەکی کەرەکێوی کەرەنتوو کەرەوز کەرووبار کەرۆکە کەرێتی کەزاخە کەزی کەڕ کەڕەت کەڕەتی کەڕەکۆنتێ کەڕەنسۆ کەڕەواڵە کەڕوو کەڕوو ھێڵھێنان کەڕووواوی کەڕی کەژاوە کەژماڵ کەسانە کەستەک کەسک کەسکووسۆر کەسکوون کەسکی کەسنەدار کەسنەدیو کەسیرە کەش کەشاکەش کەشتیگەل کەشتیوان کەشتیوانی کەشخە کەشزان کەشزانی کەشک کەشکە کەشکەلان کەشکەلانی فەلەک کەشمەکەشم کەشە کەشەنگ کەشووفش کەشیش کەشیە کەف کەفارەت کەفالەت کەفاو کەفووکۆڵ کەفیل کەلا کەلار کەلارە کەلتوور کەلخانە کەلە کەلەپەر کەلەپوور کەلەپووری کەلەتەزێن کەلەشەق کەلەکوچ کەلەلا کەلەم کەلواز کەلووپەل کەلووکۆم کەلێن کەڵام کەڵان کەڵب کەڵەس کەڵەک کەڵەکباز کەڵەکچی کەڵەگەت کەڵەوێ کەڵووڕی کەڵۆس کەم کەمە کەماڵ کەمان کەمانچەژەن کەمایەتی کەمایەسی کەمبیر کەمتەرخەمی کەمتیار کەمتین کەمچیکڵدانە کەمدەست کەمدوو کەمڕوو کەمساڵ کەمشیر کەمناو کەمە کەمەبەند کەمەر کەمەربەستی کەمەرچین کەمەردار کەمەرەیی کەمەری زەوی کەمەکێک کەمەیی کەمووکووڕی کەمۆ کەمۆکار کەمۆکاری کەمۆیار کەمۆیاری کەمی کەنار کەناراو کەنارگر کەنارگری کەنارەیی کەنتۆر کەند کەند و کۆسپ کەنداڵ کەنداو کەندەک کەندەکار کەندەڵان کەنزەک کەنەفت کەنەفتی کەنیچە کەنیلێ کەھلان کەو ئڤ کەوا کەوالە کەوان کەوانکۆشە کەوانە کەوباز کەوبازی کەوباڕ کەوبەدار کەوتوو کەوچک کەوداو کەودەن کەورک کەوژ کەوژین کەوشەک کەوشەکەن کەوشەکۆن کەوگیر کەولۆس کەومار کەوە کەوەر کەوۆت کەوێڵ کەی کەیبانوو کەیس کەیل کەیلان کەینووبەین کەیوان کوارەنگ کوتان کوتووپڕ کوتوومت کوچوولە کودەڵە کورتان کورتاندروو کورتبڕ کورتبڕی کورتبین کورتبینی کورتم کورتە کورتەباڵا کورتەبنە کورتەک کورتی کورتیلە کوردانە کوردایەتی کوردپەروەر کوردستانی کوردشناس کوردکوژە کوردناسی کوردھەز کوردەواری کوردیاخێو کوردیزانی کوردیزمان کورکاندن کورەک کوزان کوڕ کوڕانە کوڕکوڕە کوڕگەل کوڕنووش کوڕە کوڕەزا کوڕەزازا کوڕێتی کوژاندنەوە کوژران کوژراو کوشتار کوشتبەندان کوشتن کوشتەرا کوشندە کوفار کولاف کولاندنەوە کولانەوە کولپ کولخان کولەپاچ کولەمەرگی کولیچە کوڵاو کوڵک کوڵکوڵە کوڵەبنە کوڵەبەس کوڵەپێچ کوڵەنانی کوڵەنجە کوڵەھەسار کوڵۆت کوڵۆک کونار کوناودەر کونبڕ کونتیلە کونجرە کونجی کونجێن کونچک کونزەین کونکراو کونکەرە کونەباجە کونەبەبوو کونیلە کونیلەدار کوو کووپ کووپە کووپەڵە کووچە کوور کوورە کووز کووکەلە کووکوو کووکووکەرە کوونی کوێخا کوێخایەتی کوێرانە کوێراو کوێردەرە کوێرەدێ کوێرەڕێ کوێرەشەقام کوێرەکانی کوێرەمار کوێرەمووشە کوێرەوەری کوێری کوێڕا کوێستانی کوێلە کوێلەدار کوێلەداری کوێلەیی کوێندەری کوێوە کۆ کۆبەند کۆبوونەوە کۆپارە کۆت کۆتان کۆتایی کۆتایی ١یی پێ کۆتەرە کۆجەڵە کۆچ کۆچاوکۆچ کۆچکەر کۆچەری کۆچەرێتی کۆچەک کۆچەکە کۆچی کۆچی دوایی کۆخ کۆخوازی کۆد کۆرپەلە کۆز کۆزانین کۆزمان کۆزە کۆزەرە کۆڕگە کۆژە کۆژۆ کۆسپ کۆسپایی کۆستە کۆستەوەوی کۆسە کۆشان کۆشش کۆشیار کۆفرۆش کۆفرۆشی کۆڤان کۆکردنەوە کۆکەکۆک کۆکین کۆکێتی کۆلک کۆلیسک کۆڵ کۆڵارە کۆڵان کۆڵاندۆز کۆڵانکوت کۆڵراو کۆڵکێش کۆڵگێڕ کۆڵنج کۆڵنجان کۆڵنگە کۆڵنەدەر کۆڵھەڵگر کۆڵە کۆڵەر کۆڵەوار کۆڵوو کۆڵیت کۆڵین کۆڵینەوە کۆم کۆما کۆماری کۆماوە کۆمفرۆش کۆمفرۆشی کۆمەک کۆمەکی کۆمەڵ کۆمەڵایەتی کۆمەڵزان کۆمەڵزانی کۆمەڵە کۆمی کۆنە کۆنەباو کۆنەپەرست کۆنەپەرستی کۆنەپۆش کۆنەساڵ کۆنەفرۆش کۆنی کۆنینە کیتەڵە کیسەڵ کیشوەر کیشوەربڕ کیشوەری کیوار کێ کێچ کێچاوی کێرزل کێرزلی کێڕ کێش کێشان کێشانەوە کێشدار کێشران کێشراو کێشمان کێشمەکێش کێشە کێل کێڵراو کێوی ئاگرپرژێن کێویلە گابۆڕ گاراندن گارەگار گازر گازندە گازندۆک گازەرا گاڕس گاسن گاف گاکێوی گاگەل گاگۆڵکێ گاگێرە گالیسکە گاڵ گاڵتە گاڵتەبێژ گاڵتەجاڕ گاڵتەچی گاڵتەگێ گاڵە گاڵەکوت گاڵۆک گامەڵاس گامێش گان گاناوی گانەک گاوارە گاووس گاووگۆتاڵ گایلکە گایی گرتنەوە گرتەک گرتوو گرتووخانە گردە گردەبا گردەپیاو گردەڵە گردۆکۆ گردۆڵک گرژی گرس گرفت گرفتە گرمەژنە گرمۆڵە گرمۆڵەیی گرنگی گرەو گروون گرۆ گریشمە گرین گرینۆک گرێدراو گرێکوێرە گزیر گڕاندن گڕگر گڕگرتوو گڕووگاڵ گڕوێ گڕوێیی گڕۆز گژەبا گشتگر گشتی گفتووگۆ گڤی گلار گلارە گلاو گلەبان گلەخان گلەسپی گلەیی گلۆفتن گلین گلێجە گلێر گڵۆپ گڵۆڵە گندۆر گەپەگەپ گەچ گەدا گەدایی گەدە گەر گەردان گەردانە گەرداو گەردنکەچ گەردنکەش گەردنکێل گەردەش گەردووخول گەردووگەڵا گەردوون گەرم گەرما گەرماپێو گەرماجمان گەرماو گەرماوگەرم گەرمایی گەرمبردوو گەرمەگلێ گەرمی گەرمیان گەرمیانی گەرمیپێو گەرمێتی گەرەک گەرەکی گەروانکە گەرووێش گەزاف گەزگەزان گەزندە گەزنە گەزەن گەزین گەڕان گەڕاندن گەڕاندنەوە گەڕانەوە گەڕەلاوژە گەڕۆک گەڕۆڵ گەڕۆڵە! گەڕی گەستن گەسکە گەش گەشایشت گەشبین گەشبینی گەشتنامە گەشتوەر گەشتووگوزار گەشتیار گەشکە گەشکەدار گەشەکردوو گەشی گەف گەفووگوڕ گەفین گەل گەلال گەلاوێژ گەلھۆ گەلەخان گەلەراوێژی گەلۆر گەڵادار گەڵارێزان گەڵاڕن گەڵاکوتک گەڵاڵە گەڵاوگەڵ گەڵاوەر گەمارۆ گەماڵ گەموورە گەناندن گەندەڵ گەندووگوو گەنمگردی گەنمە گەنیو گەواد گەوار گەواڵ گەواھ گەواھی گەورەیی گەوز گەولاز گەوھەر گەوھەربەند گەوھەردار گەوھەرکار گەوە گەوەری گەوەکار گەوون گەی گەیاندن گەیشتگە گەیشتوو گەیگر گەیین گودلە گوربز گوربە گورج گورد گورزە گورزەتیشک گورزەھۆن گورگانگاز گوزارە گوزارەدار گوزارەیی گوزەریو گوڕ گوڕە گوڕەشە گوڕەشەکار گوڕەووبڕە گوژم گوستاخ گوستاخی گوشار گوشران گوشراو گوشراوە گول گولاج گولی گوڵ گوڵاڵە گوڵان گوڵاو گوڵاوپژێن گوڵاوی گوڵباران گوڵبانگ گوڵبەدەم گوڵدار گوڵدان گوڵرەنگ گوڵڕێزان گوڵشەن گوڵگوڵی گوڵمە گوڵمێخ گوڵە گوڵەباخ گوڵەباران گوڵەپرێژ گوڵەچاوێشە گوڵەندام گوڵونکە گوڵی گوم گومانبار گومانرەش گومانی گومرک گومڕاکەر گومناو گومی گوناھ گوناھبار گونجان گونجاندن گونجاو گونداری گوندۆرە گووار گووارە گووان گووبۆق گووپ گووپن گووران گووواوی گووێ گووێچکە گوێ گوێبەل گوێدێر گوێرە گوێرەکە گوێزرنگانەوە گوێزەر گوێزی فەریک گوێزی کوێر گوێڕەپ گوێسووک گوێسووکی گوێقورس گوێقوڵاخ گوێکپ گوێگر گوێگران گوێلەمست گوێنی گۆتاڵ گۆترە گۆتن گۆج گۆجی گۆران گۆرین گۆزەر گۆزەڵە گۆڕان گۆڕاندن گۆڕاندنەوە گۆڕانکار گۆڕانکاری گۆڕستان گۆڕین گۆڕینەوە گۆساڵە گۆشپارە گۆشتاو گۆشتخۆر گۆشتن گۆشتی کاڵ گۆشەدار گۆشەگیری گۆشەنیگا گۆکار گۆگرد گۆڵە گۆم گۆمەڵتە گۆنە گۆنیە گۆییژ گیایی گیرا گیران گیراو گیراوە گیراوێ گیرسانەوە گیرفانبڕ گیرفانی باخەڵ گیرکار گیرووگرفت گیرۆ گیرۆبەند گیرۆدار گیز گیزاندن گیڕەگیڕ گیشە گیڤ گییانسەخت گێپەڕە گێتاڵ گێرە گێرەووکێشە گێزەر گێڕان گێژاو گێژوووێژ گێسوو گێلاس گێلۆکە گێلی گێوە لا چوون لابابەت لابار لابراو لابەرھەم لاپاڵ لاپچین لاپەڕە لات و لوات لات و لوار لاترقەوچ لاتەڕاف لاتوخم لاجانگ لاجیوەرد لاچوو لادێیی لارەلار لارەولار لاڕەو لاڕێ لاژگ لاژگی لاساری لاسایی لاساییانە لاساییکەر لاسک لاسەنگ لاسەنگی لاشان لاشەڕ لاشەڕی لاف و گەزاف لاقردی لاک لاکاری لاکۆڵان لاکێش لاکێشە لاگیر لاگیری لالخاوە لالە لالەنگی لاڵ لاڵانەوە لاڵە لاڵەپەتە لاڵوپاڵ لاڵی لامئەلیفلا لامل لامی قەڵەو لانەواز لانەوازی لاەنجام لاواز لاوازی لاوانەوە لاوچاک لاورگە لاوژە لاوک لاولاو لاوە لاوێتی لای لایەن لایەنگر لایەنگری لچەستوور لچوولێو لرفەلرف لک لکاوە لکێنراو لمۆز لمین لنگەلەرێ لە لەباری لەبز لەبلەبی لەبەرچاڤ لەپ لەپاشەجێماو لەپالەپ لەپماڵ لەپەوڕوو لەپی لەپی دەست لەتگەر لەتووپەت لەچەر لەچەری لەخشتەبەر لەخەم لەخەمڕەخسیو لەخواترس لەخواترسی لەخوانەترس لەخوانەترسی لەران لەراندن لەرانەوە لەرز لەرزان لەرزاندن لەرزۆک لەز لەزاندن لەزپیو لەزگێڕ لەزگێڕی لەزەت لەزین لەڕ لەڕ و لاواز لەڕوو لەڕوویی لەڕی لەسەرخۆ لەسەرخۆیی لەسەرکەرەوە لەش لەشسووک لەشقورس لەشکر لەشکرگا لەشکرگێڕ لەشکرگێڕی لەشوولار لەشی لەعنەت لەفاف لەقان لەقاندن لەقە لەقەب لەقەکوت لەقەلەق لەقوولۆق لەک لەکە لەکەدار لەکەداری لەکی لەگژ لەگەن لەل لەلە لەلەیی لەم لەم جێگایە دا لەم دیوەوە لەمئەو بەر لەمان لەمانەوە لەمپا لەمپەر لەنجین لەنگەر لەنگەرە لەنگی لەنگین لەنگێزە لەھیم لەو لەو پەڕ لەو سەرەوە لەوازە لەواشە لەوان لەوچەلەوچ لەوچەیی لەوس لەوساوە لەوسن لەوە بە دەر لەوە بەو لاوە لەوە پێش لەوە دوا لەوەڕ لەوەڕگا لەوەن لەوێ لەوێچ لەوێڕا لەوێوە لوان لواندن لواو لوڕ لوڕستان لوڕی لووتبەرز لووتبەرزی لووتزل لووتفش لووتقوڵنگە لووتە لووتەلا لووتەوانە لوودە لووزەو لووس لووسکە لووسووپووس لوول لوولاق لوولکراو لوولە لوولەیی لوولێنە لۆترەوان لۆترەوانی لۆتە لۆتی لۆتیێتی لۆخان لۆر لۆرت لۆرە لۆری لۆزەندەر لۆقە لۆک لۆککراو لۆکە لۆلە لۆلۆ لۆمە لۆنگ لۆنە لیان لیپ لیتاو لیچاڵ لیخن لیر لیژنە لیژنەدار لیستە لیک لیمە لیمۆ لیمۆنی لیمۆیی لینج لینج و فینچ لینجی لیوا لێ لێ بووردن لێ بێزران لێ پڕ بوون لێ تووژینەوە لێ تێک چوونەوە لێ چوونەوە لێ خەفەتان لێ خوڕین لێ ڕاوەستان لێ قەومان لێ کۆڵینەوە لێ گۆڕین لێ نان لێ نەگرتن لێ ھاتن لێ ھەڵبڕین لێ ھەڵسان لێ ھەڵکەوتن لێ وە لێ وەرگەڕانەوە لێ وەستانەوە لێ وەشانەوە لێبووردن لێبووردە لێبووردوو لێت لێتان لێچوو لێچوونی لێخوڕ لێدوو لێر لێرە لێرە بە دواوە لێرەش لێرەوار لێزگ لێزگە لێژ لێژاو لێژی لێسە لێش لێقەوماو لێک لێک بڕان لێک بەربوونەوە لێک ڕەوینەوە لێکۆلینەوە لێڵاو لێڵایی لێڵایی داھاتن لێڵە لێڵی لێم لێمان لێھاتوو لێواولێو لێوڕێژ لێوەدار لێی لێیان مامۆژن مامۆستا ماوە متمانە مژۆک ململانێ مەترسی مەرز مەرکانە مەزن مەڕۆ مەمک میراتی مێباز ناخۆش ناخۆشی نازناو نامیلکە نانەواخانە ناوازە ناوخۆ ناوک ناوەندی نزیک نەبەرد نەخشە نەریت نوشتانەوە نۆش نیشانە نێردراو نێوان ھا ھاتنە دی ھاتنەوە ھاتنەوە یاد ھاتووچوو ھاجی ھاجیبادام ھاجیبایەف ھاجیرەش ھاجیلەقلەق ھار ھار و ھاج ھاروو ھارووھوورت ھاری ھاریکار ھاریکاری ھازر ھازری ھاڕاو ھاڕە ھاڕین ھاڕیە ھاژ ھاژاندن ھاشا ھاشووھووش ھافز ھاڤل ھاکا ھاکایی ھاکم ھاکمانە ھاکمێتی ھاکۆ ھاڵ ھاڵ و ئەھواڵ ھاڵاو ھاڵەت ھاڵی ھامار ھامێز ھان ھانابەر ھاندراو ھاندەر ھاوارکەر ھاواری ھاواھەنگی ھاوبەش ھاوبەند ھاوبیر ھاوپا ھاوپایە ھاوپرسی ھاوپشت ھاوپەیمان ھاوتا ھاوتەک ھاوتەمەن ھاوجۆت ھاوجێ ھاوچاخ ھاوچاو ھاوچاوی ھاوچڕە ھاوچەق ھاوچەک ھاوخاک ھاوخەف ھاوخوان ھاودەرد ھاودەست ھاودین ھاوراز ھاوزگ ھاوزمان ھاوزۆم ھاوڕێ ھاوڕێتی ھاوساز ھاوساڵ ھاوسامە ھاوسنوور ھاوسەدە ھاوسەر ھاوسەنگ ھاوسەنگی ھاوسوێند ھاوسوێندی ھاوشار ھاوشان ھاوشیرە ھاوشێوە ھاوکات ھاوکار ھاوکاری ھاوکێش ھاوکێشە ھاولا ھاوماڵ ھاومل ھاوناو ھاونشین ھاونەبەرد ھاونۆرە ھاوەن ھاووڵات ھاووڵاتی ھاویشتن ھاوینھەوار ھاوێر ھتد ھزب ھسێب ھکوومەت ھل ھە ھەب ھەپروون ھەپس ھەپسخانە ھەپەسان ھەپەساندن ھەپەساو ھەپوو ھەپین ھەتا ھەتا دوایی ھەتا سەر ھەتار ھەتارەک: ھەتاو ھەترە ھەتھەتۆکە ھەتوان ھەتیو ھەتیوبار ھەتیوخانە ھەچولوور ھەد ھەدیس ھەراج ھەراس ھەراسان ھەرام ھەرامخۆر ھەرامە ھەرجایی ھەرد ھەردەبیر ھەردەگێڵ ھەردوو ھەرزاڵە ھەرزان ھەرزانبەھا ھەرزانی ھەرزە ھەرزەبێژ ھەرزەچەنە ھەرزەکار ھەرزەکارانە ھەرزەکاری ھەرزەیی ھەرفی ھەرگیز ھەرگیزئاو ھەرگیز ھەرگینە ھەرلە ھەرمێپشکوان ھەرەس ھەرەوەز ھەروا ھەری ھەریف ھەرێز ھەرێم ھەرێمی ھەز ھەز و ناھەز ھەزارە ھەزاریەک ھەزبێلە ھەزرەت ھەزم ھەڕا ھەڕە ھەڕەشە ھەڕەشە و گوڕەشە ھەڕەمە ھەژار ھەژاری ھەژان ھەژاندن ھەژگ ھەژەند ھەژێنەر ھەسار ھەسان ھەساوە ھەستبەر ھەستبەری ھەستری ھەستە ھەستەوەر ھەستەوەری ھەستیار ھەستیاری ھەسیر ھەسیرمەیان ھەش ھەشار ھەشاردراو ھەشبەسەر ھەشتا ھەشتالوو ھەشتیەک ھەشھەش ھەشەری ھەفت ھەفتا ھەفتانە ھەفتە ھەفتەیی ھەڤاڵ ھەڤدە ھەڤکێشی ھەقانی ھەقایەت ھەقدەست ھەکیم ھەگبە ھەل ھەلات ھەلانە ھەلاھەلا ھەلک ھەلھەلە ھەلەقمەلەق ھەلەکە ھەلوومەرج ھەلۆک ھەڵاتوو ھەڵاخنین ھەڵاڵ ھەڵاڵخۆر ھەڵامسان ھەڵامەت ھەڵامەتی ھەڵاورد ھەڵاوردن ھەڵاوسان ھەڵاوێز ھەڵبرواندن ھەڵبزڕکان ھەڵبزڕکاو ھەڵبڕین ھەڵبژار ھەڵبژاردن ھەڵبژاردە ھەڵبژێر ھەڵبژێڕاو ھەڵبەز ھەڵبەست ھەڵبەستراو ھەڵبەستن ھەڵبەستە ھەڵپاچراو ھەڵپاچین ھەڵپچڕان ھەڵپچڕاو ھەڵپچڕین ھەڵپرووزان ھەڵپرووزاندن ھەڵپرووزاو ھەڵپرووکاو ھەڵپڕووکان ھەڵپڕووکاندن ھەڵپژان ھەڵپە ھەڵپەڕاندن ھەڵپەڕکێ ھەڵپەڕین ھەڵپەساردن ھەڵپەساڕاو ھەڵپەنمان ھەڵپێچ ھەڵپێچان ھەڵپێچراو ھەڵترووشکان ھەڵتڕین ھەڵتڵیشان ھەڵتڵیشاندن ھەڵتڵیشاو ھەڵتەکان ھەڵتەکاندن ھەڵتەکیو ھەڵتووڕاندن ھەڵتۆقین ھەڵتیزاندن ھەڵچنراو ھەڵچنین ھەڵچەقین ھەڵچوون ھەڵخران ھەڵخستن ھەڵخلیسکان ھەڵخلیسکاندن ھەڵخەڵەتان ھەڵخەڵەتاندن ھەڵخەڵەتاو ھەڵخەڵەتێو ھەڵخوێندن ھەڵدان ھەڵدانەوە ھەڵدرووراو ھەڵدروون ھەڵدڕان ھەڵدڕاو ھەڵدڕین ھەڵدێران ھەڵزڵەپین ھەڵزڵەپیو ھەڵڕژان ھەڵڕژراو ھەڵڕشتن ھەڵژمار ھەڵژماردن ھەڵژمێڕاو ھەڵسان ھەڵسان و کەوتن ھەڵساندن ھەڵسانەوە ھەڵساو ھەڵسەنگاندن ھەڵسەنگێنەر ھەڵسووڕان ھەڵسووڕاندن ھەڵسووڕاو ھەڵسووڕێنەر ھەڵسووکەوت ھەڵشاخین ھەڵشێلان ھەڵفریواندن ھەڵفڕاندن ھەڵفڕین ھەڵفلیقان ھەڵفلیقاندن ھەڵفلیقاو ھەڵقرچان ھەڵقورتاندن ھەڵقوڕاندن ھەڵکالین ھەڵکراو ھەڵکزراندن ھەڵکڕان ھەڵکڕاندن ھەڵکڕاو ھەڵکشان ھەڵکشە ھەڵکەندن ھەڵکەنران ھەڵکەنراو ھەڵکەوت ھەڵکوڵین ھەڵکۆ ھەڵکۆڵراو ھەڵکێش ھەڵکێشان ھەڵکێشراو ھەڵگرتن ھەڵگڵۆفتن ھەڵگەڕان ھەڵگەڕانەوە ھەڵگوشین ھەڵگیران ھەڵگیرسان ھەڵگیرساندن ھەڵلا ھەڵلووشین ھەڵم ھەڵمات ھەڵماتێن ھەڵماڵران ھەڵماڵراو ھەڵماڵین ھەڵمان ھەڵمژین ھەڵمەت ھەڵمەتجاڕ ھەڵمەقۆ ھەڵمیزان ھەڵنان ھەڵنیشتن ھەڵھاتن ھەڵھێنان ھەڵھێنانەوە ھەڵھێنجان ھەڵھێنجراو ھەڵھێنراو ھەڵھێنگە ھەڵھێنەر ھەڵە ھەڵەت ھەڵەخەرج ھەڵەداوان ھەڵەشە ھەڵەشەیی ھەڵەنگووتن ھەڵەھەڵ ھەڵەوەڕ ھەڵواسران ھەڵواسراو ھەڵواسین ھەڵوەران ھەڵوەراندن ھەڵوەشان ھەڵوەشاندن ھەڵوەشاو ھەڵوەشێنراو ھەڵووتن ھەڵووژە ھەڵووژەرەشە ھەڵۆ ھەڵۆڵ ھەڵیز ھەماز ھەماڵ ھەمام ھەمان ھەمان کات ھەمایەڵ ھەمشین ھەمەلایەنە ھەموار ھەموو ھەمووپرسی ھەموووانی ھەموویی ھەمیشە ھەمیشەیی ھەن ھەنار ھەناردە ھەناسەبڕکێ ھەناسەسارد ھەناسەسوار ھەناسەوواری ھەناو ھەند ھەنداز ھەندە ھەندەر ھەندەران ھەندەرھۆ ھەنسک ھەنسک ھەڵدان ھەنگ ھەنگامە ھەنگاو ھەنگاوھاویشتن ھەنگدان ھەنگڵ ھەنگەشەلێ ھەنەزا ھەنووکەیی ھەنوون ھەو ھەوار ھەوارگە ھەواری ھەواڵگوزاری ھەواڵە ھەواڵە بە گەواڵە ھەواندنەوە ھەوانەوە ھەوایی ھەوت ھەوتە ھەوتەوانە ھەوتیر ھەوجاڕ ھەوجۆش ھەودا ھەوراز ھەوراز و نشێو ھەورەباڵا ھەورەتریشقە ھەوریس ھەوز ھەوزانە ھەوسار ھەوسەڵە ھەوەس ھەوەڵ ھەویر ھەوینج ھەوێ ھەوێن ھەیا ھەیبەت ھەیتە ھەیران ھەیزەران ھەیس ھەیش ھەیش پێ ھەڵگرتن ھەیشۆ ھەیشۆ لێ ھەڵگیران ھەیف ھەیوان ھەیوانات ھەیوانان ھوجرە ھورمز ھورمەت ھوزەیران ھوزوور ھوڕەو ھوژە ھوشتر ھوکمدار ھولھولی ھولە ھولەسێ ھومەڵخەزا ھونەر ھونەرگا ھونەرمەند ھونەرمەندانە ھونەرە جوانەکان ھونەروەر ھوو ھووت ھووردە ھووردەبینی ھووڕ ھووشە ھووشەکار ھووھا ھووھووکەرە ھۆجەنە ھۆدار ھۆدە ھۆرتە ھۆردوو ھۆز ھۆزان ھۆزانی ھۆزکی ھۆڕ ھۆڕن ھۆڕە ھۆشبڕ ھۆشمەند ھۆشمەندی ھۆشیار ھۆشیارانە ھۆشیاری ھۆکار ھۆکڵ ھۆگر ھۆل ھۆن ھۆنەر ھۆو ھی ھیچ ھیچی ھیدایەت ھیر ھیز ھیزانە ھیزە ھیزەڵ ھیزێتی ھیساب ھیکمەت ھیلاک ھیلاندن ھیمەت ھیوابڕاو ھیوادار ھێ ھێدز ھێدی ھێرۆ ھێز ھێزا ھێزم ھێشتا ھێشتن ھێشخان ھێشوو ھێل ھێلانە ھێلز ھێلکە ھێلکەورۆن ھێلکەیی ھێلم ھێلینج ھێڵ ھێڵان ھێڵکاری ھێڵی ئاسنی ھێمایی ھێمن ھێمنی ھێنان ھێنانەوە ھێواش ھێواشکار ھێواشی ھێور ھێورانە ھێوەر ھێوەرزا ھێوەرژن ھێویری و مەتیو وتار وەستاندن یارمەتی یاسا { "باوک": "Navdêr", "باوەڕ": "Navdêr", "باوەقۆت": "Navdêr", "باوی": "Rengdêr", "بایست": "Navdêr", "باینجان": "Navdêr", "باینجانی ڕەش": "Navdêr", "باینجانی سوور": "Navdêr", "بایەخ": "Navdêr", "بایی": "Navdêr", "بچەژ": "Lêker", "بدوو": "Lêker", "برادەر": "Navdêr", "براژن": "Navdêr", "برای ھاوپشت": "Navdêr", "بردەمەنی": "Navdêr", "برژانگ": "Navdêr", "برژاو": "Rengdêr", "برسێتی": "Navdêr", "برغوو": "Navdêr", "برنگ": "Navdêr", "برووسکە": "Navdêr", "بریتی": "Rengdêr", "بزاڤ": "Navdêr", "بزان": "Lêker", "بزاوتن": "Lêker", "بزگور": "Navdêr", "بزووتنەوە": "Navdêr", "بڕاو": "Rengdêr", "بڕمێن": "Navdêr", "بڕوانامە": "Navdêr", "بڕۆ": "Lêker", "بڕیار": "Navdêr", "بڕێک": "Rengdêr", "بژاردن": "Lêker", "بژاردە": "Navdêr", "بژوولک": "Navdêr", "بسکە": "Navdêr", "بشێوە": "Rengdêr", "بلیمەت": "Rengdêr", "بڵح": "Rengdêr", "بڵند": "Rengdêr", "بناغە": "Navdêr", "بنچە": "Navdêr", "بنچینەیی": "Rengdêr", "بنکە": "Navdêr", "بنەما": "Navdêr", "بنەوش": "Navdêr", "بەتڵانە": "Navdêr", "بەحر": "Navdêr", "بەخت": "Navdêr", "بەخترەش": "Rengdêr", "بەختەوەر": "Rengdêr", "بەختیار": "Rengdêr", "بەخش": "Navdêr", "بەخشەندە": "Rengdêr", "بەخشەندەیی": "Navdêr", "بەد": "Rengdêr", "بەدبەخت": "Rengdêr", "بەدرەقە": "Navdêr", "بەر سەر کەسێکەوە لەوەڕان": "Lêker", "بەرایی": "Navdêr", "بەردەوک": "Navdêr", "بەرز": "Rengdêr", "بەرزە": "Rengdêr", "بەرژەوەند": "Navdêr", "بەرژەوەندی": "Navdêr", "بەرف": "Navdêr", "بەرگ": "Navdêr", "بەرگری": "Navdêr", "بەرگە": "Navdêr", "بەرگەشتە": "Rengdêr", "بەرە": "Daçek", "بەرەزە": "Navdêr", "بەرەو": "Daçek", "بەرەوژۆرکە": "Hoker", "بەرەوژێرکە": "Hoker", "بەروار": "Navdêr", "بەروودوا": "Hoker", "بەزم": "Navdêr", "بەژ": "Navdêr", "بەستن": "Lêker", "بەستە": "Navdêr", "بەسر": "Navdêr", "بەش": "Navdêr", "بەشدار": "Rengdêr", "بەفر": "Navdêr", "بەق": "Navdêr", "بەقال": "Navdêr", "بەقلیسۆک": "Navdêr", "بەل": "Navdêr", "بەلاش": "Hoker", "بەلایەن": "Navdêr", "بەلایەنی": "Hoker", "بەلەز": "Hoker", "بەلەم": "Navdêr", "بەڵا": "Navdêr", "بەڵام": "Girêdek", "بەڵگە": "Navdêr", "بەڵەد": "Rengdêr", "بەڵەک": "Rengdêr", "بەڵەیاندن": "Lêker", "بەناوبانگ": "Rengdêr", "بەند": "Navdêr", "بەندە": "Navdêr", "بەندەگی": "Navdêr", "بەنگ": "Navdêr", "بەنگکێش": "Navdêr", "بەھا": "Navdêr", "بەھارات": "Navdêr", "بەھانە": "Navdêr", "بەھر": "Navdêr", "بەھرە": "Navdêr", "بەھەشت": "Navdêr", "بەو": "Cînav", "بەوان": "Cînav", "بەیار": "Navdêr", "بەیارمەتیت": "Baneşan", "بەیاز": "Navdêr", "بەیاننامە": "Navdêr", "بەیانی": "Navdêr", "بەیچەڵ": "Navdêr", "بەیدەست": "Rengdêr", "بەینەت": "Navdêr", "بەینەتدار": "Rengdêr", "بوختان": "Navdêr", "بوخچە": "Navdêr", "بوودینە": "Navdêr", "بووردن": "Lêker", "بووژاندن": "Lêker", "بووسە": "Navdêr", "بووم": "Navdêr", "بووواردن": "Lêker", "بووێژ": "Navdêr", "بوێر": "Rengdêr", "بۆچوون": "Navdêr", "بۆران": "Navdêr", "بۆرچین": "Navdêr", "بۆردن": "Lêker", "بۆق": "Navdêr", "بۆقەتە": "Navdêr", "بۆنە": "Navdêr", "بۆینباخ": "Navdêr", "بیانوو": "Navdêr", "بیانی": "Rengdêr", "بیبن": "Navdêr", "بیبی": "Navdêr", "بیجامە": "Navdêr", "بیچم": "Navdêr", "بیراز": "Navdêr", "بیرتەسک": "Rengdêr", "بیرە": "Navdêr", "بیروورِا": "Navdêr", "بیستا": "Navdêr", "بیستراو": "Rengdêr", "بیستن": "Lêker", "بیستەر": "Navdêr", "بیستۆک": "Navdêr", "بیڤر": "Navdêr", "بێتار": "Navdêr", "بێجگە": "Daçek", "بێخ": "Navdêr", "بێخبڕ": "Rengdêr", "بێزار": "Rengdêr", "بێژار": "Navdêr", "بێسەرووشوێن": "Rengdêr", "بێشەڵان": "Navdêr", "بێگانە": "Rengdêr", "بێگومان": "Hoker", "بێلایەن": "Rengdêr", "بێلایەنی": "Navdêr", "بێنەوبەرە": "Navdêr", "بێھیوا": "Rengdêr", "بێوەژن": "Navdêr", "پابەند": "Rengdêr", "پاتری": "Navdêr", "پاچ": "Navdêr", "پاداشت": "Navdêr", "پارێزگار": "Navdêr", "پاساو": "Navdêr", "پاسەوان": "Navdêr", "پانایی": "Navdêr", "پاندان": "Navdêr" } ekya2jkut68n4rxinrygvkfdhb8ur7f Şablon:hy-IPA 10 1358818 6342072 2026-08-24T13:02:33Z Wikihez 7344 [[:en:Template:hy-IPA]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6342072 wikitext text/x-wiki <includeonly>{{#invoke:hy-pronunciation|IPA}}</includeonly><noinclude>{{documentation}}</noinclude> thhbeoxtc6epafowvhznwk4rbcfkax2 Şablon:hy-IPA/belge 10 1358819 6342073 2026-08-24T13:02:33Z Wikihez 7344 [[:en:Template:hy-IPA/documentation]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6342073 wikitext text/x-wiki {{documentation subpage}} ==Usage== This template generates phonemic Armenian pronunciations both for Eastern Armenian and Western Armenian using [[Module:hy-pronunciation]]. It is used under the ===Pronunciation=== header։ :<code><nowiki>===Pronunciation===</nowiki></code> :<code><nowiki>{{hy-IPA}}</nowiki></code> For example, in {{qal|hy|կապիկ}} it will generate the following: {{hy-IPA|կապիկ}} '''Do not add it to an entry if you don't know the actual pronunciation''', because manual phonetic respelling is needed as the first parameter for handling irregular pronunciations and the unwritten schwa (գաղտնավանկի ը), e.g. in {{qal|hy|խորհուրդ}} and {{qal|hy|մտնել}}: :<code><nowiki>===Pronunciation===</nowiki></code> :<code><nowiki>{{hy-IPA|խորուրթ}}</nowiki></code> :<code><nowiki>===Pronunciation===</nowiki></code> :<code><nowiki>{{hy-IPA|մըտնել}}</nowiki></code> For colloquial pronunciations in addition to the standard ones use the parameter {{para|colle}} for Eastern Armenian and {{para|collw}} for Western Armenian, e.g. in {{qal|hy|սեղմել}}: :<code><nowiki>===Pronunciation===</nowiki></code> :<code><nowiki>{{hy-IPA|colle=սեխմել|collw=սեխմել}}</nowiki></code> Use the parameter {{para|W}} or {{para|E}} to disable the output of either variant. E.g. in {{qal|hy|բարդի}} use: :<code><nowiki>{{hy-IPA|W=0}}</nowiki></code> and in {{qal|hy|բարտի}} use: :<code><nowiki>{{hy-IPA|E=0}}</nowiki></code> To suppress the automatic addition of accent qualifiers use the parameter {{para|bare}}, e.g.: :<code><nowiki>{{hy-IPA|ճըղօ՛պուր|bare=on}}</nowiki></code> ==Alternative spellings== If a word has both a reformed and traditional orthography (like [[ազատություն]] and [[ազատութիւն]]), then we want to minimize duplicating the {{şx|hy-IPA}} entry. * For Western Armenian, if the reformed spelling has a pronunciation, then don't create a pronunciation for the traditional version. In the future, we may systematically reverse this restriction, and add Western pronunciations for all the traditionally-written words. * Similarly for Eastern Armenian, we don't think it's practical to duplicate the pronunciation for both traditional and reformed spellings. <includeonly> [[Category:Armenian pronunciation templates|pron]] </includeonly> qqt377ouxed6opynst2vvigfc6290ep Modul:hy-pronunciation 828 1358820 6342083 2026-08-24T13:02:54Z Wikihez 7344 [[:en:Module:hy-pronunciation]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6342083 Scribunto text/plain local export = {} local m_str_utils = require("Module:string utilities") local lang = require("Module:languages").getByCode("hy") local m_IPA = require("Module:IPA") local yesno_module = "Module:yesno" local toNFC = mw.ustring.toNFC local trim = m_str_utils.trim local ufind = m_str_utils.find local ugsub = m_str_utils.gsub local ulower = m_str_utils.lower local ufind = m_str_utils.find local unpack = unpack or table.unpack -- Lua 5.2 compatibility local insert = table.insert local concat = table.concat local trackfn = require("Module:debug").track local function track(page) trackfn("hy-pronunciation/" .. page) return true end -- single characters that map to IPA sounds local phonemic_chars_map = { -- Eastern Armenian east = { ["ա"] = "ɑ", ["բ"] = "b", ["գ"] = "ɡ", ["դ"] = "d", ["ե"] = "e", ["զ"] = "z", ["է"] = "e", ["ը"] = "ə", ["թ"] = "tʰ", ["ժ"] = "ʒ", ["ի"] = "i", ["լ"] = "l", ["խ"] = "χ", ["ծ"] = "t͡s", ["կ"] = "k", ["հ"] = "h", ["ձ"] = "d͡z", ["ղ"] = "ʁ", ["ճ"] = "t͡ʃ", ["մ"] = "m", ["յ"] = "j", ["ն"] = "n", ["շ"] = "ʃ", ["ո"] = "o", ["չ"] = "t͡ʃʰ", ["պ"] = "p", ["ջ"] = "d͡ʒ", ["ռ"] = "r", ["ս"] = "s", ["վ"] = "v", ["տ"] = "t", ["ր"] = "ɾ", ["ց"] = "t͡sʰ", ["ւ"] = "v", ["փ"] = "pʰ", ["ք"] = "kʰ", ["և"] = "ev", ["օ"] = "o", ["ֆ"] = "f", ["-"] = " ", ["’"] = "", }, -- Western Armenian west = { ["ա"] = "ɑ", ["բ"] = "p", ["գ"] = "k", ["դ"] = "t", ["ե"] = "e", ["զ"] = "z", ["է"] = "e", ["ը"] = "ə", ["թ"] = "t", ["ժ"] = "ʒ", ["ի"] = "i", ["լ"] = "l", ["խ"] = "χ", ["ծ"] = "d͡z", ["կ"] = "ɡ", ["հ"] = "h", ["ձ"] = "t͡s", ["ղ"] = "ʁ", ["ճ"] = "d͡ʒ", ["մ"] = "m", ["յ"] = "j", ["ն"] = "n", ["շ"] = "ʃ", ["ո"] = "o", ["չ"] = "t͡ʃ", ["պ"] = "b", ["ջ"] = "t͡ʃ", ["ռ"] = "ɾ", ["ս"] = "s", ["վ"] = "v", ["տ"] = "d", ["ր"] = "ɾ", ["ց"] = "t͡s", ["ւ"] = "v", ["փ"] = "p", ["ք"] = "k", ["և"] = "ev", ["օ"] = "o", ["ֆ"] = "f", ["-"] = " ", ["’"] = "", }, } -- character sequences of two that map to IPA sounds local phonemic_2chars_map = { east = { { "ու", "u" }, }, west = { -- if not in the initial position and if not preceded by [ɑeəoiu] { "(.?.?)յու", -- can be overridden by using "." function(before) if not (before == "" or ufind(before, "[%s#աեէիոօ]$") or before == "ու") then return before .. "ʏ" end end, }, { "ու", "u" }, { "էօ", "œ" }, -- Western Armenian inserts ə in the causative { "ցնել", "t͡sənel" }, }, } -- single characters that map to IPA sounds local phonetic_chars_map = { -- Eastern Armenian east = { ["ա"] = "ɑ", ["բ"] = "b", ["գ"] = "ɡ", ["դ"] = "d", ["ե"] = "e", ["զ"] = "z", ["է"] = "e", ["ը"] = "ə", ["թ"] = "tʰ", ["ժ"] = "ʒ", ["ի"] = "i", ["լ"] = "l", ["խ"] = "χ", ["ծ"] = "t͡s", ["կ"] = "k", ["հ"] = "h", ["ձ"] = "d͡z", ["ղ"] = "ʁ", ["ճ"] = "t͡ʃ", ["մ"] = "m", ["յ"] = "j", ["ն"] = "n", ["շ"] = "ʃ", ["ո"] = "o", ["չ"] = "t͡ʃʰ", ["պ"] = "p", ["ջ"] = "d͡ʒ", ["ռ"] = "r", ["ս"] = "s", ["վ"] = "v", ["տ"] = "t", ["ր"] = "ɾ", ["ց"] = "t͡sʰ", ["ւ"] = "v", ["փ"] = "pʰ", ["ք"] = "kʰ", ["և"] = "ev", ["օ"] = "o", ["ֆ"] = "f", ["-"] = " ", ["’"] = "", }, -- note that the default pronunciation of ostensible /ɾ/ is [ɹ] -- Western Armenian west = { ["ա"] = "ɑ", ["բ"] = "pʰ", ["գ"] = "kʰ", ["դ"] = "tʰ", ["ե"] = "e", ["զ"] = "z", ["է"] = "e", ["ը"] = "ə", ["թ"] = "tʰ", ["ժ"] = "ʒ", ["ի"] = "i", ["լ"] = "l", ["խ"] = "χ", ["ծ"] = "d͡z", ["կ"] = "ɡ", ["հ"] = "h", ["ձ"] = "t͡sʰ", ["ղ"] = "ʁ", ["ճ"] = "d͡ʒ", ["մ"] = "m", ["յ"] = "j", ["ն"] = "n", ["շ"] = "ʃ", ["ո"] = "o", ["չ"] = "t͡ʃʰ", ["պ"] = "b", ["ջ"] = "t͡ʃʰ", ["ռ"] = "ɾ", ["ս"] = "s", ["վ"] = "v", ["տ"] = "d", ["ր"] = "ɾ", ["ց"] = "t͡sʰ", ["ւ"] = "v", ["փ"] = "pʰ", ["ք"] = "kʰ", ["և"] = "ev", ["օ"] = "o", ["ֆ"] = "f", ["-"] = " ", ["’"] = "", }, } -- character sequences of two that map to IPA sounds local phonetic_2chars_map = { east = { { "ու", "u" }, }, west = { -- if not in the initial position and if not preceded by [ɑeəoiu] { "(.?.?)յու", -- can be overridden by using "." function(before) if not (before == "" or ufind(before, "[%s#աեէիոօ]$") or before == "ու") then return before .. "ʏ" end end, }, { "ու", "u" }, { "էօ", "œ" }, -- պ, տ, կ are not voiced after ս and շ { "սպ", "sp" }, { "ստ", "st" }, { "սկ", "sk" }, { "շպ", "ʃp" }, { "շտ", "ʃt" }, { "շկ", "ʃk" }, -- Western Armenian inserts ə in the causative { "ցնել", "t͡sʰənel" }, }, } function export.phonemic_IPA(phonemic, system) if not (phonemic_chars_map[system] and phonemic_2chars_map[system]) then error("Invalid system " .. tostring(system)) end phonemic = ulower(phonemic) -- mark word boundaries with #, as in phonetic_IPA, so that word-initial -- and word-final rules apply to every word of a multiword term phonemic = ugsub(phonemic, " | ", "# | #") phonemic = "##" .. ugsub(phonemic, " ", "# #") .. "##" for _, replacement in ipairs(phonemic_2chars_map[system]) do phonemic = ugsub(phonemic, unpack(replacement)) end -- ոու is pronounced ou phonemic = ugsub(phonemic, "ոːւ", "օու") -- ե and ո are pronounced as je and vo word-initially. phonemic = ugsub(phonemic, "#ե", "#յէ") phonemic = ugsub(phonemic, "#ո", "#վօ") -- except when followed by another վ. phonemic = ugsub(phonemic, "#վօվ", "#օվ") --final ք, from the ancient plural, is extrasyllabic and should be marked. phonemic = ugsub(phonemic, "([^ɑeiouəœʏ#])ք#", "%1.ք#") -- ոու is pronounced oov phonemic = ugsub(phonemic, "ոու", "օու") -- palatalization in the Eastern Armenian sequence -ությ-, especially in the suffix -ություն [considered non-standard by strict prescriptivists] if system == "east" then phonemic = ugsub(phonemic, "ությ", "ուցյ") phonemic = ugsub(phonemic, "([բդգձջզժց])([փթքցչ])", "%1%2") end phonemic = ugsub(phonemic, ".", phonemic_chars_map[system]) --oov is actually ou phonemic = ugsub(phonemic, "oov", "ou") if system == "west" then phonemic = ugsub(phonemic, "b([ptk])", "p%1") phonemic = ugsub(phonemic, "d([ptk])", "t%1") phonemic = ugsub(phonemic, "ɡ([ptk])", "k%1") phonemic = ugsub(phonemic, "d͡z([ptk])", "t͡s%1") phonemic = ugsub(phonemic, "d͡ʒ([ptk])", "t͡ʃ%1") phonemic = ugsub(phonemic, "z([ptk])", "s%1") phonemic = ugsub(phonemic, "ʒ([ptk])", "ʃ%1") end phonemic = ugsub(phonemic, "ʁ([ptksʃ])", "χ%1") phonemic = ugsub(phonemic, "v([ptksʃ])", "f%1") -- generating the stress phonemic = ugsub(phonemic, "%S+", function(word) -- Do not add a stress mark for monosyllabic words. Check to see if the word contains only a single instance of [ɑeəoiuœʏ]+. local numberOfVowels = select(2, ugsub(word, "[ɑeəoiuœʏ]", "%0")) -- If polysyllabic, add IPA stress mark using the following rules. The stress is always on the last syllable not -- formed by schwa [ə]. In some rare cases the stress is not on the last syllable. In such cases the stressed vowel -- is marked by the Armenian stress character <՛>, e.g. մի՛թե. So: -- 1) Find the vowel followed by <՛>․ If none, jump to step 2. Else check if it is the first vowel of the word. -- If true, put the IPA stress at the beginning, else do step 3. -- 2) Find the last non-schwa vowel, i.e. [ɑeoiuœʏ], -- 3) If the IPA symbol preceding it is [ɑeəoiuœʏ], i.e. a vowel, put the stress symbol between them, -- if it is NOT [ɑeoiuəœʏ], i.e. it is a consonant, -- put the stress before that consonant. if numberOfVowels > 1 then local rcount word, rcount = ugsub(word, "([^#ɑeoiuœʏə]*[ɑeoiuœʏə])՛", "ˈ%1") if rcount == 0 then word = ugsub(word, "([^#ɑeoiuœʏə]*[ɑeoiuœʏ][^ɑeoiuœʏə]*)#", "ˈ%1#") word = ugsub( word, "([^#ɑeoiuœʏə]*[ɑeəoiuœʏ]?[ɑeoiuœʏ][^ɑeoiuœʏə]*ə[^ɑeoiuœʏə]*)#", "ˈ%1#" ) end -- Including () in the second and third sets will only work -- if () never encloses a vowel. word = ugsub(word, "([ɑeəoiuœʏ])ˈ([^#ɑeoiuœʏə()]+)([^#ɑeoiuœʏəːˈʰ()j])", "%1%2ˈ%3") word = ugsub(word, "(.)͡ˈ", "ˈ%1͡") return word end end) -- move stress marker out of opening/closing parentheses if system == "east" or system == "west" then phonemic = ugsub(phonemic, "ˈ%)", ")ˈ") phonemic = ugsub(phonemic, "%(ˈ", "ˈ(") end phonemic = ugsub(phonemic, "#", "") -- "." prevents assimilation and can act as a dummy initial consonant, so must be removed. phonemic = phonemic:gsub("%.", "") phonemic = trim(phonemic) return toNFC(phonemic) end function export.phonetic_IPA(phonetic, system) if not (phonetic_chars_map[system] and phonetic_2chars_map[system]) then error("Invalid system " .. tostring(system)) end phonetic = ulower(phonetic) -- then long consonants that are orthographically geminated. phonetic = ugsub(phonetic, "(.)%1", "%1ː") phonetic = ugsub(phonetic, " | ", "# | #") phonetic = "##" .. ugsub(phonetic, " ", "# #") .. "##" for _, replacement in ipairs(phonetic_2chars_map[system]) do phonetic = ugsub(phonetic, unpack(replacement)) end -- ոու is pronounced ou phonetic = ugsub(phonetic, "ոːւ", "օու") -- ե and ո are pronounced as je and vo word-initially. phonetic = ugsub(phonetic, "#ե", "#յէ") phonetic = ugsub(phonetic, "#ո", "#վօ") -- except when followed by another վ. phonetic = ugsub(phonetic, "#վօվ", "#օվ") -- ոու is pronounced oov phonetic = ugsub(phonetic, "ոու", "օու") phonetic = ugsub(phonetic, ".", phonetic_chars_map[system]) --oov is actually ou phonetic = ugsub(phonetic, "oov", "ou") --իա at the end of words is pronounced ja phonetic = ugsub(phonetic, "iɑ#", "jɑ#") -- insertion of the optional glide phonetic = ugsub(phonetic, "iɑ", "i(j)ɑ") -- cases like խավիար, Մարիամ where "iɑ" is "jɑ" should be overriden manually: խավյար, Մարյամ. This is done automatically for final -իա phonetic = ugsub(phonetic, "ie", "i(j)e") phonetic = ugsub(phonetic, "io", "i(j)o") phonetic = ugsub(phonetic, "iu", "i(j)u") phonetic = ugsub(phonetic, "ɑi", "ɑ(j)i") phonetic = ugsub(phonetic, "eɑ", "e(j)ɑ") -- cases like հոգեառ, ափեափ where no glide inserted because of boundaries between morphemes need to be handled manually by inserting a dot: հոքե.առ, ափե.ափ phonetic = ugsub(phonetic, "ei", "e(j)i") phonetic = ugsub(phonetic, "eu", "e(j)u") phonetic = ugsub(phonetic, "oe", "o(j)e") phonetic = ugsub(phonetic, "oi", "o(j)i") phonetic = ugsub(phonetic, "ui", "u(j)i") if ufind(phonetic, "(j)", 1, true) then -- [[Wiktionary:Tracking/hy-pronunciation/optional glide]] track("optional glide") end -- assimilation: ppʰ = pʰː; ttʰ = tʰː; ; kkʰ = kʰː phonetic = ugsub(phonetic, "ppʰ", "pʰː") phonetic = ugsub(phonetic, "ttʰ", "tʰː") phonetic = ugsub(phonetic, "kkʰ ", "kʰː") -- nasal assimilation phonetic = ugsub(phonetic, "n([ɡk]+)", "ŋ%1") -- pseudo-palatalization under the influence of Russian [COLLOQUIAL, NOT STANDARD] --phonetic = ugsub(phonetic, "tj", "t͡sj") --phonetic = ugsub(phonetic, "tʰj", "t͡sʰj") --phonetic = ugsub(phonetic, "dj", "d͡zj") -- palatalization in the Eastern Armenian sequence -ությ-, especially in the suffix -ություն [considered non-standard by strict prescriptivists] if system == "east" then phonetic = ugsub(phonetic, "utʰj", "ut͡sʰj") end -- trilling of ɾ in some positions [COLLOQUIAL, NOT STANDARD] --phonetic = ugsub(phonetic, "ɾt", "rt") -- devoicing of consonants in some positions phonetic = ugsub(phonetic, "bpʰ", "pʰː") phonetic = ugsub(phonetic, "dpʰ", "tʰpʰ") phonetic = ugsub(phonetic, "ɡpʰ", "kʰpʰ") phonetic = ugsub(phonetic, "d͡zpʰ", "t͡sʰpʰ") phonetic = ugsub(phonetic, "d͡ʒpʰ", "t͡ʃʰpʰ") phonetic = ugsub(phonetic, "vpʰ", "fpʰ") phonetic = ugsub(phonetic, "ʒpʰ", "ʃpʰ") phonetic = ugsub(phonetic, "btʰ", "pʰtʰ") phonetic = ugsub(phonetic, "dtʰ", "tʰː") phonetic = ugsub(phonetic, "ɡtʰ", "kʰtʰ") phonetic = ugsub(phonetic, "d͡ztʰ", "t͡sʰtʰ") phonetic = ugsub(phonetic, "d͡ʒtʰ", "t͡ʃʰtʰ") phonetic = ugsub(phonetic, "vtʰ", "ftʰ") phonetic = ugsub(phonetic, "ʒtʰ", "ʃtʰ") phonetic = ugsub(phonetic, "bkʰ", "pʰkʰ") phonetic = ugsub(phonetic, "dkʰ", "tkʰ") phonetic = ugsub(phonetic, "ɡkʰ", "kʰː") phonetic = ugsub(phonetic, "d͡zkʰ", "t͡sʰkʰ") phonetic = ugsub(phonetic, "d͡ʒkʰ", "t͡ʃʰkʰ") phonetic = ugsub(phonetic, "vkʰ", "fkʰ") phonetic = ugsub(phonetic, "ʒkʰ", "ʃkʰ") phonetic = ugsub(phonetic, "bt͡ʃʰ", "pʰt͡ʃʰ") phonetic = ugsub(phonetic, "dt͡ʃʰ", "tʰt͡ʃʰ") phonetic = ugsub(phonetic, "ɡt͡ʃʰ", "kʰt͡ʃʰ") phonetic = ugsub(phonetic, "d͡zt͡ʃʰ", "t͡sʰt͡ʃʰ") phonetic = ugsub(phonetic, "d͡ʒt͡ʃʰ", "t͡ʃʰː") phonetic = ugsub(phonetic, "vt͡ʃʰ", "ft͡ʃʰ") phonetic = ugsub(phonetic, "ʒt͡ʃʰ", "ʃt͡ʃʰ") phonetic = ugsub(phonetic, "bt͡sʰ", "pʰt͡sʰ") phonetic = ugsub(phonetic, "dt͡sʰ", "tʰt͡sʰ") phonetic = ugsub(phonetic, "ɡt͡sʰ", "kʰt͡sʰ") phonetic = ugsub(phonetic, "d͡zt͡sʰ", "t͡sʰː") phonetic = ugsub(phonetic, "d͡ʒt͡sʰ", "t͡ʃʰt͡sʰ") phonetic = ugsub(phonetic, "vt͡sʰ", "ft͡sʰ") phonetic = ugsub(phonetic, "ʒt͡sʰ", "ʃt͡sʰ") phonetic = ugsub(phonetic, "zpʰ", "spʰ") phonetic = ugsub(phonetic, "ztʰ", "stʰ") phonetic = ugsub(phonetic, "zkʰ", "skʰ") phonetic = ugsub(phonetic, "ʁt͡s", "χt͡s") phonetic = ugsub(phonetic, "ʁt͡ʃ", "χt͡ʃ") phonetic = ugsub(phonetic, "ʁp", "χp") phonetic = ugsub(phonetic, "ʁt", "χt") phonetic = ugsub(phonetic, "ʁk", "χk") phonetic = ugsub(phonetic, "ʁs", "χs") phonetic = ugsub(phonetic, "ʁʃ", "χʃ") phonetic = ugsub(phonetic, "vt͡s", "ft͡s") phonetic = ugsub(phonetic, "vt͡ʃ", "ft͡ʃ") phonetic = ugsub(phonetic, "vp", "fp") phonetic = ugsub(phonetic, "vt", "ft") phonetic = ugsub(phonetic, "vk", "fk") phonetic = ugsub(phonetic, "vs", "fs") phonetic = ugsub(phonetic, "vʃ", "fʃ") if system == "west" then phonetic = ugsub(phonetic, "χd͡z", "χt͡s") phonetic = ugsub(phonetic, "χd͡ʒ", "χt͡ʃ") phonetic = ugsub(phonetic, "χb", "χp") phonetic = ugsub(phonetic, "χd", "χt") phonetic = ugsub(phonetic, "χɡ", "χk") end if system == "west" then phonetic = ugsub(phonetic, "t͡ʃʰd͡z", "t͡ʃʰt͡s") phonetic = ugsub(phonetic, "t͡sʰd͡z", "t͡sʰt͡s") phonetic = ugsub(phonetic, "pʰd͡z", "pʰt͡s") phonetic = ugsub(phonetic, "tʰd͡z", "tʰt͡s") phonetic = ugsub(phonetic, "kʰd͡z", "kʰt͡s") phonetic = ugsub(phonetic, "t͡ʃʰd͡ʒ", "t͡ʃʰt͡ʃ") phonetic = ugsub(phonetic, "t͡sʰd͡ʒ", "t͡sʰt͡ʃ") phonetic = ugsub(phonetic, "pʰd͡ʒ", "pʰt͡ʃ") phonetic = ugsub(phonetic, "tʰd͡ʒ", "tʰt͡ʃ") phonetic = ugsub(phonetic, "kʰd͡ʒ", "kʰt͡ʃ") phonetic = ugsub(phonetic, "t͡ʃʰb", "t͡ʃʰp") phonetic = ugsub(phonetic, "t͡sʰb", "t͡sʰp") phonetic = ugsub(phonetic, "pʰb", "pʰp") phonetic = ugsub(phonetic, "tʰb", "tʰp") phonetic = ugsub(phonetic, "kʰb", "kʰp") phonetic = ugsub(phonetic, "t͡ʃʰd", "t͡ʃʰt") phonetic = ugsub(phonetic, "t͡sʰd", "t͡sʰt") phonetic = ugsub(phonetic, "pʰd", "pʰt") phonetic = ugsub(phonetic, "tʰd", "tʰt") phonetic = ugsub(phonetic, "kʰd", "kʰt") phonetic = ugsub(phonetic, "t͡ʃʰɡ", "t͡ʃʰk") phonetic = ugsub(phonetic, "t͡sʰɡ", "t͡sʰk") phonetic = ugsub(phonetic, "pʰɡ", "pʰk") phonetic = ugsub(phonetic, "tʰɡ", "tʰk") phonetic = ugsub(phonetic, "kʰɡ", "kʰk") end -- prothetic ə before {s/ʃ/z}{p/t/k/b/d/g} in Western Armenian; this rule is not the norm in Eastern Armenian anymore if system == "west" then phonetic = ugsub(phonetic, "#([sʃz][ptkbdɡ]+)", "#ə%1") end -- generating the stress phonetic = ugsub(phonetic, "%S+", function(word) -- Do not add a stress mark for monosyllabic words. Check to see if the word contains only a single instance of [ɑeəoiuœʏ]+. local numberOfVowels = select(2, ugsub(word, "[ɑeəoiuœʏ]", "%0")) -- If polysyllabic, add an acute using the following rules. The stress is always on the last syllable not -- formed by schwa [ə]. In some rare cases the stress is not on the last syllable. In such cases the stressed vowel -- is marked by the Armenian stress character <՛>, e.g. մի՛թե. So: -- 1) Find the vowel followed by <՛> and put the acute on it․ If none, go to step 2. -- 2) Find the last non-schwa vowel, i.e. [ɑeoiuœʏ], and put the acute on it. if numberOfVowels > 1 then local rcount word, rcount = ugsub(word, "([ɑeoiuœʏə])՛", "%1́") if rcount == 0 then word = ugsub(word, "([ɑeoiuœʏ])([^ɑeoiuœʏə]*)(ə?[^ɑeoiuœʏə]?#)", "%1́%2%3") end return word end end) -- geminated ր is phonetically [ɹː], not [ɾː] phonetic = ugsub(phonetic, "ɾː", "ɹː") if system == "east" or system == "west" then phonetic = ugsub(phonetic, "([td])%1͡([sʃzʒ])(ʰ?)", "%1̚%1͡%2%3") phonetic = ugsub(phonetic, "([td])͡([sʃzʒ])(ʰ?)ː", "%1̚%1͡%2%3") end -- "." prevents assimilation and can act as a dummy initial consonant, so must be removed. phonetic = phonetic:gsub("%.", "") phonetic = ugsub(phonetic, "#", "") phonetic = trim(phonetic) return toNFC(phonetic) end function export.generic_IPA(frame) local params = { [1] = {}, ["system"] = {}, } local parent_args = frame:getParent().args local args = require("Module:parameters").process(parent_args, params, nil, "hy-pronunciation", "IPA") local pagename = mw.loadData("Module:headword/data").pagename end function export.IPA(frame) local params = { E = { type = "boolean", default = "true" }, W = { type = "boolean", default = "true" }, [1] = { list = true }, e = { list = true, allow_holes = true }, colle = true, w = { list = true, allow_holes = true }, collw = true, bare = true, pagename = true, } local parent_args = frame:getParent().args local args = require("Module:parameters").process(parent_args, params, nil, "hy-pronunciation", "IPA") local lines = {} local function ins(text) insert(lines, text) end local function get_pagename() return args.pagename or mw.loadData("Module:headword/data").pagename end local function generate_pron(pron, system) return { pron = ("/%s/ [%s]"):format(export.phonemic_IPA(pron, system), export.phonetic_IPA(pron, system)) } end if args.bare then local bare = require(yesno_module)(args.bare, args.bare) if bare == true then bare = "east" end if bare then local items = {} if not args[1][1] then args[1][1] = get_pagename() end for _, pron in ipairs(args[1]) do insert(items, generate_pron(pron, bare)) end return m_IPA.format_IPA_full { lang = lang, items = items, } end end local function insert_east_or_west(prons, system, standard_accent, coll_pron, coll_qualifier) local items = {} for _, pron in ipairs(prons) do if pron then insert(items, generate_pron(pron, system)) end end ins("* " .. m_IPA.format_IPA_full({ lang = lang, items = items, a = { standard_accent }, })) if coll_pron then ins("** " .. m_IPA.format_IPA_full({ lang = lang, items = { generate_pron(coll_pron, system) }, q = { coll_qualifier, "colloquial" }, })) end end local function is_empty(tbl) return tbl == nil or next(tbl) == nil end local function first_item_is_nil_in_non_empty_table(tbl) if is_empty(tbl) then return false end return tbl[1] == nil end local function insert_all_from_table(result, source) for _, value in ipairs(source) do if value then insert(result, value) end end end if #args[1] == 1 and args[1][1] == get_pagename() then -- [[Wiktionary:Tracking/hy-pronunciation/input equal to pagename]] track("input equal to pagename") end if args.E then local eastern = {} if not is_empty(args[1]) then insert_all_from_table(eastern, args[1]) elseif not is_empty(args.e) then if first_item_is_nil_in_non_empty_table(args.e) then args.e[1] = get_pagename() end insert_all_from_table(eastern, args.e) else insert(eastern, get_pagename()) end insert_east_or_west( eastern, "east", "hy-E", args.colle, "Eastern Armenian" ) end if args.W then local western = {} if not is_empty(args[1]) then insert_all_from_table(western, args[1]) elseif not is_empty(args.w) then if first_item_is_nil_in_non_empty_table(args.w) then args.w[1] = get_pagename() end insert_all_from_table(western, args.w) else insert(western, get_pagename()) end insert_east_or_west( western, "west", "hy-W", args.collw, "Western Armenian" ) end return concat(lines, "\n") end return export 7vvycsf6c71gg35ysq1zn8gvuwv17vi Modul:hy-pronunciation/belge 828 1358821 6342084 2026-08-24T13:02:55Z Wikihez 7344 [[:en:Module:hy-pronunciation/documentation]] hat kopîkirin ([[Bikarhêner:Wikihez/skrîpt/js/kopi-enWikt.js|kopi-enWikt.js]]) 6342084 wikitext text/x-wiki This module implements {{temp|hy-pron}}. For testcases, see [[Module:hy-pronunciation/testcases]]. 4tghuq3xn5nou0hua5a1dv4tl6oqjrk لێکدانەوە 0 1358823 6342213 2026-08-24T20:17:03Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[şirove]], [[şîrovekirin]], [[tefsîr]] (zelalkirin û ravekirina wateya tiştekî) #* {{mînak|ckb|لێکدانەوەی تۆ بۆ ئەم ڕووداوە چییە؟|tr=Lêkdanewey to bo em rûdawe çîye?|werger=Şiroveya te ji bo vê bûyerê çi ye?}} #* {{mînak|ckb|بۆ ئەم شیعرە چەندین لێکدانەوەی جیاواز هەیە.|tr=Bo em şî're çendîn lêkdanewey ciyawaz heye.|werger=Ji..." hat çêkirin 6342213 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[şirove]], [[şîrovekirin]], [[tefsîr]] (zelalkirin û ravekirina wateya tiştekî) #* {{mînak|ckb|لێکدانەوەی تۆ بۆ ئەم ڕووداوە چییە؟|tr=Lêkdanewey to bo em rûdawe çîye?|werger=Şiroveya te ji bo vê bûyerê çi ye?}} #* {{mînak|ckb|بۆ ئەم شیعرە چەندین لێکدانەوەی جیاواز هەیە.|tr=Bo em şî're çendîn lêkdanewey ciyawaz heye.|werger=Ji bo vê helbestê gelek şiroveyên cuda hene.}} ==== Hevwate ==== * {{g|ckb|ڕاڤە}} * {{g|ckb|تەفسیر}} * {{g|ckb|شیکردنەوە}} ==== Lêker ==== * {{g|ckb|لێک دانەوە}} pcw57bd7ppbupq47mau7w49zwvc9opq 6342214 6342213 2026-08-24T20:17:38Z Şêr 1103 6342214 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[şirove]], [[şîrovekirin]], [[tefsîr]] (zelalkirin û ravekirina wateya tiştekî) #: {{mînak|ckb|لێکدانەوەی تۆ بۆ ئەم ڕووداوە چییە؟|tr=Lêkdanewey to bo em rûdawe çîye?|werger=Şiroveya te ji bo vê bûyerê çi ye?}} #: {{mînak|ckb|بۆ ئەم شیعرە چەندین لێکدانەوەی جیاواز هەیە.|tr=Bo em şî're çendîn lêkdanewey ciyawaz heye.|werger=Ji bo vê helbestê gelek şiroveyên cuda hene.}} ==== Hevwate ==== * {{g|ckb|ڕاڤە}} * {{g|ckb|تەفسیر}} * {{g|ckb|شیکردنەوە}} ==== Lêker ==== * {{g|ckb|لێک دانەوە}} l8dpzuuc6e5c7srjh90i9t7lz1jc8zm 6342216 6342214 2026-08-24T20:19:02Z Şêr 1103 maneya :) 6342216 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[şirove]], [[şîrovekirin]], [[tefsîr]] (zelalkirin û ravekirina maneya tiştekî) #: {{mînak|ckb|لێکدانەوەی تۆ بۆ ئەم ڕووداوە چییە؟|tr=Lêkdanewey to bo em rûdawe çîye?|werger=Şiroveya te ji bo vê bûyerê çi ye?}} #: {{mînak|ckb|بۆ ئەم شیعرە چەندین لێکدانەوەی جیاواز هەیە.|tr=Bo em şî're çendîn lêkdanewey ciyawaz heye.|werger=Ji bo vê helbestê gelek şiroveyên cuda hene.}} ==== Hevwate ==== * {{g|ckb|ڕاڤە}} * {{g|ckb|تەفسیر}} * {{g|ckb|شیکردنەوە}} ==== Lêker ==== * {{g|ckb|لێک دانەوە}} d0qt71w5vyx0l3nrnowg9hd8bc7d41u 6342228 6342216 2026-08-24T20:41:09Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342228 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[şirove]], [[şîrovekirin]], [[tefsîr]] (zelalkirin û ravekirina maneya tiştekî) #: {{mînak|ckb|لێکدانەوەی تۆ بۆ ئەم ڕووداوە چییە؟|tr=Lêkdanewey to bo em rûdawe çîye?|werger=Şiroveya te ji bo vê bûyerê çi ye?}} #: {{mînak|ckb|بۆ ئەم شیعرە چەندین لێکدانەوەی جیاواز هەیە.|tr=Bo em şî're çendîn lêkdanewey ciyawaz heye.|werger=Ji bo vê helbestê gelek şiroveyên cuda hene.}} ==== Hevmane ==== * {{g|ckb|ڕاڤە}} * {{g|ckb|تەفسیر}} * {{g|ckb|شیکردنەوە}} ==== Lêker ==== * {{g|ckb|لێک دانەوە}} fz4gae9jwz5cysutnbvh77y89n0irlx kırkkat 0 1358824 6342218 2026-08-24T20:27:59Z Nenas nepênî 14450 ([[Mediawiki:Gadget-start.js|WF:NÛ]] v.2.0) +tr:navdêr:Hezarpizrûk 6342218 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # {{e|tr|Hezarpizûrk}} [[Hezarpizrûk|Hezarpizrûk]] #: {{hevmane|tr|Kırkat|Kırkkat}} #: {{nimûne|tr|Hezarpizrûka pez, hezarpizrûka çêlekê|rêz=1}} ==== Tewandin ==== Kuzu kırkkatı, dana kırkkatı ==== Etîmolojî ==== {{ji?|tr}} n7fp9br68lwgqevx1dvkjbobz0s6fw2 6342221 6342218 2026-08-24T20:33:53Z Nenas nepênî 14450 /* Navdêr */ 6342221 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[Hezarpizrûk|Hezarpizrûk]] # Hezarpizûrk #: {{hevmane|tr|Kırkat|Kırkkat}} #: {{nimûne|tr|Hezarpizrûka pez, hezarpizrûka çêlekê|rêz=1}} ==== Tewandin ==== Kuzu kırkkatı, dana kırkkatı ==== Etîmolojî ==== {{ji?|tr}} 156uuko4941q0n57yzwecm8j2rq2q09 6342222 6342221 2026-08-24T20:34:41Z Nenas nepênî 14450 /* Navdêr */ 6342222 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[Hezarpizrûk|Hezarpizrûk]] # Hezarpizrûk # Hezarpizûrk #: {{hevmane|tr|Kırkat|Kırkkat}} #: {{nimûne|tr|Hezarpizrûka pez, hezarpizrûka çêlekê|rêz=1}} ==== Tewandin ==== Kuzu kırkkatı, dana kırkkatı ==== Etîmolojî ==== {{ji?|tr}} et8aipxyke8rut5pwnxtm0f3diwajaw 6342250 6342222 2026-08-24T22:12:10Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir, --Valahiyên nehewce.) 6342250 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[Hezarpizrûk]] # Hezarpizrûk # Hezarpizûrk #: {{hevmane|tr|Kırkat|Kırkkat}} #: {{nimûne|tr|Hezarpizrûka pez, hezarpizrûka çêlekê|rêz=1}} ==== Tewandin ==== Kuzu kırkkatı, dana kırkkatı ==== Etîmolojî ==== {{ji?|tr}} 7wdswhounq5cfue0ep1pxmppu68zyfo 6342331 6342250 2026-08-25T05:25:47Z Wikihez 7344 /* Tirkî */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342331 wikitext text/x-wiki == {{ziman|tr}} == === Navdêr === {{navdêr|tr}} # [[hezarpizrûk]] #: {{nimûne|tr|Kuzu kırkkatı, dana kırkkatı|Hezarpizrûka pez, hezarpizrûka çêlekê|rêz=1}} 8g2k7eysoos5vvhy6prjzued9arxdyl نەرمامێر 0 1358825 6342220 2026-08-24T20:33:52Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û rênimayiyên xebitandina kompûterê; bi almanî: ''Software'') #* {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo hejmardariyê tê bikaranîn.}} #* {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehên..." hat çêkirin 6342220 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û rênimayiyên xebitandina kompûterê; bi almanî: ''Software'') #* {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo hejmardariyê tê bikaranîn.}} #* {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Dijwate ==== * {{g|ckb|ڕەقامێر}} ==== Hevwate ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} jkfdi10s01wq4686o23i8bn1yem8wbj 6342224 6342220 2026-08-24T20:38:06Z Şêr 1103 werger li vir ne hewce ne, ev ji ku derket 6342224 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û rênimayiyên xebitandina kompûterê) #* {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo hejmardariyê tê bikaranîn.}} #* {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Dijwate ==== * {{g|ckb|ڕەقامێر}} ==== Hevwate ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} 16uk7y79ilmvzcsahm0jhkl6fxlixai 6342225 6342224 2026-08-24T20:39:17Z Şêr 1103 ûps, : 6342225 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û rênimayiyên xebitandina kompûterê) #: {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo hejmardariyê tê bikaranîn.}} #: {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Dijwate ==== * {{g|ckb|ڕەقامێر}} ==== Hevwate ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} 7e2aeeuve3vwoe42gn9lw5y6ti5uile 6342227 6342225 2026-08-24T20:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342227 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û rênimayiyên xebitandina kompûterê) #: {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo hejmardariyê tê bikaranîn.}} #: {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Hevmane ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Dijmane ==== * {{g|ckb|ڕەقامێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} mgs45vy52gcolattjrup08ur2k166yo 6342238 6342227 2026-08-24T21:01:09Z Şêr 1103 6342238 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] (hemû bername û talîmatên xebitandina kompûterê) #: {{mînak|ckb|ئەم نەرمامێرە بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo mihasebeyê tê bikaranîn.}} #: {{mînak|ckb|کۆمپانیاکە نەرمامێری نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Hevmane ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Dijmane ==== * {{g|ckb|ڕەقامێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} gvhhbu0cdxga9qdsn6fmcgwgnqovy0u 6342241 6342238 2026-08-24T21:16:29Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: +[[Şablon:îzah|îzah]] 6342241 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[nermalav]] {{îzah|hemû bername û talîmatên xebitandina kompûterê}} #: {{mînak|ckb|ئەم '''نەرمامێرە''' بۆ ژمێریاری بەکاردێت.|tr=Em nermamêre bo jimêryarî bekardêt.|werger=Ev nermalav ji bo mihasebeyê tê bikaranîn.}} #: {{mînak|ckb|کۆمپانیاکە '''نەرمامێری''' نوێ بەرهەم دەهێنێت.|tr=Kompanyake nermamêrî nwê berhem dehênêt.|werger=Kompanî nermalavên nû hildiberîne.}} ==== Hevmane ==== * {{g|ckb|نەرمەکاڵا}} * {{g|ckb|سۆفتوێر}} ==== Dijmane ==== * {{g|ckb|ڕەقامێر}} ==== Têkildar ==== * {{g|ckb|ئامێر}} * {{g|ckb|بەرنامە}} * {{g|ckb|کۆمپیوتەر}} 4hcmyn7tmofvht1t6s55lhnuyvlbuvf hezarpizrûk 0 1358826 6342230 2026-08-24T20:42:06Z Nenas nepênî 14450 ([[Mediawiki:Gadget-start.js|WF:NÛ]] v.2.0) +ku:navdêr: 6342230 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # {{mane?|ku}} #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} ==== Tewandin ==== {{ku-tewîn-nav|nêr}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} ll2tzas22ur8wvodh28tz6fwsjkoylz 6342231 6342230 2026-08-24T20:44:22Z Nenas nepênî 14450 /* Tewandin */ 6342231 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # {{mane?|ku}} #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} {{ku-tewîn-nav|Mê|Mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} hqdoeszouu7ndna1pmpayggq6wakk9w 6342232 6342231 2026-08-24T20:46:13Z Şêr 1103 Werger: +almanî : [[Blättermagen]] (bi alîkarî) 6342232 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # {{mane?|ku}} #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} {{ku-tewîn-nav|Mê|Mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} 8g2t2mcnbk5ww395zu65e2gdzhimgb7 6342233 6342232 2026-08-24T20:53:13Z Şêr 1103 6342233 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # Beşa sêyem a [[mîde]]ya heywanên [[kavêj]] (wek [[çêlek]], [[mîh]] û [[bizin]]), a ku di hundirê wê ji gelek qat û perdeyên tenik ên wek rûpelên pirtûkê pêk tê û dikeve navbera [[retîkulum]] û [[şirdan]]ê. #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} f8bkws6188mt9gpmcwz1zqylpvdetoy 6342234 6342233 2026-08-24T20:53:45Z Şêr 1103 Werger: +îngilîzî : [[omasum]] (bi alîkarî) 6342234 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # Beşa sêyem a [[mîde]]ya heywanên [[kavêj]] (wek [[çêlek]], [[mîh]] û [[bizin]]), a ku di hundirê wê ji gelek qat û perdeyên tenik ên wek rûpelên pirtûkê pêk tê û dikeve navbera [[retîkulum]] û [[şirdan]]ê. #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|en}}: {{W+|en|omasum}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} 2ppnxt88aqtvqriiwmzt48jsav3rz4b 6342247 6342234 2026-08-24T21:34:16Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342247 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # Beşa sêyem a [[mîde]]ya heywanên [[kavêj]] (wek [[çêlek]], [[mîh]] û [[bizin]]), a ku di hundirê wê ji gelek qat û perdeyên tenik ên wek rûpelên pirtûkê pêk tê û dikeve navbera [[retîkulum]] û [[şirdan]]ê. #: {{hevmane|ku|Hezarpizrûk|Hezarpizûrk|Hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} #* {{jêder-kovar|ku|nivîskar=Suut Kılıç|sernav=Ez û Hez|kovar={{w|Nûdem (kovar)|Nûdem}}|hejmar=10|sal=1994|rûpel=77|jêgirtin=Ev bû mehek ku jiyan, bêyî min derbas dibe. Dilê min dixewire, hildibe, lê dike nake firseta herikandinê nabîne. Ev mehek e ku min xwe ji bîr kiriye. Li aliyekî Ezê min, berê xwe dide cihekî û li aliyê din Hezê min, ji qehra, xwe dixe nav '''hezarpizrûkên''' xwe. Ji hev belavbûn, qey wiha ye.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|en}}: {{W+|en|omasum}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} acw6ls2dhzw07nqalvcw8q4js7u4a7b 6342305 6342247 2026-08-24T23:28:36Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342305 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # Beşa sêyem a [[mîde]]ya heywanên [[kavêj]] (wek [[çêlek]], [[mîh]] û [[bizin]]), a ku di hundirê wê ji gelek qat û perdeyên tenik ên wek rûpelên pirtûkê pêk tê û dikeve navbera [[retîkulum]] û [[şirdan]]ê. #: {{alt-r|ku|hezarpizûrk}} #: {{hevmane|ku|hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} #* {{jêder-kovar|ku|nivîskar=Suut Kılıç|sernav=Ez û Hez|kovar={{w|Nûdem (kovar)|Nûdem}}|hejmar=10|sal=1994|rûpel=77|jêgirtin=Ev bû mehek ku jiyan, bêyî min derbas dibe. Dilê min dixewire, hildibe, lê dike nake firseta herikandinê nabîne. Ev mehek e ku min xwe ji bîr kiriye. Li aliyekî Ezê min, berê xwe dide cihekî û li aliyê din Hezê min, ji qehra, xwe dixe nav '''hezarpizrûkên''' xwe. Ji hev belavbûn, qey wiha ye.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser|?|1}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|en}}: {{W+|en|omasum}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} 6ui9gyv2leea3yjznabx4nqg8e9v6zl 6342306 6342305 2026-08-24T23:28:52Z Wikihez 7344 /* Werger */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342306 wikitext text/x-wiki == {{ziman|ku}} == === Navdêr === {{navdêr|ku|c=m}} # Beşa sêyem a [[mîde]]ya heywanên [[kavêj]] (wek [[çêlek]], [[mîh]] û [[bizin]]), a ku di hundirê wê ji gelek qat û perdeyên tenik ên wek rûpelên pirtûkê pêk tê û dikeve navbera [[retîkulum]] û [[şirdan]]ê. #: {{alt-r|ku|hezarpizûrk}} #: {{hevmane|ku|hûrk}} #: {{nimûne|ku|'''Hezarpizrûka''' pez, hezarpizrûka berxikê,}} #: {{nimûne|ku|'''hezarpizrûka''' çêlekê gelek mezine}} #* {{jêder-kovar|ku|nivîskar=Suut Kılıç|sernav=Ez û Hez|kovar={{w|Nûdem (kovar)|Nûdem}}|hejmar=10|sal=1994|rûpel=77|jêgirtin=Ev bû mehek ku jiyan, bêyî min derbas dibe. Dilê min dixewire, hildibe, lê dike nake firseta herikandinê nabîne. Ev mehek e ku min xwe ji bîr kiriye. Li aliyekî Ezê min, berê xwe dide cihekî û li aliyê din Hezê min, ji qehra, xwe dixe nav '''hezarpizrûkên''' xwe. Ji hev belavbûn, qey wiha ye.}} ==== Tewandin ==== {{ku-tewîn-nav|mê}} ==== Etîmolojî ==== {{ji?|ku}} ==== Werger ==== {{werger-ser}} * {{Z|de}}: {{W+|de|Blättermagen|n}} * {{Z|en}}: {{W+|en|omasum}} * {{Z|tr}}: {{W|tr|Kırkkat}}, {{W|tr|Kırkat}} {{werger-bin}} g268mkdlgjtp1iq0l42jbrf5qkga3kh میوان 0 1358827 6342277 2026-08-24T22:41:24Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]], [[hêwir]] (kesê ku diçe serdana malekê an cihekî din) #* {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}}" hat çêkirin 6342277 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]], [[hêwir]] (kesê ku diçe serdana malekê an cihekî din) #* {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} 001mz4onq1vr0yfu03utx5tc43fqib7 6342278 6342277 2026-08-24T22:42:30Z Şêr 1103 6342278 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} #: [[mêvan]], [[hêwir]] (kesê ku diçe serdana malekê an cihekî din) #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} 7u2543jrne9avvfcwpnjwvyu78sgkxp 6342287 6342278 2026-08-24T22:55:41Z Wikihez 7344 ([[m:Special:MyLanguage/User:Jon Harald Søby/diffedit|diffedit]]) 6342287 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]], [[hêwir]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} fhuwo3w4ocqdgzbn36lefou8rfm0tak 6342288 6342287 2026-08-24T22:56:39Z Şêr 1103 6342288 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} 93i7xav0jiskznjf7w11ij4wzlgog6q 6342293 6342288 2026-08-24T23:15:37Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342293 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} #* {{jêder-websîte|ckb|nivîskar=شێرکۆ بێکەس|sernav=بۆ دوو میوان|websîte=zaniary.com|url=https://zaniary.com/blog/627d758973d8c|tarîx=2026-08-24|jêgirtin=بارانیش جۆگە شیعرێکی ئەنووسیەوە. <br>لە جۆلانەی شەپۆلیشدا<br>شیعریش بەدەم سەمای وشە و درەختەوە<br>بۆ دوو دڵداری '''میوانی<br>دیوانی''' باران و کەژ و}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} l2wfrbo7pm21ske3b2jqo5w7jkz53hn 6342295 6342293 2026-08-24T23:16:29Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342295 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} #* {{jêder-websîte|ckb|nivîskar=ckb:شێرکۆ بێکەس|sernav=ckb:بۆ دوو میوان|websîte=zaniary.com|url=https://zaniary.com/blog/627d758973d8c|tarîx=2026-08-24|jêgirtin=بارانیش جۆگە شیعرێکی ئەنووسیەوە. <br>لە جۆلانەی شەپۆلیشدا<br>شیعریش بەدەم سەمای وشە و درەختەوە<br>بۆ دوو دڵداری '''میوانی<br>دیوانی''' باران و کەژ و}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} n7zuzf4k614uiiawsa2bwq7wpay9zbb 6342296 6342295 2026-08-24T23:17:14Z Wikihez 7344 /* Navdêr */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342296 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} #* {{jêder-websîte|ckb|nivîskar=ckb:شێرکۆ بێکەس|sernav=ckb:بۆ دوو میوان|websîte=zaniary.com|url=https://zaniary.com/blog/627d758973d8c|tarîx=2022-05-12|jêgirtin=بارانیش جۆگە شیعرێکی ئەنووسیەوە. <br>لە جۆلانەی شەپۆلیشدا<br>شیعریش بەدەم سەمای وشە و درەختەوە<br>بۆ دوو دڵداری '''میوانی<br>دیوانی''' باران و کەژ و}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} * {{g|ckb|ماڵ}} 34vfx4ndpznrd49tk8icefi21zjiann 6342298 6342296 2026-08-24T23:17:48Z Wikihez 7344 /* Têkildar */ (bi [[MediaWiki:Gadget-AjaxEdit.js|AjaxEdit]]ê re) 6342298 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} #* {{jêder-websîte|ckb|nivîskar=ckb:شێرکۆ بێکەس|sernav=ckb:بۆ دوو میوان|websîte=zaniary.com|url=https://zaniary.com/blog/627d758973d8c|tarîx=2022-05-12|jêgirtin=بارانیش جۆگە شیعرێکی ئەنووسیەوە. <br>لە جۆلانەی شەپۆلیشدا<br>شیعریش بەدەم سەمای وشە و درەختەوە<br>بۆ دوو دڵداری '''میوانی<br>دیوانی''' باران و کەژ و}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} ==== Herwiha binêre ==== * {{g|ckb|ماڵ}} h0w6wjuu1tnhv00k94wv0jxm897x7x8 6342300 6342298 2026-08-24T23:19:06Z Wikihez 7344 6342300 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mêvan]] {{îzah|kesê ku diçe [[serdan]]a malekê an cihekî din}} #: {{mînak|ckb|ئەمڕۆ میوانمان دێت.|tr=Emro mîwanman dêt.|werger=Îro mêvanê me tê.}} #* {{jêder-websîte|ckb|nivîskar=ckb:شێرکۆ بێکەس|sernav=ckb:بۆ دوو میوان|websîte=zaniary.com|url=https://zaniary.com/blog/627d758973d8c|tarîx=2022-05-12|jêgirtin=بارانیش جۆگە شیعرێکی ئەنووسیەوە. <br>لە جۆلانەی شەپۆلیشدا<br>شیعریش بەدەم سەمای وشە و درەختەوە<br>'''بۆ دوو دڵداری '''میوانی<br>دیوانی باران و کەژ و}} ==== Formên alternatîv ==== * {{g|ckb|مێوان}} ==== Têkildar ==== * {{g|ckb|میوانداری}} * {{g|ckb|میوانخانە}} * {{g|ckb|میواندار}} ==== Herwiha binêre ==== * {{g|ckb|ماڵ}} rhv4gs5vkeh3l72lsms1zvggks5ziwn خۆشەویستی 0 1358828 6342290 2026-08-24T22:59:20Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] (hesteke kûr û germ a dilpêvebûn û girêdanê) #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezk..." hat çêkirin 6342290 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] (hesteke kûr û germ a dilpêvebûn û girêdanê) #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezkirinê ve karê xwe dike.}} ==== Dijmane ==== * {{g|ckb|ڕق}} * {{g|ckb|قین}} * {{g|ckb|بێزاری}} ==== Hevmane ==== * {{g|ckb|ئەوین}} * {{g|ckb|دڵداری}} * {{g|ckb|ئەڤین}} ==== Têkildar ==== * {{g|ckb|خۆشەویست}} * {{g|ckb|دڵ}} * {{g|ckb|ئاشق}} 3hsy291tlq6jhppj8g10624jx3kvd9l 6342291 6342290 2026-08-24T23:09:16Z Wikihez 7344 +nimûneya bikaranînê bi amûra « [[Mediawiki:Gadget-wikt.add-examples|Nimûne zêde bike]] » (v2.0). 6342291 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] (hesteke kûr û germ a dilpêvebûn û girêdanê) #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezkirinê ve karê xwe dike.}} #* {{jêder-websîte|ckb|nivîskar=حەمە سەعید حەسەن|sernav=خۆشەویستی|websîte=Zed Press|url=https://zedpress.krd/culture/11925/|tarîx=2024-06-04|jêgirtin=ئایا '''خۆشەویستی''' ئەو داوەیە، دەنکەکانی ملوانکەی دونیا، پێکەوە کۆ دەکاتەوە؟ یان ئەو کلیلەیە، دەرگاکانی بەهەشت بە ڕووماندا دەخاتە سەر پشت؟}} ==== Dijmane ==== * {{g|ckb|ڕق}} * {{g|ckb|قین}} * {{g|ckb|بێزاری}} ==== Hevmane ==== * {{g|ckb|ئەوین}} * {{g|ckb|دڵداری}} * {{g|ckb|ئەڤین}} ==== Têkildar ==== * {{g|ckb|خۆشەویست}} * {{g|ckb|دڵ}} * {{g|ckb|ئاشق}} 3gsmsd0xo3eeve9p1f2xoua39dhaofy 6342292 6342291 2026-08-24T23:11:49Z Wikihez 7344 [[Bikarhêner:Wikihez/templateScript2.js|TS]]: +[[Şablon:îzah|îzah]] 6342292 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] {{îzah|[[hest|hesteke]] [[kûr|kûr]] û [[germ|germ]] a [[dilpêvebûn|dilpêvebûn]] û [[girêdan|girêdanê]]}} #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezkirinê ve karê xwe dike.}} #* {{jêder-websîte|ckb|nivîskar=حەمە سەعید حەسەن|sernav=خۆشەویستی|websîte=Zed Press|url=https://zedpress.krd/culture/11925/|tarîx=2024-06-04|jêgirtin=ئایا '''خۆشەویستی''' ئەو داوەیە، دەنکەکانی ملوانکەی دونیا، پێکەوە کۆ دەکاتەوە؟ یان ئەو کلیلەیە، دەرگاکانی بەهەشت بە ڕووماندا دەخاتە سەر پشت؟}} ==== Dijmane ==== * {{g|ckb|ڕق}} * {{g|ckb|قین}} * {{g|ckb|بێزاری}} ==== Hevmane ==== * {{g|ckb|ئەوین}} * {{g|ckb|دڵداری}} * {{g|ckb|ئەڤین}} ==== Têkildar ==== * {{g|ckb|خۆشەویست}} ==== Herwiha binêre ==== * {{g|ckb|دڵ}} * {{g|ckb|ئاشق}} dttiht7t0n13picootzprmxil0a0geu 6342315 6342292 2026-08-24T23:41:22Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342315 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] {{îzah|[[hest|hesteke]] [[kûr|kûr]] û [[germ|germ]] a [[dilpêvebûn|dilpêvebûn]] û [[girêdan|girêdanê]]}} #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezkirinê ve karê xwe dike.}} #* {{jêder-websîte|ckb|nivîskar=حەمە سەعید حەسەن|sernav=خۆشەویستی|websîte=Zed Press|url=https://zedpress.krd/culture/11925/|tarîx=2024-06-04|jêgirtin=ئایا '''خۆشەویستی''' ئەو داوەیە، دەنکەکانی ملوانکەی دونیا، پێکەوە کۆ دەکاتەوە؟ یان ئەو کلیلەیە، دەرگاکانی بەهەشت بە ڕووماندا دەخاتە سەر پشت؟}} ==== Hevmane ==== * {{g|ckb|ئەوین}} * {{g|ckb|دڵداری}} * {{g|ckb|ئەڤین}} ==== Dijmane ==== * {{g|ckb|ڕق}} * {{g|ckb|قین}} * {{g|ckb|بێزاری}} ==== Têkildar ==== * {{g|ckb|خۆشەویست}} ==== Herwiha binêre ==== * {{g|ckb|دڵ}} * {{g|ckb|ئاشق}} 4qlxrwag2z2rssuhfc08dd9sd5rxg1w 6342319 6342315 2026-08-25T00:12:05Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6342319 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[evîn]], [[hezkirin]], [[dildarî]] {{îzah|[[hest]]eke [[kûr]] û [[germ]] a [[dilpêvebûn]] û [[girêdan]]ê}} #: {{mînak|ckb|خۆشەویستی بەهێزترین هەستی مرۆڤە.|tr=Xoşewîstî behêztrîn hestî mirove.|werger=Evîn hesta herî bihêz a mirov e.}} #: {{mînak|ckb|ئەو بە خۆشەویستییەوە کارەکەی ئەنجام دەدات.|tr=Ew be xoşewîstîyewe karekey encam dedat.|werger=Ew bi hezkirinê ve karê xwe dike.}} #* {{jêder-websîte|ckb|nivîskar=حەمە سەعید حەسەن|sernav=خۆشەویستی|websîte=Zed Press|url=https://zedpress.krd/culture/11925/|tarîx=2024-06-04|jêgirtin=ئایا '''خۆشەویستی''' ئەو داوەیە، دەنکەکانی ملوانکەی دونیا، پێکەوە کۆ دەکاتەوە؟ یان ئەو کلیلەیە، دەرگاکانی بەهەشت بە ڕووماندا دەخاتە سەر پشت؟}} ==== Hevmane ==== * {{g|ckb|ئەوین}} * {{g|ckb|دڵداری}} * {{g|ckb|ئەڤین}} ==== Dijmane ==== * {{g|ckb|ڕق}} * {{g|ckb|قین}} * {{g|ckb|بێزاری}} ==== Têkildar ==== * {{g|ckb|خۆشەویست}} ==== Herwiha binêre ==== * {{g|ckb|دڵ}} * {{g|ckb|ئاشق}} 13xa2igfksj8s6ite2f6ihu5o8aj8r0 هەرگیز 0 1358829 6342294 2026-08-24T23:15:48Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Hoker === {{hoker|ckb}} # [[qet]], [[tu caran]], [[hîç]] (di ti demê de, bi ti awayî) #: {{mînak|ckb|هەرگیز ئەو ڕۆژە لەبیر ناکەم.|tr=Hergîz ew roje le bîr nakem.|werger=Ez tu caran wê rojê ji bîr nakim.}} ==== Dijmane ==== * {{g|ckb|هەمیشە}} * {{g|ckb|هەردەم}} * {{g|ckb|بەردەوام}} ==== Hevmane ==== * {{g|ckb|قەت}} * {{g|ckb|هیچ کات}} * {{g|ckb|هیچ دەم}} ==== Têkildar ==..." hat çêkirin 6342294 wikitext text/x-wiki == {{ziman|ckb}} == === Hoker === {{hoker|ckb}} # [[qet]], [[tu caran]], [[hîç]] (di ti demê de, bi ti awayî) #: {{mînak|ckb|هەرگیز ئەو ڕۆژە لەبیر ناکەم.|tr=Hergîz ew roje le bîr nakem.|werger=Ez tu caran wê rojê ji bîr nakim.}} ==== Dijmane ==== * {{g|ckb|هەمیشە}} * {{g|ckb|هەردەم}} * {{g|ckb|بەردەوام}} ==== Hevmane ==== * {{g|ckb|قەت}} * {{g|ckb|هیچ کات}} * {{g|ckb|هیچ دەم}} ==== Têkildar ==== * {{g|ckb|کات}} * {{g|ckb|دەم}} t8pjpcwgzrd3l46vaszwpsu1hy3taxn 6342299 6342294 2026-08-24T23:18:04Z Şêr 1103 6342299 wikitext text/x-wiki == {{ziman|ckb}} == === Hoker === {{hoker|ckb}} # [[qet]], [[tu carî]], [[hîç]] (di ti demê de, bi ti awayî) #: {{mînak|ckb|هەرگیز ئەو ڕۆژە لەبیر ناکەم.|tr=Hergîz ew roje le bîr nakem.|werger=Ez tu carî wê rojê ji bîr nakim.}} ==== Dijmane ==== * {{g|ckb|هەمیشە}} * {{g|ckb|هەردەم}} * {{g|ckb|بەردەوام}} ==== Hevmane ==== * {{g|ckb|قەت}} * {{g|ckb|هیچ کات}} * {{g|ckb|هیچ دەم}} ==== Têkildar ==== * {{g|ckb|کات}} * {{g|ckb|دەم}} e0gbsqjse90if5vxcev1i552xf82i90 6342313 6342299 2026-08-24T23:41:16Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342313 wikitext text/x-wiki == {{ziman|ckb}} == === Hoker === {{hoker|ckb}} # [[qet]], [[tu carî]], [[hîç]] (di ti demê de, bi ti awayî) #: {{mînak|ckb|هەرگیز ئەو ڕۆژە لەبیر ناکەم.|tr=Hergîz ew roje le bîr nakem.|werger=Ez tu carî wê rojê ji bîr nakim.}} ==== Hevmane ==== * {{g|ckb|قەت}} * {{g|ckb|هیچ کات}} * {{g|ckb|هیچ دەم}} ==== Dijmane ==== * {{g|ckb|هەمیشە}} * {{g|ckb|هەردەم}} * {{g|ckb|بەردەوام}} ==== Têkildar ==== * {{g|ckb|کات}} * {{g|ckb|دەم}} rc9xsx2lsgsuqxbgl555hbdnt7gvmyu هاوڕێ 0 1358830 6342301 2026-08-24T23:23:08Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[heval]], [[hogir]], [[dost]] (kesê ku pêwendiyeke nêzîk û dilsozane pê re heye) #: {{mînak|ckb|کتێب باشترین هاوڕێی مرۆڤە.|tr=Ktêb baştrîn hawrêy mirove.|werger=Kitêb hevalê herî baş ê mirov e.}} #: {{mînak|ckb|من و هاوڕێکەم بەیەکەوە دەچین بۆ زانکۆ.|tr=Min u hawrêkem beyekewe deçîn bo zanko.|werger=Ez û hevalê xwe bi hev re diçin zanî..." hat çêkirin 6342301 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[heval]], [[hogir]], [[dost]] (kesê ku pêwendiyeke nêzîk û dilsozane pê re heye) #: {{mînak|ckb|کتێب باشترین هاوڕێی مرۆڤە.|tr=Ktêb baştrîn hawrêy mirove.|werger=Kitêb hevalê herî baş ê mirov e.}} #: {{mînak|ckb|من و هاوڕێکەم بەیەکەوە دەچین بۆ زانکۆ.|tr=Min u hawrêkem beyekewe deçîn bo zanko.|werger=Ez û hevalê xwe bi hev re diçin zanîngehê.}} ==== Dijmane ==== * {{g|ckb|دوژمن}} * {{g|ckb|نەیار}} ==== Hevmane ==== * {{g|ckb|برادەر}} * {{g|ckb|دۆست}} * {{g|ckb|هەڤاڵ}} ==== Têkildar ==== * {{g|ckb|هاوڕێیەتی}} * {{g|ckb|دۆستایەتی}} oi0xq1c2yvcsjz680ghrc2wlwl8r0gg 6342303 6342301 2026-08-24T23:24:29Z Şêr 1103 6342303 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[heval]], [[hogir]], [[dost]] (kesê ku pêwendiyeke nêzîk û dilsozane pê re heye) #: {{mînak|ckb|کتێب باشترین هاوڕێی مرۆڤە.|tr=Kitêb baştrîn hawrêy mirove.|werger=Kitêb hevalê herî baş ê mirov e.}} #: {{mînak|ckb|من و هاوڕێکەم بەیەکەوە دەچین بۆ زانکۆ.|tr=Min u hawrêkem beyekewe deçîn bo zanko.|werger=Ez û hevalê xwe bi hev re diçin zanîngehê.}} ==== Dijmane ==== * {{g|ckb|دوژمن}} * {{g|ckb|نەیار}} ==== Hevmane ==== * {{g|ckb|برادەر}} * {{g|ckb|دۆست}} * {{g|ckb|هەڤاڵ}} ==== Têkildar ==== * {{g|ckb|هاوڕێیەتی}} * {{g|ckb|دۆستایەتی}} bgejfaca0q00sqs7g4eb8litsjzxrog 6342304 6342303 2026-08-24T23:25:07Z Şêr 1103 6342304 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[heval]], [[hogir]], [[dost]] (kesê/a ku pêwendiyeke nêzîk û dilsozane pê re heye) #: {{mînak|ckb|کتێب باشترین هاوڕێی مرۆڤە.|tr=Kitêb baştrîn hawrêy mirove.|werger=Kitêb hevalê herî baş ê mirov e.}} #: {{mînak|ckb|من و هاوڕێکەم بەیەکەوە دەچین بۆ زانکۆ.|tr=Min u hawrêkem beyekewe deçîn bo zanko.|werger=Ez û hevalê xwe bi hev re diçin zanîngehê.}} ==== Dijmane ==== * {{g|ckb|دوژمن}} * {{g|ckb|نەیار}} ==== Hevmane ==== * {{g|ckb|برادەر}} * {{g|ckb|دۆست}} * {{g|ckb|هەڤاڵ}} ==== Têkildar ==== * {{g|ckb|هاوڕێیەتی}} * {{g|ckb|دۆستایەتی}} 3kjsmkqfn7cyr3l15fvgcmsgrb8z3gj 6342312 6342304 2026-08-24T23:41:13Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342312 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[heval]], [[hogir]], [[dost]] (kesê/a ku pêwendiyeke nêzîk û dilsozane pê re heye) #: {{mînak|ckb|کتێب باشترین هاوڕێی مرۆڤە.|tr=Kitêb baştrîn hawrêy mirove.|werger=Kitêb hevalê herî baş ê mirov e.}} #: {{mînak|ckb|من و هاوڕێکەم بەیەکەوە دەچین بۆ زانکۆ.|tr=Min u hawrêkem beyekewe deçîn bo zanko.|werger=Ez û hevalê xwe bi hev re diçin zanîngehê.}} ==== Hevmane ==== * {{g|ckb|برادەر}} * {{g|ckb|دۆست}} * {{g|ckb|هەڤاڵ}} ==== Dijmane ==== * {{g|ckb|دوژمن}} * {{g|ckb|نەیار}} ==== Têkildar ==== * {{g|ckb|هاوڕێیەتی}} * {{g|ckb|دۆستایەتی}} rxi0i6a6c4b728rin35n5dtdtq40egm ورە 0 1358831 6342308 2026-08-24T23:37:30Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[moral]], [[hêza derûnî]], [[cesaret]] (hêz û pêbaweriya hundirîn a mirov li hember dijwarî û astengan) #: {{mînak|ckb|ئەوان بە ورەیەکی بەرزەوە ڕووبەڕووی کێشەکان بوونەوە.|tr=Ewan be wireyekî berzewe rûberrûyî kêşekan bûnewe.|werger=Ew bi moralekî bilind ve rûbirûyî pirsgirêkan bûn.}} #: {{mînak|ckb|شکست نابێت ورەی تۆ داببە..." hat çêkirin 6342308 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[moral]], [[hêza derûnî]], [[cesaret]] (hêz û pêbaweriya hundirîn a mirov li hember dijwarî û astengan) #: {{mînak|ckb|ئەوان بە ورەیەکی بەرزەوە ڕووبەڕووی کێشەکان بوونەوە.|tr=Ewan be wireyekî berzewe rûberrûyî kêşekan bûnewe.|werger=Ew bi moralekî bilind ve rûbirûyî pirsgirêkan bûn.}} #: {{mînak|ckb|شکست نابێت ورەی تۆ داببەزێنێت.|tr=Şikist nabêt wirey to dabbezênêt.|werger=Têkçûn nabe ku morala te daxe.}} ==== Dijmane ==== * {{g|ckb|بێورەیی}} * {{g|ckb|ورەبەردان}} ==== Hevmane ==== * {{g|ckb|ئیرادە}} * {{g|ckb|چاونەترسی}} * {{g|ckb|ورەی بەرز}} ==== Têkildar ==== * {{g|ckb|بەورە}} * {{g|ckb|بێورە}} * {{g|ckb|ئازایەتی}} chhg3d4ql14uruahk4yl8secw4zw3p1 6342309 6342308 2026-08-24T23:38:29Z Şêr 1103 6342309 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[moral]], [[hêza derûnî]], [[cesaret]] (hêz û pêbaweriya hundirîn a mirov li hember dijwarî û astengan) #: {{mînak|ckb|ئەوان بە ورەیەکی بەرزەوە ڕووبەڕووی کێشەکان بوونەوە.|tr=Ewan be wireyekî berzewe rûberrûyî kêşekan bûnewe.|werger=Ew bi moralekî bilind ve rûbirûyî pirsgirêkan bûn.}} #: {{mînak|ckb|شکست نابێت ورەی تۆ داببەزێنێت.|tr=Şikist nabêt wireyî to dabbezênêt.|werger=Têkçûn nabe ku moralê te daxe.}} ==== Dijmane ==== * {{g|ckb|بێورەیی}} * {{g|ckb|ورەبەردان}} ==== Hevmane ==== * {{g|ckb|ئیرادە}} * {{g|ckb|چاونەترسی}} * {{g|ckb|ورەی بەرز}} ==== Têkildar ==== * {{g|ckb|بەورە}} * {{g|ckb|بێورە}} * {{g|ckb|ئازایەتی}} 5xmy566lz0hkm81yhqizsm107o70ag4 6342310 6342309 2026-08-24T23:41:07Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342310 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[moral]], [[hêza derûnî]], [[cesaret]] (hêz û pêbaweriya hundirîn a mirov li hember dijwarî û astengan) #: {{mînak|ckb|ئەوان بە ورەیەکی بەرزەوە ڕووبەڕووی کێشەکان بوونەوە.|tr=Ewan be wireyekî berzewe rûberrûyî kêşekan bûnewe.|werger=Ew bi moralekî bilind ve rûbirûyî pirsgirêkan bûn.}} #: {{mînak|ckb|شکست نابێت ورەی تۆ داببەزێنێت.|tr=Şikist nabêt wireyî to dabbezênêt.|werger=Têkçûn nabe ku moralê te daxe.}} ==== Hevmane ==== * {{g|ckb|ئیرادە}} * {{g|ckb|چاونەترسی}} * {{g|ckb|ورەی بەرز}} ==== Dijmane ==== * {{g|ckb|بێورەیی}} * {{g|ckb|ورەبەردان}} ==== Têkildar ==== * {{g|ckb|بەورە}} * {{g|ckb|بێورە}} * {{g|ckb|ئازایەتی}} 83z12o6etxsjiia2pmrgu7ymp7vb4qy ماڵ 0 1358832 6342320 2026-08-25T00:19:31Z Şêr 1103 Rûpel bi "== {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mal]], [[xanî]] (cihê hewandin, aramî û jiyana rojane ya mirovan) #: {{mînak|ckb|من دەچمەوە بۆ ماڵەوە.|tr=Min deçimewe bo malewe.|werger=Ez vedigerim malê.}} #: {{mînak|ckb|ماڵەکەی ئێمە لە نزیک قوتابخانەکەیە.|tr=Malekey ême le nêzîk qutabxanekeye.|werger=Mala me nêzîkî dibistanê ye.}} ==== Dijmane ==== * {{g|ckb|دەرەوە}} * {{g|ckb|غەریب..." hat çêkirin 6342320 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mal]], [[xanî]] (cihê hewandin, aramî û jiyana rojane ya mirovan) #: {{mînak|ckb|من دەچمەوە بۆ ماڵەوە.|tr=Min deçimewe bo malewe.|werger=Ez vedigerim malê.}} #: {{mînak|ckb|ماڵەکەی ئێمە لە نزیک قوتابخانەکەیە.|tr=Malekey ême le nêzîk qutabxanekeye.|werger=Mala me nêzîkî dibistanê ye.}} ==== Dijmane ==== * {{g|ckb|دەرەوە}} * {{g|ckb|غەریبی}} ==== Hevmane ==== * {{g|ckb|خانوو}} * {{g|ckb|هێلانە}} ==== Têkildar ==== * {{g|ckb|ماڵەوە}} * {{g|ckb|ژوور}} * {{g|ckb|خێزان}} * {{g|ckb|کۆڵان}} 5pr5weueh50w32e2cbgbb1gvjnyzgyo 6342321 6342320 2026-08-25T00:41:06Z Balyozbot 7867 [[Special:PermanentLink/6298023|Bot]]: rêzkirina beşan 6342321 wikitext text/x-wiki == {{ziman|ckb}} == === Navdêr === {{navdêr|ckb}} # [[mal]], [[xanî]] (cihê hewandin, aramî û jiyana rojane ya mirovan) #: {{mînak|ckb|من دەچمەوە بۆ ماڵەوە.|tr=Min deçimewe bo malewe.|werger=Ez vedigerim malê.}} #: {{mînak|ckb|ماڵەکەی ئێمە لە نزیک قوتابخانەکەیە.|tr=Malekey ême le nêzîk qutabxanekeye.|werger=Mala me nêzîkî dibistanê ye.}} ==== Hevmane ==== * {{g|ckb|خانوو}} * {{g|ckb|هێلانە}} ==== Dijmane ==== * {{g|ckb|دەرەوە}} * {{g|ckb|غەریبی}} ==== Têkildar ==== * {{g|ckb|ماڵەوە}} * {{g|ckb|ژوور}} * {{g|ckb|خێزان}} * {{g|ckb|کۆڵان}} mwektk2zwi40fwufmtpoudpc3rb3xsv توالد داخلي 0 1358834 6342337 2026-08-25T07:03:33Z Kurdistanov 15290 ([[Mediawiki:Gadget-start.js|WF:NÛ]] v.2.0) +ar:navdêr:xizm hênan 6342337 wikitext text/x-wiki == {{ziman|ar}} == === Navdêr === {{navdêr|ar|c=m}} # [[xizm|xizm]] hênan #* {{nimûne?|ar}} czpa8j76frkh2s10w0c3mu0nqwz1u0m 6342344 6342337 2026-08-25T08:12:06Z Balyozbot 7867 Bot: Paqijiyên kozmetîk (Lînk paqij kir.) 6342344 wikitext text/x-wiki == {{ziman|ar}} == === Navdêr === {{navdêr|ar|c=m}} # [[xizm]] hênan #* {{nimûne?|ar}} n3ihulzx53h7mxibklstuoq4fx8eczy inbreeding 0 1358835 6342338 2026-08-25T07:07:28Z Kurdistanov 15290 ([[Mediawiki:Gadget-start.js|WF:NÛ]] v.2.0) +en:navdêr:xizm hênan 6342338 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} # [[xizm|xizm]] hênan #* {{nimûne?|en}} ==== Etîmolojî ==== {{ji?|en}} 36srge7nqob9pi1rjooh3hisfbdhc3s 6342339 6342338 2026-08-25T07:37:24Z Kurdistanov 15290 /* Navdêr */ 6342339 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} # [[xizm|xizm]] anîn #* {{nimûne?|en}} ==== Etîmolojî ==== {{ji?|en}} jhdbvo6bgoqq55ewhx7v6q18w3z26x4 6342340 6342339 2026-08-25T07:38:00Z Kurdistanov 15290 6342340 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} # [[xizm anîn]] #* {{nimûne?|en}} ==== Etîmolojî ==== {{ji?|en}} 5ut6t5z1r5sazp549k3nhp43kje3w5u ADH 0 1358836 6342341 2026-08-25T07:47:00Z Kurdistanov 15290 ([[Mediawiki:Gadget-start.js|WF:NÛ]] v.2.0) +en:navdêr:Hormona dijî mîzkirinê 6342341 wikitext text/x-wiki == {{ziman|en}} == === Navdêr === {{navdêr|en}} # [[hormon|Hormona]] [[dijî]] [[mîz kirin|mîzkirinê]] #* {{nimûne?|en}} ==== Etîmolojî ==== {{ji?|en}} ai77kgdgdj5zapvtxabr383jhj4wnk1 ئاقلتر 0 1358837 6342422 2026-08-25T09:00:40Z Şêr 1103 Çêkirina formên [[ئاقل]] ([[WF:BILEZ|Bi lez]]) 6342422 wikitext text/x-wiki == {{ziman|ckb}} == === Formeke rengdêrê === {{rengdêr|ckb|form=erê}} # {{komparatîv|ckb|ئاقل}} mevk1tw1494dlc1rbneusix83b3n9jj 6342423 6342422 2026-08-25T09:00:58Z Şêr 1103 6342423 wikitext text/x-wiki == {{ziman|ckb}} == === Formeke rengdêrê === {{rengdêr|ckb|form=erê|tr=aqiltir}} # {{komparatîv|ckb|ئاقل}} svzuow53zdtlg2k3j5azhvnu0reikft باوەقۆتتر 0 1358838 6342587 2026-08-25T11:54:55Z Şêr 1103 Çêkirina formên [[باوەقۆت]] ([[WF:BILEZ|Bi lez]]) 6342587 wikitext text/x-wiki == {{ziman|ckb}} == === Formeke rengdêrê === {{rengdêr|ckb|form=erê}} # {{komparatîv|ckb|باوەقۆت}} eevf3intr4xrenvlqrlaaokmoqc38tw