Ejemplo n.º 1
0
    public function testReplace()
    {
        $catalogue = new MessageCatalogue('en', array('domain1' => array('foo' => 'foo'), 'domain2' => array('bar' => 'bar')));
        $catalogue->replace($messages = array('foo1' => 'foo1'), 'domain1');

        $this->assertEquals($messages, $catalogue->all('domain1'));
    }
Ejemplo n.º 2
0
 /**
  * @param MessageCatalogue $messageCatalogue
  *
  * @return bool
  */
 protected function validateAndFilter(MessageCatalogue $messageCatalogue)
 {
     $allMessages = $messageCatalogue->all();
     $notTranslatedKeys = [];
     $isEmpty = true;
     foreach ($allMessages as $domain => $messages) {
         foreach ($messages as $key => $value) {
             try {
                 $result = $this->validateMessage($key, $value);
             } catch (\Exception $e) {
                 $result = false;
                 $notTranslatedKeys[$domain][] = $key;
             }
             if ($result === false) {
                 $messages[$key] = false;
                 continue;
             }
         }
         $cleanMessages = array_filter($messages);
         $messageCatalogue->replace($cleanMessages, $domain);
         $isEmpty = $isEmpty && empty($cleanMessages);
     }
     foreach ($notTranslatedKeys as $domain => $messages) {
         $this->logger->error(sprintf('  skipped not translated keys in "%s" domain', $domain));
         foreach ($messages as $message) {
             $this->logger->info('   - ' . $message);
         }
     }
     return $isEmpty;
 }