Bug #78743

Wrong translation behavior for pages/pages_language_overlay

Added by Oliver Hader over 3 years ago. Updated about 1 year ago.

Should have
DataHandler aka TCEmain
Target version:
Start date:
Due date:
% Done:


TYPO3 Version:
PHP Version:
Is Regression:
Sprint Focus:


  1. on localizing a page, references of pages.media are not copied to pages_language_overlay.media in DataHandler if localizeChildrenAtParentLocalization is defined in TCA
  2. RootlineUtility is not capable of resolving overlays correctly, ignores l10n_mode and uses custom reference queries -> RelationHandler could be used here

Related issues

Related to TYPO3 Core - Bug #78741: FileCollector::addFilesFromRelation missing check for already overlayed pages Closed 2016-11-18
Related to TYPO3 Core - Bug #65863: content_fallback / mergeIfNotblank fails with content slide, pageOverlayFields is ignored Closed 2015-03-20
Related to TYPO3 Core - Bug #81348: TCA pages_language_overlay column 'l10n_mode' => 'exclude' gets ignored Closed 2017-05-26


#1 Updated by Wouter Wolters over 3 years ago

  • Subject changed from Wrong translation behavior for pages/pages_language_overay to Wrong translation behavior for pages/pages_language_overlay

#2 Updated by Philipp Kitzberger almost 3 years ago

  • Related to Bug #81348: TCA pages_language_overlay column 'l10n_mode' => 'exclude' gets ignored added

#3 Updated by Coders.Care Extension Team over 2 years ago

AFAICS copying children together with the page record currently is not possible, since the whole translation process is not based on a copy action but on a simple call to process_datamap:

        if ($Ttable === $table) {
            // Get the uid of record after which this localized record should be inserted
            $previousUid = $this->getPreviousLocalizedRecordUid($table, $uid, $row['pid'], $language);
            // Execute the copy:
            $newId = $this->copyRecord($table, $uid, -$previousUid, true, $overrideValues, implode(',', $excludeFields), $language);
            $autoVersionNewId = $this->getAutoVersionId($table, $newId);
            if (is_null($autoVersionNewId) === false) {
                $this->triggerRemapAction($table, $newId, [$this, 'placeholderShadowing'], [$table, $autoVersionNewId], true);
        } else {
            // Create new record:
            $temporaryId = StringUtility::getUniqueId('NEW');
            $copyTCE = $this->getLocalTCE();
            $copyTCE->start([$Ttable => [$temporaryId => $overrideValues]], [], $this->BE_USER);
            // Getting the new UID as if it had been copied:
            $theNewSQLID = $copyTCE->substNEWwithIDs[$temporaryId];
            if ($theNewSQLID) {
                // If is by design that $Ttable is used and not $table! See "l10nmgr" extension. Could be debated, but this is what I chose for this "pseudo case" 
                $this->copyMappingArray[$Ttable][$uid] = $theNewSQLID;
                $newId = $theNewSQLID;

Since $Ttable (pages_language_overlay) differs from $table (pages) the condition is false, thus just creating a new record without taking care of any special localization configurations.

#4 Updated by Benni Mack about 1 year ago

  • Status changed from New to Needs Feedback

Dear Oliver,

can you please verify if your issue still exists in TYPO3 v9 LTS? This issue is of conceptual nature, which means it's imho verrrry hard to fix for v8 on a per-patch level, but it should be solved in TYPO3 v9 with "pages_language_overlay" being merged into "pages".

If you feel like that this issue is solved with TYPO3 v9, let me know and I can close this ticket then.

All the best,

#5 Updated by Oliver Hader about 1 year ago

  • Status changed from Needs Feedback to Rejected

Since pages_language_overlay is not part of TYPO3 v9 anymore, this issue is rejected. An according "fix" for TYPO3 v8 would be way too much now for patch level releases.

Also available in: Atom PDF