Chris@0: Chris@0: * Chris@0: * For the full copyright and license information, please view the LICENSE Chris@0: * file that was distributed with this source code. Chris@0: */ Chris@0: Chris@0: namespace Symfony\Component\Translation\Dumper; Chris@0: Chris@17: use Symfony\Component\Translation\Exception\LogicException; Chris@0: use Symfony\Component\Translation\MessageCatalogue; Chris@0: use Symfony\Component\Translation\Util\ArrayConverter; Chris@0: use Symfony\Component\Yaml\Yaml; Chris@0: Chris@0: /** Chris@0: * YamlFileDumper generates yaml files from a message catalogue. Chris@0: * Chris@0: * @author Michel Salib Chris@0: */ Chris@0: class YamlFileDumper extends FileDumper Chris@0: { Chris@14: private $extension; Chris@14: Chris@14: public function __construct(/**string */$extension = 'yml') Chris@14: { Chris@14: $this->extension = $extension; Chris@14: } Chris@14: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@17: public function formatCatalogue(MessageCatalogue $messages, $domain, array $options = []) Chris@0: { Chris@0: if (!class_exists('Symfony\Component\Yaml\Yaml')) { Chris@0: throw new LogicException('Dumping translations in the YAML format requires the Symfony Yaml component.'); Chris@0: } Chris@0: Chris@0: $data = $messages->all($domain); Chris@0: Chris@0: if (isset($options['as_tree']) && $options['as_tree']) { Chris@0: $data = ArrayConverter::expandToTree($data); Chris@0: } Chris@0: Chris@0: if (isset($options['inline']) && ($inline = (int) $options['inline']) > 0) { Chris@0: return Yaml::dump($data, $inline); Chris@0: } Chris@0: Chris@0: return Yaml::dump($data); Chris@0: } Chris@0: Chris@0: /** Chris@0: * {@inheritdoc} Chris@0: */ Chris@0: protected function getExtension() Chris@0: { Chris@14: return $this->extension; Chris@0: } Chris@0: }