Данное пособие поможет вам в создании многоязычных тем для WordPress. Создание многоязычной темы не ограничивается простым добавлением вызовов GetText и .mo-файлов. Локализация ее текстов – важный этап в этом процессе, но кроме него необходимо выполнить другие операции.
Тема многоязычного сайта должна показывать доступные языки, предоставлять возможность выбирать между ними, а также корректно отображать контент на каждом из языков.
Для этого необходимо сделать следующее:
- Обеспечить локализацию на разных языках.
- Дать возможность пользователям переключаться между языками.
- Вывести на экран контент на нужном языке.
- Указать для 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 автоматически все настроит и позволит использовать многоязычный сайт без какого-либо вашего участия в настройке.