你已經基本上得到了3個選擇和有利弊,每個:
1:爲Dainis Abols表明,查克在數據庫中 - 這取決於你的服務器的設置方式,這可能是最慢,最系統的重路線(儘管這一切都是相對的,但除非你每小時獲得數百萬次觀看,否則不可能有任何改變)。
2:使用PHP庫文件;我傾向於使用庫文件來處理字段標籤(forename,surname等)這樣的小型單一項目,並在數據庫中存儲較大的內容,如CMS託管的HTML ......這樣可以減少數據庫調用,但會爲加載的每個字典增加一個小的開銷成劇本<?php $this->page->dictionary->product = Dictionary::load("product"); ?>
之類的東西。
3:最後,我個人認爲這是值得考慮看看PHP的執行gettext雖然你將需要像poedit東西來維持PO(壓縮翻譯文件)。這使您能夠非常快速地維護翻譯,因爲您只需在簡單的下劃線函數中輸入文本即可在PHP文檔中輸入文本:
例如,<?= _("Hello World"); ?>
然後,您將壓縮的PO文件中的翻譯保留下來 - 它非常高效(可能比使用原生PHP文件更快),但它在自然語言的細微差別方面確實有一些缺點。例如,如果您有字段標籤「標題」<?= _("Title"); ?>
,則所有_("Title")
實例都將以相同的方式進行翻譯。
這意味着您不能將「標題」用作人物標題的表單標籤和書名;例如,在德語中,您可能想要爲一個「標題」使用Anrede,另一個使用標題。
雖然真正使用gettext
你可能會需要運行自己的服務器 - 當你改變PO文件,它可以要求一個Apache重新啓動:\
至於搜索引擎他們閱讀的輸出從你的代碼中獲得,所以它並沒有真正改變你用來執行翻譯的方法,但理想情況下你可能希望保持URL RESTful,所以無論你是包含PHP字典,調用數據庫還是使用gettext(或改變你的思想從一個到另一個),你將能夠將語言映射到類似http://www.mysite.com/en_gb/widgets
的URL,所以你可以改變該程序如何工作而無需更改網址。
謝謝,最後我用你的方法:) – user1967184