WordPress. Перевод темы
24.04.2019
Теги: CMS • WordPress • Файл • ШаблонСайта
Итак, у нас есть тема на русском языке и мы хотим перевести ее на английский. Первое, что нужно сделать — создать директорию languages
в папке темы. Потом добавить в комментарий к файлу стилей темы style.css
строку «Text domain: some_domain
». Далее, вешаем вызов функции load_theme_textdomain()
на событие after_setup_theme
:
[wp-content] [themes] [test_theme] [assets] [languages] style.css index.php header.php footer.php
Комментарий в файле стилей:
/*
Theme Name: Тестовая тема
Text domain: test_theme
*/
Вызов функции load_theme_textdomain()
:
add_action( 'after_setup_theme', function() { /* * Загружаем файл перевода темы в память */ load_theme_textdomain( // domain — идентификатор, чтобы потом обращаться к нашему переводу; // чаще всего в качестве идентификатора используется имя папки темы 'test_theme', // директория, где расположены файлы перевода темы get_template_directory() . '/languages' ); } );
Следующий шаг, если это не было сделано сразу, — заменить везде в шаблонах вывод на русском языке вызовами функций:
__()
— Переводит строку, используя файл перевода и возвращает для обработки._e()
— Переводит строку, используя файл перевода и выводит на экран.esc_html__()
— Переводит строку, заменяет в ней спецсимволы на HTML-сущности и возвращет для обработки.esc_html_e()
— Переводит строку, заменяет в ней спецсимволы на HTML-сущности и выводит на экран.esc_attr__()
— Переводит строку, заменяет в ней спецсимволы на HTML-сущности и возвращет для обработки.esc_attr_e()
— Переводит строку, заменяет в ней спецсимволы на HTML-сущности и выводит на экран.
Например:
<a href="<?php the_permalink(); ?>" class="read-more"> Читать далее </a>
<a href="<?php the_permalink(); ?>" class="read-more"> <?php _e('Читать далее', 'test_theme'); ?> </a>
Далее, устанавливаем и активируем плагин Loco Translate. Это плагин-переводчик для WordPress, позволяющий делать перевод темы и плагинов прямо в административной панели сайта.
Первым делом нужно создать шаблон, т.е. файл some_domain.pot
. Этот файл должен содержать все фразы, которые нужно перевести. Плагин Loco Translate умеет анализировать исходные коды темы и находить в них вызовы функций __()
, _e()
и т.п. И на основе этого анализа создает POT-файл.
en_US.po
и en_US.mo
.
- PO-файл (Portable Object) — содержит оригинальные строки перевода и сам перевод этих строк. Его можно изменять в любом текстовом редакторе. Из
.po
файла автоматически создается.mo
файл. - MO-файл (Machine Object) — скомпилированный вариант PO-файла. Cодержит бинарные данные, которые парсит WordPress и создает из них данные для перевода отдельных строк.
Поиск: CMS • WordPress • Шаблон сайта • Перевод • Translate • load_theme_textdomain • POT • PO • MO • Файл