goker

göker

cebeci

developer

edirne

goker.cebeci :: yaşam için hayata dair geliştirme çabaları :: Web Developer Olmak :: Türkçe Dil bilgisi

Türkçe Dil bilgisi

yazım: 15 Kasım 08 11:52 / güncelleme: 21 Kasım 08 19:00

Siteye dil bilgisi öğretmek.

    Geçenlerde bir resim galerisi sayfası için "40 fotoğraftan 2'nci" şeklinde bir açıklama kısmı kullanmak istedim. Türkçe sondan eklemeli bir dil malum, İngilizce gibi "Photo 2 of 40" (bkz. Facebook) şeklinde kestirip atamıyorsunuz.
   
    Ben de kelimeye veya rakama  -in ve -ci ekleri getiren bir fonksiyon yazmaya karar verdim. Fonksiyon kelimeyi sondan başa doğru tarayacak ve rastladığı ilk ünlü harfe ya da rakama göre; 0,10,100,1000 sayıları için sıfırları sayarak, basamak sayısına göre uygun eki getirecek.

    Kelime sesli harf ile sonlanıyorsa, araya kaynaştırma için -n ekleyecek; rakamlarda ise sesli ile bitenlerde, ekten sesli harfi eksiltecek ve opsiyonel olarak -ci ekleyecek.

    Sonuç olarak aşağıdaki fonksiyon çıktı.

    PHP'nin string fonksiyonların UTF-8 uyuzluğu sebebiyle  strrev()  ve split()  kullanmadım.

public static function grammar($word,$ci = false){    preg_match_all('/./us', $word, $a);    foreach (($reverse = array_reverse($a[0])) as $key=>$chr) {        if($chr=='0') $zero++;        if(in_array($chr,array('a','e','ı','i','o','ö','u','ü',
        1,2,3,4,5,6,7,8,9))) break;
    }    if($zero) $chr = $zero>2?'i':($zero>1?'ü':($chr?$chr.'0':'ı'));    if(in_array($chr,array(1,5,8,70,80,'e'))) $chr = 'i';    elseif(in_array($chr,array(3,4,'ö'))) $chr = 'ü';    elseif(in_array($chr,array(9,10,30,'o'))) $chr = 'u';    elseif(in_array($chr,array(40,60,90,'a'))) $chr = 'ı';    $supp = '\''
        .($key=='0'&&!is_numeric($reverse[0])?'n':'')
        .(!is_numeric($chr)&&$chr!='0'?$chr:'').'n';
        if($ci)            if(in_array($chr,array(2,7,20,50))) $supp .= 'ci';            elseif($chr == 6) $supp .= 'cı';            else $supp .= 'c'.$chr;        return $word.$supp;}
anahtar kelimeler: türkçe dil bilgisi

Yorumlar

Sitede yer alan yorumlar, kullanıcıların kendi görüşleridir. Kullanıcı yorumlarından goker.cebeci sorumlu tutulamaz.

Yorum yazmak için üye girişi yapın.

loader

Web Developer Olmak

Web Developer'ın bitmeyen geliştirme çabaları.

Konular

fPlayer (1) Web Developer Olmak (25) Bilgisayar Dertleri (4) Genel (3) az LAf ÇOK iŞ (3) beN'im gözümden (1)
ubuntu server php5 powered mysql database mootools 1.2 w3c xhtml 1.1 w3c css
Sitedeki içerikler bilgi amaçlı olup, kullanımından doğacak sorunlardan göker.cebeci sorumlu tutulamaz.