Автоматический перевод контента на сайте — востребованная функция, особенно для блогов и новостных порталов, желающих расширить аудиторию. В этой статье разберём, как добавить автоматический перевод постов в WordPress с помощью популярных плагинов и собственного кода, чтобы получить качественный и удобный механизм мультиязычности.
Выбор подходящего плагина для автоматического перевода
Существует несколько плагинов, которые позволяют внедрить машинный перевод в WordPress. Рассмотрим три наиболее популярных и проверенных варианта.
1. TranslatePress
TranslatePress — мощный плагин с визуальным интерфейсом перевода, поддерживает интеграцию с Google Translate API и DeepL. Позволяет автоматически переводить весь контент сайта, включая посты, страницы и даже виджеты.
- Преимущества: визуальный редактор, поддержка SEO для каждого языка, автоматический перевод с возможностью ручной корректировки.
- Недостатки: для автоматического перевода требуется платная версия с API ключами.
2. Weglot
Weglot — облачный сервис с плагином для WordPress, обеспечивает автоматический перевод с возможностью редактирования через веб-интерфейс.
- Преимущества: простая настройка, поддержка множества языков, SEO-оптимизация.
- Недостатки: бесплатный тариф ограничен 2000 слов, платные планы могут быть дорогими.
3. GTranslate
Плагин GTranslate использует Google Translate API для автоматического перевода и поддерживает более 100 языков.
- Преимущества: бесплатная версия с базовым функционалом, простая интеграция.
- Недостатки: бесплатная версия добавляет водяной знак, платные расширения обеспечивают SEO-дружественные URL.
Как интегрировать автоматический перевод с помощью собственного кода и Google Translate API
Если вы хотите обойтись без готовых плагинов, можно реализовать автоматический перевод постов программно, используя Google Translate API. Это позволяет гибко настраивать процесс и интегрировать перевод в нужные места сайта.
Регистрация и получение API ключа Google Cloud Translation
Для работы с Google Translate API необходимо создать проект в Google Cloud Console и получить API ключ. После регистрации включите API перевода и сохраните ключ.
Пример функции для автоматического перевода текста
function wpid_translate_text($text, $target_language = 'en') {
$apiKey = 'ВАШ_GOOGLE_API_KEY';
$url = 'https://translation.googleapis.com/language/translate/v2?key=' . $apiKey;
$data = [
'q' => $text,
'target' => $target_language,
'format' => 'text'
];
$args = [
'body' => json_encode($data),
'headers' => [
'Content-Type' => 'application/json'
],
'method' => 'POST',
'data_format' => 'body'
];
$response = wp_remote_post($url, $args);
if (is_wp_error($response)) {
return $text; // Возвращаем оригинал при ошибке
}
$body = json_decode(wp_remote_retrieve_body($response), true);
if (isset($body['data']['translations'][0]['translatedText'])) {
return $body['data']['translations'][0]['translatedText'];
}
return $text;
}
Эта функция принимает строку на любом языке и возвращает её перевод на указанный язык. Важно тщательно обрабатывать ошибки и кешировать результаты, чтобы не превышать лимиты API и обеспечить скорость.
Автоматический перевод контента при сохранении поста
Можно добавлять автоматический перевод при сохранении поста, создавая отдельные записи для каждого языка, либо добавлять перевод в пользовательские поля.
add_action('save_post', 'wpid_auto_translate_post', 10, 3);
function wpid_auto_translate_post($post_ID, $post, $update) {
if ($post->post_type !== 'post') {
return;
}
$translated_title = wpid_translate_text($post->post_title, 'en');
$translated_content = wpid_translate_text($post->post_content, 'en');
// Сохраняем переводы в метаполя
update_post_meta($post_ID, '_translated_title_en', $translated_title);
update_post_meta($post_ID, '_translated_content_en', $translated_content);
}
Такой подход позволяет хранить переводы и выводить их на фронтенде по необходимости.
Вывод переведённого контента на сайте
Для отображения переведённых данных можно использовать условие выбора языка и выводить либо оригинальный контент, либо переведённый из метаполей.
function wpid_get_translated_content($post_ID, $lang = 'en') {
$translated_content = get_post_meta($post_ID, '_translated_content_' . $lang, true);
if ($translated_content) {
return $translated_content;
}
return get_post_field('post_content', $post_ID);
}
// Использование в шаблоне
echo wpid_get_translated_content(get_the_ID(), 'en');
Такой метод даёт базовый контроль и возможность расширения, например, добавления переключателя языков.
Практические рекомендации и оптимизация
Автоматический перевод — мощный инструмент, но требует внимательности:
- Обязательно кешируйте результаты переводов, чтобы уменьшить вызовы API и ускорить сайт.
- Проверяйте качество перевода и при необходимости предоставляйте возможность ручной правки.
- Используйте SEO-практики для мультиязычных сайтов: hreflang, отдельные URL для языков, мета-теги.
- Если хотите расширить функционал, рассмотрите интеграцию с плагинами для мультиязычности, например, Polylang или WPML.
Заключение
Добавление автоматического перевода в WordPress — задача вполне решаемая как с помощью готовых плагинов, так и собственных решений. Важно подобрать подходящий инструмент и уделить внимание качеству и удобству перевода, чтобы улучшить опыт пользователей и расширить аудиторию.
Для более простых решений рекомендую попробовать TranslatePress с интеграцией Google Translate API: https://wpshop.ru/plugins/translatepress.