Sorunun tam yeri burası mı ondan da emin değilim ama kısaca bir örnekle sorunu anlatayım, çözümü bilen mutlaka vardır.
Tuba's kelimesini Tuba'nın olarak çevrilmesi gerekirken Tuba'in şeklinde çevriliyor. Çünkü ben Tuba ismini değişken olarak atadım, bu kısım Ahmet, Mehmet olarak değişiyor. Hemen yanına "in" takısı yazdım. Mehmet kelimesinde sorun yok ama kelime Tuba olunca, Tuba'in şeklinde tuhaf birşey çıkıyor. Facebook'ta bu sorunun giderildiğini, birşekilde scriptlerinde büyük küçük sesli uyumlarına uyduklarını gördüm. Bunu php ile nasıl yapmış olabilirler acaba?
Php script çevirilerinde sesli uyumu hataları
7
●428
- 20-07-2010, 15:16:44Son 2 harfe göre yapılabilir diye düşünürken bi kaç örnekte onunda olmadığını keşfettim..
Sanırım biraz fazla koşul koymak gerekicek bi çok hece için
Sevda nın
Ali nin
Mehmet in
Kemal in
Nihal in
Uğur un
Burak ın
bunun gibi sanırım bi 5-10 tane daha çıkar bu kadar şart koyarak son 2-3 harften yapılabilir - 20-07-2010, 15:51:02Eposta Aktivasyonu GerekmekteSon harf ünlüyse nin
Ünsüzse in
tabi "ın/in/un/ün/nın/nin/nun/nün" ayrımı istiyorsanız biraz daha uğraşıcaksınız.Ünlü uyumlarına bakmanız gerek. - 20-07-2010, 17:59:33Eposta Aktivasyonu Gerekmekteİşi basite indirgeyelimCarlisle adlı üyeden alıntı: mesajı görüntüle
aeıioöuü harflerini 1 e
geri kalan sessiz harfleri de 0 a çevirelim
kelime: selam olursa, çevirince 01010 oluyor. 0 sa sessiz 1 se sesli. - 21-07-2010, 17:06:56Misafir
<?php function unlu($isim) { $sesliler = array( "a" => "a' nın", "e" => "e' nin", "ı" => "ı' nın", "i" => "i' nin", "o" => "o' nun", "ö" => "ö' nün", "u" => "u' nun", "ü" => "o' nün" ); $geciyomu = "aeıioöuü"; $karakter= strlen($isim); $karakter2= $karakter-1; $karakterm=substr($isim,$karakter2,$karakter); if(strstr($geciyomu,$karakterm)) { $sonuc = strtr($karakterm,$sesliler); $isim=substr($isim,0,$karakter-1); $isim = "".$isim."$sonuc"; } else { $isim="".$isim."' ın"; } return $isim; } $isim = "Beyaz"; echo unlu($isim); // Beyaz ın $isim = "Tuba"; echo unlu($isim); // Tuba' nın ?>