Skip navigation
Обновлено
7 июня, 2024
Эта статья устарела. Пожалуйста, обратитесь к разделу Достижение совместимости с WPML для Ваших тем и плагинов.

Это руководство покажет Вам, как создавать многоязычные темы WordPress. Многоязычная тема — это нечто большее, чем просто обернуть все тексты в вызовы GetText и предоставить файл .mo. Локализация текстов темы — это один из основных шагов, но есть и другие вещи, которые необходимо сделать.

Тема для многоязычного сайта должна показывать доступные языки, позволять выбирать язык для просмотра и корректно отображаться на каждом языке.

Это те вещи, которые нам нужно будет сделать:

  1. Обеспечение локализации для разных языков.
  2. Позволяет пользователям переключаться с одного языка на другой.
  3. Возвращение правильного контента для каждого языка.
  4. Сообщите WPML, что нужно перевести.

Подготовка темы к переводу

Чтобы тема могла отображаться на разных языках, тексты должны пройти процедуру перевода перед отображением. WordPress использует для этого GetText, и Ваша тема тоже должна это сделать.

Мы написали заметку о том, как локализовать темы WordPress. Здесь рассказывается, как обернуть тексты темы в вызовы GetText, создать переводы (файлы .mo) и применить их к теме.

Переключение между разными языками

Переключатель языков показывает посетителям, какие языки доступны, и дает им возможность выбрать.

Переключатели языков могут быть разных форм. Некоторые люди предпочитают компактное выпадающее меню с названиями языков. Другие отображают флаги стран, а третьи — горизонтальные или вертикальные списки языков.

WPML упрощает внедрение переключателей языков. В него встроен собственный выпадающий переключатель языков, который также можно включить в качестве виджета. Этот переключатель языков может отображать флаги стран, названия языков и их переводы. Его можно настроить в меню WPML->Languages.

Вы также можете создать свой собственный переключатель языков и вставить его в разные места темы. Страница руководства по пользовательскому переключателю языков объясняет, как его создать, и приводит примеры его использования. Добавив в Вашу тему пользовательский переключатель языков, Вы можете придать ей элегантности и сделать очевидным для клиентов, что тема предназначена для многоязычных сайтов.

Создание контента на правильном языке

Многие темы содержат жестко закодированные ссылки на страницы, категории и теги.

WPML подключается к стандартным функциям WordPress API и фильтрует их по языку.

Например, когда Вы звоните:

$args = array( 'category' => 1 );
$myposts = get_posts( $args );

Предположим, что категория «1» — это английская категория, а перевод на испанский язык — категория «4». Когда Вы просматриваете страницу на испанском языке и выполняете этот код, WPML заменит номер категории в фильтре на «4».

Чтобы этого не произошло, Ваш код должен использовать только вызовы API WordPress и не запрашивать базу данных вручную (что само по себе является плохой практикой).

Вы можете управлять этой функциональностью в WPML->Languages. Ищите возможность автоматической настройки идентификаторов.

Расскажите WPML о том, что нужно перевести

WPML может читать файл конфигурации языка. В этом файле Вы найдете все, что нужно знать о Вашей теме.

Сюда входят тексты администратора, пользовательские поля и пользовательские типы, которые Вы используете.

Как только Вы создадите этот XML-файл, WPML автоматически настроится и позволит пользователям запустить многоязычный сайт, не нажав ни на один экран настроек.