lixiangyv 发表于 2021-2-15 15:50:25

python 制作一个翻译软件

废话不多说,直接上代码:
from tkinter import *
from tkinter import ttk
import requests
import json

class Application(Tk):
    def __init__(self):
      super().__init__()

      self.title('翻译')
      self.geometry('540x380')
      self.resizable(False, False)
      self.init_widgets()

    def init_widgets(self):
      trans_type1List = ["自动检测", "中文", "英文"]
      trans_type2List = ["中文", "英文"]

      label1 = Label(self, text='翻译成——>', font=('微软雅黑', 14))
      label1.place(x=168, y=8, width=120, height=33)

      trans_button = Button(self, text='翻译', command=self.translate_text)
      trans_button.place(x=450, y=8, width=70, height=33)

      self.type_dict = {
            "自动检测": "auto-detect",
            "中文": "zh-Hans",
            "英文": "en"
      }

      self.trans_type1 = ttk.Combobox(self, values=trans_type1List, font=('微软雅黑', 14))
      self.trans_type1.current(0)
      self.trans_type1.bind("<Key>", lambda e: "break")
      self.trans_type1.place(x=16, y=8, width=130, height=33)

      self.trans_type2 = ttk.Combobox(self, values=trans_type2List, font=('微软雅黑', 14))
      self.trans_type2.current(1)
      self.trans_type2.place(x=310, y=8, width=130, height=33)

      self.origin_text = Text(self, font=('微软雅黑', 14))
      self.origin_text.insert("1.0", "原文")
      self.origin_text.place(x=0, y=56, width=540, height=150)

      self.trans_text = Text(self, font=('微软雅黑', 14))
      self.trans_text.insert("1.0", "翻译")
      self.trans_text.configure(state=DISABLED)
      self.trans_text.place(x=0, y=210, width=540, height=180)

    def translate_text(self):
      text = self.origin_text.get("1.0", "end")
      type1 = self.type_dict
      type2 = self.type_dict

      self.trans_text.configure(state=NORMAL)
      self.trans_text.delete("1.0", "end")
      self.trans_text.insert("1.0", self.translate(text, type1, type2))
      self.trans_text.configure(state=DISABLED)

    def translate(self, text, type1, type2):
      url = "https://cn.bing.com/ttranslatev3?isVertical=1&&IG=B82C0E46ED384A0FA9E24E5DBFE84EBF&IID=translator.5024.1"
      form_data = {
            "fromLang": f"{type1}",
            "text": f"{text}",
            "to": f"{type2}"
      }
      headers = {
            "user-agent": 'Mozilla/5.0 (Windows NT 10; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94412.3 Safari/537.36'
      }
      res = requests.post(url, data=form_data, headers=headers)
      content = json.loads(res.text)

      return content["translations"]["text"]


if __name__ == '__main__':
    app = Application()
    app.mainloop()

效果:


如果想看教程的话,可以到这个链接:
**** Hidden Message *****

如果上面的链接失效了的话或者感觉我的公众号还不错的话,希望各位鱼油们可以关注一下我的公众号。
https://mp.weixin.qq.com/mp/qrcode?scene=10000004&size=102&__biz=MzUyMDk4NjkzOQ==&mid=100000064&idx=1&sn=70b82f1d81ec1f9eea05aa130098a44b&send_time=1613375092

weiter 发表于 2021-2-15 16:43:05

大佬牛皮!{:10_257:}

Minecraft程序猿 发表于 2021-2-15 16:54:11

weiter 发表于 2021-2-15 16:43
大佬牛皮!

我更喜欢百度翻译{:10_256:},你有没有兴趣参加NOIP{:10_256:}

yayc_zcyd 发表于 2021-2-15 17:58:29

厉害

Xcht 发表于 2021-2-15 18:05:45

Ⅲ只小猪 发表于 2021-2-15 19:33:34

{:5_106:}

zhiweng07 发表于 2021-2-16 08:49:40

很想知道调用了什么接口

crisfo 发表于 2021-2-16 09:39:04

厉害{:5_106:}

qq1151985918 发表于 2021-2-16 09:48:54

{:9_227:}

糖甜弯了嘴 发表于 2021-2-16 10:12:20

厉害呀

zwjym 发表于 2021-2-16 12:41:47

厉害

张育玮 发表于 2021-2-16 15:38:39

看看

橙子uu 发表于 2021-2-16 15:57:18

牛啊,i了

张育玮 发表于 2021-2-16 16:18:44

厉害

wuqramy 发表于 2021-2-16 18:04:29

www厉害

永恒的蓝色梦想 发表于 2021-2-18 21:15:52

zhiweng07 发表于 2021-2-16 08:49
很想知道调用了什么接口

微软的

Project1 发表于 2021-2-19 12:23:17

{:10_275:}

我自己555 发表于 2021-2-19 19:34:19

感谢

嘉岳呀 发表于 2021-2-20 10:31:31

建议增加按回车键就可以翻译的功能
不增加输入完内容还得用鼠标点“翻译”按钮

python莅临 发表于 2021-2-20 16:29:27

tkinter
页: [1] 2 3
查看完整版本: python 制作一个翻译软件