Зачем нужен автоматический перевод глоссария в WordPress
Глоссарий — это важный элемент многих сайтов, особенно образовательных, технических или тематических блогов. Он помогает пользователям быстро найти определения терминов и понять сложные понятия. Если ваш сайт многоязычный или вы планируете расширять аудиторию, важно обеспечить перевод глоссария на несколько языков.
Ручной перевод каждого термина занимает много времени и требует постоянного обновления. Автоматический перевод позволяет значительно ускорить процесс и облегчить поддержку контента.
В этой статье мы рассмотрим, как реализовать автоматический перевод глоссария в WordPress, используя готовые решения и кастомный код, а также какие плагины подходят для этой задачи.
Выбор плагина для автоматического перевода глоссария
Существует несколько плагинов, которые можно использовать для автоматического перевода контента, в том числе и глоссариев:
- Weglot — популярный облачный сервис для перевода сайтов, который поддерживает автоматический и ручной перевод. Позволяет быстро перевести весь сайт, включая глоссарий, с минимальной настройкой.
- TranslatePress — удобный плагин, позволяющий переводить страницы на лету через визуальный интерфейс, поддерживает интеграцию с Google Translate для автоматического перевода.
- GTranslate — основан на Google Translate, легко интегрируется и переводит страницы автоматически, но требует доработки для корректного перевода специализированных терминов в глоссарии.
Если вы хотите создать более кастомное и гибкое решение, можно использовать API от Google Translate, DeepL или Яндекс.Переводчик для перевода терминов глоссария программно.
Пример использования Google Translate API для перевода терминов
Для начала нужно получить ключ API в Google Cloud Console и установить библиотеку Google Translate для PHP.
function wplang_translate_term($text, $target = 'en') {
$apiKey = 'ВАШ_GOOGLE_API_KEY';
$url = 'https://translation.googleapis.com/language/translate/v2?key=' . $apiKey;
$data = [
'q' => $text,
'target' => $target
];
$options = [
'http' => [
'header' => "Content-type: application/json\r\n",
'method' => 'POST',
'content' => json_encode($data),
],
];
$context = stream_context_create($options);
$result = file_get_contents($url, false, $context);
if ($result === FALSE) {
return $text; // Возвращаем исходный текст при ошибке
}
$response = json_decode($result, true);
return $response['data']['translations'][0]['translatedText'] ?? $text;
}Этот код позволяет перевести отдельный термин с русского на английский. Для интеграции с глоссарием можно вызвать эту функцию при выводе терминов или сохранить переводы в метаполях для кеширования.
Интеграция автоматического перевода с кастомным глоссарием на ACF
Многие используют Advanced Custom Fields (ACF) для создания глоссариев в WordPress. Можно добавить поле для оригинального термина и отдельное поле для перевода, которое будет автоматически заполняться при сохранении записи.
Пример хука для автоматического перевода поля ACF при сохранении:
add_action('acf/save_post', 'wplang_acf_translate_glossary_term', 20);
function wplang_acf_translate_glossary_term($post_id) {
if(get_post_type($post_id) !== 'glossary') return;
$term = get_field('original_term', $post_id);
if(!$term) return;
$translated = wplang_translate_term($term, 'en');
update_field('translated_term', $translated, $post_id);
}Таким образом, при сохранении записи типа «glossary» поле «translated_term» будет автоматически заполнено переводом.
Вывод глоссария с переводами на сайте
Для вывода глоссария с оригинальным и переведённым термином можно использовать простой цикл:
$glossary = new WP_Query(['post_type' => 'glossary', 'posts_per_page' => -1]);
if($glossary->have_posts()) :
echo '<ul>';
while($glossary->have_posts()) : $glossary->the_post();
$original = get_field('original_term');
$translated = get_field('translated_term');
echo "<li><strong>{$original}</strong> — {$translated}</li>";
endwhile;
echo '</ul>';
endif;
wp_reset_postdata();Советы по оптимизации и кешированию
Автоматический перевод через API — это дополнительная нагрузка и задержка, особенно при большом количестве терминов. Чтобы избежать частых запросов к API и снизить расходы, рекомендуется кешировать переводы. Это можно сделать через пользовательские поля, транзиенты или внешние кеширующие сервисы.
Также можно реализовать настройку, чтобы перевод происходил только один раз при создании или обновлении термина, а при выводе просто использовать сохранённый результат.
Использование плагина Clearfy Pro для оптимизации и совместимости
Если вы используете несколько плагинов перевода или многоязычный сайт на WordPress, плагин Clearfy Pro поможет оптимизировать работу и избежать конфликтов. Clearfy предоставляет инструменты для контроля перевода, отключения ненужных функций и улучшения производительности.
Благодаря этому плагину можно повысить стабильность работы автоматического перевода глоссария и всего сайта в целом.
Выводы и рекомендации
Автоматический перевод глоссария в WordPress — это полезный инструмент для расширения аудитории и упрощения управления контентом. Используйте готовые решения, если хотите быстро получить результат, либо кастомные скрипты с API для большей гибкости.
Не забывайте про кеширование переводов и тестирование на предмет корректности отображения терминов. Также обращайте внимание на совместимость с другими плагинами и темами — Clearfy Pro может помочь в этом.
Если хотите начать быстро, попробуйте TranslatePress или Weglot. Для продвинутых задач — пишите собственные функции с использованием Google Translate API, как показано в примерах выше.