python软件菜单翻译,python界面中文翻译

本篇文章给大家谈谈python软件菜单翻译,以及python界面中文翻译,希望对各位有所帮助,不要忘了收藏本站喔。

大家也或多或少的使用过各种的翻译软件,有没有自己想过自己做一个翻译的工具呢。我这边就给大家提供一个思路,通过百度通用翻译接口做一下,接下来介绍一下步骤python做简单笑脸

一、首先需要我们注册一下百度账号,打开百度,右上角登录,点击

有个立即注册,点击按操作来就可以了

注册完之后,打开这个网站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任意的数字

就是这个样子了,还不错哈

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个软件界面翻译的小工具,对于英文不好的同学应该会有点帮助。英文好的就不要看了。最因为是调用网页接口翻译,使用必须联网 ====================================================== 经过几天的反响,我更新了下软件,做个详细的使用情况吧 1。有好多人说,有的程序只能翻译极个别的按钮或者其他的,大部分不能翻译。这种情况是,因为软件是根据窗口句柄内容进行翻译,你的软件翻译不了,那就是无法获取你的软件的句柄,你的软件极有可能是自绘的或者其他未知。本人目前没有办法解决。(你可以采取截图识别翻译,再逐个对照) 2.有人说翻译的内容太牵强。因为是机器在线翻译,本人也无法解决。只能靠个人理解能力了。 3.有人说截图识别卡顿。因为截图有大小限制,你截的太小是不会上传的,太大又因为要识别的内容太多,所有卡慢。跟我软件没有关系,跟你的网速有关。 4.为了美观增加了皮肤和增加的一个划词翻译选项。 5.划词翻译选项尽量在必要时选中,不需要时取消勾选。因为原理和系统鼠标左右键操作有点冲突(问题不是太大)如果你不介意可以随意。 6.已翻译内容框,当你翻译好后点击要复制的时候,划词翻译会暂停9秒(这个时间段划词是不会有反应的。)过了9秒正常划词。当然你可以随时勾选界面上的划词开启的勾来操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值