[[PHP]]
国際化ページの対応方法を検討。
ユーザーの使用言語に合わせて、英語ページと日本語ページを切り替えます。
#contents
*ユーザーの使用言語 [#mf8d1738]
Webアプリで、言語別にページを切り替える方法を検討。
ブラウザーがもたらす情報から、ユーザーの使用言語を取得して、英語ページと日本語ページを切り替える。
**環境変数 [#p5feec1b]
http://d.hatena.ne.jp/yumizclub/20081215/
>//ブラウザから使用言語を取得
$language=substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
環境変数「$_SERVER["HTTP_ACCEPT_LANGUAGE"]」を使うのが一手。
http://labs.unoh.net/2006/06/5_php_web_2.html
#code(php){{
<?php
$language = 'en';
if (ereg('ja', $_SERVER['HTTP_ACCEPT_LANGUAGE'])) {
$language = 'ja_JP';
}
// Set locale and default domain.
putenv("LANG=$language");
setlocale(LC_ALL, $language);
$domain = 'messages';
bindtextdomain($domain, "/var/www/html/locale");
textdomain($domain);
// Output
echo gettext("Hello");
?>
}}
ブラウザーが吐き出す情報に依存するが、とりあえず環境変数「$_SERVER["HTTP_ACCEPT_LANGUAGE"]」を使って、ユーザーの使用言語を判別して、それで英語/日本語を切り替えよう。
** IPアドレス [#ec821d38]
他には、アクセス元のIPアドレスで国籍を判別するとか。
-問題点
アメリカにいる日本人がアクセスしてきたら、英語じゃなくて日本語で表示した方がいいだろう。
IPアドレス→国→使用言語へと単純にひも付けるのは、やめておこう。