TYPO3 tt_content结构:t3_origuid vs l18n_parent

时间:2015-03-11 20:40:09

标签: typo3 typo3-6.2.x

我不得不从一个TYPO3站点导入一些帖子到另一个站点,这导致了对DB结构的一些探索。出现了一个具体问题:

在本地化的内容元素(具有sys_language_uid = 1的tt_content条目)中,字段t3_origuidl18n_parent被冗余填充。后端本地化视图需要l18n_parent才能正常工作。

他们总是有相同的价值吗?或者是否存在字段值可能不同的用例?

3 个答案:

答案 0 :(得分:3)

l10n_parent / l18n_parent

在TCA中配置为transOrigPointerField(通常为l10n_parentl18n_parent)的字段用于本地化。 它始终包含默认语言中记录的id(即使记录是使用非默认语言从记录中翻译的),请参阅https://docs.typo3.org/typo3cms/TCAReference/singlehtml/#transorigpointerfield

t3_origuid

在复制或翻译记录时填写在TCA中配置为origUid(通常为t3_origuid)的字段,并包含源记录的ID,请参阅https://docs.typo3.org/typo3cms/TCAReference/singlehtml/#origuid

在某些情况下,字段将具有相同的值(例如,从默认语言翻译记录),但在其他情况下具有不同的值。例如。复制同一页面上的记录时t3_origuid将与l10n_parent不同。

要允许本地化,需要transOrigPointerFieldl10n_parent)。拥有origUidt3_origuid)字段并不是一项艰难的要求,但这是一种很好的做法,因为一些额外的功能可能需要它才能工作。特别是在较新版本的TYPO3中。例如,翻译向导当前正在使用t3_origuid字段。

l10n_source(自TYPO3 8.6起)

由于TYPO3 8.6已经引入了l10n_source表的新数据库字段tt_content以及新的TCA ctrl配置translationSourcetranslationSource字段包含用作翻译源的记录的uid,无论记录是以自由模式还是连接模式翻译的。

documentation on l10n_source field

中查看更多内容

答案 1 :(得分:2)

仅作为 Jost 帖子的补充:

要确定应使用哪个字段,请检查以下值:
$TCA['tx_yourtable']['ctrl']['transOrigPointerField']

即。对于tt_content它来说:

$TCA['tt_content']['ctrl']['transOrigPointerField'] = 'l18n_parent';

答案 2 :(得分:1)

这些字段可以有不同的值。

t3_origuid是一个通用字段,指向当前以某种方式派生的记录。例如,通过复制或本地化它。 Here是一些文档。

字段l18n_parent保留用于本地化。