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')); }
/** * @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; }