Описание
Метод нестатический: Выполняет перевод заданного раздела инфоблока на целевой язык. Используется в системах автоперевода или ручной локализации для записи переведённых данных в мультиязычную таблицу. Метод принимает подготовленный массив полей, включая значения пользовательских свойств, и сохраняет их для указанного языка.
Сигнатура метода
Code
Copy code
Code copied!
bool FCIBlockSection::Translate( int|string $ID, array $arFields, string $target, string|bool $siteId = false, string|bool $source = false );
Параметры вызова
Параметр | Описание | С версии |
---|---|---|
ID | Идентификатор раздела инфоблока, который необходимо перевести. | 2.5.0 |
arFields | Массив полей и свойств, подлежащих переводу. Должен включать хотя бы одно текстовое значение (например, NAME , DESCRIPTION , UF_* ). |
2.5.0 |
target | Целевой язык перевода (например, 'en' , 'fr' , 'id' ). |
2.5.0 |
siteId | Идентификатор сайта, с которым связаны переведённые данные. Если не указан, используется код языка из параметра target . |
2.5.0 |
source | Исходный язык, с которого выполняется перевод. Используется при работе с внешними сервисами автоперевода. Если не указан — определяется автоматически. | 2.5.0 |
Возвращаемое значение
Метод возвращает true
в случае успешной записи переведённых данных.
В случае ошибки возвращает false
.
При ошибке сохранения рекомендуется проверить корректность структуры arFields
и наличие целевого языка.
Пример
Code
Copy code
Code copied!
// Получаем раздел для перевода $res = CIBlockSection::GetList(["ID" => "ASC"], $arFilter, false, ["UF_*"]); if ($arFields = $res->Fetch()) { // Переводим на все языки, настроенные для инфоблока foreach (CFanTranslator::getIblockAutoLangs($arFields['IBLOCK_ID']) as $lid) { $section = new FCIBlockSection(); $section->Translate($arFields["ID"], $arFields, $lid); } }
Количество показов: 451
Дата изменения: 23.06.2025 09:19:11