Как сделать автоперевод контента WordPress на основе open source решений

Введение в автоперевод на WordPress с использованием open source

Автоматический перевод контента на WordPress становится все более востребованной функцией, особенно для сайтов с международной аудиторией. Однако многие решения либо платные, либо завязаны на внешние API с ограничениями и стоимостью. В этой статье мы рассмотрим, как создать собственный автоперевод на основе бесплатных и открытых библиотек, которые можно интегрировать в WordPress — это позволит снизить затраты и получить полный контроль над процессом.

Для примера возьмём библиотеку Argos Translate — open source движок машинного перевода, который можно запустить локально на сервере. Мы покажем, как связать его с WordPress через плагин и хуки, чтобы автоматически переводить новые записи.

Почему стоит выбрать open source решения для автоперевода

Основные преимущества использования open source для автоперевода в WordPress:

  • Отсутствие зависимости от платных API. Вы не привязаны к тарифам и ограничениям Google Translate, DeepL и других сервисов.
  • Полный контроль и кастомизация. Можно адаптировать словари, модели, улучшать качество перевода под тематику сайта.
  • Безопасность и конфиденциальность. Перевод происходит на вашем сервере, не передаются данные третьим сторонам.

Однако стоит учесть, что для работы таких решений необходим сервер с достаточными ресурсами и базовые навыки настройки Python-среды, а также интеграции с PHP через REST API или командную строку.

Установка и настройка Argos Translate на сервере

Первым шагом установим Argos Translate. Для этого потребуется Python 3.6+ и pip. На сервере выполните:

pip install argostranslate

Затем загрузим нужные языковые пакеты. Например, для перевода с английского на русский:

argospm install translate-en_ru

После установки можно проверить работу перевода через встроенную CLI или создать локальный API, чтобы вызывать перевод из PHP.

Создание простого Python API для перевода

Создадим Flask-приложение, которое будет принимать текст и возвращать перевод:

from flask import Flask, request, jsonify
from argostranslate import package, translate
import argostranslate.package
import argostranslate.translate

app = Flask(__name__)

@app.route('/translate', methods=['POST'])
def wptranslate_translate():
    data = request.json
    text = data.get('text', '')
    from_code = data.get('from', 'en')
    to_code = data.get('to', 'ru')

    installed_languages = translate.get_installed_languages()
    from_lang = next((lang for lang in installed_languages if lang.code == from_code), None)
    to_lang = next((lang for lang in installed_languages if lang.code == to_code), None)

    if not from_lang or not to_lang:
        return jsonify({'error': 'Language not installed'}), 400

    translation = from_lang.get_translation(to_lang)
    translated_text = translation.translate(text)

    return jsonify({'translated_text': translated_text})

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=5000)

Запустите сервер командой python app.py. Теперь у вас локальный API для перевода.

Интеграция автоперевода в WordPress с помощью плагина

Создадим простой плагин, который при публикации записи будет отправлять текст на локальный API Argos Translate и сохранять перевод в мета-поле.

Код плагина wptranslate-autotranslate.php

<?php
/*
Plugin Name: WPTranslate Autotranslate
Description: Автоматический перевод записей с английского на русский через локальный Argos Translate API
Version: 1.0
Author: wptranslate.ru
*/

function wptranslate_autotranslate_translate_post( $post_id ) {
    // Проверяем, что это публикация и не автосохранение
    if ( wp_is_post_autosave( $post_id ) || wp_is_post_revision( $post_id ) ) {
        return;
    }

    $post = get_post( $post_id );
    if ( $post->post_status !== 'publish' ) {
        return;
    }

    $text = $post->post_content;
    if ( empty( $text ) ) {
        return;
    }

    $response = wp_remote_post( 'http://127.0.0.1:5000/translate', [
        'headers' => ['Content-Type' => 'application/json'],
        'body' => json_encode([
            'text' => $text,
            'from' => 'en',
            'to' => 'ru',
        ]),
        'timeout' => 10,
    ]);

    if ( is_wp_error( $response ) ) {
        error_log( 'WPTranslate: Ошибка перевода - ' . $response->get_error_message() );
        return;
    }

    $body = wp_remote_retrieve_body( $response );
    $data = json_decode( $body, true );

    if ( ! empty( $data['translated_text'] ) ) {
        update_post_meta( $post_id, '_wptranslate_auto_ru', $data['translated_text'] );
    }
}
add_action( 'save_post', 'wptranslate_autotranslate_translate_post' );

// Функция вывода перевода в шаблоне
function wptranslate_autotranslate_get_translation( $post_id ) {
    return get_post_meta( $post_id, '_wptranslate_auto_ru', true );
}
?>

Плагин автоматически переводит содержимое записи при сохранении и сохраняет перевод в метаполе _wptranslate_auto_ru. Вы можете вывести перевод в шаблоне так:

<?php
$translated = wptranslate_autotranslate_get_translation( get_the_ID() );
if ( $translated ) {
    echo '<div class="wptranslate-translation">' . esc_html( $translated ) . '</div>';
}
?>

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

Качество перевода в open source системах может уступать коммерческим, но его можно улучшать следующими способами:

  • Добавлять пользовательские словари — Argos Translate позволяет создавать дополнительные словари для специфической терминологии.
  • Кэшировать переводы — сохраняйте переводы в базе, чтобы не делать повторный запрос при каждом отображении.
  • Использовать очередь задач — чтобы не задерживать сохранение записи, перевод можно запускать в фоне через wp_cron или сторонние очереди.

Для повышения производительности на сайте рекомендуем также оптимизировать PHP-код и минимизировать количество вызовов внешних сервисов.

Альтернативные плагины и решения для автоперевода на WordPress

Если у вас нет возможности запускать локальный сервер с Python, можно рассмотреть плагины с интеграцией внешних API, например:

  • WPGPT — плагин для автоперевода с использованием GPT-4, подходит для сложных текстов и креативных задач.
  • Clearfy Pro — широкий набор оптимизаций, включая поддержку мультиязычности и улучшение производительности.

Но главное преимущество open source — отсутствие ограничений и возможность полной кастомизации без дополнительных затрат.

Как автоматизировать перевод сообщений WordPress: плагины и кодовые решения
17.11.2025
Как создать свой плагин для автоперевода WordPress
26.11.2025
Как добавить автоперевод для сообщений об ошибках WordPress
12.01.2026
Как исправить проблему с переводом постоянных ссылок (Permalinks) в WordPress
09.12.2025
Как добавить автоперевод форм в WordPress
16.01.2026