2014-01-11 33 views
1

我有一個簡單的問題!我想用多語言內容創建我的網站,但是我對這是否是正確的方式有疑問。多語言網站,翻譯存儲在local.php文件或數據庫中?

選項1:創建一個名爲lang.en.php的.php文件(其中包含我在頁面上使用的所有字符串的數組),並將其包含在header.php文件中,以便添加一種新語言,我只需要創建像lang.es.php這樣的新文件。

選項2:將字符串存儲在數據庫表中,並將其帶上查詢。

現在我的問題是這樣的:當我將一個真正的服務器上的網站上,哪一個是更快的方法?哪一個減慢?

+0

原生的PHP字符串稍微快一點,但讓程序員而不是翻譯員不得不添加這些字符串是一件痛苦的事情。有些選項包括只使用['gettext'](http://www.php.net/gettext),或者可能在數據庫中存儲和更新,但使用'var_export'生成php文件。 – Wrikken

回答

1

還有一個選項3使用mo/po files這是專門爲這項任務,也很好爲你處理singulars /複數。

然而,如果您想要編輯這些文件,您將需要提供一個GUI。但是,當你使用PHP文件方式使用數組時,情況也是如此。

很難分辨哪種方式™,所以我認爲我可能會過於主觀地解決您的問題。

當你要採用數據庫方法時,我個人會有辦法將文本導出到一個po文件或一個php文件中的數組,以防止必須查詢數據庫中的大部分靜態文本。

要回答你問題po文件可能會更快,但與opcache它可能是非常接近彼此。如果你真的想知道它,你可以做的最好的事情是用這兩種方法做一些測試,因爲我只是簡單地將po與靜態數組的速度從我的屁股中拉出來:-)

P.S.當您對這兩種方法進行基準測試時,請記住,無論您選擇哪種方法,性能最有可能不會成爲瓶頸,因此選擇其中一種或另一種方法可能是一種廢話原因。