多語系的網頁應該主動偵查使用者瀏覽器的語系,而不是被動的由使用者切換語系。
此篇參考[1]的說明,自己做個筆記。
檢查使用者瀏覽器的語系
PHP讀取系統變數
$_SERVER['HTTP_ACCEPT_LANGUAGE'];
zh-TW,zh;q=0.8,en-US;q=0.5,en;q=0.3
對照我FIREFOX中的設定
所以最優先的是zh-TW
PHP執行時判斷
引用[1]的程式碼,交給PHP執行時判斷
$supportedLangs = array('en-GB', 'fr', 'de'); $languages = explode(',',$_SERVER['HTTP_ACCEPT_LANGUAGE']); foreach($languages as $lang) { if(in_array($lang, $supportedLangs)) { // Set the page locale to the first supported language found 遇到第一個支援的語系 $page->setLocale($lang); break; } }
第9行設定你的網站語系,實際寫法由你的程式決定。
參考資料
[1] DZONE https://dzone.com/articles/automatically-detect-browser