Skip to content

这是一个使用百度翻译API设计一个翻译器的实例

Notifications You must be signed in to change notification settings

huang-kaixin/translate-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

1 获取百度翻译 API

首先,我们需要使用百度翻译 API 进行翻译需要注册百度翻译开放平台账号并获取 API 密钥,可以在此网站中注册并获取 API 密钥:https://api.fanyi.baidu.com/ 百度翻译API申请教程 在获取了 API 密钥之后,我们可以使用 Python 的 requests 库来调用百度翻译 API:

pip install requests

2 先简单实现调用百度翻译并打印翻译结果

在调用百度翻译 API 时,我们需要提供以下参数:

  • q:要翻译的文本
  • from:需要翻译的源语言,例如:en(英文),zh(中文),auto(自动)
  • to:需要转换成的语言
  • appid:申请成为开发者后生成的appid,在在控制台中查看
  • salt:随机数
  • sign:生成的签名(appid+q+salt+密钥 的MD5值)

其中,salt 和 sign 是用来防止 API 被滥用的参数。示例代码:translate.py

运行效果:

3 实现复制即翻译功能

3.1 翻译剪贴板内容并在终端输出

这一小节实现的功能:当发生复制待翻译文本的操作后,调用API进行翻译,将翻译结果显示在终端

示例代码:copy_translate.py

注意:上面代码要在终端运行,结果如下:

3.2 翻译剪贴板内容并在屏幕输出

这一小节我们调用百度翻译API实现以下功能:

  1. 当发生复制操作时,获取剪贴板的待翻译文本,翻译为中文并将翻译结果显示在屏幕上;
  2. 只有当再次发生复制操作,即剪贴板内容发生变化时,再次触发第一步的翻译并显示
  3. 当剪贴板内容没有发生变化时,不执行翻译和显示操作,继续监视剪贴板内容是否发生改变,等待下一次复制操作

示例代码:copy_translator.py

在这里插入图片描述

  • 这里发现了一个问题,复制的待翻译文本必须没有换行,否则翻译结果总是只能翻译一行,不知道是百度翻译API的问题还是我的代码问题,希望有大佬帮我解惑!

4 设计一个简单的翻译器

  1. 在 Tkinter 窗口中添加一个文本输入框,用于输入要翻译的英文。
  2. 在 Tkinter 窗口中添加一个按钮,点击按钮时调用百度翻译 API 进行翻译。
  3. 在 Tkinter 窗口中添加一个文本框,用于显示翻译结果。

在下面代码中,我们在 Tkinter 窗口中添加了一个文本输入框,一个按钮和一个文本框。点击按钮时,会调用百度翻译 API 进行翻译,并将翻译结果显示在文本框中。用户可以多次输入要翻译的英文,并点击按钮进行翻译,翻译结果会不断更新。

示例代码:translator.py

运行结果如下:

在这里插入图片描述

欢迎star ⭐, 感谢支持!

About

这是一个使用百度翻译API设计一个翻译器的实例

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages