Devam et → Genel Bakış
← Tüm yazılar

Formlar Türk isimlerini neden reddediyor: Ş, Ğ, Ü ve iki ayrı İ

7 dk okuma türkçe isimler form doğrulama veri
Boş bir form alanı, yanında kırmızı bir damga ve yazısız bir damga izi, mavi bir kalem

"Lütfen geçerli bir isim girin" uyarısı Türkiye'de milyonlarca kişiye yanlışlıkla çıkıyor. TÜİK'in 2025 verisine göre Türkiye'de en çok kullanılan 60 ismi 21,1 milyon kişi taşıyor. Bu isimlerin 14'ü, yalnız İngiliz alfabesindeki 26 harfi kabul eden bir form alanına küçük harfle bile yazılamıyor: Ayşe, Hüseyin, İbrahim, İsmail, Ömer, Özlem, Süleyman, Büşra, Hülya, Kübra, Songül, Tuğba, Yağmur, Ayşegül. Bu 14 isim 4,5 milyon kişinin adı.

İsim büyük harfle yazıldığında, yani e-Devlet çıktılarında, banka ve kargo kayıtlarında ve TÜİK'in kendi listelerinde olduğu gibi, sayı ikiye katlanıyor: ALİ, EMİNE, HATİCE, ELİF de takılıyor. Büyük harfle 60 ismin 28'i, 9,2 milyon kişi, "yalnız A–Z" kuralını geçemiyor.

Rakamlar TÜİK Nüfus İstatistikleri Portalı'nın "En Çok Kullanılan İsimler" tablosundan, yaşayan nüfus için her cinsiyette ilk 30 isimden 13 Ekim 2026'da hesaplandı. Yalnız en yaygın 60 isme baktığımız için gerçek sayı daha yüksek: Gülşen, Şükrü, Çağrı, Gökhan ve Doğan bu listenin dışında kalıyor.

Türkiye'nin en yaygın 30 ismi, taşıyan kişi sayısına göre; "yalnız A–Z" kuralına takılanlar kırmızı, büyük harfle İ içerenler mavi

Birinci sorun: Ş, Ğ, Ü, Ö, Ç ve İ

Formlarda sık görülen kural, isim alanında yalnız A'dan Z'ye harfleri, boşluğu ve kesme işaretini kabul etmek. İngilizce için yazılmış hazır doğrulama kütüphanelerinin, eski veritabanı alanlarının ve "özel karakter girmeyin" uyarılarının çoğu bu kuralı uyguluyor.

Türkçede bu kuralı geçemeyen harfler: ç, ğ, ı, ö, ş, ü ve büyük İ. En yaygın 60 isimde ayrıntı şöyle:

İsim Kişi Takıldığı harf
Ayşe 906.873 ş
Hüseyin 571.822 ü (büyük harfle ayrıca İ)
İbrahim 505.052 İ
İsmail 434.992 İ
Ömer 422.803 Ö
Özlem 233.876 Ö
Süleyman 219.082 ü
Büşra 214.516 ü, ş
Hülya 196.762 ü
Kübra 192.160 ü
Songül 179.557 ü
Tuğba 161.170 ğ
Yağmur 158.085 ğ
Ayşegül 153.693 ş, ü

Bu kişilerin bir kısmı sonunda "Ayse" ya da "Huseyin" yazarak formu geçiyor. O zaman da sorun başka yere taşınıyor: kargo etiketinde, faturada ve e-postanın hitabında isim yanlış yazılıyor, aynı kişi iki farklı yazımla iki kez kaydediliyor.

İkinci sorun: büyük İ ve küçük ı

Türkçede iki ayrı i var: noktalı i/İ ve noktasız ı/I. Çoğu programlama dilinin varsayılan büyük-küçük harf dönüşümü bunu bilmiyor, ve bu sessiz bir hataya yol açıyor.

  • Büyük harften küçüğe: Python'da "ALİ".lower() ve JavaScript'te "ALİ".toLowerCase() "ali" değil, "i"nin üstüne ayrıca birleşen bir nokta eklenmiş dört karakterlik "ali̇" döndürüyor. Ekranda neredeyse aynı görünüyor ama "ali" ile eşleşmiyor. Arama, tekilleştirme ve eşleştirme bu isimde başarısız oluyor.
  • Küçük harften büyüğe: "kadir".toUpperCase() "KADİR" değil "KADIR" veriyor. Türkçe okuyan biri için bu başka bir kelime.

En yaygın 60 ismin 17'si büyük harfle yazıldığında İ içeriyor: Emine, Ali, Hatice, Hüseyin, Elif, İbrahim, İsmail, Fatih, Halil, Yasemin, Kadir, Dilek, Rabia, Yasin, Metin, Sevim, Fadime. Bu 17 isim 6,2 milyon kişinin, yani listedeki kişilerin %29'unun adı. Elinizdeki liste büyük harfli bir dışa aktarımdan geliyorsa, her üç kişiden birinin adı bu dönüşümde bozulabilir.

