Ведение многоязычного сайта на WordPress — задача, с которой сталкивается множество разработчиков и владельцев проектов. Однако ручной перевод каждого поста занимает много времени и ресурсов. В этой статье мы рассмотрим, как настроить автоматический перевод постов WordPress с помощью популярных плагинов и собственных решений на базе API переводчиков.
Почему стоит использовать автоматический перевод контента в WordPress
Автоматический перевод позволяет быстро сделать сайт доступным для аудитории, говорящей на разных языках, без необходимости обращаться к профессиональным переводчикам для каждого поста.
Преимущества автоматического перевода:
- Экономия времени и денег;
- Моментальное появление перевода новых материалов;
- Возможность масштабировать сайт на множество языков;
- Улучшение SEO за счет многоязычного контента.
Однако стоит понимать, что машинный перевод не всегда идеален и требует проверки и корректировки.
Популярные плагины для автоматического перевода WordPress
1. TranslatePress
TranslatePress — удобный плагин, позволяющий переводить сайт целиком, включая контент, меню и виджеты. В платной версии есть интеграция с Google Translate для автоматического перевода.
Преимущества TranslatePress:
- Интуитивный визуальный редактор переводов;
- Поддержка автоматического и ручного перевода;
- Возможность SEO-оптимизации многоязычного сайта;
- Поддержка WooCommerce.
Установка и активация плагина проходят стандартно через админку WordPress. Для использования автоматического перевода нужно подключить API Google Translate и включить соответствующую опцию.
2. WPML (WordPress Multilingual)
WPML — один из самых мощных плагинов для создания многоязычных сайтов. Он поддерживает автоматический перевод постов через сторонние сервисы (DeepL, Google Translate).
Особенности WPML:
- Поддержка кастомных типов записей, таксономий и полей;
- Интеграция с редакторами Gutenberg и Classic;
- Многоуровневая система переводов с возможностью правок;
- Совместимость с большинством тем и плагинов.
3. Weglot
Weglot — облачный сервис для автоматического перевода сайта с последующей возможностью ручной корректировки.
Особенности Weglot:
- Простая установка и настройка;
- Поддержка более 100 языков;
- Автоматический перевод с возможностью редактирования;
- SEO-дружелюбные URL для разных языков.
Для интеграции нужно зарегистрироваться на https://weglot.com и получить API-ключ.
Пример автоматического перевода постов с использованием Google Translate API и WP-Cron
Если вы хотите реализовать автоматический перевод постов без готовых плагинов, можно использовать Google Translate API и собственный скрипт на PHP, который будет запускаться по расписанию через WP-Cron.
Для начала потребуется получить API-ключ в Google Cloud Console и подключить библиотеку Google Translate Client.
Пример функции для автоматического перевода поста на английский:
function wpinfo_translate_post_to_en($post_id) {
$post = get_post($post_id);
if (!$post || $post->post_status !== 'publish') return;
$text = $post->post_content;
$apiKey = 'ВАШ_GOOGLE_API_КЛЮЧ';
$url = 'https://translation.googleapis.com/language/translate/v2?key=' . $apiKey;
$data = [
'q' => $text,
'target' => 'en'
];
$response = wp_remote_post($url, [
'body' => json_encode($data),
'headers' => [
'Content-Type' => 'application/json'
]
]);
if (is_wp_error($response)) return;
$body = json_decode(wp_remote_retrieve_body($response), true);
if (isset($body['data']['translations'][0]['translatedText'])) {
$translated_content = $body['data']['translations'][0]['translatedText'];
// Создаем новый пост для перевода
wp_insert_post([
'post_title' => $post->post_title . ' (EN)',
'post_content' => $translated_content,
'post_status' => 'publish',
'post_type' => $post->post_type,
'post_parent' => $post_id,
'post_author' => $post->post_author,
'meta_input' => [
'wpinfo_original_post' => $post_id,
'wpinfo_language' => 'en'
]
]);
}
}Далее нужно настроить WP-Cron, который будет запускать эту функцию для новых постов:
function wpinfo_schedule_translation() {
if (!wp_next_scheduled('wpinfo_translate_scheduled_event')) {
wp_schedule_event(time(), 'hourly', 'wpinfo_translate_scheduled_event');
}
}
add_action('wp', 'wpinfo_schedule_translation');
add_action('wpinfo_translate_scheduled_event', function() {
$args = [
'post_type' => 'post',
'post_status' => 'publish',
'meta_query' => [
[
'key' => 'wpinfo_language',
'compare' => 'NOT EXISTS'
]
],
'numberposts' => 5
];
$posts = get_posts($args);
foreach ($posts as $post) {
wpinfo_translate_post_to_en($post->ID);
}
});Этот код периодически ищет новые неопубликованные переводы и создает их автоматически. Такой подход удобен для небольших проектов и даёт полную свободу настройки.
Как улучшить качество автоматического перевода
Несмотря на удобство, машинный перевод далеко не всегда корректен. Чтобы повысить качество перевода, можно:
- Использовать смешанный подход — автоматический перевод с последующей ручной корректировкой;
- Создавать глоссарии терминов, которые не должны изменяться при переводе (например, названия брендов);
- Использовать API с поддержкой нейросетевых моделей (DeepL, Google Neural Machine Translation);
- Настраивать исключения для технических терминов и кода в постах.
Выводы и рекомендации
Автоматический перевод постов WordPress — отличный способ быстро развернуть многоязычный сайт. Популярные плагины, такие как TranslatePress, WPML и Weglot, предлагают удобные интерфейсы и мощные возможности для интеграции переводов.
Если необходим более тонкий контроль или минимизация зависимости от сторонних решений, можно реализовать собственное решение на базе Google Translate API и WP-Cron, как показано в примере выше.
Для интеграции плагинов и расширений с автоматическим переводом рекомендуем ознакомиться с продуктами на WPShop.ru, где представлены инструменты для оптимизации и управления WordPress.