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 import os
30
31 from translate.storage import po
32 from translate.storage import tmx
33 from translate.convert import convert
34 from translate.misc import wStringIO
35
36
38
39 - def convertfile(self, inputfile, sourcelanguage='en', targetlanguage=None):
51
52 - def convertfiles(self, inputfile, tmxfile, sourcelanguage='en', targetlanguage=None):
62
63
64 -def convertpo(inputfile, outputfile, templatefile, sourcelanguage='en', targetlanguage=None):
69
70
72
73 - def __init__(self, filename, mode=None):
74 """initialises tmxmultifile from a seekable inputfile or writable outputfile"""
75 self.filename = filename
76 if mode is None:
77 if os.path.exists(filename):
78 mode = 'r'
79 else:
80 mode = 'w'
81 self.mode = mode
82
83 self.multifilename = os.path.splitext(filename)[0]
84
85 self.tmxfile = tmx.tmxfile()
86
88 """returns a pseudo-file object for the given subfile"""
89
90 def onclose(contents):
91 pass
92 outputfile = wStringIO.CatchStringOutput(onclose)
93 outputfile.filename = subfile
94 outputfile.tmxfile = self.tmxfile
95 return outputfile
96
97
107
108
109 -def main(argv=None):
110 formats = {"po": ("tmx", convertpo), ("po", "tmx"): ("tmx", convertpo)}
111 archiveformats = {(None, "output"): tmxmultifile, (None, "template"): tmxmultifile}
112 parser = TmxOptionParser(formats, usepots=False, usetemplates=False, description=__doc__, archiveformats=archiveformats)
113 parser.add_option("-l", "--language", dest="targetlanguage", default=None,
114 help="set target language code (e.g. af-ZA) [required]", metavar="LANG")
115 parser.add_option("", "--source-language", dest="sourcelanguage", default='en',
116 help="set source language code (default: en)", metavar="LANG")
117 parser.passthrough.append("sourcelanguage")
118 parser.passthrough.append("targetlanguage")
119 parser.run(argv)
120
121
122 if __name__ == '__main__':
123 main()
124