Birkaç hususlar:
1. Translations
Who will be doing the translations? People that are also connected to the site? A translation agency? When using Gettext you'll be working with 'pot' (.po) files. These files contain the message ID and the message string (the translation). Example:
msgid "A string to be translated would go here"
msgstr ""
Şimdi, bu sadece iyi ve bu çevirmek için ihtiyaç duyan herkes için anlaşılabilir görünüyor. Anahtar kelimeler kullandığınızda Mike anlaşılacağı gibi ama yerine ne tam cümle, ne olur? Birisi "address_home" denilen bir msgstr çevirmesi gerekiyorsa bu bir başlık "Ev adresi" olabilir veya bir tam cümle olduğunu gerekir ise, o hiçbir ipucu vardır. Bu durumda, bu yüzden gibi, gettext fonksiyonu çağırıyoruz hemen önce dosyaya açıklama eklemek için emin olun:
/// This is a comment that will be included in the pot file for the translators
gettext("ready_for_lost_episode");
. Po dosyaları oluştururken xgettext --add-comments=///
kullanarak bu ekleyeceğim. Ancak, Gettext bu şekilde kullanılmak üzere ment sanmıyorum. Ayrıca, size bir) muhtemelen bir noktada bir hata yapacağım görüntülemek istiyorsanız every metinle Yorum eklemek için gerekiyorsa, b), bütün script zaten metinlerle dolu olacak konum sadece yorum formu, c) yorumları doğrudan kodunuzda fonksiyonunun pozisyonuna bağlı olarak, her zaman convient değil Gettext fonksiyonu yukarıda yerleştirilmesi gerekiyor.
2. Maintenance
Once your site grows (even further) and your language files along with it, it might get pretty hard to maintain all the different translations this way. Every time you add a text, you need to create new files, send out the files to translators, receive the files back, make sure the structure is still intact (eager translators are always happy to translate the syntax as well, making the whole file unusable :)), and finish with importing the new translations. It's doable, sure, but be aware with possible problems on this end with large sites and many different languages.
Another option: combine your 2nd and 3rd alternative:
Şahsen, daha kullanışlı bir (basit) CMS kullanarak bir veritabanı değişkenleri ve çeviriler tutmak ve dosyaları kendiniz dile Alakalı metinleri dışa çeviri yönetmek için bulabilirsiniz:
- veritabanına değişkenler ekleyebilir (örn: id, sayfa, değişken);
- Bu değişkenler (örneğin: id, varid, dil, çeviri) çeviriler ekleyebilirsiniz;
- , ilgili değişkenleri ve çeviriler seçmek bir dosyaya yazmak;
- sitenize ilgili dil dosyasını içerir;
- Bir değişkenleri metnini görüntülemek için kendi işlevi oluşturmak:
text('var');
ya da belki bir şey __('faq','register','lost_password_text');
gibi
Noktası 3, veritabanından ilgili tüm değişkenleri ve çeviriler seçiminde bir dizi koyarak ve bir dosyaya serlialized dizi yazı kadar basit olabilir.
Avantajları:
Bakım. Metinleri bakımı büyük projeler için çok daha kolay olabilir. You can sadece bu değişkenin ait sitenin hangi parçası tanımlar veritabanına bir sütun ekleyerek sayfa, bölümler ya da site içinde diğer bölümleri tarafından grup değişkenleri. Hızlı bir şekilde, örneğin kullanılan tüm değişkenlerin bir listesini indirebiliriz Bu şekilde SSS sayfası.
Tercüme. Sen tek bir sayfada tüm farklı dillerde tüm çevirileri ile değişken görüntüleyebilirsiniz. Bu, aynı anda birden çok dilde metinleri çevirebilir insanlar için yararlı olabilir. Ve bu çeviri mümkün olduğunca iyi şekilde bağlam için bir fikir almak için diğer çevirilerini görmek için yararlı olabilir. Ayrıca tercüme edilmiştir öğrenmek için veritabanını sorgulamak değil ne olabilir. Belki olası eski çevirilerin takip damgaları ekleyin.
Erişim. Bu çeviri kim olacak bağlıdır. Sen ihtiyaç olması halinde bir çeviri ajansı kişiye erişim vermek için basit bir oturum açma ile CMS sarın ve sadece onları belirli dil veya sitenin hatta bazı kısımlarını değiştirmek için izin verebilirsiniz. Bu (bu daha önce belirtildiği gibi aynı sorunları ile gelebilir rağmen.) Elle çevrilen ve daha sonra içe edilebilir bir dosyaya veri yine çıkışın bir seçenek değilse. Sen çevirmen için bağlam olarak (İngilizce ya da başka bir ana dili) var zaten çeviriler birini ekleyebilirsiniz.
Tüm ben size özellikle uzun vadede, bu şekilde çeviriler üzerinde çok daha fazla kontrole sahip olacak bulacaksınız düşünüyorum. Sana hız veya yerli gettext işlevine göre bu yaklaşımın etkinliği hakkında bir şey söyleyemem. Ancak, dil dosyalarının boyutuna bağlı olarak, ben büyük bir fark olacak sanmıyorum. Eğer grup, sayfa veya bölüm değişkenleri ise, Alway sadece gerekli parçaları içerebilir.