FCIBlockElement::Translate

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

Code Copy code Code copied!
1
2
3
4
5
6
7
FCIBlockElement::Translate(
  int|string $ID,            // Идентификатор элемента инфоблока
  array $arFields = Array(),  // Массив полей, содержащих данные для перевода
  string $target,             // Целевой язык перевода (например, "en", "fr", "de")
  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
19
20
21
22
23
24
25
26
27
28
$res = CIBlockElement::GetList(["ID" => "asc"], $arFilter);
            if ($ob = $res->GetNextElement()) {
                $arFields = $ob->GetFields();
                $props = $ob->GetProperties();

                foreach ($props as $prop) {
                    if (is_array($prop['PROPERTY_VALUE_ID'])) {
                        foreach ($prop['PROPERTY_VALUE_ID'] as $key => $propertyValueId) {
                            $arFields["PROPERTY_VALUES"][$prop["ID"]][$propertyValueId] = [
                                'VALUE' => $prop['~VALUE'][$key],
                                'DESCRIPTION' => $prop['~DESCRIPTION'][$key],
                            ];
                        }
                    } else
                        $arFields["PROPERTY_VALUES"][$prop["ID"]] = [
                            $prop['PROPERTY_VALUE_ID'] => [
                                "VALUE" => $prop['~VALUE'],
                                'DESCRIPTION' => $prop['~DESCRIPTION'],
                            ]
                        ];
                }

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

Количество показов: 330
Дата изменения: 02.10.2024 19:03:41