• 22-01-2014, 23:02:21
    #10
    fikirlerinizi bekliyorum arkadaşlar.
    gettext alternatifi bildiğiniz class, function falan varmı?
  • 23-01-2014, 07:17:16
    #11
    Kimlik doğrulama veya yönetimden onay bekliyor.
    <?php
    
    $input = 'Renewal of sadfasdfa.com for 6548 year';
    
    $translates = array(
        'Active' => 'Aktif',
        'InActive' => 'Pasif',
        '~^Renewal of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain yenilemesi',
        '~^Registration of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain kaydı',
        '~^Required parameter missing: (.+?)$~' => 'Gerekli parametre eksik: $1',
    );
    
    function translate($input, $diffTranslatesArray = null)
    {
        global $translates;
    
        if (!is_null($diffTranslatesArray)) {
            $translates = $diffTranslatesArray;
        }
    
        $shortest = -1;
        foreach ($translates as $word => $translated) {
            $lev = levenshtein($input, $word);
    
            if ($lev == 0) {
                $closest = $word;
                $closestTranslate = $translated;
                $shortest = 0;
    
                break;
            }
    
            if ($lev <= $shortest || $shortest < 0) {
                $closest = $word;
                $closestTranslate = $translated;
                $shortest = $lev;
            }
        }
    
        if ($shortest == 0) {
            return $closestTranslate;
        }
        else {
            return preg_replace($closest, $closestTranslate, $input);
        }
    }
    
    echo translate($input);
    Performans olarak cok da kotu sayilmaz sanirim; ama degisken sayisi arttikca mutlaka performans dusecektir:
    Alıntı
    sadfasdfa.com için 6548 yıllık domain yenilemesi float(0.00018000000000007)
    sadfasdfa.com için 6548 yıllık domain yenilemesi float(0.00014)
    sadfasdfa.com için 6548 yıllık domain yenilemesi float(0.00013600000000002)
  • 23-01-2014, 15:50:10
    #12
    grafitus adlı üyeden alıntı: mesajı görüntüle
    <?php
    
    $input = 'Renewal of sadfasdfa.com for 6548 year';
    
    $translates = array(
        'Active' => 'Aktif',
        'InActive' => 'Pasif',
        '~^Renewal of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain yenilemesi',
        '~^Registration of (.+?) for (\d{4}) year$~' => '$1 için $2 yıllık domain kaydı',
        '~^Required parameter missing: (.+?)$~' => 'Gerekli parametre eksik: $1',
    );
    
    function translate($input, $diffTranslatesArray = null)
    {
        global $translates;
    
        if (!is_null($diffTranslatesArray)) {
            $translates = $diffTranslatesArray;
        }
    
        $shortest = -1;
        foreach ($translates as $word => $translated) {
            $lev = levenshtein($input, $word);
    
            if ($lev == 0) {
                $closest = $word;
                $closestTranslate = $translated;
                $shortest = 0;
    
                break;
            }
    
            if ($lev <= $shortest || $shortest < 0) {
                $closest = $word;
                $closestTranslate = $translated;
                $shortest = $lev;
            }
        }
    
        if ($shortest == 0) {
            return $closestTranslate;
        }
        else {
            return preg_replace($closest, $closestTranslate, $input);
        }
    }
    
    echo translate($input);
    Performans olarak cok da kotu sayilmaz sanirim; ama degisken sayisi arttikca mutlaka performans dusecektir:
    cevap için teşekkür ederim hocam.
    şuanda iş yerindeyim eve geçtiğimde test edeceğim.
    gettext ile karşılaştıracağım aralarında çok performans farkı yoksa gettext yerine kullanacağım
  • 23-01-2014, 17:51:48
    #13
    S_HA_DO_W adlı üyeden alıntı: mesajı görüntüle
    cevap için teşekkür ederim hocam.
    şuanda iş yerindeyim eve geçtiğimde test edeceğim.
    gettext ile karşılaştıracağım aralarında çok performans farkı yoksa gettext yerine kullanacağım
    Test sonuclarini yazarsaniz buraya memnun olurum. Ego tatmini yapacagim da.
  • 24-01-2014, 00:39:20
    #14
    grafitus adlı üyeden alıntı: mesajı görüntüle
    Test sonuclarini yazarsaniz buraya memnun olurum. Ego tatmini yapacagim da.
    Tam olarak deneme şansım olmadı fakat ufak bir test yaptım hocam.
    ama test sonucu beni şaşırttı açıkcası.


    denene dizinin eleman sayısı: 208
    ekrana bastırılan rasgele değer sayısı: 35
    ekrana yazdırılanlar içinde değişken olan sayı: 15


    benim yazdığım fonksiyonun yüklenme süresi
    Alıntı
    Sayfa 0,01 saniye içerisinde yüklenmiştir.
    sizin yazdığınız fonksiyonun yüklenme süresi
    Alıntı
    Sayfa 0,03 saniye içerisinde yüklenmiştir.
    şeklinde çıktı verdi.
    po ile deneme yapamadım.
    ama bu kadar az sayıda bile bu kadar fark olması şaşırttı beni.
    dizi ve ekrana bastırılan sayısı arttıkça sıkıntı yaratabilecek bir değer.
    bu arada özel karakterlerde her ikimizin yazdığı fonksiyonda da sıkıntılar var [,],&,+ vs gibi değerler girince işin içine sapıtabiliyorlar