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 Wordfast translation memory file 
 24   
 25  see: http://translate.sourceforge.net/wiki/toolkit/po2wordfast for examples and  
 26  usage instructions 
 27  """ 
 28   
 29  from translate.storage import po 
 30  from translate.storage import wordfast 
 31  from translate.convert import convert 
 32  from translate.misc import wStringIO 
 33  import os 
 34   
 36 -    def convertfiles(self, inputfile, wffile, sourcelanguage='en', targetlanguage=None): 
  48 -def convertpo(inputfile, outputfile, templatefile, sourcelanguage='en', targetlanguage=None): 
  49      """reads in stdin using fromfileclass, converts using convertorclass, writes to stdout""" 
 50      convertor = po2wordfast() 
 51      outputfile.wffile.header.targetlang = targetlanguage 
 52      convertor.convertfiles(inputfile, outputfile.wffile, sourcelanguage, targetlanguage) 
 53      return 1 
  54   
 56 -    def __init__(self, filename, mode=None): 
  57          """initialises wfmultifile from a seekable inputfile or writable outputfile""" 
 58          self.filename = filename 
 59          if mode is None: 
 60              if os.path.exists(filename): 
 61                  mode = 'r' 
 62              else: 
 63                  mode = 'w' 
 64          self.mode = mode 
 65          self.multifilename = os.path.splitext(filename)[0] 
 66          self.wffile = wordfast.WordfastTMFile() 
  67   
 69          """returns a pseudo-file object for the given subfile""" 
 70          def onclose(contents): 
 71              pass 
  72          outputfile = wStringIO.CatchStringOutput(onclose) 
 73          outputfile.filename = subfile 
 74          outputfile.wffile = self.wffile 
 75          return outputfile 
 88      formats = {"po": ("txt", convertpo), ("po", "txt"): ("txt", convertpo)} 
 89      archiveformats = {(None, "output"): wfmultifile, (None, "template"): wfmultifile} 
 90      parser = WfOptionParser(formats, usepots=False, usetemplates=False, description=__doc__, archiveformats=archiveformats) 
 91      parser.add_option("-l", "--language", dest="targetlanguage", default=None,  
 92                        help="set target language code (e.g. af-ZA) [required]", metavar="LANG") 
 93      parser.add_option("", "--source-language", dest="sourcelanguage", default='en',  
 94                        help="set source language code (default: en)", metavar="LANG") 
 95      parser.passthrough.append("sourcelanguage") 
 96      parser.passthrough.append("targetlanguage") 
 97      parser.run(argv) 
  98   
 99   
100  if __name__ == '__main__': 
101      main() 
102