Автоматический перевод контента — востребованная функция для многоязычных сайтов на WordPress. Среди множества решений особое внимание заслуживает плагин Poliglot, который совмещает простоту настройки с широкими возможностями автоперевода. В этой статье подробно рассмотрим, как использовать Poliglot для автоматического перевода вашего сайта, как настроить перевод пользовательских типов записей и произвольных полей, а также приведем примеры кода для расширения функционала.
Что такое плагин Poliglot и зачем он нужен
Poliglot — это легковесный плагин для WordPress, который позволяет автоматически переводить контент сайта с помощью популярных API переводчиков, таких как Google Translate и Yandex Translate. В отличие от громоздких решений, Poliglot ориентирован на разработчиков и тех, кто хочет максимально контролировать процесс перевода без избыточной нагрузки.
Основные возможности Poliglot:
- Автоматический перевод страниц, записей, пользовательских типов записей.
- Поддержка перевода произвольных полей (custom fields) и метаданных.
- Легкая интеграция с любыми темами и плагинами.
- Гибкие настройки API ключей и языков перевода.
Это делает Poliglot отличным выбором для сайтов, которым важен качественный автоперевод с возможностью тонкой настройки.
Установка и базовая настройка Poliglot
Установка плагина стандартная: в админке WordPress перейдите в раздел "Плагины" — "Добавить новый", найдите Poliglot и установите. После активации откройте настройки плагина в меню «Poliglot».
Основные параметры для заполнения:
- API ключ — получите ключ от Google Cloud Translate или Яндекс.Переводчика (в зависимости от выбранного сервиса).
- Язык оригинала — язык вашего исходного контента.
- Целевые языки — языки, на которые будет происходить перевод.
Важно: для Google Translate нужно настроить биллинг в Google Cloud, чтобы API был активен.
Автоматический перевод пользовательских типов записей и полей
Одна из частых задач — перевести не только стандартные записи и страницы, но и кастомные типы записей, например, портфолио, отзывы или товары. Poliglot позволяет это сделать с помощью фильтров и хуков.
Для добавления поддержки перевода произвольных типов записей добавьте следующий код в файл functions.php вашей темы или в собственный плагин:
function wptranslate_poliglot_register_custom_post_types($post_types) {
$post_types[] = 'portfolio'; // название вашего кастомного типа записи
$post_types[] = 'reviews';
return $post_types;
}
add_filter('poliglot_supported_post_types', 'wptranslate_poliglot_register_custom_post_types');Этот фильтр расширит список типов записей, которые Poliglot будет автоматически переводить.
Для перевода произвольных полей используйте фильтр poliglot_translate_custom_fields:
function wptranslate_poliglot_translate_custom_fields($fields) {
$fields[] = 'custom_description'; // имя произвольного поля
$fields[] = 'additional_info';
return $fields;
}
add_filter('poliglot_translate_custom_fields', 'wptranslate_poliglot_translate_custom_fields');Таким образом вы указываете, какие поля должны автоматически отправляться на перевод.
Настройка перевода шаблонов и строк темы
Перевод текстов интерфейса и шаблонов — важный аспект мультиязычного сайта. Poliglot работает с gettext-файлами (.po/.mo), но если требуется динамический автоперевод строк, есть способ подключить фильтр:
function wptranslate_poliglot_translate_text($translated_text, $text, $domain) {
// Логика для автоперевода строки, если нужно
if ($domain === 'your-theme-domain') {
// вызов API автоперевода или возврат уже переведенного текста
}
return $translated_text;
}
add_filter('gettext', 'wptranslate_poliglot_translate_text', 10, 3);Это позволяет динамически переводить строки, которые не подключены к стандартным языковым файлам.
Оптимизация и кеширование перевода
Чтобы не перегружать API и ускорить работу сайта, Poliglot кеширует переведенный контент. Для улучшения производительности рекомендуем:
- Использовать встроенное кеширование Poliglot (настройки в админке).
- Подключить сторонние плагины кеширования, например, Clearfy Pro, для оптимизации запросов.
- Настроить TTL (Time To Live) для кеша перевода, чтобы обновлять контент по расписанию.
Это поможет избежать лишних затрат на API и ускорит загрузку страниц с переводом.
Примеры использования API Poliglot для кастомных задач
Если вам нужно автоматизировать перевод определенного текста или блока, можно использовать API плагина напрямую. Вот пример функции, которая переводит произвольный текст с русского на английский:
function wptranslate_poliglot_translate_text_custom($text) {
if (!function_exists('Poliglot\translate_text')) {
return $text; // плагин не активен
}
$translated = Poliglot\translate_text($text, 'ru', 'en');
return $translated ?: $text;
}
// Использование:
$translated_text = wptranslate_poliglot_translate_text_custom('Привет, мир!');
echo $translated_text; // Hello, world!Такое можно применять для перевода динамических данных, которые не попадают под автоматический перевод плагина.
Заключение
Плагин Poliglot — мощный инструмент для автоматического перевода WordPress-сайтов, подходящий для разработчиков, желающих гибко настраивать процесс перевода. Используя фильтры и хуки, можно легко добавить поддержку любых типов записей и полей, обеспечить перевод интерфейса и оптимизировать работу с API переводчиков. Рекомендуется комбинировать Poliglot с инструментами кеширования и оптимизации, например Clearfy Pro, чтобы добиться максимальной производительности.