2011-08-19 64 views
2

我有一個網站,我翻譯成不同的語言。我將內容翻譯並存儲在數據庫中。我還在php文件中寫入了不同的機制,這些機制將根據我在代碼中設置較高的全局定義來顯示語言。我對這一切感到滿意。我的問題是我如何控制這個全局定義?如何處理網站上的多種語言

我目前有一個javascript開關,設置一個cookie,然後重新加載當前頁面。每個後續頁面都會讀取該cookie來設置全局定義。它工作得很好,但我遇到了兩個大問題。 (1)我不能只是不能有一個網址發送給有語言的人(我可以做一些像domain.com/forwarder.php?lan=spanish & gotopage = page.php這將設置一個曲奇,然後轉發,但這很醜陋)。和(2),搜索引擎不能查看多種語言,因爲他們沒有真正使用Cookie和JavaScript。

那麼我該如何解決這個問題呢?有沒有人有這方面的經驗?你能分享你的經驗嗎?

我只是傾向於使用網址和丟棄cookie;這在我見過的各種國際網站中似乎很受歡迎。所以我猜這個網址是:

domain.com/page  (for english, equivalent to domain.com/en/page) 
domain.com/es/page (for spanish) 
domain.com/fr/page (for french) 
etc ...... 

這是個好主意嗎?我將不得不通過我的代碼,並將所有的href與語言代碼相掛鉤,這可能是一種痛苦。

那麼有沒有人對此有任何評論?這是一個好計劃嗎?我忽略了什麼?

+0

如果您好奇,可以通過http://archive.cyark.org/點擊語言切換頂部並選擇西班牙語 – Landon

回答

1

已經很長時間了,但不能使用$ _SERVER [「HTTP_ACCEPT_LANGUAGE」]並自動設置。在第一次寫入cookie之前,請在屏幕上以英文或其他語言留言,詢問是否使用可用語言的語言是否正確?選擇後,將其存儲爲默認的網站語言。

您可以在全局資源文件中使用字符串常量。只有一個網站根據當前語言調用這些字符串常量。

+0

我不知道$ _SERVER變量的屬性。這太有趣了。所以也許我甚至不需要切換?我可以看看並使用它。但在我看來,這與我目前擁有的我不喜歡的方法相當。無論cookie是與請求一起發送的,還是它是$ _SERVER變量的一部分,它仍然依賴於來自瀏覽器的請求。如果我想用西班牙語發送網址給某人,這並不能幫助我。它有助於谷歌爬行嗎? Woudl google會抓取它兩次,使用不同的HTTP_ACCEPT_LANGUAGE值並保存結果? – Landon

+0

使用查詢字符串以特定語言發送URL www.whateversite.com?lang=en_gb或lang = span等我不確定,但我相信谷歌有服務器抓取不同的語言設置爲默認。 – DFTR