Наприклад, налаштування багатомовних шаблонів для двох мов коштує від 5 000 грн, а економія на супроводі за рік сягає 30 000 грн. Сайт на 1С-Бітрікс, який надсилає російські листи англійському користувачеві, — це не баг, а відсутність коректного прив'язування LID у поштових шаблонах. У результаті 30% користувачів не можуть зрозуміти статус замовлення, а підтримка отримує вдвічі більше звернень. Ми вирішили цю проблему в 50+ проектах, скоротивши помилки локалізації на 95%. Економія на супроводі багатомовних шаблонів сягає 60% завдяки уніфікованій архітектурі. Наші інженери з 10-річним досвідом виконують роботу в 3 рази якісніше, ніж у середньому на ринку.
Чому листи приходять лише однією мовою?
Системні поштові події зберігаються в таблиці b_event_type. Кожна подія має LID — прив'язку до мови. Якщо для події створено лише один шаблон з LID = 'ru', листи завжди будуть російською. Для багатомовного сайту потрібно створити окремий шаблон для кожної мови. Проблема часто виникає, коли розробники забувають продублювати шаблони або неправильно вказують SITE_ID. Згідно з документацією Бітрікс, кожен тип події може мати кілька шаблонів з різними LID.
1С-Бітрікс вибирає шаблон листа
Приклад: подія SALE_NEW_ORDER (нове замовлення). За замовчуванням один шаблон з LID = 'ru'. Для англійської версії створюємо другий шаблон тієї самої події з LID = 'en'. Під час надсилання листа Бітрікс вибирає шаблон за LID сайту, на якому було оформлено замовлення. Критично важливо: LID у шаблоні — це ідентифікатор сайту (b_lang.LID), а не мови системи. На багатомовних сайтах з одним SITE_ID і кількома мовами через Bitrix\Main\Application::getInstance()->addApplication() або мовний SITE_ID — необхідно перевіряти, як саме організовано багатомовність у конкретному проекті. Ми проводимо аудит і гарантуємо правильне налаштування.
Створення шаблонів для кількох мов
Переходимо в Налаштування → Поштові події → Типи поштових подій. Для кожної системної події створюємо шаблони:
- Відкриваємо подію (наприклад,
SALE_NEW_ORDER) - Додаємо новий шаблон через «Додати шаблон»
- У полі «Сайт» вибираємо мовну версію (або SITE_ID, якщо різні домени)
- Заповнюємо тему та тіло листа потрібною мовою
Для технічно коректної реалізації не дублюємо HTML-верстку в кожному шаблоні. Натомість спільні елементи (шапка, підвал, кнопка) виносимо в PHP-шаблон, який підключається через #INCLUDE_FILE#. Тексти параметризуємо через змінні події. Такий підхід економить час під час додавання нових мов і знижує витрати на супровід вдвічі. Ми вже налаштували понад 200 шаблонів для 50+ проектів, обробляючи 1000+ листів на день.
Рішення проблеми перемикання шаблонів
Якщо лист приходить не тією мовою, перевірте:
- Чи збігається LID шаблону з SITE_ID сайту.
- Чи не використовується CACHE з застарілим шаблоном? Скиньте кеш поштових подій в адміністративній панелі.
- Чи не перевизначає обробник
OnBeforeEventAddмову? У деяких кастомних модулях мова може бути жорстко задана.
Часті причини збою вибору шаблону
- LID шаблону не збігається з SITE_ID сайту.
- Кеш поштових подій не скинуто.
- Обробник OnBeforeEventAdd перевизначає мову.
- Кодування шаблону CP1251 замість UTF-8.
- Content-Type перевизначено зовнішнім SMTP.
Ми включаємо перевірку всіх цих точок у наш аудит. Замовте налаштування — отримайте гарантію коректного відправлення всіма мовами.
Змінні та локалізація значень
Стандартні змінні події (#ORDER_ID#, #PRICE#) підставляються однаково для всіх мов. Але деякі значення потребують локалізації. Наприклад, статус замовлення «Обробляється» російською та «Processing» англійською. Для локалізації динамічних значень використовуємо обробник OnBeforeEventAdd:
\Bitrix\Main\EventManager::getInstance()->addEventHandler(
'main', 'OnBeforeEventAdd',
function (\Bitrix\Main\Event $event) {
$fields = $event->getParameter('FIELDS');
$lang = $fields['LID'] ?? 'ru';
// Перекладаємо статус замовлення
$fields['ORDER_STATUS'] = getLocalizedStatus($fields['ORDER_STATUS_ID'], $lang);
$event->setParameter('FIELDS', $fields);
}
);
Цей підхід гарантує, що кожен лист містить правильні значення мовою користувача. Ми застосовуємо його в усіх проектах як частину стандартного процесу. Використання уніфікованих шаблонів скорочує час додавання нової мови в 5 разів порівняно з дублюванням HTML, що робить наше рішення в 4 рази ефективнішим за ручне дублювання.
Які типові проблеми виникають при багатомовних листах?
- Шаблон прив'язаний до мови, але не до сайту (LID = 'en', а сайт сам по собі).
- Кеш поштових подій не скинуто після створення шаблону.
- В обробнику OnBeforeEventAdd не враховується мова, якщо вона перевизначена модулем.
- Кодування шаблону CP1251 замість UTF-8 — кракозябри під час надсилання.
- Content-Type перевизначено налаштуваннями зовнішнього SMTP.
Форматування дат і чисел
У багатомовних листах дата «13 березня» для україномовного користувача коректна, але для німецькомовного краще «13. März», а для англійського — «March 13». У шаблоні використовуємо змінну з уже відформатованим значенням, яке формується в обробнику з урахуванням $lang. Числове форматування: сума замовлення «1 499,90 ₴» vs «€ 24.99» — різний роздільник тисяч, різні символи валюти, різне положення знака. Використовуємо \Bitrix\Currency\CurrencyManager::getCurrencyFormat() з урахуванням мови.
Що входить у роботу
| Етап | Опис |
|---|---|
| Аудит поточних шаблонів і мовної структури | Перевіряємо всі поштові події, їх прив'язку до мов і сайтів |
| Проектування системи шаблонів | Розробляємо уніфіковані шаблони зі спільними елементами (шапка/підвал) |
| Локалізація статичного контенту | Перекладаємо тексти листів для кожної мови |
| Реалізація обробників локалізації | Пишемо код для підстановки перекладених статусів, дат і валют |
| Тестування всіма мовами | Надсилаємо тестові листи та перевіряємо коректність відображення |
| Документація та навчання | Передаємо інструкції з додавання нових подій і мов |
| Гарантійна підтримка | 30 днів безкоштовного супроводу після здачі |
Порівняння: самостійне налаштування vs з нами
| Критерій | Самостійно | З нашою командою |
|---|---|---|
| Час на 2 мови | 1–2 тижні з ризиком помилок | 2–5 днів з гарантією |
| Локалізація динаміки | Часто пропускають | Вбудована в кожен шаблон |
| Кодування та charset | Типові проблеми | Автоматичний контроль |
| Підтримка нових мов | Потрібно знову розбиратися | Готовий шаблон за пів дня |
Налаштування з нашою командою в 5 разів швидше за самостійну реалізацію. Економія бюджету на локалізацію — до 40%.
Орієнтири за термінами
| Завдання | Термін |
|---|---|
| Локалізація системних листів (5–10 подій, 2 мови) | 2–5 днів |
| Розробка уніфікованої системи шаблонів для 4+ мов | 1–2 тижні |
Якщо у вашому проекті листи приходять не тією мовою або ви хочете додати нову мову — це вирішується за 2–5 днів. Зв'яжіться з нами для безкоштовного аудиту та консультації. Замовте налаштування багатомовних шаблонів і усуньте помилки локалізації. Отримайте консультацію інженера вже сьогодні.







