12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- <?php
- /*
- * This file is part of the symfony package.
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- /**
- * @package symfony
- * @subpackage i18n
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- * @version SVN: $Id: sfI18nApplicationExtract.class.php 14872 2009-01-19 08:32:06Z fabien $
- */
- class sfI18nApplicationExtract extends sfI18nExtract
- {
- protected $extractObjects = array();
- /**
- * Configures the current extract object.
- */
- public function configure()
- {
- $this->extractObjects = array();
- // Modules
- $moduleNames = sfFinder::type('dir')->maxdepth(0)->relative()->in(sfConfig::get('sf_app_module_dir'));
- foreach ($moduleNames as $moduleName)
- {
- $this->extractObjects[] = new sfI18nModuleExtract($this->i18n, $this->culture, array('module' => $moduleName));
- }
- }
- /**
- * Extracts i18n strings.
- *
- * This class must be implemented by subclasses.
- */
- public function extract()
- {
- foreach ($this->extractObjects as $extractObject)
- {
- $extractObject->extract();
- }
- // Add global templates
- $this->extractFromPhpFiles(sfConfig::get('sf_app_template_dir'));
- // Add global librairies
- $this->extractFromPhpFiles(sfConfig::get('sf_app_lib_dir'));
- }
- /**
- * Gets the current i18n strings.
- */
- public function getCurrentMessages()
- {
- return array_unique(array_merge($this->currentMessages, $this->aggregateMessages('getCurrentMessages')));
- }
- /**
- * Gets all i18n strings seen during the extraction process.
- */
- public function getAllSeenMessages()
- {
- return array_unique(array_merge($this->allSeenMessages, $this->aggregateMessages('getAllSeenMessages')));
- }
- protected function aggregateMessages($method)
- {
- $messages = array();
- foreach ($this->extractObjects as $extractObject)
- {
- $messages = array_merge($messages, $extractObject->$method());
- }
- return array_unique($messages);
- }
- }
|