現在公司要做一個在多個國家,支持多語言的網站,那我們應該這樣去設計,是在一個域名之下,通過/cn,/fr這種形式去做,還是通過域名.fr,. en,.cn比較好
現在公司要做一個在多個國家,支持多語言的網站,那我們應該這樣去設計,是在一個域名之下,通過/cn,/fr這種形式去做,還是通過域名.fr,. en,.cn比較好
建議使用子域名,不要使用目錄。
例如你的主站是
www.example.com
以下是子站
<code>zh.example.com //中国 us.example.com //美国 jp.example.com //日本 ...</code>
個人認為怎麼舒服怎麼來,亞馬遜他們又不是沒分域名
但如果貴司希望各國分站要同步登陸狀態之類的就要考慮cookie跨域問題了
假設就用一個域名來提供面向全球多個國家的服務,這時除了要解決語言問題,更重要的是要解決時區的問題.我們平台開發默認都是東八區(北京時間),可能並不在意這個問題.這時,你就要讓用戶選擇自己所在的國家(確定語言)以及時區(有些國家有多個時區,比如美國).
如果php.ini中沒有配置date.timezone,則預設時間是協調世界時UTC(Universal Time Coordinated).
<code>ini_set('date.timezone', 'UTC'); //UTC时间 echo date('Y-m-d H:i:s', time())."\n"; //输出2015-12-11 02:43:28 ini_set('date.timezone', 'PRC'); //北京时间(UTC+8) echo date('Y-m-d H:i:s', time());."\n" //输出2015-12-11 10:43:28</code>
做面向多個時區的網站開發,資料庫儲存UTC時間,輸出時以某個時區作為基準時間.
JS取得客戶端時間,計算出客戶端跟伺服器的時差,然後計算出訪客所在時區的活動時間.
美國不像我國有統一的北京時間,美國有四個時區的時間在使用,很混亂.
至於多語言,還是挺好解決的,用數組就行,以登入介面為例:
<code>在render加载模板时require语言文件: require APP_ROOT.'/lang/'.$app['lang'].'/'.$template; require APP_ROOT.'/themes/'.$app['theme'].'/'.$template; lang/zh_CN/login.php <?php $lang_login = array( 'Login' => '登录', 'Username' => '帐号', 'Password' => '密码', 'Remember me' => '记住我', ); lang/en_US/login.php <?php $lang_login = array( 'Login' => 'Login', 'Username' => 'Username', 'Password' => 'Password', 'Remember me' => 'Remember me', );</code>