Çoklu dil desteği ile PHP uygulaması oluşturmak için nasıl (İngilizce, Fransızca, Çince vb.)

2 Cevap php

Ben LAMP ve Smarty şablon çerçeve kullanan bir web uygulaması inşa ediyorum. Web sitesi (.. vb bize sayfası hakkında, hata uyarıları, onay e-postalar) statik içerik bol olacak.

Web uygulaması birden fazla dili desteklemesi gerekir. Aşağıdaki yaklaşım uygun mudur?

1) Smarty şablon sayfaları (html sayfaları) ile ilgili tüm statik bir kopyasını uygun dilde başlık etiketi için bir dize döndürür {getTerm = 'başlığı' about.xml '= lang dosyası} gibi smarty eklentileri çağrıları ile değiştirilecektir

2) dosya about.xml çoklu dil sözlüğü gibi davranan web sunucusu üzerinde bir xml belgedir. Bu yüzden bu gibi xml düğümleri olacak

<term value="title">
   <en>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; is a great site</en>
   <fr>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; c'est website magnifique</fr>
   <ch>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>
<term value="signupmessage">
   <en>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; great deals!</en>
   <fr>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; magnifique deals!</fr>
   <ch>&lt;a href=&quot;http://stackoverflow.com&quot;&rt;Stackoverflow&lt;/a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>

3) The url structure for the site will be http://mywebsite.com/language/index.php. To do this, my webserver will have symbolic links such as ln -s ./en ./ so that http://mywebsite.com/en/index.php points to the same php page as http://mywebsite.com/fr/index.php, but I will check the url for language settings. My hope is that google will index both versions of the site.

Bu iyi bir yaklaşım mı? Xml bu htmlentity html etiketleri kodlanmış olsa bile farklı dillerde içeriği depolamak için en iyi biçimidir? Ben bir şey göz ardı mı?

2 Cevap

XML bir biçimdir ve bunun bu kullanımı çok kötü değil. Bu HTML varlıklar dışında okunabilir nispeten insan olmanın avantajına sahiptir. Bunun için CDATA bölümleri kullanarak deneyebilirsiniz. Bunun için XML kullanmanın bir avantajı tüm diller, tüm tuşlar için mevcut çeviriler var olduğunu doğrulamak için bir DTD kullanabilirsiniz olmasıdır. UTF-8 veya UTF-16 kullanarak dosyayı kodlamak ve dosyanın üst kodlama koyarsanız muhtemelen yardımcı olur emin olun. UTF-8 tavsiye ederim.

Eğer XML verilerini yüklemek ve sayfanın içine dahil nasıl gelince, ben "smarty" bilmiyorum ama genel yaklaşım makul geliyor. Görebildiğim tek dezavantajı (Bu sorunu önlemek için zor) aynı anda tüm çevirileri serbest olması.

Ben dikkat tek şey, Çince için dil kodu olarak ch kullanmak olmasıdır. You should use zh. Bunun için ISO kodudur. ch something else.