二哲科技

  • 145 主题
  • 435 帖子
  • 1603 积分
  • 身份:版主
  • 论坛新秀
  • E币:1999

【原创】Python翻译软件Part2:使用JS接入谷歌翻译,翻译工具就这么做好了?源码奉献!

2021-4-18 12:30:41 显示全部楼层
1.介绍
由于对网络这一部分不太了解,之前虽然接触过爬虫,但是对于接口接入和JS研究的还不够深入,这里就简单的调用别人写好的接口,运用到界面上,后期有时间再去学习一下这方面的知识。
2.设计
首先介绍一下整体设计,这里在之前的界面控制基础上添加了置顶功能,和界面透明功能,这样就可以让工作置顶的显示出来,透明是为了不妨碍用户的其他界面使用。
  1. def window_init():
  2.     # Main window config
  3.     translateWindow.title("EZ Translate Tool")
  4.     translateWindow.geometry("300x200")
  5.     translateWindow.resizable(0, 0)     # not allow set window height and width
  6.     translateWindow.wm_attributes('-topmost', True) # default window top
  7.     translateWindow.attributes("-alpha", 0.8)

  8.     framMain.pack()
  9.     txtSource.pack(side="top")
  10.     framConfig.pack()
  11.     btnToChTranslate.pack(side="left")
  12.     checkTop.pack(side="right")
  13.     btnToEnTranslate.pack(side="right")

  14.     txtResult.pack(side="bottom")
  15.     pass

同时还添加了输入栏的焦点事件,当输入结束之后,自动判断输入的为中文还是英文,执行指定的翻译功能。
  1. def txt_source_event(event):
  2.     check_chinese = txtSource.get(1.0, "end")
  3.     # print("txtLen:{}".format(len(check_chinese)))
  4.     if len(check_chinese) > 1:    # not null char
  5.         if check_contain_chinese(check_chinese):
  6.             ch_translate_en_opt()
  7.             pass
  8.         else:
  9.             en_translate_cn_opt()
  10.             pass
  11.         pass
  12.     else:
  13.         # print("null char")
  14.         pass
  15.     pass
这时候就需要检测输入的内容和上一次的是否相同,这样才可以避免每次离开输入框焦点的时候再次进行翻译。
  1. def en_translate_cn_opt():
  2.     # translate repeat check
  3.     global translateStrLast
  4.     currentStr = txtSource.get(1.0, "end")  # read source data
  5.     if currentStr == translateStrLast:
  6.         return
  7.     translateStrLast = currentStr

  8.     txtResult.delete(1.0, "end")
  9.     txtResult.insert("insert", "翻译中...")
  10.     en_translate_cn_timer = threading.Timer(0.1, en_translate_cn_run)
  11.     en_translate_cn_timer.start()
  12.     pass

最后调用网上找到的翻译接口,实现翻译。
1.jpg

图1

我们来看一下效果把。
02.gif

图2

03.gif

图3

3.总结
其实这个小工具不难,难得在于如何调用谷歌翻译的接口,这个后续等我学完了之后再给大家来一个讲解,如果有会的童鞋也可以帮忙讲解一下,下面放出源码。
游客,如果您要查看本帖隐藏内容请回复

您需要登录后才可以评论 登录 | 立即注册

最新评论

楼层直达:

阿常

  • 28 主题
  • 151 帖子
  • 1026 积分
  • 身份:版主
  • E币:1156

gmphoenix_huo_285066756

  • 1 主题
  • 74 帖子
  • 2171 积分
  • 身份:LV5 资深技术员
  • 论坛新秀 热心工程师
  • E币:1240

ray_sr_442720080

  • 0 主题
  • 1 帖子
  • 305 积分
  • 身份:LV1 技术小白
  • E币:234
广告

zwjiang

  • 0 主题
  • 22 帖子
  • 1984 积分
  • 身份:LV4 高级技术员
  • E币:981
快速回复
4
1
广告
关闭 热点推荐上一条 /4 下一条
快速回复 返回列表