2012-10-16 59 views
1

我正在創建一個網站,它必須是多語言的。翻譯必須作出並加上前綴(NO auto-translations api)。我的問題是,什麼更有效率?:創建多語言網站 - 靜態還是動態?

  • 爲每種語言創建一個文件集。
  • 創建一個文件集並通過PHP常量顯示文本。
  • 我也想過在MySql查詢中獲取包含文檔開頭所有翻譯的數組。

注意 *不會有真正的大文本。

回答

2

從長遠來看,你最好的辦法是將要使用一個文件爲每種語言設置。如果您使用的是行業標準格式,例如GNU gettext,則PHP有built in support。此外,第三方翻譯公司和翻譯工具通常支持這種格式,因此長期的網站維護對開發人員的依賴性要求較低。

+0

我打算研究一下。例如,你如何看待Facebook這樣的系統?單個文件? – Kenedy

+0

我想你可以去這個問題,探討更多的細節 http://stackoverflow.com/questions/18468018/php-menu-setting-for-language-settings/18468242#comment27145336_18468242 –

0

我使用Zend Translate一個網站我的工作。

大多數Zend框架的部件的可以被用作獨立的組件。我使用完整的堆棧,但僅使用Zend Translate並不是一個主要問題。

至於使用數據庫來獲得的翻譯,我認爲這取決於你正在處理的內容的類型。例如,對於Joomla!有些組件會以不同的語言存儲同一篇文章的不同版本。

我會建議Zend的翻譯,因爲你有不同的選擇,以獲得從翻譯:PHP數組,INI文件,使用gettext,XML。

您可以擴展事件適配器類來創建一個數據庫後端適配器。

希望它有幫助。

+0

這可能是一個選項,但我並不需要這種解決方案,因爲我沒有處理大量的翻譯。大內容直接顯示在其各自的語言(並且不會被翻譯) – Kenedy

+0

正如我所說,使用Zend Translate作爲獨立組件應該是任何問題,只需要告訴適配器文件的位置。這些可以是純文本INI文件格式: TRANSLATION_MESSAGE_ID =「嘿,我即將被翻譯」 它實際上可以檢測文件夾結構。否則,你可以用一個簡單的函數實現一個簡單的PHP數組方法。 –

+0

完美。而且,使用像Zend Translate這樣的框架和使用自己的數組有什麼區別?我的意思是,出於簡單的目的,框架不是太複雜? – Kenedy

-1

我認爲這將幫助你:http://www.youtube.com/watch?v=v7vCp_TFcdU
它使用session存儲所選擇的語言和使用數組爲每種語言。

+0

該問題具體詢問什麼更有效。如果youtube視頻回答這個問題,你可以將它壓縮成文字嗎? – Chris