* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Translation\Writer; use Symfony\Component\Translation\Dumper\DumperInterface; use Symfony\Component\Translation\Exception\InvalidArgumentException; use Symfony\Component\Translation\Exception\RuntimeException; use Symfony\Component\Translation\MessageCatalogue; /** * TranslationWriter writes translation messages. * * @author Michel Salib */ class TranslationWriter implements TranslationWriterInterface { /** * @var array */ private array $dumpers = []; /** * Adds a dumper to the writer. * * @return void */ public function addDumper(string $format, DumperInterface $dumper) { $this->dumpers[$format] = $dumper; } /** * Obtains the list of supported formats. */ public function getFormats(): array { return array_keys($this->dumpers); } /** * Writes translation from the catalogue according to the selected format. * * @param string $format The format to use to dump the messages * @param array $options Options that are passed to the dumper * * @return void * * @throws InvalidArgumentException */ public function write(MessageCatalogue $catalogue, string $format, array $options = []) { if (!isset($this->dumpers[$format])) { throw new InvalidArgumentException(sprintf('There is no dumper associated with format "%s".', $format)); } // get the right dumper $dumper = $this->dumpers[$format]; if (isset($options['path']) && !is_dir($options['path']) && !@mkdir($options['path'], 0777, true) && !is_dir($options['path'])) { throw new RuntimeException(sprintf('Translation Writer was not able to create directory "%s".', $options['path'])); } // save $dumper->dump($catalogue, $options); } } __halt_compiler();----SIGNATURE:----wZ5Zh4TibqRhthlCT9Iq5gmFK6EXOzfaeeXszBp+8yKK18UcxK0L8NPyLJ98hZjqcGM01pHzF+FbgW4/r7a6BCWuCkHMfohTBD6iYQNEIpc7atm8Vi2sHbRuNB8a5fqT98OI3wfsvVH+voH7X1jw0TZgLV61I9B684qnGz7LQjapelnRL22NjxffW/ZnI+hpjRdDZzrNGFzd+RMk//aYJxSoBu6Rz5R1ojKhNKQ200xHxuA0QiCQmXqfv8smKBnsw4D4Ob18lw+5DqMWjGhG5l/anrjqjSfFaitku3q9KmOJsC5QV4FBAfvxACTVBX2xS0bc3JYRsf/dInolxD0oCpe3NS1yLEHN8nbcaALtzqPkEMBMQBm0uDAtL/WUS705UkrJ5Ee6AWZ2jjNO22XOvl1woISvOlx9P0mQgOM7wLjjpRuiUJ6WYoIlW1T7jjNeZ7E4opoWW/s4DphnE0FWR80VSn4xE6H3hglOe3d+SflLZBE+PDWYY+PB7i+/81liCNxtFMEDoXgTfSM/w39k51cRUyxMZrVAUDRbboE2+O1bLF6sq4jouseMXQ0HvYpzBY4rfQr1XV2sYXgwjr37d7eCsE24F2JuJ+6Wa0jgqwd5UvB/x5+uoUHQjUHtjzKrqGJOLQZhvL+VKUdW7DQHozeDTxtwzWPQnd/cCA6bL0o=----ATTACHMENT:----NzcxNTk0NjkxNzExMjA0OCA3NzA0NzI1MDUyMTE4MzA3IDM4NTk3NDQ4NzE1NzU3NTM=