多言語のWebサイトでは、優れたユーザーエクスペリエンスでは、通常、訪問者のブラウザ言語または優先言語に基づいて、対応する言語ページに自動的にジャンプする必要があります。 PHPはこれを達成するための柔軟な方法を提供します。最も一般的に使用されるものは、ヘッダーを介してリダイレクトを実装することです(「場所:...」) 。
実装手順とサンプルコードについては、以下に説明します。
ほとんどのブラウザは、HTTPリクエストにAccect-Languageヘッダーをもたらします。これは、 $ _Server ['http_accept_language']でPHPを取得できます。例えば:
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
このコードは、 EN (英語)、 ZH (中国)、 FR (フランス語)など、言語コードの最初の2文字を取り出します。
次に、取得した言語コードに基づいてジャンプするページを決定する必要があります。例えば:
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
ここでは、簡単な支店の判断を下しました。 / Zh / 、 / fr /に行くフランス人ユーザー、および他のユーザー(デフォルト)にジャンプするのは中国人ユーザーの場合、英語のページにジャンプします。
最後のステップでは、PHPのHeader()関数を使用してジャンプ応答を送信します。 Header()の呼び出しはページ出力の前に必要である必要があります。そうしないと、エラーが報告されます。
header("Location: $redirectUrl");
exit;
出口を追加します。ジャンプを送信した直後にスクリプトが実行を停止するようにします。
<?php
// ブラウザ言語を取得します
$userLang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
// 言語に応じてジャンプします
switch ($userLang) {
case 'zh':
$redirectUrl = 'https://m66.net/zh/';
break;
case 'fr':
$redirectUrl = 'https://m66.net/fr/';
break;
case 'en':
default:
$redirectUrl = 'https://m66.net/en/';
break;
}
// ジャンプヘッダーを送信します
header("Location: $redirectUrl");
exit;
?>
HTML出力またはエコーの前にheader()を呼び出す必要があります。そうしないと、ヘッダーが既にエラーを送信します。
より多くの言語を検出する:あなたのウェブサイトがより多くの言語をサポートしている場合、スイッチを拡張または配列マッピングを使用できます。
言語スイッチングオプションの追加:自動ジャンプはエクスペリエンスを改善できますが、ユーザーは自動選択エラーを回避するために言語を手動で切り替えることもできます。