多言語のWebサイトを開発するときは、通常、ユーザーの言語選択に基づいて、対応する翻訳されたコンテンツをロードする必要があります。ただし、場合によっては、ユーザーは対応する翻訳なしで言語を選択する場合があります。または、その言語のコンテンツが特定のページに表示されません。ユーザーエクスペリエンスを確保するために、フォールバックメカニズムを介してデフォルトの言語コンテンツを提供できます。
PHPはEND()関数を提供します。これにより、このメカニズムを簡単に実装できます。次に、簡単な例を使用して、 end()関数を使用して、多言語アレイにデフォルトの言語フォールバックメカニズムを実装する方法を示します。
言語データが連想配列に保存され、各言語のデータが配列の一部である多言語Webサイトがあるとします。ネストされた配列を使用して、各言語の翻訳を保存します。
$lang = [
'en' => [
'greeting' => 'Hello',
'farewell' => 'Goodbye',
],
'fr' => [
'greeting' => 'Bonjour',
'farewell' => 'Au revoir',
],
'es' => [
'greeting' => 'Hola',
'farewell' => 'Adiós',
],
];
通常、ユーザーは$ _getまたは$ _Sessionから取得できる言語を選択します。ユーザーが選択を持っていない場合、または選択した言語の翻訳が存在しない場合、デフォルト言語に戻ります。
$user_language = isset($_GET['lang']) ? $_GET['lang'] : 'en'; // デフォルトで英語を使用します
フォールバックメカニズムを実装するとき、 end()関数を使用して、設定したデフォルト言語になる配列の最後の要素を取得できます。まず、ユーザーの選択した言語が存在するかどうか、それが存在する場合はその言語の翻訳を使用する必要があります。存在しない場合は、デフォルト言語(英語など)に戻ります。
// ユーザーが選択した言語が存在するかどうかを確認します
if (isset($lang[$user_language])) {
$selected_lang = $lang[$user_language];
} else {
// ユーザーに選択された言語に翻訳がない場合,デフォルト言語へのフォールバック(英語)
$selected_lang = $lang['en'];
}
// 使用 end() 最後の翻訳アイテムを入手してください
$last_translation = end($selected_lang);
echo "最後の翻訳: " . $last_translation;
end($ selected_lang) :この関数は、配列の最後の要素にポインターを移動し、その要素を返します。この方法を通して、ユーザーが翻訳コンテンツなしで言語を選択しても、プログラムがデフォルトの翻訳項目を返すことができるようにすることができます。
ユーザー選択した言語がISSET()を介して有効であるかどうかを確認し、無効である場合、デフォルト言語ENに戻ります。
翻訳されたコンテンツにURLが含まれている場合、 M66.netにする必要があるこれらのURLのドメイン名を置き換えることができます。たとえば、翻訳内のすべてのリンクドメインを置き換えて、正しいWebサイトを指していることを確認します。