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):
47
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
76
77
86
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