2010-11-12 91 views
0

我想問問最佳實踐或翻譯靜態內容的最簡單方法。例如。翻譯,「搜索」或「保存更改」。網站本地化

我現在的想法是:根據用戶的瀏覽器語言環境

(IP地址的地理位置也許,但我更喜歡瀏覽器語言)選擇一個子域,例如「fr.myweb.com」。根據語言設置設置cookie,會話變量。這部分非常簡單。

現在來翻譯部分。根據語言改變圖像不會是一個問題,因爲「_fr」前綴就足夠了。但翻譯字符串像保存更改,搜索,訂單項等。那麼,我不確定這裏。

由於其所有基於PHP和MySQL,我想的是一樣的東西:

兩個表:

  1. 第一個具有的默認語言的所有單詞
  2. 第二個有三個列表列(不包括自動遞增) - LANGUAGE_ID,翻譯,word_id

獲取所有的話,緩存查詢或什麼,現在叫反式( 'FR', '搜索')WOU ld翻譯這個詞。這應該工作,但我不知道它是正確的方法還是有更好的方法。注意:沒有谷歌翻譯。

此外,因爲我使用js/ajax,我也不確定這部分。從cookie獲取語言並製作警報等地圖,然後調用「message ['fr']」,但我不確定這部分內容。

任何想法對於兩種語言都是理想的嗎?我試過谷歌,但不滿意的結果。任何建議/鏈接表示讚賞。

Regards

+1

避免數據庫存儲翻譯字符串。使用gettext .po文件或一個php數組。避免困難的API。使用'_(「english」)或'__(「..」)'',然後在其他語言中使用目標語言。不要使用常量或文本ID,請使用原始英文作爲輸入。 - 解釋爲什麼你看起來想要翻譯客戶端(AJAX?)而不是頁面生成(PHP)。 – mario 2010-11-12 22:00:30

+0

我並不是指ajax,而是JS。假設你必須滿足某些條件才能做出行動,如果你不符合他們 - 你會得到一個JS錯誤。那翻譯那些東西呢? – realshadow 2010-11-12 22:06:06

+0

仍然不知道確切的情況,但你可以試試這個http://plugins.jquery.com/project/gettext – mario 2010-11-12 22:13:02

回答

1

查找Gettext for PHP:http://php.net/manual/en/book.gettext.php。這是提供網頁內容翻譯的事實標準。基本上你可以創建翻譯文件(你可以使用例如Poedit),將PHP指向它們,將語言環境設置爲任何需要的,並使用_('string to translate')來獲取翻譯。