Автоматический перевод контента — востребованная функция для сайтов с международной аудиторией. В этой статье разберём, как интегрировать Google Cloud Translate API в WordPress, чтобы реализовать автоперевод публикаций и страниц. Такой подход удобен для сайтов на wptranslate.ru, где важна точность и скорость перевода.
Что такое Google Cloud Translate и почему его использовать
Google Cloud Translate — это мощный API от Google, который поддерживает более 100 языков и отличается высоким качеством перевода благодаря нейросетям. В отличие от бесплатных плагинов, использование API позволяет гибко настраивать перевод, контролировать затраты и расширять функционал.
Ключевые преимущества:
- Поддержка множества языков и диалектов
- Высокое качество и актуальность переводов
- Возможность интеграции с любым кодом или плагинами WordPress
- Оплата по факту использования, без ограничений по количеству запросов
Для начала нужно зарегистрироваться в Google Cloud Console, создать проект и получить API ключ для сервиса Cloud Translation.
Настройка Google Cloud Translate API в WordPress
Для работы с API нам понадобится написать собственный плагин или добавить код в functions.php темы. Рассмотрим пример создания минимального плагина wptranslate-autotranslate.
Создание плагина и подключение API
Создайте папку wptranslate-autotranslate в wp-content/plugins/ и файл wptranslate-autotranslate.php со следующим кодом:
<?php
/**
* Plugin Name: WPTranslate Автоперевод Google
* Description: Автоматический перевод контента с помощью Google Cloud Translate API
* Version: 1.0
* Author: wptranslate.ru
*/
function wptranslate_google_translate_content($text, $target_language = 'en') {
$api_key = 'ВАШ_API_КЛЮЧ'; // замените на свой ключ
$url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key;
$body = json_encode(array(
'q' => $text,
'target' => $target_language
));
$response = wp_remote_post($url, array(
'headers' => array('Content-Type' => 'application/json'),
'body' => $body
));
if (is_wp_error($response)) {
return $text; // возвращаем оригинал при ошибке
}
$data = json_decode(wp_remote_retrieve_body($response), true);
if (isset($data['data']['translations'][0]['translatedText'])) {
return $data['data']['translations'][0]['translatedText'];
}
return $text;
}
// Пример использования: фильтр контента
add_filter('the_content', 'wptranslate_autotranslate_the_content');
function wptranslate_autotranslate_the_content($content) {
if (isset($_GET['lang']) && $_GET['lang'] !== 'ru') {
$translated = wptranslate_google_translate_content($content, sanitize_text_field($_GET['lang']));
return $translated;
}
return $content;
}
?>
Этот код реализует базовый автоперевод текста публикаций, если в URL передан параметр lang с языковым кодом, например: ?lang=en.
Расширение функционала: перевод заголовков и пользовательских полей
Чтобы автоматизировать перевод заголовков и метаданных, можно добавить фильтры и хук на загрузку данных:
add_filter('the_title', 'wptranslate_autotranslate_the_title');
function wptranslate_autotranslate_the_title($title) {
if (isset($_GET['lang']) && $_GET['lang'] !== 'ru') {
return wptranslate_google_translate_content($title, sanitize_text_field($_GET['lang']));
}
return $title;
}
add_filter('get_post_metadata', 'wptranslate_autotranslate_post_meta', 10, 4);
function wptranslate_autotranslate_post_meta($value, $object_id, $meta_key, $single) {
if (isset($_GET['lang']) && $_GET['lang'] !== 'ru') {
$translated = wptranslate_google_translate_content($value, sanitize_text_field($_GET['lang']));
return $translated;
}
return $value;
}
Так вы расширите зону перевода и сможете поддерживать мультиязычность без дополнительных плагинов.
Пример интеграции с плагином Clearfy Pro для оптимизации
Если у вас установлен Clearfy Pro, можно дополнительно оптимизировать автоперевод, отключая его для админки и некоторых типов страниц, чтобы не перегружать сервер и не мешать SEO:
add_filter('the_content', 'wptranslate_conditional_autotranslate', 9);
function wptranslate_conditional_autotranslate($content) {
if (is_admin() || is_feed() || is_preview()) {
return $content; // отключаем в админке, лентах и предпросмотре
}
return wptranslate_autotranslate_the_content($content);
}
Практические советы по использованию автоперевода в WordPress
1. Кеширование результатов: Чтобы не тратить API запросы и ускорить загрузку, сохраняйте переводы в метаданных постов или transient. Это снизит расходы и нагрузку.
2. Корректировка переводов: Автоматический перевод — не всегда идеально точен. Добавьте в админке возможность вручную корректировать переводы, сохраняя их отдельно.
3. Выбор языка: Сделайте удобный виджет для выбора языка, который будет добавлять параметр ?lang=код_языка в URL.
4. Обработка ошибок: Продумайте fallback на случай, если API недоступен, чтобы показывать оригинальный текст.
Заключение
Автоматизация перевода контента на WordPress с помощью Google Cloud Translate API — мощное решение для сайтов с wptranslate.ru. Ручная настройка и использование собственного кода позволяют гибко управлять процессом, экономить средства и повышать качество контента для пользователей. Приведённые примеры помогут быстро начать и расширить функционал по мере необходимости.