def addalttrans(self, txt, origin=None, lang=None, sourcetxt=None, matchquality=None): """Adds an alt-trans tag and alt-trans components to the unit. @type txt: String @param txt: Alternative translation of the source text. """ #TODO: support adding a source tag ad match quality attribute. At # the source tag is needed to inject fuzzy matches from a TM. if isinstance(txt, str): txt = txt.decode("utf-8") alttrans = etree.SubElement(self.xmlelement, self.namespaced("alt-trans")) lisa.setXMLspace(alttrans, "preserve") if sourcetxt: if isinstance(sourcetxt, str): sourcetxt = sourcetxt.decode("utf-8") altsource = etree.SubElement(alttrans, self.namespaced("source")) altsource.text = sourcetxt alttarget = etree.SubElement(alttrans, self.namespaced("target")) alttarget.text = txt if matchquality: alttrans.set("match-quality", matchquality) if origin: alttrans.set("origin", origin) if lang: lisa.setXMLlang(alttrans, lang)
def addheaderunit(self, target, filename): unit = self.addsourceunit(target, filename, True) unit.target = target unit.xmlelement.set("restype", "x-gettext-domain-header") unit.xmlelement.set("approved", "no") lisa.setXMLspace(unit.xmlelement, "preserve") return unit
def addunit(self, unit, new=True): """Adds the given unit to the body node.""" super(RESXFile, self).addunit(unit, new) lisa.setXMLspace(unit.xmlelement, "preserve") if unit.getid() is None: self._messagenum += 1 unit.setid(u"%s" % unit.source.strip(' ')) return unit
def test_xml_space(self): """Test for the correct handling of xml:space attributes.""" xlfsource = self.skeleton \ % '''<trans-unit id="1" xml:space="preserve"> <source> File 1 </source> </trans-unit>''' xlifffile = xliff.xlifffile.parsestring(xlfsource) assert xlifffile.units[0].source == " File 1 " root_node = xlifffile.document.getroot() lisa.setXMLspace(root_node, "preserve") assert xlifffile.units[0].source == " File 1 " lisa.setXMLspace(root_node, "default") assert xlifffile.units[0].source == " File 1 " xlfsource = self.skeleton \ % '''<trans-unit id="1" xml:space="default"> <source> File 1 </source> </trans-unit>''' xlifffile = xliff.xlifffile.parsestring(xlfsource) assert xlifffile.units[0].source == "File 1" root_node = xlifffile.document.getroot() lisa.setXMLspace(root_node, "preserve") assert xlifffile.units[0].source == "File 1" lisa.setXMLspace(root_node, "default") assert xlifffile.units[0].source == "File 1" xlfsource = self.skeleton \ % '''<trans-unit id="1"> <source> File 1 </source> </trans-unit>''' # we currently always normalize as default behaviour for xliff xlifffile = xliff.xlifffile.parsestring(xlfsource) assert xlifffile.units[0].source == "File 1" root_node = xlifffile.document.getroot() lisa.setXMLspace(root_node, "preserve") assert xlifffile.units[0].source == "File 1" lisa.setXMLspace(root_node, "default") assert xlifffile.units[0].source == "File 1" xlfsource = self.skeleton \ % '''<trans-unit id="1"> <source> File 1 </source> </trans-unit>''' # we currently always normalize as default behaviour for xliff xlifffile = xliff.xlifffile.parsestring(xlfsource) assert xlifffile.units[0].source == "File 1" root_node = xlifffile.document.getroot() lisa.setXMLspace(root_node, "preserve") assert xlifffile.units[0].source == "File 1" lisa.setXMLspace(root_node, "default") assert xlifffile.units[0].source == "File 1"
def __init__(self, source, empty=False, **kwargs): """Override the constructor to set xml:space="preserve".""" super(xliffunit, self).__init__(source, empty, **kwargs) if empty: return lisa.setXMLspace(self.xmlelement, "preserve")
def _insert_header(self, header): header.xmlelement.set("restype", "x-gettext-domain-header") header.xmlelement.set("approved", "no") lisa.setXMLspace(header.xmlelement, "preserve") self.addunit(header)