LAMPとSmartyテンプレートフレームワークを使用するWebアプリケーションを構築しています。ウェブサイトには静的コンテンツ(ページ、エラーアラート、確認メールなど)がたくさんあります。複数言語サポート(英語、フランス語、中国語など)でPHPアプリケーションを構築する方法
ウェブアプリケーションは複数の言語をサポートしている必要があります。次のアプローチは適切ですか?
1)Smartyテンプレートページ(htmlページ)のすべての静的コピーは、{lang file = 'about.xml' getTerm = 'title'}のようなsmartyプラグインの呼び出しに置き換えられ、titleタグの文字列を返します適切な言語で
2)about.xmlというファイルは、複数言語の辞書として機能するWebサーバー上のxmlドキュメントです。それはXMLノードを持つことになりますので、このような
<term value="title">
<en><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; is a great site</en>
<fr><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; c'est website magnifique</fr>
<ch><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>
<term value="signupmessage">
<en><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; great deals!</en>
<fr><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; magnifique deals!</fr>
<ch><a href="http://stackoverflow.com"&rt;Stackoverflow</a&rt; complex looking chinese characters I don't udnerstand</ch>
</term>
3)サイトのURL構造としてhttp://mywebsite.com/language/index.php
になります。これを行うには、 ln -s ./en ./
のようなシンボリックリンクがhttp://mywebsite.com/en/index.php
と同じPHPページを指していますが、私は言語設定のURLをチェックします。私の希望は、Googleがサイトの両方のバージョンのインデックスを作成するということです。
これは良いアプローチですか? xmlはhtmlentityでエンコードされたhtmlタグを持っていても、異なる言語のコンテンツを格納するのに最適な形式ですか?私は何か見落としましたか?
+1 for Zend_Translate。それは私の意見ではジャンルの最先端のものです。 –