Vikisözlük trwiktionary https://tr.wiktionary.org/wiki/Vikis%C3%B6zl%C3%BCk:Anasayfa MediaWiki 1.47.0-wmf.2 case-sensitive Ortam Özel Tartışma Kullanıcı Kullanıcı mesaj Vikisözlük Vikisözlük tartışma Dosya Dosya tartışma MediaWiki MediaWiki tartışma Şablon Şablon tartışma Yardım Yardım tartışma Kategori Kategori tartışma Portal Portal tartışma YeniKurum YeniKurum tartışma Ek Ek tartışma Alıntılar Alıntılar tartışma TimedText TimedText talk Modül Modül tartışma Event Event talk Pakistan 0 1033 5658321 5654966 2026-05-15T18:04:43Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658321 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{{h|dil=tr|Pa|kis|tan}} ===Özel ad=== {{tr-özel ad|k=1}} [[Dosya:Pakistan w1 locator.svg|küçükresim|Pakistan'ın haritadaki yeri.]] # {{t|dil=tr|ülkeler}} [[Orta Asya]]'da bir ülke. ====Çekimleme==== {{tr-ad-tablo}} ====Çeviriler==== {{üst|tip=çeviriler}} *Almanca: {{ç|de|Pakistan}} *Başkurtça: {{ç|ba|Пакистан}} *Danca: {{ç|da|Pakistan}} *Fince: {{ç|fi|Pakistan}} *Fransızca: {{ç|fr|Pakistan}} *İngilizce: {{ç|en|Pakistan}} *İtalyanca: {{ç|it|Pakistan}} * Lehçe: {{ç|pl|Pakistan|e}} *Rusça: {{ç|ru|Пакистан}} *Sırp-Hırvatça: {{ç|sh|Пакистан}}; {{ç|sh|Pakistan}} *Türkmence: {{ç|tk|Päkistan}} *Ukraynaca: {{ç|uk|Пакистан}} {{alt}} ===Ek okumalar=== *{{proje bağlantısı|vikipedi}} ==Almanca== ===Özel ad=== {{başlık başı|de|özel ad}} #{{t|ülkeler|dil=de}} Pakistan ==Danca== ===Özel ad=== {{başlık başı|da|özel ad}} #{{t|ülkeler|dil=da}}Pakistan ==Fince== ===Özel ad=== {{başlık başı|fi|özel ad}} #{{t|ülkeler|dil=fi}} Pakistan ==Fransızca== ===Özel ad=== {{başlık başı|fr|özel ad}} #{{t|ülkeler|dil=fr}}Pakistan ==Felemenkçe== ===Özel ad=== {{başlık başı|nl|özel ad}} #{{t|ülkeler|dil=nl}} Pakistan ==İngilizce== ===Özel ad=== {{başlık başı|en|özel ad}} #{{t|ülkeler|dil=en}} Pakistan ==İsveççe== ===Özel ad=== {{başlık başı|sv|özel ad}} #{{t|ülkeler|dil=sv}} Pakistan ==İtalyanca== ===Özel ad=== {{başlık başı|it|özel ad}} {{m}} ('''il Pakistan''') #{{t|ülkeler|dil=it}} Pakistan {{Resmi Adı}} :[[Repubblica Islamica del Pakistan]] ==Lehçe== ===Özel ad=== {{başlık başı|pl|özel ad}} #{{t|ülkeler|dil=pl}} Pakistan ==Sırp-Hırvatça== ===Özel ad=== {{başlık başı|sh|özel ad}} #{{t|ülkeler|dil=sh}} {{ağız|Sırp}} Pakistan ====Yazılışlar==== :[[Пакистан]] (Kiril) 33ophmnqeka6avzzskhfojmki84xa14 Kamerun 0 1156 5658447 5655090 2026-05-16T08:14:43Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658447 wikitext text/x-wiki ==Türkçe== ===Özel ad=== {{tr-özel ad|k=1}} [[Dosya:Cameroon w1 locator.svg|küçükresim|Kamerun'nun haritadaki yeri.]] # {{t|dil=tr|ülkeler}} Orta [[Afrika]]'nın batısındaki bir ülke.. #*{{kt|başlık=Kürk Mantolu Madonna|yazar=Sabahattin Ali|yayıncı=Remzi Kitabevi|yıl=1943|vikikaynak=Sayfa:Kürk Mantolu Madonna.djvu/52|dil=tr |sayfa=52 |tanıklık=Bu ­sonuncusu Almanyanın '''Kamerun''' müstemlekesinde tica­ret yaparken mütarekeden sonra her şeyini bırakarak va­tanına sığınmış bir adamdı.}} ====Çeviriler==== {{üst|Orta Afrika'nın batısında ülke|tip=çeviriler}} * Almanca: {{ç|de|Kamerun|n}} * Danca: {{ç|da|Cameroun}} * Ermenice: {{ç|hy|Կամերուն}} * Fince: {{ç|fi|Kamerun}} * Fransızca: {{ç|fr|Cameroun}} * Gürcüce: {{ç|ka|კამერუნი}} * İngilizce: {{ç|en|Cameroon}} * İspanyolca: {{ç|es|Camerún}} * İsveççe: {{ç|sv|Kamerun}} * İtalyanca: {{ç|it|Camerun}} * Lehçe: {{ç|pl|Kamerun}} * Macarca: {{ç|hu|Kamerun}} * Portekizce: {{ç|pt|Camarões}} * Yunanca: {{ç|el|Καμερούν|n}} {{alt}} ====Kaynakça==== *{{proje bağlantısı|vikipedi}} ==Almanca== ===Özel ad=== {{başlık başı|de|özel ad}} # {{t|ülkeler|dil=de}} Kamerun ==Fince== ===Özel ad=== {{başlık başı|fi|özel ad}} # {{t|ülkeler|dil=fi}} Kamerun ==İsveççe== ===Özel ad=== {{başlık başı|sv|özel ad}} # {{t|ülkeler|dil=sv}} Kamerun ==Lehçe== ===Özel ad=== {{başlık başı|pl|özel ad}} # {{t|ülkeler|dil=pl}} Kamerun ==Macarca== ===Özel ad=== {{başlık başı|hu|özel ad}} # {{t|ülkeler|dil=hu}} Kamerun ==Zazaca== ===Özel ad=== {{zza-özel ad|c=e}} # {{t|dil=zza|ülkeler}} {{b|tr|Kamerun}} dm84el7ws97tkf6w6sxr9wc982egp7v doğan 0 1384 5658368 5253504 2026-05-15T22:29:36Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658368 wikitext text/x-wiki {{bakınız|Doğan|dogan}} ==Türkçe== [[Resim:Falco peregrinus nest USFWS free.jpg|küçükresim|150px|Bayağı '''doğan''']] ===Köken=== {{k|dil=tr|otk}} {{z|otk|togan}} ===Söyleniş=== * {{IPA|dil=tr|[d̪o̞ˈɑn̪]|[d̪o̯ɑn̪]}} * {{h|dil=tr||do|ğan}} ===Ad=== {{tr-ad}} # {{t|dil=tr|doğangiller}} [[gündüz yırtıcı kuşları]] ''(Falconiformes)'' takımından ''Falconidae'' ''(doğangiller)'' familyasından ''Falco'' cinsini oluşturan yırtıcı kuş türlerinin ortak adı. ====Çekimleme==== {{tr-ad-tablo}} ====Bilimsel adı==== * [[Falco peregrinus]] ====Eş anlamlılar==== * [[alaca doğan]], [[bayağı doğan]], [[gökdoğan]] ====Üst kavramlar==== * [[doğangiller]] ====Alt kavramlar==== {{Üst|bayağı doğan|tip=alt kavramlar}} :[[akdoğan]], :[[bozdoğan]], :[[çakırdoğan]], :[[sardoğan]] {{Alt}} ====Atasözleri==== :[[Doğan anası olma, doğuran anası ol]] :[[Kutsuz kuşun yuvası doğan yanında olur]] ====Kelime birliktelikleri==== * [[delice doğan]] ====Çeviriler==== {{Üst|bayağı doğan|tip=çeviriler}} * Almanca: {{ç|de|Falke|m}} * Azerice: {{ç|az|qızılquş}} * Danca: {{ç|da|vandrefalk}}, {{ç|da|falk}} * Ersya dili: {{ç|myv|тев}} * Fince: {{ç|fi|muuttohaukka}}, {{ç|fi|jalohaukka}} * Fransızca: {{ç|fr|falconidés}} * İngilizce: {{ç|en|falcon}} * İsveççe: {{ç|sv|falk|g}} * Macarca: {{ç|hu|vándorsólyom}} * Rusça: {{ç|ru|сокол}} {{Alt}} ====Ayrıca bakınız==== * {{proje bağlantısı|Vikitür|Falco peregrinus}} ===Kaynakça=== * {{Kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} * {{proje bağlantısı|Vikitür|Falconiformes}} ===Ön ad=== {{tr-ön ad}} # [[doğmak]]ta [[olan]] ====Zıt anlamlılar==== * [[doğmayan]] ====Atasözleri==== * [[Değirmende doğan sıçan gök gürültüsünden korkmaz]] ==Türkmence== ===Ad=== {{başlık başı|tk|ad}} # [[kardeş]] ===Kaynakça=== * {{Atacanov, Ata-TYS-1922}} lufss4036jksej18v83gm5xih5b44sm 5658369 5658368 2026-05-15T22:29:52Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658369 wikitext text/x-wiki {{bakınız|Doğan|dogan}} ==Türkçe== [[Resim:Falco peregrinus nest USFWS free.jpg|küçükresim|150px|Bayağı '''doğan''']] ===Köken=== {{k|dil=tr|otk}} {{z|otk|togan}} ===Söyleniş=== * {{IPA|dil=tr|[d̪o̞ˈɑn̪]|[d̪o̯ɑn̪]}} * {{h|dil=tr||do|ğan}} ===Ad=== {{tr-ad}} # {{t|dil=tr|doğangiller}} [[gündüz yırtıcı kuşları]] ''(Falconiformes)'' takımından ''Falconidae'' ''(doğangiller)'' familyasından ''Falco'' cinsini oluşturan yırtıcı kuş türlerinin ortak adı. ====Çekimleme==== {{tr-ad-tablo}} ====Bilimsel adı==== * [[Falco peregrinus]] ====Eş anlamlılar==== * [[alaca doğan]], [[bayağı doğan]], [[gökdoğan]] ====Üst kavramlar==== * [[doğangiller]] ====Alt kavramlar==== {{Üst|bayağı doğan|tip=alt kavramlar}} :[[akdoğan]], :[[bozdoğan]], :[[çakırdoğan]], :[[sardoğan]] {{Alt}} ====Atasözleri==== :[[Doğan anası olma, doğuran anası ol]] :[[Kutsuz kuşun yuvası doğan yanında olur]] ====Kelime birliktelikleri==== * [[delice doğan]] ====Çeviriler==== {{Üst|bayağı doğan|tip=çeviriler}} * Almanca: {{ç|de|Falke|m}} * Azerice: {{ç|az|qızılquş}} * Danca: {{ç|da|vandrefalk}}, {{ç|da|falk}} * Ersya dili: {{ç|myv|тев}} * Fince: {{ç|fi|muuttohaukka}}, {{ç|fi|jalohaukka}} * Fransızca: {{ç|fr|falconidés}} * İngilizce: {{ç|en|falcon}} * İsveççe: {{ç|sv|falk|g}} * Macarca: {{ç|hu|vándorsólyom}} * Rusça: {{ç|ru|сокол}} {{Alt}} ====Ayrıca bakınız==== * {{proje bağlantısı|Vikitür|Falco peregrinus}} ===Kaynakça=== * {{Kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} * {{proje bağlantısı|Vikitür|Falconiformes}} ===Ön ad=== {{tr-ön ad}} # [[doğmak]]ta [[olan]] ====Atasözleri==== * [[Değirmende doğan sıçan gök gürültüsünden korkmaz]] ==Türkmence== ===Ad=== {{başlık başı|tk|ad}} # [[kardeş]] ===Kaynakça=== * {{Atacanov, Ata-TYS-1922}} 9u8qry8ipj974rnylj059ywshputlav 5658370 5658369 2026-05-15T22:30:04Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658370 wikitext text/x-wiki {{bakınız|Doğan|dogan}} ==Türkçe== [[Resim:Falco peregrinus nest USFWS free.jpg|küçükresim|150px|Bayağı '''doğan''']] ===Köken=== {{k|dil=tr|otk}} {{z|otk|togan}} ===Söyleniş=== * {{IPA|dil=tr|[d̪o̞ˈɑn̪]|[d̪o̯ɑn̪]}} * {{h|dil=tr||do|ğan}} ===Ad=== {{tr-ad}} # {{t|dil=tr|doğangiller}} [[gündüz yırtıcı kuşları]] ''(Falconiformes)'' takımından ''Falconidae'' ''(doğangiller)'' familyasından ''Falco'' cinsini oluşturan yırtıcı kuş türlerinin ortak adı. ====Çekimleme==== {{tr-ad-tablo}} ====Bilimsel adı==== * [[Falco peregrinus]] ====Eş anlamlılar==== * [[alaca doğan]], [[bayağı doğan]], [[gökdoğan]] ====Üst kavramlar==== * [[doğangiller]] ====Alt kavramlar==== :[[akdoğan]], :[[bozdoğan]], :[[çakırdoğan]], :[[sardoğan]] ====Atasözleri==== :[[Doğan anası olma, doğuran anası ol]] :[[Kutsuz kuşun yuvası doğan yanında olur]] ====Kelime birliktelikleri==== * [[delice doğan]] ====Çeviriler==== {{Üst|bayağı doğan|tip=çeviriler}} * Almanca: {{ç|de|Falke|m}} * Azerice: {{ç|az|qızılquş}} * Danca: {{ç|da|vandrefalk}}, {{ç|da|falk}} * Ersya dili: {{ç|myv|тев}} * Fince: {{ç|fi|muuttohaukka}}, {{ç|fi|jalohaukka}} * Fransızca: {{ç|fr|falconidés}} * İngilizce: {{ç|en|falcon}} * İsveççe: {{ç|sv|falk|g}} * Macarca: {{ç|hu|vándorsólyom}} * Rusça: {{ç|ru|сокол}} {{Alt}} ====Ayrıca bakınız==== * {{proje bağlantısı|Vikitür|Falco peregrinus}} ===Kaynakça=== * {{Kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} * {{proje bağlantısı|Vikitür|Falconiformes}} ===Ön ad=== {{tr-ön ad}} # [[doğmak]]ta [[olan]] ====Atasözleri==== * [[Değirmende doğan sıçan gök gürültüsünden korkmaz]] ==Türkmence== ===Ad=== {{başlık başı|tk|ad}} # [[kardeş]] ===Kaynakça=== * {{Atacanov, Ata-TYS-1922}} cxszxdkks6v2et95v0f0awwwa7ozwe3 Türkmenistan 0 1400 5658319 5654961 2026-05-15T18:04:12Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658319 wikitext text/x-wiki {{bakınız|Turkmenistan|Turkmenistán|Turkménistan|Túrkmenistan}} ==Türkçe== ===Söyleniş=== *{{h|dil=tr|Türk|me|nis|tan}} ===Özel ad=== {{tr-özel ad|k=1}} [[Dosya:Turkmenistan w1 locator.svg|küçükresim|Türkmenistan'ın haritadaki yeri.]] # {{t|dil=tr|ülkeler}} [[Orta Asya]]'da bir ülke. ====Çekimleme==== {{tr-ad-tablo}} ====Çeviriler==== {{üst|tip=çeviriler}} *Almanca: {{ç|de|Turkmenistan}} *Azerice: {{ç|az|Türkmənistan}} *Bretonca: {{ç|br|Turkmenistan}} *Çince: {{ç|zh|土库曼斯坦}} *Danca: {{ç|da|Turkmenistan}} *Esperanto dili: {{ç|eo|Turkmenio}}, {{ç|eo|Turkmenistano}}, {{ç|eo|Turkmenujo}} *Felemenkçe: {{ç|nl|Turkmenistan}} *Fince: {{ç|fi|Turkmenistan}} *Fransızca: {{ç|fr|Turkménistan|m}} *İngilizce: {{ç|en|Turkmenistan}} *İnterlingua dili: {{ç|ia|Turkmenistan}} *İspanyolca: {{ç|es|Turkmenistán}} *İsveççe: {{ç|sv|Turkmenistan}} *İtalyanca: {{ç|it|Turkmenistan}} *Japonca: {{ç|ja|トルクメニスタン}} (torukumenisutan) *Kırgızca: {{ç|ky|Түркмөнстан}} *Lehçe: {{ç|pl|Turkmenistan}} *Macarca: {{ç|hu|Türkmenisztán}} *Portekizce: {{ç|pt|Turquemenistão}} *Rumence: {{ç|ro|Turkmenistan|n}} *Rusça: {{ç|ru|Туркменистан|m}}, {{ç|ru|Туркмения|f}} *Sırp-Hırvatça: {{ç|sh|Туркменистан|m}}, {{ç|sh|Turkmenistan|m}} *Yunanca: {{ç|el|Τουρκμενιστάν|n}} {{alt}}} ===Ek okumalar=== *{{proje bağlantısı|vikipedi}} ==Türkmence== ===Özel ad=== {{başlık başı|tk|özel ad}} #{{t|ülkeler|dil=tk}} Türkmenistan a60fz8wck3mnv01grifnqnpfush538a Iraklı 0 1803 5658330 5658008 2026-05-15T19:25:17Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658330 wikitext text/x-wiki ==Türkçe== ===Ad=== ===Söyleniş=== *{{h|dil=tr ||I|rak |lı}} ===Köken=== *{{ek|dil=tr||Irak|lı}} {{tr-ad}} # Irak'ta doğmuş veya kökeni Irak'a dayanan kişi. #*{{mt|dil=tr|dergi=Öküz|başlık=Petrol Yanığı Türkmenlerimiz|yazar=Can YÜCEL|yıl=1997|sayı=37|sayfa=6 |tanıklık=Sisam'a Kuşadası'ndan motorla kaçarken ka­zaya uğramış onüç '''Iraklı.''' }} #*{{kt|başlık=Âşıklar Delidir ya da Yazı Tura|yazar=Ayfer Tunç|yayıncı=Can Sanat Yayınları|yıl=2018|sayfa=57|tanıklık=Hintlilerin, Jamaikalıların, Guatemalalıların, Honduraslıların, Malezyalıların, Endonezyalıların, '''Iraklıların''', Pakistanlıların, Tayvanlıların, Etiyopyalıların, Namibyalıların, kısacası şansın ve iyiliğin uğramayı reddettiği ve her türlü düzenin dışlandığı insanların yaşadığı mahallelerde belaya bulaşmak istiyordum.|dil=tr}} ====Çekimleme==== {{tr-ad-tablo}} ====Çeviriler==== *İngilizce: [[:en:Iraqi|Iraqi]] 6osp772w330vtcewxly3gfush15d14i onur 0 5012 5658311 5253679 2026-05-15T17:26:29Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658311 wikitext text/x-wiki ONUR,öz saygı, saygılı anlayış,hakkaniyetli davranış,irade ==Türkçe== ===Köken=== {{k|fr|dil=tr}} {{z|fr|honneur}} ===Söyleniş=== * {{h||o|nur|dil=tr}} ===Ad=== {{tr-ad}} # [[insan]]ın kendine karşı duyduğu [[saygı]], [[öz saygı]] # başkalarının gösterdiği saygının dayandığı kişisel değer #:''Çokbilmiş görünmek, '''onuruna''' toz kondurmak istemez.'' - T. Buğra ====Eş anlamlılar==== * [[şeref]] * {{mânâ|başkalarının gösterdiği saygının dayandığı kişisel değer}} [[itibar]] * {{mânâ|insanın kendine karşı duyduğu saygı}} [[haysiyet]], [[izzetinefis]] ====Sözcük birliktelikleri==== * {{mânâ|haysiyet, izzetinefis}} [[onur belgesi]], [[onur kıtası]], [[onur kurulu]], [[onur üyesi]] ====Çeviriler==== {{üst|onur: haysiyet, izzetinefis|tip=çeviriler}} *Almanca: {{ç|de|Ehre|f}} *Azerice: {{ç|az|heysiyyət}} *Çekçe: {{ç|cs|čest|f}} *Fince: {{ç|fi|kunnia}} *Fransızca: {{ç|fr|honneur}} * İbranice: {{ç|he|כבוד|tr=kavod}} *İngilizce: {{ç|en|honour}} *Kürtçe: {{ç|ku|onur}} *Macarca: {{ç|hu|tisztelet}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} t01jdnuso23rlyc127jimzj38ozvaww Deniz 0 6381 5658363 5266847 2026-05-15T22:14:54Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658363 wikitext text/x-wiki {{bakınız|deniz|deñiz|deňiz}} ==Türkçe== ===Köken=== {{devralınan|tr|ota|دكز|دڭز}}. {{z|otk|Tengiz}} [[isim|isminin]] zamanla yumuşayarak bugünkü [[hâl]]ini almasıyla kızlarada konulan bir isim olmuştur. ===Söyleniş=== * {{IPA|dil=tr|/de.ˈniz/}} * {{h|dil=tr||De|niz}} ===Özel ad=== {{tr-özel ad|k=1}}{{özel çoğul|tr|e}} # {{özel ad|dil=tr|erkek ismi|kız ismi|mânâ=[[deniz|Deniz]]}} #: {{eş anlamlılar|tr|Dalay}} ====Çekimleme==== {{tr-ad-tablo|k=1}} i2t9yzx9gdsdzvb1u4zalqkfnmrec96 5658364 5658363 2026-05-15T22:15:15Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658364 wikitext text/x-wiki {{bakınız|deniz|deñiz|deňiz}} ==Türkçe== ===Köken=== {{devralınan|tr|ota|دكز|دڭز}}. {{z|otk|Tengiz}} [[isim|isminin]] zamanla yumuşayarak bugünkü [[hâl]]ini almasıyla kızlarada konulan bir isim olmuştur. ===Söyleniş=== * {{IPA|dil=tr|/de.ˈniz/}} * {{h|dil=tr||De|niz}} ===Özel ad=== {{tr-özel ad|k=1}}{{özel çoğul|tr|e}} # {{özel ad|dil=tr|erkek ismi|kız ismi|mânâ=[[deniz|Deniz]]}} #: {{eş anlamlılar|tr|Dalay}} ====Çekimleme==== {{tr-ad-tablo}} dxnyivv5agcrfagajqlwlekbbw8c2oy Türkiye Türkçesi 0 7814 5658316 4278681 2026-05-15T17:53:15Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658316 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== * {{IPA|dil=tr|/ˈtyɾ.ci.je tyrk.t͡che.si/}} * {{h|dil=tr||Tür|ki|ye Türk|çe|si}} ===Özel ad=== {{tr-özel ad}} # {{t|dil=tr|dil bilimi}} [[Türkiye]]'de, [[Balkanlar]]'da, [[Avrupa]]'da, [[Kuzey Kıbrıs Türk Cumhuriyeti]]'nde, [[Irak]] ve [[Suriye]]'nin bazı bölgelerinde kullanılan [[Türk dili]]. ====Çekimleme==== {{tr-ad-tablo}} ====Kısaltmalar==== * {{b|tr|TT}} ====Eş anlamlılar==== * [[Türkçe]] ====Çekimleme==== {{üst|Türkiye Türkçesi|tip=çeviriler}} * Almanca: {{ç|de|Türkeitürkisch|n}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|dil=tr|Vikipedi}} 9n3j762lokij4xitaaebfdmuiyrnpzl Osmanlı Türkçesi 0 8776 5658315 5658001 2026-05-15T17:48:46Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658315 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== * {{IPA|dil=tr|/os.ˈman.lɯ tyrk.t͡ʃe.si/|/os.ˈman.lɯ tyrk.t͡ʃe.ˈsi/}} * {{h|dil=tr||Os|man|lı Türk|çe|si}} ===Köken=== *{{birleşik|dil=tr|Osmanlı|Türkçe}} ===Özel ad=== {{tr-özel ad}} [[Dosya:Letâif-i hikâyât ve garâib-i rivayât, cild-i evvel.jpg|küçükresim|Osmanlı Türkçesi bir metin.]] # {{t|dil=tr|diller}} XIV-XX. yüzyıllar arasında Anadolu'da ve Osmanlı Devleti'nin yayıldığı ülkelerde kullanılmış olan konuşma ve yazı dili; [[Osmanlıca]]. ===Ön ad=== {{tr-ön ad}} # Bu dille yazılmış olan. ====Çeviriler==== {{tr-ad-tablo}} ====Çeviriler==== {{Üst|eski bir Türk dili|tip=çeviriler}} * Almanca: {{ç|de|Osmanische Sprache|f}} * Arapça: {{ç|ar|اَلْعُثْمَانِيَّة|f}}, {{ç|ar|اَلتُّرْكِيَّة الْعُثْمَانِيَّة|f}} * Azerbaycanca: {{ç|az|osmanlı dili}}, {{ç|az|osmanlı türkcəsi}} * Bulgarca: {{ç|bg|османски турски}}, {{ç|bg|османо-турски}} * Çince: *: Mandarin: {{ç|cmn|奧斯曼土耳其語|sc=Hani}}, {{ç|cmn|奥斯曼土耳其语|tr=Àosīmàn Tǔ'ěrqíyǔ|sc=Hani}} * Ermenice: {{ç|hy|տաճկերեն}}, {{ç|hy|օսմաներեն}} * Farsça: {{ç|fa|ترکی عثمانی}} * Fransızca: {{ç|fr|turc osmanli}} * İngilizce: {{ç|en|Ottoman Turkish}} * İspanyolca: {{ç|es|turco otomano}} * İsveççe: {{ç|sv|osmanska|g}}, {{ç|sv|ottomanska|g}} * Japonca: {{ç|ja|オスマン語|tr=Osuman-go|sc=Jpan}} * Kazakça: {{ç|kk|османлы түрік тілі}}, {{ç|kk|османлы түрікшесі}} * Lehçe: {{ç|pl|język osmańsko-turecki|m}} * Makedonca: {{ç|mk|отомански турски}} * Portekizce: {{ç|pt|turco otomano|m}} * Rusça: {{ç|ru|осма́нский язы́к|m}}, {{ç|ru|осма́нский|m}}, {{ç|ru|осма́нско-туре́цкий|m}} * Sırp-Hırvatça: *: Kiril: {{ç|sh|османлијски турски|m}}, {{ç|sh|отомански турски|m}} *: Latin: {{ç|sh|osmanlijski turski|m}}, {{ç|sh|otomanski turski|m}} * Tâcikçe: {{ç|tg|забони усмонӣ|sc=Cyrl}} * Türkçe: *: Osmanlı Türkçesi: {{ç|ota|عثمانلیجه}}, {{ç|ota|لسان عثمانی}} * Urduca: {{ç|ur|عثمانی|tr='usmānī}} * Yunanca: *: Modern Yunanca: {{ç|el|οθωμανικά τουρκικά|n-p}} {{Alt}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} ===Kaynakça=== * {{Kaynak-TDK}} ql7blxiea3k7me2kk1h21rrzponjm6y QTE 0 15090 5658418 4170124 2026-05-16T05:15:43Z MustafaCavlak 59368 /* İngilizce */ 5658418 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad}} # {{t|dil=en|video oyunları}} {{kısaltma|dil=en|quick time event}} 82c2sq9zf7eztwc4pwhmge049eu6yz9 İngiliz İngilizcesi 0 51720 5658325 4081807 2026-05-15T18:27:38Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658325 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== * {{IPA|dil=tr|[ɪn.ɡɪ.ˈɫɪz ɪn.ɡɪ.ɫɪz.d͡ʒe.si]}} * {{h|dil=tr||İn|gi|liz İn|gi|liz|ce|si}} ===Özel ad=== {{tr-özel ad|baş=[[İngiliz]] [[İngilizce]]si}} # {{t|diller|dil=tr}} [[İngiltere]]'de konuşulan [[Yüksek İngilizce]] ====Çekimleme==== {{tr-ad-tablo}} ====Üst kavramlar==== * [[Britanya İngilizcesi]] ====Çeviriler==== {{Üst|dil adı|tip=çeviriler}} * Fince: {{ç|fi|englanninenglanti}} * İngilizce: {{ç|en|British English}} * İtalyanca: {{ç|it|inglese britannico|m}} {{Alt}} ===Kaynakça=== * {{Kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} i7muhfxb6jl39r2gmc4ma9yyzme58w3 connexion 0 60723 5658340 4442901 2026-05-15T19:58:34Z MustafaCavlak 59368 /* Fransızca */ 5658340 wikitext text/x-wiki ==Fransızca== ===Köken=== {{kökenli|fr|la|cōnexiō|cōnexiōnem}}. Morfolojik olarak: {{ek|dil=fr|connecter|xion}}. ===Söyleniş=== * {{fr-IPA}} * {{ses|dil=fr|LL-Q150 (fra)-Lepticed7-connexion.wav}} * {{ses|dil=fr|LL-Q150 (fra)-LoquaxFR-connexion.wav}} * {{ses|dil=fr|LL-Q150 (fra)-Mecanautes-connexion.wav}} * {{ses|dil=fr|LL-Q150 (fra)-Poslovitch-connexion.wav}} ===Ad=== {{fr-ad|d}} # [[bağlantı]] cmzgtniwni87aau0lti18f379fuw4kk şalgam 0 123799 5658360 5259970 2026-05-15T21:59:18Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658360 wikitext text/x-wiki {{bakınız|Şalgam}} ==Türkçe== ====Yazılışlar==== : {{l|ota|[[شلغم]]}} ===Köken=== # {{k|dil=tr|fa}} ===Heceleme=== * {{h|dil=tr||şal|gam}} ===Ad=== {{tr-ad}} [[File:Brassica rapa - April 2023 - Sarah Stierch 01.jpg|küçükresim|Şalgam (1)]] [[Dosya:Brassica rapa turnip.jpg|küçükresim|Şalgam (2)]] # {{t|dil=tr|turpgiller}} Turpgillerden, yumru köklü bir bitki {{belirtici|Brassica rapa}}. # {{t|dil=tr|sebzeler}} Bu bitkinin insan ve hayvanlar için besin olarak kullanılan etli ve tatlı kökü. # {{t|dil=tr|içecekler}} [[şalgam suyu]] #*{{mt|dil=tr|dergi=Öküz|başlık=İnönü - Churchill Buluşması ve DSİ Meselesi|yazar=Ekrem Galip YALINER|yıl=1997|sayı=37|sayfa=25 |tanıklık= Halkına yalnızca kan ve gözyaşı vaadetmiş olan '''Churchill''', pek hoşuna giden şalgamdan bardak bardak götürüyordu. }} ====Atasözleri==== * [[aptal ata binerse bey oldum sanır, şalgam aşa girerse yağ oldum sanır]] * [[anan turp baban şalgam sen nereden çıktın gülbeşeker]] ====Türetilmiş kavramlar==== [[şalgam suyu]], [[küçük şalgam]], [[şeytan şalgamı]], [[yağ şalgamı]] ====Çeviriler==== {{üst|tip=çeviriler}} *Almanca: {{ç|de|Speiserübe|f}}, {{ç|de|Mairübe|f}} *Arapça: {{ç|ar|لفت}} *Azerice: {{ç|az|şalgam}} *Eski Türkçe: {{ç|otk|çagmur}}, {{ç|otk|çamgur}} *Estonca: {{ç|et|naeris}} *Farsça: {{ç|fa|شلغم}} *Fince: {{ç|fi|nauris}}, {{ç|fi|naurismehu}} *Fransızca: {{ç|fr|navet}} *İngilizce: {{ç|en|turnip}} * İspanyolca: {{ç|es|nabo|e}} *İsveççe: {{ç|sv|majrova}}, {{ç|sv|rova}} *İtalyanca: {{ç|it|rapa|f}} *Japonca: {{ç|ja|蕪}}, {{ç|ja|カブ}} [kabu] *Kürtçe: {{ç|ku|şêlim}} * Macarca: {{ç|hu|fehérrépa}} *Şorca: {{ç|cjs|шалған}} [şalğan] *Urduca: {{ç|ur|شلغم}} {{alt}} ===Kaynakça=== {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|vikipedi}} * {{proje bağlantısı|vikitür|Brassica rapa}} ==Azerice== ===Ad=== {{başlık başı|az|ad}} # {{t|turpgiller|sebzeler|sebzeler|dil=az}} şalgam qbqqlbsb22d5oeel1hxizi5bjozuexq 5658361 5658360 2026-05-15T22:00:06Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658361 wikitext text/x-wiki {{bakınız|Şalgam}} ==Türkçe== ====Yazılışlar==== : {{l|ota|[[شلغم]]}} ===Köken=== # {{k|dil=tr|fa}} ===Heceleme=== * {{h|dil=tr||şal|gam}} ===Ad=== {{tr-ad}} [[File:Brassica rapa - April 2023 - Sarah Stierch 01.jpg|küçükresim|Şalgam (1)]] [[Dosya:Brassica rapa turnip.jpg|küçükresim|Şalgam (2)]] # {{t|dil=tr|turpgiller}} Turpgillerden, yumru köklü bir bitki {{belirtici|Brassica rapa}}. # {{t|dil=tr|sebzeler}} Bu bitkinin insan ve hayvanlar için besin olarak kullanılan etli ve tatlı kökü. # {{t|dil=tr|içecekler}} [[şalgam suyu]] #*{{mt|dil=tr|dergi=Öküz|başlık=İnönü - Churchill Buluşması ve DSİ Meselesi|yazar=Ekrem Galip YALINER|yıl=1997|sayı=37|sayfa=25 |tanıklık= Halkına yalnızca kan ve gözyaşı vaadetmiş olan Churchill, pek hoşuna giden '''şalgamdan''' bardak bardak götürüyordu. }} ====Atasözleri==== * [[aptal ata binerse bey oldum sanır, şalgam aşa girerse yağ oldum sanır]] * [[anan turp baban şalgam sen nereden çıktın gülbeşeker]] ====Türetilmiş kavramlar==== [[şalgam suyu]], [[küçük şalgam]], [[şeytan şalgamı]], [[yağ şalgamı]] ====Çeviriler==== {{üst|tip=çeviriler}} *Almanca: {{ç|de|Speiserübe|f}}, {{ç|de|Mairübe|f}} *Arapça: {{ç|ar|لفت}} *Azerice: {{ç|az|şalgam}} *Eski Türkçe: {{ç|otk|çagmur}}, {{ç|otk|çamgur}} *Estonca: {{ç|et|naeris}} *Farsça: {{ç|fa|شلغم}} *Fince: {{ç|fi|nauris}}, {{ç|fi|naurismehu}} *Fransızca: {{ç|fr|navet}} *İngilizce: {{ç|en|turnip}} * İspanyolca: {{ç|es|nabo|e}} *İsveççe: {{ç|sv|majrova}}, {{ç|sv|rova}} *İtalyanca: {{ç|it|rapa|f}} *Japonca: {{ç|ja|蕪}}, {{ç|ja|カブ}} [kabu] *Kürtçe: {{ç|ku|şêlim}} * Macarca: {{ç|hu|fehérrépa}} *Şorca: {{ç|cjs|шалған}} [şalğan] *Urduca: {{ç|ur|شلغم}} {{alt}} ===Kaynakça=== {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|vikipedi}} * {{proje bağlantısı|vikitür|Brassica rapa}} ==Azerice== ===Ad=== {{başlık başı|az|ad}} # {{t|turpgiller|sebzeler|sebzeler|dil=az}} şalgam qoxi9581xtllvhn5uyt35le09cit2r8 Taygun 0 125854 5658365 5261195 2026-05-15T22:23:33Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658365 wikitext text/x-wiki ==Türkçe== ===Köken=== {{farklı|tr|Toygun}} ===Söyleniş=== * {{IPA|dil=tr|/de.ˈniz/}} * {{h|dil=tr||De|niz}} ===Özel ad=== {{tr-özel ad|k=1}} # {{özel ad|dil=tr|erkek ismi}} #*{{mt|dil=tr|dergi=Öküz|başlık=Dostlar Sitesi|yazar=Can BARSLAN|yıl=1997|sayı=37|sayfa=27 |tanıklık= '''Taygun'la''' kısa bir telefon görüşmesi yaptım.. O da bugün hasta anne­annesini ziyarete gideceğini ve ona çok sevdi­ği Hindistan cevizli keklerden birkaç dilim götürece­ğini söyledi..}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== *{{KYK:Nişanyan Adlar}} * {{Yurtsever-TAD-1997}} gey39zcda5b34wxermi7r2k2swplj7w 5658366 5658365 2026-05-15T22:23:52Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658366 wikitext text/x-wiki ==Türkçe== ===Köken=== {{farklı|Toygun}} ===Söyleniş=== * {{IPA|dil=tr|/de.ˈniz/}} * {{h|dil=tr||De|niz}} ===Özel ad=== {{tr-özel ad|k=1}} # {{özel ad|dil=tr|erkek ismi}} #*{{mt|dil=tr|dergi=Öküz|başlık=Dostlar Sitesi|yazar=Can BARSLAN|yıl=1997|sayı=37|sayfa=27 |tanıklık= '''Taygun'la''' kısa bir telefon görüşmesi yaptım.. O da bugün hasta anne­annesini ziyarete gideceğini ve ona çok sevdi­ği Hindistan cevizli keklerden birkaç dilim götürece­ğini söyledi..}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== *{{KYK:Nişanyan Adlar}} * {{Yurtsever-TAD-1997}} 8ogg718pub7vnpa4ev04rgf0vf0oj17 Toygun 0 125941 5658367 5261273 2026-05-15T22:27:59Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658367 wikitext text/x-wiki ==Türkçe== ===Köken=== *{{k|ota|dil=tr}}, o da [[Eski Türkçe]]'de [[doğan]] sözcüğünün varyantı. ===Söyleniş=== * {{h|dil=tr||Toy|gun}} ===Özel ad=== {{tr-özel ad}} # {{özel ad|dil=tr|erkek ismi}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== *{{KYK:Nişanyan Adlar}} * {{Yurtsever-TAD-1997}} ihi6tev7x7s5hpsij3qlr439fkk0t92 çorap 0 127863 5658309 5642274 2026-05-15T17:15:14Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658309 wikitext text/x-wiki ==Türkçe== ===Köken=== {{devralınan|tr|ota|چوراب|ç=çorap, çorab}}, {{kökenli|tr|fa|جوراب|ç=jôrâb}}. ===Söyleniş=== * {{IPA|dil=tr|/tʃoˈɾap/|[t̠̠͡ʃo̞ʷˈɾɑp]}} * {{ses|dil=tr|LL-Q256 (tur)-ToprakM-çorap.wav}} * {{h|dil=tr||ço|rap}} ===Ad=== [[File:Sock size owner.jpg|küçükresim|Çorap]] {{tr-ad}} # {{t|dil=tr|ayak giyimi}} pamuk, yün vb.nden örülen, ayağa giyilen giyecek #*''Varlıklı kadın ve erkekler naylon çorap giyiyorlardı.'' - Ayla Kutlu ====Deyimler==== [[çorap kaçmak]], [[çorap söküğü gibi gitmek]], [[çorap söküğü gibi gelmek]] ===Çekimleme=== {{tr-ad-tablo}} ====Türetilmiş kavramlar==== [[külotlu çorap]], [[soket çorap]], [[varis çorabı]] ====Çeviriler==== {{Üst|tip=çeviriler}} *Almanca: {{ç|de|Strumpf|m}} *Arnavutça: {{ç|sq|çorap}} *Baskça: {{ç|eu|galtzerdi}} *Danca: {{ç|da|strømpe}} *Ermenice: {{ç|hy|գուլպա}} *Estonca: {{ç|et|sokk}} *Farsça: {{ç|fa|جوراب}} *Felemenkçe: {{ç|nl|sok}}, {{ç|nl|kous}} *Fince: {{ç|fi|sukka}}, {{ç|fi|sukkapari}} *Fransızca: {{ç|fr|chaussette}} *İngilizce: {{ç|en|stocking}} *İspanyolca: {{ç|es|calcetín}} *İsveççe: {{ç|sv|strumpa}}, {{ç|sv|socka}} *Kırım Tatarcası: {{ç|crh|çorap}} *Letonca: {{ç|lv|zeķes}} *Macarca: {{ç|hu|zokni}}, {{ç|hu|harisnya}} *Özbekçe: {{ç|uz|paypoq}} *Portekizce: {{ç|pt|meia}} *Rusça: {{ç|ru|чулок}}, {{ç|ru|носок}} *Sırp-Hırvatça: {{ç|sh|čarapa|f}} *Yunanca: {{ç|el|κάλτσα|d}} {{Alt}} ===Kaynakça=== * {{kaynak-TDK}} ==Gagavuzca== ===Köken=== {{kökenli|gag|fa|جوراب}} ===Ad=== {{başlık başı|gag|ad}} # çorap krkin7rgo31en64an63d0d2657hisvw холодный 0 131773 5658433 3797477 2026-05-16T07:31:41Z MustafaCavlak 59368 /* Rusça */ 5658433 wikitext text/x-wiki ==Rusça== ===Ön ad=== {{ru-ön ad|холо́дный}} # [[soğuk]] pmst9obnaebzfh38eelmrb914bo4q3a ナイフ 0 140760 5658425 4533730 2026-05-16T06:48:22Z MustafaCavlak 59368 /* Japonca */ 5658425 wikitext text/x-wiki ==Japonca== {{vikipedi|dil=ja}} ===Söyleniş=== {{ja-söyleniş|ak=1|ak_kaynak=DJR}} ===Ad=== {{ja-ad}} # [[bıçak]] ===Kaynakça=== {{kaynakça}} npty3b2i671stxgkyivwj337362um99 høka 0 154142 5658296 4439914 2026-05-15T15:27:34Z MustafaCavlak 59368 /* Faroe dili */ 5658296 wikitext text/x-wiki ==Faroe dili== ===Köken=== {{devralınan|fo|non|haka}}. ===Söyleniş=== * {{IPA|dil=fo|/ˈhøːʰka/}} ===Ad=== {{fo-ad|d|høku|høkur}} # {{t|dil=fo|anatomi}} [[çene]] ====Çekimleme==== {{fo-çekim-ad-d1|høk}} 4dmirpfv45yc051vayqwfywaba689ul ceremony 0 162058 5658570 4433421 2026-05-16T11:19:42Z MustafaCavlak 59368 /* İngilizce */ 5658570 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad|ceremonies}} # [[seremoni]], [[tören]] iu0gf5fm680l1y24lbakbuouxhf1v33 5658571 5658570 2026-05-16T11:21:10Z MustafaCavlak 59368 /* İngilizce */ 5658571 wikitext text/x-wiki ==İngilizce== ===Köken=== {{devralınan|en|enm|cerymonye}}, {{kökenli|en|la|caerimonia}}. ===Ad=== {{en-ad|~|ceremonies}} # [[seremoni]], [[tören]] 814ksq3l83jvsc35lp3x0z4soktyq68 symptom 0 162774 5658578 4518419 2026-05-16T11:35:00Z MustafaCavlak 59368 /* İngilizce */ 5658578 wikitext text/x-wiki ==İngilizce== ===Köken=== {{devralınan|en|enm|sinthoma}}, {{köken|dil=en|la-med}} {{z|la|sinthoma}} sözcüğünden, {{köken|dil=en|LL.}} {{z|la|symptoma}} sözcüğünden, {{kökenli|en|grc|σύμπτωμα}}. ===Ad=== {{en-ad}} # {{terim|dil=en|tıp}} [[semptom]], [[belirti]] gm6lzbrt58nv77drk2es3wl352jcf1d portre 0 173103 5658454 5263871 2026-05-16T08:28:59Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658454 wikitext text/x-wiki ==Türkçe== ===Köken=== {{k|dil=tr|fr}} {{ç|fr|portrait}} ===Ad=== {{tr-ad}} {{Vikipedi}} # bir [[kişi]]nin [[yağlı boya]], [[sulu boya]], [[kara kalem]] vb. bir yolla [[yapılmış]] [[resim|resmi]], [[fotoğraf]] #:''Biri ötekinin portresini yapıyor, biri kitap okuyor ve öteki notlar alıyor.'' - P. Safa # {{t|dil=tr|edebiyat}} bir kişinin, [[bir şey|bir şeyin]] [[sözlü]] veya [[yazılı tasviri]] #:''Milliyet'in eski pazar eklerinde on beş hafta boyu portreler yazmıştım.'' - H. Taner ====Deyimler==== [[fiziki portre]], [[ruhsal portre]] ====Çeviriler==== {{üst|tip=çeviriler}} *Fince: {{ç|fi|potretti}} *İngilizce: {{ç|en|portrait}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} 3d7y0nx5bnd4q4q711d7e2b81gswvny 5658461 5658454 2026-05-16T08:34:43Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658461 wikitext text/x-wiki ==Türkçe== ===Köken=== {{k|dil=tr|fr}} {{ç|fr|portrait}} ===Söyleniş=== *{{h|dil=tr||port|re}} ===Ad=== {{tr-ad}} [[File:Nla.obj-138933635-1.jpg|küçükresim|Bir portre örneği. (1)]] #{{t|dil=tr|resim}} Bir kimsenin yağlı boya, sulu boya, kara kalem vb. bir yolla yapılmış resmi. #*{{kt|başlık=Kürk Mantolu Madonna|yazar=Sabahattin Ali|yayıncı=Remzi Kitabevi|yıl=1943|vikikaynak=Sayfa:Kürk Mantolu Madonna.djvu/55|dil=tr |sayfa=55 |tanıklık= Yalnız orada, kürk mantolu bir kadın '''portresinin''' önün­de, mıhlanmış gibi durduğumu hatırlıyorum. }} # {{t|dil=tr|edebiyat}} Bir kimsenin, bir şeyin sözlü veya yazılı tasviri. #*''Milliyet'in eski pazar eklerinde on beş hafta boyu portreler yazmıştım.'' - H. Taner ====Çeviriler==== {{üst|tip=çeviriler}} *Fince: {{ç|fi|potretti}} *İngilizce: {{ç|en|portrait}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} ltn572ni8z2im2mbcje2asngqodlppn 5658463 5658461 2026-05-16T08:35:08Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658463 wikitext text/x-wiki ==Türkçe== ===Köken=== {{k|dil=tr|fr}} {{ç|fr|portrait}} ===Söyleniş=== *{{h|dil=tr||port|re}} ===Ad=== {{tr-ad}} [[File:Nla.obj-138933635-1.jpg|küçükresim|Bir portre örneği. (1)]] #{{t|dil=tr|resim}} Bir kimsenin yağlı boya, sulu boya, kara kalem vb. bir yolla yapılmış resmi. #*{{kt|başlık=Kürk Mantolu Madonna|yazar=Sabahattin Ali|yayıncı=Remzi Kitabevi|yıl=1943|vikikaynak=Sayfa:Kürk Mantolu Madonna.djvu/55|dil=tr |sayfa=55 |tanıklık= Yalnız orada, kürk mantolu bir kadın '''portresinin''' önün­de, mıhlanmış gibi durduğumu hatırlıyorum. }} # {{t|dil=tr|edebiyat}} Bir kimsenin, bir şeyin sözlü veya yazılı tasviri. #*''Milliyet'in eski pazar eklerinde on beş hafta boyu portreler yazmıştım.'' - H. Taner ===Çekimleme=== {{tr-ad-tablo}} ====Çeviriler==== {{üst|tip=çeviriler}} *Fince: {{ç|fi|potretti}} *İngilizce: {{ç|en|portrait}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} fglggurde11bgpjqnytlg3q1xkubzvb guru 0 256506 5658353 3945517 2026-05-15T21:45:20Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658353 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{h|dil=tr||gu|ru}} ===Köken=== :{{k|sa|dil=tr}} ===Ad=== {{tr-ad}} # {{t|Budizm|Hinduizm|Sihizm|dil=tr}} Brahmacı eğitimde yüksek kasttan gençleri ve öğrencileri yetiştiren, manevî gücünün en [[yüksek]] noktada olduğuna inanılan [[kimse]] #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık=Aradığı şey herhalde ülkesinde olmadığı için, bunlar­ dan biri kalkıp ta Tibet'e kadar giderek bir '''guru''' ile tanışmış, fakat geri dönerken İran'da cüzdanını çarptırmıştı. }} # [[pir]] ====Çeviriler==== {{üst|guru|tip=çeviriler}} *Almanca: {{ç|de|Guru|m}} *İngilizce: {{ç|en|guru}} {{alt}} 29utweqwdw8l8ue110hu72cju2wqzt4 5658354 5658353 2026-05-15T21:45:26Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658354 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{{h|dil=tr||gu|ru}} ===Köken=== :{{k|sa|dil=tr}} ===Ad=== {{tr-ad}} # {{t|Budizm|Hinduizm|Sihizm|dil=tr}} Brahmacı eğitimde yüksek kasttan gençleri ve öğrencileri yetiştiren, manevî gücünün en [[yüksek]] noktada olduğuna inanılan [[kimse]] #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık=Aradığı şey herhalde ülkesinde olmadığı için, bunlar­ dan biri kalkıp ta Tibet'e kadar giderek bir '''guru''' ile tanışmış, fakat geri dönerken İran'da cüzdanını çarptırmıştı. }} # [[pir]] ====Çeviriler==== {{üst|guru|tip=çeviriler}} *Almanca: {{ç|de|Guru|m}} *İngilizce: {{ç|en|guru}} {{alt}} ieoogm15b54v4ie8zs2lqh86340z00s 5658355 5658354 2026-05-15T21:45:43Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658355 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{{h|dil=tr||gu|ru}} ===Köken=== :{{k|sa|dil=tr}} ===Ad=== {{tr-ad}} # {{t|Budizm|Hinduizm|Sihizm|dil=tr}} Brahmacı eğitimde yüksek kasttan gençleri ve öğrencileri yetiştiren, manevî gücünün en [[yüksek]] noktada olduğuna inanılan [[kimse]] #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık=Aradığı şey herhalde ülkesinde olmadığı için, bunlar­dan biri kalkıp ta Tibet'e kadar giderek bir '''guru''' ile tanışmış, fakat geri dönerken İran'da cüzdanını çarptırmıştı. }} # [[pir]] ====Çeviriler==== {{üst|guru|tip=çeviriler}} *Almanca: {{ç|de|Guru|m}} *İngilizce: {{ç|en|guru}} {{alt}} 0mhfszeg244muqkxap0oqs89a1nkpyw İzmirli 0 285903 5658334 4509743 2026-05-15T19:42:59Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658334 wikitext text/x-wiki ==Türkçe== ===Özel ad=== {{tr-özel ad|k=1}} {{tr-ad}} # [[İzmir]] ilinden olan kimse. ====Söyleniş==== :{{IPA|dil=tr|/ˈizmiɾli/}}, {{ç.}} {{IPA|dil=tr|/ˈizmiɾliˈleɾ/}} ====Çekimleme==== {{tr-ad-tablo}} ====Köken==== {{ek|dil=tr|İzmir|li}} hg4ix91ut4s76shm50iyoq6o6yrions Giresunlu 0 285954 5658333 5633876 2026-05-15T19:42:41Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658333 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== * {{h|dil=tr||Gi|re|sun|lu}} ===Özel ad=== {{tr-özel ad|k=1}} # [[Giresun]] ilinden olan kimse. #*{{kt|dil=tr|başlık=Huzur|yazar=Ahmet Hamdi TANPINAR|yayıncı=Dergâh Yayınları|yıl=2022|baskı=39|sayfa=143|tanıklık=Mümtaz, Rizeli Sadık'a, '''Giresunlu''' Remzi'ye, yedi cet Hisarlı Arap Nuri'ye, Bebekli Yani'ye bu düşüncelerin arasından bir zaman baktı.}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== * {{KYK:TDK}}   dy9bymr3it3ffisheaq08xy33edhkam Konyalı 0 285962 5658336 5634825 2026-05-15T19:54:51Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658336 wikitext text/x-wiki ==Türkçe== ===Özel ad=== {{tr-özel ad|k=1}} #[[Konya]] ilinden olan kimse. #*{{kt|başlık=Altın Ekin|yazar=Ümit KAFTANCIOĞLU|yayıncı=Dinozor Genç|yıl=2022|tanıklık=Amcam beni '''Konyalı''' buğday tüccarına verdi.|sayfa=105|dil=tr}} ====Çekimleme==== {{tr-ad-tablo}} 6qs94mlgdr5kd00bgvcenegegng6wtd Siirtli 0 285969 5658337 5635997 2026-05-15T19:56:44Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658337 wikitext text/x-wiki ==Türkçe== ===Köken=== {{ek|dil=tr|Siirt|li}} ===Söyleniş=== * {{IPA|dil=tr|/ˈsi.ˤiɾt.ɫi/}} * {{h|dil=tr||Si|irt|li}} ===Özel ad=== {{tr-özel ad|k=1}} # {{t|dil=tr|milletler}} [[Siirt]] ilinde doğmuş veya yaşayan kimse. #*{{kt|başlık=Dünyanın Bütün Karıncaları|yazar=Cabir ÖZYILDIZ|yayıncı=Vacilando Kitap |yıl=2025|sayfa=59|tanıklık=Sokaklar parsellenmiş. Önce gelen, en cevval olan kendi küçük egemenliğini kurmuş. Şu sokakta Çermikliler, orada '''Siirtliler''', öteki tarafta Urfa Arapları, berikinde Çingenler kümelenmiş.|dil=tr}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== * {{Kaynak-TDK}} 1c1a1s3u5b8rm1z4bb3gk91jkuiz61x Moldovalı 0 293475 5658339 4340164 2026-05-15T19:57:42Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658339 wikitext text/x-wiki ==Türkçe== ===Özel ad=== {{tr-özel ad|k=1}} # [[Moldova]] halkından olan kimse. ====Çekimleme==== {{tr-ad-tablo}} 5q4f3o84r3yba5di0e4n9lgt7ty2vf9 şalgam suyu 0 295245 5658358 5345465 2026-05-15T21:53:51Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658358 wikitext text/x-wiki ==Türkçe== ===Heceleme=== * {{h|dil=tr||şal|gam|su|yu}} ===Köken=== *{{birleşik|dil=tr|şalgam|su}} ===Ad=== {{tr-ad}} [[Dosya:Yeni3.jpg|küçükresim|Şalgam suyu]] # {{t|dil=tr|içecekler}} Doğranmış şalgam, havuç ile bulgur, su ve tuz kullanılarak yapılan bir içecek; [[şalgam]]. ====Çeviriler==== {{üst|tip=çeviriler}} *Fince: {{ç|fi|naurismehu}} {{alt}} ===Kaynakça=== {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} 6u6a3izo0kwkcgyia8bptb7ufibpwxp 5658359 5658358 2026-05-15T21:57:07Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658359 wikitext text/x-wiki ==Türkçe== ===Heceleme=== * {{h|dil=tr||şal|gam|su|yu}} ===Köken=== *{{birleşik|dil=tr|şalgam|su}} ===Ad=== {{tr-ad}} [[Dosya:Yeni3.jpg|küçükresim|Şalgam suyu]] # {{t|dil=tr|içecekler}} Doğranmış şalgam, havuç ile bulgur, su ve tuz kullanılarak yapılan bir içecek; [[şalgam]]. #*{{mt|dil=tr|dergi=Öküz|başlık=İnönü - Churchill Buluşması ve DSİ Meselesi|yazar=Ekrem Galip YALINER|yıl=1997|sayı=37|sayfa=25 |tanıklık= Eh, Adana'ya gelip de '''şal­gam suyu''', ki Adana'da kısaca şalgam denir buna, içirmemek olmazdı. }} ====Çeviriler==== {{üst|tip=çeviriler}} *Fince: {{ç|fi|naurismehu}} {{alt}} ===Kaynakça=== {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} 9di6az473js19tcw5htcpb3f5fhxqr8 Mehmet 0 297211 5658329 4196984 2026-05-15T19:23:44Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658329 wikitext text/x-wiki ==Türkçe== ===Farklı yazılışlar=== * [[Mehmed]] ===Köken=== {{kökenli|tr|ar|مُحَمَّد}}<ref>{{KYK:Nişanyan Adlar}}</ref>. ===Söyleniş=== * {{IPA|dil=tr|/meh.met/}} * {{h|dil=tr||Meh|met}} ===Özel ad=== {{tr-özel ad|k=1}} # {{özel ad|dil=tr|erkek adı}} ====Çekimleme==== {{tr-ad-tablo}} ====Türetilmiş kavramlar==== * [[Mehmetçik]] ===Kaynakça=== <references /> mvg45kfemk8veejokqjolngo2kzksh7 Orta Asya 0 306501 5658320 3905166 2026-05-15T18:04:26Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658320 wikitext text/x-wiki ==Türkçe== [[Dosya:Central Asia world region2.png|küçükresimnail|250px|<center>'''Orta Asya'''</center>]] ===Söyleniş=== * {{IPA|dil=tr|oɾˈta asja}} * {{h|dil=tr||Or|ta As|ya}} ===Özel ad=== {{tr-özel ad|a=1|baş=[[Orta]] [[Asya]]}} [[Asya'sı|'''Asya''' -'sı]] # {{t|dil=tr|coğrafya}} [[Afganistan]], [[Çin]]'in bir kısmı ([[Doğu Türkistan]]), [[Kazakistan]], [[Kırgızistan]], [[Kuzey İran]], [[Özbekistan]], [[Pakistan]]'ın bir kısmı, [[Rusya]], [[Tacikistan]] ve [[Türkmenistan]]'nın bulunduğu [[bölge]]yi tanımlayan [[coğrafî]] [[terim]] ====Çekimleme==== {{tr-ad-tablo}} ====Üst kavramlar==== * [[Avrasya]] ====Alt kavramlar==== * [[Afganistan]], [[Doğu Türkistan]], [[Kazakistan]], [[Kırgızistan]], [[Özbekistan]], [[Tacikistan]], [[Türkmenistan]] ====Türetilmiş kavramlar==== * [[Asya'yken]], [[Asya'yla]], [[Asya'ysa]], [[Asyacı]], [[Asyalı]], [[Asyasız]] ====Çeviriler==== {{üst|coğrafya|tip=çeviriler}} * Almanca: {{ç|de|Zentralasien}} * Fransızca: {{ç|fr|Asie centrale}} * İngilizce: {{ç|en|Central Asia}} * İsveççe: {{ç|sv|Centralasien}} * İtalyanca: {{ç|it|Asia centrale}} {{alt}} ===Kaynakça=== * {{kaynak-TDK}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} 7fnp30zvqcfy6zdl1n3jku6lg12eyhv Vikisözlük:Anasayfa 4 313750 5658417 5604766 2026-05-16T02:54:58Z MustafaCavlak 59368 5658417 wikitext text/x-wiki {{Anasayfa/başlık}} <div class="main-wrapper"> <div class="main-wrapper-column"> <div id="main-dyk" class="main-box main-box-image-only main-box-responsive-image" style="background:white"> <h2 class="main-header main-box-header">Hakkında</h2> {{Vikisözlük hakkında}} <div class="main-footer"> <div id="mw-customcollapsible-dyk" class="main-footer-menu mw-collapsible mw-collapsed nomobile"> <div class="main-footer-menuToggle mw-collapsible-toggle mw-customtoggle-main-dyk">[[File:OOjs UI icon ellipsis.svg|20px|link=]]</div> <div class="main-footer-menuDropdown mw-collapsible-content main-plainlist"> <span class="plainlinks mw-ui-button mw-ui-quiet">[https://tr.wiktionary.org/w/index.php?title=Şablon:Vikisözlük_hakkında&action=edit Düzenle]</span> </div></div></div></div> </div> <div class="main-wrapper-column"> <div id="main-dyk" class="main-box main-box-image-only main-box-responsive-image" style="background:white"> <div class="main-box-subtitle">Alfabeler</div> <h2 class="main-header main-box-header">Dizin</h2> {{Anasayfa/dizin}} <div class="main-footer"> <div class="main-footer-actions main-plainlist nomobile"> [[Şablon:Dizin|<span class="mw-ui-button">Tam liste</span>]] </div> <div id="mw-customcollapsible-dyk" class="main-footer-menu mw-collapsible mw-collapsed nomobile"> <div class="main-footer-menuToggle mw-collapsible-toggle mw-customtoggle-main-dyk">[[File:OOjs UI icon ellipsis.svg|20px|link=]]</div> <div class="main-footer-menuDropdown mw-collapsible-content main-plainlist"> <span class="plainlinks mw-ui-button mw-ui-quiet">[https://tr.wiktionary.org/w/index.php?title=Şablon:Anasayfa/dizin&action=edit Düzenle]</span> </div></div></div></div> </div> </div> <div class="main-wrapper"> <div class="main-wrapper-column"> <div id="main-dyk" class="main-box main-box-image-only main-box-responsive-image" style="background:white"> {{günün sözcüğü}} </div></div></div> <div class="main-wrapper"> <div class="main-wrapper-column"> <div id="main-dyk" class="main-box main-box-image-only main-box-responsive-image" style="background:white"> <h2 class="main-header main-box-header">[[Dosya:Latin dictionary.jpg|50px]] Diğer dillerde Vikisözlük</h2> {{Anasayfa/diğer diller}} <div class="main-footer"> <div class="main-footer-actions main-plainlist nomobile"> [https://www.wiktionary.org <span class="mw-ui-button">Tüm Vikisözlükler</span>] </div> <div id="mw-customcollapsible-dyk" class="main-footer-menu mw-collapsible mw-collapsed nomobile"> <div class="main-footer-menuToggle mw-collapsible-toggle mw-customtoggle-main-dyk">[[File:OOjs UI icon ellipsis.svg|20px|link=]]</div> <div class="main-footer-menuDropdown mw-collapsible-content main-plainlist"> <span class="plainlinks mw-ui-button mw-ui-quiet">[https://tr.wiktionary.org/w/index.php?title=Şablon:Anasayfa/diğer_diller&action=edit Düzenle]</span> </div></div></div></div> </div></div> {{Anasayfa/kardeş projeler}} __NOEDITSECTION__ __NOTOC__ {{Tazele}} 0cx8m8232rngvq4jd542ozsigfb2kof vegetarian 0 327964 5658573 4479949 2026-05-16T11:26:32Z MustafaCavlak 59368 /* İngilizce */ 5658573 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad}} # [[vejetaryen]] ===Ön ad=== {{en-ön ad}} # [[vejetaryenlik]] ile ilgili olan # vejetaryen olan 12vkswc0s4cmmsxq4xpnai5ygq6yhjk plomb 0 328175 5658450 4496826 2026-05-16T08:26:01Z MustafaCavlak 59368 /* Fransızca */ 5658450 wikitext text/x-wiki ==Fransızca== {{vikipedi|dil=fr}} ===Söyleniş=== * {{fr-IPA}} * {{ses|dil=fr|Fr-plomb.ogg}} ===Ad=== {{fr-ad|e}} # {{t|dil=fr|metaller|elementler}} [[kurşun]] k5eeyrbi5d1o4e0bk42979mrdud0gkt wedding 0 332556 5658572 4491717 2026-05-16T11:22:55Z MustafaCavlak 59368 /* İngilizce */ 5658572 wikitext text/x-wiki ==İngilizce== ===Söyleniş=== * {{ses|dil=en|en-us-wedding.ogg|(ABD)}} ===Ad=== {{en-ad}} # [[düğün]] ===Eylem=== {{başlık başı|en|çekimli eylem}} # {{çekim|dil=en|wed||ing-form}} kc0vssl6ew7vv3fpnvl354txitufo7y farm 0 335151 5658577 4416478 2026-05-16T11:32:57Z MustafaCavlak 59368 /* İngilizce */ 5658577 wikitext text/x-wiki ==İngilizce== ===Söyleniş=== * {{ses|dil=en|En-us-farm.ogg|(ABD)}} ===Ad=== {{en-ad}} # [[çiftlik]] mf8uq8cx384mu78s5tw0tgq3n441r6b Modül:ja-başlıkbaşı 828 416228 5658432 4884343 2026-05-16T07:07:35Z MustafaCavlak 59368 5658432 Scribunto text/plain local m_ja = require("Modül:ja") local m_ja_ruby = require('Modül:ja-ruby') local find = mw.ustring.find local export = {} local pos_functions = {} local lang = require("Modül:diller").getirKodaGore("ja") local sc = require("Modül:alfabeler").getirKodaGore("Jpan") local Latn = require("Modül:alfabeler").getirKodaGore("Latn") local Japonca_symbols = '%ー・=?!。、' local katakana_range = 'ァ-ヺーヽヾ' local hiragana_range = 'ぁ-ゖーゞゝ' local kana_range = katakana_range .. hiragana_range .. Japonca_symbols local Japonca_scripts_range = kana_range .. '一-鿌・々' local katakana_pattern = '^[' .. katakana_range .. Japonca_symbols .. ']*$' local hiragana_pattern = '^[' .. hiragana_range .. Japonca_symbols .. ']*$' local kana_pattern = '^[' .. kana_range .. ']*$' local kana_pattern_full = '^[、' .. kana_range .. '%s%.%-%^%%]*$' local function remove_links(text) return (text:gsub("%[%[[^|%]]-|", ""):gsub("%[%[", ""):gsub("%]%]", "")) end local function detect_kana_script(kana) if find(kana, katakana_pattern) then return 'kata' elseif find(kana, hiragana_pattern) then return 'hira' elseif find(kana, kana_pattern) then return 'both' else return nil end end local en_numerals = { "bir", "iki", "üç", "dört", "beş", "altı", "yedi", "sekiz", "dokuz", "on", "on bir", "on iki", "on üç", "on dört", "on beş" } local en_grades = { "birinci sınıf", "ikinci sınıf", "üçüncü sınıf", "dördüncü sınıf", "beşinci sınıf", "altıncı sınıf", "ortaokul", "jinmeiyō", "hyōgaiji" } local aliases = { ['geçişli']='tr', ['trans']='tr', ['geçişsiz']='in', ['intrans']='in', ['intr']='in', ['godan']='1', ['ichidan']='2', ['irregular']='irr' } local function kana_to_romaji(kana, veri, args) -- make adjustments for -u verbs and -i adjectives by placing a period before the last character -- to prevent romanizing long vowels with macrons if (veri.soz_kategorisi == "eylemler") or (veri.soz_kategorisi == "ön adlar" and (args["çekim"] == "i" or args["çekim"] == "い" or args["çekim"] == "is")) then kana = mw.ustring.gsub(kana,'([うい])$','.%1') end -- hyphens for prefixes, suffixes, and counters (classifiers) if veri.soz_kategorisi == "prefixes" then kana = kana:gsub('%-?$', '-') elseif veri.soz_kategorisi == "suffixes" or veri.soz_kategorisi == "counters" or veri.soz_kategorisi == "classifiers" then kana = kana:gsub('^%-?', '-') end -- automatic caps for proper nouns, if not already specified if veri.soz_kategorisi == "özel adlar" then if not find(kana, '%^') then kana = mw.ustring.gsub(kana, '^(.)', '^%1') kana = mw.ustring.gsub(kana, '([%s%-])(.)', '%1^%2') end end kana = m_ja.kana_to_romaji(kana) return kana end local function historical_kana(args, veri, poscat) local hk = args["hhira"] or args["hkata"] if hk then table.insert(veri.cekimler, { etiket = "geleneksel kana", "[[" .. hk .. "]]" .. (poscat == "suru verbs" and 'する' or ''), }) hk = m_ja.kata_to_hira(hk) if hk:match'ゐ' then table.insert(veri.kategoriler, "Japonca ゐ karakterini içeren geleneksel sözcükler") end if hk:match'ゑ' then table.insert(veri.kategoriler, "Japonca ゑ karakterini içeren geleneksel sözcükler") end if hk:match'を' and not (veri.kana and veri.kana:match'を') then table.insert(veri.kategoriler, "Japonca を karakterini içeren geleneksel sözcükler") end if hk:match'ぢ' and not (veri.kana and veri.kana:match'ぢ') then table.insert(veri.kategoriler, "Japonca ぢ karakterini içeren geleneksel sözcükler") end if hk:match'づ' and not (veri.kana and veri.kana:match'づ') then table.insert(veri.kategoriler, "Japonca づ karakterini içeren geleneksel sözcükler") end end end -- adds category Japonca terms spelled with jōyō kanji or Japonca terms spelled with non-jōyō kanji -- (if it contains any kanji) local function categorize_by_kanji(veri, PAGENAME) -- remove non-kanji characters local onlykanji = mw.ustring.gsub(PAGENAME, '[^一-鿌]', '') local number_of_kanji = mw.ustring.len(onlykanji) if number_of_kanji > 0 then for i=1,mw.ustring.len(onlykanji) do table.insert(veri.kategoriler, ("Japonca %s kanji harflerini içeren sözcükler"):format(en_grades[m_ja.kanji_grade(mw.ustring.sub(onlykanji,i,i))])) end -- categorize by number of kanji if number_of_kanji == 1 then table.insert(veri.kategoriler, "Japonca bir Han karakteri içeren sözcükler") elseif en_numerals[number_of_kanji] then table.insert(veri.kategoriler, ("Japonca %s Han karakteri içeren sözcükler"):format(en_numerals[number_of_kanji])) end end -- single-kanji terms if mw.ustring.len(PAGENAME) == 1 and mw.ustring.match(PAGENAME, '[一-鿌]') then table.insert(veri.kategoriler, "Japonca " .. PAGENAME .. " karakterini içeren sözcükler") table.insert(veri.kategoriler, "Japonca tek-kanji harfinden oluşan sözcükler") end end -- categorize by the script of the pagename or specific characters contained in it local function extra_categorization(veri, PAGENAME, katakana_category) -- if PAGENAME is hiragana, put in that category, same for katakana (but do it at the end) if detect_kana_script(PAGENAME) == 'hira' then table.insert(veri.kategoriler, "Japonca hiragana") end if detect_kana_script(PAGENAME) == 'kata' then table.insert(katakana_category, "Japonca katakana") end if find(PAGENAME, "[^" .. Japonca_scripts_range .. "]") and find(PAGENAME, '[' .. Japonca_scripts_range .. ']') then table.insert(veri.kategoriler, "Japonca birden fazla okunuşu olan sözcükler") end for _,character in ipairs({'々','〆','ヶ','ゝ','ゞ','ヽ','ヾ','ゐ','ヰ','ゑ','ヱ','ゔ','ヷ','ヸ','ヹ','ヺ','・','=','゠'}) do if mw.ustring.match(PAGENAME,character) then table.insert(veri.kategoriler, ("Japonca %s harfini içeren sözcükler"):format(character)) end end if find(PAGENAME, "[ァ-ヺヽヾ]") and find(PAGENAME, "[ぁ-ゖゞゝ]") and veri.soz_kategorisi ~= "proverbs" and veri.soz_kategorisi ~= "phrases" then table.insert(veri.kategoriler, "Japonca karışık kana harflerini içeren sözcükler") end end -- go through args and build inflections by finding whatever kanas were given to us local function format_headword(args, veri, head) local headword_kana_type = detect_kana_script(remove_links(m_ja.remove_ruby_markup(head))) local allkana, romajis = {}, {} local rep = {} local _insert_kana = headword_kana_type and function(k) -- pure-kana-title entry if k == '' then return end local key = remove_links(m_ja.remove_ruby_markup(k)) romajis[1] = kana_to_romaji(remove_links(k), veri, args) if not rep[key] then table.insert(allkana, k) rep[key] = true end end or function(k) -- non-pure-kana-title entry if k == '' then return end local key = m_ja.kana_to_romaji(remove_links(m_ja.remove_ruby_markup(k))) if not rep[key] then table.insert(romajis, kana_to_romaji(remove_links(k), veri, args)) table.insert(allkana, k) rep[key] = true end end if headword_kana_type then _insert_kana(remove_links(head)) allkana[1] = head end for i,arg in ipairs(args[1]) do if arg and arg ~= "" and find(arg, kana_pattern_full) then _insert_kana(arg) end end -- accept "hira" and "kata" but let Lua decide if they are really hiragana or katakana if args["hira"] and args["hira"] ~= "" then _insert_kana(args["hira"]) end if args["kata"] and args["kata"] ~= "" then _insert_kana(args["kata"]) end if args["rom"] then romajis[1] = args["rom"] end if #allkana == 0 then error('Kana form is required') end if #romajis == 0 then error('Romaji is required') end local suru_ending = veri.soz_kategorisi == "suru verbs" and '[[する]]' or '' for _, kana in ipairs(allkana) do -- add everything to inflections, except historical hiragana which is next -- local format_result = headword_kana_type and allkana[i] or format_ruby(PAGENAME, allkana[i], data) local format_result, format_result_preserved --<ruby> form, []() form if headword_kana_type then format_result = m_ja.remove_ruby_markup(kana) format_result_preserved = remove_links(format_result) .. suru_ending format_result = format_result .. suru_ending else local format_table = m_ja_ruby.parse_text(head, kana, { try = 'force', try_force_limit = 10000 }) format_result = m_ja_ruby.to_wiki(format_table, { break_link = true, }):gsub('<rt>(..-)</rt>', "<rt>[[" .. remove_links(m_ja.remove_ruby_markup(kana)) .."|%1]]</rt>") .. suru_ending format_result_preserved = remove_links(m_ja_ruby.to_markup(format_table)) .. suru_ending end table.insert(veri.baslar, format_result) veri.korunan_baslar = veri.korunan_baslar or format_result_preserved end suru_ending = veri.soz_kategorisi == "suru verbs" and ' suru' or '' for _, rom in ipairs(romajis) do table.insert(veri.alfabecevler, '[[' .. rom .. '#Japonca|' .. rom .. ']]' .. suru_ending) end if #romajis > 1 then table.insert(veri.kategoriler, "Japonca birden fazla okunuşu olan sözcükler") end veri.kana = allkana[1] and remove_links(m_ja.remove_ruby_markup(allkana[1])) end local function add_transitivity(veri, tr) tr = aliases[tr] or tr if tr == "tr" then table.insert(veri.orta_bilgi, 'geçişli') table.insert(veri.kategoriler, "Japonca geçişli eylemler") elseif tr == "in" then table.insert(veri.orta_bilgi, 'geçişsiz') table.insert(veri.kategoriler, "Japonca geçişsiz eylemler") elseif tr == "both" then table.insert(veri.orta_bilgi, 'geçişli veya geçişsiz') table.insert(veri.kategoriler, "Japonca geçişli eylemler") table.insert(veri.kategoriler, "Japonca geçişsiz eylemler") else table.insert(veri.kategoriler, "Japonca çatısız eylemler") end end local function add_inflections(veri, inflection_type, cat_suffix) local lemma = veri.korunan_baslar or veri.baslar[1] local romaji = remove_links(veri.alfabecevler[1]) inflection_type = aliases[inflection_type] or inflection_type local function replace_suffix(lemma_from, lemma_to, romaji_from, romaji_to) -- e.g. 持って来る, lemma = "[持](も)って来(く)る" -- lemma_from = "くる", lemma_to = {"き","きた"} local p_kr = katakana_range .. hiragana_range local lemma_sub local romaji_sub local key_pos = {} local i1, i2 romaji_from = romaji_from or m_ja.kana_to_romaji(lemma_from) if type(lemma_to) ~= 'table' then lemma_to = {lemma_to} end if type(romaji_to) ~= 'table' then romaji_to = {romaji_to} end for i, v in ipairs(lemma_to) do romaji_to[i] = romaji_to[i] or m_ja.kana_to_romaji(v) end lemma_sub = lemma lemma_from = lemma_from ~= '' and mw.text.split(lemma_from, '') or {} -- lemma_from = {"く","る"} local len_lemma_from = #lemma_from -- find the last two kana in "[持](も)って来(く)る" key_pos[len_lemma_from + 1] = {-1} for i = len_lemma_from, 1, -1 do i1, _, i2 = mw.ustring.find(lemma_sub, '[' .. m_ja.kata_to_hira(lemma_from[i]) .. m_ja.hira_to_kata(lemma_from[i]) .. ']()[^' .. p_kr .. ']-$') if not i1 then return nil end i1 = i1 - 1 key_pos[i] = {i1, i2} lemma_sub = mw.ustring.sub(lemma_sub, 1, i1) end romaji_sub, i1 = romaji:gsub(romaji_from .. '%s*$', '') if i1 ~= 1 then return nil end local result = {} for i, v in ipairs(lemma_to) do local result_single = {lemma_sub} for j = 1, len_lemma_from do table.insert(result_single, mw.ustring.sub(v, j, j)) table.insert(result_single, mw.ustring.sub(lemma, key_pos[j][2], key_pos[j + 1][1])) end table.insert(result_single, mw.ustring.sub(v, len_lemma_from + 1)) result[i] = {lemma = table.concat(result_single), romaji = romaji_sub .. romaji_to[i]} -- "[持](も)って来(" .. "き" .. ")" .. "" .. "" and "[持](も)って来(" .. "き" .. ")" .. "た" .. "" end return result -- {{lemma="[持](も)って来(き)",romaji="motteki"},{lemma="[持](も)って来(き)た",romaji="mottekita"}} end local function insert_form(label, ...) -- etiket = "stem" or "past" etc. -- ... = {lemma=...,romaji=...},{lemma=...,romaji=...} local labeled_forms = {etiket = label} for _, v in ipairs{...} do local table_form = m_ja_ruby.parse_markup(v.lemma) local form_term = m_ja_ruby.to_wiki(table_form) if not form_term:find'%[%[.+%]%]' then form_term = '[[' .. m_ja_ruby.to_text(table_form) .. '#Japonca|' .. form_term .. ']]' end table.insert(labeled_forms, { term = form_term, translit = v.romaji, }) end table.insert(veri.cekimler, labeled_forms) end local inflected_forms if inflection_type == '1' or inflection_type == '1s' then table.insert(veri.orta_bilgi, '<abbr title="godan (tip I) çekimi">godan</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca tip 1 " .. cat_suffix) if cat_suffix == 'eylemler' and veri.alfabecevler[1] and mw.ustring.find(remove_links(veri.alfabecevler[1]), '[ieIEīēĪĒ]ru$') then table.insert(veri.kategoriler, "Japonca -iru veya -eru ile biten tip 1 eylemler") end end if inflection_type == '1' then inflected_forms = replace_suffix('く', {'き', 'いた'}, 'ku', {'ki', 'ita'}) or replace_suffix('ぐ', {'ぎ', 'いだ'}, 'gu', {'gi', 'ida'}) or replace_suffix('す', {'し', 'した'}, 'su', {'shi', 'shita'}) or replace_suffix('つ', {'ち', 'った'}, 'tsu', {'chi', 'tta'}) or replace_suffix('ぬ', {'に', 'んだ'}, 'nu', {'ni', 'nda'}) or replace_suffix('ぶ', {'び', 'んだ'}, 'bu', {'bi', 'nda'}) or replace_suffix('む', {'み', 'んだ'}, 'mu', {'mi', 'nda'}) or replace_suffix('る', {'り', 'った'}, 'ru', {'ri', 'tta'}) or replace_suffix('う', {'い', 'った'}, 'u', {'i', 'tta'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else --require("Modül:debug").track("ja-headword/godan conjugation failed") end else inflected_forms = replace_suffix('る', {'り', 'った', 'い'}, 'ru', {'ri', 'tta', 'i'}) or --くださる replace_suffix('いく', {'いき', 'いった'}, 'iku', {'iki', 'itta'}) or --行く replace_suffix('う', {'い', 'うた'}, 'ou', {'oi', 'ōta'}) --問う if inflected_forms then insert_form('stem', inflected_forms[1], inflected_forms[3]) insert_form('past', inflected_forms[2]) else --require("Modül:debug").track("ja-headword/godan conjugation special failed") end end elseif inflection_type == '2' then table.insert(veri.orta_bilgi, '<abbr title="ichidan (tip II) çekimi">ichidan</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca tip 2 " .. cat_suffix) end inflected_forms = replace_suffix('る', {'', 'た'}, 'ru', {'', 'ta'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else --require("Modül:debug").track("ja-headword/ichidan conjugation failed") end elseif inflection_type == 'suru' then table.insert(veri.orta_bilgi, '<abbr title="suru (tip III) çekimi">suru</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca suru " .. cat_suffix) end inflected_forms = replace_suffix('する', {'し', 'した'}, 'suru', {'shi', 'shita'}) or replace_suffix('ずる', {'じ', 'じた'}, 'zuru', {'ji', 'jita'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else --require("Modül:debug").track("ja-headword/suru conjugation failed") end elseif inflection_type == 'kuru' then table.insert(veri.orta_bilgi, '<abbr title="kuru (tip III) çekimi">kuru</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca kuru " .. cat_suffix) end inflected_forms = replace_suffix('くる', {'き', 'きた'}, 'kuru', {'ki', 'kita'}) if inflected_forms then insert_form('stem', inflected_forms[1]) insert_form('past', inflected_forms[2]) else --require("Modül:debug").track("ja-headword/kuru conjugation failed") end elseif inflection_type == 'i' or inflection_type == 'い' then table.insert(veri.orta_bilgi, '<abbr title="-i (tip I) çekimi">-i</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca い-i " .. cat_suffix) end inflected_forms = replace_suffix('い', {'く'}, 'i', {'ku'}) if inflected_forms then insert_form('adverbial', inflected_forms[1]) else --require("Modül:debug").track("ja-headword/-i inflection failed") end elseif inflection_type == 'is' then table.insert(veri.orta_bilgi, '<abbr title="-i (tip I) çekimi">-i</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca い-i " .. cat_suffix) end inflected_forms = replace_suffix('いい', {'よく'}, 'ii', {'yoku'}) if inflected_forms then insert_form('adverbial', inflected_forms[1]) else --require("Modül:debug").track("ja-headword/slightly irregular -i inflection failed") end elseif inflection_type == 'na' or inflection_type == 'な' then table.insert(veri.orta_bilgi, '<abbr title="-na (tip II) çekimi">-na</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca な-na " .. cat_suffix) end inflected_forms = replace_suffix('', {'[[な]]', '[[に]]'}, '', {' na', ' ni'}) insert_form('adnominal', inflected_forms[1]) insert_form('adverbial', inflected_forms[2]) elseif inflection_type == "yo" then table.insert(veri.orta_bilgi, '<abbr title="yodan çekimi (geleneksel)"><sup><small>†</small></sup>yodan</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca yodan " .. cat_suffix) end elseif inflection_type == "kami ni" then table.insert(veri.orta_bilgi, '<abbr title="kami nidan çekimi (geleneksel)"><sup><small>†</small></sup>nidan</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca kami nidan " .. cat_suffix) end elseif inflection_type == "shimo ni" then table.insert(veri.orta_bilgi, '<abbr title="shimo nidan çekimi (geleneksel)"><sup><small>†</small></sup>nidan</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca shimo nidan " .. cat_suffix) end elseif inflection_type == "rahen" then table.insert(veri.orta_bilgi, '<abbr title="r-special çekimi (geleneksel)"><sup><small>†</small></sup>-ri</abbr>') elseif inflection_type == "sahen" then table.insert(veri.orta_bilgi, '<abbr title="s-special çekimi (geleneksel)"><sup><small>†</small></sup>-se</abbr>') elseif inflection_type == "kahen" then table.insert(veri.orta_bilgi, '<abbr title="k-special çekimi (geleneksel)"><sup><small>†</small></sup>-ko</abbr>') elseif inflection_type == "nahen" then table.insert(veri.orta_bilgi, '<abbr title="n-special çekimi (geleneksel)"><sup><small>†</small></sup>-n</abbr>') elseif inflection_type == "nari" or inflection_type == "なり" then table.insert(veri.orta_bilgi, '<abbr title="-nari çekimi (geleneksel)"><sup><small>†</small></sup>-nari</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca なり-nari " .. cat_suffix) end elseif inflection_type == 'tari' or inflection_type == 'たり' then table.insert(veri.orta_bilgi, '<abbr title="-tari çekimi (geleneksel)"><sup><small>†</small></sup>-tari</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca たり-tari " .. cat_suffix) end inflected_forms = replace_suffix('', {'[[たる]]', '[[と]]', '[[として]]'}, '', {' taru', ' to', ' toshite'}) insert_form('adnominal', inflected_forms[1]) insert_form('adverbial', inflected_forms[2], inflected_forms[3]) elseif inflection_type == "ka" or inflection_type == "か" then table.insert(veri.orta_bilgi, '<abbr title="-ka çekimi (yöresel)"><sup><small>†</small></sup>-ka</abbr>') if cat_suffix then table.insert(veri.kategoriler, "Japonca か-ka " .. cat_suffix) end elseif inflection_type == 'irr' then table.insert(veri.orta_bilgi, 'irregular') if cat_suffix then table.insert(veri.kategoriler, "Japonca düzensiz " .. cat_suffix) end end end pos_functions["eylemler"] = function(args, veri) add_transitivity(veri, args["tr"]) add_inflections(veri, args["çekim"], 'eylemler') end pos_functions["son ekler"] = function(args, veri) add_inflections(veri, args["çekim"]) end pos_functions["yardımcı eylemler"] = function(args, veri) table.insert(veri.kategoriler, "Japonca yardımcı eylemler") add_inflections(veri, args["çekim"]) veri.soz_kategorisi = "eylemler" end pos_functions["suru verbs"] = function(args, veri) add_transitivity(veri, args["tr"]) add_inflections(veri, 'suru', 'eylemler') veri.soz_kategorisi = "eylemler" end pos_functions["ön adlar"] = function(args, veri) add_inflections(veri, args["çekim"], 'ön adlar') end pos_functions["belirteçler"] = function(args, veri) add_inflections(veri, args["çekim"], 'belirteçler') end pos_functions["adlar"] = function(args, veri) -- the counter (classifier) parameter, only relevant for nouns local counter = args["sayı"] or "" if counter == "-" then table.insert(veri.cekimler, {etiket = "sayılamayan"}) elseif counter ~= "" then table.insert(veri.cekimler, {etiket = "sayısı", counter}) end end -- The main entry point. -- This is the only function that can be invoked from a template. function export.show(frame) local poscat = frame.args[1] or error("Part of speech has not been specified. Please pass parameter 1 to the module invocation.") local args = require('Modül:parameters').process(frame:getParent().args, { [1] = {list = true}, ['hira'] = {}, ['kata'] = {}, ['rom'] = {}, ['ç'] = {}, ['çekim'] = {}, ['tip'] = {alias_of = 'cekim'}, ['sayı'] = {}, ['kyu'] = {}, ['shin'] = {}, ['hhira'] = {}, ['hkata'] = {}, ['head'] = {}, ['baş'] = {alias_of = 'head'}, ['sort'] = {}, ['sıra'] = {alias_of = 'sort'}, ['sayfaadı'] = {}, }) args['sayfaadı'] = args['sayfaadı'] or mw.title.getCurrentTitle().text local veri = { dil = lang, alf = sc, soz_kategorisi = poscat, kategoriler = {}, alfabecevler = {}, baslar = {}, cekimler = {}, sira_anahtari = nil, --custom info orta_bilgi = {}, korunan_baslar = nil, kana = nil, } local katakana_category = {} -- sort out all the kanas and do the romanization business format_headword(args, veri, args["head"] or args['sayfaadı']) -- add certain "inflections" and categories for adjectives, verbs, or nouns if pos_functions[poscat] then pos_functions[poscat](args, veri) end -- the presence of kyūjitai param indicates that this is shinjitai kanji entry and vice versa if args["kyu"] then if veri.soz_kategorisi == "suru verbs" then table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]", "[[" .. args["kyu"] .. "]][[する]]"}) else table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]", args["kyu"]}) end end if args["shin"] then table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#kyūjitai|kyūjitai]]"}) if veri.soz_kategorisi == "suru verbs" then table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#shinjitai|shinjitai]]", "[[" .. args["shin"] .. "]][[する]]"}) else table.insert(veri.cekimler, {etiket = "[[Ek:Japonca açıklamaları#shinjitai|shinjitai]]", args["shin"]}) end end historical_kana(args, veri, poscat) -- categorize by joyo kanji and number of kanji categorize_by_kanji(veri, args['sayfaadı']) -- categorize by the script of the pagename or specific characters contained in it extra_categorization(veri, args['sayfaadı'], katakana_category) veri.sira_anahtari = args['sort'] or veri.kana and m_ja.jsort(veri.kana) or nil return (veri.kana and '<span id="' .. veri.kana .. '"></span>' or '') .. require('Modül:başlık başı').tam_baslikbasi(veri) :gsub('<span class="gender">.-</span>', '<i>'..table.concat(veri.orta_bilgi, '&nbsp;')..'</i>') .. require("Modül:araçlar").format_categories(katakana_category, lang, veri.sira_anahtari and m_ja.hira_to_kata(veri.sira_anahtari)) end return export 5yry0cl9v8bvqwrrilxlqkmycyfa5k5 Modül:tr-ad 828 441369 5658313 5657989 2026-05-15T17:38:57Z Satirdan kahraman 37401 Osmanlı Türkçesini düzeltmek için 5658313 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi. -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) -- Düzeltme [6] or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) local compBase = isComp and getCompoundBase(lemma) or nil if isComp and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if isComp and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if isComp then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then -- zeval vakitlerim, ayçiçeklerim … stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else -- gözyaşları, ayçiçekleri … local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then -- Özel adlarda iyelik eki, bileşik tabanı soyulmadan doğrudan madde adına gelir. -- Osmanlı Türkçesi + m → Osmanlı Türkçesi'm -- Osmanlı Türkçesi + si → Osmanlı Türkçesi'si -- -- Burada compBase kullanılmaz; yoksa Türkçesi → Türkçes tabanına düşer -- ve kesme işareti sonrası ek bölümü yanlış hesaplanır. if isProper then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) elseif isComp and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Düzeltme [5]: tüm dönüşümler bittikten sonra, yalnızca tekil biçimlerde, -- ve yalnızca lemma'da henüz kesme yoksa eklenir. if isProper and not isPlural and not u.find(lemma, "'") then local suffix_part = u.sub(out, u.len(lemma) + 1) return lemma .. "'" .. suffix_part end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p imedqtfs9nl6izirotjyemzbprawyd5 5658314 5658313 2026-05-15T17:48:24Z Satirdan kahraman 37401 Osmanlı Türkçesini düzeltmek için 5658314 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) -- Düzeltme [6] or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) local useCompoundBase = isComp and not isProper local compBase = useCompoundBase and getCompoundBase(lemma) or nil if isComp and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if isComp and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then -- zeval vakitlerim, ayçiçeklerim … stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else -- gözyaşları, ayçiçekleri … local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then -- Özel adlarda iyelik eki, bileşik tabanı soyulmadan doğrudan madde adına gelir. -- Osmanlı Türkçesi + m → Osmanlı Türkçesi'm -- Osmanlı Türkçesi + si → Osmanlı Türkçesi'si -- -- Burada compBase kullanılmaz; yoksa Türkçesi → Türkçes tabanına düşer -- ve kesme işareti sonrası ek bölümü yanlış hesaplanır. if isProper then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) elseif useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Düzeltme [5]: tüm dönüşümler bittikten sonra, yalnızca tekil biçimlerde, -- ve yalnızca lemma'da henüz kesme yoksa eklenir. if isProper and not isPlural and not u.find(lemma, "'") then local suffix_part = u.sub(out, u.len(lemma) + 1) return lemma .. "'" .. suffix_part end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p 8glmxvma1fp8fi52gurgorqy1aj1u2x 5658318 5658314 2026-05-15T18:02:58Z Satirdan kahraman 37401 Osmanlı Türkçesini düzeltmek için 5658318 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) -- isComp: -- n bağlayıcısı gerekip gerekmediğini söyler. -- -- useCompoundBase: -- gövdenin gerçekten soyulup soyulmayacağını söyler. -- -- Özel adlarda gövde soyulmaz: -- Osmanlı Türkçesi → Osmanlı Türkçes yapılmaz. -- Ama isComp yine true kalır: -- Osmanlı Türkçesi + ni → Osmanlı Türkçesi'ni local useCompoundBase = isComp and not isProper local compBase = useCompoundBase and getCompoundBase(lemma) or nil if useCompoundBase and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if useCompoundBase and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then if useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Düzeltme [5]: tüm dönüşümler bittikten sonra, yalnızca tekil biçimlerde, -- ve yalnızca lemma'da henüz kesme yoksa eklenir. if isProper and not isPlural and not u.find(lemma, "'") then local suffix_part = u.sub(out, u.len(lemma) + 1) return lemma .. "'" .. suffix_part end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p haw6qlpl6rc58yjzv5hkcqlhe0stpwc 5658322 5658318 2026-05-15T18:15:13Z Satirdan kahraman 37401 Osmanlı Türkçesini düzeltmek için 5658322 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) -- isComp: -- n bağlayıcısı gerekip gerekmediğini söyler. -- -- useCompoundBase: -- gövdenin gerçekten soyulup soyulmayacağını söyler. -- -- Özel adlarda gövde soyulmaz: -- Osmanlı Türkçesi → Osmanlı Türkçes yapılmaz. -- Ama isComp yine true kalır: -- Osmanlı Türkçesi + ni → Osmanlı Türkçesi'ni local properCompoundSIForPoss = isProper and isComp and spec.poss and (u.find(n_lemma, "s[ıiuü]$") ~= nil) local useCompoundBase = isComp and (not isProper or properCompoundSIForPoss) local compBase = useCompoundBase and getCompoundBase(lemma) or nil if useCompoundBase and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if useCompoundBase and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then if useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Düzeltme [5]: tüm dönüşümler bittikten sonra, yalnızca tekil biçimlerde, -- ve yalnızca lemma'da henüz kesme yoksa eklenir. if isProper and not isPlural and not u.find(lemma, "'") then local lemma_len = u.len(lemma) if u.sub(out, 1, lemma_len) == lemma then local suffix_part = u.sub(out, lemma_len + 1) if suffix_part ~= "" then return lemma .. "'" .. suffix_part end end end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p 5rhrhifldf0yjrqgcbrn9a6ww9g7xzp 5658324 5658322 2026-05-15T18:26:20Z Satirdan kahraman 37401 5658324 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) -- isComp: -- n bağlayıcısı gerekip gerekmediğini söyler. -- -- useCompoundBase: -- gövdenin gerçekten soyulup soyulmayacağını söyler. -- -- Özel adlarda gövde soyulmaz: -- Osmanlı Türkçesi → Osmanlı Türkçes yapılmaz. -- Ama isComp yine true kalır: -- Osmanlı Türkçesi + ni → Osmanlı Türkçesi'ni local properCompoundSIForPoss = isProper and isComp and spec.poss and (u.find(n_lemma, "s[ıiuü]$") ~= nil) local useCompoundBase = isComp and (not isProper or properCompoundSIForPoss) local compBase = useCompoundBase and getCompoundBase(lemma) or nil if useCompoundBase and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if useCompoundBase and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then if useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Çıktı ── -- Bu modülde özel adlarda da kesme işareti kullanılmaz. return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p l35wybjux9mnmm4ye6gu1gs1nmxm5ss 5658326 5658324 2026-05-15T19:20:35Z Satirdan kahraman 37401 Yıldızoğlu'nu olsun diye 5658326 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı. -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end local function isLanguageCompoundNoApostrophe(lemma) local n = norm(lemma or "") if not u.find(n, " ") then return false end local last = lastWordNorm(lemma) -- Uygur Türkçesi, Osmanlı Türkçesi, Türkiye Türkçesi -- Kırım Tatarcası, Kazak Türkçesi vb. if u.find(last, "[cç][ae]s[ıiuü]$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) -- isComp: -- n bağlayıcısı gerekip gerekmediğini söyler. -- -- useCompoundBase: -- gövdenin gerçekten soyulup soyulmayacağını söyler. -- -- Özel adlarda gövde soyulmaz: -- Osmanlı Türkçesi → Osmanlı Türkçes yapılmaz. -- Ama isComp yine true kalır: -- Osmanlı Türkçesi + ni → Osmanlı Türkçesi'ni local properCompoundSIForPoss = isProper and isComp and spec.poss and (u.find(n_lemma, "s[ıiuü]$") ~= nil) local useCompoundBase = isComp and (not isProper or properCompoundSIForPoss) local compBase = useCompoundBase and getCompoundBase(lemma) or nil if useCompoundBase and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if useCompoundBase and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then if useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Dil adı bileşikleri kesmesiz kalır: -- Uygur Türkçesi → Uygur Türkçesini -- Soyadları ve normal özel adlar kesmeli kalır: -- Yıldızoğlu → Yıldızoğlu'nu if isProper and not isPlural and not u.find(lemma, "'") and not isLanguageCompoundNoApostrophe(lemma) then local lemma_len = u.len(lemma) if u.sub(out, 1, lemma_len) == lemma then local suffix_part = u.sub(out, lemma_len + 1) if suffix_part ~= "" then return lemma .. "'" .. suffix_part end end end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p 35v5v37cpvzf195cutt7tzk5zv3twf6 5658331 5658326 2026-05-15T19:35:51Z Satirdan kahraman 37401 5658331 Scribunto text/plain -- Module:tr-ad -- Baştan yazım: daha modüler, daha az heuristik, daha az çakışma. -- -- Düzeltmeler (v2): -- [1] harmI : force_incelme=true + û köşe durumu → "u" yerine "ü" döndürüyor. -- [2] soften : ikizleşmiş tüm ünsüzler (pp dahil) artık yumuşamıyor. -- [3] soften : -[ünlü]log$ deseniyle daha fazla -log sözcüğü yakalanıyor -- (prolog, epilog, monolog, analog …). -- [4] attach : is_proper bayrağı kaldırıldı; yumuşama tek elden allow_soften. -- [5] p.form : özel adlar için allow_soften = false; kesme işareti son adımda, -- suffix hesaplamasından sonra temiz biçimde ekleniyor. -- [6] IST_BIL : setmetatable kaldırıldı, isAutoCompound() fonksiyonu eklendi.local isComp = -- [7] p.ayarla : kullanılmayan i1-i4 parametreleri kaldırıldı.local FORCE_APOSTROPHE_PROPER = { -- [8] cekim_tr : p.ayarla çağrıları ve cekimler tablosu güncellendi. -- [9] link : mw.title.new pcall ile koruma altına alındı. -- [10] dropLastVowelOnce: ters-çevirme döngüsü yerine doğrudan indis tarama. -- [11] possStem : 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local p = {} local u = mw.ustring local trim = mw.text.trim -- ── İstisna listeleri ───────────────────────────────────────────────────────── local ist = require("Modül:tr-ad/istisnalar") local IST_YUM = ist.istisnaYumusama or {} local IST_INC = ist.istisnaIncelme or {} local IST_DUS = ist.istisnaDusme or {} local IST_BIL = ist.istisnaBilesik or {} local IST_YALIN_SON = ist.istisnaYalinSonlu or {} local IST_IKI = ist.istisnaIkizlesme or {} local IST_KESMESIZ_OZEL = ist.istisnaKesmesizOzelAd or {} -- Kökte gerçekten "s" bulunan sıfır-kök bileşikler (kafes+i → kafesi). local KOK_SON_S_FORMLAR = { ["kafesi"] = true, } -- Bu kökler bileşikte k'ye geri çevrilmez (ağ, bağ …). local KOK_SON_YUMUSAK_G = { ["ağ"] = true, ["bağ"] = true, ["çağ"] = true, ["dağ"] = true, ["yağ"] = true, } -- g → ğ yumuşaması yapılacak yabancı kökenli sözcükler. local G_YUMUSAMA = { ["katalog"] = true, ["diyalog"] = true, } -- ── Temel yardımcılar ───────────────────────────────────────────────────────── local V = { a = true, e = true, ["ı"] = true, i = true, o = true, ["ö"] = true, u = true, ["ü"] = true, ["â"] = true, ["î"] = true, ["û"] = true, } local HARD = { p = true, ["ç"] = true, t = true, k = true, f = true, h = true, s = true, ["ş"] = true, } local function lower(s) return u.lower(s or "") end local function lastChar(s) return u.sub(s, -1) end local function endsWithVowel(s) return V[lower(lastChar(s))] == true end local function lastVowel(s) s = lower(s or "") for i = u.len(s), 1, -1 do local ch = u.sub(s, i, i) if V[ch] then return ch end end return nil end -- Normalizasyon: küçük harf + şapkalı harfleri düzleştir. local function norm(s) s = trim(s or "") s = u.lower(s) s = u.gsub(s, "â", "a") s = u.gsub(s, "î", "i") s = u.gsub(s, "û", "u") s = u.gsub(s, "İ", "i") return s end local UPPER_INITIAL = { ["A"]=true,["B"]=true,["C"]=true,["Ç"]=true,["D"]=true, ["E"]=true,["F"]=true,["G"]=true,["Ğ"]=true,["H"]=true, ["I"]=true,["İ"]=true,["J"]=true,["K"]=true,["L"]=true, ["M"]=true,["N"]=true,["O"]=true,["Ö"]=true,["P"]=true, ["R"]=true,["S"]=true,["Ş"]=true,["T"]=true,["U"]=true, ["Ü"]=true,["V"]=true,["Y"]=true,["Z"]=true, } local function startsWithUpper(lemma) lemma = trim(lemma or "") if lemma == "" then return false end return UPPER_INITIAL[u.sub(lemma, 1, 1)] == true end local function lastWordNorm(s) local n = norm(s or "") return u.match(n, "%S+$") or n end -- ── Özel ad tespiti ─────────────────────────────────────────────────────────── local DERIVED_PROPER_NO_APOSTROPHE = { ["türkçe"]=true, ["ingilizce"]=true, ["almanca"]=true, ["fransızca"]=true, ["arapça"]=true, ["farsça"]=true, ["rusça"]=true, ["italyanca"]=true, ["ispanyolca"]=true, ["yunanca"]=true, ["kürtçe"]=true, ["zazaca"]=true, ["türklük"]=true, ["türkçülük"]=true, ["türkçü"]=true, ["müslümanlık"]=true,["hristiyanlık"]=true, ["konyalı"]=true, ["bursalı"]=true, ["istanbullu"]=true, ["izmirli"]=true, ["avrupalı"]=true, ["asyalı"]=true, ["afrikalı"]=true, ["hollandalı"]=true, ["almanyalı"]=true, ["fransalı"]=true, ["rusyalı"]=true, } -- Büyük harfle başladığı hâlde kesme işareti gerektiren özel sözcükler. local FORCE_APOSTROPHE_PROPER = { ["ali"]=true, ["veli"]=true, ["güler"]=true, ["şişli"]=true, ["foça"]=true, ["buca"]=true, ["ılıca"]=true, } local NATIONALITY_NO_APOSTROPHE = { ["afganistanlı"]=true, ["amerikalı"]=true, ["arnavut"]=true, ["arnavutluklu"]=true, ["avustralyalı"]=true, ["avusturyalı"]=true, ["azerbaycanlı"]=true, ["belçikalı"]=true, ["bosnalı"]=true, ["brezilyalı"]=true, ["bulgar"]=true, ["cezayirli"]=true, ["çinli"]=true, ["danimarkalı"]=true, ["endonezyalı"]=true, ["ermenistanlı"]=true, ["faslı"]=true, ["filipinli"]=true, ["filistinli"]=true, ["finlandiyalı"]=true, ["fransız"]=true, ["gürcistanlı"]=true, ["hırvat"]=true, ["hollandalı"]=true, ["ıraklı"]=true, ["iranlı"]=true, ["irlandalı"]=true, ["ispanyol"]=true, ["israilli"]=true, ["isveçli"]=true, ["isviçreli"]=true, ["italyan"]=true, ["japon"]=true, ["kanadalı"]=true, ["karadağlı"]=true, ["katarlı"]=true, ["kazakistanlı"]=true, ["kenyalı"]=true, ["koreli"]=true, ["kuzey koreli"]=true, ["güney koreli"]=true, ["kübalı"]=true, ["lübnanlı"]=true, ["macar"]=true, ["mısırlı"]=true, ["moğolistanlı"]=true, ["norveçli"]=true, ["pakistanlı"]=true, ["polonyalı"]=true, ["portekizli"]=true, ["rumanyalı"]=true, ["rusyalı"]=true, ["sırbistanlı"]=true, ["slovakyalı"]=true, ["slovenyalı"]=true, ["somalili"]=true, ["sudanlı"]=true, ["suriyeli"]=true, ["suudi arabistanlı"]=true, ["tacikistanlı"]=true, ["taylandlı"]=true, ["tunuslu"]=true, ["türkiyeli"]=true, ["ukraynalı"]=true, ["ürdünlü"]=true, ["vietnamlı"]=true, ["yemenli"]=true, ["yunanistanlı"]=true, } local function isDerivedProperNoApostrophe(lemma) local n = norm(lemma or "") local last = lastWordNorm(lemma) if n == "" then return false end if FORCE_APOSTROPHE_PROPER[n] or FORCE_APOSTROPHE_PROPER[last] then return false end if IST_KESMESIZ_OZEL[n] or IST_KESMESIZ_OZEL[last] then return true end if DERIVED_PROPER_NO_APOSTROPHE[n] or DERIVED_PROPER_NO_APOSTROPHE[last] then return true end -- Türkçe, İngilizce, Hekimoğluca vb. (≥6 harf, -ca/-ce/-ça/-çe) if u.len(last) >= 6 and ( u.find(last, "ca$") or u.find(last, "ce$") or u.find(last, "ça$") or u.find(last, "çe$") ) then return true end -- Türklük, Türkçülük vb. if u.find(last, "lık$") or u.find(last, "lik$") or u.find(last, "luk$") or u.find(last, "lük$") then return true end return false end local function isAutoProperName(lemma) if not startsWithUpper(lemma) then return false end if isDerivedProperNoApostrophe(lemma) then return false end return true end local function isPossessiveSurnameEnding(lemma) local last = lastWordNorm(lemma) if u.find(last, "oğlu$") then return true end if u.find(last, "oğulları$") then return true end return false end local function isLanguageCompoundNoApostrophe(lemma) local n = norm(lemma or "") if not u.find(n, " ") then return false end local last = lastWordNorm(lemma) -- Uygur Türkçesi, Osmanlı Türkçesi, Türkiye Türkçesi -- Kırım Tatarcası, Kazak Türkçesi vb. if u.find(last, "[cç][ae]s[ıiuü]$") then return true end return false end -- ── Bileşik otomatik tespiti ────────────────────────────────────────────────── -- Eski IST_BIL setmetatable() yaklaşımının yerini aldı. -- Çok kelimeli, ı/i/u/ü ile biten ifadeler bileşik kabul edilir; -- -ıcı/-ici/-ucu/-ücü gibi aletlik son eklerini ayırt eder. local function otomatikYalinSonluMu(last_word) last_word = u.lower(last_word or "") return u.find(last_word, "[ıiuü]c[ıiuü]$") ~= nil end local function isAutoCompound(normed) if not u.find(normed, " ") then return false end local last_char = u.sub(normed, -1) if last_char ~= "ı" and last_char ~= "i" and last_char ~= "u" and last_char ~= "ü" then return false end local last_word = u.match(normed, "%s(%S+)$") if last_word then if IST_YALIN_SON[last_word] or otomatikYalinSonluMu(last_word) then return false end end return true end -- ── Ünlü uyumu ──────────────────────────────────────────────────────────────── -- 2'li uyum (A/E) local function harmA(stem, force_incelme) local lv = lastVowel(stem) or "a" if force_incelme then return "e" end if lv == "e" or lv == "i" or lv == "ö" or lv == "ü" or lv == "î" then return "e" end return "a" end -- 4'lü uyum (I) -- Düzeltme [1]: force_incelme=true + û → "ü" (daha önce "u" dönüyordu). local function harmI(stem, force_incelme) local lv = lastVowel(stem) or "ı" if force_incelme then if lv == "a" or lv == "ı" or lv == "â" then return "i" end if lv == "o" or lv == "u" or lv == "û" then return "ü" end -- e, i, î, ö, ü zaten ince → normal akışa devam. end if lv == "a" or lv == "ı" then return "ı" end if lv == "e" or lv == "i" or lv == "î" then return "i" end if lv == "o" or lv == "u" then return "u" end if lv == "â" then return "ı" end if lv == "û" then return "u" end return "ü" end -- t/d seçimi (sert ünsüz sonrası t) local function chooseD(stem) if HARD[lower(lastChar(stem))] then return "t" end return "d" end -- ── Çoğul ───────────────────────────────────────────────────────────────────── local function pluralSuffix(stem, force_incelme) return "l" .. harmA(stem, force_incelme) .. "r" end -- oğul → oğullar (düzensiz çoğul tabanı) local function pluralBase(stem) if u.find(stem, "oğl$") then return u.sub(stem, 1, -4) .. "oğul" end return stem end local function makePluralStem(stem, force_incelme) local pbase = pluralBase(stem) return pbase .. pluralSuffix(pbase, force_incelme) end -- ── Ünsüz dönüşümleri ───────────────────────────────────────────────────────── -- Yumuşama: pçtk → bcdğ, yalnızca ünlüyle başlayan ek gelince. -- Düzeltme [2]: ikizleşmiş tüm ünsüzler (pp/çç/tt/kk) artık yumuşamıyor. -- Düzeltme [3]: -[ünlü]log$ deseni daha geniş -log sözcüklerini yakalar. local function soften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) -- İkizleşmiş ünsüz: hiçbiri yumuşamaz. if c == prev and (c == "p" or c == "ç" or c == "t" or c == "k") then return stem end if c == "p" then return u.sub(stem, 1, -2) .. "b" end if c == "ç" then return u.sub(stem, 1, -2) .. "c" end if c == "t" then return u.sub(stem, 1, -2) .. "d" end if c == "k" then if prev == "n" then return u.sub(stem, 1, -2) .. "g" end return u.sub(stem, 1, -2) .. "ğ" end if c == "g" then local s = u.lower(stem or "") -- katalog, diyalog, prolog, epilog, monolog, analog … if u.find(s, "[aeıioöuü]log$") or G_YUMUSAMA[s] then return u.sub(stem, 1, -2) .. "ğ" end end return stem end -- Yumuşamayı geri al (bileşik tabanı temizlerken kullanılır). local function unsoften(stem) local c = lastChar(stem) local prev = u.sub(stem, -2, -2) if c == "b" then return u.sub(stem, 1, -2) .. "p" end if c == "c" then return u.sub(stem, 1, -2) .. "ç" end if c == "d" then return u.sub(stem, 1, -2) .. "t" end if c == "ğ" then return u.sub(stem, 1, -2) .. "k" end if c == "g" and prev == "n" then return u.sub(stem, 1, -2) .. "k" end return stem end -- Ünlü düşmesi: kökün son ünlüsünü düşürür. -- Düzeltme [10]: ters-çevirme döngüsü kaldırıldı; doğrudan indis taraması. local function dropLastVowelOnce(stem) local chars = {} local len = u.len(stem) for i = 1, len do chars[i] = u.sub(stem, i, i) end for i = len, 1, -1 do if V[lower(chars[i])] then table.remove(chars, i) break end end return table.concat(chars) end -- İkizleşme: son ünsüzü çiftler. local function geminateLastConsonant(stem) return stem .. lastChar(stem) end -- ── İstisna sorgulama yardımcıları ─────────────────────────────────────────── local function isIncelme(lemma, it) if it == "incelme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_INC[n] or IST_INC[last] or false end local function isSu(s) local n = norm(s) return n == "su" or u.find(n, "[ %-\xe2\x80\x91]su$") ~= nil -- U+2011 non-breaking hyphen or n == "akarsu" or n == "özsu" or n == "pissu" end -- Otomatik yumuşama kapatma kuralları local function autoNoSoften(lemma) if u.find(lemma, "ist$") then return true end if u.find(lemma, "iyet$") or u.find(lemma, "iyat$") or u.find(lemma, "iyyet$") then return true end if u.find(lemma, "[aeıioöuü]t$") then return true end return false end -- Yumuşama beyaz listesi: autoNoSoften'ı geçersiz kılar. local SOFTEN_WHITELIST = { ["kanat"]=true, ["kağıt"]=true, ["umut"]=true, ["öğüt"]=true, ["vücut"]=true, ["mabet"]=true, ["but"]=true, ["zebercet"]=true, ["haset"]=true, } local function isNoSoften(lemma, it) if it == "yumuşama" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n if SOFTEN_WHITELIST[n] or SOFTEN_WHITELIST[last] then return false end return IST_YUM[n] or IST_YUM[last] or autoNoSoften(n) or autoNoSoften(last) end local function isDropVowel(lemma, it) if it == "düşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_DUS[n] or IST_DUS[last] or false end local function isGeminate(lemma, it) if it == "ikizleşme" then return true end local n = norm(lemma) local last = u.match(n, "%S+$") or n return IST_IKI[n] or IST_IKI[last] or false end -- ── Ek bağlama ──────────────────────────────────────────────────────────────── -- Düzeltme [4]: is_proper bayrağı kaldırıldı. -- Yumuşama yalnızca allow_soften üzerinden kontrol edilir. local function attach(stem, suffix, opts) opts = opts or {} local base = stem local first = u.sub(suffix, 1, 1) or "" local isVowelInitial = (V[first] == true) if isVowelInitial then if opts.allow_soften then base = soften(base) end if opts.buffer and endsWithVowel(base) then base = base .. opts.buffer end end return base .. suffix end -- ── Hâl ekleri ──────────────────────────────────────────────────────────────── local function caseForms(stem, force_incelme, opts) opts = opts or {} local out = {} local buf_acc_dat = (opts.is_poss3 or opts.is_comp) and "n" or "y" out["yalın"] = stem -- belirtme: -(y/n)I out["belirtme"] = attach(stem, harmI(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- yönelme: -(y/n)A out["yönelme"] = attach(stem, harmA(stem, force_incelme), { buffer = buf_acc_dat, allow_soften = opts.allow_soften }) -- bulunma: -DA / ayrılma: -DAn local base_da = (opts.is_poss3 or opts.is_comp) and (stem .. "n") or stem local d = chooseD(base_da) local da_suf = d .. harmA(base_da, force_incelme) out["bulunma"] = base_da .. da_suf out["ayrılma"] = base_da .. da_suf .. "n" -- tamlayan: -(n)In local genBuf = isSu(stem) and "y" or "n" out["tamlayan"] = attach(stem, harmI(stem, force_incelme) .. "n", { buffer = genBuf, allow_soften = opts.allow_soften }) return out end -- ── İyelik ekleri ───────────────────────────────────────────────────────────── -- Düzeltme [11]: 1ç/2ç dalları okunabilirlik için yeniden düzenlendi. local function possStem(lemma, person, force_incelme, opts) opts = opts or {} local stem = lemma or "" local harmony_stem = opts.harmony_stem or stem local i = harmI(harmony_stem, force_incelme) local endsV = endsWithVowel(stem) -- su istisnası: suyu, suyum … if isSu(lemma) and person ~= "3ç" then stem = stem .. "y" endsV = false end local ao = { allow_soften = opts.allow_soften } if person == "1t" then return attach(stem, endsV and "m" or (i .. "m"), ao) elseif person == "2t" then return attach(stem, endsV and "n" or (i .. "n"), ao) elseif person == "3t" then return attach(stem, i, { buffer = "s", allow_soften = opts.allow_soften }) elseif person == "1ç" then -- ünlü-biten: -mIz | ünsüz-biten: -ImIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "m" or (i .. "m")) .. harmI(mid .. "m", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "2ç" then -- ünlü-biten: -nIz | ünsüz-biten: -InIz local mid = endsV and stem or (stem .. i) local suff = (endsV and "n" or (i .. "n")) .. harmI(mid .. "n", force_incelme) .. "z" return attach(stem, suff, ao) elseif person == "3ç" then -- Kök hâlinde çoğul eki zaten taşıyorsa ek tekrar eklenmez. if u.find(stem or "", "l[ae]r$") then return stem .. harmI(stem, force_incelme) end local ps = makePluralStem(stem, force_incelme) return ps .. harmI(ps, force_incelme) end return stem end -- ── Bileşik taban temizliği ─────────────────────────────────────────────────── -- IST_DUS'tan "düşmüş biçimler → asıl kökler" haritası. -- Modül yüklenirken bir kez hesaplanır. local DROPPED_MAP = {} local DROPPED_KEYS = {} for k in pairs(IST_DUS) do local d = dropLastVowelOnce(k) if d and d ~= k then DROPPED_MAP[d] = k end end for d in pairs(DROPPED_MAP) do DROPPED_KEYS[#DROPPED_KEYS + 1] = d end table.sort(DROPPED_KEYS, function(a, b) return u.len(a) > u.len(b) end) local function restoreDroppedCompoundBase(base) local nbase = norm(base) for _, d in ipairs(DROPPED_KEYS) do local dlen = u.len(d) if u.sub(nbase, -dlen) == d then local prefix = u.sub(base, 1, u.len(base) - dlen) return prefix .. DROPPED_MAP[d], true end end return base, false end local function getCompoundBase(lemma) local base = lemma or "" local nlemma = norm(base) local last_word = u.match(nlemma, "%S+$") or nlemma if KOK_SON_S_FORMLAR[last_word] then if u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end elseif u.find(base, "s[ıiuü]$") then base = u.sub(base, 1, -3) elseif u.find(base, "[ıiuü]$") then base = u.sub(base, 1, -2) end local last_base = u.match(norm(base), "%S+$") or norm(base) if not KOK_SON_YUMUSAK_G[last_base] then base = unsoften(base) end -- su istisnası: çamaşır suyu → çamaşır su if u.sub(base, -1) == "y" and isSu(u.sub(base, 1, -2)) then base = u.sub(base, 1, -2) end return base end -- ── Ana çekim motoru ────────────────────────────────────────────────────────── function p.form(lemma, spec) spec = spec or {} lemma = trim(lemma or "") if lemma == "" then return "" end local it = spec.it local k = spec.k local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end -- Düzeltme [5]: isProper bayrağı; kesme işareti ve yumuşama buradan yönetilir. local isProper = (k == "1") local force_incelme = isIncelme(lemma, it) local n_lemma = norm(lemma) local isComp = (it == "bileşik") or IST_BIL[n_lemma] or isAutoCompound(n_lemma) or isPossessiveSurnameEnding(lemma) or (u.find(n_lemma, "başı$") ~= nil) -- isComp: -- n bağlayıcısı gerekip gerekmediğini söyler. -- -- useCompoundBase: -- gövdenin gerçekten soyulup soyulmayacağını söyler. -- -- Özel adlarda gövde soyulmaz: -- Osmanlı Türkçesi → Osmanlı Türkçes yapılmaz. -- Ama isComp yine true kalır: -- Osmanlı Türkçesi + ni → Osmanlı Türkçesi'ni local properCompoundSIForPoss = isProper and isComp and spec.poss and (u.find(n_lemma, "s[ıiuü]$") ~= nil) local useCompoundBase = isComp and (not isProper or properCompoundSIForPoss) local compBase = useCompoundBase and getCompoundBase(lemma) or nil if useCompoundBase and not compBase then compBase = lemma end local compOriginBase, _compHadDrop = compBase, false if useCompoundBase and compBase then compOriginBase, _compHadDrop = restoreDroppedCompoundBase(compBase) end -- allow_soften: özel adlarda daima false (kesme işareti ile birlikte yumuşama olmaz). -- Bileşiklerde yumuşama kararı asıl köke (compOriginBase) göre verilir. local soften_base = compOriginBase or compBase or lemma local allow_soften if isProper then allow_soften = false else allow_soften = not isNoSoften(soften_base, it) end local do_drop = isDropVowel(lemma, it) local do_gem = isGeminate(lemma, it) local stem_only = lemma local isPlural = (spec.number == "pl") local isCompoundPluralPoss = false -- ── 1) Çoğul ── if isPlural then if useCompoundBase then local pluralBaseForComp = compOriginBase or compBase if spec.poss and spec.poss ~= "3ç" then stem_only = makePluralStem(pluralBaseForComp, force_incelme) isCompoundPluralPoss = true else local ps = makePluralStem(pluralBaseForComp, force_incelme) stem_only = ps .. harmI(ps, force_incelme) end else stem_only = stem_only .. pluralSuffix(stem_only, force_incelme) end else -- ── 2) Ünlü düşmesi / ikizleşme (yalnızca tekil, ünlü-başlı ek varsa) ── if not isComp then local isFirstSuffixVowel = false if spec.poss then isFirstSuffixVowel = not endsWithVowel(stem_only) if spec.poss == "3t" or spec.poss == "3ç" then isFirstSuffixVowel = true end elseif spec.case == "belirtme" or spec.case == "yönelme" or spec.case == "tamlayan" then isFirstSuffixVowel = true end if isFirstSuffixVowel then if do_drop then stem_only = dropLastVowelOnce(stem_only) end if do_gem then stem_only = geminateLastConsonant(stem_only) end end end end -- -- ── 3) İyelik ── if spec.poss then if useCompoundBase and not isCompoundPluralPoss then stem_only = possStem(compBase, spec.poss, force_incelme, { allow_soften = allow_soften, harmony_stem = compOriginBase or compBase, }) elseif isCompoundPluralPoss then stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = false, }) else stem_only = possStem(stem_only, spec.poss, force_incelme, { allow_soften = allow_soften, }) end end -- ── 4) Hâl ── local is_poss3 = (spec.poss == "3t" or spec.poss == "3ç") local needs_n = is_poss3 or (isComp and (not spec.poss or isPlural) and not isCompoundPluralPoss) local cases = caseForms(stem_only, force_incelme, { allow_soften = allow_soften, is_poss3 = needs_n, is_comp = needs_n, }) local out = cases[spec.case or "yalın"] or stem_only -- ── 5) Özel adlarda kesme işareti ── -- Dil adı bileşikleri kesmesiz kalır: -- Uygur Türkçesi → Uygur Türkçesini -- Soyadları ve normal özel adlar kesmeli kalır: -- Yıldızoğlu → Yıldızoğlu'nu if isProper and not isPlural and not u.find(lemma, "'") and not isLanguageCompoundNoApostrophe(lemma) then local lemma_len = u.len(lemma) if u.sub(out, 1, lemma_len) == lemma then local suffix_part = u.sub(out, lemma_len + 1) if suffix_part ~= "" then return lemma .. "'" .. suffix_part end end end return out end -- ── Wiki tablosu üretimi ────────────────────────────────────────────────────── function p.adTablo(frame) local args = frame.args local hasAny = false for _ in pairs(args) do hasAny = true; break end if not hasAny then local parent = frame:getParent() args = (parent and parent.args) or {} end local lemma = trim(args[1] or args["ad"] or mw.title.getCurrentTitle().text or "") local it = args["istisna"] local k = args["k"] or args["a"] local derivedNoApostrophe = startsWithUpper(lemma) and isDerivedProperNoApostrophe(lemma) if derivedNoApostrophe then k = nil elseif (k == nil or k == "") and isAutoProperName(lemma) then k = "1" end local isProper = (k == "1") local useProperTable = isProper or derivedNoApostrophe local casesOrder = { "yalın", "belirtme", "yönelme", "bulunma", "ayrılma", "tamlayan" } local function form(spec) spec = spec or {} spec.it = it spec.k = k return p.form(lemma, spec) end -- Düzeltme [9]: mw.title.new hata fırlatabilir; pcall ile koruma. local linkCache = {} local function link(s) s = trim(tostring(s or "")) if s == "" then return s end local exists = linkCache[s] if exists == nil then local ok, title = pcall(mw.title.new, s, 0) exists = ok and title and title.exists or false linkCache[s] = exists end if exists then return "[[" .. s .. "]]" end return "[[" .. s .. "|<span style=\"color:#202122;\">" .. mw.text.nowiki(s) .. "</span>]]" end local CASE_LABELS = { ["yalın"] = "[[yalın hâl|yalın]]", ["belirtme"] = "[[belirtme hâli|belirtme]]", ["yönelme"] = "[[yönelme hâli|yönelme]]", ["bulunma"] = "[[bulunma hâli|bulunma]]", ["ayrılma"] = "[[ayrılma hâli|ayrılma]]", ["tamlayan"] = "[[tamlayan hâli|tamlayan]]", } local function caseLabel(k2) return CASE_LABELS[k2] or k2 end -- ── Görünüm stilleri ── local cardStyle = 'class="mw-collapsible" style="max-width:48em; width:100%;' .. ' margin:.45em 0; border:1px solid #c8ccd1; border-radius:.35em;' .. ' overflow:hidden; background:#fff;"' local titleStyle = 'class="mw-collapsible-toggle" style="float:none; display:block;' .. ' padding:.38em .6em; background:#f6f8fa; border-bottom:1px solid #d8dee4;' .. ' font-weight:700; text-align:center; font-size:102%;' .. ' cursor:pointer; user-select:none;"' local contentStyle = 'class="mw-collapsible-content" style="overflow-x:auto;"' local tableStyle = 'style="width:100%; min-width:30em; margin:0;' .. ' border-collapse:collapse; background:#fff; text-align:center; font-size:95%;"' local headCellStyle = 'style="padding:.32em .5em; background:#f6f8fa;' .. ' border-bottom:1px solid #d8dee4; font-weight:700; white-space:nowrap;"' local rowHeadStyle = 'style="width:28%; padding:.32em .5em; background:#fbfbfc;' .. ' border-top:1px solid #edf0f2; text-align:left; white-space:nowrap; font-weight:600;"' local dataCellStyle = 'style="padding:.32em .5em; border-top:1px solid #edf0f2;' .. ' border-left:1px solid #edf0f2; text-align:center;"' local personHeadStyle = 'style="padding:.34em .5em; background:#f6f8fa;' .. ' border-top:1px solid #d8dee4; border-bottom:1px solid #edf0f2;' .. ' text-align:left; font-weight:700;"' -- ── Satır oluşturucular ── local function headerRow(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" .. "\n! " .. headCellStyle .. " | [[çoğul]]" end local function headerRowSingle(leftText) return "\n|-" .. "\n! " .. headCellStyle .. " | " .. (leftText or "") .. "\n! " .. headCellStyle .. " | [[tekil]]" end local function row(caseKey, sgText, plText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell .. "\n| " .. dataCellStyle .. " | " .. plText end local function rowSingle(caseKey, sgText, boldSg) local sgCell = boldSg and ("'''" .. sgText .. "'''") or sgText return "\n|-" .. "\n! " .. rowHeadStyle .. " | " .. caseLabel(caseKey) .. "\n| " .. dataCellStyle .. " | " .. sgCell end local function personHeader(label) return "\n|-" .. "\n! colspan=\"3\" " .. personHeadStyle .. " | " .. label end local function personHeaderSingle(label) return "\n|-" .. "\n! colspan=\"2\" " .. personHeadStyle .. " | " .. label end local persons = { { key = "1t", left = "1. tekil ([[benim]])" }, { key = "2t", left = "2. tekil ([[senin]])" }, { key = "3t", left = "3. tekil ([[onun]])" }, { key = "1ç", left = "1. çoğul ([[bizim]])" }, { key = "2ç", left = "2. çoğul ([[sizin]])" }, { key = "3ç", left = "3. çoğul ([[onların]])" }, } local out = {} -- ── Özel ad / özel addan türemiş çekim tablosu (yalnızca tekil) ── if useProperTable then out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then out[#out+1] = rowSingle("yalın", lemma, true) else out[#out+1] = rowSingle(c, link(form({ number = "sg", case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- İyelik tablosu (yalnızca tekil sütun) out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRowSingle("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeaderSingle(person.left) -- 3ç satırında tekil iyelik formu 3t ile aynıdır. local possKey = (person.key == "3ç") and "3t" or person.key for _, c in ipairs(casesOrder) do out[#out+1] = rowSingle(c, link(form({ number = "sg", poss = possKey, case = c })), false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- ── Ana çekim tablosu (özel olmayan adlar) ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">" .. lemma .. " adının çekimi</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[hâl]]") for _, c in ipairs(casesOrder) do if c == "yalın" then local pl = link(form({ number = "pl", case = "yalın" })) out[#out+1] = row("yalın", lemma, pl, true) else local sg = link(form({ number = "sg", case = c })) local pl = link(form({ number = "pl", case = c })) out[#out+1] = row(c, sg, pl, false) end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" -- ── İyelik tablosu ── out[#out+1] = "<div " .. cardStyle .. ">" out[#out+1] = "<div " .. titleStyle .. ">[[iyelik eki|iyelik ekleriyle]]</div>" out[#out+1] = "<div " .. contentStyle .. ">" out[#out+1] = "\n{| " .. tableStyle out[#out+1] = headerRow("[[kişi]]") for _, person in ipairs(persons) do out[#out+1] = personHeader(person.left) for _, c in ipairs(casesOrder) do if person.key == "3ç" then -- Tekil sütun: "onun evi" = 3t+sg / Çoğul sütun: "onların evi" = 3ç+pl local sg = link(form({ number = "sg", poss = "3t", case = c })) local pl = link(form({ number = "pl", poss = "3ç", case = c })) out[#out+1] = row(c, sg, pl, false) else local sg = link(form({ number = "sg", poss = person.key, case = c })) local pl = link(form({ number = "pl", poss = person.key, case = c })) out[#out+1] = row(c, sg, pl, false) end end end out[#out+1] = "\n|}" out[#out+1] = "</div></div>" return table.concat(out) end -- invoke giriş noktası function p.ad(frame) return p.adTablo(frame) end -- Düzeltme [7]: kullanılmayan i1-i4 parametreleri kaldırıldı. -- İmza: p.ayarla(bas, istisna, sayi, hal, ak) function p.ayarla(bas, istisna, sayi, hal, ak) return p.form(bas, { it = istisna, k = ak, number = (sayi == "çoğul" and "pl" or "sg"), case = hal or "yalın", }) end -- [[Modül:çekim/şablonlar]] tarafından kullanılan ters-arama motoru. function p.cekim_tr(args) local ad = args[1] local cekim = mw.title.getCurrentTitle()["text"] local it = args["istisna"] local k = args["k"] or args["a"] if u.find(cekim, "'") then k = "1" end local function virgul(tablo) if tablo[1] then table.insert(tablo, ";") end end -- Düzeltme [8]: cekimler tablosu sadeleştirildi; p.ayarla'nın yeni imzasına uygun. local cekimler = { { "yalın" }, { "belirtme" }, { "yönelme" }, { "bulunma" }, { "ayrılma" }, { "tamlayan" }, } -- Düzeltme [8]: iyelik tablosu sadeleştirildi. local iyelik = { { "1t" }, { "2t" }, { "3t" }, { "1ç" }, { "2ç" }, { "3ç" }, } local function tumDurumlar(say, kisi, ozel) say = tostring(say or "") if say == "" then return end for _, c in ipairs(cekimler) do local hal = c[1] if cekim == p.ayarla(say, it, "tekil", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end -- "evleri" gibi kökünde -ler/-lar taşıyan iyelik biçimleri çoğul sayılır. if ozel and u.find(say, "l[ea]r") then table.insert(args[3], "ç") else table.insert(args[3], "t") end end if cekim == p.ayarla(say, it, "çoğul", hal, k) then virgul(args[3]) if ozel then table.insert(args[3], kisi) if hal == "yalın" then table.insert(args[3], "iyelik") end end if hal ~= "yalın" then table.insert(args[3], hal) end table.insert(args[3], "ç") end end end tumDurumlar(ad) -- Not: Türkçe'de 3t+çoğul ve 3ç+tekil aynı formu üretir ("evleri" gibi). -- Bu yapısal belirsizlik beklenen davranıştır; her iki etiket de kayıt altına alınır. for _, s in ipairs(iyelik) do local poss_code = s[1] local tekil = p.form(ad, { it = it, k = k, number = "sg", poss = poss_code, case = "yalın" }) local cogul = p.form(ad, { it = it, k = k, number = "pl", poss = poss_code, case = "yalın" }) tumDurumlar(tekil, poss_code, true) tumDurumlar(cogul, poss_code, true) end if not args[3][1] then table.insert(args[3], "belirtilmemiş") end end return p bvve744un9bi4bmlimsmd85fh9elp08 Modül:tr-ad/istisnalar 828 441373 5658317 5657458 2026-05-15T17:54:06Z Satirdan kahraman 37401 5658317 Scribunto text/plain local p = {} local function Set(list) local set = {} for _, l in ipairs(list) do -- normalize: küçük harf + â/î/û düzleştirme l = mw.text.trim(l or "") l = mw.ustring.lower(l) l = mw.ustring.gsub(l, "â", "a") l = mw.ustring.gsub(l, "î", "i") l = mw.ustring.gsub(l, "û", "u") set[l] = true end return set end -- ✅ ARTIK DEV LİSTE YOK: -- -iyet / -iyat / -iyyet ve -et/-at/-ut/-üt grupları modülde kural ile kapsanıyor. p.istisnaYumusama = Set { -- kısa / yabancı / sert sonlu olup yumuşamaması gerekenler (çekirdek) "bank", "bark", "çap", "yarıçap", "kart", "kamp", "kist", "link", "lunapark", "market", "internet", "post it", "eskort", "grosmarket", "gelgit", "boykot", "suikast", -- çok kısa / tek heceli örnekler (ihtiyaca göre azalt/çoğalt) "at", "alt", "et", "it", "ip", "ok", "çek", "çöp", "bok", "koç", "piç", "aşk", "hukuk", "ahlak", "millet", "devlet", "sanat", "hayat", "evlat", "merak", "evrak", "ittifak", "iktisat", "bulut", "anıt", "kanıt", "ölçüt", "taşıt", "yanıt", "anket", "paket", "sepet", "bisiklet", "sert", "tıp", "sik", "çük", -- p ile bitenler "sap", "top", "küp", "hap", "tüp", "kulp", "sarp", "tip", "jip", "şap", -- ç ile bitenler "saç", "suç", "maç", "üç", "iç", "göç", "haç", "kıç", -- k ile bitenler "ek", "kök", "yük", "kürk", "çark", "park", "tank", "blok", "stok", "mülk", "halk", "şevk", "sevk", "meşk", "köşk", "mercanköşk", "ak", "ilk", "tek", "tok", "sirk", "disk", "fark", "iştiyak", "mask", -- t ile bitenler "ot", "süt", "bit", "çit", "küt", "zıt", "lort", "mart", "şart", "sırt", "sert", "büst", "dost", "post", "tost", "test", "üst", "ast", "salt", "kült", "semt", "kent", "mont", "taht", "baht", "abdest", "vücut", "şehit", "senet", "taahhüt", "hasat", "icat", "ahit", "iktisat", "mesnet", "kart", "rant", "mabet", "payitaht", "tişört", "best", "but", "jant", "doçent", "nühüft" } p.istisnaIncelme = Set { "aciz", "acz", "ahit", "akit", "alkol", "astral", "biantal", "dakika", "darp", "eflak", "emlak", "fevk", "global", "gol", "had", "hakikat", "hal", "hâl", "harf", "hayal", "hayâl", "helak", "ideal", "idrak", "imsak", "istiklal", "istiklâl", "istimlak", "iştirak", "kabul", "kalp", "katil", "kavim", "kemal", "kemâl", "kontrol", "koramiral", "liyakat", "lokal", "makbul", "merkat", "meşgul", "metal", "moral", "nakit", "nihal", "normal", "oval", "peştamal", "portal", "refik", "rikkat", "rol", "saat", "sadakat", "santral", "seyahat", "serhat", "sıhhat", "sol", "sukutuhayal", "mahal", "şefkat", "talakat", "talâkat", "terminal", "usul", "vakit", "vüsat", "yalın hâl", "kıtal", "kabil", "kabir", "bahis", } p.istisnaDusme = Set { "aciz", "ağız", "ahit", "akit", "akıl", "alın", "asıl", "bahtiyar", "batın", "beyin", "boyun", "burun", "cehil", "cisim", "dahil", "devir", "emir", "fetih", "fikir", "geniz", "göğüs", "gönül", "hasım", "hapis", "hüküm", "ilim", "isim", "karın", "kasıt", "kavim", "kayıt", "kayıp", "keyif", "küfür", "metin", "meyil", "mühür", "nakit", "nakış", "nehir", "nezir", "nesil", "nutuk", "oğul", "omuz", "resim", "rızık", "sabır", "satıh", "seyir", "sihir", "şehir", "şekil", "şükür", "temsilî resim", "ufuk", "uzuv", "vakit", "vasıf", "vezin", "zehir", "zihin", "zikir", "zulüm", "kabir", "bahis", "kesir", } p.istisnaBilesik = Set { "akşamsefası", "aslanağzı", "aslansütü", "atasözü", "ayçiçeği", "başsağlığı", "başörtüsü","başucu", "burası", "buzdolabı", "camevi", "cumartesi", "denizaslanı", "denizgülü", "denizşakayığı", "dereotu", "dilberdudağı", "elebaşı", "fildişi", "gecesefası", "gelinkuşağı", "gökkuşağı", "gözbebeği", "gözyaşı", "havaalanı", "havalimanı", "halkevi", "hanımeli", "içgüveysi", "işgücü", "kafatası", "kızevi", "kitabevi", "kuşburnu", "köşebaşı", "oymakbaşı", "peygamberdevesi", "semizotu", "sepettopu", "sınır boyu", "soyağacı", "susamuru", "tavukgötü", "yavruağzı", "randevuevi", "cezaevi", "kadınbudu", "kazayağı", "zeytinyağı" } p.istisnaIkizlesme = Set { "af", "behat", "emrihak", "fek", "had", "hak", "hal", "hat", "haz", "his", "hüsnühat", "met", "rab", "ret", "sır", "şek", "şer", "şet", "tıp", "zam", "zan", "mahal", } p.istisnaYalinSonlu = Set { -- Sonu ı, i, u, ü ile bittiği halde yalın (kök) durumunda olan ve -- sıfat/isim tamlamalarında ikinci kelime olduğunda "bileşik" yapmayan kelimeler "acı", "açı", "akü", "anadolu", "anı", "arı", "atkı", "ayı", "ayakkabı", "bacı", "batı", "bayi", "bekçi", "bilgi", "bitki", "boru", "büyü", "cadı", "cami", "çalı", "çatı", "çeki", "çeri", "çıktı", "çini", "çivi", "çizgi", "dahi", "dayı", "deli", "deri", "dizi", "doğu", "doku", "dolu", "dudu", "duygu", "dürtü", "ebedi", "edebi", "efendi", "eksi", "elti", "eski", "evli", "fani", "fıçı", "fırıncı", "fobi", "gazi", "gemi", "gezi", "girdi", "giysi", "görgü", "güdü", "hacı", "halı", "hami", "hani", "huni", "huri", "içeri", "ileri", "inci", "iyi", "kadı", "kapı", "karşı", "kedi", "kişi", "kivi", "koku", "komşu", "konu", "korku", "koru", "köprü", "kötü", "kutu", "kuyu", "kuzu", "kürsü", "kesir", "mavi", "mazi", "mermi", "milli", "müftü", "ordu", "öcü", "ölü", "ölçü", "öncü", "örtü", "övgü", "öykü", "pazu", "peri", "pisi", "sarı", "sayı", "seri", "sergi", "sevgi", "sezi", "sıhhi", "sıvı", "silgi", "soru", "su", "sürü", "şarkı", "söndürücü", "taksi", "tanı", "tartı", "tatlı", "tepki", "terzi", "testi", "tortu", "tutku", "türkü", "Türkçe", "uğultu", "ulu", "utku", "uyku", "üzüntü", "ütü", "vadi", "vali", "vasi", "veli", "veri", "yemişçi", "sporcu", "yalı", "yatılı", "yangın söndürücü", "yapı", "yarı", "yavru", "yazı", "yeni", "yetki", "yolcu", "yemiş", "şeftali", "zeki", } return p 8psreo08d3yl2dxuc7w33q1rcsyh67r 5658332 5658317 2026-05-15T19:42:07Z Satirdan kahraman 37401 5658332 Scribunto text/plain local p = {} local function Set(list) local set = {} for _, l in ipairs(list) do -- normalize: küçük harf + â/î/û düzleştirme l = mw.text.trim(l or "") l = mw.ustring.lower(l) l = mw.ustring.gsub(l, "â", "a") l = mw.ustring.gsub(l, "î", "i") l = mw.ustring.gsub(l, "û", "u") set[l] = true end return set end -- ✅ ARTIK DEV LİSTE YOK: -- -iyet / -iyat / -iyyet ve -et/-at/-ut/-üt grupları modülde kural ile kapsanıyor. p.istisnaYumusama = Set { -- kısa / yabancı / sert sonlu olup yumuşamaması gerekenler (çekirdek) "bank", "bark", "çap", "yarıçap", "kart", "kamp", "kist", "link", "lunapark", "market", "internet", "post it", "eskort", "grosmarket", "gelgit", "boykot", "suikast", -- çok kısa / tek heceli örnekler (ihtiyaca göre azalt/çoğalt) "at", "alt", "et", "it", "ip", "ok", "çek", "çöp", "bok", "koç", "piç", "aşk", "hukuk", "ahlak", "millet", "devlet", "sanat", "hayat", "evlat", "merak", "evrak", "ittifak", "iktisat", "bulut", "anıt", "kanıt", "ölçüt", "taşıt", "yanıt", "anket", "paket", "sepet", "bisiklet", "sert", "tıp", "sik", "çük", -- p ile bitenler "sap", "top", "küp", "hap", "tüp", "kulp", "sarp", "tip", "jip", "şap", -- ç ile bitenler "saç", "suç", "maç", "üç", "iç", "göç", "haç", "kıç", -- k ile bitenler "ek", "kök", "yük", "kürk", "çark", "park", "tank", "blok", "stok", "mülk", "halk", "şevk", "sevk", "meşk", "köşk", "mercanköşk", "ak", "ilk", "tek", "tok", "sirk", "disk", "fark", "iştiyak", "mask", -- t ile bitenler "ot", "süt", "bit", "çit", "küt", "zıt", "lort", "mart", "şart", "sırt", "sert", "büst", "dost", "post", "tost", "test", "üst", "ast", "salt", "kült", "semt", "kent", "mont", "taht", "baht", "abdest", "vücut", "şehit", "senet", "taahhüt", "hasat", "icat", "ahit", "iktisat", "mesnet", "kart", "rant", "mabet", "payitaht", "tişört", "best", "but", "jant", "doçent", "nühüft" } p.istisnaIncelme = Set { "aciz", "acz", "ahit", "akit", "alkol", "astral", "biantal", "dakika", "darp", "eflak", "emlak", "fevk", "global", "gol", "had", "hakikat", "hal", "hâl", "harf", "hayal", "hayâl", "helak", "ideal", "idrak", "imsak", "istiklal", "istiklâl", "istimlak", "iştirak", "kabul", "kalp", "katil", "kavim", "kemal", "kemâl", "kontrol", "koramiral", "liyakat", "lokal", "makbul", "merkat", "meşgul", "metal", "moral", "nakit", "nihal", "normal", "oval", "peştamal", "portal", "refik", "rikkat", "rol", "saat", "sadakat", "santral", "seyahat", "serhat", "sıhhat", "sol", "sukutuhayal", "mahal", "şefkat", "talakat", "talâkat", "terminal", "usul", "vakit", "vüsat", "yalın hâl", "kıtal", "kabil", "kabir", "bahis", } p.istisnaDusme = Set { "aciz", "ağız", "ahit", "akit", "akıl", "alın", "asıl", "bahtiyar", "batın", "beyin", "boyun", "burun", "cehil", "cisim", "dahil", "devir", "emir", "fetih", "fikir", "geniz", "göğüs", "gönül", "hasım", "hapis", "hüküm", "ilim", "isim", "karın", "kasıt", "kavim", "kayıt", "kayıp", "keyif", "küfür", "metin", "meyil", "mühür", "nakit", "nakış", "nehir", "nezir", "nesil", "nutuk", "oğul", "omuz", "resim", "rızık", "sabır", "satıh", "seyir", "sihir", "şehir", "şekil", "şükür", "temsilî resim", "ufuk", "uzuv", "vakit", "vasıf", "vezin", "zehir", "zihin", "zikir", "zulüm", "kabir", "bahis", "kesir", } p.istisnaBilesik = Set { "akşamsefası", "aslanağzı", "aslansütü", "atasözü", "ayçiçeği", "başsağlığı", "başörtüsü","başucu", "burası", "buzdolabı", "camevi", "cumartesi", "denizaslanı", "denizgülü", "denizşakayığı", "dereotu", "dilberdudağı", "elebaşı", "fildişi", "gecesefası", "gelinkuşağı", "gökkuşağı", "gözbebeği", "gözyaşı", "havaalanı", "havalimanı", "halkevi", "hanımeli", "içgüveysi", "işgücü", "kafatası", "kızevi", "kitabevi", "kuşburnu", "köşebaşı", "oymakbaşı", "peygamberdevesi", "semizotu", "sepettopu", "sınır boyu", "soyağacı", "susamuru", "tavukgötü", "yavruağzı", "randevuevi", "cezaevi", "kadınbudu", "kazayağı", "zeytinyağı" } p.istisnaIkizlesme = Set { "af", "behat", "emrihak", "fek", "had", "hak", "hal", "hat", "haz", "his", "hüsnühat", "met", "rab", "ret", "sır", "şek", "şer", "şet", "tıp", "zam", "zan", "mahal", } p.istisnaYalinSonlu = Set { -- Sonu ı, i, u, ü ile bittiği halde yalın (kök) durumunda olan ve -- sıfat/isim tamlamalarında ikinci kelime olduğunda "bileşik" yapmayan kelimeler "acı", "açı", "akü", "anadolu", "anı", "arı", "atkı", "ayı", "ayakkabı", "bacı", "batı", "bayi", "bekçi", "bilgi", "bitki", "boru", "büyü", "cadı", "cami", "çalı", "çatı", "çeki", "çeri", "çıktı", "çini", "çivi", "çizgi", "dahi", "dayı", "deli", "deri", "dizi", "doğu", "doku", "dolu", "dudu", "duygu", "dürtü", "ebedi", "edebi", "efendi", "eksi", "elti", "eski", "evli", "fani", "fıçı", "fırıncı", "fobi", "gazi", "gemi", "gezi", "girdi", "giysi", "görgü", "güdü", "hacı", "halı", "hami", "hani", "huni", "huri", "içeri", "ileri", "inci", "iyi", "kadı", "kapı", "karşı", "kedi", "kişi", "kivi", "koku", "komşu", "konu", "korku", "koru", "köprü", "kötü", "kutu", "kuyu", "kuzu", "kürsü", "kesir", "mavi", "mazi", "mermi", "milli", "müftü", "ordu", "öcü", "ölü", "ölçü", "öncü", "örtü", "övgü", "öykü", "pazu", "peri", "pisi", "sarı", "sayı", "seri", "sergi", "sevgi", "sezi", "sıhhi", "sıvı", "silgi", "soru", "su", "sürü", "şarkı", "söndürücü", "taksi", "tanı", "tartı", "tatlı", "tepki", "terzi", "testi", "tortu", "tutku", "türkü", "Türkçe", "uğultu", "ulu", "utku", "uyku", "üzüntü", "ütü", "vadi", "vali", "vasi", "veli", "veri", "yemişçi", "sporcu", "yalı", "yatılı", "yangın söndürücü", "yapı", "yarı", "yavru", "yazı", "yeni", "yetki", "yolcu", "yemiş", "şeftali", "zeki", } p.istisnaKesmesizOzelAd = Set { -- ── Genel bölge / kıta adları ───────────────────────────────────────────── "avrupalı", "asyalı", "afrikalı", "amerikalı", "kuzey amerikalı", "güney amerikalı", "latin amerikalı", "ortadoğulu", "balkanlı", "iskandinavyalı", "akdenizli", "karadenizli", "kafkasyalı", "orta asyalı", -- ── Türk / Türkî / yakın halk adları ───────────────────────────────────── "türk", "türkiyeli", "osmanlı", "anadolulu", "rumelili", "azerbaycanlı", "azeri", "kazak", "kazakistanlı", "kırgız", "kırgızistanlı", "özbek", "özbekistanlı", "türkmen", "türkmenistanlı", "tacik", "tacikistanlı", "uygur", "tatar", "kırım tatarı", "başkurt", "çuvaş", "yakut", "saha", "altaylı", "kıbrıslı", "kıbrıs türkü", "kıbrıs rumu", -- ── Türkiye’deki yaygın halk / etnik adları ────────────────────────────── "kürt", "zaza", "laz", "çerkes", "abhaz", "gürcü", "arap", "rum", "ermeni", "süryani", "pomak", "boşnak", "arnavut", "yörük", "roman", "muhacir", -- ── Avrupa milliyetleri / ülke-yurttaşlık adları ───────────────────────── "alman", "almanyalı", "avusturyalı", "belçikalı", "hollandalı", "fransız", "fransalı", "ingiliz", "britanyalı", "birleşik krallıklı", "iskoç", "galli", "irlandalı", "kuzey irlandalı", "ispanyol", "ispanyalı", "portekizli", "italyan", "italyalı", "isviçreli", "lihtenştaynlı", "lüksemburglu", "monakolu", "andorralı", "san marinolu", "vatikanlı", "maltalı", "izlandalı", "norveçli", "isveçli", "fin", "finlandiyalı", "danimarkalı", "estonyalı", "letonyalı", "litvanyalı", "polonyalı", "çek", "çekyalı", "slovak", "slovakyalı", "macar", "macaristanlı", "sloven", "slovenyalı", "hırvat", "hırvatistanlı", "bosnalı", "bosna hersekli", "bosna-hersekli", "sırp", "sırbistanlı", "karadağlı", "kosovalı", "arnavutluklu", "makedon", "kuzey makedonyalı", "yunan", "yunanistanlı", "bulgar", "bulgaristanlı", "rumen", "rumanyalı", "moldovalı", "moldovyalı", "ukraynalı", "rus", "rusyalı", "belaruslu", "belarusyalı", "beyaz rus", -- ── Kafkasya / Orta Doğu ───────────────────────────────────────────────── "gürcistanlı", "ermenistanlı", "iranlı", "fars", "ıraklı", "suriyeli", "lübnanlı", "ürdünlü", "filistinli", "israilli", "yahudi", "suudi", "suudi arabistanlı", "yemenli", "ummanlı", "birleşik arap emirlikli", "emirlikli", "katarlı", "bahreynli", "kuveytli", -- ── Güney / Orta / Doğu Asya ───────────────────────────────────────────── "afgan", "afganistanlı", "pakistanlı", "hint", "hindistanlı", "bangladeşli", "nepalli", "butanlı", "sri lankalı", "maldivli", "çinli", "moğol", "moğolistanlı", "japon", "japonyalı", "koreli", "güney koreli", "kuzey koreli", "tayvanlı", "hong konglu", "makao", "makaolu", "myanmarlı", "burmalı", "taylandlı", "laoslu", "kamboçyalı", "vietnamlı", "malezyalı", "singapurlu", "endonezyalı", "filipinli", "bruneyli", "doğu timorlu", -- ── Afrika ──────────────────────────────────────────────────────────────── "mısırlı", "libyalı", "tunuslu", "cezayirli", "faslı", "moritanyalı", "morityanyalı", "sudanlı", "güney sudanlı", "eritreli", "cibutili", "somalili", "etiyopyalı", "kenyalı", "ugandalı", "tanzanyalı", "ruandalı", "burundili", "kongolu", "kongo cumhuriyetli", "demokratik kongolu", "orta afrikalı", "çadlı", "kamerunlu", "gabonlu", "ekvator gineli", "sao tomeli", "são tomeli", "angolalı", "zambiyalı", "zimbabveli", "malavili", "mozambikli", "madagaskarlı", "komorlu", "seyşelli", "mauritiuslu", "güney afrikalı", "namibyalı", "botsvanalı", "lesotholu", "esvatinili", "svazili", "nijeryalı", "nijerli", "beninli", "togolu", "ganalı", "fildişi sahilli", "liberyalı", "sierra leoneli", "gineli", "gine-bissaulu", "gine bissaulu", "senegalli", "gambiyalı", "malili", "burkina fasolu", "yeşil burunlu", "kap verdeli", -- ── Kuzey / Orta Amerika ve Karayipler ─────────────────────────────────── "kanadalı", "amerikan", "amerikalı", "abdli", "meksikalı", "belizeli", "guatemalalı", "honduraslı", "elsalvadorlu", "el salvadorlu", "nikaragualı", "kosta rikalı", "panamalı", "kübalı", "haitili", "dominikli", "dominik cumhuriyetli", "jamaikalı", "bahamalı", "barbadoslu", "trinidad ve tobagolu", "antigua ve barbudalı", "saint kits ve nevisli", "saint lucialı", "saint vincent ve grenadinlerli", "grenadalı", -- ── Güney Amerika ──────────────────────────────────────────────────────── "arjantinli", "bolivyalı", "brezilyalı", "şilili", "kolombiyalı", "ekvadorlu", "guyanalı", "paraguaylı", "perulu", "surinamlı", "uruguaylı", "venezuelalı", -- ── Okyanusya ──────────────────────────────────────────────────────────── "avustralyalı", "yeni zelandalı", "papua yeni gineli", "fijili", "samoalı", "tongalı", "vanuatulu", "solomon adalı", "mikronezyalı", "marşallı", "marshall adalı", "palaualı", "naurulu", "kiribatili", "tuvalulu", -- ── Türkiye illeri: 81 ilin tamamı ─────────────────────────────────────── "adanalı", "adıyamanlı", "afyonkarahisarlı", "afyonlu", "ağrılı", "amasyalı", "ankaralı", "antalyalı", "artvinli", "aydınlı", "balıkesirli", "bilecikli", "bingöllü", "bitlisli", "bolulu", "burdurlu", "bursalı", "çanakkaleli", "çankırılı", "çorumlu", "denizlili", "diyarbakırlı", "edirneli", "elazığlı", "erzincanlı", "erzurumlu", "eskişehirli", "gaziantepli", "antepli", "giresunlu", "gümüşhaneli", "hakkârili", "hakkarili", "hataylı", "ıspartalı", "mersinli", "istanbullu", "izmirli", "karslı", "kastamonulu", "kayserili", "kırklarelili", "kırşehirli", "kocaelili", "izmitli", "konyalı", "kütahyalı", "malatyalı", "manisalı", "kahramanmaraşlı", "maraşlı", "mardinli", "muğlalı", "muşlu", "nevşehirli", "niğdeli", "ordulu", "rizeli", "sakaryalı", "adapazarlı", "samsunlu", "siirtli", "sinoplu", "sivaslı", "tekirdağlı", "tokatlı", "trabzonlu", "tuncelili", "şanlıurfalı", "urfalı", "uşaklı", "vanlı", "yozgatlı", "zonguldaklı", "aksaraylı", "bayburtlu", "karamanlı", "kırıkkaleli", "batmanlı", "şırnaklı", "bartınlı", "ardahanlı", "ığdırlı", "yalovalı", "karabüklü", "kilisli", "osmaniyeli", "düzceli", -- ── Türkiye’den yaygın ilçe / yerli adları ─────────────────────────────── "kadıköylü", "üsküdarlı", "beşiktaşlı", "fatihli", "beyoğlulu", "bakırköylü", "sarıyerli", "kartallı", "pendikli", "maltepeli", "şileli", "silivrili", "çatalcalı", "gebzeli", "daricalı", "çayırovalı", "bodrumlu", "marmarisli", "fethiyeli", "kuşadalı", "çeşmeli", "alanyalı", "manavgatlı", "kemerli", "kaşlı", "didimli", "bergamalı", "tireli", "ödemişli", "nazillili", "tarsuslu", "silifkeli", "iskenderunlu", "dörtyollu", "bafralı", "çarşambalı", "ünyeli", "fatsalı", "akçaabatlı", "oflu", "sürmeneli", "ereğlili", "alaplılı", "safranbolulu", -- ── Yaygın dünya şehirli adları ────────────────────────────────────────── "parisli", "londralı", "berlinli", "romalı", "milanolu", "venedikli", "floransalı", "napolili", "madritli", "barcelonalı", "lizbonlu", "portolu", "amsterdamlı", "rotterdamlı", "brükselli", "zürihli", "cenevreli", "viyanalı", "praglı", "varşovalı", "krakovlu", "budapeşteli", "belgradlı", "saraybosnalı", "zagrebli", "atinalı", "selanikli", "sofyalı", "bükreşli", "kievli", "kyivli", "moskovalı", "petersburglu", "bakülü", "tiflisli", "erivanlı", "tehranlı", "bağdatlı", "şamlı", "beyrutlu", "kudüslü", "tel avivli", "ammanlı", "riyadlı", "ciddeli", "dohalı", "dubaili", "abu dabili", "kahireli", "iskenderiyeli", } return p 8kuwejr96s5isdybi3oerwiop6zh41y 5658335 5658332 2026-05-15T19:53:28Z Satirdan kahraman 37401 5658335 Scribunto text/plain local p = {} local function Set(list) local set = {} for _, l in ipairs(list) do -- normalize: küçük harf + â/î/û düzleştirme l = mw.text.trim(l or "") l = mw.ustring.lower(l) l = mw.ustring.gsub(l, "â", "a") l = mw.ustring.gsub(l, "î", "i") l = mw.ustring.gsub(l, "û", "u") set[l] = true end return set end -- ✅ ARTIK DEV LİSTE YOK: -- -iyet / -iyat / -iyyet ve -et/-at/-ut/-üt grupları modülde kural ile kapsanıyor. p.istisnaYumusama = Set { -- kısa / yabancı / sert sonlu olup yumuşamaması gerekenler (çekirdek) "bank", "bark", "çap", "yarıçap", "kart", "kamp", "kist", "link", "lunapark", "market", "internet", "post it", "eskort", "grosmarket", "gelgit", "boykot", "suikast", -- çok kısa / tek heceli örnekler (ihtiyaca göre azalt/çoğalt) "at", "alt", "et", "it", "ip", "ok", "çek", "çöp", "bok", "koç", "piç", "aşk", "hukuk", "ahlak", "millet", "devlet", "sanat", "hayat", "evlat", "merak", "evrak", "ittifak", "iktisat", "bulut", "anıt", "kanıt", "ölçüt", "taşıt", "yanıt", "anket", "paket", "sepet", "bisiklet", "sert", "tıp", "sik", "çük", -- p ile bitenler "sap", "top", "küp", "hap", "tüp", "kulp", "sarp", "tip", "jip", "şap", -- ç ile bitenler "saç", "suç", "maç", "üç", "iç", "göç", "haç", "kıç", -- k ile bitenler "ek", "kök", "yük", "kürk", "çark", "park", "tank", "blok", "stok", "mülk", "halk", "şevk", "sevk", "meşk", "köşk", "mercanköşk", "ak", "ilk", "tek", "tok", "sirk", "disk", "fark", "iştiyak", "mask", -- t ile bitenler "ot", "süt", "bit", "çit", "küt", "zıt", "lort", "mart", "şart", "sırt", "sert", "büst", "dost", "post", "tost", "test", "üst", "ast", "salt", "kült", "semt", "kent", "mont", "taht", "baht", "abdest", "vücut", "şehit", "senet", "taahhüt", "hasat", "icat", "ahit", "iktisat", "mesnet", "kart", "rant", "mabet", "payitaht", "tişört", "best", "but", "jant", "doçent", "nühüft" } p.istisnaIncelme = Set { "aciz", "acz", "ahit", "akit", "alkol", "astral", "biantal", "dakika", "darp", "eflak", "emlak", "fevk", "global", "gol", "had", "hakikat", "hal", "hâl", "harf", "hayal", "hayâl", "helak", "ideal", "idrak", "imsak", "istiklal", "istiklâl", "istimlak", "iştirak", "kabul", "kalp", "katil", "kavim", "kemal", "kemâl", "kontrol", "koramiral", "liyakat", "lokal", "makbul", "merkat", "meşgul", "metal", "moral", "nakit", "nihal", "normal", "oval", "peştamal", "portal", "refik", "rikkat", "rol", "saat", "sadakat", "santral", "seyahat", "serhat", "sıhhat", "sol", "sukutuhayal", "mahal", "şefkat", "talakat", "talâkat", "terminal", "usul", "vakit", "vüsat", "yalın hâl", "kıtal", "kabil", "kabir", "bahis", } p.istisnaDusme = Set { "aciz", "ağız", "ahit", "akit", "akıl", "alın", "asıl", "bahtiyar", "batın", "beyin", "boyun", "burun", "cehil", "cisim", "dahil", "devir", "emir", "fetih", "fikir", "geniz", "göğüs", "gönül", "hasım", "hapis", "hüküm", "ilim", "isim", "karın", "kasıt", "kavim", "kayıt", "kayıp", "keyif", "küfür", "metin", "meyil", "mühür", "nakit", "nakış", "nehir", "nezir", "nesil", "nutuk", "oğul", "omuz", "resim", "rızık", "sabır", "satıh", "seyir", "sihir", "şehir", "şekil", "şükür", "temsilî resim", "ufuk", "uzuv", "vakit", "vasıf", "vezin", "zehir", "zihin", "zikir", "zulüm", "kabir", "bahis", "kesir", } p.istisnaBilesik = Set { "akşamsefası", "aslanağzı", "aslansütü", "atasözü", "ayçiçeği", "başsağlığı", "başörtüsü","başucu", "burası", "buzdolabı", "camevi", "cumartesi", "denizaslanı", "denizgülü", "denizşakayığı", "dereotu", "dilberdudağı", "elebaşı", "fildişi", "gecesefası", "gelinkuşağı", "gökkuşağı", "gözbebeği", "gözyaşı", "havaalanı", "havalimanı", "halkevi", "hanımeli", "içgüveysi", "işgücü", "kafatası", "kızevi", "kitabevi", "kuşburnu", "köşebaşı", "oymakbaşı", "peygamberdevesi", "semizotu", "sepettopu", "sınır boyu", "soyağacı", "susamuru", "tavukgötü", "yavruağzı", "randevuevi", "cezaevi", "kadınbudu", "kazayağı", "zeytinyağı" } p.istisnaIkizlesme = Set { "af", "behat", "emrihak", "fek", "had", "hak", "hal", "hat", "haz", "his", "hüsnühat", "met", "rab", "ret", "sır", "şek", "şer", "şet", "tıp", "zam", "zan", "mahal", } p.istisnaYalinSonlu = Set { -- Sonu ı, i, u, ü ile bittiği halde yalın (kök) durumunda olan ve -- sıfat/isim tamlamalarında ikinci kelime olduğunda "bileşik" yapmayan kelimeler "acı", "açı", "akü", "anadolu", "anı", "arı", "atkı", "ayı", "ayakkabı", "bacı", "batı", "bayi", "bekçi", "bilgi", "bitki", "boru", "büyü", "cadı", "cami", "çalı", "çatı", "çeki", "çeri", "çıktı", "çini", "çivi", "çizgi", "dahi", "dayı", "deli", "deri", "dizi", "doğu", "doku", "dolu", "dudu", "duygu", "dürtü", "ebedi", "edebi", "efendi", "eksi", "elti", "eski", "evli", "fani", "fıçı", "fırıncı", "fobi", "gazi", "gemi", "gezi", "girdi", "giysi", "görgü", "güdü", "hacı", "halı", "hami", "hani", "huni", "huri", "içeri", "ileri", "inci", "iyi", "kadı", "kapı", "karşı", "kedi", "kişi", "kivi", "koku", "komşu", "konu", "korku", "koru", "köprü", "kötü", "kutu", "kuyu", "kuzu", "kürsü", "kesir", "mavi", "mazi", "mermi", "milli", "müftü", "ordu", "öcü", "ölü", "ölçü", "öncü", "örtü", "övgü", "öykü", "pazu", "peri", "pisi", "sarı", "sayı", "seri", "sergi", "sevgi", "sezi", "sıhhi", "sıvı", "silgi", "soru", "su", "sürü", "şarkı", "söndürücü", "taksi", "tanı", "tartı", "tatlı", "tepki", "terzi", "testi", "tortu", "tutku", "türkü", "Türkçe", "uğultu", "ulu", "utku", "uyku", "üzüntü", "ütü", "vadi", "vali", "vasi", "veli", "veri", "yemişçi", "sporcu", "yalı", "yatılı", "yangın söndürücü", "yapı", "yarı", "yavru", "yazı", "yeni", "yetki", "yolcu", "yemiş", "şeftali", "zeki", } local function trLowerForKesmesizOzel(s) s = mw.ustring.gsub(s or "", "I", "ı") s = mw.ustring.gsub(s, "İ", "i") s = mw.ustring.lower(s) return s end local function KesmesizOzelSet(list) local t = {} for _, v in ipairs(list) do t[v] = true t[trLowerForKesmesizOzel(v)] = true end return t end p.istisnaKesmesizOzelAd = Set { "Abhaz", "Adanalı", "Adapazarlı", "Adıyamanlı", "Afgan", "Afganistanlı", "Afrikalı", "Afyonkarahisarlı", "Afyonlu", "Ağrılı", "Akdenizli", "Aksaraylı", "Alman", "Almanyalı", "Amasyalı", "Amerikalı", "Amerikan", "Anadolulu", "Angolalı", "Ankaralı", "Antalyalı", "Antepli", "Arap", "Ardahanlı", "Arjantinli", "Arnavut", "Arnavutluklu", "Artvinli", "Asyalı", "Avrupalı", "Avustralyalı", "Avusturyalı", "Aydınlı", "Azerbaycanlı", "Azeri", "Bahamalı", "Bahreynli", "Balıkesirli", "Balkanlı", "Bangladeşli", "Barbadoslu", "Bartınlı", "Başkurt", "Batmanlı", "Bayburtlu", "Belaruslu", "Belçikalı", "Belizeli", "Beninli", "Bilecikli", "Bingöllü", "Birleşik Arap Emirlikli", "Birleşik Krallıklı", "Bitlisli", "Bolivyalı", "Bolulu", "Bosna Hersekli", "Bosna-Hersekli", "Bosnalı", "Boşnak", "Botsvanalı", "Brezilyalı", "Britanyalı", "Bruneyli", "Bulgar", "Bulgaristanlı", "Burmalı", "Burdurlu", "Burkina Fasolu", "Burundili", "Bursalı", "Butanlı", "Çadlı", "Çanakkaleli", "Çankırılı", "Çek", "Çekyalı", "Çerkes", "Çinli", "Çorumlu", "Çuvaş", "Danimarkalı", "Denizlili", "Diyarbakırlı", "Doğu Timorlu", "Dominik Cumhuriyetli", "Dominikli", "Düzceli", "Edirneli", "Ekvadorlu", "Ekvator Gineli", "Elazığlı", "Elsalvadorlu", "Emirlikli", "Endonezyalı", "Ermeni", "Ermenistanlı", "Eritreli", "Erzincanlı", "Erzurumlu", "Eskişehirli", "Estonyalı", "Esvatinili", "Etiyopyalı", "Fars", "Faslı", "Fijili", "Fildişi Sahilli", "Filipinli", "Filistinli", "Fin", "Finlandiyalı", "Fransalı", "Fransız", "Gabonlu", "Galli", "Gambiyalı", "Ganalı", "Gaziantepli", "Gine Bissaulu", "Gine-Bissaulu", "Gineli", "Giresunlu", "Grenadalı", "Guatemalalı", "Guyanalı", "Güney Afrikalı", "Güney Amerikalı", "Güney Koreli", "Güney Sudanlı", "Gümüşhaneli", "Gürcü", "Gürcistanlı", "Haitili", "Hakkârili", "Hakkarili", "Hataylı", "Hint", "Hindistanlı", "Hollandalı", "Honduraslı", "Hırvat", "Hırvatistanlı", "Iğdırlı", "Iraklı", "Ispartalı", "İngiliz", "İranlı", "İrlandalı", "İskoç", "İspanyol", "İspanyalı", "İsrailli", "İsveçli", "İsviçreli", "İtalyalı", "İtalyan", "İstanbullu", "İzlandalı", "İzmirli", "İzmitli", "Jamaikalı", "Japon", "Japonyalı", "Kahramanmaraşlı", "Kanadalı", "Karabüklü", "Karadağlı", "Karadenizli", "Karamanlı", "Karslı", "Kastamonulu", "Katarlı", "Kayserili", "Kazak", "Kazakistanlı", "Kenyalı", "Kilisli", "Kırgız", "Kırgızistanlı", "Kırıkkaleli", "Kırklarelili", "Kırşehirli", "Kırım Tatarı", "Kıbrıs Rumu", "Kıbrıs Türkü", "Kıbrıslı", "Kolombiyalı", "Komorlu", "Kongo Cumhuriyetli", "Kongolu", "Konyalı", "Koreli", "Kosovalı", "Kosta Rikalı", "Kuzey Amerikalı", "Kuzey İrlandalı", "Kuzey Koreli", "Kuzey Makedonyalı", "Kuveytli", "Kübalı", "Kürt", "Kütahyalı", "Laoslu", "Latin Amerikalı", "Laz", "Lesotholu", "Letonyalı", "Liberyalı", "Libyalı", "Lihtenştaynlı", "Litvanyalı", "Lübnanlı", "Lüksemburglu", "Macar", "Macaristanlı", "Madagaskarlı", "Makedon", "Malatyalı", "Malavili", "Maldivli", "Malezyalı", "Malili", "Maltalı", "Manisalı", "Mardinli", "Maraşlı", "Marshall Adalı", "Marşallı", "Mauritiuslu", "Meksikalı", "Mersinli", "Mikronezyalı", "Moldovalı", "Moldovyalı", "Monakolu", "Moritanyalı", "Morityanyalı", "Mozambikli", "Moğol", "Moğolistanlı", "Muhacir", "Muğlalı", "Muşlu", "Mısırlı", "Namibyalı", "Naurulu", "Nepalli", "Nevşehirli", "Nijerli", "Nijeryalı", "Nikaragualı", "Niğdeli", "Norveçli", "Ordulu", "Orta Afrikalı", "Orta Asyalı", "Ortadoğulu", "Osmaniyeli", "Osmanlı", "Özbek", "Özbekistanlı", "Pakistanlı", "Palaualı", "Panamalı", "Papua Yeni Gineli", "Paraguaylı", "Perulu", "Polonyalı", "Pomak", "Portekizli", "Rizeli", "Roman", "Rum", "Rumen", "Rumanyalı", "Rus", "Rusyalı", "Ruandalı", "Saha", "Saint Kitts Ve Nevisli", "Saint Lucialı", "Saint Vincent Ve Grenadinlerli", "Sakaryalı", "Samoalı", "Samsunlu", "San Marinolu", "Senegalli", "Seyşelli", "Sierra Leoneli", "Siirtli", "Singapurlu", "Sinoplu", "Sivaslı", "Slovak", "Slovakyalı", "Sloven", "Slovenyalı", "Solomon Adalı", "Somalili", "Sri Lankalı", "Sudanlı", "Surinamlı", "Suriyeli", "Suudi", "Suudi Arabistanlı", "Süryani", "Svazili", "Sırbistanlı", "Sırp", "Şanlıurfalı", "Şilili", "Şırnaklı", "Tacik", "Tacikistanlı", "Tanzanyalı", "Tatar", "Taylandlı", "Tayvanlı", "Tekirdağlı", "Togolu", "Tokatlı", "Tongalı", "Trabzonlu", "Trinidad Ve Tobagolu", "Tuncelili", "Tunuslu", "Tuvalulu", "Türk", "Türkiyeli", "Türkmen", "Türkmenistanlı", "Ugandalı", "Ukraynalı", "Ummanlı", "Urfalı", "Uruguaylı", "Uşaklı", "Uygur", "Ürdünlü", "Vanlı", "Vanuatulu", "Vatikanlı", "Venezuelalı", "Vietnamlı", "Yahudi", "Yakut", "Yalovalı", "Yemenli", "Yeni Zelandalı", "Yeşil Burunlu", "Yozgatlı", "Yunan", "Yunanistanlı", "Yörük", "Zambiyalı", "Zaza", "Zimbabveli", "Zonguldaklı" } return p 12hg6cplezvz006xj36pqw4v1128b9v 5658569 5658335 2026-05-16T10:19:18Z Satirdan kahraman 37401 genel düzen 5658569 Scribunto text/plain local p = {} local function Set(list) local set = {} for _, l in ipairs(list) do -- normalize: küçük harf + â/î/û düzleştirme l = mw.text.trim(l or "") l = mw.ustring.lower(l) l = mw.ustring.gsub(l, "â", "a") l = mw.ustring.gsub(l, "î", "i") l = mw.ustring.gsub(l, "û", "u") set[l] = true end return set end -- ✅ ARTIK DEV LİSTE YOK: -- -iyet / -iyat / -iyyet ve -et/-at/-ut/-üt grupları modülde kural ile kapsanıyor. p.istisnaYumusama = Set { -- kısa / yabancı / sert sonlu olup yumuşamaması gerekenler (çekirdek) "bank", "bark", "çap", "yarıçap", "kart", "kamp", "kist", "link", "lunapark", "market", "internet", "post it", "eskort", "grosmarket", "gelgit", "boykot", "suikast", -- çok kısa / tek heceli örnekler (ihtiyaca göre azalt/çoğalt) "at", "alt", "et", "it", "ip", "ok", "çek", "çöp", "bok", "koç", "piç", "aşk", "hukuk", "ahlak", "millet", "devlet", "sanat", "hayat", "evlat", "merak", "evrak", "ittifak", "iktisat", "bulut", "anıt", "kanıt", "ölçüt", "taşıt", "yanıt", "anket", "paket", "sepet", "bisiklet", "sert", "tıp", "sik", "çük", -- p ile bitenler "sap", "top", "küp", "hap", "tüp", "kulp", "sarp", "tip", "jip", "şap", -- ç ile bitenler "saç", "suç", "maç", "üç", "iç", "göç", "haç", "kıç", -- k ile bitenler "ek", "kök", "yük", "kürk", "çark", "park", "tank", "blok", "stok", "mülk", "halk", "şevk", "sevk", "meşk", "köşk", "mercanköşk", "ak", "ilk", "tek", "tok", "sirk", "disk", "fark", "iştiyak", "mask", -- t ile bitenler "ot", "süt", "bit", "çit", "küt", "zıt", "lort", "mart", "şart", "sırt", "sert", "büst", "dost", "post", "tost", "test", "üst", "ast", "salt", "kült", "semt", "kent", "mont", "taht", "baht", "abdest", "vücut", "şehit", "senet", "taahhüt", "hasat", "icat", "ahit", "iktisat", "mesnet", "kart", "rant", "mabet", "payitaht", "tişört", "best", "but", "jant", "doçent", "nühüft" } p.istisnaIncelme = Set { "aciz", "acz", "ahit", "akit", "alkol", "astral", "biantal", "dakika", "darp", "eflak", "emlak", "fevk", "global", "gol", "had", "hakikat", "hal", "hâl", "harf", "hayal", "hayâl", "helak", "ideal", "idrak", "imsak", "istiklal", "istiklâl", "istimlak", "iştirak", "kabul", "kalp", "katil", "kavim", "kemal", "kemâl", "kontrol", "koramiral", "liyakat", "lokal", "makbul", "merkat", "meşgul", "metal", "moral", "nakit", "nihal", "normal", "oval", "peştamal", "portal", "refik", "rikkat", "rol", "saat", "sadakat", "santral", "seyahat", "serhat", "sıhhat", "sol", "sukutuhayal", "mahal", "şefkat", "talakat", "talâkat", "terminal", "usul", "vakit", "vüsat", "yalın hâl", "kıtal", "kabil", "kabir", "bahis", } p.istisnaDusme = Set { "aciz", "ağız", "ahit", "akit", "akıl", "alın", "asıl", "bahtiyar", "batın", "beyin", "boyun", "burun", "cehil", "cisim", "dahil", "devir", "emir", "fetih", "fikir", "geniz", "göğüs", "gönül", "hasım", "hapis", "hüküm", "ilim", "isim", "karın", "kasıt", "kavim", "kayıt", "kayıp", "keyif", "küfür", "metin", "meyil", "mühür", "nakit", "nakış", "nehir", "nezir", "nesil", "nutuk", "oğul", "omuz", "resim", "rızık", "sabır", "satıh", "seyir", "sihir", "şehir", "şekil", "şükür", "temsilî resim", "ufuk", "uzuv", "vakit", "vasıf", "vezin", "zehir", "zihin", "zikir", "zulüm", "kabir", "bahis", "kesir", } p.istisnaBilesik = Set { "akşamsefası", "aslanağzı", "aslansütü", "atasözü", "ayçiçeği", "başsağlığı", "başörtüsü","başucu", "burası", "buzdolabı", "camevi", "cumartesi", "denizaslanı", "denizgülü", "denizşakayığı", "dereotu", "dilberdudağı", "elebaşı", "fildişi", "gecesefası", "gelinkuşağı", "gökkuşağı", "gözbebeği", "gözyaşı", "havaalanı", "havalimanı", "halkevi", "hanımeli", "içgüveysi", "işgücü", "kafatası", "kızevi", "kitabevi", "kuşburnu", "köşebaşı", "oymakbaşı", "peygamberdevesi", "semizotu", "sepettopu", "sınır boyu", "soyağacı", "susamuru", "tavukgötü", "yavruağzı", "randevuevi", "cezaevi", "kadınbudu", "kazayağı", "zeytinyağı" } p.istisnaIkizlesme = Set { "af", "behat", "emrihak", "fek", "had", "hak", "hal", "hat", "haz", "his", "hüsnühat", "met", "rab", "ret", "sır", "şek", "şer", "şet", "tıp", "zam", "zan", "mahal", } p.istisnaYalinSonlu = Set { -- Sonu ı, i, u, ü ile bittiği halde yalın (kök) durumunda olan ve -- sıfat/isim tamlamalarında ikinci kelime olduğunda "bileşik" yapmayan kelimeler "acı", "açı", "akü", "anadolu", "anı", "arı", "atkı", "ayı", "ayakkabı", "bacı", "batı", "bayi", "bekçi", "bilgi", "bitki", "boru", "büyü", "cadı", "cami", "çalı", "çatı", "çeki", "çeri", "çıktı", "çini", "çivi", "çizgi", "dahi", "dayı", "deli", "deri", "dizi", "doğu", "doku", "dolu", "dudu", "duygu", "dürtü", "ebedi", "edebi", "efendi", "eksi", "elti", "eski", "evli", "fani", "fıçı", "fırıncı", "fobi", "gazi", "gemi", "gezi", "girdi", "giysi", "görgü", "güdü", "hacı", "halı", "hami", "hani", "huni", "huri", "içeri", "ileri", "inci", "iyi", "kadı", "kapı", "karşı", "kedi", "kişi", "kivi", "koku", "komşu", "konu", "korku", "koru", "köprü", "kötü", "kutu", "kuyu", "kuzu", "kürsü", "kesir", "mavi", "mazi", "mermi", "milli", "müftü", "ordu", "öcü", "ölü", "ölçü", "öncü", "örtü", "övgü", "öykü", "pazu", "peri", "pisi", "sarı", "sayı", "seri", "sergi", "sevgi", "sezi", "sıhhi", "sıvı", "silgi", "soru", "su", "sürü", "şarkı", "söndürücü", "taksi", "tanı", "tartı", "tatlı", "tepki", "terzi", "testi", "tortu", "tutku", "türkü", "Türkçe", "uğultu", "ulu", "utku", "uyku", "üzüntü", "ütü", "vadi", "vali", "vasi", "veli", "veri", "yemişçi", "sporcu", "yalı", "yatılı", "yangın söndürücü", "yapı", "yarı", "yavru", "yazı", "yeni", "yetki", "yolcu", "yemiş", "şeftali", "zeki", } local function trLowerForKesmesizOzel(s) s = mw.ustring.gsub(s or "", "I", "ı") s = mw.ustring.gsub(s, "İ", "i") s = mw.ustring.lower(s) return s end local function KesmesizOzelSet(list) local t = {} for _, v in ipairs(list) do t[v] = true t[trLowerForKesmesizOzel(v)] = true end return t end p.istisnaKesmesizOzelAd = Set { "Adanalı", "Adapazarlı", "Adıyamanlı", "Afganistanlı", "Afrikalı", "Afyonkarahisarlı", "Afyonlu", "Ağrılı", "Akdenizli", "Aksaraylı", "Almanyalı", "Amasyalı", "Amerikalı", "Anadolulu", "Angolalı", "Ankaralı", "Antalyalı", "Antepli", "Ardahanlı", "Arjantinli", "Arnavutluklu", "Artvinli", "Asyalı", "Avrupalı", "Avustralyalı", "Avusturyalı", "Aydınlı", "Azerbaycanlı", "Bahamalı", "Bahreynli", "Balıkesirli", "Balkanlı", "Bangladeşli", "Barbadoslu", "Bartınlı", "Batmanlı", "Bayburtlu", "Belaruslu", "Belçikalı", "Belizeli", "Beninli", "Bilecikli", "Bingöllü", "Birleşik Arap Emirlikli", "Birleşik Krallıklı", "Bitlisli", "Bolivyalı", "Bolulu", "Bosna Hersekli", "Bosna-Hersekli", "Bosnalı", "Botsvanalı", "Brezilyalı", "Britanyalı", "Bruneyli", "Bulgaristanlı", "Burmalı", "Burdurlu", "Burkina Fasolu", "Burundili", "Bursalı", "Butanlı", "Çadlı", "Çanakkaleli", "Çankırılı", "Çekyalı", "Çinli", "Çorumlu", "Danimarkalı", "Denizlili", "Diyarbakırlı", "Doğu Timorlu", "Dominik Cumhuriyetli", "Dominikli", "Düzceli", "Edirneli", "Ekvadorlu", "Ekvator Gineli", "Elazığlı", "Elsalvadorlu", "Endonezyalı", "Ermenistanlı", "Eritreli", "Erzincanlı", "Erzurumlu", "Eskişehirli", "Estonyalı", "Esvatinili", "Etiyopyalı", "Faslı", "Fijili", "Fildişi Sahilli", "Filipinli", "Filistinli", "Finlandiyalı", "Fransalı", "Fransız", "Gabonlu", "Galli", "Gambiyalı", "Ganalı", "Gaziantepli", "Gineli", "Giresunlu", "Guatemalalı", "Guyanalı", "Güney Afrikalı", "Güney Amerikalı", "Güney Koreli", "Güney Sudanlı", "Gümüşhaneli", "Gürcistanlı", "Haitili", "Hakkârili", "Hataylı", "Hindistanlı", "Hollandalı", "Honduraslı", "Hırvatistanlı", "Iğdırlı", "Iraklı", "Ispartalı", "İranlı", "İrlandalı", "İspanyalı", "İsrailli", "İsveçli", "İsviçreli", "İtalyalı", "İstanbullu", "İzlandalı", "İzmirli", "İzmitli", "Jamaikalı", "Japon", "Japonyalı", "Kahramanmaraşlı", "Kanadalı", "Karabüklü", "Karadağlı", "Karadenizli", "Karamanlı", "Karslı", "Kastamonulu", "Katarlı", "Kayserili", "Kazak", "Kazakistanlı", "Kenyalı", "Kilisli", "Kırgız", "Kırgızistanlı", "Kırıkkaleli", "Kırklarelili", "Kırşehirli", "Kırım Tatarı", "Kıbrıs Rumu", "Kıbrıs Türkü", "Kıbrıslı", "Kolombiyalı", "Komorlu", "Kongo Cumhuriyetli", "Kongolu", "Konyalı", "Koreli", "Kosovalı", "Kosta Rikalı", "Kuzey Amerikalı", "Kuzey İrlandalı", "Kuzey Koreli", "Kuzey Makedonyalı", "Kuveytli", "Kübalı", "Kürt", "Kütahyalı", "Laoslu", "Latin Amerikalı", "Laz", "Lesotholu", "Letonyalı", "Liberyalı", "Libyalı", "Lihtenştaynlı", "Litvanyalı", "Lübnanlı", "Lüksemburglu", "Macar", "Macaristanlı", "Madagaskarlı", "Makedon", "Malatyalı", "Malavili", "Maldivli", "Malezyalı", "Malili", "Maltalı", "Manisalı", "Mardinli", "Maraşlı", "Mauritiuslu", "Meksikalı", "Mersinli", "Mikronezyalı", "Moldovalı", "Moldovyalı", "Monakolu", "Moritanyalı", "Morityanyalı", "Mozambikli", "Moğol", "Moğolistanlı", "Muğlalı", "Muşlu", "Mısırlı", "Namibyalı", "Naurulu", "Nepalli", "Nevşehirli", "Nijerli", "Nijeryalı", "Nikaragualı", "Niğdeli", "Norveçli", "Ordulu", "Orta Afrikalı", "Orta Asyalı", "Ortadoğulu", "Osmaniyeli", "Özbekistanlı", "Pakistanlı", "Palaualı", "Panamalı", "Papua Yeni Gineli", "Paraguaylı", "Perulu", "Polonyalı", "Portekizli", "Rizeli", "Rumanyalı", "Rusyalı", "Ruandalı", "Sakaryalı", "Samoalı", "Samsunlu", "San Marinolu", "Senegalli", "Seyşelli", "Sierra Leoneli", "Siirtli", "Singapurlu", "Sinoplu", "Sivaslı", "Slovakyalı", "Sloven", "Slovenyalı", "Somalili", "Sri Lankalı", "Sudanlı", "Surinamlı", "Suriyeli", "Suudi Arabistanlı", "Sırbistanlı", "Şanlıurfalı", "Şilili", "Şırnaklı", "Tacikistanlı", "Tanzanyalı", "Taylandlı", "Tayvanlı", "Tekirdağlı", "Togolu", "Tokatlı", "Tongalı", "Trabzonlu", "Tuncelili", "Tunuslu", "Türkiyeli", "Türkmenistanlı", "Ugandalı", "Ukraynalı", "Ummanlı", "Urfalı", "Uruguaylı", "Uşaklı", "Ürdünlü", "Vanlı", "Vatikanlı", "Venezuelalı", "Vietnamlı", "Vikisözlük", "Yalovalı", "Yemenli", "Yeni Zelandalı", "Yeşil Burunlu", "Yozgatlı", "Yunanistanlı", "Zambiyalı", "Zimbabveli", "Zonguldaklı" } return p g52c6q0qxmjh9jn11ysbdlry2i0z1kb Modül:tr-başlıkbaşı 828 443668 5658310 4263082 2026-05-15T17:25:46Z Satirdan kahraman 37401 deneme 5658310 Scribunto text/plain -- Gerekli çekimleme modüllerini yükle local tr_ad = require("Modül:tr-ad") local tr_eylem = require("Modül:tr-eylem") local dil = require("Modül:diller").getirKodaGore("tr") local cikart = {} local soz_fonksiyonlari = {} -- Eğer boş değilse local function ebd(arg) if arg == "" then return nil else return arg end end -- Asıl girdi çıktısı function cikart.goster(frame) local sozkat = frame.args[1] or error("Söz türü belirtilmedi. Lütfen 1 numaralı parametreyi giriniz.") local params = { [1] = {list = "baş", allow_holes = true, default = ""}, ["baş"] = {default = ""}, ["istisna"] = {}, ["k"] = {}, ["a"] = {}, ["d"] = {}, } local args = frame:getParent().args -- YAPILACAK: Burada [[Modül:parameters]] kullan -- Gather parameters local veri = {dil = dil, soz_kategorisi = sozkat, kategoriler = {}, baslar = {}, cekimler = { etkin_oto_alfabecev = true }} local bas = args["baş"] or args[1] or "" local i = 1 while bas do table.insert(veri.baslar, bas) i = i + 1 bas = ebd(args["baş" .. i]) end if soz_fonksiyonlari[sozkat] then soz_fonksiyonlari[sozkat].fonk(args, veri) end return require("Modül:başlık başı").tam_baslikbasi(veri) end soz_fonksiyonlari["adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local ak = args["k"] or args["a"] if ak == "1" then veri.soz_kategorisi = "özel adlar" end belirtme = tr_ad.ayarla(bas, args["istisna"], "tekil", "belirtme", ak) cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "yalın", ak) table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"}) if mw.ustring.find(mw.ustring.sub( bas, -4 ), "l[ae][(rı)(ri)r]") or args["istisna"] == "çoğulsuz" then table.insert(veri.kategoriler, "Türkçe topluluk adları") table.insert(veri.cekimler, {etiket = "[[Ek:Açıklamalar#topluluk adı|topluluk adı]]"}) else if ak and ak == "1" then else table.insert(veri.cekimler, {{sozcuk = cogul}, etiket = "çoğulu"}) end end end } soz_fonksiyonlari["özel adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local ak = args["k"] or args["a"] cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "yalın", ak) cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "yalın", ak) table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"}) end } soz_fonksiyonlari["eylemler"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local eylem = require("Modül:tr-araçlar").yalinYap(bas) tip = "olumlu" if mw.ustring.find(mw.ustring.sub( eylem, -2 ), "m[ea]") then eylem = mw.ustring.sub( eylem, 1, -3 ) tip = "olumsuz" end cekim = tr_eylem.genis(eylem, tip, "o") if type(cekim) == "table" then cekim = cekim[1] end table.insert(veri.cekimler, {{sozcuk = cekim}, etiket = "üçüncü tekil şahıs geniş zaman çekimi"}) end } soz_fonksiyonlari["ön adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText if args.d == "-" then else table.insert(veri.cekimler, {{sozcuk = "[[daha]] " .. bas}, etiket = "karşılaştırma"}) table.insert(veri.cekimler, {{sozcuk = "[[en]] " .. bas}, etiket = "üstünlük"}) end end } return cikart d9de72yep8e74zscd9wd60vl1rwdito 5658312 5658310 2026-05-15T17:30:29Z Satirdan kahraman 37401 deneme 5658312 Scribunto text/plain -- Gerekli çekimleme modüllerini yükle local tr_ad = require("Modül:tr-ad") local tr_eylem = require("Modül:tr-eylem") local dil = require("Modül:diller").getirKodaGore("tr") local u = mw.ustring local cikart = {} local soz_fonksiyonlari = {} -- Eğer boş değilse local function ebd(arg) if arg == "" then return nil else return arg end end -- ── Pekiştirme sıfatı tespiti ───────────────────────────────────────────────── -- sımsıcak, kapkara, mosmor, bembeyaz, yepyeni vb. -- Kalıp: ilk hece + (p|s|m|r) ile başlayan sözcükler. local PEKISTIRME_ONLAR = { "bem", "bep", "bes", "bom", "bop", "çır", "çıp", "düm", "düp", "gom", "güp", "kap", "kam", "kım", "kıp", "kös", "küp", "mas", "map", "mos", "mop", "sap", "sam", "sım", "sıp", "som", "ter", "tem", "yap", "yam", "yem", "yep", } local function pekistirmeMi(bas) local k = u.lower(bas or "") for _, on in ipairs(PEKISTIRME_ONLAR) do if u.sub(k, 1, u.len(on)) == on then return true end end return false end -- ── Karşılaştırılamaz sıfat tespiti ────────────────────────────────────────── -- İkili kavramlar, sıra sayıları, belirteç kökenli sıfatlar vb. local KARSILASTIRILMAZ = { ["ölü"]=true, ["diri"]=true, ["canlı"]=true, ["evli"]=true, ["bekar"]=true, ["bekâr"]=true, ["tek"]=true, ["çift"]=true, ["birinci"]=true, ["ikinci"]=true, ["üçüncü"]=true, ["dördüncü"]=true, ["beşinci"]=true, ["son"]=true, ["nihai"]=true, ["nihâî"]=true, ["mutlak"]=true,["sonsuz"]=true, ["her"]=true, ["hiç"]=true, ["bazı"]=true, ["birkaç"]=true,["birçok"]=true, ["bu"]=true, ["şu"]=true, ["o"]=true, } local function karsilastirilmazMi(bas) local k = u.lower(bas or "") if KARSILASTIRILMAZ[k] then return true end -- -ıncı/-inci/-uncu/-üncü: sıra sayı sıfatları if u.find(k, "[ıiuü]nc[ıiuü]$") then return true end return false end local function karsilastirmaEklenebilirMi(bas, args) if args.d == "-" then return false end if pekistirmeMi(bas) then return false end if karsilastirilmazMi(bas) then return false end return true end -- ── Asıl girdi çıktısı ──────────────────────────────────────────────────────── function cikart.goster(frame) local sozkat = frame.args[1] or error("Söz türü belirtilmedi. Lütfen 1 numaralı parametreyi giriniz.") local args = frame:getParent().args -- YAPILACAK: Burada [[Modül:parameters]] kullan local veri = { dil = dil, soz_kategorisi = sozkat, kategoriler = {}, baslar = {}, cekimler = { etkin_oto_alfabecev = true }, } local bas = args["baş"] or args[1] or "" local i = 1 while bas do table.insert(veri.baslar, bas) i = i + 1 bas = ebd(args["baş" .. i]) end if soz_fonksiyonlari[sozkat] then soz_fonksiyonlari[sozkat].fonk(args, veri) end return require("Modül:başlık başı").tam_baslikbasi(veri) end -- ── adlar ───────────────────────────────────────────────────────────────────── soz_fonksiyonlari["adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local ak = args["k"] or args["a"] if ak == "1" then veri.soz_kategorisi = "özel adlar" end local belirtme = tr_ad.ayarla(bas, args["istisna"], "tekil", "belirtme", ak) local cogul = tr_ad.ayarla(bas, args["istisna"], "çoğul", "yalın", ak) table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"}) if u.find(u.sub(bas, -4), "l[ae][(rı)(ri)r]") or args["istisna"] == "çoğulsuz" then table.insert(veri.kategoriler, "Türkçe topluluk adları") table.insert(veri.cekimler, {etiket = "[[Ek:Açıklamalar#topluluk adı|topluluk adı]]"}) else if not (ak == "1") then table.insert(veri.cekimler, {{sozcuk = cogul}, etiket = "çoğulu"}) end end end } -- ── özel adlar ──────────────────────────────────────────────────────────────── soz_fonksiyonlari["özel adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local ak = args["k"] or args["a"] local belirtme = tr_ad.ayarla(bas, args["istisna"], "tekil", "belirtme", ak) table.insert(veri.cekimler, {{sozcuk = belirtme}, etiket = "belirtme hâli"}) end } -- ── eylemler ────────────────────────────────────────────────────────────────── soz_fonksiyonlari["eylemler"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText local eylem = require("Modül:tr-araçlar").yalinYap(bas) local tip = "olumlu" if u.find(u.sub(eylem, -2), "m[ea]") then eylem = u.sub(eylem, 1, -3) tip = "olumsuz" end local cekim = tr_eylem.genis(eylem, tip, "o") if type(cekim) == "table" then cekim = cekim[1] end table.insert(veri.cekimler, {{sozcuk = cekim}, etiket = "üçüncü tekil şahıs geniş zaman çekimi"}) end } -- ── ön adlar ────────────────────────────────────────────────────────────────── soz_fonksiyonlari["ön adlar"] = { fonk = function(args, veri) local bas = args[1] or mw.title.getCurrentTitle().subpageText if karsilastirmaEklenebilirMi(bas, args) then table.insert(veri.cekimler, {{sozcuk = "[[daha]] " .. bas}, etiket = "karşılaştırma"}) table.insert(veri.cekimler, {{sozcuk = "[[en]] " .. bas}, etiket = "üstünlük"}) end end } return cikart rns6zb7omqh80en3x4e9m9yuycs5k4g Vikisözlük:Değişiklik sayılarına göre Vikisözlükçüler listesi 4 466356 5658352 5658178 2026-05-15T21:05:20Z YBot 37147 Güncelleme 5658352 wikitext text/x-wiki {{/begin}} <center> {| class="wikitable" ! # ! Kullanıcı ! Değişiklik sayısı ! Kullanıcı grupları |- | 1 | [[Kullanıcı:HastaLaVi2|HastaLaVi2]] | align="center" | 1.264.519 | arayüz yöneticisi, hizmetli |- | 2 | [[Kullanıcı:Victor Trevor|Victor Trevor]] | align="center" | 144.832 | |- | 3 | [[Kullanıcı:MustafaCavlak|MustafaCavlak]] | align="center" | 94.939 | hizmetli, geçici hesap IP görüntüleyici |- | 4 | [[Kullanıcı:Viki|Viki]] | align="center" | 45.152 | |- | 5 | [[Kullanıcı:By erdo can|By erdo can]] | align="center" | 42.866 | |- | 6 | [[Kullanıcı:Sae1962|Sae1962]] | align="center" | 34.149 | |- | 7 | [[Kullanıcı:Satirdan kahraman|Satirdan kahraman]] | align="center" | 34.066 | |- | 8 | [[Kullanıcı:Saltinbas|Saltinbas]] | align="center" | 26.434 | |- | 9 | [[Kullanıcı:MüjdeA|MüjdeA]] | align="center" | 25.502 | |- | 10 | [[Kullanıcı:Sabri76|Sabri76]] | align="center" | 20.345 | |- | 11 | [[Kullanıcı:Katakay|Katakay]] | align="center" | 19.415 | |- | 12 | [[Kullanıcı:Turgut46|Turgut46]] | align="center" | 17.460 | hizmetli |- | 13 | [[Kullanıcı:Vuzorg|Vuzorg]] | align="center" | 15.925 | |- | 14 | [[Kullanıcı:Ender|Ender]] | align="center" | 14.945 | |- | 15 | [[Kullanıcı:Kök|Kök]] | align="center" | 8.437 | |- | 16 | [[Kullanıcı:Curious|Curious]] | align="center" | 7.438 | |- | 17 | [[Kullanıcı:Bobcats|Bobcats]] | align="center" | 6.526 | |- | 18 | [[Kullanıcı:Nosferatü|Nosferatü]] | align="center" | 6.408 | |- | 19 | [[Kullanıcı:Uncitoyen|Uncitoyen]] | align="center" | 5.685 | hizmetli |- | 20 | [[Kullanıcı:Vikiyılmaz|Vikiyılmaz]] | align="center" | 5.369 | |- | 21 | [[Kullanıcı:Sinek~trwiktionary|Sinek~trwiktionary]] | align="center" | 5.221 | |- | 22 | [[Kullanıcı:YZCTEK|YZCTEK]] | align="center" | 4.880 | |- | 23 | [[Kullanıcı:Vorhon|Vorhon]] | align="center" | 4.699 | |- | 24 | [[Kullanıcı:LA2|LA2]] | align="center" | 4.433 | |- | 25 | [[Kullanıcı:Apisite|Apisite]] | align="center" | 4.428 | |- | 26 | [[Kullanıcı:B5.101.222.187|B5.101.222.187]] | align="center" | 4.259 | |- | 27 | [[Kullanıcı:Kavurt|Kavurt]] | align="center" | 4.088 | |- | 28 | [[Kullanıcı:Vitruvian|Vitruvian]] | align="center" | 4.054 | |- | 29 | [[Kullanıcı:123snake45|123snake45]] | align="center" | 3.971 | |- | 30 | [[Kullanıcı:Alikiroglu61|Alikiroglu61]] | align="center" | 3.773 | |- | 31 | [[Kullanıcı:3210|3210]] | align="center" | 3.716 | |- | 32 | [[Kullanıcı:Goreno|Goreno]] | align="center" | 3.474 | |- | 33 | [[Kullanıcı:Runningfridgesrule|Runningfridgesrule]] | align="center" | 3.119 | |- | 34 | [[Kullanıcı:Reality006|Reality006]] | align="center" | 3.099 | |- | 35 | [[Kullanıcı:HâlitM|HâlitM]] | align="center" | 3.052 | |- | 36 | [[Kullanıcı:Ahmed922229|Ahmed922229]] | align="center" | 3.009 | |- | 37 | [[Kullanıcı:Barishan|Barishan]] | align="center" | 2.941 | |- | 38 | [[Kullanıcı:Ekrem691|Ekrem691]] | align="center" | 2.398 | |- | 39 | [[Kullanıcı:Esege|Esege]] | align="center" | 2.321 | |- | 40 | [[Kullanıcı:Ugur Basak|Ugur Basak]] | align="center" | 2.267 | |- | 41 | [[Kullanıcı:Gamlıbaykuş|Gamlıbaykuş]] | align="center" | 2.098 | |- | 42 | [[Kullanıcı:AML ZİYA AKYASAN|AML ZİYA AKYASAN]] | align="center" | 1.989 | |- | 43 | [[Kullanıcı:Entry62|Entry62]] | align="center" | 1.959 | |- | 44 | [[Kullanıcı:Magurale|Magurale]] | align="center" | 1.854 | |- | 45 | [[Kullanıcı:Sihl fatma|Sihl fatma]] | align="center" | 1.835 | |- | 46 | [[Kullanıcı:Don Alessandro|Don Alessandro]] | align="center" | 1.815 | |- | 47 | [[Kullanıcı:Burudet88|Burudet88]] | align="center" | 1.791 | |- | 48 | [[Kullanıcı:Şêr|Şêr]] | align="center" | 1.668 | |- | 49 | [[Kullanıcı:Abuk78|Abuk78]] | align="center" | 1.534 | |- | 50 | [[Kullanıcı:Göktürker|Göktürker]] | align="center" | 1.508 | |- | 51 | [[Kullanıcı:Flanoz|Flanoz]] | align="center" | 1.463 | |- | 52 | [[Kullanıcı:Sa'y|Sa'y]] | align="center" | 1.345 | |- | 53 | [[Kullanıcı:Mzekiu|Mzekiu]] | align="center" | 1.344 | |- | 54 | [[Kullanıcı:Samleml enes bilgin|Samleml enes bilgin]] | align="center" | 1.315 | |- | 55 | [[Kullanıcı:İbrahim alican|İbrahim alican]] | align="center" | 1.292 | |- | 56 | [[Kullanıcı:SİHL Gökhan|SİHL Gökhan]] | align="center" | 1.278 | |- | 57 | [[Kullanıcı:Nazendegül|Nazendegül]] | align="center" | 1.260 | |- | 58 | [[Kullanıcı:ליאון12|ליאון12]] | align="center" | 1.178 | |- | 59 | [[Kullanıcı:Semlaml110|Semlaml110]] | align="center" | 1.174 | |- | 60 | [[Kullanıcı:Ahmetaslan|Ahmetaslan]] | align="center" | 1.141 | |- | 61 | [[Kullanıcı:Kibele|Kibele]] | align="center" | 1.136 | |- | 62 | [[Kullanıcı:Wwww8888|Wwww8888]] | align="center" | 1.125 | |- | 63 | [[Kullanıcı:Kmlblg 332|Kmlblg 332]] | align="center" | 1.124 | |- | 64 | [[Kullanıcı:Lagrium|Lagrium]] | align="center" | 1.094 | |- | 65 | [[Kullanıcı:SİHL ALİ MUSA|SİHL ALİ MUSA]] | align="center" | 1.045 | |- | 66 | [[Kullanıcı:Ömer faruk çakmak|Ömer faruk çakmak]] | align="center" | 996 | |- | 67 | [[Kullanıcı:Aybeg|Aybeg]] | align="center" | 967 | |- | 68 | [[Kullanıcı:ВМНС|ВМНС]] | align="center" | 962 | |- | 69 | [[Kullanıcı:Almanbet Janışev|Almanbet Janışev]] | align="center" | 954 | |- | 70 | [[Kullanıcı:Seksen iki yüz kırk beş|Seksen iki yüz kırk beş]] | align="center" | 931 | |- | 71 | [[Kullanıcı:Maxa|Maxa]] | align="center" | 912 | |- | 72 | [[Kullanıcı:Wiamboo|Wiamboo]] | align="center" | 880 | |- | 73 | [[Kullanıcı:SİHL Menzulekumaş|SİHL Menzulekumaş]] | align="center" | 846 | |- | 74 | [[Kullanıcı:Melkorettin|Melkorettin]] | align="center" | 812 | |- | 75 | [[Kullanıcı:Yasemin|Yasemin]] | align="center" | 802 | |- | 76 | [[Kullanıcı:Peirep|Peirep]] | align="center" | 791 | |- | 77 | [[Kullanıcı:Jeuwre|Jeuwre]] | align="center" | 785 | |- | 78 | [[Kullanıcı:S.ihl.selmaaksoy|S.ihl.selmaaksoy]] | align="center" | 781 | |- | 79 | [[Kullanıcı:Gibranist|Gibranist]] | align="center" | 773 | |- | 80 | [[Kullanıcı:Kmlblgfatmanur|Kmlblgfatmanur]] | align="center" | 771 | |- | 81 | [[Kullanıcı:Asım Hoca|Asım Hoca]] | align="center" | 765 | |- | 82 | [[Kullanıcı:Malafaya|Malafaya]] | align="center" | 765 | |- | 83 | [[Kullanıcı:Hagvoda|Hagvoda]] | align="center" | 760 | |- | 84 | [[Kullanıcı:YosefHan7|YosefHan7]] | align="center" | 756 | |- | 85 | [[Kullanıcı:Mustafahoca|Mustafahoca]] | align="center" | 745 | |- | 86 | [[Kullanıcı:ZazaLejyoner|ZazaLejyoner]] | align="center" | 740 | |- | 87 | [[Kullanıcı:Sürmene aml ve eml yusufcakir|Sürmene aml ve eml yusufcakir]] | align="center" | 721 | |- | 88 | [[Kullanıcı:Mehmet-k61|Mehmet-k61]] | align="center" | 670 | |- | 89 | [[Kullanıcı:Sinus46|Sinus46]] | align="center" | 670 | |- | 90 | [[Kullanıcı:Kml serhan|Kml serhan]] | align="center" | 668 | |- | 91 | [[Kullanıcı:TrDAsh|TrDAsh]] | align="center" | 639 | |- | 92 | [[Kullanıcı:Itidal|Itidal]] | align="center" | 635 | |- | 93 | [[Kullanıcı:Ömerbysl|Ömerbysl]] | align="center" | 635 | |- | 94 | [[Kullanıcı:Chelik99|Chelik99]] | align="center" | 587 | |- | 95 | [[Kullanıcı:Mereyü|Mereyü]] | align="center" | 556 | |- | 96 | [[Kullanıcı:Octahedron80|Octahedron80]] | align="center" | 547 | |- | 97 | [[Kullanıcı:ALİ İHSAN KARAMAN|ALİ İHSAN KARAMAN]] | align="center" | 533 | |- | 98 | [[Kullanıcı:Gullerdiyari|Gullerdiyari]] | align="center" | 520 | |- | 99 | [[Kullanıcı:Yeniler|Yeniler]] | align="center" | 515 | |- | 100 | [[Kullanıcı:Andac20|Andac20]] | align="center" | 509 | |- | 101 | [[Kullanıcı:Dilyâresi|Dilyâresi]] | align="center" | 485 | |- | 102 | [[Kullanıcı:Nerepla Keskin|Nerepla Keskin]] | align="center" | 481 | |- | 103 | [[Kullanıcı:Berkucar0|Berkucar0]] | align="center" | 473 | |- | 104 | [[Kullanıcı:İsmetaydin|İsmetaydin]] | align="center" | 465 | |- | 105 | [[Kullanıcı:Sadmleml enes|Sadmleml enes]] | align="center" | 464 | |- | 106 | [[Kullanıcı:Condmatstrel|Condmatstrel]] | align="center" | 461 | |- | 107 | [[Kullanıcı:Wutsje|Wutsje]] | align="center" | 440 | |- | 108 | [[Kullanıcı:Lo Ximiendo|Lo Ximiendo]] | align="center" | 435 | |- | 109 | [[Kullanıcı:Kml znnt|Kml znnt]] | align="center" | 430 | |- | 110 | [[Kullanıcı:CommonsDelinker|CommonsDelinker]] | align="center" | 423 | |- | 111 | [[Kullanıcı:Kendim|Kendim]] | align="center" | 418 | |- | 112 | [[Kullanıcı:Pathoschild|Pathoschild]] | align="center" | 413 | |- | 113 | [[Kullanıcı:Kemal.KURBAN|Kemal.KURBAN]] | align="center" | 413 | |- | 114 | [[Kullanıcı:Merbeg|Merbeg]] | align="center" | 410 | |- | 115 | [[Kullanıcı:Hamzahoca|Hamzahoca]] | align="center" | 405 | |- | 116 | [[Kullanıcı:AHMET AYSOY|AHMET AYSOY]] | align="center" | 393 | |- | 117 | [[Kullanıcı:Sihl ayhan|Sihl ayhan]] | align="center" | 385 | |- | 118 | [[Kullanıcı:A.d.m.l.ve.e.m.lmuhammet alican|A.d.m.l.ve.e.m.lmuhammet alican]] | align="center" | 383 | |- | 119 | [[Kullanıcı:Kvazimodo|Kvazimodo]] | align="center" | 381 | |- | 120 | [[Kullanıcı:Muhammet yardım|Muhammet yardım]] | align="center" | 378 | |- | 121 | [[Kullanıcı:Egemensen~trwiktionary|Egemensen~trwiktionary]] | align="center" | 376 | |- | 122 | [[Kullanıcı:Johnny281993|Johnny281993]] | align="center" | 376 | |- | 123 | [[Kullanıcı:Türkçe|Türkçe]] | align="center" | 368 | |- | 124 | [[Kullanıcı:Vito Genovese|Vito Genovese]] | align="center" | 365 | |- | 125 | [[Kullanıcı:Ata Kemal|Ata Kemal]] | align="center" | 365 | |- | 126 | [[Kullanıcı:Yunus Emre Biçer|Yunus Emre Biçer]] | align="center" | 364 | |- | 127 | [[Kullanıcı:ToprakM|ToprakM]] | align="center" | 364 | |- | 128 | [[Kullanıcı:Bm|Bm]] | align="center" | 347 | |- | 129 | [[Kullanıcı:Ampouble|Ampouble]] | align="center" | 343 | |- | 130 | [[Kullanıcı:SLÖzlem|SLÖzlem]] | align="center" | 343 | |- | 131 | [[Kullanıcı:S.orsev.ayşe kibaroğlu|S.orsev.ayşe kibaroğlu]] | align="center" | 341 | |- | 132 | [[Kullanıcı:MelekArı|MelekArı]] | align="center" | 336 | |- | 133 | [[Kullanıcı:Tegel|Tegel]] | align="center" | 313 | |- | 134 | [[Kullanıcı:The cat|The cat]] | align="center" | 311 | |- | 135 | [[Kullanıcı:SAL 378|SAL 378]] | align="center" | 305 | |- | 136 | [[Kullanıcı:Saml livess 61|Saml livess 61]] | align="center" | 297 | |- | 137 | [[Kullanıcı:Guljan|Guljan]] | align="center" | 296 | |- | 138 | [[Kullanıcı:Kmlblg272|Kmlblg272]] | align="center" | 292 | |- | 139 | [[Kullanıcı:SLDerya|SLDerya]] | align="center" | 292 | |- | 140 | [[Kullanıcı:Srhat|Srhat]] | align="center" | 285 | |- | 141 | [[Kullanıcı:2004onuralp|2004onuralp]] | align="center" | 285 | |- | 142 | [[Kullanıcı:Swam pl|Swam pl]] | align="center" | 284 | |- | 143 | [[Kullanıcı:Kml ibrahim|Kml ibrahim]] | align="center" | 275 | |- | 144 | [[Kullanıcı:MSchoentgen|MSchoentgen]] | align="center" | 274 | |- | 145 | [[Kullanıcı:Underfell Flowey|Underfell Flowey]] | align="center" | 270 | |- | 146 | [[Kullanıcı:Dbl2010|Dbl2010]] | align="center" | 264 | |- | 147 | [[Kullanıcı:Funda|Funda]] | align="center" | 260 | |- | 148 | [[Kullanıcı:Kebab in my butt|Kebab in my butt]] | align="center" | 260 | |- | 149 | [[Kullanıcı:Biyolojiyabikurdi|Biyolojiyabikurdi]] | align="center" | 258 | |- | 150 | [[Kullanıcı:Arhancelo|Arhancelo]] | align="center" | 256 | |- | 151 | [[Kullanıcı:SLnuray|SLnuray]] | align="center" | 251 | |- | 152 | [[Kullanıcı:Gilthuanas|Gilthuanas]] | align="center" | 250 | |- | 153 | [[Kullanıcı:Yorınçga573|Yorınçga573]] | align="center" | 249 | |- | 154 | [[Kullanıcı:SL.resul akyıldız|SL.resul akyıldız]] | align="center" | 247 | |- | 155 | [[Kullanıcı:SLözgül|SLözgül]] | align="center" | 246 | |- | 156 | [[Kullanıcı:Azxpetro|Azxpetro]] | align="center" | 244 | |- | 157 | [[Kullanıcı:Determinator|Determinator]] | align="center" | 243 | |- | 158 | [[Kullanıcı:Серк.123|Серк.123]] | align="center" | 243 | |- | 159 | [[Kullanıcı:Ceaeven|Ceaeven]] | align="center" | 240 | |- | 160 | [[Kullanıcı:Sihl gülten deveci|Sihl gülten deveci]] | align="center" | 237 | |- | 161 | [[Kullanıcı:Axbyc|Axbyc]] | align="center" | 236 | |- | 162 | [[Kullanıcı:Superyetkin|Superyetkin]] | align="center" | 235 | arayüz yöneticisi |- | 163 | [[Kullanıcı:Wikihez|Wikihez]] | align="center" | 228 | |- | 164 | [[Kullanıcı:SLFatma|SLFatma]] | align="center" | 227 | |- | 165 | [[Kullanıcı:Kmlblg240|Kmlblg240]] | align="center" | 224 | |- | 166 | [[Kullanıcı:Erdemaslancan|Erdemaslancan]] | align="center" | 224 | |- | 167 | [[Kullanıcı:Stml 172|Stml 172]] | align="center" | 220 | |- | 168 | [[Kullanıcı:SLUğurcan|SLUğurcan]] | align="center" | 219 | |- | 169 | [[Kullanıcı:Deknuydt|Deknuydt]] | align="center" | 217 | |- | 170 | [[Kullanıcı:Kwamikagami|Kwamikagami]] | align="center" | 212 | |- | 171 | [[Kullanıcı:Axis09|Axis09]] | align="center" | 210 | |- | 172 | [[Kullanıcı:OSMAN ÇAVUŞLU|OSMAN ÇAVUŞLU]] | align="center" | 209 | |- | 173 | [[Kullanıcı:Public class|Public class]] | align="center" | 208 | |- | 174 | [[Kullanıcı:Aivasedo|Aivasedo]] | align="center" | 205 | |- | 175 | [[Kullanıcı:Sal 390|Sal 390]] | align="center" | 203 | |- | 176 | [[Kullanıcı:Onuralpateş2004|Onuralpateş2004]] | align="center" | 202 | |- | 177 | [[Kullanıcı:Aslan yakup|Aslan yakup]] | align="center" | 197 | |- | 178 | [[Kullanıcı:SLebru|SLebru]] | align="center" | 197 | |- | 179 | [[Kullanıcı:Sal-zeynep|Sal-zeynep]] | align="center" | 196 | |- | 180 | [[Kullanıcı:SLRahman|SLRahman]] | align="center" | 194 | |- | 181 | [[Kullanıcı:Chapultepec|Chapultepec]] | align="center" | 193 | |- | 182 | [[Kullanıcı:Trong Dang|Trong Dang]] | align="center" | 192 | |- | 183 | [[Kullanıcı:Syum90|Syum90]] | align="center" | 185 | |- | 184 | [[Kullanıcı:NURULLAH GÜLDAL|NURULLAH GÜLDAL]] | align="center" | 183 | |- | 185 | [[Kullanıcı:Vikiçizer|Vikiçizer]] | align="center" | 182 | |- | 186 | [[Kullanıcı:MehmedKM|MehmedKM]] | align="center" | 182 | |- | 187 | [[Kullanıcı:Bikarhêner|Bikarhêner]] | align="center" | 180 | |- | 188 | [[Kullanıcı:Şaşılık|Şaşılık]] | align="center" | 179 | |- | 189 | [[Kullanıcı:Felecita|Felecita]] | align="center" | 176 | |- | 190 | [[Kullanıcı:Ddenkel~trwiktionary|Ddenkel~trwiktionary]] | align="center" | 175 | |- | 191 | [[Kullanıcı:Sezinumaykucuk|Sezinumaykucuk]] | align="center" | 175 | |- | 192 | [[Kullanıcı:Sallapattias|Sallapattias]] | align="center" | 171 | |- | 193 | [[Kullanıcı:SLburhantuncer|SLburhantuncer]] | align="center" | 168 | |- | 194 | [[Kullanıcı:Bahattin|Bahattin]] | align="center" | 168 | |- | 195 | [[Kullanıcı:Kml suleakguc|Kml suleakguc]] | align="center" | 167 | |- | 196 | [[Kullanıcı:Sihl ASİYE|Sihl ASİYE]] | align="center" | 167 | |- | 197 | [[Kullanıcı:Mehmetkasımay|Mehmetkasımay]] | align="center" | 165 | |- | 198 | [[Kullanıcı:SLfatma254|SLfatma254]] | align="center" | 163 | |- | 199 | [[Kullanıcı:Yko 235|Yko 235]] | align="center" | 162 | |- | 200 | [[Kullanıcı:Stml 158|Stml 158]] | align="center" | 159 | |- | 201 | [[Kullanıcı:Stml 121|Stml 121]] | align="center" | 156 | |- | 202 | [[Kullanıcı:SLEngin|SLEngin]] | align="center" | 154 | |- | 203 | [[Kullanıcı:Serdar62|Serdar62]] | align="center" | 154 | |- | 204 | [[Kullanıcı:Terryclient|Terryclient]] | align="center" | 151 | |- | 205 | [[Kullanıcı:Czeski Wratek|Czeski Wratek]] | align="center" | 151 | |- | 206 | [[Kullanıcı:Calq|Calq]] | align="center" | 148 | |- | 207 | [[Kullanıcı:Sihl Ramazan Erdöl|Sihl Ramazan Erdöl]] | align="center" | 146 | |- | 208 | [[Kullanıcı:Drabdullayev17|Drabdullayev17]] | align="center" | 140 | |- | 209 | [[Kullanıcı:Lionel Cristiano|Lionel Cristiano]] | align="center" | 139 | |- | 210 | [[Kullanıcı:Hasan Sami|Hasan Sami]] | align="center" | 138 | |- | 211 | [[Kullanıcı:Abuk SABUK|Abuk SABUK]] | align="center" | 138 | |- | 212 | [[Kullanıcı:Dilci|Dilci]] | align="center" | 137 | |- | 213 | [[Kullanıcı:Matiia|Matiia]] | align="center" | 137 | |- | 214 | [[Kullanıcı:SİHL İSA ELER|SİHL İSA ELER]] | align="center" | 135 | |- | 215 | [[Kullanıcı:Ata Kemal Ayaser|Ata Kemal Ayaser]] | align="center" | 135 | |- | 216 | [[Kullanıcı:Emperyan|Emperyan]] | align="center" | 135 | |- | 217 | [[Kullanıcı:Lou|Lou]] | align="center" | 133 | |- | 218 | [[Kullanıcı:Rolby|Rolby]] | align="center" | 133 | |- | 219 | [[Kullanıcı:Peter Berbe|Peter Berbe]] | align="center" | 133 | |- | 220 | [[Kullanıcı:Eminovič|Eminovič]] | align="center" | 132 | |- | 221 | [[Kullanıcı:Hdayetozsoy|Hdayetozsoy]] | align="center" | 131 | |- | 222 | [[Kullanıcı:Fankibiber|Fankibiber]] | align="center" | 129 | |- | 223 | [[Kullanıcı:GerardM|GerardM]] | align="center" | 125 | |- | 224 | [[Kullanıcı:Ka dir 641|Ka dir 641]] | align="center" | 125 | |- | 225 | [[Kullanıcı:Mesutbolukbas|Mesutbolukbas]] | align="center" | 124 | |- | 226 | [[Kullanıcı:SLemine607 10D|SLemine607 10D]] | align="center" | 122 | |- | 227 | [[Kullanıcı:Tarihçi Selo|Tarihçi Selo]] | align="center" | 120 | |- | 228 | [[Kullanıcı:Lambiam|Lambiam]] | align="center" | 120 | |- | 229 | [[Kullanıcı:Dodecaplex|Dodecaplex]] | align="center" | 120 | |- | 230 | [[Kullanıcı:Vay~trwiktionary|Vay~trwiktionary]] | align="center" | 119 | |- | 231 | [[Kullanıcı:Yavuz Atasever|Yavuz Atasever]] | align="center" | 118 | |- | 232 | [[Kullanıcı:Metal Militia|Metal Militia]] | align="center" | 117 | |- | 233 | [[Kullanıcı:Aarp65|Aarp65]] | align="center" | 117 | |- | 234 | [[Kullanıcı:Eyüp Türküm|Eyüp Türküm]] | align="center" | 117 | |- | 235 | [[Kullanıcı:Kalem.metin|Kalem.metin]] | align="center" | 117 | |- | 236 | [[Kullanıcı:Mario The PS2 Guy|Mario The PS2 Guy]] | align="center" | 117 | |- | 237 | [[Kullanıcı:Meyegon|Meyegon]] | align="center" | 115 | |- | 238 | [[Kullanıcı:Cûndûllah el-Kurdî|Cûndûllah el-Kurdî]] | align="center" | 115 | |- | 239 | [[Kullanıcı:Minorax|Minorax]] | align="center" | 115 | |- | 240 | [[Kullanıcı:Baris6161TURK|Baris6161TURK]] | align="center" | 113 | |- | 241 | [[Kullanıcı:Kml 207aysegül|Kml 207aysegül]] | align="center" | 112 | |- | 242 | [[Kullanıcı:SLseda|SLseda]] | align="center" | 111 | |- | 243 | [[Kullanıcı:Kmoksy|Kmoksy]] | align="center" | 111 | |- | 244 | [[Kullanıcı:LesChloroformistes|LesChloroformistes]] | align="center" | 110 | |- | 245 | [[Kullanıcı:Ladsgroup|Ladsgroup]] | align="center" | 109 | |- | 246 | [[Kullanıcı:Müntesib|Müntesib]] | align="center" | 109 | |- | 247 | [[Kullanıcı:Kmlrbabalik|Kmlrbabalik]] | align="center" | 108 | |- | 248 | [[Kullanıcı:Kmlblg86|Kmlblg86]] | align="center" | 108 | |- | 249 | [[Kullanıcı:S htk 117|S htk 117]] | align="center" | 105 | |- | 250 | [[Kullanıcı:SLGamze|SLGamze]] | align="center" | 105 | |- | 251 | [[Kullanıcı:Doğru Tercüman|Doğru Tercüman]] | align="center" | 105 | |- | 252 | [[Kullanıcı:Küçükdere iöo gülay|Küçükdere iöo gülay]] | align="center" | 104 | |- | 253 | [[Kullanıcı:Gülşah|Gülşah]] | align="center" | 102 | |- | 254 | [[Kullanıcı:Balamax|Balamax]] | align="center" | 102 | |- | 255 | [[Kullanıcı:Ormanbotanigi|Ormanbotanigi]] | align="center" | 101 | |- | 256 | [[Kullanıcı:Stml 176|Stml 176]] | align="center" | 101 | |- | 257 | [[Kullanıcı:Stml 165|Stml 165]] | align="center" | 101 | |- | 258 | [[Kullanıcı:Kmlblg399|Kmlblg399]] | align="center" | 100 | |- | 259 | [[Kullanıcı:Nerval|Nerval]] | align="center" | 99 | |- | 260 | [[Kullanıcı:Stml 72|Stml 72]] | align="center" | 98 | |- | 261 | [[Kullanıcı:Stryn|Stryn]] | align="center" | 97 | |- | 262 | [[Kullanıcı:Küçükdere iöo sinan|Küçükdere iöo sinan]] | align="center" | 96 | |- | 263 | [[Kullanıcı:Dünya vatandaşı|Dünya vatandaşı]] | align="center" | 95 | |- | 264 | [[Kullanıcı:Muhammet yazıcı|Muhammet yazıcı]] | align="center" | 95 | |- | 265 | [[Kullanıcı:SİHL 729|SİHL 729]] | align="center" | 95 | |- | 266 | [[Kullanıcı:Xorasan|Xorasan]] | align="center" | 95 | |- | 267 | [[Kullanıcı:Fiilçeker|Fiilçeker]] | align="center" | 94 | |- | 268 | [[Kullanıcı:RadiX|RadiX]] | align="center" | 94 | |- | 269 | [[Kullanıcı:Muallim Fatih|Muallim Fatih]] | align="center" | 94 | |- | 270 | [[Kullanıcı:Marrovi|Marrovi]] | align="center" | 94 | |- | 271 | [[Kullanıcı:Spacebirdy|Spacebirdy]] | align="center" | 93 | |- | 272 | [[Kullanıcı:MhmtÖ|MhmtÖ]] | align="center" | 93 | |- | 273 | [[Kullanıcı:Berr.in|Berr.in]] | align="center" | 92 | |- | 274 | [[Kullanıcı:SL-busenur.523|SL-busenur.523]] | align="center" | 91 | |- | 275 | [[Kullanıcı:SLİpek|SLİpek]] | align="center" | 90 | |- | 276 | [[Kullanıcı:Kmlblgözlem|Kmlblgözlem]] | align="center" | 89 | |- | 277 | [[Kullanıcı:Cavlak-FS|Cavlak-FS]] | align="center" | 88 | |- | 278 | [[Kullanıcı:Azminwan|Azminwan]] | align="center" | 87 | |- | 279 | [[Kullanıcı:Moonpulsar|Moonpulsar]] | align="center" | 87 | |- | 280 | [[Kullanıcı:Stml 171|Stml 171]] | align="center" | 86 | |- | 281 | [[Kullanıcı:Turkmen|Turkmen]] | align="center" | 85 | |- | 282 | [[Kullanıcı:Xyz...|Xyz...]] | align="center" | 84 | |- | 283 | [[Kullanıcı:Stml 117|Stml 117]] | align="center" | 83 | |- | 284 | [[Kullanıcı:Juliancolton|Juliancolton]] | align="center" | 81 | |- | 285 | [[Kullanıcı:Ludwig20|Ludwig20]] | align="center" | 81 | |- | 286 | [[Kullanıcı:2004ateş|2004ateş]] | align="center" | 81 | |- | 287 | [[Kullanıcı:Süleymanbedir|Süleymanbedir]] | align="center" | 80 | |- | 288 | [[Kullanıcı:Kıdemli|Kıdemli]] | align="center" | 80 | |- | 289 | [[Kullanıcı:Karabat Kuşu|Karabat Kuşu]] | align="center" | 79 | |- | 290 | [[Kullanıcı:SAML VE EML CEMİL BAYRAM|SAML VE EML CEMİL BAYRAM]] | align="center" | 79 | |- | 291 | [[Kullanıcı:Semlaml111|Semlaml111]] | align="center" | 79 | |- | 292 | [[Kullanıcı:SEML Turan ÇAKIR|SEML Turan ÇAKIR]] | align="center" | 78 | |- | 293 | [[Kullanıcı:Küçükdere iöo celilakyürek|Küçükdere iöo celilakyürek]] | align="center" | 78 | |- | 294 | [[Kullanıcı:SLemine613|SLemine613]] | align="center" | 78 | |- | 295 | [[Kullanıcı:Dokuz sekiz|Dokuz sekiz]] | align="center" | 78 | |- | 296 | [[Kullanıcı:Sayonzei|Sayonzei]] | align="center" | 78 | |- | 297 | [[Kullanıcı:İlhanbiskin|İlhanbiskin]] | align="center" | 77 | |- | 298 | [[Kullanıcı:İsmailhoca|İsmailhoca]] | align="center" | 77 | |- | 299 | [[Kullanıcı:Kmlblg80|Kmlblg80]] | align="center" | 77 | |- | 300 | [[Kullanıcı:Masseman|Masseman]] | align="center" | 76 | |- | 301 | [[Kullanıcı:Ridvanu|Ridvanu]] | align="center" | 75 | |- | 302 | [[Kullanıcı:Ege yalcin~trwiktionary|Ege yalcin~trwiktionary]] | align="center" | 75 | |- | 303 | [[Kullanıcı:İbrhm.kuru|İbrhm.kuru]] | align="center" | 73 | |- | 304 | [[Kullanıcı:Mustafa Eşitgen|Mustafa Eşitgen]] | align="center" | 73 | |- | 305 | [[Kullanıcı:Fagus|Fagus]] | align="center" | 73 | |- | 306 | [[Kullanıcı:SL Pelin|SL Pelin]] | align="center" | 72 | |- | 307 | [[Kullanıcı:Seninbey~trwiktionary|Seninbey~trwiktionary]] | align="center" | 72 | |- | 308 | [[Kullanıcı:EmrahÖ|EmrahÖ]] | align="center" | 72 | |- | 309 | [[Kullanıcı:BitikciKebbenek|BitikciKebbenek]] | align="center" | 72 | |- | 310 | [[Kullanıcı:Emree4|Emree4]] | align="center" | 71 | |- | 311 | [[Kullanıcı:Kontrolcu|Kontrolcu]] | align="center" | 71 | |- | 312 | [[Kullanıcı:Nebra|Nebra]] | align="center" | 71 | |- | 313 | [[Kullanıcı:Pembe karadeniz|Pembe karadeniz]] | align="center" | 71 | |- | 314 | [[Kullanıcı:Stml 147|Stml 147]] | align="center" | 70 | |- | 315 | [[Kullanıcı:SEMLNazımKURŞUN|SEMLNazımKURŞUN]] | align="center" | 70 | |- | 316 | [[Kullanıcı:Giresunlu1993|Giresunlu1993]] | align="center" | 70 | |- | 317 | [[Kullanıcı:Plenumchamber~trwiktionary|Plenumchamber~trwiktionary]] | align="center" | 69 | |- | 318 | [[Kullanıcı:~2026-19042-98|~2026-19042-98]] | align="center" | 69 | |- | 319 | [[Kullanıcı:Rock on She|Rock on She]] | align="center" | 67 | |- | 320 | [[Kullanıcı:SLSerkan|SLSerkan]] | align="center" | 65 | |- | 321 | [[Kullanıcı:Karduelis|Karduelis]] | align="center" | 65 | |- | 322 | [[Kullanıcı:Evrenkoruyan|Evrenkoruyan]] | align="center" | 64 | |- | 323 | [[Kullanıcı:Adanalınacak|Adanalınacak]] | align="center" | 64 | |- | 324 | [[Kullanıcı:Zontollektuel|Zontollektuel]] | align="center" | 64 | |- | 325 | [[Kullanıcı:Hapşu|Hapşu]] | align="center" | 63 | |- | 326 | [[Kullanıcı:Dixtosa|Dixtosa]] | align="center" | 63 | |- | 327 | [[Kullanıcı:El.wikt.user|El.wikt.user]] | align="center" | 62 | |- | 328 | [[Kullanıcı:SL özge üstün|SL özge üstün]] | align="center" | 62 | |- | 329 | [[Kullanıcı:Sal hasanilhan|Sal hasanilhan]] | align="center" | 61 | |- | 330 | [[Kullanıcı:Prenses|Prenses]] | align="center" | 60 | |- | 331 | [[Kullanıcı:Tofeiku|Tofeiku]] | align="center" | 60 | |- | 332 | [[Kullanıcı:Sihl Murat|Sihl Murat]] | align="center" | 59 | |- | 333 | [[Kullanıcı:Renamed user 1e23409a06e0b7922c2dfc98dde51974|Renamed user 1e23409a06e0b7922c2dfc98dde51974]] | align="center" | 59 | |- | 334 | [[Kullanıcı:Arnavutsezgin|Arnavutsezgin]] | align="center" | 58 | |- | 335 | [[Kullanıcı:Erkan Yilmaz|Erkan Yilmaz]] | align="center" | 58 | |- | 336 | [[Kullanıcı:Galibibülent|Galibibülent]] | align="center" | 57 | |- | 337 | [[Kullanıcı:S.orsev.dilek soydan|S.orsev.dilek soydan]] | align="center" | 57 | |- | 338 | [[Kullanıcı:Stml 183|Stml 183]] | align="center" | 57 | |- | 339 | [[Kullanıcı:Buzulkuşu|Buzulkuşu]] | align="center" | 57 | |- | 340 | [[Kullanıcı:Spanier|Spanier]] | align="center" | 57 | |- | 341 | [[Kullanıcı:LejyonerZaza|LejyonerZaza]] | align="center" | 57 | |- | 342 | [[Kullanıcı:SAL 329|SAL 329]] | align="center" | 56 | |- | 343 | [[Kullanıcı:S htk 428|S htk 428]] | align="center" | 56 | |- | 344 | [[Kullanıcı:Stml 161|Stml 161]] | align="center" | 56 | |- | 345 | [[Kullanıcı:HASAN ÖZGÜREN EML|HASAN ÖZGÜREN EML]] | align="center" | 56 | |- | 346 | [[Kullanıcı:SLesra|SLesra]] | align="center" | 56 | |- | 347 | [[Kullanıcı:SLhalit540|SLhalit540]] | align="center" | 56 | |- | 348 | [[Kullanıcı:Stultiwikia|Stultiwikia]] | align="center" | 56 | |- | 349 | [[Kullanıcı:LisafBia|LisafBia]] | align="center" | 56 | |- | 350 | [[Kullanıcı:Quinlan83|Quinlan83]] | align="center" | 56 | |- | 351 | [[Kullanıcı:Şegirt|Şegirt]] | align="center" | 56 | |- | 352 | [[Kullanıcı:TAKASUGI Shinji|TAKASUGI Shinji]] | align="center" | 55 | |- | 353 | [[Kullanıcı:Sarvaturi~trwiktionary|Sarvaturi~trwiktionary]] | align="center" | 55 | |- | 354 | [[Kullanıcı:Ks.Tahd|Ks.Tahd]] | align="center" | 55 | |- | 355 | [[Kullanıcı:Darkhorn~trwiktionary|Darkhorn~trwiktionary]] | align="center" | 54 | |- | 356 | [[Kullanıcı:Samleml özgür aydın|Samleml özgür aydın]] | align="center" | 53 | |- | 357 | [[Kullanıcı:Elvire|Elvire]] | align="center" | 53 | |- | 358 | [[Kullanıcı:İmmortalance|İmmortalance]] | align="center" | 53 | |- | 359 | [[Kullanıcı:Tehonk|Tehonk]] | align="center" | 53 | |- | 360 | [[Kullanıcı:NotBot|NotBot]] | align="center" | 52 | |- | 361 | [[Kullanıcı:SHTK.ARZU|SHTK.ARZU]] | align="center" | 52 | |- | 362 | [[Kullanıcı:SLOĞUZHAN|SLOĞUZHAN]] | align="center" | 52 | |- | 363 | [[Kullanıcı:WikimediaNotifier|WikimediaNotifier]] | align="center" | 52 | |- | 364 | [[Kullanıcı:Gufosowa|Gufosowa]] | align="center" | 52 | |- | 365 | [[Kullanıcı:たまほめ|たまほめ]] | align="center" | 51 | |- | 366 | [[Kullanıcı:Tembelejderha|Tembelejderha]] | align="center" | 50 | |- | 367 | [[Kullanıcı:Kml Nurcan|Kml Nurcan]] | align="center" | 50 | |- | 368 | [[Kullanıcı:Elton|Elton]] | align="center" | 50 | |- | 369 | [[Kullanıcı:Ozgurhatic|Ozgurhatic]] | align="center" | 50 | |- | 370 | [[Kullanıcı:Tıbbiye|Tıbbiye]] | align="center" | 50 | |- | 371 | [[Kullanıcı:Sepkenki|Sepkenki]] | align="center" | 50 | |- | 372 | [[Kullanıcı:Świętokrzyskie3|Świętokrzyskie3]] | align="center" | 50 | |- | 373 | [[Kullanıcı:Stml 188|Stml 188]] | align="center" | 48 | |- | 374 | [[Kullanıcı:Maderibeyza|Maderibeyza]] | align="center" | 48 | |- | 375 | [[Kullanıcı:Müftülükarif|Müftülükarif]] | align="center" | 48 | |- | 376 | [[Kullanıcı:Spl908455|Spl908455]] | align="center" | 48 | |- | 377 | [[Kullanıcı:Gökçe Yörük|Gökçe Yörük]] | align="center" | 48 | |- | 378 | [[Kullanıcı:Greywolf28|Greywolf28]] | align="center" | 48 | |- | 379 | [[Kullanıcı:Sal ruveyda|Sal ruveyda]] | align="center" | 47 | |- | 380 | [[Kullanıcı:S htk 145|S htk 145]] | align="center" | 47 | |- | 381 | [[Kullanıcı:Cmrncntn|Cmrncntn]] | align="center" | 47 | |- | 382 | [[Kullanıcı:Doruk Salancı~trwiktionary|Doruk Salancı~trwiktionary]] | align="center" | 46 | |- | 383 | [[Kullanıcı:Seml abdullah ege|Seml abdullah ege]] | align="center" | 46 | |- | 384 | [[Kullanıcı:SACAK ALİFATİH|SACAK ALİFATİH]] | align="center" | 46 | |- | 385 | [[Kullanıcı:Adml polat çelik 156|Adml polat çelik 156]] | align="center" | 46 | |- | 386 | [[Kullanıcı:Luckas Blade|Luckas Blade]] | align="center" | 46 | |- | 387 | [[Kullanıcı:BurstPower|BurstPower]] | align="center" | 46 | |- | 388 | [[Kullanıcı:Lord Leatherface~trwiktionary|Lord Leatherface~trwiktionary]] | align="center" | 45 | |- | 389 | [[Kullanıcı:Mambet|Mambet]] | align="center" | 45 | |- | 390 | [[Kullanıcı:Öz Türkçe|Öz Türkçe]] | align="center" | 45 | |- | 391 | [[Kullanıcı:JAn Dudík|JAn Dudík]] | align="center" | 45 | |- | 392 | [[Kullanıcı:Billinghurst|Billinghurst]] | align="center" | 45 | |- | 393 | [[Kullanıcı:Praxidicae|Praxidicae]] | align="center" | 45 | |- | 394 | [[Kullanıcı:MathXplore|MathXplore]] | align="center" | 45 | |- | 395 | [[Kullanıcı:Etimoloji|Etimoloji]] | align="center" | 45 | |- | 396 | [[Kullanıcı:Zbutie3.14|Zbutie3.14]] | align="center" | 45 | |- | 397 | [[Kullanıcı:Brightt11|Brightt11]] | align="center" | 45 | |- | 398 | [[Kullanıcı:Anon0004|Anon0004]] | align="center" | 45 | |- | 399 | [[Kullanıcı:Sunshine23|Sunshine23]] | align="center" | 44 | |- | 400 | [[Kullanıcı:BD2412|BD2412]] | align="center" | 44 | |- | 401 | [[Kullanıcı:Wisar12|Wisar12]] | align="center" | 44 | |- | 402 | [[Kullanıcı:Turkittihadcemiyeti|Turkittihadcemiyeti]] | align="center" | 44 | |- | 403 | [[Kullanıcı:Hoo man|Hoo man]] | align="center" | 43 | |- | 404 | [[Kullanıcı:Ghybu|Ghybu]] | align="center" | 43 | |- | 405 | [[Kullanıcı:Zolgoyo|Zolgoyo]] | align="center" | 43 | |- | 406 | [[Kullanıcı:Aktas5561|Aktas5561]] | align="center" | 42 | |- | 407 | [[Kullanıcı:Wiki13|Wiki13]] | align="center" | 42 | |- | 408 | [[Kullanıcı:Alexander Mikhalenko|Alexander Mikhalenko]] | align="center" | 42 | |- | 409 | [[Kullanıcı:Orsev.i.o.ayşe kibaroğlu|Orsev.i.o.ayşe kibaroğlu]] | align="center" | 41 | |- | 410 | [[Kullanıcı:Stml 168|Stml 168]] | align="center" | 41 | |- | 411 | [[Kullanıcı:Sihl selim|Sihl selim]] | align="center" | 41 | |- | 412 | [[Kullanıcı:V. Doğan Günay~trwiktionary|V. Doğan Günay~trwiktionary]] | align="center" | 41 | |- | 413 | [[Kullanıcı:Filanca|Filanca]] | align="center" | 41 | |- | 414 | [[Kullanıcı:Nurettincerek|Nurettincerek]] | align="center" | 41 | |- | 415 | [[Kullanıcı:Umitduranist|Umitduranist]] | align="center" | 41 | |- | 416 | [[Kullanıcı:Wentayan|Wentayan]] | align="center" | 41 | |- | 417 | [[Kullanıcı:Ahmetcatalkaya|Ahmetcatalkaya]] | align="center" | 40 | |- | 418 | [[Kullanıcı:Ahulusi|Ahulusi]] | align="center" | 40 | |- | 419 | [[Kullanıcı:Savh|Savh]] | align="center" | 40 | |- | 420 | [[Kullanıcı:Bulgu|Bulgu]] | align="center" | 40 | |- | 421 | [[Kullanıcı:Dijan|Dijan]] | align="center" | 39 | |- | 422 | [[Kullanıcı:Saçak fatmamandirali|Saçak fatmamandirali]] | align="center" | 39 | |- | 423 | [[Kullanıcı:Yabancı|Yabancı]] | align="center" | 39 | |- | 424 | [[Kullanıcı:Cekli829|Cekli829]] | align="center" | 39 | |- | 425 | [[Kullanıcı:Vanished user Xorisdtbdfgonugyfs|Vanished user Xorisdtbdfgonugyfs]] | align="center" | 39 | |- | 426 | [[Kullanıcı:Mathonius|Mathonius]] | align="center" | 39 | |- | 427 | [[Kullanıcı:FocalPoint|FocalPoint]] | align="center" | 39 | |- | 428 | [[Kullanıcı:Vincent Vega|Vincent Vega]] | align="center" | 39 | |- | 429 | [[Kullanıcı:Samuele2002|Samuele2002]] | align="center" | 39 | |- | 430 | [[Kullanıcı:CanerDemirci281993|CanerDemirci281993]] | align="center" | 39 | |- | 431 | [[Kullanıcı:Eusbarbosa|Eusbarbosa]] | align="center" | 38 | |- | 432 | [[Kullanıcı:Açak osman|Açak osman]] | align="center" | 38 | |- | 433 | [[Kullanıcı:Araklı|Araklı]] | align="center" | 38 | |- | 434 | [[Kullanıcı:Oylm mat|Oylm mat]] | align="center" | 37 | |- | 435 | [[Kullanıcı:Yalhi|Yalhi]] | align="center" | 37 | |- | 436 | [[Kullanıcı:Admlmuhammet alican|Admlmuhammet alican]] | align="center" | 37 | |- | 437 | [[Kullanıcı:SLHakan|SLHakan]] | align="center" | 37 | |- | 438 | [[Kullanıcı:JackPotte|JackPotte]] | align="center" | 37 | |- | 439 | [[Kullanıcı:Onkaimeon|Onkaimeon]] | align="center" | 37 | |- | 440 | [[Kullanıcı:Vanished user 127237|Vanished user 127237]] | align="center" | 37 | |- | 441 | [[Kullanıcı:Aabdullayev851|Aabdullayev851]] | align="center" | 37 | |- | 442 | [[Kullanıcı:Wooze|Wooze]] | align="center" | 37 | |- | 443 | [[Kullanıcı:YBK4|YBK4]] | align="center" | 37 | |- | 444 | [[Kullanıcı:Ykio emelaydın|Ykio emelaydın]] | align="center" | 36 | |- | 445 | [[Kullanıcı:S htk 612|S htk 612]] | align="center" | 36 | |- | 446 | [[Kullanıcı:Flyax|Flyax]] | align="center" | 36 | |- | 447 | [[Kullanıcı:Manco Capac|Manco Capac]] | align="center" | 36 | |- | 448 | [[Kullanıcı:Joseph|Joseph]] | align="center" | 36 | |- | 449 | [[Kullanıcı:Zuzumaykut|Zuzumaykut]] | align="center" | 36 | |- | 450 | [[Kullanıcı:Goktr001|Goktr001]] | align="center" | 36 | |- | 451 | [[Kullanıcı:Rxy|Rxy]] | align="center" | 36 | |- | 452 | [[Kullanıcı:MPF|MPF]] | align="center" | 36 | |- | 453 | [[Kullanıcı:Alperen|Alperen]] | align="center" | 35 | |- | 454 | [[Kullanıcı:S htk 186|S htk 186]] | align="center" | 35 | |- | 455 | [[Kullanıcı:Yonca573|Yonca573]] | align="center" | 35 | |- | 456 | [[Kullanıcı:Tapio Toola|Tapio Toola]] | align="center" | 35 | |- | 457 | [[Kullanıcı:Pinar|Pinar]] | align="center" | 34 | |- | 458 | [[Kullanıcı:Mardetanha|Mardetanha]] | align="center" | 34 | |- | 459 | [[Kullanıcı:Nanahuatl|Nanahuatl]] | align="center" | 34 | |- | 460 | [[Kullanıcı:Yoldasso|Yoldasso]] | align="center" | 34 | |- | 461 | [[Kullanıcı:Java2002|Java2002]] | align="center" | 34 | |- | 462 | [[Kullanıcı:Hasley|Hasley]] | align="center" | 34 | |- | 463 | [[Kullanıcı:Recep Arslanbaş|Recep Arslanbaş]] | align="center" | 34 | |- | 464 | [[Kullanıcı:TugbekOlek|TugbekOlek]] | align="center" | 33 | |- | 465 | [[Kullanıcı:Vese~trwiktionary|Vese~trwiktionary]] | align="center" | 33 | |- | 466 | [[Kullanıcı:Ozyurekli|Ozyurekli]] | align="center" | 33 | |- | 467 | [[Kullanıcı:EsenBoga|EsenBoga]] | align="center" | 33 | |- | 468 | [[Kullanıcı:Golgelerim|Golgelerim]] | align="center" | 33 | |- | 469 | [[Kullanıcı:Sanya3|Sanya3]] | align="center" | 33 | |- | 470 | [[Kullanıcı:Kırmızı renk|Kırmızı renk]] | align="center" | 33 | |- | 471 | [[Kullanıcı:Stml 153|Stml 153]] | align="center" | 32 | |- | 472 | [[Kullanıcı:SLsoner|SLsoner]] | align="center" | 32 | |- | 473 | [[Kullanıcı:KoreanQuoter|KoreanQuoter]] | align="center" | 32 | |- | 474 | [[Kullanıcı:Sungurer|Sungurer]] | align="center" | 32 | |- | 475 | [[Kullanıcı:HestNewDes|HestNewDes]] | align="center" | 32 | |- | 476 | [[Kullanıcı:Sml-hanife1|Sml-hanife1]] | align="center" | 31 | |- | 477 | [[Kullanıcı:SAL 417|SAL 417]] | align="center" | 31 | |- | 478 | [[Kullanıcı:MercanX|MercanX]] | align="center" | 31 | |- | 479 | [[Kullanıcı:Kokoloc|Kokoloc]] | align="center" | 31 | |- | 480 | [[Kullanıcı:Köksarı|Köksarı]] | align="center" | 30 | |- | 481 | [[Kullanıcı:Akkiz|Akkiz]] | align="center" | 30 | |- | 482 | [[Kullanıcı:Mclovinx|Mclovinx]] | align="center" | 30 | |- | 483 | [[Kullanıcı:Talha1481|Talha1481]] | align="center" | 30 | |- | 484 | [[Kullanıcı:Kumanof|Kumanof]] | align="center" | 30 | |- | 485 | [[Kullanıcı:Tenperver|Tenperver]] | align="center" | 30 | |- | 486 | [[Kullanıcı:~2026-22795-35|~2026-22795-35]] | align="center" | 30 | |- | 487 | [[Kullanıcı:Sı 643|Sı 643]] | align="center" | 29 | |- | 488 | [[Kullanıcı:SAMLEML MURAT ÇEBİ|SAMLEML MURAT ÇEBİ]] | align="center" | 29 | |- | 489 | [[Kullanıcı:Kmlblg318|Kmlblg318]] | align="center" | 29 | |- | 490 | [[Kullanıcı:Merube 89|Merube 89]] | align="center" | 29 | |- | 491 | [[Kullanıcı:Hgav|Hgav]] | align="center" | 29 | |- | 492 | [[Kullanıcı:Alsace38|Alsace38]] | align="center" | 29 | |- | 493 | [[Kullanıcı:Dilşo Kardî|Dilşo Kardî]] | align="center" | 29 | |- | 494 | [[Kullanıcı:Ulukan|Ulukan]] | align="center" | 29 | |- | 495 | [[Kullanıcı:Kaan2121|Kaan2121]] | align="center" | 29 | |- | 496 | [[Kullanıcı:Selahattin ilhan|Selahattin ilhan]] | align="center" | 29 | |- | 497 | [[Kullanıcı:Zartatue|Zartatue]] | align="center" | 29 | |- | 498 | [[Kullanıcı:İstiklalistanbul|İstiklalistanbul]] | align="center" | 29 | |- | 499 | [[Kullanıcı:Golanpelorat|Golanpelorat]] | align="center" | 29 | |- | 500 | [[Kullanıcı:Tevfik58|Tevfik58]] | align="center" | 28 | |} </center> f6stx8j6ajvfe5wlvrnl8x18hjsyr2j Uygur Türkçesi 0 532748 5658323 3789167 2026-05-15T18:23:38Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658323 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== * {{IPA|dil=tr|/ˈujɡuɾ ˈtyrkt͡cheˈsi/}} * {{h|dil=tr||Uy|gur Türk|çe|si}} ===Özel ad=== {{tr-özel ad}} # {{t|dil=tr|diller}} [[Uygurca]] ====Çekimleme==== {{tr-ad-tablo}} ====Üst kavramlar==== * [[Türkçe]] ====Çeviriler==== {{tercüme yönlendirme|Uygur Türkçesi|Uygurca}} ===Ek okumalar=== * {{proje bağlantısı|Vikipedi}} c5s058wljmo16g6mqzhfe5gdh126fn6 κραγιόν 0 557103 5658448 4551774 2026-05-16T08:19:37Z MustafaCavlak 59368 /* Yunanca */ 5658448 wikitext text/x-wiki ==Yunanca== ===Köken=== {{nakledilen|el|fr|crayon}}.<ref>{{R:el:MYS}}</ref> ===Söyleniş=== * {{IPA|dil=el|/kɾa.ˈʝon/}} ===Ad=== {{el-ad|n|inv}} # {{t|dil=el|kozmetik}} [[ruj]] ====Ayrıca bakınız==== * {{b|el|κραγιόνι}} ===Kaynakça=== {{kaynakça}} i3p7mlb1ksy9rc5lzsif2byjfby1v15 κακό σκυλί ψόφο δεν έχει 0 567525 5658290 4198260 2026-05-15T13:49:20Z MustafaCavlak 59368 /* Yunanca */ 5658290 wikitext text/x-wiki ==Yunanca== ===Atasözü=== {{başlık başı|el|atasözü|baş=[[κακός|κακό]] [[σκυλί]] [[ψόφος|ψόφο]] [[δεν]] [[έχω|έχει]]}} (''bire bir çevirisi:'' kötü köpeğin ölümü yoktur (kötü köpek ölmez)) # {{t|dil=el|aşağılayıcı ifadeler}} {{şot|Kötü insanların uzun yaşadığını, bir şekilde hayatta kalmayı başardıklarını anlatan söz; kötüler ölmez; iyiler çabuk ölür.}} 5v0qjh6xjbtyhvqws2yeu5gsio26teg κατάματα 0 571814 5658291 5658222 2026-05-15T13:56:01Z MustafaCavlak 59368 /* Belirteç */ 5658291 wikitext text/x-wiki ==Yunanca== ===Köken=== {{köken|dil=el|gkm}} {{b|grc|κατάματα}} sözcüğünden devralındı. Morfolojik olarak: {{ön ek|dil=el|κατα}} + {{ek|dil=el|μάτι|α}}.<ref>{{R:el:MYS}}</ref> ===Söyleniş=== * {{IPA|dil=el|/kaˈta.ma.ta/}} ===Belirteç=== {{el-belirteç}} # [[göz]]lerinin [[iç]]ine {{şerh|bakarak}} #* {{tanıklık|dil=el|şarkı=Όπως (Ópos)|şarkıcı=Νότης Σφακιανάκης (Nótis Sfakianákis)|albüm=Με αγάπη ό,τι κάνεις (Me agápi ó,ti káneis)|tanıklık=Αρχίσανε να πέφτουν γράμματα<br>κι ο κόσμος έχει σηκωθεί<br>Κοίτα με πες μου το '''κατάματα'''<br>πως η αγάπη μας δεν ζει}} #* {{tanıklık|dil=el|şarkı=Χαράματα (Charámata)|şarkıcı=Νότης Σφακιανάκης (Nótis Sfakianákis)|albüm=Οι Νότες Είναι 7ψυχες (Oi Nótes Eínai 7psyches)|tanıklık=Να 'ρθεις ξανά χαράματα<br>χωρίς φωνές και κλάματα<br>να 'ρθεις ξανά και να μου πεις<br>το «σ' αγαπώ» '''κατάματα'''<br>να 'ρθεις ξανά χαράματα}} ===Kaynakça=== <references/> [[Kategori:Bizans Yunancasından devralınan Yunanca sözcükler]] mb2e8wx7uonkqka7gyqkf5p8jo7p3pi Urfalı 0 642896 5658338 5657995 2026-05-15T19:57:09Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658338 wikitext text/x-wiki ==Türkçe== ===Köken=== {{ek|dil=tr|Urfa|li|alt2=-lı}} ===Özel ad=== {{tr-özel ad}} # [[Şanlıurfa]] ilinden olan kimse; [[Şanlıurfalı]]. #*{{kt|başlık=İzmir Postası'nın Adamları|yazar=Ahmet BÜKE|yayıncı=Kanat Yayınları|yıl=2004|sayfa=25|tanıklık=Bu iki evden sonra başlayan merdivenin sağlı sollu evlerini ise '''Urfalı''', Mardinli yangın yerinden kaçar gibi gelmiş aileler doldurmuştu.|dil=tr}} # {{özel ad|dil=tr|soyadı}} ====Çekimleme==== {{tr-ad-tablo}} ===Kaynakça=== * {{KYK:TDK}} mwv3vo6bq5htsvvdqs68swjr9njo3qn Alemdaroğlu 0 643191 5658328 4828630 2026-05-15T19:22:58Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658328 wikitext text/x-wiki ==Türkçe== ===Köken=== {{kökenisteniyor}} ===Özel ad=== {{başlık başı|tr|özel ad}} # {{özel ad|dil=tr|soyadı}} ====Çekimleme==== {{tr-ad-tablo}} r947yk8osxo04ife75jv9fzqn7fzrg1 Akınözü 0 643219 5658327 4828595 2026-05-15T19:22:19Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658327 wikitext text/x-wiki ==Türkçe== ===Köken=== {{kökenisteniyor}} ===Özel ad=== {{başlık başı|tr|özel ad}} # {{özel ad|dil=tr|soyadı}} ====Çekimleme==== {{tr-ad-tablo}} r947yk8osxo04ife75jv9fzqn7fzrg1 abalourdir 0 881402 5658566 5605900 2026-05-16T10:08:17Z MustafaCavlak 59368 /* Çekimleme */ 5658566 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[sersemletmek]], [[aptallaştırmak]] ====Çekimleme==== {{fr-eylem-ir|abalourd}} rgjqm6i1erwb5r5nw0tlo4tifi4z0oq abâtardir 0 881406 5658567 5605907 2026-05-16T10:09:19Z MustafaCavlak 59368 /* Çekimleme */ 5658567 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # soyu / türü [[bozmak]], [[melezleşme]]yle [[nitelik]] [[kaybettirmek]] #: {{ux|fr|'''abâtardir''' une race|bir ırkı / soyu bozmak}} # {{mecaz|dil=fr}} [[bozmak]], [[yozlaştırmak]] #: {{ux|fr|'''abâtardir''' une langue|bir dili yozlaştırmak}} # {{t|dil=fr|dönüşlü}} [[yozlaşmak]], [[dejenere olmak]] ====Çekimleme==== {{fr-eylem-ir|abâtard}} 3gedz9rm73fdo1kl4jekoa3s9pqvjs0 accomplir 0 881477 5658568 5643554 2026-05-16T10:10:36Z MustafaCavlak 59368 /* Çekimleme */ 5658568 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[gerçekleştirmek]], [[yerine getirmek]], [[tamamlamak]], [[başarmak]] ====Çekimleme==== {{fr-eylem-ir|accompl}} 46z0uscdzae5f9tkhzmfo8oyejgb1aa apparier 0 881774 5658344 4852200 2026-05-15T20:12:37Z MustafaCavlak 59368 /* Eylem */ 5658344 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[eşleştirmek]], [[çiftlemek]] ====Çekimleme==== {{fr-eylem-er|appari}} ogw8gstjco79vy108v528541wdgyljd connecter 0 882649 5658342 4853080 2026-05-15T20:04:07Z MustafaCavlak 59368 /* Eylem */ 5658342 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[bağlamak]], [[bağlantı kurmak]] ====Çekimleme==== {{fr-eylem-er|connect}} tt13tjr8erihk7612853yckgn3d1jtc şalgamcı 0 995513 5658362 5656954 2026-05-15T22:02:35Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658362 wikitext text/x-wiki ==Türkçe== ===Köken=== {{ek|dil=tr|şalgam|ci|alt2=-cı}} ===Söyleniş=== * {{h|dil=tr||şal|gam|cı}} ===Ad=== {{tr-ad}} # {{t|dil=tr|meslekler}} [[şalgam suyu|Şalgam suyu]] satan kişi. #*{{mt|dil=tr|dergi=Öküz|başlık=İnönü - Churchill Buluşması ve DSİ Meselesi|yazar=Ekrem Galip YALINER|yıl=1997|sayı=37|sayfa=25 |tanıklık= Gidişatı beğenmeyen İsmet Paşa duruma müda­hale etti: "Bakınız, bu '''şalgamcının''' sır vermemesi Türklerin tabiatını gösterir ve bizim de müttefiklere ait sırları diğer devletlere vermeyeceğimizin ispatı­dır" diyerek meseleyi kapattı. }} #*{{kt|başlık=Dünyanın Bütün Karıncaları|yazar=Cabir ÖZYILDIZ|yayıncı=Vacilando Kitap |yıl=2025|sayfa=49|tanıklık=Dahası at arabaları, tablaları ardında taban tepen '''şalgamcılar''', zerzevat satıcıları, pikaplarını yürüyen mağazaya dönüştürmüş tuhafiyeciler, sele sepet, oyacak, şiş satanlar da geçti.|dil=tr}} ====Çekimleme==== {{tr-ad-tablo}} laedcmu84bggdshgqkjtmp8yrbj5od4 Şablon:fr-eylem-tablo 10 1007412 5658560 4998881 2026-05-16T09:51:44Z MustafaCavlak 59368 5658560 wikitext text/x-wiki <div class="NavFrame" style="clear:both;"> <div class="NavHead" align="left">&nbsp; &nbsp; ''{{PAGENAME}}'' eyleminin çekimi &nbsp; &nbsp;</div> <div class="NavContent"> {| style="background-color: #F8F8F8; border: 1px solid #888;" |+ |- | colspan="2" | ! colspan="3" style="text-align: center; background-color: #DDD;" | '''tekil''' ! colspan="3" style="text-align: center; background-color: #DDD;" | '''çoğul''' |- | colspan="2" | | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' |- | rowspan="5" style="background-color: #ADF; text-align: center;" | '''bildirme kipi''' | style="background-color: #ADF;" | '''şimdiki zaman''' | {{l-self|fr|{{{1}}}}} | {{l-self|fr|{{{2}}}}} | {{l-self|fr|{{{3}}}}} | {{l-self|fr|{{{4}}}}} | {{l-self|fr|{{{5}}}}} | {{l-self|fr|{{{6}}}}} |- | style="background-color: #ADF;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{7}}}}} | {{l-self|fr|{{{8}}}}} | {{l-self|fr|{{{9}}}}} | {{l-self|fr|{{{10}}}}} | {{l-self|fr|{{{11}}}}} | {{l-self|fr|{{{12}}}}} |- | style="background-color: #ADF;" | '''basit geçmiş zaman''' | {{l-self|fr|{{{13}}}}} | {{l-self|fr|{{{14}}}}} | {{l-self|fr|{{{15}}}}} | {{l-self|fr|{{{16}}}}} | {{l-self|fr|{{{17}}}}} | {{l-self|fr|{{{18}}}}} |- | style="background-color: #ADF;" | '''gelecek zaman''' | {{l-self|fr|{{{19}}}}} | {{l-self|fr|{{{20}}}}} | {{l-self|fr|{{{21}}}}} | {{l-self|fr|{{{22}}}}} | {{l-self|fr|{{{23}}}}} | {{l-self|fr|{{{24}}}}} |- | style="background-color: #ADF;" | '''şart''' | {{l-self|fr|{{{25}}}}} | {{l-self|fr|{{{26}}}}} | {{l-self|fr|{{{27}}}}} | {{l-self|fr|{{{28}}}}} | {{l-self|fr|{{{29}}}}} | {{l-self|fr|{{{30}}}}} |- | rowspan="2" style="background-color: #ADE; text-align: center;" | '''dilek kipi''' | style="background-color: #ADE;" | '''şimdiki zaman''' | {{l-self|fr|{{{31}}}}} | {{l-self|fr|{{{32}}}}} | {{l-self|fr|{{{33}}}}} | {{l-self|fr|{{{34}}}}} | {{l-self|fr|{{{35}}}}} | {{l-self|fr|{{{36}}}}} |- | style="background-color: #ADE;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{37}}}}} | {{l-self|fr|{{{38}}}}} | {{l-self|fr|{{{39}}}}} | {{l-self|fr|{{{40}}}}} | {{l-self|fr|{{{41}}}}} | {{l-self|fr|{{{42}}}}} |- | rowspan="1" style="background-color: #AFD; text-align: center;" | '''emir kipi''' | style="background-color: #AFD;" | '''şimdiki zaman''' | — | {{l-self|fr|{{{43}}}}} | — | {{l-self|fr|{{{44}}}}} | {{l-self|fr|{{{45}}}}} | — |- | rowspan="1" colspan="2" style="background-color: #FFE5B4; text-align: center;" | '''geçmiş zaman ortacı''' | {{l-self|fr|{{{go}}}}} |} {{{not|}}} </div></div><noinclude>{{belgeleme}}</noinclude> qryj1zbh3t3bu3981wjgenwpszqepao 5658563 5658560 2026-05-16T09:55:55Z MustafaCavlak 59368 5658563 wikitext text/x-wiki <div class="NavFrame" style="clear:both;"> <div class="NavHead" align="left">&nbsp; &nbsp; ''{{PAGENAME}}'' eyleminin çekimi &nbsp; &nbsp;</div> <div class="NavContent"> {| style="background-color: #F8F8F8; border: 1px solid #888;" |+ |- | colspan="2" | ! colspan="3" style="text-align: center; background-color: #DDD;" | '''tekil''' ! colspan="3" style="text-align: center; background-color: #DDD;" | '''çoğul''' |- | colspan="2" | | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' |- | rowspan="5" style="background-color: #ADF; text-align: center;" | '''bildirme kipi''' | style="background-color: #ADF;" | '''şimdiki zaman''' | {{l-self|fr|{{{1}}}}} | {{l-self|fr|{{{2}}}}} | {{l-self|fr|{{{3}}}}} | {{l-self|fr|{{{4}}}}} | {{l-self|fr|{{{5}}}}} | {{l-self|fr|{{{6}}}}} |- | style="background-color: #ADF;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{7}}}}} | {{l-self|fr|{{{8}}}}} | {{l-self|fr|{{{9}}}}} | {{l-self|fr|{{{10}}}}} | {{l-self|fr|{{{11}}}}} | {{l-self|fr|{{{12}}}}} |- | style="background-color: #ADF;" | '''basit geçmiş zaman''' | {{l-self|fr|{{{13}}}}} | {{l-self|fr|{{{14}}}}} | {{l-self|fr|{{{15}}}}} | {{l-self|fr|{{{16}}}}} | {{l-self|fr|{{{17}}}}} | {{l-self|fr|{{{18}}}}} |- | style="background-color: #ADF;" | '''gelecek zaman''' | {{l-self|fr|{{{19}}}}} | {{l-self|fr|{{{20}}}}} | {{l-self|fr|{{{21}}}}} | {{l-self|fr|{{{22}}}}} | {{l-self|fr|{{{23}}}}} | {{l-self|fr|{{{24}}}}} |- | style="background-color: #ADF;" | '''şart''' | {{l-self|fr|{{{25}}}}} | {{l-self|fr|{{{26}}}}} | {{l-self|fr|{{{27}}}}} | {{l-self|fr|{{{28}}}}} | {{l-self|fr|{{{29}}}}} | {{l-self|fr|{{{30}}}}} |- | rowspan="2" style="background-color: #ADE; text-align: center;" | '''dilek kipi''' | style="background-color: #ADE;" | '''şimdiki zaman''' | {{l-self|fr|{{{31}}}}} | {{l-self|fr|{{{32}}}}} | {{l-self|fr|{{{33}}}}} | {{l-self|fr|{{{34}}}}} | {{l-self|fr|{{{35}}}}} | {{l-self|fr|{{{36}}}}} |- | style="background-color: #ADE;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{37}}}}} | {{l-self|fr|{{{38}}}}} | {{l-self|fr|{{{39}}}}} | {{l-self|fr|{{{40}}}}} | {{l-self|fr|{{{41}}}}} | {{l-self|fr|{{{42}}}}} |- | rowspan="1" style="background-color: #AFD; text-align: center;" | '''emir kipi''' | style="background-color: #AFD;" | '''şimdiki zaman''' | — | {{l-self|fr|{{{43}}}}} | — | {{l-self|fr|{{{44}}}}} | {{l-self|fr|{{{45}}}}} | — |- | rowspan="1" colspan="2" style="background-color: #FFE5B4; text-align: center;" | '''geçmiş zaman ortacı''' | colspan="6" style="text-align: center; | {{l-self|fr|{{{go}}}}} |} {{{not|}}} </div></div><noinclude>{{belgeleme}}</noinclude> c2rduql2kcqxi7rkqsgslw8h0mjz12q 5658564 5658563 2026-05-16T10:04:18Z MustafaCavlak 59368 5658564 wikitext text/x-wiki <div class="NavFrame" style="clear:both;"> <div class="NavHead" align="left">&nbsp; &nbsp; ''{{PAGENAME}}'' eyleminin çekimi &nbsp; &nbsp;</div> <div class="NavContent"> {|style="background-color: #FFF; border: 1px solid #888;" ! style="background-color: #FFE5B4;" | '''geçmiş zaman ortacı''' | {{l-self|fr|{{{go}}}}} |} {| style="background-color: #F8F8F8; border: 1px solid #888;" |+ |- | colspan="2" | ! colspan="3" style="text-align: center; background-color: #DDD;" | '''tekil''' ! colspan="3" style="text-align: center; background-color: #DDD;" | '''çoğul''' |- | colspan="2" | | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' | style="background-color: #DDD;" | '''birinci''' | style="background-color: #DDD;" | '''ikinci''' | style="background-color: #DDD;" | '''üçüncü''' |- | rowspan="5" style="background-color: #ADF; text-align: center;" | '''bildirme kipi''' | style="background-color: #ADF;" | '''şimdiki zaman''' | {{l-self|fr|{{{1}}}}} | {{l-self|fr|{{{2}}}}} | {{l-self|fr|{{{3}}}}} | {{l-self|fr|{{{4}}}}} | {{l-self|fr|{{{5}}}}} | {{l-self|fr|{{{6}}}}} |- | style="background-color: #ADF;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{7}}}}} | {{l-self|fr|{{{8}}}}} | {{l-self|fr|{{{9}}}}} | {{l-self|fr|{{{10}}}}} | {{l-self|fr|{{{11}}}}} | {{l-self|fr|{{{12}}}}} |- | style="background-color: #ADF;" | '''basit geçmiş zaman''' | {{l-self|fr|{{{13}}}}} | {{l-self|fr|{{{14}}}}} | {{l-self|fr|{{{15}}}}} | {{l-self|fr|{{{16}}}}} | {{l-self|fr|{{{17}}}}} | {{l-self|fr|{{{18}}}}} |- | style="background-color: #ADF;" | '''gelecek zaman''' | {{l-self|fr|{{{19}}}}} | {{l-self|fr|{{{20}}}}} | {{l-self|fr|{{{21}}}}} | {{l-self|fr|{{{22}}}}} | {{l-self|fr|{{{23}}}}} | {{l-self|fr|{{{24}}}}} |- | style="background-color: #ADF;" | '''şart''' | {{l-self|fr|{{{25}}}}} | {{l-self|fr|{{{26}}}}} | {{l-self|fr|{{{27}}}}} | {{l-self|fr|{{{28}}}}} | {{l-self|fr|{{{29}}}}} | {{l-self|fr|{{{30}}}}} |- | rowspan="2" style="background-color: #ADE; text-align: center;" | '''dilek kipi''' | style="background-color: #ADE;" | '''şimdiki zaman''' | {{l-self|fr|{{{31}}}}} | {{l-self|fr|{{{32}}}}} | {{l-self|fr|{{{33}}}}} | {{l-self|fr|{{{34}}}}} | {{l-self|fr|{{{35}}}}} | {{l-self|fr|{{{36}}}}} |- | style="background-color: #ADE;" | '''kusurlu geçmiş zaman''' | {{l-self|fr|{{{37}}}}} | {{l-self|fr|{{{38}}}}} | {{l-self|fr|{{{39}}}}} | {{l-self|fr|{{{40}}}}} | {{l-self|fr|{{{41}}}}} | {{l-self|fr|{{{42}}}}} |- | rowspan="1" style="background-color: #AFD; text-align: center;" | '''emir kipi''' | style="background-color: #AFD;" | '''şimdiki zaman''' | — | {{l-self|fr|{{{43}}}}} | — | {{l-self|fr|{{{44}}}}} | {{l-self|fr|{{{45}}}}} | — |- |} {{{not|}}} </div></div><noinclude>{{belgeleme}}</noinclude> 4amgxq267fxcuvxtyy9hod6xyl224ag Şablon:fr-eylem-er 10 1007413 5658562 4998882 2026-05-16T09:52:47Z MustafaCavlak 59368 5658562 wikitext text/x-wiki {{fr-eylem-tablo | {{{1}}}e | {{{1}}}es | {{{1}}}e | {{{1}}}ons | {{{1}}}ez | {{{1}}}ent| {{{1}}}ais | {{{1}}}ais | {{{1}}}ait | {{{1}}}ions | {{{1}}}iez | {{{1}}}aient| {{{1}}}ai | {{{1}}}as | {{{1}}}a | {{{1}}}âmes | {{{1}}}âtes | {{{1}}}èrent| {{{1}}}erai | {{{1}}}eras | {{{1}}}era | {{{1}}}erons | {{{1}}}erez | {{{1}}}eront| {{{1}}}erais | {{{1}}}erais | {{{1}}}erait | {{{1}}}erions | {{{1}}}eriez | {{{1}}}eraient| {{{1}}}e | {{{1}}}es | {{{1}}}e | {{{1}}}ions | {{{1}}}iez | {{{1}}}ent| {{{1}}}asse | {{{1}}}asses | {{{1}}}ât | {{{1}}}assions | {{{1}}}assiez | {{{1}}}assent| {{{1}}}e | {{{1}}}ons | {{{1}}}ez |go={{{1}}}é}}<noinclude> {{belgeleme}}</noinclude> 6ookni48m9i4otd2g3ccgw08m8nd4lw αδογμάτιστος 0 1300433 5658347 5353045 2026-05-15T20:16:06Z MustafaCavlak 59368 /* Ön ad */ 5658347 wikitext text/x-wiki ==Yunanca== ===Ön ad=== {{el-ön ad}} # [[dogmatik]] olmayan ====Çekimleme==== {{el-çekim-öa|çekim=ος-η-ο|kök=αδογμάτιστ}} 9upfzni9rgbf9qduwnmjhk1388xfg55 ευκολόπιστος 0 1304051 5658349 5356665 2026-05-15T20:26:07Z MustafaCavlak 59368 /* Ön ad */ 5658349 wikitext text/x-wiki ==Yunanca== ===Ön ad=== {{el-ön ad}} # kolayca inanan, [[saf]] ====Çekimleme==== {{el-çekim-öa|çekim=ος-η-ο|kök=ευκολόπιστ}} 4v39zvaivteok1t4b01tff7fcosbrtk εύπιστος 0 1304081 5658350 5356695 2026-05-15T20:26:37Z MustafaCavlak 59368 5658350 wikitext text/x-wiki ==Yunanca== ===Ön ad=== {{el-ön ad}} # kolayca inanan, [[saf]] ====Çekimleme==== {{el-çekim-öa|çekim=ος-η-ο|kök=εύπιστ}} guedt83f9pks0838g6s6wys1gv1p0j4 Şablon:fr-eylem-ir 10 1319935 5658565 5372686 2026-05-16T10:06:19Z MustafaCavlak 59368 5658565 wikitext text/x-wiki {{fr-eylem-tablo | {{{1}}}is | {{{1}}}is | {{{1}}}it | {{{1}}}issons | {{{1}}}issez | {{{1}}}issent| {{{1}}}issais | {{{1}}}issais | {{{1}}}issait | {{{1}}}issions | {{{1}}}issiez | {{{1}}}issaient| {{{1}}}is | {{{1}}}is | {{{1}}}it | {{{1}}}îmes | {{{1}}}îtes | {{{1}}}irent| {{{1}}}irai | {{{1}}}iras | {{{1}}}ira | {{{1}}}irons | {{{1}}}irez | {{{1}}}iront| {{{1}}}irais | {{{1}}}irais | {{{1}}}irait | {{{1}}}irions | {{{1}}}iriez | {{{1}}}iraient| {{{1}}}isse | {{{1}}}isses | {{{1}}}isse | {{{1}}}issions | {{{1}}}issiez | {{{1}}}issent| {{{1}}}isse | {{{1}}}isses | {{{1}}}ît | {{{1}}}issions | {{{1}}}issiez | {{{1}}}issent| {{{1}}}is | {{{1}}}issons | {{{1}}}issez | go={{{1}}}i }}<noinclude> {{belgeleme}}</noinclude> 2ff7bd14we4rfib6utwox2lgr0vdwr3 disperser 0 1454760 5658351 5509764 2026-05-15T20:31:58Z MustafaCavlak 59368 /* Fransızca */ 5658351 wikitext text/x-wiki ==Fransızca== ===Köken=== {{kökenli|fr|frm|disperser}}, {{kökenli|fr|la|dispersus}}. ===Eylem=== {{fr-eylem}} # {{t|dil=fr|geçişli}} [[dağıtmak]] # {{t|dil=fr|dönüşlü}} [[dağılmak]] ====Çekimleme==== {{fr-eylem-er|{{#invoke:string|sub|s={{SAYFAADI}}|j=-3}}}} 4e1jx2uotce3giqxptakxaa4cvownm8 gouailler 0 1455670 5658348 5510680 2026-05-15T20:23:40Z MustafaCavlak 59368 /* Eylem */ 5658348 wikitext text/x-wiki ==Fransızca== ===Köken=== {{kökenisteniyor}} ===Eylem=== {{fr-eylem}} # [[alay etmek]] ====Çekimleme==== {{fr-eylem-er|{{#invoke:string|sub|s={{SAYFAADI}}|j=-3}}}} frey76x5f91qm0hqys738l5cdnta82w revitaliser 0 1457332 5658482 5512389 2026-05-16T09:01:52Z MustafaCavlak 59368 /* Fransızca */ 5658482 wikitext text/x-wiki ==Fransızca== ===Köken=== {{ön ek|dil=fr|re|vitaliser}} ===Eylem=== {{fr-eylem}} # [[yeniden]] [[canlandırmak]] ====Çekimleme==== {{fr-eylem-er|{{#invoke:string|sub|s={{SAYFAADI}}|j=-3}}}} 40i8fljy97iqoelts660hb3kj9glt7l scannériser 0 1457449 5658343 5512514 2026-05-15T20:07:38Z MustafaCavlak 59368 /* Fransızca */ 5658343 wikitext text/x-wiki ==Fransızca== ===Köken=== {{ek|dil=fr|scanner|iser}} ===Eylem=== {{fr-eylem}} # (tarayıcı ile) [[taramak]] ====Çekimleme==== {{fr-eylem-er|{{#invoke:string|sub|s={{SAYFAADI}}|j=-3}}}} 7jckussnuxo0iql5pphfipp3viegdgf styliser 0 1457629 5658481 5512700 2026-05-16T08:57:30Z MustafaCavlak 59368 /* Fransızca */ 5658481 wikitext text/x-wiki ==Fransızca== ===Köken=== {{ek|dil=fr|style|iser}} ===Eylem=== {{fr-eylem}} # [[biçemlemek]], [[stilize etmek]] ====Çekimleme==== {{fr-eylem-er|{{#invoke:string|sub|s={{SAYFAADI}}|j=-3}}}} izzh4kp0czfk7q387rt8isl6k005h93 arbeitslos 0 1510049 5658409 5565877 2026-05-16T00:07:10Z MustafaCavlak 59368 /* Ön ad */ 5658409 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[işsiz]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 0bpvm5abawfdczua1al1g9anranrqt4 autoritativ 0 1510066 5658415 5565894 2026-05-16T00:15:52Z MustafaCavlak 59368 5658415 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[otoriter]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 8ng01lnrr1diiqh2hxbakdk33p9xmwl altfranzösisch 0 1510209 5658404 5566039 2026-05-15T23:57:38Z MustafaCavlak 59368 /* Ön ad */ 5658404 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[Eski Fransızca]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 1dg0bneujxy8j6e0qgh242wx7pxpmwz atrophisch 0 1510590 5658413 5566433 2026-05-16T00:13:00Z MustafaCavlak 59368 /* Ön ad */ 5658413 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[atrofik]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} tpyapva5mmd5g9abfe7kvsz6wwxzoi6 absolut 0 1510657 5658402 5566503 2026-05-15T23:54:13Z MustafaCavlak 59368 /* Ön ad */ 5658402 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[mutlak]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} ===Belirteç=== {{başlık başı|de|belirteç}} # [[kesinlikle]], [[mutlaka]] 44o6cj0qcqkbi545mcbq0j38xv7umna weinfarbig 0 1512254 5658377 5568142 2026-05-15T23:33:24Z MustafaCavlak 59368 /* Ön ad */ 5658377 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[şarap]] [[renk|rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 9uwjffq8fh9jsjreymgslixjyu6jq8h veilchenfarbig 0 1512641 5658372 5568544 2026-05-15T23:28:26Z MustafaCavlak 59368 /* Ön ad */ 5658372 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[menekşe rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} dzm6pi55wr2tmihg3747p3qx7zmjcmp bakteriell 0 1512795 5658416 5568702 2026-05-16T00:17:40Z MustafaCavlak 59368 /* Ön ad */ 5658416 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[bakteriyel]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} lyvjbgsx4oealdxvoc7sq7ogil6yw41 sechswöchig 0 1513017 5658388 5568929 2026-05-15T23:44:45Z MustafaCavlak 59368 /* Ön ad */ 5658388 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[altı]] [[hafta]] süren, altı [[haftalık]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 7ksrysuc5ecfbqkt49s9bq9pgm14m6q 6-wöchig 0 1513018 5658387 5568930 2026-05-15T23:44:26Z MustafaCavlak 59368 /* Ön ad */ 5658387 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|sechswöchig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 5vaiqrnfn45de913zrqtg80kfm6nkx8 siebenwöchig 0 1513019 5658393 5568931 2026-05-15T23:47:23Z MustafaCavlak 59368 /* Ön ad */ 5658393 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[yedi]] [[hafta]] süren, yedi [[haftalık]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 2d5tlxbuenfnlqy280wdndyavvrvgd3 7-wöchig 0 1513020 5658392 5568932 2026-05-15T23:47:02Z MustafaCavlak 59368 /* Ön ad */ 5658392 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|siebenwöchig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} rhq6o21bz0zojfri3tgy1g7kljbxizh achtwöchig 0 1513021 5658397 5568933 2026-05-15T23:49:26Z MustafaCavlak 59368 /* Ön ad */ 5658397 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[sekiz]] [[hafta]] süren, sekiz [[haftalık]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} d8495tnt5hck9h64k7acgxsk4xyn3oe 8-wöchig 0 1513022 5658396 5568934 2026-05-15T23:49:03Z MustafaCavlak 59368 /* Ön ad */ 5658396 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|achtwöchig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} jn4cswx4awq4sm6e7zti013f8kegon3 neunwöchig 0 1513023 5658401 5568935 2026-05-15T23:51:15Z MustafaCavlak 59368 /* Ön ad */ 5658401 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[dokuz]] [[hafta]] süren, dokuz [[haftalık]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} ko90uaz5al4ifg52u74m6tycqd8rucu 9-wöchig 0 1513024 5658400 5568936 2026-05-15T23:50:50Z MustafaCavlak 59368 /* Ön ad */ 5658400 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|neunwöchig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 9hegtoeud9x1dp5xbjtt3tdpmccv9i1 einfarbig 0 1513163 5658374 5569085 2026-05-15T23:31:49Z MustafaCavlak 59368 /* Ön ad */ 5658374 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[tek]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 1skcrs14o11h5a1utebpcyyqvhk6rt5 mehrfarbig 0 1513492 5658373 5569421 2026-05-15T23:31:19Z MustafaCavlak 59368 /* Ön ad */ 5658373 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[çok]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 2zfin53nw1ibb4os7f8pb9538bcf7qw armdick 0 1513498 5658410 5569427 2026-05-16T00:08:32Z MustafaCavlak 59368 /* Ön ad */ 5658410 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[kol]] kadar [[kalın]] olan ====Çekimleme==== {{de-kıyaslanamayan-tablo}} a83lo7fo9vv2pliieu537mplqmt2hje akephal 0 1513547 5658403 5569477 2026-05-15T23:56:22Z MustafaCavlak 59368 5658403 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[başsız]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} j7z1vl8kabd0q1ifxkrszbaalk8vfdw cremefarbig 0 1513805 5658376 5569735 2026-05-15T23:32:52Z MustafaCavlak 59368 /* Ön ad */ 5658376 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[krem rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} t1jhbx83z4tj6fp2fwnmqtyatsgpmfo andersfarbig 0 1513899 5658378 5569829 2026-05-15T23:33:51Z MustafaCavlak 59368 /* Ön ad */ 5658378 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[farklı]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 3xea5uc92hk5guxnft9a58oqmvfghet asexual 0 1513980 5658412 5569910 2026-05-16T00:11:15Z MustafaCavlak 59368 /* Ön ad */ 5658412 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[aseksüel]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} ifpzvrik6gvf2l4saiysdz35x43my5u sechstägig 0 1515137 5658386 5571269 2026-05-15T23:44:03Z MustafaCavlak 59368 /* Ön ad */ 5658386 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[altı]] [[gün]] süren, altı [[günlük]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 19mhe4915ze7hb967hwq2d02hzvqe0u siebentägig 0 1515138 5658391 5571271 2026-05-15T23:46:30Z MustafaCavlak 59368 5658391 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[yedi]] [[gün]] süren, yedi [[günlük]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} oealey8xj18n3l371zmvtnswyhzfjhe neuntägig 0 1515140 5658399 5571273 2026-05-15T23:50:27Z MustafaCavlak 59368 /* Ön ad */ 5658399 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[dokuz]] [[gün]] süren, dokuz [[günlük]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} a4vxua8yx8tonlrlcvcrc4allcf0wan arbeitswissenschaftlich 0 1515355 5658408 5571491 2026-05-16T00:06:20Z MustafaCavlak 59368 /* Ön ad */ 5658408 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[ergonomi]] ile ilgili ====Çekimleme==== {{de-kıyaslanamayan-tablo}} m9iurx95szkg5f88hlm12iyduobes9a amateurwissenschaftlich 0 1515370 5658405 5571506 2026-05-15T23:59:09Z MustafaCavlak 59368 5658405 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[amatör]] [[bilimsel]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 0kx19sa72uhsft5gk5jnsetrilbp9dx zweifarbig 0 1515768 5658375 5571915 2026-05-15T23:32:16Z MustafaCavlak 59368 /* Ön ad */ 5658375 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[iki]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} op0enpnqljso8pai8r3wobvjuhfe0n7 vierfarbig 0 1515779 5658383 5571926 2026-05-15T23:38:17Z MustafaCavlak 59368 /* Ön ad */ 5658383 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[dört]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 0qvbmv3i4epdi4weu8lu1auj1e078mi bleifarbig 0 1516158 5658379 5572321 2026-05-15T23:35:14Z MustafaCavlak 59368 /* Ön ad */ 5658379 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[kurşun rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 0bpog2bqsn2i4c8mgwtwv7owh22xq3s olivfarbig 0 1516162 5658381 5572325 2026-05-15T23:36:57Z MustafaCavlak 59368 /* Ön ad */ 5658381 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[zeytin rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} rvu7gtfxxnf0m9klp9g8pi3g1h07e75 60-minütig 0 1516554 5658389 5572729 2026-05-15T23:45:33Z MustafaCavlak 59368 /* Ön ad */ 5658389 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|sechzigminütig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} mmalkmmv6da2oz9rgd9hpxrpmycmwc3 6-tägig 0 1516563 5658385 5572738 2026-05-15T23:43:43Z MustafaCavlak 59368 /* Ön ad */ 5658385 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|sechstägig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} nguqs06y03ygh3vyjptvnaiumgaqujo 7-tägig 0 1516564 5658390 5572739 2026-05-15T23:46:12Z MustafaCavlak 59368 /* Ön ad */ 5658390 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|siebentägig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} rns6sd78rud56crp0pkzjlh6wtpuijc 9-tägig 0 1516566 5658398 5572741 2026-05-15T23:50:07Z MustafaCavlak 59368 /* Ön ad */ 5658398 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|neuntägig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} t10n3tohp2abaalum0in2vm23s3y88j anarchisch 0 1516588 5658406 5572763 2026-05-16T00:00:49Z MustafaCavlak 59368 /* Ön ad */ 5658406 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[anarşik]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} iuxlmevo7eqhllklfl3dxgxohppezj4 zitronenfarbig 0 1516867 5658382 5573050 2026-05-15T23:37:45Z MustafaCavlak 59368 /* Ön ad */ 5658382 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[limon rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} mnca1je5k653pllw00tud3iuj9vm91i anästhetisch 0 1517326 5658407 5573510 2026-05-16T00:03:05Z MustafaCavlak 59368 /* Ön ad */ 5658407 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[anestezik]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 2gm4zu6gjhnjvoc6yvpb8cwp33vaibt arrhythmisch 0 1517457 5658411 5573641 2026-05-16T00:09:39Z MustafaCavlak 59368 /* Ön ad */ 5658411 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[aritmik]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 1e571cwsv08cw30d3nw44ouplb7pu8h fünffarbig 0 1517824 5658371 5574009 2026-05-15T23:26:56Z MustafaCavlak 59368 /* Ön ad */ 5658371 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[beş]] [[renkli]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 3ueep1wetbxdsf1on423pthmfhrt8kr augenlos 0 1517899 5658414 5574100 2026-05-16T00:13:42Z MustafaCavlak 59368 /* Ön ad */ 5658414 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[gözsüz]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} 8f1mhxccvx406o5cyxihynitgt30chx achtköpfig 0 1518437 5658395 5574648 2026-05-15T23:48:38Z MustafaCavlak 59368 /* Ön ad */ 5658395 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[sekiz]] [[kafalı]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} pd410e3vqiua5i7j5lymwsaknsa1vk9 8-köpfig 0 1518440 5658394 5574651 2026-05-15T23:47:55Z MustafaCavlak 59368 /* Ön ad */ 5658394 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # {{farklı|dil=de|achtköpfig}} ====Çekimleme==== {{de-kıyaslanamayan-tablo}} opscfinsg050sre9v2qf8hoo0dkrwkb bananenfarbig 0 1519803 5658380 5576019 2026-05-15T23:35:55Z MustafaCavlak 59368 /* Ön ad */ 5658380 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|-}} # [[muz]] [[renk|rengi]] ====Çekimleme==== {{de-kıyaslanamayan-tablo}} dk3b4x2wddwkxeaug3fs8170ajj1zuu ψόφος 0 1583770 5658289 2026-05-15T13:46:59Z MustafaCavlak 59368 Yeni sayfa : ==Yunanca== ===Ad=== {{el-ad|e|ψόφοι}} # {{t|dil=el|günlük konuşma dili|halk ağzı}} [[ölüm]] {{belirtici|özellikle hayvanların hastalıktan ölmesi}}<ref>{{R:el:MYS}}</ref> #: {{ux|el|[[κακό σκυλί ψόφο δεν έχει|κακό σκυλί '''ψόφο''' δεν έχει]]}} # {{mecaz|dil=el}} [[dondurucu]] [[soğuk]] #: {{ux|el|Κάνει '''ψόφο''' έξω!|Dışarısı buz gibi!}} ====Çekimleme==== {{el-aE-ος-οι-2a|ψόφ}} ===Kaynakça===... 5658289 wikitext text/x-wiki ==Yunanca== ===Ad=== {{el-ad|e|ψόφοι}} # {{t|dil=el|günlük konuşma dili|halk ağzı}} [[ölüm]] {{belirtici|özellikle hayvanların hastalıktan ölmesi}}<ref>{{R:el:MYS}}</ref> #: {{ux|el|[[κακό σκυλί ψόφο δεν έχει|κακό σκυλί '''ψόφο''' δεν έχει]]}} # {{mecaz|dil=el}} [[dondurucu]] [[soğuk]] #: {{ux|el|Κάνει '''ψόφο''' έξω!|Dışarısı buz gibi!}} ====Çekimleme==== {{el-aE-ος-οι-2a|ψόφ}} ===Kaynakça=== <references /> 8vi038f7wavxc6hdz0glepfnclswnjt Şablon:fo-çekim-ad 10 1583771 5658292 2026-05-15T15:16:29Z MustafaCavlak 59368 Yeni sayfa : <div class="NavFrame" style="width:80%"> <div class="NavHead">''{{{1|{{SAYFAADI}}}}}'' adının çekimi</small></div> <div class="NavContent"> {| class="inflection-table" style="width:100%;text-align:center" |- |width=15% style="background:#FF6FFF" | ! width=43% colspan="2" style="background:#FF6FFF" | tekil ! width=43% colspan="2" style="background:#FF6FFF" | çoğul |- ! bgcolor="#FAE6FA" | ! bgcolor="#FAE6FA"| belirsiz ! bgcolor="#FAE6FA"| belirli ! bgcolor="#FAE6FA"| be... 5658292 wikitext text/x-wiki <div class="NavFrame" style="width:80%"> <div class="NavHead">''{{{1|{{SAYFAADI}}}}}'' adının çekimi</small></div> <div class="NavContent"> {| class="inflection-table" style="width:100%;text-align:center" |- |width=15% style="background:#FF6FFF" | ! width=43% colspan="2" style="background:#FF6FFF" | tekil ! width=43% colspan="2" style="background:#FF6FFF" | çoğul |- ! bgcolor="#FAE6FA" | ! bgcolor="#FAE6FA"| belirsiz ! bgcolor="#FAE6FA"| belirli ! bgcolor="#FAE6FA"| belirsiz ! bgcolor="#FAE6FA"| belirli |- ! bgcolor="#FAE6FA" | yalın |bgcolor="#ffffff"| {{l-self|fo|{{{1}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{2}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{3}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{4}}}}} |- ! bgcolor="#FAE6FA" | belirtme |bgcolor="#ffffff"| {{l-self|fo|{{{5}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{6}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{7}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{8}}}}} |- ! bgcolor="#FAE6FA" | yönelme |bgcolor="#ffffff"| {{l-self|fo|{{{9}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{10}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{11}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{12}}}}} |- ! bgcolor="#FAE6FA" | tamlayan |bgcolor="#ffffff"| {{l-self|fo|{{{13}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{14}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{15}}}}} |bgcolor="#ffffff"| {{l-self|fo|{{{16}}}}} |}</div></div><noinclude>{{belgeleme}}</noinclude> 7iak6tdlfzngneqnokef8crn9tudgcy Şablon:fo-çekim-ad-d1 10 1583772 5658293 2026-05-15T15:21:56Z MustafaCavlak 59368 Yeni sayfa : {{fo-çekim-ad |{{{1}}}a |{{{1}}}an |{{{1}}}ur |{{{1}}}urnar |{{{1}}}u |{{{1}}}una |{{{1}}}ur |{{{1}}}urnar |{{{1}}}u |{{{1}}}uni |{{{1}}}um |{{{1}}}unum |{{{1}}}u |{{{1}}}unnar |{{{1}}}a |{{{1}}}anna }} <noinclude>{{belgeleme}}</noinclude> 5658293 wikitext text/x-wiki {{fo-çekim-ad |{{{1}}}a |{{{1}}}an |{{{1}}}ur |{{{1}}}urnar |{{{1}}}u |{{{1}}}una |{{{1}}}ur |{{{1}}}urnar |{{{1}}}u |{{{1}}}uni |{{{1}}}um |{{{1}}}unum |{{{1}}}u |{{{1}}}unnar |{{{1}}}a |{{{1}}}anna }} <noinclude>{{belgeleme}}</noinclude> 6r23mycisdu1ytuf536smmnadqsnfrq Şablon:fo-ad 10 1583773 5658294 2026-05-15T15:26:27Z MustafaCavlak 59368 Yeni sayfa : {{başlık başı|fo|ad|baş={{{baş|}}}|c={{#switch:{{{1|}}}|d|n|e={{{1}}}{{#ifeq:{{{2|}}}|-|-p}}|#default=?}}|{{#switch:{{{2|}}}||-=|#default=tamlayan tekil}}|{{{2}}} |{{#if:{{{22|}}}|veya}}|{{{22|}}} |{{#if:{{{222|}}}|veya}}|{{{222|}}} |{{#switch:{{{3|}}}|=|-=sayılamaz|#default={{#ifeq:{{{2}}}|-|tamlayan çoğul|çoğul}}}} |{{#switch:{{{3|}}}|=|-=|#default={{{3}}}}} |{{#if:{{{33|}}}|veya}}|{{{33|}}} |{{#if:{{{333|}}}|veya}}|{{{333|}}} |kat2={{#ifeq:{{{3|}}}|-|sayılamayan... 5658294 wikitext text/x-wiki {{başlık başı|fo|ad|baş={{{baş|}}}|c={{#switch:{{{1|}}}|d|n|e={{{1}}}{{#ifeq:{{{2|}}}|-|-p}}|#default=?}}|{{#switch:{{{2|}}}||-=|#default=tamlayan tekil}}|{{{2}}} |{{#if:{{{22|}}}|veya}}|{{{22|}}} |{{#if:{{{222|}}}|veya}}|{{{222|}}} |{{#switch:{{{3|}}}|=|-=sayılamaz|#default={{#ifeq:{{{2}}}|-|tamlayan çoğul|çoğul}}}} |{{#switch:{{{3|}}}|=|-=|#default={{{3}}}}} |{{#if:{{{33|}}}|veya}}|{{{33|}}} |{{#if:{{{333|}}}|veya}}|{{{333|}}} |kat2={{#ifeq:{{{3|}}}|-|sayılamayan adlar}} }}<noinclude>{{belgeleme}}</noinclude> j1et0kddi31ovpbt2eehirww4qqtcuw 5658295 5658294 2026-05-15T15:26:53Z MustafaCavlak 59368 5658295 wikitext text/x-wiki {{başlık başı|fo|ad|baş={{{baş|}}}|c={{#switch:{{{1|}}}|d|n|e={{{1}}}{{#ifeq:{{{2|}}}|-|-p}}|#default=?}}|{{#switch:{{{2|}}}||-=|#default=tamlayan tekil}}|{{{2}}} |{{#if:{{{22|}}}|veya}}|{{{22|}}} |{{#if:{{{222|}}}|veya}}|{{{222|}}} |{{#switch:{{{3|}}}|=|-=sayılamaz|#default={{#ifeq:{{{2}}}|-|tamlayan çoğul|çoğul}}}} |{{#switch:{{{3|}}}|=|-=|#default={{{3}}}}} |{{#if:{{{33|}}}|veya}}|{{{33|}}} |{{#if:{{{333|}}}|veya}}|{{{333|}}} |kat2={{#ifeq:{{{3|}}}|-|sayılamayan adlar}} }}<noinclude>[[Kategori:Faroe dili başlık başı şablonları|ad]]{{belgeleme}}</noinclude> boo7bpa02ijk7vla8ztuauzbt0hvc9o Kategori:Eski Norsçadan devralınan Faroe dili sözcükler 14 1583774 5658297 2026-05-15T15:27:57Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=fo|köken=non|tip=devralınan}} 5658297 wikitext text/x-wiki {{kategori köken|dil=fo|köken=non|tip=devralınan}} 9nmc0c8bom1djzss2lzbo9w31iec7gp Kategori:Faroe dili devralınan sözcükler 14 1583775 5658298 2026-05-15T15:28:15Z MustafaCavlak 59368 Yeni sayfa : {{kategori söz|dil=fo|söz=devralınan sözcükler}} 5658298 wikitext text/x-wiki {{kategori söz|dil=fo|söz=devralınan sözcükler}} 6osdoepynco06te735xoaug6chbh4zy høku 0 1583776 5658299 2026-05-15T15:29:40Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|acc//dat//gen|t}} 5658299 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|acc//dat//gen|t}} lzf7stehdmne14xxynm4f5nu7sxhmqx høkan 0 1583777 5658300 2026-05-15T15:30:12Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|nom|t}} 5658300 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|nom|t}} nkfg3w365d98jz2r222noq0uag4pyth høkuna 0 1583778 5658301 2026-05-15T15:30:34Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|acc|t}} 5658301 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|acc|t}} ckh2msllhipv6dlq7c3t7lwsv566r7q høkuni 0 1583779 5658302 2026-05-15T15:30:59Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|dat|t}} 5658302 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|dat|t}} ikgt3ewyv7ob6n70fafj0i9beb6af0j høkunnar 0 1583780 5658303 2026-05-15T15:31:17Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|gen|t}} 5658303 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|gen|t}} raqubxywwkrzmdqabje43ci7yflphi4 høkur 0 1583781 5658304 2026-05-15T15:31:47Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|nom//acc|ç}} 5658304 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|nom//acc|ç}} e3piub4powjs0lv2mavlziqp5yqnoth høkum 0 1583782 5658305 2026-05-15T15:32:08Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|dat|ç}} 5658305 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||indef|dat|ç}} nsmnpcu2qfyq9t9viksm9byoqkprfav høkurnar 0 1583783 5658306 2026-05-15T15:32:27Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|nom//acc|ç}} 5658306 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|nom//acc|ç}} iptwvihcri0ga3v9b7gahd9ah1ch67s høkunum 0 1583784 5658307 2026-05-15T15:32:51Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|dat|ç}} 5658307 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|dat|ç}} mcd5q08byor9ectk8xjbw35b4cn0nhq høkanna 0 1583785 5658308 2026-05-15T15:33:12Z MustafaCavlak 59368 Yeni sayfa : ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|gen|ç}} 5658308 wikitext text/x-wiki ==Faroe dili== ===Ad=== {{başlık başı|fo|çekimli ad}} # {{çekim|dil=fo|høka||def|gen|ç}} flzabi9tq916ldqytv8ldf0cj5eka8v Kategori:Fransızca -xion son ekiyle oluşmuş sözcükler 14 1583786 5658341 2026-05-15T19:59:07Z MustafaCavlak 59368 Yeni sayfa : {{kategori ek|fr|son|-xion}} 5658341 wikitext text/x-wiki {{kategori ek|fr|son|-xion}} 5nw0g1tp4sz10yp1vmmukf10hlri0fn apparions 0 1583787 5658345 2026-05-15T20:14:05Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{çekim|dil=fr|apparier||1ç|pres|ind|;|1ç|imp}} 5658345 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{çekim|dil=fr|apparier||1ç|pres|ind|;|1ç|imp}} b8s3x2e90bxw7cji14hn2kn2lc6xesq appariez 0 1583788 5658346 2026-05-15T20:14:39Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{çekim|dil=fr|apparier||2ç|pres|ind|;|2ç|imp}} 5658346 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{çekim|dil=fr|apparier||2ç|pres|ind|;|2ç|imp}} b0omcfah4cz59n65hxmynmheixjzxj5 ruh çağırmak 0 1583789 5658356 2026-05-15T21:48:20Z Satirdan kahraman 37401 Yeni sayfa : ==Türkçe== ===Söyleniş=== *{{h|dil=tr||ruh|ça|ğır|mak}} ===Eylem=== {{tr-eylem}} #{{t|dil=tr|mitoloji}} Geçmişten veya gelecekten haber almak amacıyla ölmüş bir kimsenin ruhu olduğuna inanılan bir varlıkla iletişim kurmak. #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık= Yıllar önce bunlardan biri bana, Mesnevi'yi tamamlamak için bir heyet hazırlayıp Mevlana'nın '''ruhunu çağırdı... 5658356 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{{h|dil=tr||ruh|ça|ğır|mak}} ===Eylem=== {{tr-eylem}} #{{t|dil=tr|mitoloji}} Geçmişten veya gelecekten haber almak amacıyla ölmüş bir kimsenin ruhu olduğuna inanılan bir varlıkla iletişim kurmak. #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık= Yıllar önce bunlardan biri bana, Mesnevi'yi tamamlamak için bir heyet hazırlayıp Mevlana'nın '''ruhunu çağırdıklarını''', eserin son cildini böylece kaydedip yayımlamaya çalıştıklarını ileri sürmüştü. }} ====Çekimleme==== {{tr-eylem-tablo}} ===Kaynakça=== *{{KYK:TDK}} 39soy7bi3dme3qbixebxxhwjkjvr7co 5658357 5658356 2026-05-15T21:48:46Z Satirdan kahraman 37401 /* */ [[MediaWiki:Gadget-AjaxEdit.js|AjaxDüzenle]] kullanılarak değiştirildi 5658357 wikitext text/x-wiki ==Türkçe== ===Söyleniş=== *{{h|dil=tr||ruh|ça|ğır|mak}} ===Köken=== *{{birleşik|dil=tr|ruh|çağırmak}} ===Eylem=== {{tr-eylem}} #{{t|dil=tr|mitoloji}} Geçmişten veya gelecekten haber almak amacıyla ölmüş bir kimsenin ruhu olduğuna inanılan bir varlıkla iletişim kurmak. #*{{mt|dil=tr|dergi=Öküz|başlık=Gerçeği Arayanlar|yazar=İhsan Oktay ANAR|yıl=1997|sayı=37|sayfa=17 |tanıklık= Yıllar önce bunlardan biri bana, Mesnevi'yi tamamlamak için bir heyet hazırlayıp Mevlana'nın '''ruhunu çağırdıklarını''', eserin son cildini böylece kaydedip yayımlamaya çalıştıklarını ileri sürmüştü. }} ====Çekimleme==== {{tr-eylem-tablo}} ===Kaynakça=== *{{KYK:TDK}} m0fhyj77vkjtdiujcw4rhnmh1kef858 farbig 0 1583790 5658384 2026-05-15T23:41:26Z MustafaCavlak 59368 Yeni sayfa : ==Almanca== ===Ön ad=== {{de-ön ad|farbiger|farbigsten}} # [[renkli]] 5658384 wikitext text/x-wiki ==Almanca== ===Ön ad=== {{de-ön ad|farbiger|farbigsten}} # [[renkli]] rllrhvitfeoqfxax5j89yg7dzkvh27m QTEs 0 1583791 5658419 2026-05-16T05:16:34Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{ççekim|en|QTE}} 5658419 wikitext text/x-wiki ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{ççekim|en|QTE}} t395hrj10trk9xaqjc7y27b2z03xdef Kategori:İngilizce % karakterini içeren sözcükler 14 1583792 5658420 2026-05-16T05:17:27Z MustafaCavlak 59368 Yeni sayfa : {{kategori karakter|dil=en|karakter=%}} 5658420 wikitext text/x-wiki {{kategori karakter|dil=en|karakter=%}} 13bef5j3pwnh9onxy2xcywks7vfo6rt donc 0 1583793 5658421 2026-05-16T05:53:44Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Söyleniş=== * {{IPA|dil=fr|/dɔ̃k/|/dɔ̃/}} * {{ses|dil=fr|Fr-donc.ogg}} * {{ses|dil=fr|LL-Q150 (fra)-GrandCelinien-donc.wav}} * {{ses|dil=fr|LL-Q150 (fra)-LoquaxFR-donc.wav}} * {{ses|dil=fr|LL-Q150 (fra)-Poslovitch-donc.wav}} ===Belirteç=== {{başlık başı|fr|belirteç}} # [[öyleyse]], [[o hâlde]] ===Ek okumalar=== * {{R:fr:TLFi}} 5658421 wikitext text/x-wiki ==Fransızca== ===Söyleniş=== * {{IPA|dil=fr|/dɔ̃k/|/dɔ̃/}} * {{ses|dil=fr|Fr-donc.ogg}} * {{ses|dil=fr|LL-Q150 (fra)-GrandCelinien-donc.wav}} * {{ses|dil=fr|LL-Q150 (fra)-LoquaxFR-donc.wav}} * {{ses|dil=fr|LL-Q150 (fra)-Poslovitch-donc.wav}} ===Belirteç=== {{başlık başı|fr|belirteç}} # [[öyleyse]], [[o hâlde]] ===Ek okumalar=== * {{R:fr:TLFi}} c9tft7qwhd5952zqy9jddwwyf1z9ba1 κύμινο 0 1583794 5658422 2026-05-16T06:38:24Z MustafaCavlak 59368 Yeni sayfa : ==Yunanca== ===Ad=== {{el-ad|n}} # [[kimyon]] 5658422 wikitext text/x-wiki ==Yunanca== ===Ad=== {{el-ad|n}} # [[kimyon]] 7ckdh0zw0wkdfom7b1axue697ri2441 0 1583795 5658423 2026-05-16T06:44:35Z MustafaCavlak 59368 Yeni sayfa : ==Japonca== {{vikipedi|dil=ja}} ===Kanji=== {{ja-kanji|grade=1|rs=音00}} # [[ses]] 5658423 wikitext text/x-wiki ==Japonca== {{vikipedi|dil=ja}} ===Kanji=== {{ja-kanji|grade=1|rs=音00}} # [[ses]] 38tsq21geqb6wa81q10kmiarrvzbjsd おん 0 1583796 5658424 2026-05-16T06:45:45Z MustafaCavlak 59368 Yeni sayfa : ==Japonca== {{ja-bak|オン|音|遠|御|温|恩|怨|隠|穏}} 5658424 wikitext text/x-wiki ==Japonca== {{ja-bak|オン|音|遠|御|温|恩|怨|隠|穏}} ioa2mu0rve0g0olnhxx2zxn5trrtnsq naifu 0 1583797 5658426 2026-05-16T06:49:43Z MustafaCavlak 59368 Yeni sayfa : ==Japonca== ===Romanizasyon=== {{ja-romaji}} # {{romanizasyon|dil=ja|ナイフ}} 5658426 wikitext text/x-wiki ==Japonca== ===Romanizasyon=== {{ja-romaji}} # {{romanizasyon|dil=ja|ナイフ}} 118u0p2ecgd9bohtjyztyfruj2uubhg Şablon:ja-eylem 10 1583798 5658427 2026-05-16T06:59:04Z MustafaCavlak 59368 Yeni sayfa : <includeonly>{{#invoke:ja-başlıkbaşı|göster|ja|eylemler}}</includeonly><noinclude>{{belgeleme}}</noinclude> 5658427 wikitext text/x-wiki <includeonly>{{#invoke:ja-başlıkbaşı|göster|ja|eylemler}}</includeonly><noinclude>{{belgeleme}}</noinclude> 7yzdk2d4tnin6zx24a5t9orl82s6aqu 5658428 5658427 2026-05-16T06:59:59Z MustafaCavlak 59368 5658428 wikitext text/x-wiki <includeonly>{{#invoke:ja-başlıkbaşı|show|ja|eylemler}}</includeonly><noinclude>{{belgeleme}}</noinclude> 9cuueb5hxbbk51jyulalp7dwprvoqfd 話す 0 1583799 5658429 2026-05-16T07:03:56Z MustafaCavlak 59368 Yeni sayfa : ==Japonca== {{ja-kanjitab|はな|yomi=kun}} ===Söyleniş=== {{ja-söyleniş|はなす|ak=2|ak_kaynak=NHK}} ===Eylem=== {{ja-eylem|はなす|tip=1|ç=both}} # [[konuşmak]] ===Kaynakça=== <references /> 5658429 wikitext text/x-wiki ==Japonca== {{ja-kanjitab|はな|yomi=kun}} ===Söyleniş=== {{ja-söyleniş|はなす|ak=2|ak_kaynak=NHK}} ===Eylem=== {{ja-eylem|はなす|tip=1|ç=both}} # [[konuşmak]] ===Kaynakça=== <references /> 9skchijo28bujhop9yhkahy3087iekk 5658430 5658429 2026-05-16T07:04:13Z MustafaCavlak 59368 /* Eylem */ 5658430 wikitext text/x-wiki ==Japonca== {{ja-kanjitab|はな|yomi=kun}} ===Söyleniş=== {{ja-söyleniş|はなす|ak=2|ak_kaynak=NHK}} ===Eylem=== {{ja-eylem|はなす}} # [[konuşmak]] ===Kaynakça=== <references /> erhmhizy7cs4iidy78r8ags5w1rt4mw はなす 0 1583800 5658431 2026-05-16T07:05:36Z MustafaCavlak 59368 Yeni sayfa : ==Japonca== {{ja-bak|話す|放す|離す}} 5658431 wikitext text/x-wiki ==Japonca== {{ja-bak|話す|放す|離す}} oy6hobw1tik0tr07mdsgtg6si4s88x9 сейчас 0 1583801 5658434 2026-05-16T07:34:22Z MustafaCavlak 59368 Yeni sayfa : ==Rusça== ===Belirteç=== {{başlık başı|ru|belirteç|baş=сейча́с}} # [[şimdi]], [[şu anda]] 5658434 wikitext text/x-wiki ==Rusça== ===Belirteç=== {{başlık başı|ru|belirteç|baş=сейча́с}} # [[şimdi]], [[şu anda]] qv1buckbjlviesdcixggfwjwepdkvgq подождать 0 1583802 5658435 2026-05-16T07:38:37Z MustafaCavlak 59368 Yeni sayfa : ==Rusça== ===Söyleniş=== * {{ses|dil=ru|Ru-подождать.ogg}} ===Eylem=== {{ru-eylem|подожда́ть|pf|impf=ждать}} # [[beklemek]] 5658435 wikitext text/x-wiki ==Rusça== ===Söyleniş=== * {{ses|dil=ru|Ru-подождать.ogg}} ===Eylem=== {{ru-eylem|подожда́ть|pf|impf=ждать}} # [[beklemek]] bs9wa4qb87139isy6g8kwte8m5d9iqa ждать 0 1583803 5658436 2026-05-16T07:40:27Z MustafaCavlak 59368 Yeni sayfa : ==Rusça== ===Söyleniş=== * {{ses|dil=ru|Ru-ждать.ogg}} * {{ses|dil=ru|Ru-ждать .ogg}} ===Eylem=== {{ru-eylem|ждать|impf|pf=подожда́ть}} # [[beklemek]] 5658436 wikitext text/x-wiki ==Rusça== ===Söyleniş=== * {{ses|dil=ru|Ru-ждать.ogg}} * {{ses|dil=ru|Ru-ждать .ogg}} ===Eylem=== {{ru-eylem|ждать|impf|pf=подожда́ть}} # [[beklemek]] oeho5brchsi36z113h4a1b75t5rbjcn 𒌨𒁇𒊏 0 1583804 5658437 2026-05-16T07:49:25Z MustafaCavlak 59368 Yeni sayfa : ==Sümerce== ===Ad=== {{başlık başı|sux|ad|ç=ur-bar-ra /urbarak/}} # {{t|dil=sux|köpekgiller}} [[kurt]] 5658437 wikitext text/x-wiki ==Sümerce== ===Ad=== {{başlık başı|sux|ad|ç=ur-bar-ra /urbarak/}} # {{t|dil=sux|köpekgiller}} [[kurt]] 6vbm0gmjz66v30qn38dlwx2o8mszc4k Kategori:Sümercede köpekgiller 14 1583805 5658438 2026-05-16T07:50:51Z MustafaCavlak 59368 Yeni sayfa : {{kategori konu|dil=sux|konu=köpekgiller}} 5658438 wikitext text/x-wiki {{kategori konu|dil=sux|konu=köpekgiller}} 1ci9lhv5owy24f6lxfmjrholz7vvwqq Kategori:Sümercede yırtıcı memeliler 14 1583806 5658439 2026-05-16T07:51:11Z MustafaCavlak 59368 Yeni sayfa : {{kategori konu|dil=sux|konu=yırtıcı memeliler}} 5658439 wikitext text/x-wiki {{kategori konu|dil=sux|konu=yırtıcı memeliler}} m320nsw6fq1uxutrj7md4hqyi6dnr2w чанта 0 1583807 5658440 2026-05-16T08:03:29Z MustafaCavlak 59368 Yeni sayfa : ==Bulgarca== {{vikipedi|dil=bg}} ===Köken=== {{nakledilen|bg|ota|چانطه|ç=çanta}}, {{kökenli|ota|fa|تنچه}}. ===Ad=== {{başlık başı|bg|ad|baş=ча́нта|c=d}} # [[çanta]] ===Ek okumalar=== * {{R:bg:Leksit}} 5658440 wikitext text/x-wiki ==Bulgarca== {{vikipedi|dil=bg}} ===Köken=== {{nakledilen|bg|ota|چانطه|ç=çanta}}, {{kökenli|ota|fa|تنچه}}. ===Ad=== {{başlık başı|bg|ad|baş=ча́нта|c=d}} # [[çanta]] ===Ek okumalar=== * {{R:bg:Leksit}} dmnbn0ixzu60jvn0ke6c1g141tyjj89 5658441 5658440 2026-05-16T08:03:40Z MustafaCavlak 59368 /* Köken */ 5658441 wikitext text/x-wiki ==Bulgarca== {{vikipedi|dil=bg}} ===Köken=== {{nakledilen|bg|ota|چانطه|ç=çanta}}, {{kökenli|bg|fa|تنچه}}. ===Ad=== {{başlık başı|bg|ad|baş=ча́нта|c=d}} # [[çanta]] ===Ek okumalar=== * {{R:bg:Leksit}} m6to2wvly6fg314cp3amf4dvokch5vk Kategori:Farsça kökenli Bulgarca sözcükler 14 1583808 5658442 2026-05-16T08:04:56Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=bg|köken=fa}} 5658442 wikitext text/x-wiki {{kategori köken|dil=bg|köken=fa}} eaobr60v4hi8vam4bi5itkal4k4zyuy Kategori:Güneybatı İran dilleri kökenli Bulgarca sözcükler 14 1583809 5658443 2026-05-16T08:07:58Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=bg|köken=ira-swi}} 5658443 wikitext text/x-wiki {{kategori köken|dil=bg|köken=ira-swi}} 38iricd89cmg3cnmjp764udw5rm1d9b Kategori:Batı İran dilleri kökenli Bulgarca sözcükler 14 1583810 5658444 2026-05-16T08:08:11Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=bg|köken=ira-wes}} 5658444 wikitext text/x-wiki {{kategori köken|dil=bg|köken=ira-wes}} imzjqqyebcjeu0zgo432gcvafoaae3j Kategori:İran dilleri kökenli Bulgarca sözcükler 14 1583811 5658445 2026-05-16T08:08:22Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=bg|köken=ira}} 5658445 wikitext text/x-wiki {{kategori köken|dil=bg|köken=ira}} ohtgsahjaxilnfm70ad5b717mdb3ucb Kategori:Hint-İran dilleri kökenli Bulgarca sözcükler 14 1583812 5658446 2026-05-16T08:08:35Z MustafaCavlak 59368 Yeni sayfa : {{kategori köken|dil=bg|köken=iir}} 5658446 wikitext text/x-wiki {{kategori köken|dil=bg|köken=iir}} fylbyk9978boln5cbonus7qus12avvi κραγιόνι 0 1583813 5658449 2026-05-16T08:22:55Z MustafaCavlak 59368 Yeni sayfa : ==Yunanca== ===Ad=== {{el-ad|n|κραγιόνια}} # [[boya kalemi]] ====Çekimleme==== {{el-aN-ι-ια-2b|κραγιόν|κραγιον}} ====Ayrıca bakınız==== * {{b|el|κραγιόν}} ===Ek okumalar=== * {{R:el:MYS}} 5658449 wikitext text/x-wiki ==Yunanca== ===Ad=== {{el-ad|n|κραγιόνια}} # [[boya kalemi]] ====Çekimleme==== {{el-aN-ι-ια-2b|κραγιόν|κραγιον}} ====Ayrıca bakınız==== * {{b|el|κραγιόν}} ===Ek okumalar=== * {{R:el:MYS}} hpwale20sutrs443uidj1u0x23v0vh1 plombs 0 1583814 5658451 2026-05-16T08:26:58Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|plomb}} 5658451 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|plomb}} kzrz3y47nni0vg1d11s0a7kvdpqowse connexions 0 1583815 5658452 2026-05-16T08:28:08Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|connexion}} 5658452 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|connexion}} t85bya2gum9uqez75g59s0iwqx8aiy6 éthers 0 1583816 5658453 2026-05-16T08:28:44Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|éther}} 5658453 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|éther}} b9ofo3k5xh2kyjwhazu1glz4vjia777 immobilités 0 1583817 5658455 2026-05-16T08:29:43Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|immobilité}} 5658455 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|immobilité}} dkb87wx15b39ntnkwokhmq7mhobutal cœmetières 0 1583818 5658456 2026-05-16T08:30:51Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cœmetière}} 5658456 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cœmetière}} 625bpbyb2k7qlmlcpdy5dfi6lzml5e5 cimetières 0 1583819 5658457 2026-05-16T08:31:29Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cimetière}} 5658457 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cimetière}} 4sne1jtqpr9e8d1a8j1vq9s1q9r8svh armes nucléaires 0 1583820 5658458 2026-05-16T08:32:30Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|arme nucléaire}} 5658458 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|arme nucléaire}} tjr0bnh6isvgb05llqbgdnd5tm9fubb papiers carbone 0 1583821 5658459 2026-05-16T08:33:13Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|papier carbone}} 5658459 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|papier carbone}} 4jzcj3b4pl8a89t4fj7ss6ecwvd0vpq papiers 0 1583822 5658460 2026-05-16T08:33:46Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|papier}} 5658460 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|papier}} 7eb5vlu2fujm2a9jhpbsczd03rhtc4c strangulations 0 1583823 5658462 2026-05-16T08:34:50Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|strangulation}} ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{çoğulu|dil=en|strangulation}} 5658462 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|strangulation}} ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{çoğulu|dil=en|strangulation}} mbscv0h1f6cuvoamhpcw9nzinspe37s pistolets à eau 0 1583824 5658464 2026-05-16T08:35:53Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|pistolet à eau}} 5658464 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{ççekim|fr|pistolet à eau}} pw9ij0n0qpf5iec3ewacy5ghbrh13yx hackeurs 0 1583825 5658465 2026-05-16T08:36:42Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|hackeur}} 5658465 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|hackeur}} l4al13dzm52tf082cxzya6w3uczyvi1 philologues 0 1583826 5658466 2026-05-16T08:37:50Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|philologue}} 5658466 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|philologue}} gsgmuir3b5xbt2auve5cj3ok2xba9zl essieux 0 1583827 5658467 2026-05-16T08:38:31Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|essieu}} 5658467 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|essieu}} dab1a3nsw301z13utcfptvp4sfgaho1 javels 0 1583828 5658468 2026-05-16T08:38:57Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|javel}} 5658468 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|javel}} hfsntfcea2cq9wkaxeojmae0v7qclmc dommages 0 1583829 5658469 2026-05-16T08:39:59Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|dommage}} 5658469 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|dommage}} 6fcq39tohkaoki93jr3w6yb8gvkxo4t blocages 0 1583830 5658470 2026-05-16T08:40:31Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|blocage}} 5658470 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|blocage}} 54xrvtmm4f28lbrjx5vwdqk8yvxzyjb convois 0 1583831 5658471 2026-05-16T08:40:53Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|convoi}} 5658471 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|convoi}} hbgfcnuj4799wgfbkpc0lvg1pa53ylp inimitiés 0 1583832 5658472 2026-05-16T08:41:54Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|inimitié}} 5658472 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|inimitié}} 7qptwtjyuxjm8j8kbt53ml6o7ynz0zr étiquettes 0 1583833 5658473 2026-05-16T08:42:20Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|étiquette}} 5658473 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|étiquette}} oot9bhqcmq3o1onyfnk1r06seze7k7f admirateurs 0 1583834 5658474 2026-05-16T08:43:11Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|admirateur}} 5658474 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|admirateur}} 2pl75chrpcp4rt51i2zcvc6iemn5cmc additifs 0 1583835 5658475 2026-05-16T08:44:02Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|additif}} 5658475 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|additif}} q3kwbo5m5k8o5li14n2gkdu0zsoi1eg cheveux 0 1583836 5658476 2026-05-16T08:45:51Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cheveu}}: [[saç]] 5658476 wikitext text/x-wiki ==Fransızca== ===Ad=== {{başlık başı|fr|çekimli ad}} # {{çoğulu|dil=fr|cheveu}}: [[saç]] te9ix31crp244y71f166s3229urc6rt agaanstsiin yiltązhí dijoolígíí 0 1583837 5658477 2026-05-16T08:50:02Z MustafaCavlak 59368 Yeni sayfa : ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[dijool|dijoolígíí]]}} # {{t|dil=nv|müzik aletleri}} [[mandolin]] 5658477 wikitext text/x-wiki ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[dijool|dijoolígíí]]}} # {{t|dil=nv|müzik aletleri}} [[mandolin]] mvidzdmfu2psbn86kx642n128qf2ccl agaanstsiin yiltązhí názhahígíí 0 1583838 5658478 2026-05-16T08:51:43Z MustafaCavlak 59368 Yeni sayfa : ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[názhah|názhahígíí]]}} # {{t|dil=nv|müzik aletleri}} [[arp]] 5658478 wikitext text/x-wiki ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[názhah|názhahígíí]]}} # {{t|dil=nv|müzik aletleri}} [[arp]] 49p0fhfxs1ysoen3dxfolgty9q1pcgh agaanstsiin yiltązhí nímazígíí 0 1583839 5658479 2026-05-16T08:53:10Z MustafaCavlak 59368 Yeni sayfa : ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[nímaz|nímazígíí]]}} # {{t|dil=nv|müzik aletleri}} [[banjo]] 5658479 wikitext text/x-wiki ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[nímaz|nímazígíí]]}} # {{t|dil=nv|müzik aletleri}} [[banjo]] bfshguxj7cgq35lf5vcs8hklvauch5a agaanstsiin yiltązhí yázhí 0 1583840 5658480 2026-05-16T08:54:13Z MustafaCavlak 59368 Yeni sayfa : ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[yázhí]]}} # {{t|dil=nv|müzik aletleri}} [[ukulele]] 5658480 wikitext text/x-wiki ==Navahoca== ===Ad=== {{başlık başı|nv|ad|baş=[[agaanstsiin]] [[yiltązh|yiltązhí]] [[yázhí]]}} # {{t|dil=nv|müzik aletleri}} [[ukulele]] malgez9wev05lhzvz5l15au8i6gj8fi vitaliser 0 1583841 5658483 2026-05-16T09:02:39Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # [[canlandırmak]] ====Çekimleme==== {{fr-eylem-er|vitalis}} 5658483 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[canlandırmak]] ====Çekimleme==== {{fr-eylem-er|vitalis}} btqez72kuebm17bdpdfs2x0tq6hcd6l 5658484 5658483 2026-05-16T09:03:42Z MustafaCavlak 59368 /* Eylem */ 5658484 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[canlandırmak]], [[canlılık]] [[vermek]] ====Çekimleme==== {{fr-eylem-er|vitalis}} a0bdmavu3b31k3m2st4wjr7db3o8iw1 vitalise 0 1583842 5658485 2026-05-16T09:04:08Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658485 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalises 0 1583843 5658486 2026-05-16T09:04:24Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658486 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisons 0 1583844 5658487 2026-05-16T09:04:40Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658487 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisez 0 1583845 5658488 2026-05-16T09:04:52Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658488 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisent 0 1583846 5658489 2026-05-16T09:05:00Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658489 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisais 0 1583847 5658490 2026-05-16T09:05:10Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658490 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisait 0 1583848 5658491 2026-05-16T09:05:19Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658491 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisions 0 1583849 5658492 2026-05-16T09:05:29Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658492 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisiez 0 1583850 5658493 2026-05-16T09:05:42Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658493 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisaient 0 1583851 5658494 2026-05-16T09:05:51Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658494 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisai 0 1583852 5658495 2026-05-16T09:05:59Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658495 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisas 0 1583853 5658496 2026-05-16T09:06:08Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658496 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisa 0 1583854 5658497 2026-05-16T09:06:17Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658497 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisâmes 0 1583855 5658498 2026-05-16T09:06:27Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658498 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisâtes 0 1583856 5658499 2026-05-16T09:06:34Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658499 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisèrent 0 1583857 5658500 2026-05-16T09:06:43Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658500 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserai 0 1583858 5658501 2026-05-16T09:06:53Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658501 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliseras 0 1583859 5658502 2026-05-16T09:07:02Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658502 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisera 0 1583860 5658503 2026-05-16T09:07:11Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658503 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserons 0 1583861 5658504 2026-05-16T09:07:20Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658504 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserez 0 1583862 5658505 2026-05-16T09:07:30Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658505 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliseront 0 1583863 5658506 2026-05-16T09:07:40Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658506 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserais 0 1583864 5658507 2026-05-16T09:07:51Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658507 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserait 0 1583865 5658508 2026-05-16T09:08:06Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658508 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliserions 0 1583866 5658509 2026-05-16T09:08:13Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658509 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliseriez 0 1583867 5658510 2026-05-16T09:08:24Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658510 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitaliseraient 0 1583868 5658511 2026-05-16T09:08:48Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658511 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisasse 0 1583869 5658512 2026-05-16T09:09:25Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658512 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisasses 0 1583870 5658513 2026-05-16T09:09:35Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658513 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisât 0 1583871 5658514 2026-05-16T09:09:43Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658514 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisassions 0 1583872 5658515 2026-05-16T09:09:51Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658515 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisassiez 0 1583873 5658516 2026-05-16T09:09:58Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658516 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 vitalisassent 0 1583874 5658517 2026-05-16T09:10:07Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658517 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiser 0 1583875 5658518 2026-05-16T09:17:31Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # [[aseksüel]] yapmak, [[aseksüelleştirmek]] ====Çekimleme==== {{fr-eylem-er|asexuelis}} 5658518 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[aseksüel]] yapmak, [[aseksüelleştirmek]] ====Çekimleme==== {{fr-eylem-er|asexuelis}} d4uf4tm8yt3gbc1udg036awvyoi5we7 5658520 5658518 2026-05-16T09:18:09Z MustafaCavlak 59368 /* Çekimleme */ 5658520 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[aseksüel]] yapmak, [[aseksüelleştirmek]] ====Çekimleme==== {{fr-eylem-er|asexualis}} slk3s9tiez5rydvmroy6u0x7qkp1pdn asexualise 0 1583876 5658519 2026-05-16T09:17:57Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658519 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 5658521 5658519 2026-05-16T09:18:31Z MustafaCavlak 59368 MustafaCavlak, [[asexuelise]] sayfasını [[asexualise]] sayfasına yönlendirme olmaksızın taşıdı: Hatalı başlıkla adlandırılmış sayfa 5658519 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualises 0 1583877 5658522 2026-05-16T09:18:48Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658522 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisons 0 1583878 5658523 2026-05-16T09:18:58Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658523 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisez 0 1583879 5658524 2026-05-16T09:19:06Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658524 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisent 0 1583880 5658525 2026-05-16T09:19:14Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658525 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisais 0 1583881 5658526 2026-05-16T09:19:22Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658526 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisait 0 1583882 5658527 2026-05-16T09:19:30Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658527 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisions 0 1583883 5658528 2026-05-16T09:19:38Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658528 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisiez 0 1583884 5658529 2026-05-16T09:19:46Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658529 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisaient 0 1583885 5658530 2026-05-16T09:19:56Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658530 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisai 0 1583886 5658531 2026-05-16T09:20:05Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658531 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisas 0 1583887 5658532 2026-05-16T09:20:13Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658532 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisa 0 1583888 5658533 2026-05-16T09:20:22Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658533 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisâmes 0 1583889 5658534 2026-05-16T09:20:30Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658534 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisâtes 0 1583890 5658535 2026-05-16T09:20:37Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658535 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisèrent 0 1583891 5658536 2026-05-16T09:20:45Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658536 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserai 0 1583892 5658537 2026-05-16T09:20:53Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658537 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiseras 0 1583893 5658538 2026-05-16T09:21:01Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658538 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisera 0 1583894 5658539 2026-05-16T09:21:09Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658539 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserons 0 1583895 5658540 2026-05-16T09:21:17Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658540 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserez 0 1583896 5658541 2026-05-16T09:21:27Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658541 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiseront 0 1583897 5658542 2026-05-16T09:21:35Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658542 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserais 0 1583898 5658543 2026-05-16T09:21:48Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658543 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserait 0 1583899 5658544 2026-05-16T09:21:59Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658544 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiserions 0 1583900 5658545 2026-05-16T09:22:08Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658545 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiseriez 0 1583901 5658546 2026-05-16T09:22:17Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658546 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualiseraient 0 1583902 5658547 2026-05-16T09:22:27Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658547 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisasse 0 1583903 5658548 2026-05-16T09:22:38Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658548 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisasses 0 1583904 5658549 2026-05-16T09:22:47Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658549 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisât 0 1583905 5658550 2026-05-16T09:22:55Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658550 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisassions 0 1583906 5658551 2026-05-16T09:23:04Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658551 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisassiez 0 1583907 5658552 2026-05-16T09:23:12Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658552 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 asexualisassent 0 1583908 5658553 2026-05-16T09:23:20Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} 5658553 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{başlık başı|fr|çekimli eylem}} # {{fr-er-çekimi}} glk3gdmpoq0czn2kwos4x2iw5b3te37 a-sexualiser 0 1583909 5658554 2026-05-16T09:26:35Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # {{farklı|dil=fr|asexualiser}} ====Çekimleme==== {{fr-eylem-er|a-sexualis}} 5658554 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # {{farklı|dil=fr|asexualiser}} ====Çekimleme==== {{fr-eylem-er|a-sexualis}} e4rcnfp1agf519gtim3qdko24ibnyb8 2mander 0 1583910 5658555 2026-05-16T09:30:24Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # {{t|dil=fr|internet jargonu}} {{farklı|dil=fr|demander}} ====Çekimleme==== {{fr-eylem-er|2mand}} 5658555 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # {{t|dil=fr|internet jargonu}} {{farklı|dil=fr|demander}} ====Çekimleme==== {{fr-eylem-er|2mand}} f4625t7rzgfu4reoikzqor7x9k1w7fn Kategori:Fransızca internet jargonu 14 1583911 5658556 2026-05-16T09:30:50Z MustafaCavlak 59368 Yeni sayfa : {{kategori söz|dil=fr|söz=internet jargonu}} 5658556 wikitext text/x-wiki {{kategori söz|dil=fr|söz=internet jargonu}} 9ewppm9b177cwuetzbb7t8njk0p4m0g abrahamiser 0 1583912 5658557 2026-05-16T09:35:01Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # [[İbrahimî]] özellik kazandırmak, İbrahimîleştirmek ====Çekimleme==== {{fr-eylem-er|abrahamis}} 5658557 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[İbrahimî]] özellik kazandırmak, İbrahimîleştirmek ====Çekimleme==== {{fr-eylem-er|abrahamis}} d1pv777omvdpbsibom4k71aojhngvdp accessibiliser 0 1583913 5658558 2026-05-16T09:37:08Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # [[erişilebilir]] hâle getirmek, erişilebilir kılmak ====Çekimleme==== {{fr-eylem-er|accessibilis}} 5658558 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # [[erişilebilir]] hâle getirmek, erişilebilir kılmak ====Çekimleme==== {{fr-eylem-er|accessibilis}} l0wl688j0fgfdghldf0d9ckqn32xfvy acromégaliser 0 1583914 5658559 2026-05-16T09:39:53Z MustafaCavlak 59368 Yeni sayfa : ==Fransızca== ===Eylem=== {{fr-eylem}} # {{t|dil=fr|dönüşlü|tıp}} [[akromegali]] [[olmak]], akromegali hastalığına yakalanmak ====Çekimleme==== {{fr-eylem-er|acromégalis}} ===Ek okumalar=== * {{R:fr:TLFi}} 5658559 wikitext text/x-wiki ==Fransızca== ===Eylem=== {{fr-eylem}} # {{t|dil=fr|dönüşlü|tıp}} [[akromegali]] [[olmak]], akromegali hastalığına yakalanmak ====Çekimleme==== {{fr-eylem-er|acromégalis}} ===Ek okumalar=== * {{R:fr:TLFi}} s394t7soym6qwj43sruwwy6hwxbmmg5 Kullanıcı:Ahmesn14 2 1583915 5658561 2026-05-16T09:52:15Z Ahmesn14 66142 Yeni sayfa : {{Babel|tr|az-4|ota-1|en-3|crh-2|Latn|Cyrl|Arab|Grek}} <br><p> Merhabalar! Ben aslında [[Türkiye]]'de yaşayan, Türk olan bir vatandaşım. Aslında [[Vikisözlük]]'e katılma sebebim [[Ön-Türkçe]] ile yaptığım araştırmalardı. Araştırırken bu siteyi keşfettim ve dedim ki uluslararası sözlük hem de [[Vikipedi]] bizzat yapmış. Aslında eski dillerle birlikte genel olarak diğer [[Türk dilleri]]ne de ilgiliyim. Ayrıca kendi oluşturduğum bir dil de var, ad... 5658561 wikitext text/x-wiki {{Babel|tr|az-4|ota-1|en-3|crh-2|Latn|Cyrl|Arab|Grek}} <br><p> Merhabalar! Ben aslında [[Türkiye]]'de yaşayan, Türk olan bir vatandaşım. Aslında [[Vikisözlük]]'e katılma sebebim [[Ön-Türkçe]] ile yaptığım araştırmalardı. Araştırırken bu siteyi keşfettim ve dedim ki uluslararası sözlük hem de [[Vikipedi]] bizzat yapmış. Aslında eski dillerle birlikte genel olarak diğer [[Türk dilleri]]ne de ilgiliyim. Ayrıca kendi oluşturduğum bir dil de var, adı Yeni Göktürkçe ve bu dil yakın zamanda internette mevcut olacak. İyi günler! 0jmcaf3fjko5mk3pwyorunj59ejv8rl vegetarians 0 1583916 5658574 2026-05-16T11:27:11Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{çoğulu|dil=en|vegetarian}} 5658574 wikitext text/x-wiki ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{çoğulu|dil=en|vegetarian}} qsr0fmehsesw701w4r9kxu1xl5dgfl8 high school 0 1583917 5658575 2026-05-16T11:30:53Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{en-ad|~}} # [[lise]] 5658575 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad|~}} # [[lise]] 2pdacldmb4to4dx051jdo6rcem7fs80 high schools 0 1583918 5658576 2026-05-16T11:31:27Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{ççekim|en|high school}} 5658576 wikitext text/x-wiki ==İngilizce== ===Ad=== {{başlık başı|en|çekimli ad}} # {{ççekim|en|high school}} rntqkl4bawgxmleuy43didjsvr1sf7b round trip 0 1583919 5658579 2026-05-16T11:39:31Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{en-ad}} # [[gidiş dönüş]] 5658579 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad}} # [[gidiş dönüş]] 5sbtd1lhxvokm511xse42ncxu7rxlvp hitchhike 0 1583920 5658580 2026-05-16T11:44:42Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Eylem=== {{en-eylem||hitchhiking|hitchhiked}} # [[otostop çekmek]] # [[otostop yapmak]] ===Ad=== {{en-ad}} # [[otostop]] ile yapılan yolculuk; otostop 5658580 wikitext text/x-wiki ==İngilizce== ===Eylem=== {{en-eylem||hitchhiking|hitchhiked}} # [[otostop çekmek]] # [[otostop yapmak]] ===Ad=== {{en-ad}} # [[otostop]] ile yapılan yolculuk; otostop 2t3eodusc8uluqmhxqecrtfgsjq5l6c hitchhiker 0 1583921 5658581 2026-05-16T11:45:20Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Ad=== {{en-ad}} # [[otostopçu]] 5658581 wikitext text/x-wiki ==İngilizce== ===Ad=== {{en-ad}} # [[otostopçu]] kegoyuk45qvfh7pvip05mqgyoqdb2q7 thumb a ride 0 1583922 5658582 2026-05-16T11:47:44Z MustafaCavlak 59368 Yeni sayfa : ==İngilizce== ===Eylem=== {{en-eylem|thumbs a ride|thumbing a ride|thumbed a ride}} # {{ABD|kat=evet}} {{deyimsel|en}} [[otostop çekmek]] 5658582 wikitext text/x-wiki ==İngilizce== ===Eylem=== {{en-eylem|thumbs a ride|thumbing a ride|thumbed a ride}} # {{ABD|kat=evet}} {{deyimsel|en}} [[otostop çekmek]] qo5qxiee2yvwv1b7npkl90ktbq55n8b