PHP dili motoru

3 Cevap php

Ben (minified zaman 3kb sonra büyük olmamalıdır olan) PHP İçerik Yönetimi yazılımı yazıyorum, ama ne motor ben diller için kullanmak gerekir (İngilizce, Hollandaca Almanca, vs, çince ..)? Ben denilen bir işlev oluştururken düşünüyordum

function _(){}

(a. ini dosyası veya benzeri) bir dosyadan dizeleri okur. Ama birileri daha hızlı daha küçük ya da olabilir motorun bir (mümkün olduğunca az kod ile tercihen bir) var mı?

Ben bu motorlar zaten varsa, değilse, söylemek ve lütfen ben _ () fonksiyonunu kullanacağız emin değilim.

3 Cevap

Bu uluslararası bir yapı-fonksiyon olduğu için (_) kullanamazsınız. Aksi takdirde (__ çağrı) veya yapı-in one yaygın gettext sistemini kullanan kullanmak kendi işlevini rulo ücretsizdir.

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 ;)