Перенаправление языка пользователя + язык по умолчанию для root: не работает - PullRequest
2 голосов
/ 03 сентября 2011

Извините за приблизительный английский.

Я использую этот метод для предоставления перенаправления в соответствии с языком пользователя и сохраняю данные в файлах cookie: http://dallascao.com/en/use-cookies-to-remember/

Однако перенаправление нене получится, если я решу выбрать корневой домен в качестве языка по умолчанию, например:

<?php $lang=$_COOKIE["lang"];
switch ($lang) {
case 'en':
    header('Location:  http://hawalove.com/');
    break;
case 'fr':
    header('Location:  http://www.hawalove.com/fr');
    break;
#Get the default language of the browser if no cookies are found.
default:
    $lang = getDefaultLanguage(); 
    switch ($lang) { 
    case 'fr' : 
        header('Location:  http://www.hawalove.com/fr'); 
        break; 
    default: 
        header('Location: http://hawalove.com/'); 
        break; 
    } 
    break;
}
?>

Можете ли вы помочь мне добиться этого?Я хотел бы иметь английскую версию в root (mydomain.com) и французскую версию в mydomain.com/fr.

Спасибо.

1 Ответ

0 голосов
/ 03 сентября 2011

Я думаю, что «не работает» означает «бесконечные циклы перенаправления для носителей английского языка».

Все, что вам нужно, это способ вообще не перенаправлять, когда выбран английский язык. Добавьте ассоциативный массив, который отображает поддерживаемые языки в место перенаправления, затем сделайте следующее:

  1. Схватить $lang с $_COOKIE["lang"].
  2. Если $lang не поддерживается (или даже не установлен), то $lang = getDefaultLanguage().
  3. Если $lang не 'en', то перенаправить, в противном случае отобразить домашнюю страницу на английском языке без перенаправления вообще.

Вы можете использовать ассоциативный массив для (2) и (3). Основная стратегия проста: вообще не перенаправлять, если язык оказывается английским. Возможно, вы захотите установить свой языковой файл cookie, если у вас есть действительный язык.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...