自己用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
請求,修復下模板定位問題。