问题描述
可以使用DataHandler的“ localize”命令对记录进行本地化
$cmd[self::TABLE_NAME] = [
uid_of_the_original_record => [
'localize' => language_uid,]
];
$this->dataHandler->start([],$cmd);
$this->dataHandler->process_cmdmap();
这可以将已翻译的记录正确地添加到DB,但是带有原始记录的复制字符串。如何编辑本地化记录的属性?之后使用update命令吗?如果是这样,我如何获得添加的本地化的uid?
解决方法
您实际上可以使用数据图来创建本地化:
$data[self::TABLE_NAME] = [
'NEW123' => [
'sys_language_uid' => <language-uid>,'l10n_parent' => <original-record-uid>,// Optionally also l10n_source
// Other fields
],];
$this->dataHandler->start($data,[]);
$this->dataHandler->process_datamap();
这样,您可以在创建本地化时直接设置其他字段。
,当前无法运行localize
并将翻译后的内容同时放入其中。
我可以看到两种选择:
- 获取所有已翻译的元素(通过您拥有的原始UID),然后在每个元素中设置已翻译的内容
- 插入
processCmdmap_postProcess
或processCmdmap_afterFinish
并将翻译后的内容放入其中
我与进口商存在相同的问题,并使用了选项1。