Ejemplo n.º 1
0
 /**
  * @see sfTask
  */
 public function execute($arguments = array(), $options = array())
 {
     $this->logSection('i18n', sprintf('extracting i18n strings for the "%s" application', $arguments['application']));
     // get i18n configuration from factories.yml
     $config = sfFactoryConfigHandler::getConfiguration($this->configuration->getConfigPaths('config/factories.yml'));
     $class = $config['i18n']['class'];
     $params = $config['i18n']['param'];
     unset($params['cache']);
     $extract = new sfI18nApplicationExtract(new $class($this->configuration, new sfNoCache(), $params), $arguments['culture']);
     $extract->extract();
     $this->logSection('i18n', sprintf('found "%d" new i18n strings', count($extract->getNewMessages())));
     $this->logSection('i18n', sprintf('found "%d" old i18n strings', count($extract->getOldMessages())));
     if ($options['display-new']) {
         $this->logSection('i18n', sprintf('display "%d" new i18n strings', count($extract->getOldMessages())));
         foreach ($extract->getNewMessages() as $message) {
             $this->log('               ' . $message . "\n");
         }
     }
     if ($options['auto-save']) {
         $this->logSection('i18n', 'saving new i18n strings');
         $extract->saveNewMessages();
     }
     if ($options['display-old']) {
         $this->logSection('i18n', sprintf('display "%d" old i18n strings', count($extract->getOldMessages())));
         foreach ($extract->getOldMessages() as $message) {
             $this->log('               ' . $message . "\n");
         }
     }
     if ($options['auto-delete']) {
         $this->logSection('i18n', 'deleting old i18n strings');
         $extract->deleteOldMessages();
     }
 }
 /**
  * @see sfTask
  */
 public function execute($arguments = array(), $options = array())
 {
     $this->logSection('i18n', sprintf('extracting i18n strings for the "%s" application', $options['application']));
     // get i18n configuration from factories.yml
     $config = sfFactoryConfigHandler::getConfiguration($this->configuration->getConfigPaths('config/factories.yml'));
     $class = $config['i18n']['class'];
     $params = $config['i18n']['param'];
     unset($params['cache']);
     $extract = new sfI18nApplicationExtract(new $class($this->configuration, new sfNoCache(), $params), $arguments['culture']);
     $extract->extract();
     $this->logSection('i18n', sprintf('found "%d" new i18n strings', count($extract->getNewMessages())));
     $this->logSection('i18n', sprintf('found "%d" old i18n strings', count($extract->getOldMessages())));
     if ($options['display-new']) {
         $this->logSection('i18n', sprintf('display new i18n strings', count($extract->getOldMessages())));
         foreach ($extract->getNewMessages() as $message) {
             $this->log('               ' . $message . "\n");
         }
     }
     if ($options['auto-save']) {
         $this->logSection('i18n', 'saving new i18n strings');
         $extract->saveNewMessages();
     }
     if ($options['display-old']) {
         $this->logSection('i18n', sprintf('display old i18n strings', count($extract->getOldMessages())));
         foreach ($extract->getOldMessages() as $message) {
             $this->log('               ' . $message . "\n");
         }
     }
     if ($options['auto-delete']) {
         $this->logSection('i18n', 'deleting old i18n strings');
         $extract->deleteOldMessages();
     }
     // Extract plugin strings
     if ($options['plugins']) {
         unset($options['plugins']);
         $pluginNames = sfFinder::type('dir')->maxdepth(0)->relative()->not_name('.')->in(sfConfig::get('sf_plugins_dir'));
         foreach ($pluginNames as $pluginName) {
             $extractPlugin = new sfI18nExtractPluginTask($this->dispatcher, $this->formatter);
             $extractPlugin->setCommandApplication($this->commandApplication);
             $extractPlugin->setConfiguration($this->configuration);
             $ret = $extractPlugin->run(array('plugin' => $pluginName, 'culture' => $arguments['culture']), $options);
             if ($ret) {
                 return $ret;
             }
         }
     }
 }
 public function saveNewMessages()
 {
     $this->messages = $this->getNewMessages();
     parent::saveNewMessages();
 }
 /**
  * Loads old translations currently saved in the message sources.
  *
  * @param sfI18nApplicationExtract $extract
  * @return array of source and target translations
  */
 public function getOldTranslations($extract)
 {
     $oldMessages = array_diff($extract->getCurrentMessages(), $extract->getAllSeenMessages());
     foreach ($this->i18n->getMessageSource()->read() as $catalogue => $translations) {
         foreach ($translations as $key => $value) {
             $allTranslations[$key] = $value[0];
         }
     }
     foreach ($oldMessages as $message) {
         $oldTranslations[$message] = $allTranslations[$message];
     }
     return $oldTranslations;
 }