| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\Translation\Dumper;use Symfony\Component\Translation\MessageCatalogue;/** * QtFileDumper generates ts files from a message catalogue. * * @author Benjamin Eberlei <kontakt@beberlei.de> */class QtFileDumper extends FileDumper{    /**     * {@inheritdoc}     */    public function formatCatalogue(MessageCatalogue $messages, string $domain, array $options = [])    {        $dom = new \DOMDocument('1.0', 'utf-8');        $dom->formatOutput = true;        $ts = $dom->appendChild($dom->createElement('TS'));        $context = $ts->appendChild($dom->createElement('context'));        $context->appendChild($dom->createElement('name', $domain));        foreach ($messages->all($domain) as $source => $target) {            $message = $context->appendChild($dom->createElement('message'));            $metadata = $messages->getMetadata($source, $domain);            if (isset($metadata['sources'])) {                foreach ((array) $metadata['sources'] as $location) {                    $loc = explode(':', $location, 2);                    $location = $message->appendChild($dom->createElement('location'));                    $location->setAttribute('filename', $loc[0]);                    if (isset($loc[1])) {                        $location->setAttribute('line', $loc[1]);                    }                }            }            $message->appendChild($dom->createElement('source', $source));            $message->appendChild($dom->createElement('translation', $target));        }        return $dom->saveXML();    }    /**     * {@inheritdoc}     */    protected function getExtension()    {        return 'ts';    }}
 |