吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1274|回复: 24
收起左侧

[Python 原创] wxpython整合百度 有道 中英 翻译附源码

[复制链接]
machuhai 发表于 2024-8-4 16:32
上一次学习用了TK,GUI不好看,
重新学习了wxpython可视化编程,
才发现python变量竟然可以用中文的,似乎有点跑题了。。。进入主题
这次整合了3个翻译,百度翻译 有道翻译 中英翻译,翻译结果大同小异又差不多是那个意思
有道翻译 中英翻译  支持整行整段翻译


运行源码 需要wxpython库和requests库
微信截图_20240804162426.png
微信截图_20240804163001.png

[Python] 纯文本查看 复制代码
# -*- coding:utf-8 -*-
import wx,re
import requests

class Frame(wx.Frame):
    def __init__(self):
        wx.Frame.__init__(self, None, title='翻译', size=(600, 500),name='frame',style=541072448)
        self.启动窗口 = wx.Panel(self,-1)
        self.Centre()
        self.标签1 = wx.StaticText(self.启动窗口,size=(149, 39),pos=(-12, 4),label='输入:',name='staticText',style=2321)
        标签1_字体 = wx.Font(20,74,90,700,False,'Microsoft YaHei UI',28)
        self.标签1.SetFont(标签1_字体)
        self.编辑框2 = wx.TextCtrl(self.启动窗口,size=(349, 67),pos=(18, 51),value='',name='text',style=wx.TE_MULTILINE)
        self.按钮1 = wx.Button(self.启动窗口,-1,size=(70, 60),pos=(377, 53),label='翻译')
        self.Bind(wx.EVT_BUTTON, self.fanyi, self.按钮1)
        按钮1_字体 = wx.Font(20,74,90,700,False,'Microsoft YaHei UI',28)
        self.按钮1.SetFont(按钮1_字体)


        self.多选框1 = wx.CheckBox(self.启动窗口,size=(70, 18),pos=(483, 56),name='check',label='百度翻译',style=12288)
        self.多选框1.Set3StateValue(1)
        self.多选框2 = wx.CheckBox(self.启动窗口,size=(63, 20),pos=(483, 77),name='check',label='有道翻译',style=12288)
        self.多选框2.Set3StateValue(1)
        self.多选框3 = wx.CheckBox(self.启动窗口,size=(66, 14),pos=(483, 100),name='check',label='中英翻译',style=12288)
        self.多选框3.Set3StateValue(1)
        self.编辑框3 = wx.TextCtrl(self.启动窗口,size=(532, 258),pos=(16, 184),value='',name='text',style=wx.TE_MULTILINE)
        self.标签2 = wx.StaticText(self.启动窗口,size=(106, 38),pos=(12, 140),label='结果:',name='staticText',style=2321)
        标签2_字体 = wx.Font(20,74,90,700,False,'Microsoft YaHei UI',28)
        self.标签2.SetFont(标签2_字体)


    def fanyi(self,event):
        self.编辑框3.SetValue("")
        if self.编辑框2.GetValue() == '':
            pass
        else:
            if self.多选框1.GetValue() == True:
                jie = self.baidu()
                self.编辑框3.AppendText('百度翻译:\n' + jie + '\n---------------------------------------\n')

            else:
                pass

            if self.多选框2.GetValue() == True:
                jie1 = self.youdao()
                self.编辑框3.AppendText('有道翻译:\n' + jie1 + '\n---------------------------------------\n')
            else:
                pass

            if self.多选框3.GetValue() == True:
                jie2 = self.zhongying()
                self.编辑框3.AppendText('中英翻译:\n' + jie2 + '\n---------------------------------------\n')
            else:
                pass

    def zhongying(self):
        zh = 'zh'
        en = 'en'
        for c in self.编辑框2.GetValue():
            if ('\u4e00' <= c <= '\u9fa5'):  # 判断是否为中文
                zh = 'en'
                en = 'zh'
        try:
            url = "https://fy.httpcn.com/bdaify/?s1=%s&t1=%s&q=%s" % (en, zh, self.编辑框2.GetValue())
            headers = {
                'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36'
            }
            fanhui = requests.get(url, headers=headers, timeout=30)
            jieguo = fanhui.json()
            jie2 = jieguo['result']['trans_result'][0]['dst']
            return self.编辑框2.GetValue() + '\n' + jie2
        except:
            return '无数据'



    def youdao(self):
        try:
            url = "https://m.youdao.com/translate"
            data = {
                'inputtext': self.编辑框2.GetValue(),
                'type': 'AUTO'
            }
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'
            }
            r = requests.post(url, params=data, headers=headers, timeout=30)
            r.encoding = 'utf-8'
            rr = r.text
            b = re.findall("<li>(.*?)</li>", rr)[2]
            return self.编辑框2.GetValue() + '\n' + b
        except:
            return '无数据'


    def baidu(self):
        try:
            url = "https://fanyi.baidu.com/sug"
            data = {
                'kw': self.编辑框2.GetValue()
            }
            headers = {
                'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36 Edg/127.0.0.0'
            }
            r = requests.post(url, params=data, headers=headers, timeout=30)
            r.encoding = 'unicode_escape'

            rr = r.json()
            jie = f"{rr['data'][0]['k']}\n{rr['data'][0]['v']}"
            return jie
        except:
            return '无数据'



class myApp(wx.App):
    def OnInit(self):
        self.frame = Frame()
        self.frame.Show(True)
        return True

if __name__ == '__main__':
    app = myApp()
    app.MainLoop()

免费评分

参与人数 2吾爱币 +7 热心值 +2 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
shengruqing + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

xjwebs 发表于 2024-8-4 20:55
大佬求解,运行提示如下错误:
Traceback (most recent call last):
  File "D:\Python\fanyi.py", line 2, in <module>
    import wx,re
ModuleNotFoundError: No module named 'wx'

手动用命令安装模块也安装不了,pip和pip3都试了

pip3 install wx
ERROR: Could not find a version that satisfies the requirement wx (from versions: none)
ERROR: No matching distribution found for wx


pip3 install re
ERROR: Could not find a version that satisfies the requirement re (from versions: none)
ERROR: No matching distribution found for re
kangta520 发表于 2024-8-4 17:01
fhsuh7 发表于 2024-8-4 17:48
lovezmd 发表于 2024-8-4 18:02
直接上货啊,没有看见附件下载
james1yan 发表于 2024-8-4 18:05
谢谢分享学习了
 楼主| machuhai 发表于 2024-8-4 18:11
lovezmd 发表于 2024-8-4 18:02
直接上货啊,没有看见附件下载

复制代码去运行就好了
wzz1987 发表于 2024-8-4 18:40
刚好需要,谢谢分享
 楼主| machuhai 发表于 2024-8-4 21:13
xjwebs 发表于 2024-8-4 20:55
大佬求解,运行提示如下错误:
Traceback (most recent call last):
  File "D:\Python\fanyi.py", line  ...

pip install -U wxPython
tencentma 发表于 2024-8-4 21:16
百度翻译 有道翻译 中英翻译,有对比肯定是好的,肯定有一些差异
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表