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