В современном мире многоязычные сайты становятся необходимостью, особенно если вы хотите расширить аудиторию своего проекта. Если вы разрабатываете собственный шаблон WordPress, важно правильно организовать поддержку локализации, чтобы переводы можно было легко добавлять и использовать. В этой статье мы подробно разберём, как добавить поддержку локализации в ваш шаблон WordPress, рассмотрим основные функции, необходимые для этого, а также приведём примеры кода и полезные плагины.
Почему важна локализация шаблона WordPress
Локализация (i18n) — это процесс подготовки темы или плагина к переводу на разные языки. Если ваш шаблон не поддерживает локализацию, вы ограничиваете себя одним языком, что негативно сказывается на пользовательском опыте и SEO. Кроме того, правильно организованная локализация позволяет легко обновлять переводы без изменения исходного кода.
WordPress изначально поддерживает локализацию, но для темы нужно правильно подключить все необходимые функции и стандарты.
Подготовка шаблона к локализации: подключаем текстовые домены
Первым шагом является добавление поддержки локализации в файл functions.php вашей темы. Для этого используется функция load_theme_textdomain(). Она загружает файлы перевода из указанной директории.
function wp_shablon_load_textdomain() {
load_theme_textdomain('wp-shablon', get_template_directory() . '/languages');
}
add_action('after_setup_theme', 'wp_shablon_load_textdomain');Здесь 'wp-shablon' — это текстовый домен, который нужно использовать во всех вызовах функций перевода. Папка /languages будет содержать файлы перевода (.po и .mo).
Использование функций перевода в шаблоне
Для вывода текста, который должен быть переведён, используйте функции:
__('Текст', 'wp-shablon')— возвращает перевод строки;_e('Текст', 'wp-shablon')— выводит перевод строки напрямую;_n('Один объект', '%d объектов', $number, 'wp-shablon')— используется для числовых форм множественного числа.
Пример использования:
<h1><?php _e('Добро пожаловать на мой сайт', 'wp-shablon'); ?></h1>Создание и редактирование файлов переводов .po и .mo
Для создания переводов удобно использовать программу Poedit. Она позволяет создавать .po файлы и компилировать их в .mo — бинарные файлы, которые читает WordPress.
Чтобы создать файл перевода, откройте Poedit, выберите «Создать новый перевод», укажите текстовый домен и язык, затем переведите строки. После сохранения файл .po и .mo нужно загрузить в папку /languages вашей темы.
Структура папки languages
Рекомендуется использовать структуру имен файлов вида wp-shablon-ru_RU.mo и wp-shablon-ru_RU.po, где ru_RU — код языка и локали.
Автоматизация и проверка перевода с помощью плагинов
Чтобы облегчить работу с переводами, можно использовать плагины. Вот несколько полезных:
- Loco Translate — позволяет редактировать переводы прямо из админки WordPress. Очень удобно для быстрого изменения и проверки.
- WPML — мощный плагин для создания многоязычных сайтов, который интегрируется с темами и поддерживает локализацию.
- Polylang — бесплатный плагин для многоязычности, совместимый с большинством тем и плагинов.
Для базовой поддержки локализации достаточно использовать Loco Translate, он упростит работу с файлами .po и .mo.
Пример: добавление переводимых строк в шаблон
Рассмотрим пример использования локализации в файле header.php вашего шаблона:
<header>
<nav>
<ul>
<li><a href="/"><?php echo __('Главная', 'wp-shablon'); ?></a></li>
<li><a href="/blog"><?php echo __('Блог', 'wp-shablon'); ?></a></li>
<li><a href="/contact"><?php echo __('Контакты', 'wp-shablon'); ?></a></li>
</ul>
</nav>
</header>Все эти строки можно перевести на нужные языки через .po/.mo или плагины.
Расширенные возможности: локализация динамического контента и JavaScript
Для перевода строк в JavaScript можно использовать функцию wp_localize_script(). Это позволяет передавать переводы из PHP в JS.
function wp_shablon_enqueue_scripts() {
wp_enqueue_script('wp-shablon-script', get_template_directory_uri() . '/js/script.js', array('jquery'), null, true);
wp_localize_script('wp-shablon-script', 'wpShablonData', array(
'greeting' => __('Привет, мир!', 'wp-shablon')
));
}
add_action('wp_enqueue_scripts', 'wp_shablon_enqueue_scripts');В файле script.js можно использовать перевод так:
alert(wpShablonData.greeting);Это полезно для вывода сообщений, уведомлений и других динамических данных.
Советы и рекомендации по локализации шаблонов
- Всегда используйте единый текстовый домен, совпадающий с названием темы, чтобы избежать конфликтов.
- Не вставляйте в переводимые строки HTML — лучше разбивать текст на части для удобства перевода.
- Регулярно обновляйте файлы перевода при добавлении новых строк в шаблон.
- Используйте Loco Translate для быстрой проверки и редактирования переводов без необходимости работать с .po/.mo вручную.
- Если вы используете функции с числовыми окончаниями (
_n()), обязательно учитывайте правила множественного числа для разных языков.
Заключение
Добавление поддержки локализации в собственный шаблон WordPress — обязательный этап для создания профессионального и международного сайта. Следуя описанным шагам, вы сможете структурировать переводы, сделать сайт удобным для пользователей разных стран и упростить процесс обновления переводов.
Для расширения функционала и управления переводами рекомендуем обратить внимание на плагин Loco Translate на WPSHOP — он отлично интегрируется с темами и существенно ускоряет работу с переводами.