/**
  * Processes the localization actions
  *
  * @param array $params
  */
 protected function process($params)
 {
     $pageId = (int) $params['pageId'];
     $srcLanguageId = (int) $params['srcLanguageId'];
     $destLanguageId = (int) $params['destLanguageId'];
     // Build command map
     $cmd = ['tt_content' => []];
     for ($i = 0, $count = count($params['uidList']); $i < $count; ++$i) {
         $currentUid = $params['uidList'][$i];
         if ($params['action'] === static::ACTION_LOCALIZE) {
             if ($srcLanguageId === 0) {
                 $cmd['tt_content'][$currentUid] = ['localize' => $destLanguageId];
             } else {
                 $previousUid = $this->localizationRepository->getPreviousLocalizedRecordUid('tt_content', $currentUid, $pageId, $srcLanguageId, $destLanguageId);
                 $cmd['tt_content'][$currentUid] = ['copy' => ['action' => 'paste', 'target' => -$previousUid, 'update' => ['sys_language_uid' => $destLanguageId]]];
             }
         } else {
             $previousUid = $this->localizationRepository->getPreviousLocalizedRecordUid('tt_content', $currentUid, $pageId, $srcLanguageId, $destLanguageId);
             $cmd['tt_content'][$currentUid] = ['copy' => ['action' => 'paste', 'target' => -$previousUid, 'update' => ['sys_language_uid' => $destLanguageId, 'l18n_parent' => 0]]];
         }
     }
     /** @var DataHandler $dataHandler */
     $dataHandler = GeneralUtility::makeInstance(DataHandler::class);
     $dataHandler->start([], $cmd);
     $dataHandler->process_cmdmap();
 }