localization.py 1019 B

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