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):
59
60 -def convertpo(inputfile, outputfile, templatefile, sourcelanguage='en', targetlanguage=None):
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
89
90
99
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