public function makeLocalizationPanel($table, $row)
    {
        $out = [
            0 => '',
            1 => '',
        ];
        // Reset translations
        $this->translations = [];

        // Language title and icon:
        $out[0] = $this->languageFlag($row[$GLOBALS['TCA'][$table]['ctrl']['languageField']]);
        // Guard clause so we can quickly return if a record is localized to "all languages"
        // It should only be possible to localize a record off default (uid 0)
        // Reasoning: The Parent is for ALL languages... why overlay with a localization?
        if ((int)$row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] === -1) {
            return $out;
        }

        $translations = $this->getTranslateTools()->translationInfo($table, $row['uid'], 0, $row, $this->selFieldList);
        if (is_array($translations)) {
            $this->translations = $translations['translations'];
            // Traverse page translations and add icon for each language that does NOT yet exist:
            $lNew = '';
            foreach ($this->pageOverlays as $lUid_OnPage => $lsysRec) {
                if ($this->isEditable($table) && !isset($translations['translations'][$lUid_OnPage]) && $this->getBackendUserAuthentication()->checkLanguageAccess($lUid_OnPage)) {
                    $url = $this->listURL();
                    $href = BackendUtility::getLinkToDataHandlerAction(
                        '&cmd[' . $table . '][' . $row['uid'] . '][localize]=' . $lUid_OnPage,
                        $url . '&justLocalized=' . rawurlencode($table . ':' . $row['uid'] . ':' . $lUid_OnPage)
                    );
                    $language = BackendUtility::getRecord('sys_language', $lUid_OnPage, 'title');
                    if ($this->languageIconTitles[$lUid_OnPage]['flagIcon']) {
                        $lC = $this->iconFactory->getIcon(
                            $this->languageIconTitles[$lUid_OnPage]['flagIcon'],
                            Icon::SIZE_SMALL
                        )->render();
                    } else {
                        $lC = $this->languageIconTitles[$lUid_OnPage]['title'];
                    }
                    $lC = '<a href="' . htmlspecialchars($href) . '" title="'
                        . htmlspecialchars($language['title']) . '" class="btn btn-default">' . $lC . '</a> ';
                    $lNew .= $lC;
                }
            }
            if ($lNew) {
                $out[1] .= $lNew;
            }
        } elseif ($row['l18n_parent']) {
            $out[0] = '&nbsp;&nbsp;&nbsp;&nbsp;' . $out[0];
        }
        return $out;
    }
public function makeLocalizationPanel($table, $row)
    {
        $out = [
            0 => '',
            1 => '',
        ];
        // Reset translations
        $this->translations = [];

        // Language title and icon:
        $out[0] = $this->languageFlag($row[$GLOBALS['TCA'][$table]['ctrl']['languageField']]);
        // Guard clause so we can quickly return if a record is localized to "all languages"
        // It should only be possible to localize a record off default (uid 0)
        // Reasoning: The Parent is for ALL languages... why overlay with a localization?
        if ((int)$row[$GLOBALS['TCA'][$table]['ctrl']['languageField']] === -1) {
            return $out;
        }

        $translations = $this->getTranslateTools()->translationInfo($table, $row['uid'], 0, $row, $this->selFieldList);
        if (is_array($translations)) {
            $this->translations = $translations['translations'];
            // Traverse page translations and add icon for each language that does NOT yet exist:
            $lNew = '';
            foreach ($this->pageOverlays as $lUid_OnPage => $lsysRec) {
                if ($this->isEditable($table) && !isset($translations['translations'][$lUid_OnPage]) && $this->getBackendUserAuthentication()->checkLanguageAccess($lUid_OnPage)) {
                    $url = $this->listURL();
                    $href = BackendUtility::getLinkToDataHandlerAction(
                        '&cmd[' . $table . '][' . $row['uid'] . '][localize]=' . $lUid_OnPage,
                        $url . '&justLocalized=' . rawurlencode($table . ':' . $row['uid'] . ':' . $lUid_OnPage)
                    );
                    $language = BackendUtility::getRecord('sys_language', $lUid_OnPage, 'title');
                    if ($this->languageIconTitles[$lUid_OnPage]['flagIcon']) {
                        $lC = $this->iconFactory->getIcon(
                            $this->languageIconTitles[$lUid_OnPage]['flagIcon'],
                            Icon::SIZE_SMALL
                        )->render();
                    } else {
                        $lC = $this->languageIconTitles[$lUid_OnPage]['title'];
                    }
                    $lC = '<a href="' . htmlspecialchars($href) . '" title="'
                        . htmlspecialchars($language['title']) . '" class="btn btn-default">' . $lC . '</a> ';
                    $lNew .= $lC;
                }
            }
            if ($lNew) {
                $out[1] .= $lNew;
            }
        } elseif ($row['l18n_parent']) {
            $out[0] = '&nbsp;&nbsp;&nbsp;&nbsp;' . $out[0];
        }
        return $out;
    }
