Данное пособие поможет вам в создании многоязычных тем для WordPress. Создание многоязычной темы не ограничивается простым добавлением вызовов GetText и .mo-файлов. Локализация ее текстов – важный этап в этом процессе, но кроме него необходимо выполнить другие операции.

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

Для этого необходимо сделать следующее:

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

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

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

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

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

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

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

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

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

Отображение контента на нужном языке

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

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

Вот некоторые примеры вызовов:

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

Допустим, рубрика «1» – на английском языке, а ее переводом на испанский будет рубрика «4». При просмотре страницы на испанском языке и запуске данного кода WPML заменит номер рубрики в фильтре на «4».

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

Управление этой функцией – в WPML->Языки. Выберите параметр корректировки идентификаторов для многоязычной функциональности.

Задаем в WPML то, чему требуется перевод

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

Например, администраторские тексты, пользовательские поля и виды объектов.

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