Интеграция машинного перевода контента для 1С-Битрикс
Мы сталкивались с задачей перевода каталога из 20 000 товаров на три языка. Силами переводчиков это заняло бы месяцы и около $900–1.3k. Наш опыт показывает: машинный перевод (MT) закрывает 80–90% объёма за часы, позволяя сэкономить до 70% бюджета по сравнению с ручным переводом. Остаётся только корректура критически важных текстов — главной страницы, лендингов, юридических документов. За 5 лет мы реализовали более 20 интеграций MT для каталогов разного масштаба — от 1 000 до 100 000 товаров. Мы оценим ваш проект и предложим решение под ключ — от выбора сервиса до внедрения и постредактирования.
Как выбрать MT-сервис для интеграции с Битрикс?
Основные кандидаты: DeepL, Google Cloud Translation, Yandex Translate. Все три предоставляют REST API, но различаются по качеству для конкретных языковых пар и отношению к специфичным проблемам контента e-commerce.
| Сервис | Языковые пары | Цена (за символ) | Особенности |
|---|---|---|---|
| DeepL | 31 язык (EU) | $0.00005 | Лучшее качество для DE/FR/EN/PL, поддержка HTML |
| Google Cloud Translation | 200+ | $0.00002 (basic) | Широкий охват, поддержка CIS |
| Yandex Translate | 100+ | $0.00003 | Оптимально для RU→KZ/BE, пакетная передача |
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 символов за запрос.
Что делать с 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 переводит только текстовые ноды, не трогая атрибуты тегов и структуру разметки.
Как защитить переменные и шорткоды от перевода?
В описаниях товаров встречаются внутренние подстановки: {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-сервиса под ваши задачи (DeepL, Google, Yandex)
- Разработка модуля интеграции с обработкой HTML, плейсхолдеров и очередей
- Создание интерфейса постредактирования в админке Битрикс
- Документация по работе с системой перевода
- Обучение команды (контент-менеджеров, переводчиков)
- Поддержка в течение месяца после внедрения
Ориентиры по срокам
| Сценарий | Срок |
|---|---|
| Интеграция MT-API, пакетный перевод названий и описаний | 2–4 недели |
| + обработка HTML, плейсхолдеры, очередь с ретраями | 4–6 недель |
| + интерфейс постредактирования в админке Битрикс | +2–3 недели |
Также мы можем предложить пост-релизную оптимизацию: настройка мониторинга качества перевода, дообучение моделей (если доступно) и корректировка конфигурации.
Опыт и гарантии
Наши инженеры имеют сертификаты 1С-Битрикс и 5+ лет опыта в интеграции систем перевода. Мы гарантируем сохранность данных и корректную работу инфоблоков. Свяжитесь с нами — получите консультацию и предварительную оценку вашего проекта.







