Інтеграція машинного перекладу контенту для 1С-Бітрікс
Ми стикалися із завданням перекладу каталогу з 20 000 товарів на три мови. Силами перекладачів це зайняло б місяці та сотні тисяч гривень. Наш досвід показує: машинний переклад (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+ років досвіду в інтеграції систем перекладу. Ми гарантуємо збереження даних та коректну роботу інфоблоків. Зв'яжіться з нами — отримайте консультацію та попередню оцінку вашого проєкту.







