translate_ua.py 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import json
  2. import urllib.request
  3. import urllib.parse
  4. import time
  5. import sys
  6. def translate_ru_to_ua(text):
  7. if not text:
  8. return text
  9. try:
  10. url = 'https://translate.googleapis.com/translate_a/single?client=gtx&sl=ru&tl=uk&dt=t&q=' + urllib.parse.quote(text)
  11. req = urllib.request.Request(url, headers={'User-Agent': 'Mozilla/5.0'})
  12. response = urllib.request.urlopen(req)
  13. data = json.loads(response.read().decode('utf-8'))
  14. translated_text = "".join([sentence[0] for sentence in data[0]])
  15. return translated_text
  16. except Exception as e:
  17. print(f"Error translating '{text}': {e}", file=sys.stderr)
  18. return text
  19. def process_dict(d):
  20. for k, v in d.items():
  21. if isinstance(v, dict):
  22. if "ru" in v and "ua" in v:
  23. if v["ru"] == v["ua"] or v["ua"] == "" or "язык" in v["ua"].lower() or "пароль" in v["ua"].lower() or "почт" in v["ua"].lower() or "забыли" in v["ua"].lower():
  24. # Check if actually same or mostly Russian wording
  25. if v["ru"]:
  26. v["ua"] = translate_ru_to_ua(v["ru"])
  27. time.sleep(0.3)
  28. process_dict(v)
  29. if __name__ == "__main__":
  30. with open('src/locales/translations.json', 'r', encoding='utf-8') as f:
  31. data = json.load(f)
  32. process_dict(data)
  33. with open('src/locales/translations.json', 'w', encoding='utf-8') as f:
  34. json.dump(data, f, ensure_ascii=False, indent=2)
  35. print("Done")