Всем привет, хочу услышать ваше мнение, щас будет много букаф... Решил я перевести свой сайт на мультиязычные рельсы. Сайт на ZendFramework. Собственно, с самой мультиязычностью никаких проблем, ее я седал. Когда пользователь приходит первый раз, ему прописывается в куку его дефолтный язык, который определяется через Accept-language. Далее в зависимости от значения этой куки пользователю показывается нужный контент. Само собой, есть принудительный переключатель ru/en, который делает ровно то же самое - присваивает значение куке. Теперь идеологический вопрос. С точки зрения карты сайта в такой конфигурации ничего не поменялось, все ссылки (permanent links) остались неизменными. Но в таком случае возникает конфуз. Допустим, англоязычный пользователь заходит по ссылке http://mysite.com/article1, видит контент на иглише, копирует линку и дает приятелю. Тот открывает линку и почему-то у него определяется русская локаль, он получает русскую версию. Вроде бы не беда - есть переключатель, но все-равно, чувство перфекционизма уязвлено. Есть выход, в зависимости от текущего языка делать редирект с таких страниц на http://mysite.com/en/article1 http://mysite.com/ru/article1 чтобы пользователь никогда не попадал на http://mysite.com/article1, и копировал линку, содержащую указание на язык (http://mysite.com/en/article1). Чем плох данный подход? В основном из соображений СЕО. Все проиндексированные на данный момент страницы окажутся потерянными для поисковиков. Как бы вы сделали? Добавлено спустя 2 минуты 33 секунды: наверное не в тот раздел запостил. наверное лучше было в Решения
Я никогда не парюсь. Обычно делаю через массив $lang['ru']=array(........); $lang['en']=array(........); Притом всего, то надо сделать так: get_lang('key'); где будет: return $lang[$_COOKIE['lang']][$key];
Ради поисковиков я бы с адресов без языкового префикса делал 301 редирект на страницы с дефолтным префиксом (ru?). Постепенно весь контент переиндексируется. Не проблема.
Получается, нужно реализовать редирект поисковиков на ру-версию, а реальных юзеров на accept-language?
Редирект будет только со старого адреса, от которого ты отказываешься, который без префикса. Разве нет? Если юзер или поисковый спайдер шуршат по пространству /en/ или по пространству /ru/, никто никуда их вроде не должен редиректить. Добавлено спустя 5 минут 1 секунду: Чтобы не обсуждать сферических коней, реальный пример, стартовая: http://www.yiiframework.com/doc/guide/ Слева выбор языка. Смотрим на адреса ссылок. Никто не запрещает пользователю посещать китайский квартал, он сам туда не пойдет. Добавлено спустя 1 минуту 39 секунд: accept-language может быть надо анализировать на одной странице — корне. поисковик же увидит корень на дефолтовом языке. Добавлено спустя 10 минут 32 секунды: На самом деле под "мультиязычностью" можно понимать разное. Если это язык контента - то об этом моя куча букв сверху. Если это язык интерфейса - главного меню и текст на кнопках - не надо этот язык привязывать к URL страницы. Пришел юзер на сайт по ссылке, увидел контент на том языке, про который была ссылка. А текст на вспомогательных элементах будет выбран по его accept-language.
Оставь русский без префикса, английский с префиксом. И поисковики не пострадают, и ссылки будут разные.
не, accept-language нужно везде анализировать и редиректить - не известно с какой ссылки поисковой выдачи придет пользователь.
Не совсем верно. Поисковая выдача будет именно на ту страницу, на каком языке был задан вопрос. Наверно, если я задаю вопрос по-русски и получаю ссылку на русскую страницу, я не хочу, что бы меня редиректило на английскую, вне зависимости от происхождения моего браузера.
в период стабилизации, когда в поисковом кэшэ будут еще ссылки без указания языка... нужно будет редиректить все страницы
И насколько большой трафик англоязычных посетителей не понимающих русский придет с поисковых запросов сделанных на русском? Я же правильно понял, что сайт изначально русский был?