- translator = header['Last-Translator'].split('<')[0].strip()
- try:
- prop["translator"] = translator.decode(charset).encode('ascii','xmlcharrefreplace')
- except LookupError:
- prop["translator"] = translator
-
- p_in, p_out = os.popen4("msgfmt --statistics -o %s %s" % (gmofile, pofile))
- extract_number(p_out.readline(),
- ('translated', 'fuzzy', 'untranslated'),
- prop)
+ prop["translator"] = header['Last-Translator'].split('<')[0].strip()
+
+ msg = subprocess.check_output(["msgfmt", "--statistics",
+ "-o", gmofile, # FIXME: do we really want a gmofile as side-effect?
+ pofile], stderr=subprocess.STDOUT)
+ if sys.version_info[0] > 2:
+ msg = msg.decode('utf8')
+ extract_number(msg, ('translated', 'fuzzy', 'untranslated'), prop)