Возможности переключателя языков WPML
Сразу после установки WPML создает переключатель, который:
- Отображает все активные языки на Вашем сайте в выбранном Вами порядке.
- Подписывает каждый язык его родным названием (Deutsch, Français) или на текущем языке сайта (German, French) — на Ваш выбор.
- При необходимости показывает флаги (спрайт, который масштабируется вместе с Вашей темой оформления).
- Корректно обрабатывает отсутствующие переводы: либо пропускает язык, либо дает ссылку на главную страницу этого языка.
- Может быть размещен в любом меню WordPress, в любой области виджетов, в футере или встроен над и под записями.
- Поставляется в виде блока Gutenberg для любого макета конструктора страниц.
- Может быть скрыт на определенных страницах, где он будет мешать (404, оформление заказа, учетная запись).
- Кэширует свой отрендеренный HTML для быстрой загрузки страниц.
Большинство сайтов использует встроенные варианты размещения и настройки по умолчанию. Разработчики тем, которым нужно больше контроля, могут создать пользовательский переключатель в коде с помощью API WPML.
Где находятся настройки
Откройте WPMLНастройкиПереключатели языков. Страница сгруппирована по задачам, а не по вкладкам интерфейса. Выберите раздел, который соответствует тому, что Вы хотите изменить.
Какие языки отображаются и в каком порядке
В карточке Параметры переключателя языков есть область перетаскивания, в которой перечислены все активные языки. Порядок здесь определяет порядок в каждом переключателе на сайте. Перетащите языки вверх или вниз и сохраните.
В этой же карточке выберите:
- Родное название или название на текущем языке. Показывать Deutsch (родное) или German (текущий язык). Родное название более привлекательно для носителей этого языка; название на текущем языке понятнее для новых посетителей.
- Включение или отключение флагов, а также формат флага.
Что происходит при отсутствии перевода
Не каждая страница переводится на все языки. Параметр Как обрабатывать языки без перевода определяет, что делает переключатель для языка, на который не переведена текущая страница:
- Пропустить язык (по умолчанию). Язык исчезает из переключателя для этой страницы. Самый чистый UX; посетители видят только те языки, которые они действительно могут читать.
- Ссылка на главную страницу языка для недостающих переводов. Вместо этого в переключателе отображается главная страница языка. Полезно, когда Вы хотите, чтобы каждый язык всегда был доступен с любой страницы, но посетители могут попасть на контент, который они не ожидали увидеть.
Этот выбор имеет последствия для UX, которые стоит тщательно обдумать.
Где отображается переключатель
Пять вариантов размещения, каждый из которых настраивается независимо на той же странице «Настройки»:
- Переключатель языков в меню. Добавьте переключатель в любое меню WordPress (в шапке, футере, боковой панели — везде, где Ваша тема оформления назначает меню). Добавьте несколько, если Вы хотите использовать разные варианты размещения для каждого меню. Каждый переключатель в меню получает свою собственную строку предварительного просмотра, показывающую, где он находится.
- Языковой переключатель виджета. Добавьте переключатель в любую область виджетов, зарегистрированную Вашей темой оформления: боковые панели, зоны шапки, колонки футера.
- Переключатель языка в футере. Единая глобальная настройка, которая автоматически рендерит переключатель языков внизу каждой страницы.
- Встроенные ссылки на переводы записей. Один флажок, который показывает ссылки «эта запись доступна на X» над или под каждой записью.
- Пользовательские переключатели. Когда встроенных вариантов размещения недостаточно, разработчики тем могут вызвать API переключателя WPML из любого файла шаблона. На странице «Настройки» есть кнопка Настроить для параметров рендеринга.
Скрытие переключателя на определенных страницах
Некоторым страницам не нужен переключатель: странице 404, экранам учетной записи, оформлению заказа. Правила условного отображения WPML позволяют скрыть переключатель для каждой страницы, не прибегая к CSS display:none в Вашей теме оформления.
Вы устанавливаете правила для отдельных страниц на той же странице WPMLНастройкиПереключатели языков. Выберите страницы, на которых Вы хотите скрыть переключатель; правило применяется ко всем вариантам размещения переключателя одновременно.
Сохранение параметров URL-адреса
Когда посетитель нажимает на переключатель, WPML перестраивает URL-адрес для языка перевода. По умолчанию параметры строки запроса (?utm_source=newsletter, параметры фильтра и т. д.) отбрасываются. Это ломает аналитические кампании и отфильтрованные списки.
В поле Сохранить аргументы URL перечислены ключи запросов, которые Вы хотите сохранить при переключении. Все, что Вы здесь укажете (по одному в строке), переносится вместе с посетителем на переведенный URL-адрес.
Пользовательский CSS для переключателя
Единая текстовая область в разделе Дополнительный CSS применяет стили ко всем переключателям на сайте одновременно. Полезно для адаптации переключателя к Вашей теме оформления без изменения файлов темы.
Кэширование шаблона переключателя
WPML кэширует отрендеренный HTML каждого варианта размещения переключателя, что ускоряет загрузку страниц на загруженном сайте. Начиная с WPML 5.0 для этого нет отдельной настройки: кэш включен всегда, когда каталог кэша WPML доступен для записи.
Важный момент: если Вы изменили параметр переключателя и не видите изменений на фронтенде, в первую очередь следует проверить кэш. Выполните Очистить кэш в WPMLПоддержка, а затем перезагрузите страницу.
Пользовательские переключатели в коде темы
Для сайтов, которым не подходят встроенные варианты размещения (переключатель в определенном месте шапки страницы, пользовательский выпадающий список, отрендеренный Вашей темой оформления, или что-либо за пределами меню WordPress или области виджетов), WPML предоставляет API, который позволяет разработчикам тем создать пользовательский переключатель.
В карточке Пользовательские переключатели языков есть опция Включить и кнопка Настроить. После включения код шаблона темы может рендерить переключатель в любом месте, используя документированный PHP API WPML.