2012-07-16 78 views
1

可能重複:
How do you build a multi-language web site?在普通的php(沒有任何框架)上是否有任何i18n庫?

我繼承了一些代碼,只是普通的PHP的,我必須做一些改變。 由於這些更改非常小,最大的要求是支持多語言,所以我選擇保留現有代碼而不是重寫它,但是我需要一個用於普通php的i18n庫。

是否有任何使用普通PHP的默認庫?我真的不知道,使用/下載的鏈接將非常有幫助。

更新1:

這將是很好,如果你可以點我一些控制檯般的工具,可以幫助我建立一個文件應該被翻譯的所有字符串,而不是做手工(以CakePHP是__()函數之間的每個實例)。

+0

@hakre:不,答案與我所要求的完全不同,在這裏我們談論的是PHP,而我們正在談論java。 – 2012-07-16 13:47:22

+1

我會說閱讀幫助:http://stackoverflow.com/a/41379/367456 – hakre 2012-07-16 13:48:27

+0

@hakre:謝謝我沒有注意到,很好,答案是偉大的,但我不知道是否問題**實際上是**的重複,因爲我認爲這只是一個情況,有一個PHP的答案。 – 2012-07-16 13:52:08

回答

5

intl(自PHP 5.3)和gettext(因爲永遠)

從PHP國際擴展文檔頁:

國際延伸部(進一步被稱爲國際機場)是 包裝器ICU庫使PHP程序員能夠在他們的腳本中執行 UCA -conformant歸類和日期/時間/數量/貨幣格式 。

Gettext中的文檔頁面:

這個包提供給程序員,翻譯,甚至用戶,良好 組集成的工具和文檔。具體來說,GNU gettext實用程序是一組工具,它提供了一個在 之內的框架,其他免費軟件包可以生成多語言消息。

+0

我爲什麼要選擇一個或另一個?另外,是否有任何有用的控制檯命令(如蛋糕)構建一個語言環境文件,其中包含我應該翻譯的字符串的所有實例? – 2012-07-16 13:48:21

+0

你應該選擇兩個都沒有。如果您在計算機上安裝gettext,還有有用的控制檯命令。是的是的。但是,閱讀有幫助。 :) – hakre 2012-07-16 13:50:12

+3

他們是爲了不同的事情。國際 - 用於以本地化方式輸出日期/貨幣/音譯/格式化數字。 gettext用於翻譯。 – 2012-07-16 13:51:58

2

gettext是使用非常無處不在的gettext系統的默認PHP i18n擴展。