Интеграция машинного перевода контента для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Интеграция машинного перевода контента для 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1177
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    747
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Интеграция машинного перевода контента для 1С-Битрикс

Перевести каталог в 20 000 товаров на три языка силами переводчиков — это месяцы работы и значительный бюджет. Машинный перевод закрывает 80–90% объёма за часы, оставляя переводчикам только корректуру критически важных текстов: главную страницу, лендинги, юридические документы. Но интеграция MT-сервиса с 1С-Битрикс — не просто «вызвать API», там есть нетривиальные технические задачи.

Выбор MT-сервиса: что важно для Битрикс

Основные кандидаты: DeepL, Google Cloud Translation, Yandex Translate. Все три предоставляют REST API, но различаются по качеству для конкретных языковых пар и по отношению к специфичным проблемам контента e-commerce:

DeepL — лучшее качество для европейских языков (DE, FR, EN, PL). API v2 поддерживает формат text/html — переводит текст, сохраняя HTML-теги. Это критично для описаний товаров с вёрсткой.

Google Cloud Translation — широкий охват языков (200+), поддержка CIS-языков (KZ, UZ, AZ). Базовая модель (translate/v2) дешевле, NMT-модель (translate/v3) точнее.

Yandex Translate — оптимально для пары RU→KZ, RU→BE. API v2 поддерживает пакетную передачу до 10 000 символов за запрос.

Проблема №1: HTML в описаниях товаров

Описания в b_iblock_element поле DETAIL_TEXT часто содержат HTML-разметку. Если передать такой текст в MT-API как plain text — теги переведутся буквально: <strong> станет <сильный> (у Yandex это реальный кейс при передаче без указания формата).

Решение для Google Translation v3:

$client = new TranslationServiceClient();
$response = $client->translateText([
    'parent' => 'projects/{project}/locations/global',
    'contents' => [$htmlContent],
    'mimeType' => 'text/html',  // Критично!
    'sourceLanguageCode' => 'ru',
    'targetLanguageCode' => 'en',
]);

DeepL: параметр tag_handling=html в запросе. С этим флагом DeepL переводит только текстовые ноды, не трогая атрибуты тегов и структуру разметки.

Проблема №2: переменные и шорткоды в контенте

В описаниях товаров встречаются внутренние подстановки: {SIZE_GUIDE}, [product_id=123], <!--#include file="..."-->. MT-сервис может «перевести» эти конструкции — сломав функциональность.

Решение: перед отправкой в MT заменяем все служебные конструкции на плейсхолдеры, которые MT-сервис не трогает. Для DeepL используем ignore_tags или обрамляем конструкции в <keep> теги. После перевода делаем обратную замену.

$placeholders = [];
$pattern = '/\{[A-Z_]+\}|\[product_id=\d+\]/';
$text = preg_replace_callback($pattern, function ($match) use (&$placeholders) {
    $key = 'PLACEHOLDER_' . count($placeholders);
    $placeholders[$key] = $match[0];
    return $key;
}, $originalText);

// Переводим $text...

// Восстанавливаем плейсхолдеры
foreach ($placeholders as $key => $value) {
    $translatedText = str_replace($key, $value, $translatedText);
}

Пакетная обработка и лимиты API

Для каталога в 20 000 позиций нельзя переводить по одному запросу на товар — это и медленно, и дорого. Пакетная обработка:

  • Google: до 1024 строк за запрос
  • DeepL: до 50 текстов за запрос
  • Yandex: до 10 000 символов суммарно за запрос

Реализуем очередь перевода: каждый товар — задача в очереди. Воркер берёт пакет, отправляет в MT-API, сохраняет результат. При ошибке — повтор с экспоненциальной задержкой.

Переводы сохраняем в языковые версии элементов (b_iblock_element_lang) через CIBlockElement::SetPropertyValues() с указанием LANGUAGE_ID. После сохранения инвалидируем кэш элемента.

Постредактирование: флаги для переводчика

Машинный перевод не финальный. Нужна возможность для переводчика пометить перевод как «требует проверки» или «отредактирован вручную». Добавляем свойство инфоблока MT_STATUS (список: auto, reviewed, manual) для каждого языка. Переводчик видит только элементы со статусом auto — не перебирает весь каталог.

Ориентиры по срокам

Сценарий Срок
Интеграция MT-API, пакетный перевод названий и описаний 2–4 недели
+ обработка HTML, плейсхолдеры, очередь с ретраями 4–6 недель
+ интерфейс постредактирования в админке Битрикс +2–3 недели

Стоимость рассчитывается индивидуально. Учитываются: объём контента, количество языков, выбранный MT-сервис и требования к качеству перевода.