ブラウザの言語から表示するサイトを分岐 

ページの言語切り替えボタンが、サイト右上にありますが、日本語と英語でアドレスが違います。(index.phpとindex_en.php)

index_en.phpを登録してもらうのも手間なので、同じhttp://www.chosyu.jp/にアクセスすれば、ブラウザの言語設定を見て、自動で分岐するように変更しました。

JavaScriptでもできるのですが、JavaScriptを読み込んでからの実行になるので、一瞬飛ぶ前の画面が出てしまいます。
というわけで、PHPで実装しました。

メインページ(index.php)の一番上に下記コードを追加して実装しています。
<?php
$aws_cookie = $_COOKIE["C_LANGUAGE_FLAG"];	// クッキーを読み込み
if( strcmp($aws_cookie, "1") != 0 ){
	// ブラウザ起動後にのみ実行
	setcookie( "C_LANGUAGE_FLAG", "1" );	// クッキーを書き込み
	
	// ブラウザ設定が英語なら英語ページへ
	$aws_language = substr( $_SERVER["HTTP_ACCEPT_LANGUAGE"], 0, 2 );	// ブラウザの言語の先頭2文字を取得
	if( strcmp($aws_language, "en") == 0 ){
		header( "Location: index_en.php" );
		exit;
	}
}
?>


クッキーを利用して、初回のみ自動で分岐するようになっています。
1回、英語サイトに移動したあと、左上のJPボタンから日本語サイトに戻ってきたときには、実行されません。

最初にindex_en.phpを表示したあと、日本語表示にした場合を考慮してindex_en.phpの方にも、クッキーを書き込むようにしてあります。


まぁ、どちらかと言うと、MTでの英語サイト構築方法の方が重要だとは思うので、忘れないうちに、まとめる予定です。
 



 

コメントをお願いします 

Name:   ※必須(ニックネームでOK)
 名前を記憶
コメント:(HTMLタグは使用できません)