1   
  2   
  3   
  4   
  5   
  6   
  7   
  8   
  9   
 10   
 11   
 12   
 13   
 14   
 15   
 16   
 17   
 18   
 19   
 20   
 21   
 22   
 23  """convert Gettext PO localization files to a TMX (Translation Memory eXchange) file 
 24   
 25  see: http://translate.sourceforge.net/wiki/toolkit/po2tmx for examples and  
 26  usage instructions 
 27  """ 
 28   
 29  from translate.storage import po 
 30  from translate.storage import tmx 
 31  from translate.convert import convert 
 32  from translate.misc import wStringIO 
 33  import os 
 34   
 36 -    def convertfile(self, inputfile, sourcelanguage='en', targetlanguage=None): 
  48       
 49 -    def convertfiles(self, inputfile, tmxfile, sourcelanguage='en', targetlanguage=None): 
  60 -def convertpo(inputfile, outputfile, templatefile, sourcelanguage='en', targetlanguage=None): 
  61      """reads in stdin using fromfileclass, converts using convertorclass, writes to stdout""" 
 62      convertor = po2tmx() 
 63      convertor.convertfiles(inputfile, outputfile.tmxfile, sourcelanguage, targetlanguage) 
 64      return 1 
  65   
 67 -    def __init__(self, filename, mode=None): 
  68          """initialises tmxmultifile from a seekable inputfile or writable outputfile""" 
 69          self.filename = filename 
 70          if mode is None: 
 71              if os.path.exists(filename): 
 72                  mode = 'r' 
 73              else: 
 74                  mode = 'w' 
 75          self.mode = mode 
 76   
 77          self.multifilename = os.path.splitext(filename)[0] 
 78   
 79          self.tmxfile = tmx.tmxfile() 
  80   
 82          """returns a pseudo-file object for the given subfile""" 
 83          def onclose(contents): 
 84              pass 
  85          outputfile = wStringIO.CatchStringOutput(onclose) 
 86          outputfile.filename = subfile 
 87          outputfile.tmxfile = self.tmxfile 
 88          return outputfile 
100 -def main(argv=None): 
 101      formats = {"po": ("tmx", convertpo), ("po", "tmx"): ("tmx", convertpo)} 
102      archiveformats = {(None, "output"): tmxmultifile, (None, "template"): tmxmultifile} 
103      parser = TmxOptionParser(formats, usepots=False, usetemplates=False, description=__doc__, archiveformats=archiveformats) 
104      parser.add_option("-l", "--language", dest="targetlanguage", default=None,  
105              help="set target language code (e.g. af-ZA) [required]", metavar="LANG") 
106      parser.add_option("", "--source-language", dest="sourcelanguage", default='en',  
107              help="set source language code (default: en)", metavar="LANG") 
108      parser.passthrough.append("sourcelanguage") 
109      parser.passthrough.append("targetlanguage") 
110      parser.run(argv) 
 111   
112   
113  if __name__ == '__main__': 
114      main() 
115