Налаштування багатомовних шаблонів листів 1С-Бітрікс

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Налаштування багатомовних шаблонів листів 1С-Бітрікс
Простий
~1 день
Часті запитання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1357
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    943
  • 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
    693
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    829
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    731
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1074

Наприклад, налаштування багатомовних шаблонів для двох мов коштує від 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 — необхідно перевіряти, як саме організовано багатомовність у конкретному проекті. Ми проводимо аудит і гарантуємо правильне налаштування.

Створення шаблонів для кількох мов

Переходимо в Налаштування → Поштові події → Типи поштових подій. Для кожної системної події створюємо шаблони:

  1. Відкриваємо подію (наприклад, SALE_NEW_ORDER)
  2. Додаємо новий шаблон через «Додати шаблон»
  3. У полі «Сайт» вибираємо мовну версію (або SITE_ID, якщо різні домени)
  4. Заповнюємо тему та тіло листа потрібною мовою

Для технічно коректної реалізації не дублюємо 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 днів. Зв'яжіться з нами для безкоштовного аудиту та консультації. Замовте налаштування багатомовних шаблонів і усуньте помилки локалізації. Отримайте консультацію інженера вже сьогодні.

Чому верстка сайтів на 1С-Бітрікс вимагає професіоналізму?

Відкриваєте template.php у попереднього підрядника — а там SQL-запити, бізнес-логіка та inline-стилі в одному файлі. На кожному другому проєкті, який ми беремо на підтримку, код шаблонів виглядає як звалище: кеш не працює, додати нову фічу — переписуй все. Виправлення такої верстки може коштувати чимало, а втрачений виторг через зламаний кошик у пік сезону може сягати десятків тисяч гривень.

Ми — команда сертифікованих розробників 1С-Бітрікс із десятирічним досвідом. За нашими плечима понад 50 успішних проектів верстки та підтримки. Наш підхід строго розділяє: логіка — в result_modifier.php або component_epilog.php, представлення — в template.php. Жодного CIBlockElement::GetList в шаблоні. Це скорочує час правок на 30–40% та виключає типові помилки, які ламають кеш. Подібну проблему виправляли клієнту з інтернет-магазину — він місяць не міг оновити блок «Акції». Після налаштування тегованого кеша правки вставали за хвилину, а не за день.

Отримайте безкоштовний аудит вашого проекту — зв'яжіться з нами.

Як правильно організувати шаблони компонентів?

Кастомний шаблон — це не один файл, а структура з п’яти-шести файлів:

  • template.php — тільки HTML та виведення $arResult
  • result_modifier.php — підготовка даних, додаткові вибірки
  • component_epilog.php — код після кешування (лічильники, динаміка)
  • style.css та script.js — підключаються через Asset::getInstance()->addCss() та addJs() (не через <link> — інакше ламається об'єднання)
  • .parameters.php — параметри візуального редактора

Приклад структури для каталогу:

local/templates/your_template/components/bitrix/catalog.section/.default/
├── template.php
├── result_modifier.php
├── component_epilog.php
├── style.css
├── script.js
└── .parameters.php

Типові шаблони, які верстаємо під ключ:

Компонент Що робимо
catalog.section та catalog.element Перемикання вигляду (плитка/список/таблиця), lazy load для зображень, srcset для ретини
sale.basket.basket AJAX-оновлення без перезавантаження, міні-кошик через sale.basket.basket.line
menu Мегаменю з кешуванням за розділами, відкладене завантаження підменю
search.title Автопідказки з дебаунсом 300 мс, прев'ю товарів у дропдауні
breadcrumb Мікророзмітка BreadcrumbList за Schema.org

Кешування: чому воно ламається і як лагодимо?

Компонентне кешування в Бітрікс ламається однією помилкою: вивели ім'я користувача всередині кешованого каталогу — всі бачать одне ім'я. Рішення — component_epilog.php для динамічних вставок.

Tagged cache ($this->setResultCacheKeys, CIBlock::clearIblockTagCache) налаштовуємо обов'язково. Змінили товар — очищується кеш лише цього товару, а не всього розділу. На проєкті з 50 000 товарів це дає приріст швидкості на 40% — в 1.4 раза швидше порівняно з повним скиданням.

Реальний кейс. Наш клієнт скаржився — на сторінці каталогу у всіх один кошик. Виявилося, попередній розробник вивів $_SESSION['BASKET'] всередині template.php компонента catalog.section. Компонент кешувався на годину — кошик застиг. Перенесли виведення в component_epilog.php, налаштували тегований кеш на sale.basket.basket.line. Сторінка не втратила у швидкості, кошик став актуальним. Збитки від несправного кошика в пік сезону могли бути значними, а вартість виправлення — помірною.

CSS-підходи: BEM, Tailwind або гібрид?

Для великих проєктів (30+ шаблонів) використовуємо BEM.product-card__price, .product-card--featured. Стилі ізольовані, конфліктів немає. У Бітрікс обгортки з класами bx-component не чіпаємо — обгортаємо свій BEM-блок всередині.

Для типових завдань (лендінги, адмінки) беремо Tailwind 3+ з PurgeCSS — підсумковий CSS 10–30 КБ замість сотень. Дизайн-токени в tailwind.config.js фіксують кольори, шрифти, відступи в одному місці.

На більшості проєктів застосовуємо гібрид: BEM для структурних компонентів (каталог, картка, чекаут), Tailwind для утилітарних речей (відступи, flex-розкладки). Межу обговорюємо з командою заздалегідь.

Як досягти Core Web Vitals при верстці сайтів на Бітрікс?

Critical CSS — виділяємо стилі першого екрану через пакет critical, інлайнимо в <head>. Решта завантажується асинхронно через media="print" onload="this.media='all'". LCP на мобільних скорочується на 1–1.5 секунди.

Зображення — головне гальмо. Використовуємо <picture> з WebP та JPEG-фолбеком. loading="lazy" для всього нижче першого екрану. width та height явно прописані — CLS = 0. Обробник в urlrewrite.php генерує WebP на льоту.

Мініфікація та стиснення. CSS та JS через Vite або вбудоване об'єднання Бітрікс. Brotli на nginx (brotli_comp_level 6) — на 15–20% ефективніше за gzip. Кешування статики: expires 1y + версіонування через query string.

Ми готові зробити аудит вашого проєкту та запропонувати конкретні кроки. Закажіть консультацію.

Що входить в послугу верстки сайтів на 1С-Бітрікс?

Після замовлення верстки шаблону або адаптації готового рішення передаємо:

  • Вихідні коди шаблонів компонентів з розділенням на template.php, result_modifier.php, epilog
  • CSS та JS, підключені через Asset — без інлайн-стилів
  • Налаштоване кешування з тегами
  • Документацію за структурою та параметрами
  • Доступ до Git-репозиторію з історією змін
  • Навчання вашого розробника: як правити шаблон без втрати оновлюваності

Гарантуємо відповідність Core Web Vitals та кросбраузерність. Закріплюємо інженера з досвідом 10+ років.

Типові помилки при верстці, які ми виправляємо - Inline-стилі в шаблонах — ламають кешування та об'єднання CSS. - Відсутність `component_epilog.php` — динамічний контент застигає. - Неправильне підключення скриптів через `