初心忘るべからず

新米システムライブラリアンの備忘録

国内の人と海外の人で閲覧させるページを振り分けるには

大学のウェブサイトでは日本語と英語のコンテンツをそれぞれ作成しているところが多いと思う。図書館も同様。

せっかくなので、留学生や海外の人には直接英語ページを参照してもらいたい。

いろんなサイトを見てきたが、実現方法は4つあるらしい。

 

.htaccess
日本国内のIP以外はリダイレクトで英語サイトに飛ばす設定をするというもの。
羅列が大変&国内の留学生、海外の日本人も強制的に飛ばされてしまうので、微妙。

 

javascript
navigator.browserLanguage
navigator.language
navigator.userLanguage
がenの場合に振り分けるという方法。
利用者側でjavascriptが無効だと作動しないので、なし。

 

php
環境変数「HTTP_ACCEPT_LANGUAGE」でブラウザの言語を見分ける方法。
「日本語」を押した場合にも英語版が表示されるループになったら・・・というのが怖いので避ける。

 

■HTMLのhead
さて困ったぞ、と思ってさらに検索すると、Googleで用意している記述がある模様。

support.google.com


それぞれ日英で対応するページのヘッダに以下を書けばいいそう。
<link rel="alternate" hreflang="言語" href="対応するURL" />

たとえば、index.htmlに対応するページがen/index.htmlであれば、
それぞれのヘッダに次のように書く。
・index.htmlのヘッダ
 <link rel="alternate" hreflang="en" href="http://○○○.library.ac.jp/index.html" />
・en/index.htmlのヘッダ
 <link rel="alternate" hreflang="ja" href="http://○○○.library.ac.jp/en/index.html" />

Googleでは、と書かれているがBingでも有効な模様。Yahooはダメだった。
英語圏のシェアはGoogleが多数を占めているから、まぁ良いか。


テスト環境について。
実際に海外に行ってアクセスするわけにはいかない。
IPをやめたのはそんな理由もある。
Googleの方法だと、[インターネットオプション]の全般タブの下の方にある「言語」をクリックし、言語に英語を追加して優先順位を最上位にすれば、英語ユーザの環境になる。