<?php // this script compile all twig templates and put it in cahce to get Poedit (or xgettext) to extract phrases fron chached templates. // gettext command line tools: // msgunfmt - get po from mo // msgfmt - get mo from po // xgettext - extract phrases from files $siteRoot = dirname(__FILE__) . '/../..'; require_once $siteRoot . '/vendor/twig/twig/lib/Twig/Autoloader.php'; Twig_Autoloader::register(); require_once $siteRoot . '/vendor/twig/extensions/lib/Twig/Extensions/Autoloader.php'; Twig_Extensions_Autoloader::register(); //$tplDir = $siteRoot.'/themes/default'; $tplDirRoot = $siteRoot . '/themes/'; $tmpDir = $siteRoot . '/cache/'; foreach (new IteratorIterator(new DirectoryIterator($tplDirRoot)) as $tplDir) { if ($tplDir->isDir() and $tplDir != '.' and $tplDir != '..') { echo "\n{$tplDir}\n"; $loader = new Twig_Loader_Filesystem($tplDirRoot . $tplDir); // force auto-reload to always have the latest version of the template $twig = new Twig_Environment($loader, array('cache' => $tmpDir, 'auto_reload' => true)); $twig->addExtension(new Twig_Extensions_Extension_I18n()); $filter = new Twig_SimpleFilter('getDomain', 'Tools::getDomain'); $twig->addFilter($filter); $filter = new Twig_SimpleFilter('getReadingTime', 'Tools::getReadingTime'); $twig->addFilter($filter); $filter = new Twig_SimpleFilter('getPrettyFilename', function ($string) { return str_replace($siteRoot, '', $string); }); $twig->addFilter($filter); // // iterate over all your templates
/** * Creates new TwigEnvironment if it doesn't already exist, and returns it. * * @return Twig_Environment */ public function getEnvironment() { if (!$this->twigEnvironment) { // Check for Composer Package Autoloader class loading if (!class_exists('\\Twig_Autoloader')) { require_once self::$twigDirectory . '/Autoloader.php'; } \Twig_Autoloader::register(); $loader = new \Twig_Loader_Filesystem($this->getTemplateDirs()); $this->twigEnvironment = new \Twig_Environment($loader, self::$twigOptions); // Check for Composer Package Autoloader class loading if (!class_exists('\\Twig_Extensions_Autoloader')) { $extension_autoloader = dirname(__FILE__) . '/Extension/TwigAutoloader.php'; if (file_exists($extension_autoloader)) { require_once $extension_autoloader; } } if (class_exists('\\Twig_Extensions_Autoloader')) { \Twig_Extensions_Autoloader::register(); foreach (self::$twigExtensions as $ext) { $extension = is_object($ext) ? $ext : new $ext(); $this->twigEnvironment->addExtension($extension); } } } return $this->twigEnvironment; }