sys_language uid isn't updated when parent records sys_languge_uid changes
When you have a CE (tt_content) with some images created in the not default language and you change the
sys_language_uid the relation handling + BE forms break.
When you translate the CE again opening the BE form of the CE will create new
sys_language_uid records so you will see multiple file references appearing. Saving the CE will give an error:
ERROR Error handler Core: Exception handler (WEB): Uncaught TYPO3 Exception: #1486233164: Child record was not processed | RuntimeException thrown in file vendor/typo3/cms/typo3/sysext/core/Classes/DataHandling/Localization/DataMapProcessor.php in line 631.
tt_content.sys_language_uid = 10 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
After change of
tt_content.sys_language_uid = 0 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
tt_content.sys_language_uid = 0 sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 0 sys_file_reference.l10n_parent = 0
Note for others who run into this issue, after you changed the
sys_language_uid to 0 and create translation you will see records appearing like:
sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 0
But this should be
sys_file_reference.uid = 1111 sys_file_reference.sys_language_uid = 0 sys_file_reference.l10n_parent = 0 sys_file_reference.sys_language_uid = 10 sys_file_reference.l10n_parent = 1111
Due to the fact that
sys_file_reference.sys_language_uid isn't correctly set to
0 for the CE in the default language the
l10n_parent value for the translated CE's/file references is not correctly set.
#4 Updated by Helmut Hummel about 1 year ago
Mathias Schreiber wrote:
Changing languages just with the dropdown shouldn't be possible in the first place.
So the select box needs replacement with something that triggers a fullblown wizard.
I agree. Quick fix: hide the selector and let users copy the element into a different language instead (through page module wizard)