Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 78d7dc4

Browse files
committed
Added -o/--output-file option as per GNU msgfmt to specify the output
file instead of using inputfilename.mo
1 parent 043d5e5 commit 78d7dc4

1 file changed

Lines changed: 18 additions & 9 deletions

File tree

Tools/i18n/msgfmt.py

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,27 @@
1111
Usage: msgfmt.py [OPTIONS] filename.po
1212
1313
Options:
14+
-o file
15+
--output-file=file
16+
Specify the output file to write to. If omitted, output will go to a
17+
file named filename.mo (based off the input file name).
18+
1419
-h
1520
--help
1621
Print this message and exit.
1722
1823
-V
1924
--version
2025
Display version information and exit.
21-
2226
"""
2327

2428
import sys
29+
import os
2530
import getopt
2631
import struct
2732
import array
2833

29-
__version__ = "1.0"
34+
__version__ = "1.1"
3035

3136
MESSAGES = {}
3237

@@ -91,17 +96,18 @@ def generate():
9196

9297

9398

94-
def make(filename):
99+
def make(filename, outfile):
95100
ID = 1
96101
STR = 2
97102

98-
# Compute .mo name from .po name
103+
# Compute .mo name from .po name and arguments
99104
if filename.endswith('.po'):
100105
infile = filename
101-
outfile = filename[:-2] + 'mo'
102106
else:
103107
infile = filename + '.po'
104-
outfile = filename + '.mo'
108+
if outfile is None:
109+
outfile = os.path.splitext(infile)[0] + '.mo'
110+
105111
try:
106112
lines = open(infile).readlines()
107113
except IOError, msg:
@@ -159,7 +165,6 @@ def make(filename):
159165
# Compute output
160166
output = generate()
161167

162-
# Save output
163168
try:
164169
open(outfile,"wb").write(output)
165170
except IOError,msg:
@@ -169,25 +174,29 @@ def make(filename):
169174

170175
def main():
171176
try:
172-
opts, args = getopt.getopt(sys.argv[1:], 'hV', ['help','version'])
177+
opts, args = getopt.getopt(sys.argv[1:], 'hVo:',
178+
['help', 'version', 'output-file='])
173179
except getopt.error, msg:
174180
usage(1, msg)
175181

182+
outfile = None
176183
# parse options
177184
for opt, arg in opts:
178185
if opt in ('-h', '--help'):
179186
usage(0)
180187
elif opt in ('-V', '--version'):
181188
print >> sys.stderr, "msgfmt.py", __version__
182189
sys.exit(0)
190+
elif opt in ('-o', '--output-file'):
191+
outfile = arg
183192
# do it
184193
if not args:
185194
print >> sys.stderr, 'No input file given'
186195
print >> sys.stderr, "Try `msgfmt --help' for more information."
187196
return
188197

189198
for filename in args:
190-
make(filename)
199+
make(filename, outfile)
191200

192201

193202
if __name__ == '__main__':

0 commit comments

Comments
 (0)