view artifacts/contrib/check-i18n-properties.py @ 6103:4bbf2ef9bdd8

Themes: Reunited the small parts of default and second theme to default.xml and second.xml again to have valid XML. This is a bit of a pity because the small parts had a better understandable structure. To generate the overview use: $ xsltproc \ contrib/themes2html.xsl \ doc/conf/themes.xml \ > themes.xhtml To make this work you have to create a symlink in conf to itself: $ (cd doc/conf && ln -s . conf) TODO: We have to introduce a EntityResolver in the server code to make the inclusion independent of the current working dir of the server.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sat, 25 May 2013 20:55:11 +0200
parents 5aa05a7a34b7
children
line wrap: on
line source
#!/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