#!/usr/bin/env python3 # -*- coding: UTF-8 -*- #author:Wos #according your language to change the "tolang" parameter import requests import pyperclip import os import time BASE_DIR = os.path.dirname(os.path.abspath(__file__)) html_file = os.path.join(BASE_DIR, "translator.html") ss = [] #result list count = 0 #translator segment count idx = 0 #index of serverlist tolang = "Chinese (Simplified)" serverlist = [ 'https://simplytranslate.org/', 'https://translate.josias.dev/', 'https://simplytranslate.pussthecat.org/', 'https://translate.bus-hit.me/' ] def fanyi(s): global ss,idx res = "" premain = serverlist[idx] if idx < len(serverlist)-1: idx += 1 else: idx = 0 url = premain+"?engine=google" data = { "from_language":"Autodetect", "to_language":tolang, "input":s } while True: try: res = requests.post(url,data=data,timeout=(5,7)) break except: return fanyi(s) try: content=str(res.text.split("placeholder=\"Translation\" readonly>")[1].split("")[0]) except: return fanyi(s) if str(content).strip().startswith("body{overflow"): print("Translate Except Content:"+premain+"\n"+str(s)) else: print("Translator From :"+premain) ss.append(content) def multi_translator(s): global count if len(s) < 5000: print("segment "+str(count)) fanyi(s) return else: dl = str(s).split("\n") s_ = "" i = 0 while i < len(dl): s_ ="\n".join(dl[:i]) if len(s_) < 5000: i += 1 continue else: print("segment "+str(count)) count += 1 s_ ="\n".join(dl[:i-1]) fanyi(s_) s_ ="\n".join(dl[i-1:]) return multi_translator(s_) def save_to_html(): global ss,first file_obj = open(str(html_file),'w',encoding='UTF-8', newline='') file_obj.write("\n\n\n\n") file_obj.write("\n") file_obj.write("\n") file_obj.write("
\n")    
    for i in ss:
        if str(i) != "":
            file_obj.write(str(i)+"\n")
    file_obj.write("
\n") file_obj.close() cmdline = ('sh -c \'surf -t -g -b -n -m -X %s 2>/dev/null &\''%(html_file)) os.system(cmdline) if __name__ == '__main__': try: os.system("clear") print("Simple Translator is Running") text = pyperclip.paste() if str(text).strip() != "": multi_translator(text) save_to_html() except KeyboardInterrupt: pass