Почему стоит создать собственный плагин автоперевода для WordPress
Автоматический перевод контента на сайте — востребованная функция, особенно для многоязычных проектов. Хотя на рынке есть множество готовых решений, они не всегда подходят под конкретные задачи или бюджет. Создав собственный плагин, вы получаете полный контроль над процессом, можете интегрировать нужные API, оптимизировать производительность и гибко настраивать логику перевода.
Это особенно актуально для сайтов, которые хотят быстро расширять аудиторию без привлечения сторонних переводчиков и в то же время сохранять качество и возможность доработок под специфические требования.
В этом руководстве мы разберем, как реализовать базовый плагин автоперевода для WordPress с использованием API Google Translate и подключением к хукам WordPress для автоматического перевода постов.
Подготовка: регистрация и получение ключа Google Translate API
Для начала работы с Google Translate API необходимо зарегистрироваться в Google Cloud Platform и создать проект. После чего нужно подключить API Cloud Translation и получить API-ключ.
Примерный алгоритм:
- Зарегистрируйтесь или войдите в консоль Google Cloud Platform.
- Создайте новый проект.
- Активируйте API Cloud Translation API.
- Создайте учетные данные — API-ключ, который будет использоваться для вызова сервиса.
- Ограничьте ключ по IP или домену для безопасности.
Этот ключ мы будем использовать в нашем плагине для отправки запросов на перевод.
Структура плагина и подключение к WordPress
Создадим базовую структуру плагина в директории wp-content/plugins/wptranslate-autotranslate с главным файлом wptranslate-autotranslate.php. В нем опишем метаданные и базовые хуки.
<?php
/**
* Plugin Name: WPTranslate Autotranslate
* Description: Автоматический перевод постов с помощью Google Translate API
* Version: 1.0
* Author: WPTranslate
*/
// Защита от прямого доступа
if (!defined('ABSPATH')) {
exit;
}
// Хук при публикации поста
add_action('publish_post', 'wptranslate_autotranslate_publish_post');
function wptranslate_autotranslate_publish_post($post_id) {
// Логика автоперевода
}
?>Обратите внимание, что функция wptranslate_autotranslate_publish_post будет вызываться при публикации поста и запускать процесс перевода.
Реализация функции автоперевода с использованием Google Translate API
Для начала создадим функцию, которая будет отправлять текст на перевод и возвращать результат.
function wptranslate_autotranslate_translate_text($text, $target_language = 'en') {
$api_key = 'ВАШ_API_КЛЮЧ';
$url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key;
$data = array(
'q' => $text,
'target' => $target_language,
'format' => 'text'
);
$response = wp_remote_post($url, array(
'body' => json_encode($data),
'headers' => array(
'Content-Type' => 'application/json'
)
));
if (is_wp_error($response)) {
return false;
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (isset($body['data']['translations'][0]['translatedText'])) {
return $body['data']['translations'][0]['translatedText'];
}
return false;
}Эта функция принимает исходный текст и язык, на который нужно перевести. Далее она делает запрос к Google Translate API и возвращает переведённый текст.
Автоматический перевод при публикации поста
Теперь используем эту функцию в обработчике публикации поста. Для примера переведём содержимое на английский и создадим дубликат поста с переводом.
function wptranslate_autotranslate_publish_post($post_id) {
$post = get_post($post_id);
if ($post->post_status !== 'publish') {
return;
}
$original_content = $post->post_content;
$translated_content = wptranslate_autotranslate_translate_text($original_content, 'en');
if (!$translated_content) {
return;
}
$translated_post = array(
'post_title' => $post->post_title . ' (EN)',
'post_content' => $translated_content,
'post_status' => 'publish',
'post_type' => $post->post_type,
'post_author' => $post->post_author,
'post_parent' => $post_id
);
wp_insert_post($translated_post);
}Таким образом, при публикации исходного поста автоматически создаётся его английская копия с переведённым текстом. В реальном проекте можно усложнить логику, добавив поддержку нескольких языков, настройку API ключа в админке и кэширование.
Дополнительные рекомендации и плагины для автоперевода WordPress
Если вы не хотите писать свой плагин, можно использовать готовые решения, которые легко настраиваются и интегрируются:
- TranslatePress — поддерживает автоматический перевод через Google Translate и DeepL, с удобным визуальным редактором.
- GTranslate — простой плагин с использованием Google Translate, подходит для быстрого запуска.
- Weglot — мощный сервис с автоматическим переводом и SEO-оптимизацией.
Однако собственный плагин позволяет избежать зависимости от сторонних сервисов, снизить расходы и гибко адаптировать функцию под бизнес-логику.
Важным моментом является корректная обработка HTML и специальных символов, а также правильное кэширование результатов перевода, чтобы не перегружать API.
Как улучшить качество и производительность автоперевода
Автоматический перевод может содержать ошибки, особенно в технических или специализированных текстах. Чтобы минимизировать проблемы, рекомендуем:
- Использовать пользовательские глоссарии и словари, если API это поддерживает.
- Добавлять возможность ручной корректировки перевода в админке.
- Кэшировать переводы в базе данных, чтобы не делать повторные запросы.
- Ограничивать количество символов для перевода за один запрос.
- Внедрять обработку исключений и логирование ошибок API.
Также стоит изучить альтернативные API, например DeepL, которые иногда дают более качественный результат.