"""strings.json und translations/de.json muessen gleich sein; en.json braucht dieselben Schluessel. Anders herum als bei ha-ninlight: dort steht in strings.json Englisch, hier Deutsch - die Oberflaeche dieser Integration ist deutsch, und strings.json ist die Quelle, aus der Home Assistant die Vorgabetexte nimmt. """ from __future__ import annotations import json from pathlib import Path import sys BASE = Path(__file__).parents[1] / "custom_components" / "ninstrip" def keys(data: dict, prefix: str = "") -> set[str]: out: set[str] = set() for key, value in data.items(): out |= keys(value, f"{prefix}{key}.") if isinstance(value, dict) else {f"{prefix}{key}"} return out def main() -> int: strings = json.loads((BASE / "strings.json").read_text(encoding="utf-8")) de = json.loads((BASE / "translations" / "de.json").read_text(encoding="utf-8")) en = json.loads((BASE / "translations" / "en.json").read_text(encoding="utf-8")) if strings != de: print("translations/de.json weicht von strings.json ab") return 1 diff = sorted(keys(strings) ^ keys(en)) if diff: print("en.json und strings.json haben unterschiedliche Schluessel:", diff) return 1 print("Uebersetzungen vollstaendig") return 0 if __name__ == "__main__": sys.exit(main())