GeneratePress – одна из самых гибких и легких тем для WordPress, которая отлично подходит для создания сайтов любой сложности. Однако, если вы планируете сделать сайт многоязычным или просто хотите добавить поддержку локализации, потребуется дополнительная настройка. В этой статье мы подробно рассмотрим, как добавить поддержку перевода и локализации в GeneratePress, чтобы ваш сайт мог работать на нескольких языках.
Почему важно добавить локализацию в GeneratePress
Локализация позволяет адаптировать сайт под разные языки и регионы, что особенно актуально для интернет-магазинов, блогов и корпоративных сайтов с международной аудиторией. Несмотря на то, что GeneratePress уже поддерживает перевод, для полноценной локализации часто требуется добавить собственные текстовые строки и корректно их подключить.
Без правильной локализации вы рискуете получить сайт, где часть элементов останется на английском языке, что негативно скажется на пользовательском опыте и SEO.
Подготовка темы GeneratePress к локализации
GeneratePress изначально готова к переводу, так как использует функции __() и _e() для текстов. Но если вы хотите добавить свои кастомные строки (например, в дочерней теме или через плагин), нужно сделать следующее:
Создаем файл перевода
Для начала создайте папку /languages/ в директории вашей темы или дочерней темы. В ней будут храниться файлы перевода с расширением .po и .mo.
Рекомендуется использовать программу Poedit для создания этих файлов. В Poedit импортируйте исходные тексты или сканируйте файлы темы на наличие строк для перевода.
Загрузка текстового домена
Чтобы WordPress знал, где искать переводы, добавьте в файл functions.php вашей дочерней темы следующий код:
function generatepressru_load_textdomain() {
load_child_theme_textdomain( 'generatepress', get_stylesheet_directory() . '/languages' );
}
add_action( 'after_setup_theme', 'generatepressru_load_textdomain' );
Здесь 'generatepress' — это текстовый домен темы. Важно использовать именно тот же домен, который применяется в теме.
Добавление новых строк для перевода в GeneratePress
Если вы хотите добавить новые строки (например, в шаблонах или дополнительных функциях), используйте функции локализации WordPress:
__('Текст для перевода', 'generatepress')— возвращает переведенный текст;_e('Текст для перевода', 'generatepress')— выводит переведенный текст сразу.
Например, в дочерней теме можно добавить кастомный блок с переводимой надписью:
function generatepressru_custom_message() {
echo '<p>' . __('Добро пожаловать на наш сайт!', 'generatepress') . '</p>';
}
add_action( 'generate_after_header', 'generatepressru_custom_message' );
После этого в файле перевода добавьте строку "Добро пожаловать на наш сайт!" и переведите её.
Использование плагинов для многоязычности с GeneratePress
Сам GeneratePress не предоставляет встроенной системы многоязычности, поэтому для полноценного мультиязычного сайта понадобится плагин. Рассмотрим два популярных варианта:
WPML
Один из самых мощных и функциональных плагинов для мультиязычности. WPML отлично совместим с GeneratePress, позволяет переводить все элементы сайта — страницы, записи, меню, виджеты, и даже строки темы.
Для перевода строк темы с WPML зайдите в раздел WPML - String Translation и найдите строки с текстовым доменом generatepress.
Polylang
Бесплатный плагин с простым интерфейсом и широкими возможностями для перевода. Также совместим с GeneratePress. После установки и настройки Polylang вы сможете создавать версии страниц на разных языках.
Практический пример: добавляем кастомные локализуемые сообщения в GeneratePress
Допустим, вы хотите добавить в подвал сайта сообщение, которое будет переведено на нужный язык. Добавим функцию в functions.php дочерней темы:
function generatepressru_footer_custom_text() {
$text = __('Спасибо, что посетили наш сайт!', 'generatepress');
echo '<div class="footer-custom-text">' . esc_html( $text ) . '</div>';
}
add_action( 'generate_footer', 'generatepressru_footer_custom_text' );
После этого добавьте строку в PO-файл перевода в папке /languages/. Например, в Poedit создайте перевод для русского и английского языков.
Советы по работе с локализацией GeneratePress
- Всегда используйте функции
__()и_e()с правильным текстовым доменом. - Храните переводы в отдельной папке
/languages/дочерней темы, чтобы не потерять их при обновлении GeneratePress. - Тестируйте переводы на разных языках, чтобы убедиться, что все строки отображаются корректно.
- Для динамических текстов используйте функцию
sprintf()вместе с локализацией. - Если используете плагины для мультиязычности, обязательно проверяйте их совместимость с GeneratePress.
Для удобного управления плагинами и функциями локализации можно использовать, например, плагин Clearfy Pro, который помогает оптимизировать работу WordPress и управлять различными настройками, включая локализацию.