Important: Inline child records are translated through the parent
Description
Dispatching the deepltranslate DataHandler command for an inline (IRRE) child
record in connected mode - meaning the parent TCA field uses foreign_ -
created a translation which was not attached to the translated parent record.
The reason is that TYPO3 only writes the foreign_ pointer of a localized
child record when the localization has been triggered through the parent record.
\TYPO3\ called for the child
record itself either copies the pointer to the default language parent record or
drops it completely, if the pointer column is not configured in TCA. In both cases
the created translation is invisible in the backend.
The deepltranslate command now detects such records and hands them over to the
inline DataHandler command of the resolved parent record, so
TYPO3 writes the foreign_ pointer, the pid and the sorting of the created
translation.
Impact
Translating an inline child record - either directly through the localization
wizard or dispatched by an add-on such as web- -
now results in a translation which is correctly attached to the translated parent
record.
If the parent record has no translation for the target language yet, the child
record translation cannot be attached to anything. Nothing is created in that case
and a message is written to the system log, mirroring the behaviour of
\TYPO3\.
Translate the parent record first, which localizes its children along with it.
This applies only to parents which can be translated at all. An inline child whose
parent table carries no language configuration - sys_, owned by the
untranslatable sys_ - is not handed over and is localized on its own
instead, because there could never be a parent localization to attach it to. See
Bugfix: Inline child of an untranslatable parent.