protected function extract($translated)
{
// Build arguments
$domain = $this->app['polyglot.translator']->getDomain();
$arguments = sprintf('--sort-output --default-domain="%s" --language="PHP" --no-location --package-name="%s" --from-code=UTF-8 --force-po -o %s', $domain, ucfirst($domain), $translated);
$arguments = explode(' ', $arguments);
// Create temporary folder (bug fix for poEdit in Unix-like OS)
foreach ($arguments as $arg) {
if (strpos($arg, "/var/folders") !== false) {
if (file_exists(dirname($arg)) === false) {
mkdir(dirname($arg), 0777, true);
}
}
}
// Build cached templates and add them to arguments
foreach ($this->getFiles() as $file) {
$path = $file->getPathname();
if ($file->getExtension() === 'twig') {
$this->app['twig']->loadTemplate($path);
$path = $this->app['twig']->getCacheFilename($path);
}
$arguments[] = '"' . $path . '"';
}
return $this->runGettext($arguments);
}