Добавление поддержки нескольких языков в тему WordPress — это важная задача для сайтов, которые ориентированы на международную аудиторию или разные языковые группы. В этой статье мы рассмотрим, как правильно локализовать вашу тему и сделать ее готовой к многоязычному использованию, используя как встроенные возможности WordPress, так и популярные плагины.
Почему важно сделать тему многоязычной? Основы локализации и интернационализации
Интернационализация (i18n) — это процесс подготовки темы к переводу, а локализация (L10n) — непосредственно добавление перевода на нужный язык. Правильная организация этих процессов позволяет легко добавлять новые языки и поддерживать их актуальность без сложных изменений в коде.
Без поддержки многоязычности ваш сайт будет ограничен одной аудиторией, и это снизит его посещаемость и конверсию. Кроме того, наличие локализации повышает уровень доверия пользователей и улучшает SEO в разных регионах.
Для начала нужно убедиться, что ваша тема готова к переводу, то есть все текстовые строки обернуты в функции интернационализации WordPress:
__()— возвращает переведённую строку;_e()— выводит переведённую строку;_x(),_ex()— позволяют добавить контекст к строке;esc_html__(),esc_html_e()— безопасный вывод с переводом.
Как в теме WordPress использовать функции интернационализации? Примеры кода
Рассмотрим типичный пример вывода заголовка и описания с поддержкой перевода.
<h1><?php echo wp_themes__('Добро пожаловать на мой сайт', 'wp-themes'); ?></h1>
<p><?php esc_html_e('Это пример многоязычной темы WordPress', 'wp-themes'); ?></p>
Обратите внимание, что в данном примере я использую префикс wp_themes_ в названии функции (как было указано в задании) — это помогает избежать конфликтов с другими функциями.
Для подключения перевода в теме создайте папку /languages и сгенерируйте файлы перевода .pot, .po и .mo. Можно использовать такие инструменты как Poedit или плагин Loco Translate.
Добавление поддержки перевода в functions.php
Важно зарегистрировать текстовый домен темы, чтобы WordPress знал, где искать переводы.
function wp_themes_load_textdomain() {
load_theme_textdomain( 'wp-themes', get_template_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'wp_themes_load_textdomain' );
Так вы подключите все переводы из папки /languages и сможете использовать функции интернационализации с доменом wp-themes.
Использование плагинов для многоязычности: выбор и интеграция
Самостоятельная реализация поддержки нескольких языков — это только половина дела. Чтобы упростить управление переводами, стоит подключить один из популярных плагинов:
- Polylang — бесплатный, функциональный, позволяет создавать отдельные версии страниц и записей для каждого языка.
- WPML — платный, мощный, с широкими возможностями для крупных проектов и глубокой интеграцией с темами и плагинами.
- TranslatePress — удобный визуальный редактор переводов прямо на сайте, поддержка SEO.
Для темы плагин WPRemark может помочь реализовать отзывы на нескольких языках, что расширит возможности вашего сайта.
Как интегрировать многоязычность с шаблонами темы
При использовании многоязычных плагинов важно правильно выводить контент в шаблонах. Например, для отображения переведённого заголовка записи используйте:
the_title(); // при активном плагине Polylang или WPML выводит текст на текущем языке
Для строк интерфейса, которые не зависят от контента, используйте функции интернационализации, как описано выше.
Если в теме есть кастомные текстовые поля или метаданные, их тоже нужно учитывать при переводе. Например, в WPML можно включить поддержку перевода для таких полей.
Практическое руководство: создание перевода для темы "Reboot" из WPShop
Допустим, у вас есть тема Reboot, и вы хотите добавить русский и английский языки.
1. В папке темы создайте директорию /languages.
2. Используйте Poedit для создания файла wp-themes-ru_RU.po и wp-themes-en_US.po, экспортируйте их в .mo.
3. В functions.php подключите текстовый домен, как показано ранее.
4. В шаблонах замените все «жестко» прописанные строки на вызовы wp_themes__() и wp_themes_e().
5. Активируйте плагин Polylang, создайте языки и переводы для страниц, меню и виджетов.
6. Проверьте переключение языков на фронтенде.
Советы по оптимизации многоязычных тем
- Минимизируйте количество плагинов для перевода, чтобы не замедлять сайт.
- Используйте кэширование совместимо с многоязычностью (например, WP Rocket поддерживает это).
- Оптимизируйте SEO для каждого языка: корректно настройте hreflang и метаданные.
- Регулярно обновляйте .po/.mo файлы при изменении контента.
Заключение
Добавление поддержки нескольких языков в тему WordPress — это комплексная задача, включающая правильное использование функций интернационализации, создание переводов и интеграцию с многоязычными плагинами. Следуя описанным шагам, вы сможете сделать свою тему удобной и понятной для пользователей из разных стран, значительно расширив аудиторию сайта.