2012-02-06 47 views
1

本地化PHP/MySQL網站有哪些準則或最新的方法?我應該如何本地化PHP/MySQL網站的界面?

這裏的想法是翻譯按鈕,頁面標題和消息。網站的語言將在安裝時選擇,不應改變。

我已經開始創建包含關鍵字列表及其翻譯的文本文件,但感覺像重新發明了輪子。

謝謝你的幫助。

回答

0

與此同時,我找到了一種構建數組文本文件的有效方法。

無論我想要翻譯一個文本項目,我都使用php gettext()函數aliased _()來封裝它。

然後,與poedit我解析所有我的php文件自動創建翻譯。

我產生的.po(人類可讀)和的.mo(編譯)本地化文件放在:

$locale = 'en_EN'; 
putenv("LC_ALL=".$locale); 
setlocale(LC_ALL, $locale); 
bindtextdomain("messages", "locale"); 
textdomain("messages"); 

優點:

locale/en_EN/LC_MESSAGES 

然後我和這個代碼初始化我的翻譯應用程序:

  • 這樣我就不必跟蹤我的各種文本項目和 創建ne w翻譯可以由非程序員完成。
  • 輸出的.po文件在格式上似乎也很標準。
  • .po文件還引用了我的項目中要翻譯的每一個文本。
  • 另一件好事是,如果由於某些原因.po翻譯文件無法訪問,基本文本將由gettext函數顯示。
2

我做了一次,我爲不同的語言添加了不同的文件。
包含該文件,如果沒有包含文件,則包含默認(英文)文件。
而在該文件中定義數組,

$array_language['welcome_msg'] = 'You are welcome'; 

所以哪個文件,你會包括陣列將顯示,相關的消息否則會顯示默認的英文文件。

+0

謝謝!這基本上是我所做的。但我試圖在wordpress中學習代碼(這與我的項目在安裝本地化版本方面接近,然後將其留在該語言中),我發現他們並沒有這樣做。雖然我沒有完全明白他們是如何解決問題的。 – Asimov4 2012-02-06 05:38:14

+0

你可以通過數據庫來完成,但這很複雜,維護更多。 WordPress以db的形式存儲所有內容 – Debugger 2012-02-06 06:40:28

+0

您可以嘗試使用Transtable,一個簡單的Web界面來編輯php數組中的翻譯。 http://code.google.com/p/transtable – user570605 2013-05-17 22:45:00