2,644 views
この記事は最終更新から 2734日 が経過しています。
(1) やりたいこと
ホームページ閲覧者に応じて、ホームページで使用する言語を切り替えたい。
(2) 実現方法
ホームページ閲覧者が使用しているWEBブラウザの言語設定を参照し、これを頼りに表示言語を決定する。
1. どこから情報を取得する?
多くのメジャーなWEBブラウザでは、言語設定に関する情報が環境変数
$_SERVER['HTTP_ACCEPT_LANGUAGE']
に格納されるので、これを参照すればよい。
例えば私が所有している環境では以下のような値が取得できる。
例#1: FireFox
HTTP_ACCEPT_LANGUAGE => ja,en-US;q=0.7,en;q=0.3
例#2: Chrome
HTTP_ACCEPT_LANGUAGE => ja,en-US;q=0.8,en;q=0.6
例#3: IE11, Edge
HTTP_ACCEPT_LANGUAGE => ja
例#4: Opera
HTTP_ACCEPT_LANGUAGE => ja,en-US;q=0.8,en;q=0.6
例#5: Safari
HTTP_ACCEPT_LANGUAGE => ja-jp
2. どう判別する?
「日本語 or 英語」 の判別の場合は、以下の単語の有無をチェックすればよい。
ja: 日本語
en: 英語
これを頼りに振り分ければよい。例えば以下のように。
$ary_language = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']); if(is_array($ary_language)){ $lang_1st = $ary_language[0]; if(preg_match("/^ja/i", $lang_1st) === 1){ echo "日本語です。"; } elseif(preg_match("/^en/i", $lang_1st) === 1){ echo "英語です。"; } }
このサイトは日本国内からのアクセスのみなのでまず使うことは無いのだが…
一応ノウハウとして記録しておこう。