1
2
3 from translate.storage import poxliff
4 from translate.storage import test_xliff
5 from translate.misc.multistring import multistring
6
8 UnitClass = poxliff.PoXliffUnit
9
11 """Tests that plurals are handled correctly."""
12 unit = self.UnitClass(multistring(["Cow", "Cows"]))
13 print type(unit.source)
14 print repr(unit.source)
15 assert isinstance(unit.source, multistring)
16 assert unit.source.strings == ["Cow", "Cows"]
17 assert unit.source == "Cow"
18
19 unit.target = ["Koei", "Koeie"]
20 assert isinstance(unit.target, multistring)
21 assert unit.target.strings == ["Koei", "Koeie"]
22 assert unit.target == "Koei"
23
24 unit.target = [u"Sk\u00ear", u"Sk\u00eare"]
25 assert isinstance(unit.target, multistring)
26 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"]
27 assert unit.target.strings == [u"Sk\u00ear", u"Sk\u00eare"]
28 assert unit.target == u"Sk\u00ear"
29
31 """Tests that ids are assigned correctly, especially for plurals"""
32 unit = self.UnitClass("gras")
33 assert not unit.getid()
34 unit.setid("4")
35 assert unit.getid() == "4"
36
37 unit = self.UnitClass(multistring(["shoe", "shoes"]))
38 assert not unit.getid()
39 unit.setid("20")
40 assert unit.getid() == "20"
41 assert unit.units[1].getid() == "20[1]"
42
43 unit.target = ["utshani", "uutshani", "uuutshani"]
44 assert unit.getid() == "20"
45 assert unit.units[1].getid() == "20[1]"
46
48 StoreClass = poxliff.PoXliffFile
49 xliffskeleton = '''<?xml version="1.0" ?>
50 <xliff version="1.1" xmlns="urn:oasis:names:tc:xliff:document:1.1">
51 <file original="filename.po" source-language="en-US" datatype="po">
52 <body>
53 %s
54 </body>
55 </file>
56 </xliff>'''
57
74
76 minixlf = self.xliffskeleton % '''<group restype="x-gettext-plurals">
77 <trans-unit id="1[0]" xml:space="preserve">
78 <source>cow</source>
79 <target>inkomo</target>
80 <note from="po-translator">Zulu translation of program ABC</note>
81 <note from="developer">azoozoo come back!</note>
82 </trans-unit>
83 <trans-unit id="1[1]" xml:space="preserve">
84 <source>cows</source>
85 <target>iinkomo</target>
86 <note from="po-translator">Zulu translation of program ABC</note>
87 <note from="developer">azoozoo come back!</note>
88 </trans-unit>
89 </group>'''
90 xlifffile = self.StoreClass.parsestring(minixlf)
91 assert xlifffile.units[0].getnotes() == "Zulu translation of program ABC\nazoozoo come back!"
92 assert xlifffile.units[0].getnotes("developer") == "azoozoo come back!"
93 assert xlifffile.units[0].getnotes("po-translator") == "Zulu translation of program ABC"
94