def source(self): """Return source string from a ttkit unit.""" if self.template is not None: # Use target if set, otherwise fall back to source if self.template.target: return rich_to_xliff_string(self.template.rich_target) return rich_to_xliff_string(self.template.rich_source) return rich_to_xliff_string(self.unit.rich_source)
def target(self): """Return target string from a ttkit unit.""" if self.unit is None: return '' if self.unit.target is None: return '' return rich_to_xliff_string(self.unit.rich_target)
def test_bidirectional_xliff_string(self): cases = [ 'foo <x id="INTERPOLATION" equiv-text="{{ angularExpression }}"/> bar', '', 'hello world', 'hello <p>world</p>' ] for string in cases: rich = xliff_string_to_rich(string) self.assertTrue(isinstance(rich, list)) self.assertTrue(isinstance(rich[0], StringElem)) final_string = rich_to_xliff_string(rich) self.assertEqual(string, final_string)
def test_bidirectional_xliff_string(self): cases = [ 'foo <x id="INTERPOLATION" equiv-text="{{ angular }}"/> bar', "", "hello world", "hello <p>world</p>", ] for string in cases: rich = xliff_string_to_rich(string) self.assertIsInstance(rich, list) self.assertIsInstance(rich[0], StringElem) final_string = rich_to_xliff_string(rich) self.assertEqual(string, final_string)
def test_xliff_roundtrip_unknown(self): source = b'''<?xml version='1.0' encoding='UTF-8'?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd"> <file datatype="xml" source-language="en-US" target-language="en-US" original="Translation Test"> <body> <group id="body"> <trans-unit id="1761676329" size-unit="char" translate="yes" xml:space="preserve"> <source>T: <mrk mtype="protected">%s</mrk></source> </trans-unit> </group> </body> </file> </xliff> ''' store = xlifffile.parsestring(source) string = rich_to_xliff_string(store.units[0].rich_source) self.assertEqual('T: <mrk mtype="protected">%s</mrk>', string) store.units[0].rich_source = xliff_string_to_rich(string) self.assertEqual(source, bytes(store))
def test_xliff_roundtrip_unknown(self): source = b'''<?xml version='1.0' encoding='UTF-8'?> <xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd"> <file datatype="xml" source-language="en-US" target-language="en-US" original="Translation Test"> <body> <group id="body"> <trans-unit id="1761676329" size-unit="char" translate="yes" xml:space="preserve"> <source>T: <mrk mtype="protected">%s</mrk></source> </trans-unit> </group> </body> </file> </xliff> ''' store = xlifffile.parsestring(source) string = rich_to_xliff_string(store.units[0].rich_source) self.assertEqual( 'T: <mrk mtype="protected">%s</mrk>', string ) store.units[0].rich_source = xliff_string_to_rich(string) self.assertEqual(source, bytes(store))
def source(self): """Return source string from a ttkit unit.""" if self.template is not None: return rich_to_xliff_string(self.template.rich_target) return rich_to_xliff_string(self.unit.rich_source)