diff options
Diffstat (limited to 'contrib/fix_translations.py')
-rwxr-xr-x | contrib/fix_translations.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/contrib/fix_translations.py b/contrib/fix_translations.py new file mode 100755 index 000000000..0597b54c2 --- /dev/null +++ b/contrib/fix_translations.py @@ -0,0 +1,56 @@ +#!/usr/bin/python3 +# SPDX-License-Identifier: LGPL-2.1+ + +import sys +import os +import subprocess + + +def _do_msgattrib(fn): + argv = [ + 'msgattrib', + '--no-location', + '--translated', + '--no-wrap', + '--sort-output', + fn, + '--output-file=' + fn, + ] + ret = subprocess.run(argv) + if ret.returncode != 0: + return + + +def _do_nukeheader(fn): + clean_lines = [] + with open(fn) as f: + lines = f.readlines() + for line in lines: + if line.startswith('"POT-Creation-Date:'): + continue + if line.startswith('"PO-Revision-Date:'): + continue + if line.startswith('"Last-Translator:'): + continue + clean_lines.append(line) + with open(fn, 'w') as f: + f.writelines(clean_lines) + + +def _process_file(fn): + _do_msgattrib(fn) + _do_nukeheader(fn) + + +if __name__ == '__main__': + if len(sys.argv) == 1: + print('path required') + sys.exit(1) + try: + dirname = sys.argv[1] + for fn in os.listdir(dirname): + if fn.endswith('.po'): + _process_file(os.path.join(dirname, fn)) + except NotADirectoryError as _: + print('path required') + sys.exit(2) |