• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python使用tkinter制作在线翻译软件

    tkinter的功能是如此强大,竟然还能做翻译软件。当然是在线的,我发现有一个quicktranslate模块,可以提供在线翻译功能,相当于提供了一个翻译的接口,利用它就可以制作在线翻译软件了。下面是代码,分享给大家。

    注意要首先 pip install quicktranslate

    #-*- coding:utf-8 -*-
    import tkinter as tk  #使用Tkinter前需要先导入
    from tkinter import messagebox,ttk
    import datetime,os,time,re,requests
    from quicktranslate import get_translate_baidu,get_translate_youdao
    
    class MY_GUI(tk.Tk):
     #初始化
     def __init__(self):
     super().__init__()
     self.set_window()
     self.set_frame()
     self.set_body()
     #设置窗口
     def set_window(self):
     self.title("文本翻译工具v1.0")   #窗口名
     w_width=800        #工具宽度
     w_height=600       #工具高度 
     scn_width=self.maxsize()[0]    #屏幕宽度
     x_point=(scn_width-w_width)//2   #取点让工具居中
     self.geometry('%dx%d+%d+%d' %(w_width,w_height,x_point,100))
     #设置框架
     def set_frame(self):
     self.frame1=tk.Frame(self,pady=15,padx=15)
     self.frame1.grid(row=0,column=0,sticky='w')
     self.frame2=tk.Frame(self,pady=15,padx=15)
     self.frame2.grid(row=1,column=0,sticky='w')
     self.frame3=tk.Frame(self,pady=15,padx=15)
     self.frame3.grid(row=2,column=0,sticky='w')
     #设置组件
     def set_body(self):
     ttk.Label(self.frame1,text='输入要翻译的内容:').grid(row=0,column=0,sticky='w')
     ybar=ttk.Scrollbar(self.frame1,orient='vertical')
     textarea=tk.Text(self.frame1,width=100,height=12,yscrollcommand=ybar.set)
     ybar['command']=textarea.yview
     textarea.grid(row=1,column=0,columnspan=2)
     ybar.grid(row=1,column=2,sticky='ns')
     textarea.bind("Double-Button-1>",lambda event:self.getword(event,textarea))  #双击触发单词翻译
     ttk.Button(self.frame1,text='点击翻译',command=lambda:self.translator(textarea.get(1.0,'end'))).grid(row=2,column=0,sticky='w')
     ttk.Button(self.frame1,text='清空',command=lambda:self.clear(textarea)).grid(row=2,column=1,sticky='w')
     #功能函数
     def clear(self,textarea):    #清空文本框
     textarea.delete(1.0,'end')
    
     def is_cn(self,uchar):
     """判断一个unicode是否是汉字"""
     if uchar >= u'\u4e00' and uchar=u'\u9fa5':
      return True
     else:
      return False
    
     def filterchar(self,char):   #过滤字母
     word=filter(str.isalpha, char)
     word=''.join(list(word))
     return word
    
     def getword(self,event,textarea):  #单词翻译
     place=textarea.index('current')
     row=int(place.split('.')[0])  #第几行
     col=int(place.split('.')[1])  #第几列
     col_start=col-15
     col_end=col+15
     part1=textarea.get(str(row)+'.'+str(col_start),str(row)+'.'+str(col)).split()[-1]
     part2=textarea.get(str(row)+'.'+str(col),str(row)+'.'+str(col_end)).split()[0]
     word_f=self.filterchar(part1+part2)
     word_t=get_translate_baidu(word_f)     #百度翻译
     if(word_t=='wrong!'):
      word_t=get_translate_youdao(word_f)    #百度不行就用有道翻译
     textarea=tk.Text(self.frame3,width=100,height=8) #第三个框架添加文本框
     textarea.grid(row=0,column=0) 
     textarea.delete(1.0,'end')
     textarea.insert(1.0,word_f+':\n'+word_t)   #文本框填入翻译结果
     #生词写入生词本
     if(word_t!='wrong!'):
      with open('word.txt','a') as f:
      f.write(word_f+' : '+word_t+"\n")
    
     def translator(self,content):    #段落翻译
     test_url='http://youdao.com'
     try:
      requests.get(test_url,timeout=2)
     except:
      messagebox.showerror('警告','没有联网')
     if(self.is_cn(content)):    #如果输入的是中文,那就是中译英,要用英文句号
      sep="."
     else:
      sep="。"
     contents=content.split('\n')   #段落分割
     strs=""
     for paragraph in contents:
      if(paragraph):
      sentences=paragraph.split('.')  #句子
      for sentence in sentences:
       if(sentence):
       res=get_translate_youdao(sentence)  #有道翻译
       if(res=='wrong!'):
        res=get_translate_google(sentence) #有道不行就用谷歌翻译
       strs+=res+sep     
      strs+="\n"
     ybar=ttk.Scrollbar(self.frame2,orient='vertical')
     textarea=tk.Text(self.frame2,width=100,height=12,yscrollcommand=ybar.set)  #第二个框架添加文本框
     textarea.bind("Double-Button-1>",lambda event:self.getword(event,textarea)) #双击触发单词翻译 如果是中译英
     ybar['command']=textarea.yview
     textarea.grid(row=0,column=0)
     textarea.delete(1.0,'end')
     textarea.insert(1.0,strs)              #文本框填入翻译结果
     ybar.grid(row=0,column=1,sticky='ns')
    
    app=MY_GUI()
    app.mainloop()

    这是效果,双击单词可自动查词,段落翻译默认用有道,不行用谷歌;单词翻译默认百度,不行用有道。

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • Python爬虫+Tkinter制作一个翻译软件的示例
    • Python结合百度语音识别实现实时翻译软件的实现
    • python翻译软件实现代码(使用google api完成)
    • 利用python爬取有道词典的方法
    • python爬虫实现中英翻译词典
    • 使用Python从有道词典网页获取单词翻译
    • python进阶教程之词典、字典、dict
    • 告别网页搜索!教你用python实现一款属于自己的翻译词典软件
    上一篇:Python中使用Selenium环境安装的方法步骤
    下一篇:matplotlib绘制正余弦曲线图的实现
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python使用tkinter制作在线翻译软件 Python,使用,tkinter,制作,在线,