IE で JavaScript 経由で送信しますか?
navigator.browserLanguage
: ブラウザ言語
navigator.systemLanguage
: Windows システム言語
navigator.userLanguage
: Windows ユーザー固有の言語
おかげで:JavaScriptを使用してOS言語を検出する方法はありますか?
クライアントOSの言語を取得するためにあなたが言及した以外の唯一の方法です。PHPはサーバーによって実行され、他には何もありません。
PHP ソート関数を作成します。
HTTP_ACCEPT_LANGUAGE: zh,en-US;q=0.8,en;q=0.6
zh
とen-US
同じ値を共有しq=
ます。つまり、2 つの言語で品質が同じ場合は、言語の値が最も高い順に並べ替え、デフォルトを en-US にすることができます。
@Quentin が私の編集の 1 分前にコメント セクションでこれについて言及したことに気付きました。
モックアップ:
$languages = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$default = 'en-US';
/*
* magic split and structure the language into a array sorted by quality
*
* $languages_sorted_by_quality = array(0.8 => ('zh', 'en-US'));
*/
$top_languages = max($languages_sorted_by_quality);
if (isset($top_languages[$default])) {
$language = $default;
else
$language = $top_languages[0];