Kurulum çok dilli bir web sitesi için en etkili yolu nedir

5 Cevap php

I'm developing a website that will be available in different languages. It is a LAMP (Linux, Apache, MySQL, PHP) setup, and it makes use of Smarty, mostly for the template engine.
The way we currently translate is by a self-written smarty plugin, which will recognize certain tags in the HTML files, and will find the corresponding tag in an earlier defined language file.

The HTML could look as follows:

<p>Hi, welcome to $#gamedesc;!</p>

Ve dil dosyası bu gibi görünebilir:

gamedesc:Poing 2009$;
welcome:this is another tag$;

Olur sonra hangi çıkış

<p>Hi, welcome to Poing 2009!</p>


This system is very basic, but it is pretty hard to control, if I f.e. would like to keep track of what has been translated so far, or give certain users the rights to translate only certain tags.
I've been looking at some alternative ways to approach this, by either replacing the text-file with XML files which could store some extra meta-data, or by perhaps storing all the texts in the database, and retrieving it there.
My question is, what would be the best way to make this system both maintainable and perform well with high user-traffic? Are there perhaps any (lightweight) plugins I could take a look at?

5 Cevap

Sen gettext bir atış verebilir. Bu çoğu C / C + + linux uygulamaları yapılır yoldur ve çok PHP için bir uzantısıdır. Fikir zaten ne yaptığınızı çok farklı değil, ama çevirilerin mantainance kolaylığı araçları vardır (yani poedit).

Çeviriler kullanıcı hakları için, gettext çok yardımcı olmayacak, ben size kendi başınıza yapmanız gerekir ya da daha akıllı çözümler varsa bazı çerçeveler bakacağız düşünüyorum.

Belki lib gettext bir göz alarak bazı ipuçları http://php.net/manual/en/book.gettext.php yardımcı olur umarım yardımcı olabilir!

Eğer bir bileşik kimliği ile metin mağaza dizeleri, her kullanabilirsiniz sizin veritabanındaki bir tablo olması gerekir. Kompozit kimliği dil kimliği ve metin düğüm kimliği kadar yapılacaktır.

Sen kullanıcıya tercih edilen dili seçmek için bir şans vermek gerekir. Eğer kullandığınız her dilde, ya da tüm site içeri vied varsayılan bir dil için "bu tercüme edilmedi" varsayılan sahip ya da emin olmalısınız

Web sitenizdeki ile metnin her bit için değil, daha sonra sayfa ile metnini saklamak, sadece ona bir kimliği atamak.

Sayfa hizmet yaparken, metin düğümü kimliği ve tercih edilen dil kimliğini aramak ve metin bu dizeyi veya varsayılan için dize yüklenemedi.

Projemizde, http://pkp.sfu.ca/ojs, biz çeviri anahtar-değer çiftleri depolamak için XML dosyalarını kullanabilirsiniz. Kodumuzu göz atın: http://github.com/pkp/pkp-lib/blob/master/classes/i18n/PKPLocale.inc.php

Biz her yerel ayar için XML dosyalarını okumak için bu sınıfı kullanmak ve bizim kod biz Locale :: çevirmek ('locale.key.name') kullanın;. Gettext benzer, ama daha kolay güncellenmesi için bir XML dosyası kullanarak.

Bugün web şeyler etrafa ben bu web sitesine rastladım: http://translateth.is/

Bazı javascript kopyalayıp yapıştırmak ... kullanımı basit görünüyor.