[XLIFF 2.0] added support for target attributes.
This commit is contained in:
parent
ace6042d89
commit
7af4fc7ef8
@ -103,7 +103,10 @@ class XliffFileLoader implements LoaderInterface
|
||||
$metadata['notes'] = $notes;
|
||||
}
|
||||
if (isset($translation->target) && $translation->target->attributes()) {
|
||||
$metadata['target-attributes'] = $translation->target->attributes();
|
||||
$metadata['target-attributes'] = array();
|
||||
foreach ($translation->target->attributes() as $key => $value) {
|
||||
$metadata['target-attributes'][$key] = (string) $value;
|
||||
}
|
||||
}
|
||||
|
||||
$catalogue->setMetadata((string) $source, $metadata, $domain);
|
||||
@ -127,9 +130,19 @@ class XliffFileLoader implements LoaderInterface
|
||||
|
||||
// If the xlf file has another encoding specified, try to convert it because
|
||||
// simple_xml will always return utf-8 encoded values
|
||||
$target = $this->utf8ToCharset((string) (isset($translation->target) ? $translation->target : $source), $encoding);
|
||||
$target = $this->utf8ToCharset((string) (isset($segment->target) ? $segment->target : $source), $encoding);
|
||||
|
||||
$catalogue->set((string) $source, $target, $domain);
|
||||
|
||||
$metadata = array();
|
||||
if (isset($segment->target) && $segment->target->attributes()) {
|
||||
$metadata['target-attributes'] = array();
|
||||
foreach ($segment->target->attributes() as $key => $value) {
|
||||
$metadata['target-attributes'][$key] = (string) $value;
|
||||
}
|
||||
}
|
||||
|
||||
$catalogue->setMetadata((string) $source, $metadata, $domain);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -164,7 +164,7 @@ class XliffFileLoaderTest extends \PHPUnit_Framework_TestCase
|
||||
$this->assertCount(3, $domains['domain1']);
|
||||
$this->assertContainsOnly('string', $catalogue->all('domain1'));
|
||||
|
||||
// Notes aren't assigned to specific segments, but to whole units, so there's no way to do a mapping
|
||||
$this->assertEmpty($catalogue->getMetadata());
|
||||
// target attributes
|
||||
$this->assertEquals(array('target-attributes' => array('order' => 1)), $catalogue->getMetadata('bar', 'domain1'));
|
||||
}
|
||||
}
|
||||
|
@ -10,14 +10,14 @@
|
||||
<group id="1">
|
||||
<unit id="2">
|
||||
<segment>
|
||||
<source>An application to manipulate and process XLIFF documents</source>
|
||||
<source>foo</source>
|
||||
<target>XLIFF 文書を編集、または処理 するアプリケーションです。</target>
|
||||
</segment>
|
||||
</unit>
|
||||
<unit id="3">
|
||||
<segment>
|
||||
<source>XLIFF Data Manager</source>
|
||||
<target>XLIFF データ・マネージャ</target>
|
||||
<source>bar</source>
|
||||
<target order="1">XLIFF データ・マネージャ</target>
|
||||
</segment>
|
||||
</unit>
|
||||
</group>
|
||||
|
Reference in New Issue
Block a user