Доброго вечера всем. Появилась необходимость добавить сайту мультиязычность. Все необходимые изменения структуры БД сделаны, но появился вопрос: изначально планировал хранить язык в куке (возможно, с гео-таргетингом при первом заходе). Но в таком случае URL будут одинаковые у страниц с разными языками - как отнесутся поисковики? Умеют ли они хранить куки или проиндексируют только язык, стоящий по умолчанию? На форумах много холиваров, а есть ли у кого-то реальные примеры? Каким образом всё же сделать переключение? Как вариант site.ru/(ru|en) - как лучше в итоге сделать?
сделай гет параметр с языком...пусть из твоих же куков берет его и делает редирект на нужный урл...если параметр отсутствует сделай допустим русский чтоб по умолчанию был
Я про это и спрашивал - site.ru/(ru|en) (перекинет mod_rewrite'ом на index.php с нужным параметром). Но остаётся вопрос - смогут ли поисковики проиндексировать обе языковые версии, если URL будет одинаковым? Дабы не менять алгоритм генерации ссылок (много менять придётся).
ИМХО лучше быть поосторожнее. Один и тот же урл, с разных ИП выглядящий по-разному - со стороны ПС это может быть подозрение на клоакинг. Обычно изначально делают отдельные урлы для языков типа /ru/content, /en/content, либо поддомены en.site.com, ru.site.com итд.
Апну свою же тему. Есть сайт с двумя языками (ru и en). Если у какого-то из элементов что-либо не переведено на английский, должен ли этот элемент отображаться в английской версии сайта? Как считаете? На данный момент реализовано так - если что-то не переведено, отображается на русском.
Правильно сделано. Кому надо может воспользоваться переводчиком, например. И вообще можно сделать ссылку на гугл транслэйт для непереведенного текста
Я когда реализовал, задумался - а как поисковики отнесутся? Не отнесут ли это к дублированному контенту? Если, к примеру, на site.ru/ru/item и site.ru/en/item будет одинаковый текст (т.е. просто не будет переведён). Не в курсе, случайно?
Как вариант перевод зделать плагином для Jquery тогда стр будет одна, но хз как поисковик на это посмотрит так как там вместо текста шабы, http://habrahabr.ru/blogs/jquery/112843/
Не забывайте в <head> указывать язык документа: PHP: <META HTTP-EQUIV="Content-language" content="ru" /> PHP: <META HTTP-EQUIV="Content-language" content="en" />
elion, да, только лучше использовать уже не meta, а lang: PHP: <html lang="ru"> Всё же, вопрос к сеошникам остаётся в силе: если на страницах site.ru/ru/item и site.ru/en/item будет одинаковых контент, не схлопочет ли сайт бан?