localization.py 951 B

12345678910111213141516171819202122232425262728293031323334
  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. localizations[fn] = file.path
  15. def localization_js(current_localization_name: str) -> str:
  16. fn = localizations.get(current_localization_name, None)
  17. data = {}
  18. if fn is not None:
  19. try:
  20. with open(fn, "r", encoding="utf8") as file:
  21. data = json.load(file)
  22. except Exception:
  23. errors.report(f"Error loading localization from {fn}", exc_info=True)
  24. return f"window.localization = {json.dumps(data)}"