Возможно есть решение без кода, просто в админке?
Если нет - видимо это можно сделать через FCIBlockElement::Translate? К сожалению, описания параметров в документации нет.
Добрый день!
1. На текущий момент возможность принудительно отправить на перевод только часть элементов в Модуле Мультиязычности для Битрикс не предусмотрена. Однако, мы уже работаем над внедрением функционала, который позволит переводить только непереведенные элементы инфоблока и их непереведенные поля, не затрагивая уже переведенные данные. Это существенно снизит затраты на перевод.
2. Мы также обновили документацию и добавили описание соответствующих возможностей и функций, ознакомиться с ними можно по следующим ссылкам:
Если возникнут дополнительные вопросы, не стесняйтесь обращаться!
Код |
---|
$translateTest = $translateTest->Translate($element_id, Array("NAME", "DETAIL_TEXT"), "en"); |
Код |
---|
array_values(): Argument #1 ($array) must be of type array, null given (0) /bitrix/modules/bxproger.translator/include.php:8 #0: array_values /bitrix/modules/bxproger.translator/include.php:8 #1: CFanTranslator::IblockElement_TranslateFields /bitrix/modules/bxproger.translator/classes/FCIBlockElement.php:2776 #2: FCIBlockElement->Translate test.php:26 |
Добрый день!
Извините за недопонимание. Как указано в документации, вторым параметром необходимо передавать массив полей с данными для перевода, например:
array("NAME" => "Название").
Пример получения массива полей может выглядеть так:
Код |
---|
$res = CIBlockElement::GetList(["ID" => "asc"], $arFilter); if ($ob = $res->GetNextElement()) { $arFields = $ob->GetFields(); } |
Спасибо!
На данный момент, чтобы корректно записывались данные перевода, при использовании метода автоперевода, помимо полей для перевода, необходимо также передавать значения полей ID, IBLOCK_ID и IBLOCK_SECTION_ID. Это обеспечит правильную работу автоперевода.
Пример:
Код |
---|
$arFields = ["ID" => 437800, "NAME" => "Тестовое поле", "IBLOCK_ID" => 5, "IBLOCK_SECTION_ID" => 77]; $fs = new FCIBlockElement(); $fs->Translate(437800, $arFields, 'en'); |