google translate - 谷歌翻译小工具

news/2025/2/27 17:26:04/

文章目录

    • 前言
    • 一、库安装
      • 问题说明
    • 二、功能实现
      • 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 Translatortranslator = 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 scrolledtextwin = 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 Translatordef translate():#获取源文本scrolledtext输入框文本text = scr1.get(1.0, 'end')translator = Translator(service_urls=['translate.google.cn',])src_lang = translator.detect(text).langif 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翻译小工具的实现过程,如发现错误或有任何疑问或建议,欢迎留言提出讨论。


http://www.ppmy.cn/news/354605.html

相关文章

海康威视 NET_DVR_Login_V30 错误代码说明总结 (后补充所有故障对应码)

海康威视故障代码对照表: 整理了一个excel : https://download.csdn.net/download/p942005405/12415536 网络通讯库错误码  错误类型错误值错误信息NET_DVR_NOERROR0没有错误。NET_DVR_PASSWORD_ERROR1用户名密码错误。注册时输入的用户名或者密码错…

计算机专业英语常用词汇整理

软考备考,整理了计算机专业英语词汇 A access control 访问控制 Access Control List(ACL) 访问控制列表 Active Group 活动组 Active Server Pages(ASP)一种服务器端的脚本环境,可以用来创建动态Web页或编译Web应用程序 ActiveX Controls ActiveX 控件 activ…

继续来学习有关淘宝的API接口的使用——获得店铺的所有商品 API

前往获取您的专属账号 为了进行电商平台 的API开发,首先我们需要做下面几件事情。 1)开发者注册一个账号 2)然后为每个 应用注册一个应用程序键(App Key) 。 3)下载 API的SDK并掌握基本的API基础知识和调用 4&…

【Pytorch with fastai】第 3 章 :数据伦理

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

知识汇总系列!数据通信基础

一.基础概念 1.信号(signal) 信息(information)是事物现象及其属性标识的集合,它是对不确定性的消除。数据(data)是携带信息的载体。信号(signal)是数据的物理表现,如电气或电磁。 根据信号中代表消息的参数的取值方式不同,信号可以分为两大类…

72、公安网络视频监控系统解决方案

随着计算机技术和无线网络通信技术的快速发展,数字化技术在安防领域的应用越来越广泛,特别是在公安等重要执法部门,网络化的联网监控需求越来越大。 传统的视频监控系统受技术发展的局限,只能进行现场监视,简单的报警信息传输,不能远距离传输视频信号,对于前端具体状况…

Android 4.0 平台特性

Android 4.0 平台特性 API等级:14 Android4.0 是一次重要的平台发布版,为用户和应用程序开发者增加了大量的新特性。在下面我们将讨论的所有新特性和API中,因为它将 Android 3.x 版本中广泛使用的API和全息图像主题带给了小屏幕设备&#…

IPC(IP CAMERA)

IPC是IP Camera的缩写词,IP是网际协定,Camera是照相机、摄影机,IP Camera顾名思义就是网路摄像机,它是一种由传统摄像机与网路技术结合所产生的新一代摄像机。 注:NVR,全称Network Video Recorder&#xff…