public function makeLocalizationPanel ( $ table , $ row ) { $ out = [ 0 => '' , 1 => '' , ] ; // Reset translations $ this -> translations = [ ] ; // Language title and icon: $ out [ 0 ] = $ this -> languageFlag ( $ row [ $ GLOBALS [ 'TCA' ] [ $ table ] [ 'ctrl' ] [ 'languageField' ] ] ) ; // Guard clause so we can quickly return if a record is localized to "all languages" // It should only be possible to localize a record off default (uid 0) // Reasoning: The Parent is for ALL languages... why overlay with a localization? if ( ( int ) $ row [ $ GLOBALS [ 'TCA' ] [ $ table ] [ 'ctrl' ] [ 'languageField' ] ] === - 1 ) { return $ out ; } $ translations = $ this -> getTranslateTools ( ) -> translationInfo ( $ table , $ row [ 'uid' ] , 0 , $ row , $ this -> selFieldList ) ; if ( is_array ( $ translations ) ) { $ this -> translations = $ translations [ 'translations' ] ; // Traverse page translations and add icon for each language that does NOT yet exist: $ lNew = '' ; foreach ( $ this -> pageOverlays as $ lUid_OnPage => $ lsysRec ) { if ( $ this -> isEditable ( $ table ) && ! isset ( $ translations [ 'translations' ] [ $ lUid_OnPage ] ) && $ this -> getBackendUserAuthentication ( ) -> checkLanguageAccess ( $ lUid_OnPage ) ) { $ url = $ this -> listURL ( ) ; $ href = BackendUtility :: getLinkToDataHandlerAction ( '&cmd[' . $ table . '][' . $ row [ 'uid' ] . '][localize]=' . $ lUid_OnPage , $ url . '&justLocalized=' . rawurlencode ( $ table . ':' . $ row [ 'uid' ] . ':' . $ lUid_OnPage ) ) ; $ language = BackendUtility :: getRecord ( 'sys_language' , $ lUid_OnPage , 'title' ) ; if ( $ this -> languageIconTitles [ $ lUid_OnPage ] [ 'flagIcon' ] ) { $ lC = $ this -> iconFactory -> getIcon ( $ this -> languageIconTitles [ $ lUid_OnPage ] [ 'flagIcon' ] , Icon :: SIZE_SMALL ) -> render ( ) ; } else { $ lC = $ this -> languageIconTitles [ $ lUid_OnPage ] [ 'title' ] ; } $ lC = '<a href="' . htmlspecialchars ( $ href ) . '" title="' . htmlspecialchars ( $ language [ 'title' ] ) . '" class="btn btn-default">' . $ lC . '</a> ' ; $ lNew .= $ lC ; } } if ( $ lNew ) { $ out [ 1 ] .= $ lNew ; } } elseif ( $ row [ 'l18n_parent' ] ) { $ out [ 0 ] = '&nbsp;&nbsp;&nbsp;&nbsp;' . $ out [ 0 ] ; } return $ out ; }
Creates the localization panel

@param string $table The table
@param mixed[] $row The record for which to make the localization panel.
@return string[] Array with key 0/1 with content for column 1 and 2
Creates the localization panel