Как вы определяете и работаете с языком страниц сайта?

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Закрыто
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

Многоязычный сайт. На главной сайте ссылки для смены языков. Очевидные вещи:

1. Пользователь впервые заходит на сайт - выбрать язык по умолчанию или запросить приоритетный язык браузера:

Код: Выделить всё

\Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
2. При смене языка поставить куку с новым языком. При повторном заходе на сайт - посмотреть куку - если есть, то применить язык.
3. Пользователя зарегистрировался - записать в БД текущий язык приложения.
4. Пользователь залогинился - посмотреть язык в identity и установить новую куку с языком, если она отличается.

Нужно ли хранить язык в сессии?

Или вообще не так?
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение ElisDN »

girmate писал(а): 2017.04.20, 12:56 Нужно ли хранить язык в сессии?
Зависит от того, хотите ли Вы индексировать все языки в поисковых системах или нет.

А так сессии истекают по умолчанию за один час. Лучше в Cookies.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

ElisDN писал(а): 2017.04.20, 13:09
girmate писал(а): 2017.04.20, 12:56 Нужно ли хранить язык в сессии?
Зависит от того, хотите ли Вы индексировать все языки в поисковых системах или нет.

А так сессии истекают по умолчанию за один час. Лучше в Cookies.
Принял к сведению. Да, хочу чтобы по разным языкам показывались разноязычные сайты, все индексировалось и так далее. Что нужно для индексации? Как это делается (на словах) ?
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение ElisDN »

Чтобы всё индексировалось на всех языках указывают язык в адресе вроде site.com/ru и site.com/en и прописывают перекрёстные линки.
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

Хорошо. Значит, нужно вообще отказаться от кук и определять язык исходя из ссылки, примерно как здесь: Yii2 и организация мультиязычности (habrahabr.ru)
Тогда поисковые системы будут видеть контент на разных языках в зависимости от парсинга ссылок, то есть site.com/ru/ или site.com/en/, что логично. Плюс в адресной строке уже будет подсказка, на каком языке демонстрируется сайт. Линки "rel", как я понял помогают лишь поисковым ботам.

Но есть нюансы.
Пока предусматриваю 2 языка: русский, английский. Предположим, немец выбрал английский язык и работает на этих страницах, оставляет комментарии. Затем я добавил перевод интерфейса на немецкий язык. Немец с радостью переходит на него. Но что тогда?
То есть следует различать язык интерфейса сайта и язык содержимого. Как-то так?
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

Хотя содержимое можно оставить общим для всех. На ютюбе же НЕ оставлены лишь те комментарии, которые подходят текущему языку, а показаны все.
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение maleks »

girmate писал(а): 2017.04.20, 13:58 То есть следует различать язык интерфейса сайта и язык содержимого. Как-то так?
да, типа того.
У контента должен быть указано на каком он языке.
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

Значит, я понял следующее:
1. чтобы пользователям и ботам было хорошо делаем ссылки вида site.com/ru/faq
2. тогда куки и хранение языка в БД отпадает - мы можем взять его из ссылки
3. если мы можем взять язык из ссылки, то нужно парсить его в URLManager
4. плюс нужно добавить и автоматическую генерацию ссылок, чтобы язык во все ссылки подставлялся автоматически, когда пишем Url::to(['site/faq])
5. на каждой странице поместить виджет выбора языка, но при смене языка он должен возвращать на аналогичную страницу (а не index)
6. Как подсказал ElisDN, прописываем также линки "ref" с языками.
7. возможно нужен вариант переадресации на страницу с языком по умолчанию, когда пользователь попадает на сайт впервые: site.com на site.com/ru/ (index)

что еще понадобится?
Осторожно! Вы общаетесь с новичком ;)
Аватара пользователя
girmate
Сообщения: 1534
Зарегистрирован: 2015.10.27, 12:52

Re: Как вы определяете и работаете с языком страниц сайта?

Сообщение girmate »

Спасибо. Там в конце есть ссылка на добротное расширение codemix/localeurls
Получилось установить. Кажется, работает.
Осторожно! Вы общаетесь с новичком ;)
Закрыто