PHPでブラウザの言語設定を取得し分岐させる方法
カテゴリ:WEB制作
タグ:
利用者の言語設定によって表示内容を変えたりしたいという場合に使えるPHPでブラウザの言語設定を取得し分岐させる方法を紹介します。
PHPでブラウザの言語設定を取得し分岐
<?php // ブラウザのAccept-Languageヘッダーを取得 $acceptLanguage = $_SERVER['HTTP_ACCEPT_LANGUAGE']; // 言語設定を配列に変換 $lang_array = explode(',', $acceptLanguage); // 言語ごとに処理を分岐 if (strpos($lang_array[0], 'ja') === 0) { // 日本語の場合の処理 } elseif (strpos($lang_array[0], 'en') === 0) { // 英語の場合の処理 } else { // その他の言語の場合の処理 } ?>
解説していきます。
ブラウザの言語設定は以下で取得できます。
$acceptLanguage = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
Google Chromeの場合は言語を複数設定することができ、優先順位を決めることができます。
例えば以下のように言語設定がしてある場合・・・
- 1.日本語
- 2.英語
- 3. 英語 (アメリカ合衆国)
以下のようなソースを取得することができます。
ja,en;q=0.9,en-US;q=0.8
最初のja(日本語)がブラウザの最優先言語です。
そのため、言語設定を「,」ごとに配列に代入して、最初の配列で分岐をかけていきます。
1行目で配列に格納、2行目以降で言語コードを指定して配列の先頭にそれが含まれるかどうかで分岐させています。
$lang_array = explode(',', $acceptLanguage); if (strpos($lang_array[0], 'ja') === 0) { } elseif (strpos($lang_array[0], 'en') === 0) { } else { }
各国の言語コードについて
以下は各国の言語コードと言語の一覧です。
分岐させたい言語によって使い分けてください。
コード | 言語 |
---|---|
is | アイスランド語 |
ay | アイマラ語 |
ga | アイルランド語 |
az | アゼルバイジェン語 |
as | アッサム語 |
aa | アファル語 |
ab | アプハジア語 |
af | アフリカーンス語 |
am | アムハラ語 |
ar | アラビア語 |
sq | アルバニア語 |
hy | アルメニア語 |
it | イタリア語 |
yi | イディッシュ語 |
iu | イヌクティトット語 |
ik | イヌピア語 |
ia | インターリングア |
ie | インターリング語 |
id | インドネシア語 |
ug | ウイグル語 |
cy | ウェールズ語 |
vo | ヴォラピュック語 |
wo | ウォロフ語 |
uk | ウクライナ語 |
uz | ウズベク語 |
ur | ウルドゥー語 |
en | 英語 |
et | エストニア語 |
eo | エスペラント語 |
or | オーリア語 |
oc | オキタン語 |
nl | オランダ語 |
om | オロモ語 |
kk | カザフ語 |
ks | カシミール語 |
ca | カタラン語 |
gl | ガリシア語 |
ko | 韓国語 |
kn | カンナダ語 |
km | カンボジア語 |
rw | キヤーワンダ語 (ルアンダ語) |
el | ギリシャ語 |
ky | キルギス語 |
rn | キルンディ語 (ルンディ語) |
gn | グアラニー語 |
qu | クエチュア語 |
gu | グジャラト語 |
kl | グリーンランド語 |
ku | クルド語 |
hr | クロアチア語 |
gd | ゲーリック語(スコットランド語) |
gv | ゲーリック語(マン島語) |
xh | コーサ語 |
co | コルシカ語 |
sm | サモア語 |
sg | サングホ語 |
sa | サンスクリット語 |
ss | シスワティ語 |
jv | ジャワ語 |
ka | ジョージア語 |
sn | ショナ語 |
sd | シンド語 |
si | シンハラ語 |
sv | スウェーデン語 |
su | スーダン語 |
zu | ズールー語 |
es | スペイン語 |
sk | スロヴァキア語 |
sl | スロヴェニア語 |
sw | スワヒリ語 |
tn | セツワナ語 |
st | セト語 |
sr | セルビア語 |
sh | セルボクロアチア語 |
so | ソマリ語 |
th | タイ語 |
tl | タガログ語 |
tg | タジク語 |
tt | タタール語 |
ta | タミル語 |
cs | チェコ語 |
ti | チグリニャ語 |
bo | チベット語 |
zh | 中国語(簡体) |
zh | 中国語(繁体) |
ts | ヅォンガ語 |
te | テルグ語 |
da | デンマーク語 |
de | ドイツ語 |
tw | トウィ語 |
tk | トルクメン語 |
tr | トルコ語 |
to | トンガ語 |
na | ナウル語 |
ja | 日本語 |
ne | ネパール語 |
no | ノルウェー語 |
ha | ハウサ語 |
be | ベラルーシ語 |
ba | バシキール語 |
ps | パシト語 |
eu | バスク語 |
hu | ハンガリー語 |
pa | パンジャビ語 |
bi | ビスラマ語 |
bh | ビハール語 |
my | ビルマ語 |
hi | ヒンディー語 |
fj | フィジー語 |
fi | フィンランド語 |
dz | ブータン語 |
fo | フェロー語 |
fr | フランス語 |
fy | フリジア語 |
bg | ブルガリア語 |
br | ブルターニュ語 |
vi | ベトナム語 |
he | ヘブライ語 |
fa | ペルシャ語 |
bn | ベンガル語 |
pl | ポーランド語 |
pt | ポルトガル語 |
mi | マオリ語 |
mk | マカドニア語 |
mg | マダガスカル語 |
mr | マラッタ語 |
ml | マラヤーラム語 |
mt | マルタ語 |
ms | マレー語 |
mo | モルダビア語 |
mn | モンゴル語 |
yo | ヨルバ語 |
lo | ラオタ語 |
lv | ラトビア語 (レット語) |
lt | リトアニア語 |
ln | リンガラ語 |
li | リンブルク語 |
ro | ルーマニア語 |
rm | レートロマンス語 |
ru | ロシア語 |
まとめ
グローバル展開しているサイトなどでは活用できる便利なものですのでぜひ、参考にしてみてください。