8000 Fix wrong value in file id attribute for Xliff 2.0 · symfony/symfony@8bf12f8 · GitHub
[go: up one dir, main page]

Skip to content

Commit 8bf12f8

Browse files
deguifnicolas-grekas
authored andcommitted
Fix wrong value in file id attribute for Xliff 2.0
1 parent d4f4d8a commit 8bf12f8

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

src/Symfony/Component/Translation/Dumper/XliffFileDumper.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,11 @@ private function dumpXliff2($defaultLocale, MessageCatalogue $messages, $domain,
141141
$xliff->setAttribute('trgLang', str_replace('_', '-', $messages->getLocale()));
142142

143143
$xliffFile = $xliff->appendChild($dom->createElement('file'));
144-
$xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale());
144+
if (MessageCatalogue::INTL_DOMAIN_SUFFIX === substr($domain, -($suffixLength = \strlen(MessageCatalogue::INTL_DOMAIN_SUFFIX)))) {
145+
$xliffFile->setAttribute('id', substr($domain, 0, -$suffixLength).'.'.$messages->getLocale());
146+
} else {
147+
$xliffFile->setAttribute('id', $domain.'.'.$messages->getLocale());
148+
}
145149

146150
foreach ($messages->all($domain) as $source => $target) {
147151
$translation = $dom->createElement('unit');

src/Symfony/Component/Translation/Tests/Dumper/XliffFileDumperTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,21 @@ public function testFormatCatalogueXliff2()
5454
);
5555
}
5656

57+
public function testFormatIcuCatalogueXliff2()
58+
{
59+
$catalogue = new MessageCatalogue('en_US');
60+
$catalogue->add([
61+
'foo' => 'bar',
62+
], 'messages'.MessageCatalogue::INTL_DOMAIN_SUFFIX);
63+
64+
$dumper = new XliffFileDumper();
65+
66+
$this->assertStringEqualsFile(
67+
__DIR__.'/../fixtures/resources-2.0+intl-icu.xlf',
68+
$dumper->formatCatalogue($catalogue, 'messages'.MessageCatalogue::INTL_DOMAIN_SUFFIX, ['default_locale' => 'fr_FR', 'xliff_version' => '2.0'])
69+
);
70+
}
71+
5772
public function testFormatCatalogueWithCustomToolInfo()
5873
{
5974
$options = [
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<xliff xmlns="urn:oasis:names:tc:xliff:document:2.0" version="2.0" srcLang="fr-FR" trgLang="en-US">
3+
<file id="messages.en_US">
4+
<unit id="LCa0a2j" name="foo">
5+
<segment>
6+
<source>foo</source>
7+
<target>bar</target>
8+
</segment>
9+
</unit>
10+
</file>
11+
</xliff>

0 commit comments

Comments
 (0)
0