HTTP::negotiateLanguage

HTTP::negotiateLanguage -- ユーザのブラウザーと言語を協定する

概要

require_once 'HTTP.php';

string HTTP::negotiateLanguage (array $supported, string $default = 'en_US')

説明

Accept-Language HTTPヘッダーかユーザのホストアドレスによって、 ユーザのブラウザーと言語を協定します。 言語コードは一ヶ国で話される言語の形式「ll」か、 あるいは特別の国で話される言語では「ll-CC」になります。 例えば、米国の英語は「en-US」です。一方イギリス英語は「en-UK」です。 ポルトガルで話されるようなポルトガル語は「pt-PT」です。 一方ブラジルのポルトガル語は「pt-BR」です。 2文字の国コードはISO 3166標準で見つけられます。

Accept-Language:ヘッダが多数の値をサポートする例
Accept-Language: en-UK;q=0.7, en-US;q=0.6, no;q=1.0, dk;q=0.8

この例は、 言語のうちのどれかがユーザのシステム上で サポートされる場合、 ユーザーエージェントはネゴシエーションします。 ネゴシエーションが正の結果を持っている場合、 最も好ましい言語の言語コードが出力されます。 そうでなければ、デフォルト言語コード(en-US)が出力されます。

国際化された(それは複数の言語で利用可能な) ウェブサイトページを開発する場合は、 言語ネゴシエーションを可能にすることは大きな支援になります。 ユーザーはネゴシエーションを使用して、 常に好ましい言語でページを取得できるでしょう (それらはユーザーエージェントが適切に構成されていると仮定します)。

パラメータ

返り値

string - 言語コードです。

注意

この関数は、スタティックにコールする ことができます。

返された言語はヒントだけです! クライアントによって容認された言語を送ることはオプションです。 ブラウザーの言語セッティングはユーザの母国語する必要はありません。 - 例えばスペインのインターネットカフェでドイツの旅行者が居る場合など。 Net_Geo パッケージの結果を組み合わせることにより、 結果を改善することができます。 それとは別に、 ユーザに手動で優先する言語メニューを選ぶ機会を与えるべきです。