обнаружение языка и перезапись / перенаправление URL

0

Мой сайт имеет два языка: EN (английский) и TR (турецкий). Теперь он загружается как турецкий язык по умолчанию. В URL-адресах нет какой-либо языковой фразы. Например, наши страницы: domain.com/index.php, domain.com/aboutus.php и т.д.

Если кто-то щелкнет по ссылке "Английский", перезагрузите страницу с помощью этой фразы:? Language = EN. Например, domain.com/aboutus.php?language=RU

После этого щелчка все страницы загружаются как английский, но мы не видим никаких языковых фраз в URL-адресе. Другие страницы загружаются, как services.php, contact.php обычно, но на английском языке..

Мне нужен простой редиректор для браузера: - Если язык пользовательского браузера является турецким, тогда все в порядке, страница может загружаться по умолчанию по-турецкому. - Если язык пользовательского браузера не является турецким, тогда страницы должны загружаться на английском языке через выражение "язык = ЕС". Например, domain.com/aboutus.php?language=RU

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

Мы можем использовать для этого php, htaccess или javascript.

Большое спасибо...

Теги:
.htaccess
redirect
url-redirection

1 ответ

1

Было бы хорошо, если бы синтаксис был симметричным (т.е. У вас есть то же самое для турецкого, что у вас есть для английского). Если это выглядит уродливым (и это делает для меня), переместите это на сеанс. Я предлагаю это достаточно чисто:

  1. Если запрос является запросом на изменение языка, измените язык, сохраните его на сеанс. В противном случае,
  2. Если сеанс содержит выбор языка, используйте этот язык. В противном случае,
  3. Используйте заголовок Accept-Language чтобы выяснить, что браузер хочет, установить язык, сохранить в сеансе.

Разумеется, вы можете использовать одну и ту же систему с параметром URL. Проблема в том, что с вашей текущей схемой вы не можете различать "не выбран язык" и "английский выбран".

  • 0
    Спасибо за ваш ответ и решение. Ваше предложение, к сожалению, слишком сложно для меня. Если вы хотите, вы можете увидеть мои коды выбора языка на stackoverflow.com/questions/26819454/…
  • 0
    Какой бит слишком сложный? Если это синтаксический анализ Accept-Language , вы можете найти хороший парсер PHP здесь . (Существует только два способа определения языка пользователя, оба подвержены ошибкам, а другой - это геолокация по IP.) Остальное должно быть довольно тривиальным.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню