localization.py 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import json
  2. import os
  3. from modules import errors, scripts
  4. localizations = {}
  5. def list_localizations(dirname):
  6. localizations.clear()
  7. for file in os.listdir(dirname):
  8. fn, ext = os.path.splitext(file)
  9. if ext.lower() != ".json":
  10. continue
  11. localizations[fn] = [os.path.join(dirname, file)]
  12. for file in scripts.list_scripts("localizations", ".json"):
  13. fn, ext = os.path.splitext(file.filename)
  14. if fn not in localizations:
  15. localizations[fn] = []
  16. localizations[fn].append(file.path)
  17. def localization_js(current_localization_name: str) -> str:
  18. fns = localizations.get(current_localization_name, None)
  19. data = {}
  20. if fns is not None:
  21. for fn in fns:
  22. try:
  23. with open(fn, "r", encoding="utf8") as file:
  24. data.update(json.load(file))
  25. except Exception:
  26. errors.report(f"Error loading localization from {fn}", exc_info=True)
  27. return f"window.localization = {json.dumps(data)}"