예제 #1
0
    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)
예제 #2
0
파일: xliff.py 프로젝트: cc-archive/pootle
    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)
예제 #3
0
 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
예제 #4
0
파일: resx.py 프로젝트: sjhale/translate
 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
예제 #5
0
 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
예제 #6
0
    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"
예제 #7
0
 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")
예제 #8
0
파일: xliff.py 프로젝트: cc-archive/pootle
 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")
예제 #9
0
 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)
예제 #10
0
    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"