private function generateLanguageCache($cacheDir)
{
$dumper = new CombinedFileDumper($this->filesystem, new DelegatingLoader(new LoaderResolver([new PhpFileLoader(), new XliffFileLoader($this->rootDir)])), $cacheDir . '/contao');
$dumper->setHeader("<?php\n");
foreach ($this->getLanguagesInUse() as $language) {
$processed = [];
try {
$files = $this->finder->findIn('languages/' . $language)->files()->name('/\\.(php|xlf)$/');
} catch (\InvalidArgumentException $e) {
continue;
// the language does not exist
}
/** @var SplFileInfo[] $files */
foreach ($files as $file) {
$name = substr($file->getBasename(), 0, -4);
if (in_array($name, $processed)) {
continue;
}
$processed[] = $name;
$subfiles = $this->finder->findIn('languages/' . $language)->files()->name('/^' . $name . '\\.(php|xlf)$/');
try {
$dumper->dump(iterator_to_array($subfiles), sprintf('languages/%s/%s.php', $language, $name), ['type' => $language]);
} catch (\OutOfBoundsException $e) {
continue;
}
}
}
}