首頁  >  文章  >  後端開發  >  有什麼可以做多語言網站的方法?

有什麼可以做多語言網站的方法?

WBOY
WBOY原創
2016-12-01 00:57:111205瀏覽

自己用Smarty寫了個網站,現在想加個英文版上去。所有文字翻譯都是存在json中的,中文版一個json,英文版另一個json。

現在面臨一個問題:
預設語言是根據$_SERVER['HTTP_ACCEPT_LANGUAGE']獲得的,但為了確保有中文使用者用英文作業系統(或反過來),希望做一個強制切換語言的選項。之前是用COOKIE做的,但這有個問題,就是搜尋引擎只能看到預設的中文頁面,掃不到英文頁面。

考慮了中文頁面不動,英文頁面改成mydomain.com/en/下面,結果smarty中的tpl模板還在根目錄上,一引用就有大量的404錯誤。

另外伺服器不支援url路由(RewriteRule不能用),所以路由傳參這條路行不通了。

根據Google的內容準則,用get傳參這個方法不推薦,所以url get傳參,也不推薦了。

目前問題就是,如何盡量精簡的用兩個url表達同一個網站,只有文字渲染不同。 url路由不能用,get傳參不能用。

考慮了第三個方法就是中文的也做成mydomain.com/zh/,不過覺得好蠢,跟域會空蕩蕩的。

回覆內容:

自己用Smarty寫了個網站,現在想加個英文版上去。所有文字翻譯都是存在json中的,中文版一個json,英文版另一個json。

現在面臨一個問題:
預設語言是根據$_SERVER['HTTP_ACCEPT_LANGUAGE']獲得的,但為了確保有中文使用者用英文作業系統(或反過來),希望做一個強制切換語言的選項。之前是用COOKIE做的,但這有個問題,就是搜尋引擎只能看到預設的中文頁面,掃不到英文頁面。

考慮了中文頁面不動,英文頁面改成mydomain.com/en/下面,結果smarty中的tpl模板還在根目錄上,一引用就有大量的404錯誤。

另外伺服器不支援url路由(RewriteRule不能用),所以路由傳參這條路行不通了。

根據Google的內容準則,用get傳參這個方法不推薦,所以url get傳參,也不推薦了。

目前問題就是,如何盡量精簡的用兩個url表達同一個網站,只有文字渲染不同。 url路由不能用,get傳參不能用。

考慮了第三個方法就是中文的也做成mydomain.com/zh/,不過覺得好蠢,跟域會空蕩蕩的。

https://www.microsoft.com/zh-cn
其實吧,也沒覺得有很蠢= =畢竟大公司都在用。

apple英文站apple.com,中文站是apple.com/cn

不知道你用的什麼框架,感覺可以添加一個filter,捕獲/en/xxx請求,修復下模板定位問題。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn