Bir sprintf () gibi fonksiyon haline getirerek ve tercüme biçim dizesi dayalı, gibi pek: Ben olsaydım ben (gettext çok benzer olduğuna inanıyorum) gibi gibi benim çeviri işlevini yapacak:
function __() {
$a = func_get_args();
$a[0] = lookup_translation($a[0]);
return call_user_func_array("sprintf", $a);
}
Şimdi, sadece bu gibi işlevini kullanabilirsiniz:
echo __("Thanks for logging in, %s!", $username);
Ve bir veri dosyasında bir yere sahip:
"Thanks for logging in, %s!"="Merci pour enlogger, %s!" (*)
Bu avantajlar şunlardır:
- Eğer her mesaj için tanımlayıcıları kadar düşünmek zorunda değilsiniz:
__("login_message", $username)
, __("logout_message", $username)
, vs ..
- Sen hemen sadece bir tanımlayıcı kullanılacak eğer olurdu, hangi dize için bir çeviri yazmak zorunda değilsiniz. Eğer kodlama bitti ve her şey İngilizce çalışır kez, sonradan çeviri erteleme olabilir.
- (Benzer) Bir seferde tüm diller için tüm dizeleri çevirmek zorunda değilsiniz, ancak parçalar halinde bunu yapabilirsiniz
Maksimum kolaylık sağlamak için, ben bir yerde __
function günlük çevrilmemiş mesajları yapacak, böylece çevrilmemiş dizeleri için avcılık gitmek zorunda değilsiniz. Sistem tercüme gerekenleri söyleyeyim!
(*) Yasal Uyarı: Fransızca bilmiyorum ;)