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

ページの言語切り替えボタンが、サイト右上にありますが、日本語と英語で
アドレスが違います。(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)
URL: 名前とURLを記憶
コメント:(HTMLタグは使用できません)
 

 

トラックバックURL