Çözüm dilin kendisinde var ama varsayılan değil:

  • JavaScript: ad.toLocaleLowerCase('tr-TR') ve ad.toLocaleUpperCase('tr-TR').
  • Python: yerleşik lower() dile göre çalışmaz. Önce İ → i ve I → ı eşlemesini yapın, sonra lower() çağırın; ya da ICU kullanan bir kütüphane (PyICU) seçin.
  • Java: toLowerCase(Locale.forLanguageTag("tr")).
  • PHP: mb_strtolower() dile göre çalışmaz; aynı ön eşlemeyi yapın.

Bu dönüşümü yalnız Türkçe metinlere uygulayın. "IVAN" Türkçe kurala göre küçültülürse "ıvan" olur.

Üçüncü sorun: hitap

İsimden cinsiyet tahmininin Türkiye'deki en yaygın kullanımlarından biri, yazışmada "Sayın Ahmet Bey" ya da "Sayın Ayşe Hanım" yazmak. Bey ve Hanım soyadıyla değil adla kullanılıyor, bu yüzden adın doğru okunması şart: "Sayın Huseyin Bey" ya da "Sayın İbrahi̇m Bey" yazan bir sistem, hitabı doğru yapsa bile adı yanlış yazmış oluyor.

Cinsiyetten emin olunmadığında Türkçenin kolay bir çıkışı var: "Sayın Deniz Yılmaz". Bu biçim cinsiyet taşımıyor ve resmî yazışmada doğal okunuyor. Diğer ülkelerde isimden yazılan hitabın ne sıklıkla yanlış çıktığını ayrıca ölçtük. Örneğin ABD'de her 47 kişiden birine yanlış cinsiyetle hitap ediliyor.

Ne yapmalı

  • İsim alanında Unicode'daki her harfi kabul edin. Boşluk, kesme işareti ve tire de geçsin.
  • İsmi kişinin yazdığı gibi saklayın. Karşılaştırma için ayrı bir normalleştirilmiş alan tutun ve Türkçe dönüşüm kuralını orada uygulayın.
  • Büyük harfli listeleri dile göre küçültün. ALİ'nin "ali̇" olması, sonraki her adımda sessizce bozulan bir kayıt demek.
  • Reddetmek yerine işaretleyin. Gerçekten şüpheli bir girdiyi bir inceleme kuyruğuna gönderin. Aynı ölçümü on ülkenin resmî kayıtlarında da yaptık: "yalnız A–Z" kuralı Fransa'da doğanların %14,5'ini, Polonya'da yaşayanların %13,8'ini reddediyor.

NameGender bunu nasıl ele alıyor

İsimden cinsiyet API'miz Türkçe harfleri ve iki i'yi kendisi çözüyor. Aşağıdaki girdilerin hepsi aynı kayda gidiyor ve aynı sonucu veriyor:

Girdi Sonuç
Ali, ALİ, ali̇ (birleşen noktalı) erkek
Emine, EMİNE kadın
Hüseyin, HÜSEYİN, HUSEYIN erkek
Ayşe, AYSE kadın
İSMAİL YILMAZ erkek

Bir kısıtı da açıkça söyleyelim: TÜİK yalnız en yaygın 30 ismi sayısıyla yayımlıyor ve kullanım koşulları belirsiz olduğu için bu sayıları veritabanımıza katmadık. Bu yazıda yalnızca yayımlanmış toplamları kaynak göstererek kullandık. Türkçe isimlerin cevapları, bu isimlerin Türkiye dışındaki resmî kayıtlarda (Avusturya, İsviçre, Fransa, Birleşik Krallık gibi) sayılmış kullanımına ve 195 ülkeyi kapsayan sayımsız bir isim sözlüğüne dayanıyor. Ülke ipucu olarak TR gönderdiğinizde güven düzeyi buna göre "doğrulanmamış" olarak işaretleniyor. Ayrıntılar Türkçe ürün sayfamızda.

Yöntem

Betik scripts/turkish-name-letters.py. TÜİK'in 2025 yılı "En Çok Kullanılan İsimler" Excel çıktılarını (erkek ve kadın, ilk 30) okuyor ve her isim için büyük ve küçük harfli biçimde A–Z dışı harf olup olmadığını, büyük harfte İ bulunup bulunmadığını ve Python'un varsayılan lower() sonucunu yazıyor. Grafik scripts/turkish-name-letters-chart.mjs ile aynı dosyadan çiziliyor.

Bu yazıdaki sonuçları kendi isim listenizle deneyebilirsiniz. Küçük denemeler için ücretsiz kota yeterli.