Языки на сайте

Как лучше делать сайт…
Поддомены
ru.site.com, en.site.com, fr.site.com
или же
site.com/ru/
site.com/fr/
site.com/en/

Если второе, то как правильно делать ссылки внутри php
  • Вопрос задан
  • 2365 просмотров
Решения вопроса 1
slang
@slang
Чем меньше вложенность, тем больше страница нравится поисковикам, т.е. при вариантах en.site.ru/ и site.ru/en/ — первый будет приоритетнее, хоть и немного геморойнее в реализации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 9
Dmitry404
@Dmitry404
… заведомо к каждой ссылке надо приписывать $language. '/link/'; ...

Я бы заменил прямой вывод ссылок, на вывод через «хелпер» в котором уже можно обрабатывать ссылку как вам нужно, в том числе и дописывать language prefix.
Ответ написан
zorba_buddha
@zorba_buddha
IT
если сайт информационный — лучше поддомен.
если что-то вроде социалки или блога и переводится будет только интерфейс — лучше переключалку на другие языки с передачей параметра в качестве части урла или свистком.

язык определяем так — смотрим параметры адреса, если нету — смотрим куку, если нету — смотрим данные аккаунта, если нету — смотрим $_SERVER['HTTP_ACCEPT_LANGUAGE'] и сравниваем со списком своих языков, если нет совпадений — выдаём default.
если язык на %lang%.domain.ru, то domain.ru определяем как отсутствие указанного языка и идём по вышеописанным действиям, после чего перенаправляем на соответствующий поддомен.
Ответ написан
Комментировать
MyraJKee
@MyraJKee
На чем сайт то? Фреймворк какой-то? Движок? Что? С нуля?
Ответ написан
@XRay39
Мне кажется первое выглядит опрятнее, но минусы такого решения: настройка Apache для name-based hosting, нужен доступ к DNS, долгое обновление DNS зоны site.com.

Второе легче реализуемо (нет временных затрат на обновление DNS). Ссылки можно делать относительные (как в PHP — не знаю).
Ответ написан
Cheese
@Cheese
а в чём проблема с ссылками на php? он поддерживает относительные пути
Ответ написан
@Demetros
Все языковые версии находятся на домене site.com а текущий язык пользователя берем из куки, куда он заносится либо из предпочитаемого языка браузера, либо осознанным выбором пользователя.
Выбор пользователя — это ссылки site.com/fr/, site.com/en/ и т.д. обработчик которых всего лишь устанавливает куку и редиректит либо на реферера (если он в пределах вашего сайта), либо на главную страницу вашего сайта. Соответственно, все надписи на сайте выводятся спец. функцией, аргументом которой является ярлык — короткое, но понятное описание строки, за ним скрывающейся, например T('PLEASE_LOGIN') выводит надпись «Пожалуйста, зарегистрируйтесь» на нужном языке, все метки и их переводы на все языки хранятся в одном месте.
Такой вариант вас не устраивает?
Ответ написан
dfpoint
@dfpoint
домен у сайта должен быть один site.com, посмотрите реализацию apple.com или ibm.com
Ответ написан
Комментировать
EKCTPEMICT
@EKCTPEMICT
FrontEnd Developer
Я бы выбрал en.site.com по той причине, что поддомен это может быть другой сайт с другой структурой и даже тематикой. При чем при определенных запросах в топ могут войти сразу несколько поддоменов.
Для SEO также, имхо, лучше поддомены. Вопрос только в том, что не всегда можно управлять сайтом на поддоменах из единой админки.
Ответ написан
Комментировать
porohnya
@porohnya
Возьмите фреймворк типо Zend, там очень просто реализуются оба варианта. Не забывайте о приколах кроссдоменной авторизации
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы