В Language Manager (LM) версии 5.2.0 мы добавили в appsettings.json параметр под названием TranslateOrCopyContentAreaChildrenBlockForTypes. Он делает именно то, что предполагает его название: когда LM переводит или дублирует содержимое объявленных типов, содержимое свойства ContentArea будет переведено или дублировано вместе с ним.
Опираясь на указанную опцию, обновление 5.3.0 предлагает пользователям более интуитивный и настраиваемый подход к управлению переводом и дублированием контента, позволяет пользователям напрямую настраивать процесс перевода или дублирования. устраняя необходимость объявлять определенные типы в файле appsettings.json.
Давайте начнем с того, что нового: когда вы нажмете функцию «Автоматический перевод/дублирование», появится новое диалоговое окно:
Это то же самое всплывающее окно, которое мы используем для функции «Добавить в проект перевода», но лучше! Примечательно, что выбор исходного языка был обновлен до более интуитивно понятного раскрывающегося меню, заменив предыдущие переключатели.
Добавить всех детей, делает именно то, что предполагает его название. Включение этой опции влечет за собой включение всех дочерних страниц или подстраниц данной родительской страницы в процесс перевода.

Например: если выбрать этот параметр при переводе страницы 1, все страницы на изображении выше также будут переведены в процесс перевода.
Добавить связанный контент(ы), это немного сложнее. Что касается параметра TranslateOrCopyContentAreaChildrenBlockForTypes, то ранее он охватывал все содержимое исключительно внутри свойства ContentArea.
Однако с появлением версии 5.3.0 мы расширили эту функцию, включив не только весь контент в КонтентАреано и в Ссылка на контент и XhtmlString. Это расширение, естественно, включает в себя От Илиса
Если выбран любой из двух вариантов выше, третий вариант Публикация добавленного контента(ов) соответственно будет выявлено:

Эта опция предоставляет пользователям возможность решить, публиковать ли вновь добавленный контент или сохранить его как черновик. Примечательно, корневой контент останется в статусе черновикагарантируя, что он пройдет дополнительную проверку перед публикацией.
Однако наши усилия по повышению гибкости LM на этом не заканчиваются: реализация по умолчанию лишь поверхностно. Чтобы предоставить пользователям еще большую адаптивность, мы представляем совершенно новый интерфейс: IChildrenContentLoader.
public interface IChildrenContentLoader
{
///
/// Get children from a parent/root content
///
/// The parent or root content
/// Id of the source language
/// Flag to indicate whether including descendants or not
/// Flag to indicate whether including related content or not
/// List of content link that will get translated alongside root
IEnumerable GetChildrenContentsNeedToCopyOrTranslate(ContentReference content, string languageId, bool includeDescendents, bool includeRelatedContents);
}
Естественно, пользователи имеют право настраивать это поведение в соответствии со своими конкретными требованиями. Этого можно добиться, переопределив реализацию по умолчанию и зарегистрировав службу типа IChildrenContentLoader с желаемыми изменениями.
На этом пока всё. Не стесняйтесь придумывать свою собственную логику и оставлять нам ценные отзывы об этой новой функции. Ваша информация будет способствовать нашим постоянным усилиям по дальнейшему совершенствованию Language Manager.
15 апреля 2024 г.