人々、
私は HTTP_ACCEPT_LANGUAGE に基づく機能に取り組んでおり、テストしたところ、ブラウザーにリダイレクト ループが表示されます。他の投稿で提供されているすべてのソリューションを調査しましたが、機能しません
更新: 最初に httaccess を使用して言語を検出し、適切なページと lang 変数を使用して正しいページにリダイレクトしようとしましたが、同じ問題が見つかりました。問題は、page (ユーザーがどのページにいるかを判断するため) と lang (ユーザーの話し言葉に応じた適切な言語) の 2 つの変数を使用したことです。しかし、ユーザーが初めてサイトに到着したとき: 両方の変数が null であるため、これの目的は、ユーザーのブラウザー言語を検出し、それを適切な URL にリダイレクトすることです。私の場合は..... index.php?たとえば、page=index&lang=en...
これは私がしました:
**init.php**
$supportedLangs = array (
'en-GB',
'en-US',
'es-ES',
'es-AR'
);
$languages = explode ( ',', $_SERVER ['HTTP_ACCEPT_LANGUAGE'] );
detectBrowserLanguage($languages,$supportedLangs);
**functions.php**
function detectBrowserLanguage($languages,$supportedLangs) {
foreach ( $languages as $lang ) {
if (in_array ( $lang, $supportedLangs )) {
// Set the page locale to the first supported language found
switch ($lang) {
case 'es-ES' :
header ( "Location: index.php?pagina=inicio&lang=es", TRUE, 301 );
exit ();
break;
case 'en-US' :
header ( "Location: index.php?pagina=inicio&lang=en", TRUE, 301 );
exit ();
break;
case 'en-GB' :
header ( "Location: index.php?pagina=inicio&lang=en", TRUE, 301 );
exit ();
break;
default :
header ( "Location: index.php?pagina=inicio&lang=es", TRUE, 301 );
exit ();
break;
}
}
}
}