PHP nasıl depolamak ve dil özel metni almak mı?

4 Cevap php

Farklı ülkelerdeki insanlar tarafından kullanılan bir web uygulaması inşa sürecinde şu anda değilim

Şu anda tüm mesajları I çıkış (yani hataları vb) İngilizce olduğunu.

Dil sabitleri depolamak ve bunları almak için en iyi yolu nedir?

Bu mesajlar çok kullanıcı vb girilen veriler gibi onlara enjekte bilgi bit gerekebilir ki oldukça büyük olasılıkla,

Örneğin biz hata olabilir:

The email address 'test@test.co' was not a valid email address.

4 Cevap

GNU gettext araçları ve bu iş için bir çerçeve sunmaktadır. This is a decent article PHP gettext kullanma hakkında.

Enjekte bilgi için zamanki yaklaşımı printf () kullanarak kodları, normal olarak% s edilir:

The email address '%s' was not a valid email address.

Bunun ötesinde, bir dizi seçeneğiniz var:

  • gettext fonksiyonları ilk dize dosyaları oluşturmak için özel araçlar kullanmak ve çeviri durumunu izlemenize izin

  • Sadece çevirmek için birkaç dizeleri varsa iyi eski PHP sabitleri çok kullanışlı

Ayrıca, yerelleştirme sadece metin çeviri üzerinde ibaret olmadığını unutmayın. Ayrıca gibi hesap şeyler almak zorunda:

  • Tarih ve sayısal biçimleri
  • Çoğul / tekil formları
  • Alfabetik sıralama

Ben veritabanında depolamak ve dil ile almak istiyorum. Örneğin,

Anahtar = 'error_email' VE lang = 'de' mesajlar SELECT mesajı;

Kafamın üst kapalı, sadece çok genel bir fikir

Muhtemelen farklı bir tablo dilleri depolamak ve yabancı anahtarları kullanmak mantıklı.

Eğer içine baktım XLIFF? I this article özellikle bilgilendirici olduğunu düşünüyorum.