(41) ホームページで表示する言語の選択

投稿者: | 2017年9月21日

この記事は最終更新から 804日 が経過しています。

(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 "英語です。";
    }
  }

このサイトは日本国内からのアクセスのみなのでまず使うことは無いのだが…
一応ノウハウとして記録しておこう。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)