2009-11-17 40 views
2

我們將我們的站點設爲國際,.fr,.mx以及其他一些站點。PHP:使用不同語言的提示

我正在考慮創建像english.inc.php這樣的語言文件,這些語言文件基本上會包含我們使用的每個靜態文本的大量數組。

例如$ lang ['welcome'] ='歡迎';

我會根據所使用的域名動態地包含正確的語言文件,然後在我們用來獲取靜態文本的任何地方使用這些數組。

這是正確的路嗎?

在我深入研究之前,我會很感激以前曾經有過這方面經驗的人。

謝謝!

Nathan

回答

4

請研究php的http://php.net/manual/en/book.gettext.php的gettext,它是專門爲您正在做的事情而設計的,可以處理所有各種複雜的國際化。 (複數,背景等)。

gettext的工作原理是每個區域設置的方式與翻譯和在PHP代碼中你這樣做的純文本文件:

<?php echo _("Welcome to my site");?> 

然後從Gettext中相應的區域設置文件拉。

國際化非常複雜,最好使用久經考驗的解決方案。我們在大多數大型網站上使用Mozilla的gettext,它是快速,知名且功能全面的。

+0

感謝您的提示。 雖然有一個細節。你真的會創建一個英文的語言環境文件嗎?或者你會使用php的自動功能在echo _(「Welcome to my site」)中打印字符串?因爲,如果你想改變英文版的單詞或句子會發生什麼? – 2009-11-18 01:52:08

+0

我們處理它的方式是首先將字符串放在我們的php文件中,就像我之前演示的那樣,然後使用xgettext將字符串拖入另一個po文件中。然後,您可以將該文件合併到en-us(英文)文件中。 – 2009-11-18 05:30:26

0

我一直使用Gettext,它的速度非常快,您可以使用外部工具,如Poedit