annotate flys-artifacts/contrib/check-i18n-properties.py @ 5622:b28a6d05e969

Add a new mechanism in mapfish print call to add arbitary data maps Data properties are identified by starting with mapfish-data and they are then split in info value pairs where info can be the description of the information and value the value of the information to be transported in the data map.
author Andre Heinecke <aheinecke@intevation.de>
date Tue, 09 Apr 2013 19:04:32 +0200
parents daf413420cf7
children
rev   line source
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 #!/usr/bin/env python
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import sys
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import re
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6 SPLIT_RE = re.compile(r"^\s*([^=]+)=\s*(.*)\s*")
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 def load_properties_file(filename):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 props = {}
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10 with open(filename, "r") as f:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 while True:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12 line = f.readline()
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 if not line: break
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 m = SPLIT_RE.match(line)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15 if not m: continue
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 k = m.group(1).strip()
2627
daf413420cf7 check-i18n-properties.py: Checked in unsaved version.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2625
diff changeset
17 v = m.group(2).strip()
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 if k in props:
2627
daf413420cf7 check-i18n-properties.py: Checked in unsaved version.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 2625
diff changeset
19 print >> sys.stderr, "'%s' found more than once in '%s'." % (
2625
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 k, filename)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 else:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 props[k] = v
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23 return props
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 def main():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 props = [(arg, load_properties_file(arg)) for arg in sys.argv[1:]]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 l = len(props)
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 for i in range(0, l):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 a = props[i][1]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 for j in range(i+1, l):
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 b = props[j][1]
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 for k in a.iterkeys():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 if k not in b:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37 print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 k, props[i][0], props[j][0])
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 for k in b.iterkeys():
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 if k not in a:
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41 print >> sys.stderr, "'%s' found in '%s' but not in '%s'." % (
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 k, props[j][0], props[i][0])
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 if __name__ == '__main__':
72ce02d1a568 Added consistency checker for i18n properties files.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45 main()

http://dive4elements.wald.intevation.org