Изменение языка в зависимости от языковой версии браузера пользователя
Иногда возникает необходимость перевести какой-либо элемент сайта с одного языка на другой. Это может быть необходимо, если ваш сайт посещают пользователи, язык которых отличается от языка сайта. Допустим, сайт на румынском языке, но его посещают и пользователи из Молдовы, для которых русский язык предпочтительнее.
Обычно в таких случаях рекомендуется создать отдельную страницу с определенным языком, предназначенным для пользователя. Но есть и другой вариант: при входе на сайт запросить языковую версию браузера и отобразить текст на нужном языке.
Так пользователи из Румынии получат текст на румынском языке, а пользователи из Молдовы – на русском.
Рассмотрим пример на основе темы colormag.
У нас есть блок: Вам может понравиться. Давайте создадим условия, при которых разным пользователям будет отображаться разный текст в зависимости от языковой версии браузера.
Настройки должны быть сделаны в этом файле inc/related-posts.php.
За вывод текста отвечает строка кода
echo get_theme_mod( 'colormag_you_may_also_like_text', esc_html__( 'You May Also Like', 'colormag' ) );
Для запроса относительно языка мы будем использовать элемент массива HTTP_ACCEPT_LANGUAGE, который даст нам представление о предпочтениях клиента относительно языка.
Создадим условия:
- румынский язык
- русский язык
- все остальные языки.
Все остальные языки нужны для того, чтобы сообщить клиенту язык, который не соответствует ни одному из двух условий. По умолчанию это будет английский язык.
Итак, создадим скрипт:
Вот так, это очень просто. Проверку работы скрипта можно проверить на этой странице . В зависимости от предпочитаемого вами языка вы получите соответствующий текст заголовка. Аналогичным образом вы можете изменить язык любого элемента вашего сайта.
Поисковики относятся к этому спокойно и не обращают на это внимание, ведь lang в заголовке страницы остаётся неизменным.
Источник Colormag.info