wplang.ru wordpress WP Lang

Как создать отзывы с автоматическим переводом в WordPress

Для сайтов, работающих с международной аудиторией, важно не только собрать отзывы пользователей, но и обеспечить их доступность на разных языках. В этой статье разберём, как создать систему отзывов с автоматическим переводом в WordPress, используя практические инструменты и примеры кода.

Почему важен автоматический перевод отзывов

Отзывы помогают повысить доверие к сайту и продуктам. Если ваш сайт мультиязычный, пользователи хотят видеть отзывы на своём языке. Ручной перевод занимает много времени и ресурсов, а автоматический перевод позволяет быстро адаптировать контент.

Однако важно сохранять качество, поэтому стоит комбинировать автоматический перевод с возможностью ручной правки.

Для реализации этого подойдёт сочетание плагинов для отзывов и сервисов перевода, таких как Google Translate API или DeepL API.

Выбор плагина для отзывов

Рассмотрим несколько популярных плагинов для отзывов, которые легко интегрируются с переводом:

  • WP Customer Reviews — простой и лёгкий плагин для сбора отзывов.
  • Site Reviews — гибкий и расширяемый, с поддержкой кастомных полей.
  • Expert Review от WPSHOP — удобный для создания экспертных и пользовательских отзывов с рейтингами.

Для примера возьмём Expert Review, так как он легко расширяется и поддерживает вывод отзывов через шорткоды и API.

Интеграция автоматического перевода отзывов

Для перевода отзывов можно использовать Google Translate API. Ниже пример функции, которая переводит текст отзыва и сохраняет переведённый вариант в метаполе:

function wplangru_translate_review_text($review_id, $target_lang = 'en') {
    $text = get_post_meta($review_id, 'wpreview_text', true);
    if (empty($text)) return false;

    $api_key = 'ВАШ_GOOGLE_TRANSLATE_API_КЛЮЧ';
    $url = 'https://translation.googleapis.com/language/translate/v2?key=' . $api_key;
    $data = [
        'q' => $text,
        'target' => $target_lang,
    ];

    $response = wp_remote_post($url, [
        'body' => json_encode($data),
        'headers' => [
            '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'])) {
        update_post_meta($review_id, 'wpreview_text_' . $target_lang, $body['data']['translations'][0]['translatedText']);
        return true;
    }
    return false;
}

Эту функцию можно вызывать после публикации отзыва, чтобы автоматически сохранять переводы.

Вывод отзывов с учётом языка

Чтобы показывать пользователю отзыв на нужном языке, добавим функцию, которая будет выводить перевод, если он есть, или оригинал:

function wplangru_get_review_text($review_id, $lang = 'en') {
    $translated = get_post_meta($review_id, 'wpreview_text_' . $lang, true);
    if (!empty($translated)) {
        return esc_html($translated);
    }
    return esc_html(get_post_meta($review_id, 'wpreview_text', true));
}

В теме можно заменить стандартный вывод отзывов на вызов этой функции, передавая текущий язык сайта.

Пример использования шорткода с переводом

Создадим шорткод для вывода отзывов с автоматическим выбором языка:

function wplangru_reviews_shortcode($atts) {
    $atts = shortcode_atts(['lang' => 'en'], $atts, 'wplang_reviews');
    $args = [
        'post_type' => 'review',
        'posts_per_page' => 5,
        'post_status' => 'publish'
    ];
    $reviews = get_posts($args);
    $output = '<div class="wplangru-reviews">';
    foreach ($reviews as $review) {
        $text = wplangru_get_review_text($review->ID, $atts['lang']);
        $output .= '<div class="review-item">' . $text . '</div>';
    }
    $output .= '</div>';
    return $output;
}
add_shortcode('wplang_reviews', 'wplangru_reviews_shortcode');

Шорткод [wplang_reviews lang="ru"] покажет отзывы на русском, если переводы есть.

Автоматизация перевода новых отзывов

Чтобы не запускать перевод вручную, добавим хук на сохранение отзыва:

function wplangru_auto_translate_on_save($post_id) {
    if (get_post_type($post_id) !== 'review') return;
    // Переводим на английский и немецкий для примера
    wplangru_translate_review_text($post_id, 'en');
    wplangru_translate_review_text($post_id, 'de');
}
add_action('save_post', 'wplangru_auto_translate_on_save');

Это обеспечит автоматическое создание переводов при добавлении или обновлении отзывов.

Дополнительные советы по улучшению отзывов и переводов

Для повышения качества и удобства работы с отзывами и их переводами:

  • Добавьте в админку возможность редактировать переводы вручную, если автоматический перевод некорректен.
  • Используйте плагин Clearfy Pro (подробнее на WPSHOP) для оптимизации загрузки и ускорения сайта с отзывами.
  • Добавьте кеширование переводов, чтобы не вызывать API каждый раз при выводе.
  • Используйте пользовательские поля ACF для хранения расширенной информации об отзывах и их переводах.

Заключение

Создание отзывов с автоматическим переводом в WordPress — вполне реализуемая задача с помощью правильных инструментов и небольшого кода. Такой подход позволит расширить аудиторию и повысить доверие к вашему сайту, не тратя много времени на ручной перевод.

×
Оптимизируй свой сайт!

Скидка -15% на премиум плагин Clearfy Pro

Купить плагин сейчас ⋙