Anasayfa | Giriş Yapın | Üye Olun | Gökçe Kim? | İletişim
Gökçe’nin Web Güncesi (gwg)

Gökçe’nin Web Güncesi (gwg)

If you want to hide ‘things’, The Web is not the place.

Gökçe’nin Web Güncesi (gwg) RSS Feed
 
 

Zend_Validation , Form Validation mesajlarını türkçeleştirmek

Bir önceki yazımda Zend_Translate’i anlatmıştım. Validation hatalarını da toptan dil ile birlikte çözme konusunu sonraya bırakmıştım fakat.. Gelin görin ki dayanamadım, yazdım.

Öncelikle Zend_Validation ‘a hangi translate’i kullanacağımızı söylüyoruz. Zend_Translate kullanımını geçtiğinizi ve yapılandırmanızı tamamladığınızı varsayıyorum, eğer takıldığınız noktalar varsa buradan benim yapılandırmama / örnek bootstrapime bakabilirsiniz.

Tek yapacağınız şey, bootstrape bir

Zend_Validate_Abstract::setDefaultTranslator($translate);

eklemek. Bu sayede her Zend_Validation instance’ının kullanacağı anahtar sözcüklerini $translate yoluyla alacak. Anahtar sözcüklerinin ne olduğuna gelince..

ZF’nin ilk kez ‘pek düşünülmeden’ yaptığı bir şeyi gördüm. Validation Core’unda hata mesajları için kendi Zend_Translate’ını tam anlamda kullanmamış. Dolayısıyla ortada bir hazır çeviri dosyası veya kodun kendisinin haricinde referans da yok. Bir düşünmemişlik de kimi error keylerinin birbirinin aynı olması (Barcodelarda). Dolayısıyla bunları custom code yazmadan (extend etmeden) veya Core editlemeden yapamıyoruz. Neyse çok dolandırmadan sonuç olarak bütün anahtar kelimeleri ve ingilizce açıklamalarını Zend/Validator/* ‘dan aldım.

Buna göre 1.5 Zend_Validation hata mesajları anahtar kelimeleri aşağıdaki biçimde, ayrıca çevirisini de yapmış bulundum, ama abuk çeviriler olmuş olabilir, nitekim çeviri konusunda bir iddiam yok:

language/lang_validation.php

< ?php
return array (
'notAlnum' => ‘Sadece harflerden ve numaralardan oluşmalı’,
‘isEmpty’ => ‘Bu alanın doldurulması şart’,
‘notAlpha’ => ‘Bu alan sadece harflerden oluşmalı’,
‘notBetween’ => “‘%value%’, ‘%min%’ ve ‘%max%’ dahil olarak arasında değil”,
‘notBetweenStrict’ => “‘%value%’ ‘%min%’ ve ‘%max%’ arasında değil”,
‘ccnumChecksum’ => “‘%value%’ geçerli bir kredi kartı numarası değil”,
‘ccnumLength’ => “‘%value%’ en az 13, en çok 19 rakamdan oluşmalı”,
‘dateNotYYYY-MM-DD’ => “‘%value%’ YYYY-MM-DD formatında olmalı”,
‘dateInvalid’ => “‘%value%’ geçersiz bir tarih”,
‘dateFalseFormat’ => “‘%value%’ istenilen formata uymuyor”,
‘notDigits’ => ‘Bu alan sadece rakamlardan oluşmalı’,
‘emailAddressInvalid’ => ‘Bu e-posta adresi geçersiz (örn. kullanici@sunucu.com seklinde olmalı)’,
‘emailAddressInvalidHostname’ => “%hostname%’ , ‘%value%’ e-posta adresi için geçerli bir alanadı değil”,
‘emailAddressInvalidMxRecord’=> “‘%hostname%’ alanadının geçerli bir e-posta sunucusu yok”,
‘emailAddressDotAtom’ => “‘%localPart%’ geçerli bir dot-atom değil”,
‘emailAddressQuotedString’ => “‘%localPart%’ tırnaklı yazım biçimine uymuyor”,
‘emailAddressInvalidLocalPart’ => “‘%localPart%’ geçerli bir e-posta kullanıcı adı değil.”,
‘notGreaterThan’=>’%value%, %min% sayısından daha büyük’,
‘notHex’ => “‘%value%’ 16′lık sayı sisteminde değil”,
‘hostnameIpAddressNotAllowed’ =>”‘%value%’ geçerli bir IP adresine benziyor, fakat IP adresleri kabul edilmiyor”,
‘hostnameUnknownTld’=>”‘%value%’ geçerli bir DNS adına benziyor fakat bilinen TLD lerde bulunamadı”,
‘hostnameDashCharacter’=>”‘%value%’ geçerli bir DNS adına benziyor fakat (-) karakteri geçersiz biryerde”,
‘hostnameInvalidHostnameSchema’=> “‘%value%’ geçerli bir DNS’e benziyor fakat sağlanan TLD ( ‘%tld%’ ) şemasında bulunamadı”,
‘hostnameUndecipherableTld’=> “‘%value%’ geçerli bir DNS’e benziyor fakat TLD bilgisi çıkarılamadı”,
‘hostnameInvalidHostname’=> “‘%value%’ geçerli bir DNS adına benzemiyor”,
‘hostnameInvalidLocalName’=> “‘%value%’ geçerli bir yerel ağ adına benzemiyor”,
‘hostnameLocalNameNotAllowed’=> “‘%value%’ geçerli bir yerel ağ adına benziyor, fakat yerel ağ girişi kabul edilmiyor”,
‘notSame’=>’Öğeler birbiriyle uyuşmuyor’,
‘missingToken’=>’Karşılaştırmak için yeterli öğe yok’,
‘notInArray’=>”‘%value%’ verilerin içinde bulunamadı”,
‘notInt’=>”Bir tam sayı değil.”,
‘notIpAddress’=> “‘%value%’ geçerli bir IP adresi değil”,
‘notLessThan’ => “‘%value%’, %max% sayısından büyük.”,
‘regexNotMatch’ => “‘%value%’, RegExt ‘%pattern%’ eşleşmesinde başarısız oldu”,
’stringLengthTooShort’ => “‘%value%’, %min% karakterden daha az karakter içeriyor.”,
’stringLengthTooLong’=> “‘%value%’, %max% karakterden daha çok karakter içeriyor”
);
?>

Hepsi bu kadar, geri kalanını Zend_Translate bizim için yapacaktır.

Bir cevap bırakın