diff flys-artifacts/contrib/check-i18n-properties.py @ 3651:06a65baae494

merged flys-artifacts/2.9
author Thomas Arendsen Hein <thomas@intevation.de>
date Fri, 28 Sep 2012 12:14:43 +0200
parents daf413420cf7
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/flys-artifacts/contrib/check-i18n-properties.py	Fri Sep 28 12:14:43 2012 +0200
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+
+import sys
+import re
+
+SPLIT_RE = re.compile(r"^\s*([^=]+)=\s*(.*)\s*")
+
+def load_properties_file(filename):
+    props = {}
+    with open(filename, "r") as f:
+        while True:
+            line = f.readline()
+            if not line: break
+            m = SPLIT_RE.match(line)
+            if not m: continue
+            k = m.group(1).strip()
+            v = m.group(2).strip()
+            if k in props:
+                print >> sys.stderr, "'%s' found more than once in '%s'." % (
+                    k, filename)
+            else:
+                props[k] = v
+    return props
+
+def main():
+
+    props = [(arg, load_properties_file(arg)) for arg in sys.argv[1:]]
+
+    l = len(props)
+
+    for i in range(0, l):
+        a = props[i][1]
+        for j in range(i+1, l):
+            b = props[j][1]
+            for k in a.iterkeys():
+                if k not in b:
+                    print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
+                        k, props[i][0], props[j][0])
+            for k in b.iterkeys():
+                if k not in a:
+                    print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
+                        k, props[j][0], props[i][0])
+        
+if __name__ == '__main__':
+    main()

http://dive4elements.wald.intevation.org