FCIBlockProperty::FCIBlockProperty::Translate

Метод используется для перевода свойств инфоблока. Нестатический метод.

Code Copy code Code copied!
1
2
3
4
5
6
7
FCIBlockProperty::Translate(
  int|string $ID,            // Идентификатор свойства инфоблока
  array $arFields = Array(),  // Массив полей для перевода
  string $target,             // Целевой язык перевода
  string|bool $siteId = false, // Идентификатор сайта, по умолчанию false
  string|bool $source = false  // Исходный язык перевода, по умолчанию false
);
  • $ID — Идентификатор свойства инфоблока для перевода.
  • $arFields — Массив полей с данными для перевода (например, array("NAME" => "Название")).
  • $target — Целевой язык перевода (например, “en”, “fr”).
  • $siteId — Идентификатор сайта (по умолчанию — false).
  • $source — Исходный язык перевода (по умолчанию — false).
Пример использования в массовом автопереводе:
Code Copy code Code copied!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
$res = CIBlockProperty::GetList(["ID" => "asc"], $arFilter);
            if ($arFields = $res->Fetch()) {
                if ($arFields["PROPERTY_TYPE"] == "L") {

                    $resVals = CIBlockProperty::GetPropertyEnum($arFields["ID"]);
                    while ($arVal = $resVals->Fetch())
                        $arValDB[$arVal["ID"]] = $arVal;

                    if (is_array($arValDB))
                        $arFields["VALUES"] = $arValDB;
                }

                // Переводим на все языки на которые настроен инфоблок
                foreach (CFanTranslator::getIblockAutoLangs($arFields['IBLOCK_ID']) as $lid) {
                    $fs = new FCIBlockProperty();
                    $fs->Translate($arFields["ID"], $arFields, $lid);
                }
            }

Количество показов: 240
Дата изменения: 01.10.2024 17:14:57