FCIBlockSection::Translate

Описание

Метод нестатический: Выполняет перевод заданного раздела инфоблока на целевой язык. Используется в системах автоперевода или ручной локализации для записи переведённых данных в мультиязычную таблицу. Метод принимает подготовленный массив полей, включая значения пользовательских свойств, и сохраняет их для указанного языка.

Сигнатура метода

Code Copy code Code copied!
1
2
3
4
5
6
7
8
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!
1
2
3
4
5
6
7
8
9
10
// Получаем раздел для перевода
$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