4 типа -intl полей
varchar-intl, text-intl, wysiwyg-intl, json-object-intl — единый механизм для коротких строк, текстов, HTML и JSON.
Декларативные мультиязычные поля для произвольного числа языков с единым Loader/Saver и fallback.
varchar-intl, text-intl, wysiwyg-intl, json-object-intl — единый механизм для коротких строк, текстов, HTML и JSON.
app.internationalLanguages с парами code → suffix: kk_Kz, ru_RU, ar_AR, de_DE, ja_JP, zh_CN/TW, es_ES/MX и другие.
Одна строка { type: varchar-intl } в metadata.fields — платформа сама создаёт суффиксные {name}{Suffix} атрибуты.
LoaderInternationalIntl + SaverInternationalIntl в readLoader/listLoader/saver через __APPEND__ — без правки контроллеров.
Поле en с isFallback: true и order 99 — пустое значение текущего языка автоматически замещается английским.
VarcharIntlFactory, VarcharIntlAttributeExtractor, FieldConverters — стандартное API value objects платформы.
fullTextSearchColumnList покрывает все языковые подполя — поиск находит запись по любой заполненной локали.
Модуль BPM2B Multilingual Fields добавляет в платформу BPM2B универсальный механизм мультиязычных полей: вместо отдельного модуля под каждую языковую пару (как было в bpm2bQazaq с жёстким Kz/Ru/En) теперь работает декларативный реестр на 36+ языков, единый набор field-types и единый Loader/Saver. Любая сущность одной строкой получает мультиязычное поле под нужный набор языков с автоматическим fallback на английский.
varchar-intl (короткие строки), text-intl (длинные тексты), wysiwyg-intl (HTML-контент), json-object-intl (структурированные данные) — каждый разворачивается в подполя по суффиксу языка из единого реестра.app.internationalLanguages описывает поддерживаемые локали — kk_Kz, ru_RU, ar_AR, de_DE, fr_FR, it_IT, ja_JP, zh_CN/zh_TW, es_ES/es_MX, en_US/en_GB и другие; каждый язык — это пара code → suffix.{ "type": "varchar-intl" }; платформа сама создаёт суффиксные атрибуты {name}{Suffix} и виртуальный {name} на текущем языке пользователя.LoaderInternationalIntl и SaverInternationalIntl зарегистрированы в readLoaderClassNameList / listLoaderClassNameList / saverClassNameList через __APPEND__ — работает на чтение записи, на listы и на save без правки контроллеров.en помечено isFallback: true с order 99 — если на текущем языке значение пустое, отдаётся английская версия; пользователь никогда не видит пустую карточку.VarcharIntlFactory, VarcharIntlAttributeExtractor, FieldConverters\VarcharIntl — работа через стандартное API value objects платформы; формулы и code-actions работают без обходных путей.fullTextSearchColumnList на каждом типе включает все языковые подполя — поиск по названиям и описаниям работает по всем заполненным переводам сразу.language-settings администратор включает/выключает языки; POST /LanguageSettings/action/applyLanguages применяет изменения и пересоздаёт суффиксные атрибуты.model.trigger('switchLanguage') — переключатель языка на карточке синхронно сохраняет ввод и подгружает значения нового языка во всех intl-полях.Модуль предназначен для проектов с международной аудиторией или жёсткими языковыми требованиями (Казахстан, ЕС, Ближний Восток): один механизм решает задачу мультиязычности для любой комбинации языков без дублирования кода. Зависимостей нет; используется как фундамент для bpm2bHeadlessCMS (универсальный SEO с intl-подполями).
Покажем работу системы на ваших данных за 30 минут. Расскажем, как окупится в вашей отрасли, и подберём конфигурацию под ваши процессы.