HTTP::negotiateLanguage

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

Synopsis

require_once 'HTTP.php';

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

Description

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

Example

使用例

<?php
require_once "HTTP.php";

$supported = array("de" => true"en-US" => true);

echo 
HTTP::negotiateLanguage($supported);
?>

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

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

Parameter

  • array $supported - アプリケーションに支援された言語コード(国コード)によって インデックスを付けられた連想の配列。 値はTRUEでなければなりません。

  • string $default - 他の言語のどれもネゴシエーションの間に見つからない場合に、 使用されるべきデフォルト言語。

Return value

string - 言語コードです。

Note

This function can be called statically.

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

"HEAD"コマンドの送信 (Previous) クライアントをリダイレクトする (Next)
Last updated: Fri, 25 Jul 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

There are no user contributed notes for this page.