I już ułożyła mały skrypt w PHP, który sprawdza ustawień językowych twojej i przekierować je do wersji językowej serwisu (WP wielu miejscach),Język przekierowanie działa na pulpicie, ale nie w przeglądarce mobilnej
function redirect() {
$language = substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
switch($language) {
case 'sv':
header('Location: http://www.example.com/sv/');
break;
case 'no':
header('Location: http://www.example.com/no/');
break;
case 'da':
header('Location: http://www.example.com/da/');
break;
default:
header('Location: http://www.example.com/');
break;
}
}
if (strlen($url) < 4) {
session_start();
if (empty($_SESSION[ 'language' ])) {
$_SESSION[ 'language' ] = true;
redirect();
}
}
Podczas testowania z Mobile Safari lub Mobile Chrome przekierowanie nie działa. Czy jest jakiś specjalny wynik dla akceptowanego języka dla przeglądarek mobilnych, który muszę wziąć pod uwagę?
Aktualizacja: Po pewnym więcej debugowania Znalazłem się w ten sposób:
- Mobile Safari wyświetla odpowiedni język, gdy echo HTTP_ACCEPT_LANGUAGE ale nie przekierować.
- Chrome mobilna (tylko iOS, działa na Androidzie) nie wyświetla właściwego języka (domyślnie "en").
- System iOS analizuje dane nagłówka http w innej kolejności, porównuje Chrome iOS (en-US, en; q = 0,8, sv; q = 0,6) i Chrome OSX (sv, en-US; q = 0,8, en; q = 0,6).
Echo 'HTTP_ACCEPT_LANGUAGE' z urządzenia mobilnego jest tam? – chris85
Niestety, zapomniałem wspomnieć - echo to daje mi "en" w wyniku zarówno dla Mobile Safar i Mobile Chrome (iOS 8). –
Wygląda na to, że 'HTTP_ACCEPT_LANGUAGE' nie działa na urządzeniach mobilnych. Możesz poprosić użytkownika o jego język lub wypróbować inną metodę, gdy telefon komórkowy jest mobilny. – chris85