Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Небольшой мультиязычный сайт / 6 сообщений из 6, страница 1 из 1
19.07.2014, 02:08
    #38700909
PHPist
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
Здравствуйте. Создаю небольшой мультиязычный сайт, пара страниц. Языка всего 2 - русский (страницы этого языка хранятся в папке ru) и английский (папка en). В корневом каталоге сайта есть файл Index.html, в котором вызывается php-скрипт, определяющий предпочтительный язык для вошедшего пользователя, и, соответственно, перенаправляющий пользователя на страницу с этим языком:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<?php
$language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($language){
    case 'ru':
        header('Location: http://www.site/ru/main.htm');
        break;  
    default:
        header('Location: http://www.site/en/main.htm');
        break;
}
?>



Подобный же скрипт запускается и на всех остальных страницах. Это сделано для того, чтобы при запуске любой страницы пользователь перенаправлялся на ее копию на соответствующем ему языке. Но подобная операция вызывает бесконечный переход по ссылкам. Что можно сделать, чтобы бесконечного перехода не возникало и правильный ли, вообще, это подход? Могу предположить, что в предоставленном скрипте нужно добавить строку с проверкой: если текущий адрес содержит в себе значение переменной $language, то скрипт выполняться не будет. Если это так, то помогите исправить скрипт, так как с php я не знаком.
...
Рейтинг: 0 / 0
19.07.2014, 06:22
    #38700924
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
Добавить пользователю возможность самому выбрать версию сайта путём размещения ссылки на смену языка. То есть его сначала редиректит по браузерному заголовку, а затем если это не его язык (например русский установил английскую версию браузера или находится в отпуске за границей в интернет-кафе и т.д.), то он сам выберет из списка нужный язык. Если url разные, то можно просто реплейсить en/ru.
...
Рейтинг: 0 / 0
19.07.2014, 12:20
    #38700970
PHPist
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
А как быть с перенаправлением на предпочтительный язык на каждой странице сайта (если пользователь зашел с поисковика не на главную страницу)? Или это не нужно, и перенаправлять надо только при вводе адреса сайта в браузерную строку (с Index.html)?
...
Рейтинг: 0 / 0
19.07.2014, 13:24
    #38700987
st_st
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
По приоритету url главнее всего. Если пользователь попал не на главную, то показывать страницу на языке /en/ru/ из url. А дальше пользователь сам выберет нужный ему язык, если текущий не устраивает. Некоторые при несовпадении языка в url и браузерного ACCEPT_LANGUAGE показывают попап с возможностью выбора языка.
...
Рейтинг: 0 / 0
21.07.2014, 10:04
    #38701553
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
Лучше разберитесь, почему циклическое перенаправление возникает
...
Рейтинг: 0 / 0
21.07.2014, 10:06
    #38701556
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Небольшой мультиязычный сайт
FoxterЛучше разберитесь, почему циклическое перенаправление возникает

То есть, если текущая страница = странице редиректа, то не перенаправляем. И лучше мне кажется не хранить несколько страниц (так как поддерживать надо и тп), а сделать шаблонную страницу и в ней заменять надписи соответствующим языком
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Небольшой мультиязычный сайт / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]