大家也或多或少的使用过各种的翻译软件,有没有自己想过自己做一个翻译的工具呢。我这边就给大家提供一个思路,通过百度通用翻译接口做一下,接下来介绍一下步骤。
一、首先需要我们注册一下百度账号,打开百度,右上角登录,点击
有个立即注册,点击按操作来就可以了
注册完之后,打开这个网站https://api.fanyi.baidu.com/,登录刚才注册的账号
首先注册成为个人开发者,首页中打开管理控制台
默认选择的是企业开发者,这里选择个人开发者
填写相关信息
成功后选择开通服务
找到通用翻译点击
找到免费体验通用翻译API,之后填写相关信息即可
咱们流程走完之后,看自己的appid和密钥的话如下图所示查看
翻译接口文档如下图所示
前期准备工作已经准备完毕,接下来咱们就进行代码阶段
二、用python语言进行编写
首先需要创建的文件夹以及文件如下图
其中ui里面写的主要是显示界面的内容,具体如下
import tkinter
from trans import Trans
class Ui:
def __init__(self):
# 创建一个窗口对象
self.screen = tkinter.Tk()
# 设置窗口的位置以及大小
self.screen.geometry("400x400+550+120")
self.screen.title("小利翻译")
# 创建label对象
label = tkinter.Label(self.screen, text="请输入密码")
label.place(x=80, y=100)
self.u = tkinter.StringVar()
text = tkinter.Entry(self.screen, textvariable=self.u)
text.place(x=170, y=100)
# 其中commend的值就是函数名
button = tkinter.Button(self.screen, text="登录", command=self.login)
button.place(x=190, y=150)
# 使用mainloop方法使得窗口显示
self.screen.mainloop()
def login(self):
for i in range(10):
if self.u.get() == str(i):
self.screen.destroy()
self.tr = Trans()
self.tr.trans()
break
else:
self.error()
pass
def error(self):
screen = tkinter.Tk()
# 设置窗口的位置以及大小
screen.geometry("600x300+450+100")
# 创建label对象
label = tkinter.Label(screen, text="error")
label.place(x=60, y=90)
# 其中commend的值就是函数名
screen.mainloop()
trans里面主要是翻译的逻辑,
注意这里不要直接复制粘贴,appid = 后面跟的是你自己的appid
import tkinter
from md5 import Md5
import requests
class Trans:
def __init__(self):
pass
def trans(self):
screen = tkinter.Tk()
# 设置窗口的位置以及大小
screen.geometry("600x500+450+100")
screen.title("小利翻译")
# 创建label对象
label = tkinter.Label(screen, text="要翻译的文字")
label.place(x=170, y=150)
label1 = tkinter.Label(screen, text="翻译的结果为")
label1.place(x=170, y=190)
self.u1 = tkinter.StringVar()
self.u2 = tkinter.StringVar()
text = tkinter.Entry(screen, textvariable=self.u1)
text.place(x=260, y=150)
text1 = tkinter.Entry(screen, textvariable=self.u2)
text1.place(x=260, y=190)
self.r = tkinter.IntVar()
radio = tkinter.Radiobutton(screen, text="英译汉", variable=self.r, value=1)
radio.place(x=260, y=220)
radio1 = tkinter.Radiobutton(screen, text="汉译英", variable=self.r, value=2)
radio1.place(x=330, y=220)
self.r.set(1)
# 其中commend的值就是函数名
button = tkinter.Button(screen, text="翻译", command=self.translate)
button.place(x=260, y=270)
# 使用mainloop方法使得窗口显示
screen.mainloop()
def translate(self):
if self.r.get() == 1:
self.yinghan()
else:
self.hanying()
pass
def yinghan(self):
#不要直接复制
appid = "你的appid"
q = self.u1.get()
md = Md5()
md.q = q
from1 = "en"
to = "zh"
salt = "123456"
sign = md.encry()
url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q="+q+"&from="+from1+"&to="+to+"&appid="+appid+"&salt="+salt+"&sign="+sign
re = requests.get(url)
res = re.json()["trans_result"][0]["dst"]
print(res)
self.u2.set(res)
pass
def hanying(self):
#不要直接复制
appid = "你的appid"
q = self.u1.get()
md = Md5()
md.q = q
from1 = "zh"
to = "en"
salt = "123456"
sign = md.encry()
url = "http://api.fanyi.baidu.com/api/trans/vip/translate?q=" + q + "&from=" + from1 + "&to=" + to + "&appid=" + appid + "&salt=" + salt + "&sign=" + sign
re = requests.get(url)
res = re.json()["trans_result"][0]["dst"]
print(res)
self.u2.set(res)
MD5里面主要是加密算法,
注意这里也不要直接复制粘贴,其中 self.appid =后面跟的是你自己的appid,self.miyao =后面跟的是你的密钥
import hashlib
class Md5:
def __init__(self):
#不要直接复制
self.appid = "你的appid"
self.q = ""
self.salt = "123456"
#不要直接复制
self.miyao = "你的密钥5"
def encry(self):
self.text = self.appid + self.q + self.salt + self.miyao
hl = hashlib.md5()
hl.update(self.text.encode(encoding='utf8'))
md5 = hl.hexdigest()
return md5
main里面只要是程序的启动
from ui import Ui
if __name__ == '__main__':
ui = Ui()
好了,这样咱们的程序就写完了,让我们看看长什么样吧
密码是,1-9任意的数字
就是这个样子了,还不错哈