Сведения о вопросе

DED

13:13, 26th August, 2020

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

Просмотров: 407   Ответов: 10

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

Если второе, то как правильно делать ссылки внутри php



  Сведения об ответе

ITSME

13:34, 26th August, 2020

Чем меньше вложенность, тем больше страница нравится поисковикам, т.е. при вариантах en.site.ru/ и site.ru/en/ — первый будет приоритетнее, хоть и немного геморойнее в реализации.


  Сведения об ответе

ITSME

02:44, 17th August, 2020

… заведомо к каждой ссылке надо приписывать $language. '/link/'; ...

Я бы заменил прямой вывод ссылок, на вывод через «хелпер» в котором уже можно обрабатывать ссылку как вам нужно, в том числе и дописывать language prefix.


  Сведения об ответе

Chhiki

19:41, 8th August, 2020

если сайт информационный — лучше поддомен.
если что-то вроде социалки или блога и переводится будет только интерфейс — лучше переключалку на другие языки с передачей параметра в качестве части урла или свистком.

язык определяем так — смотрим параметры адреса, если нету — смотрим куку, если нету — смотрим данные аккаунта, если нету — смотрим $_SERVER['HTTP_ACCEPT_LANGUAGE'] и сравниваем со списком своих языков, если нет совпадений — выдаём default.
если язык на %lang%.domain.ru, то domain.ru определяем как отсутствие указанного языка и идём по вышеописанным действиям, после чего перенаправляем на соответствующий поддомен.


  Сведения об ответе

VCe znayu

05:04, 11th August, 2020

На чем сайт то? Фреймворк какой-то? Движок? Что? С нуля?


  Сведения об ответе

+-*/

18:09, 23rd August, 2020

Мне кажется первое выглядит опрятнее, но минусы такого решения: настройка Apache для name-based hosting, нужен доступ к DNS, долгое обновление DNS зоны site.com.

Второе легче реализуемо (нет временных затрат на обновление DNS). Ссылки можно делать относительные (как в PHP — не знаю).


  Сведения об ответе

ITSME

06:49, 5th August, 2020

а в чём проблема с ссылками на php? он поддерживает относительные пути


  Сведения об ответе

fo_I_K

20:00, 29th August, 2020

Все языковые версии находятся на домене site.com а текущий язык пользователя берем из куки, куда он заносится либо из предпочитаемого языка браузера, либо осознанным выбором пользователя.
Выбор пользователя — это ссылки site.com/fr/, site.com/en/ и т.д. обработчик которых всего лишь устанавливает куку и редиректит либо на реферера (если он в пределах вашего сайта), либо на главную страницу вашего сайта. Соответственно, все надписи на сайте выводятся спец. функцией, аргументом которой является ярлык — короткое, но понятное описание строки, за ним скрывающейся, например T('PLEASE_LOGIN') выводит надпись «Пожалуйста, зарегистрируйтесь» на нужном языке, все метки и их переводы на все языки хранятся в одном месте.
Такой вариант вас не устраивает?


  Сведения об ответе

+-*/

07:03, 13th August, 2020

домен у сайта должен быть один site.com, посмотрите реализацию apple.com или ibm.com


  Сведения об ответе

baggs

12:43, 20th August, 2020

Я бы выбрал en.site.com по той причине, что поддомен это может быть другой сайт с другой структурой и даже тематикой. При чем при определенных запросах в топ могут войти сразу несколько поддоменов.
Для SEO также, имхо, лучше поддомены. Вопрос только в том, что не всегда можно управлять сайтом на поддоменах из единой админки.


  Сведения об ответе

darknet

21:17, 29th August, 2020

Возьмите фреймворк типо Zend, там очень просто реализуются оба варианта. Не забывайте о приколах кроссдоменной авторизации


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться