Skip to content

Commit 85504de

Browse files
committed
Added option to not add source files to xliff output
1 parent 4c5141c commit 85504de

File tree

2 files changed

+45
-15
lines changed

2 files changed

+45
-15
lines changed

Tests/Translation/Dumper/XliffDumperTest.php

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
namespace JMS\TranslationBundle\Tests\Translation\Dumper;
2020

21+
use JMS\TranslationBundle\Model\FileSource;
2122
use JMS\TranslationBundle\Model\Message;
2223

2324
use JMS\TranslationBundle\Model\MessageCatalogue;
@@ -54,6 +55,23 @@ public function testCdataOutput()
5455
$this->assertEquals($expected, $dumper->dump($catalogue, 'messages'));
5556
}
5657

58+
public function testDumpWithoutSourcesAdded()
59+
{
60+
$catalogue = new MessageCatalogue();
61+
$catalogue->setLocale('en');
62+
63+
$message = new Message('foo');
64+
$message->addSource(new FileSource('/a/b/c/foo/bar', 1, 2));
65+
$message->addSource(new FileSource('bar/baz', 1, 2));
66+
$catalogue->add($message);
67+
68+
$dumper = $this->getDumper();
69+
$dumper->setAddSources(false);
70+
$dumped = $dumper->dump($catalogue, 'messages');
71+
72+
$this->assertEquals($this->getOutput('simple'), $dumped);
73+
}
74+
5775
protected function getDumper()
5876
{
5977
$dumper = new XliffDumper();
@@ -74,4 +92,4 @@ protected function getOutput($key)
7492

7593
return file_get_contents($file);
7694
}
77-
}
95+
}

Translation/Dumper/XliffDumper.php

Lines changed: 26 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ class XliffDumper implements DumperInterface
3434
{
3535
private $sourceLanguage = 'en';
3636
private $addDate = true;
37+
private $addSources = true;
3738

3839
/**
3940
* @param $bool
@@ -43,6 +44,14 @@ public function setAddDate($bool)
4344
$this->addDate = (Boolean) $bool;
4445
}
4546

47+
/**
48+
* @param boolean $addSources
49+
*/
50+
public function setAddSources($addSources)
51+
{
52+
$this->addSources = $addSources;
53+
}
54+
4655
/**
4756
* @param $lang
4857
*/
@@ -115,24 +124,27 @@ public function dump(MessageCatalogue $catalogue, $domain = 'messages')
115124
$target->setAttribute('state', 'new');
116125
}
117126

118-
// As per the OASIS XLIFF 1.2 non-XLIFF elements must be at the end of the <trans-unit>
119-
if ($sources = $message->getSources()) {
120-
foreach ($sources as $source) {
121-
if ($source instanceof FileSource) {
122-
$unit->appendChild($refFile = $doc->createElement('jms:reference-file', $source->getPath()));
127+
if ($this->addSources) {
128+
// As per the OASIS XLIFF 1.2 non-XLIFF elements must be at the end of the <trans-unit>
129+
if ($sources = $message->getSources()) {
130+
foreach ($sources as $source) {
131+
if ($source instanceof FileSource) {
132+
$refFile = $doc->createElement('jms:reference-file', $source->getPath());
133+
$unit->appendChild($refFile);
123134

124-
if ($source->getLine()) {
125-
$refFile->setAttribute('line', $source->getLine());
126-
}
135+
if ($source->getLine()) {
136+
$refFile->setAttribute('line', $source->getLine());
137+
}
127138

128-
if ($source->getColumn()) {
129-
$refFile->setAttribute('column', $source->getColumn());
139+
if ($source->getColumn()) {
140+
$refFile->setAttribute('column', $source->getColumn());
141+
}
142+
143+
continue;
130144
}
131145

132-
continue;
146+
$unit->appendChild($doc->createElementNS('jms:reference', (string) $source));
133147
}
134-
135-
$unit->appendChild($doc->createElementNS('jms:reference', (string) $source));
136148
}
137149
}
138150

@@ -144,4 +156,4 @@ public function dump(MessageCatalogue $catalogue, $domain = 'messages')
144156

145157
return $doc->saveXML();
146158
}
147-
}
159+
}

0 commit comments

Comments
 (0)