view artifacts/contrib/find-obsolete-i18n-strings.py @ 9759:a83029cc7e6a 3.2.x

Do not require identical values when searching for a main value E.g. a value obtained using WQ.getRawValue() is not necessarily numerically identical, but nevertheless to be considered equal, to a matching Q main value. Fixes wrong descriptions in the result of a water level calculation, where not finding a matching main value led to the value being used as description instead of the name of the matching main value.
author Tom Gottfried <tom@intevation.de>
date Thu, 10 Nov 2022 15:39:07 +0100
parents 26971f97105f
children
line wrap: on
line source
#!/usr/bin/env python

import os
import re
import sys

KEY_RE = re.compile(r"^\s*([^\s=]+)\s*=.*$")

def main():
    content = []
    for root, dirs, files in os.walk('.'):
        for f in files:
            if not (f.endswith(".java") or f.endswith(".xml")):
                continue
            p = os.path.join(root, f)
            with open(p, "rb") as jf:
                content.append(jf.read())

    content = ''.join(content)

    for arg in sys.argv[1:]:
        with open(arg, "rb") as prop:
            for line in prop:
                m = KEY_RE.match(line)
                if not m:
                    continue
                key = m.group(1)
                if content.find(key) == -1:
                    print key

if __name__ == "__main__":
    main()

http://dive4elements.wald.intevation.org