/**
  * Convert the source file to the destination file.
  *
  * @param OutputInterface $output An OutputInterface instance.
  *
  * @param ContaoFile      $src    The source Contao file.
  *
  * @param XLiffFile       $dst    The destination XLIFF file.
  *
  * @param ContaoFile      $base   The base Contao file.
  *
  * @return void
  */
 protected function convert(OutputInterface $output, ContaoFile $src, XLiffFile $dst, ContaoFile $base)
 {
     $baseKeys = $base->getKeys();
     foreach ($baseKeys as $key) {
         if (!($basVal = $base->getValue($key))) {
             $dst->remove($key);
             continue;
         }
         $dst->setSource($key, $basVal);
         if (($value = $src->getValue($key)) !== null) {
             $dst->setTarget($key, $value);
         }
     }
     foreach ($dst->getKeys() as $key) {
         if (!in_array($key, $baseKeys)) {
             $this->writelnVerbose($output, sprintf('Language key <info>%s</info> is not present in the source. Removing it.', $key));
             $dst->remove($key);
         }
     }
 }