Описание
Метод нестатический: Выполняет перевод заданного раздела инфоблока на целевой язык. Используется в системах автоперевода или ручной локализации для записи переведённых данных в мультиязычную таблицу. Метод принимает подготовленный массив полей, включая значения пользовательских свойств, и сохраняет их для указанного языка.
Сигнатура метода
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);
}
}
Количество показов: 679
Дата изменения: 23.06.2025 09:19:11