From 69fadf586e3b5844ef581bc449794d7c095bcfc8 Mon Sep 17 00:00:00 2001 From: uau Date: Tue, 16 May 2006 18:09:14 +0000 Subject: Add tool to check MPlayer translation files for conflicting arguments and extra/missing translation strings. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@18523 b3059339-0415-0410-9bf9-f77b7e298cf2 --- TOOLS/mphelp_check.py | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100755 TOOLS/mphelp_check.py (limited to 'TOOLS') diff --git a/TOOLS/mphelp_check.py b/TOOLS/mphelp_check.py new file mode 100755 index 0000000000..cc306e3de0 --- /dev/null +++ b/TOOLS/mphelp_check.py @@ -0,0 +1,66 @@ +#!/usr/bin/python + +# Tool to compare MPlayer translation files against a base file. Reports +# conflicting arguments, extra strings not present in the base file and +# (optionally) missing strings. + +# Written by Uoti Urpala + +import sys +import re + +def parse(filename): + r = {} + f = open(filename) + it = iter(f) + cur = '' + for line in it: + line = line.strip() + if not line.startswith('#define'): + while line and line[-1] == '\\': + line = it.next().strip() + continue + _, name, value = line.split(None, 2) + value = value.strip('"') + while line[-1] == '\\': + line = it.next().strip() + value += line.rstrip('\\').strip('"') + r[name] = value + f.close() + return r + +def compare(base, other, show_missing=False): + r = re.compile('%[^diouxXeEfFgGaAcsPn%]*[diouxXeEfFgGaAcsPn%]') + missing = [] + for key in base: + if key not in other: + missing.append(key) + continue + if re.findall(r, base[key]) != re.findall(r, other[key]): + print 'Mismatch: ', key + print base[key] + print other[key] + print + del other[key] + if other: + extra = other.keys() + extra.sort() + print 'Extra: ', ' '.join(extra) + if show_missing and missing: + missing.sort() + print 'Missing: ', ' '.join(missing) + +if len(sys.argv) < 3: + print 'Usage:\n'+sys.argv[0]+' [-missing] base_helpfile otherfile1 '\ + '[otherfile2 ...]' + sys.exit(1) +i = 1 +show_missing = False +if sys.argv[i] == '-missing': + show_missing = True + i = 2 +base = parse(sys.argv[i]) +for filename in sys.argv[i+1:]: + print '*****', filename + compare(base, parse(filename), show_missing) + print '\n\n\n' -- cgit v1.2.3