Для сайтов, работающих с международной аудиторией, важно не только собрать отзывы пользователей, но и обеспечить их доступность на разных языках. В этой статье разберём, как создать систему отзывов с автоматическим переводом в 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 — вполне реализуемая задача с помощью правильных инструментов и небольшого кода. Такой подход позволит расширить аудиторию и повысить доверие к вашему сайту, не тратя много времени на ручной перевод.