Организация структуры многоязычного сайта

mulekula

Постоялец
Регистрация
6 Дек 2008
Сообщения
91
Реакции
2
Помогите пожалуйста организовать такую структуру.

как можно чтобы язык выбирался автоматически в зависимости от языка браузера + после этого перенаправляла в нужную подпапку сайта
site.ru/ru/index
site.ru/eng/index
 
  • Заблокирован
  • #2
язык автоматически выбирается и переадресовывается с помощью Java Script
 
не согласен с вами, это реально реализовать и на php вся проблема в перенаправлении.
PHP:
<?php
if (substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5) == "ru_RU")
  $lang = "rus";
else
  $lang = "eng";
?>
 
Браузеры отсылают, какой язык у них по умолчанию и узнать это можно в заголовке $_SERVER['HTTP_ACCEPT_LANGUAGE']
Для просмотра ссылки Войди или Зарегистрируйся

А вот перенаправление в нужную папку уже сильно зависит от движка.
В самом простом варианте, что-то типа: include('ru/index.php');
 
  • Заблокирован
  • #5
Простите, но вы все не правы:p Это конечно можно как-то реализовать на PHP, но зачем ради этого нагружать сервер? От этого будет хуже и клиенту и серверу.
В java скрипте с помощью объекта Для просмотра ссылки Войди или Зарегистрируйся узнаётся язык, а затем с помощью window.location.replace(тут куда перенаправить) перенаправляешь куда надо. Причём пользователь даже не заметит что его на нужный ему язык сразу перенаправили. Это даже в истории не сохранится
 
Это конечно можно как-то реализовать на PHP, но зачем ради этого нагружать сервер?
Ну потому как человек изначально создал тему в разделе php :)

Если нужна именно переадресация, то это всего лишь:
header("Location: /ru/index");

И кстати этот вариант более оптимален с точки зрения сервера, потому как страница не формируется и не отдается клиенту, что будет в случае редиректа на JS
 
если пользователь зайдет не на index страницу, а например на страницу 2 уровня как сделать чтобы сервер оставил ее на этой странице и выбрал для нее необходимый язык.
ПС:движок не использую
 
  • Заблокирован
  • #8
мне казалось что второй уровень должен быть /ru/ либо /eng/ как же иначе-то?
или вы хотите чтобы пользователь заходя на /eng/ получал русскую страницу потому что у него браузер на русском?:lol:
Второй уровень в мультиязычных сайтах это всегда определение языка. Так уж повелось
 
Обрабатывай $_SERVER["REQUEST_URI"] подставляя в начало нужный язык, а потом редирект.

Только о фильтрации подумай.
Как минимум фильтрация http:// - его не должно быть в $_SERVER["REQUEST_URI"] а то можно будет твой сайт для нехороших редиректов использовать...
 
извиняюсь 3 уровня)
 
Назад
Сверху