栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

google translate小工具

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

google translate小工具

文章目录
    • 前言
    • 一、库安装
      • 问题说明
    • 二、功能实现
      • 1. 翻译功能代码
      • 2. 工具界面代码
      • 3. 全部实现代码
        • 注意
    • 三、结语

前言

同事小强在网上不知道从哪找了个翻译小工具,用着不太顺手。想着自己常用的google翻译还不错,就搜了一下google翻译接口,果然python里有相关的库googletrans,于是就结合tkinter和googletrans写了一个google翻译小工具。

​界面很简单如下:

一、库安装

pip install googletrans==4.0.0-rc1

问题说明

本来是直接安装pip install googletrans,但是翻译的时候报错 - AttributeError: ‘NoneType’ object has no attribute ‘group’,通过对问题的一番搜索,发现是 googletrans的版本的问题,默认安装的是3.0.0版本,但是由于google翻译更改了API,导致3.0.0版本报错,所以需要安装更新的版本。具体参考如下文章
Python3 googletrans谷歌翻译出错

二、功能实现 1. 翻译功能代码
from googletrans import Translator

translator = Translator(service_urls=['translate.google.cn',])

#检测翻译文本的语种
src_lang = translator.detect(text).lang 

#源语种为中文,则目标语种为英语
#中文有时会识别为日语,所以加上日语判断
if src_lang == 'zh-CN' or src_lang == 'ja': 
    dest_lang = 'en'
else:
    dest_lang = 'zh-CN'

result = translator.translate(text, dest = dest_lang).text
2. 工具界面代码
import tkinter as tk
from tkinter import  ttk
from tkinter import scrolledtext

win = tk.Tk()
win.title('Google Translate(中英互译)')

scrol_w = 80
scrol_h = 15

#添加源文本scrolledtext输入框
scr1 = scrolledtext.ScrolledText(win, width = scrol_w, height = scrol_h, wrap = tk.WORD, font = 30)
scr1.grid(column = 0, row = 1)

ttk.Label(win, text='').grid(column = 1,row = 2)

#添加scrolledtext翻译文本显示框
scr2 = scrolledtext.ScrolledText(win, width = scrol_w, height = scrol_h, wrap = tk.WORD, font = 30)
scr2.grid(column = 0, row = 3)

#添加翻译按钮
btn = ttk.Button(win, text = 'translate', command=translate)
btn.grid(column = 1, row = 3)

scr1.focus()
win.mainloop()
3. 全部实现代码
import tkinter as tk
from tkinter import ttk
from tkinter import scrolledtext
from googletrans import Translator


def translate():
    #获取源文本scrolledtext输入框文本
    text = scr1.get(1.0, 'end')

    translator = Translator(service_urls=[
        'translate.google.cn',
    ])
    src_lang = translator.detect(text).lang
    if src_lang == 'zh-CN' or src_lang == 'ja':
        dest_lang = 'en'
    else:
        dest_lang = 'zh-CN'
    result = translator.translate(text, dest=dest_lang).text

    #设置为正常状态
    scr2.configure(state='normal')
    #更新前删除上一次文本
    scr2.delete(1.0, 'end')
    #更新翻译文本
    scr2.insert('end', result)
    #设置为禁止编辑
    scr2.configure(state='disable')


win = tk.Tk()
win.title('Google Translate(中英互译)')

scrol_w = 80
scrol_h = 15
scr1 = scrolledtext.ScrolledText(win,
                                 width=scrol_w,
                                 height=scrol_h,
                                 wrap=tk.WORD,
                                 font=30)
scr1.grid(column=0, row=1)

ttk.Label(win, text='').grid(column=1, row=2)

scr2 = scrolledtext.ScrolledText(win,
                                 width=scrol_w,
                                 height=scrol_h,
                                 wrap=tk.WORD,
                                 font=30)
scr2.grid(column=0, row=3)

#添加按钮
btn = ttk.Button(win, text='translate', command=translate)
btn.grid(column=1, row=3)

scr1.focus()
win.mainloop()
注意
  • scrolledtext.ScrolledText里的wrap=tk.WORD的作用是在行尾遇到单词显示不全的情况,会自动将整个单词放到下一行显示。
  • scr2.delete(1.0, ‘end’)是用于清空上一次显示的翻译文本
  • scr2.configure(state=‘disable’)是为了翻译文本显示后禁止对文本进行编辑,scr2.configure(state=‘normal’) 是在显示翻译文本前设置scrolledtext框为正常状态。
  • scr1.focus() 的作用是打开界面时将光标设置在源文本scrolledtext输入框。
三、结语

以上就是google翻译小工具的实现过程,如发现错误或有任何疑问或建议,欢迎留言提出讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/976768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号