因为我英文不好,对接口、函数、结构体起名字的时候特别为难,因此我使用Python写了一个工具
在输入框输入中文,就可以生成Golang语言对应的接口、函数或接口体的写法;也可以切换到英文翻译。如下演示:
看懂代码之后,就可以修改为其它语言对应的写法。这里使用到百度的翻译API,因此自己要替换掉下面的两个key值就直接可以用了。
Baidufanyi
类用于中英文翻译;
Initface
类用于创建窗口,之后调用第一个Frame,这里为了能切换不同页面,使用两个Frame作为两个页面
OneFace
类是第一个页面,init函数用于初始化页面,faceUI方法用于显示控件和逻辑控制,并使用了grid布局,oneBack方法用于销毁本页面并切换到另一个页面
TwoFace
类和第一个页面用法一致,页面使用了pack布局
import tkinter
import requests
import hashlib
import pyperclip
import time
class Baidufanyi:
def __init__(self, appid="百度API的应用ID", key="百度API的key"):
self.appid = appid
self.key = key
self.salt = "1435660288"
def getEnglish(self, srcdata):
q = srcdata
froms = "&from=zh"
tos = "&to=en"
sign = self.appid+q+self.salt+self.key
sign = "&sign="+hashlib.md5(sign.encode(encoding='utf-8')).hexdigest()
url = "http://api.fanyi.baidu.com/api/trans/vip/translate?"+"q="+q + \
froms+tos+"&appid="+self.appid+"&salt="+self.salt+sign
result = requests.get(url)
en_resu = eval(result.text)
return en_resu["trans_result"][0]["dst"]
def getChina(self, srcdata):
q = srcdata
froms = "&from=en"
tos = "&to=zh"
sign = self.appid+q+self.salt+self.key
sign = "&sign="+hashlib.md5(sign.encode(encoding='utf-8')).hexdigest()
url = "http://api.fanyi.baidu.com/api/trans/vip/translate?"+"q="+q + \
froms+tos+"&appid="+self.appid+"&salt="+self.salt+sign
result = requests.get(url)
en_resu = eval(result.text)
return en_resu["trans_result"][0]["dst"]
fanyi = Baidufanyi()
class Initface:
def __init__(self, windows):
self.windows = windows
self.windows.title("Golang翻译")
self.windows.iconbitmap('D:/Python代码/Python的py转exe/mingyu.ico')
self.windows.geometry('610x300')
self.windows.configure(background='#87CEFF')
OneFace(self.windows)
class OneFace:
def __init__(self, oneWindows):
self.oneWindows = oneWindows
self.oneface = tkinter.Frame(self.oneWindows)
self.oneface.configure(background='#87CEFF')
self.oneface.grid()
self.faceUI()
def faceUI(self):
def getEn():
text.delete("0.0", "end")
srcdata = getTextInput(text_0).replace(
'\n', '').replace(' ', '')
if srcdata == "":
return
data = fanyi.getEnglish(srcdata)
text.insert("0.0", data)
def getInterface():
text.delete("0.0", "end")
srcdata = getTextInput(text_1).replace(
'\n', '').replace(' ', '')
if srcdata == "":
return
data = fanyi.getEnglish(srcdata).replace(
' ', '').replace('?', '').replace('\'', '')
data = "// " + srcdata + "接口\ntype " + \
data + "er" + " interface{\n\t\n}"
text.insert("0.0", data)
def getStruct():
text.delete("0.0", "end")
srcdata = getTextInput(text_2).replace(
'\n', '').replace(' ', '')
if srcdata == "":
return
data = fanyi.getEnglish(srcdata).replace(
' ', '').replace('\'', '').replace('?', '')
data = "// " + srcdata + "结构体\ntype " + \
data.capitalize() + " struct{\n\t\n}"
text.insert("0.0", data)
def getFunc():
text.delete("0.0", "end")
srcdata = getTextInput(text_3).replace(
'\n', '').replace(' ', '')
if srcdata == "":
return
data = fanyi.getEnglish(srcdata).replace(
' ', '').replace('?', '').replace('\'', '')
data = "// " + srcdata + "函数\nfunc " + \
data.capitalize() + "( ) (err error) " + "{\n\t\n}"
text.insert("0.0", data)
def CopyData():
pyperclip.copy(text.get("0.0", "end"))
nowtime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
tishistr.set('已复制\n' + nowtime)
def getTextInput(textname):
return textname.get("1.0", "end")
oneBtn_1 = tkinter.Button(
self.oneface, text="切换到中文翻译", bg="#32CD32", command=self.oneBack)
oneBtn_1.grid(row="0", column="2")
china0 = tkinter.Label(
self.oneface, text="输入中文普通翻译:", bg='#87CEFF', font=("微软雅黑", 13))
china0.grid(row="1", column="1")
text_0 = tkinter.Text(self.oneface, width="30",
height="2", bg='#FFBBFF')
text_0.grid(row="1", column="2")
btn_0 = tkinter.Button(
self.oneface, text="点击翻译", command=getEn, bg="#696969")
btn_0.grid(row="1", column="3")
china1 = tkinter.Label(
self.oneface, text="输入中文获取接口:", bg='#87CEFF', font=("微软雅黑", 13))
china1.grid(row="2", column="1")
text_1 = tkinter.Text(self.oneface, width="30",
height="2", bg='#FFBBFF')
text_1.grid(row="2", column="2")
btn_1 = tkinter.Button(
self.oneface, text="点击翻译", command=getInterface, bg="#696969")
btn_1.grid(row="2", column="3")
china2 = tkinter.Label(
self.oneface, text="输入中文获取结构体:", bg='#87CEFF', font=("微软雅黑", 13))
china2.grid(row="3", column="1")
text_2 = tkinter.Text(self.oneface, width="30",
height="2", bg='#FFBBFF')
text_2.grid(row="3", column="2")
btn_2 = tkinter.Button(
self.oneface, text="点击翻译", command=getStruct, bg="#B4EEB4")
btn_2.grid(row="3", column="3")
china3 = tkinter.Label(
self.oneface, text="输入中文获取函数:", bg='#87CEFF', font=("微软雅黑", 13))
china3.grid(row="4", column="1")
text_3 = tkinter.Text(self.oneface, width="30",
height="2", bg='#FFBBFF')
text_3.grid(row="4", column="2")
btn_3 = tkinter.Button(
self.oneface, text="点击翻译", command=getFunc, bg="#AB82FF")
btn_3.grid(row="4", column="3")
tishistr = tkinter.StringVar()
tishi = tkinter.Label(
self.oneface, textvariable=tishistr, bg='#87CEFF', font=("微软雅黑", 10))
tishi.grid(row="5", column="1")
text = tkinter.Text(self.oneface, width="40",
height=8, bg='#FF83FA')
text.grid(row="5", column="2")
btn_4 = tkinter.Button(
self.oneface, text="复制译文", command=CopyData, bg="#FF6A6A")
btn_4.grid(row="5", column="3")
def oneBack(self):
self.oneface.destroy()
TwoFace(self.oneWindows)
class TwoFace():
def __init__(self, twoWindows):
self.twoWindows = twoWindows
self.twoface = tkinter.Frame(self.twoWindows)
self.twoface.config(bg='#87CEFF')
self.twoface.pack()
self.faceUI()
def faceUI(self):
def getTextInput(textname):
return textname.get("1.0", "end")
def getCh():
twoText_2.delete("0.0", "end")
srcdata = getTextInput(twoText_0).replace(
'\n', '').replace(' ', '')
if srcdata == "":
return
data = fanyi.getChina(srcdata)
twoText_2.insert("0.0", data)
twoBtn_1 = tkinter.Button(
self.twoface, text="切换到英文翻译", bg="#32CD32", command=self.twoBack)
twoBtn_1.pack()
twoText_0 = tkinter.Text(
self.twoface, width="50", height="8", bg='#FF83FA')
twoText_0.pack()
twoBtn_0 = tkinter.Button(
self.twoface, text="点击翻译", bg="#7B68EE", command=getCh)
twoBtn_0.pack()
twoText_2 = tkinter.Text(
self.twoface, width="70", height="8", bg='#FF83FA')
twoText_2.pack()
def twoBack(self):
self.twoface.destroy()
OneFace(self.twoWindows)
if __name__ == '__main__':
windows = tkinter.Tk()
Initface(windows)
windows.mainloop()
然后使用命令打包
pyinstaller -F -w -i D:\Python代码\Python的py转exe\mingyu.ico D:\Python代码\Python的py转exe\翻译.py
得到一个exe的文件
因为我英文不好,对接口、函数、结构体起名字的时候特别为难,因此我使用Python写了一个工具在输入框输入对应的中文,就生成Golang语言对应的接口、函数或接口体的写法,如下演示:看懂代码之后,就可以修改为其它语言对应的写法import tkinterimport requestsimport hashlibimport pyperclipimport time# 获取翻译结果class Baidufanyi: def __init__(self, appid="到百度API获
这篇文章主要介绍了如何基于Python制作有道翻译小工具,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
该工具主要是利用了爬虫,爬取web有道翻译的内容. 然后利用简易GUI来可视化结果。
首先我们进入有道词典的首页,并点击翻译结果的审查元素
之后request响应网页,并分析网页,定位到翻译结果。
使用tkinter来制作一个建议的GUI
期间遇到的一个问题则是如何刷新翻译的结果,否则的话会在text里一直累加翻译结果。
于是,在mainloop里面用到了T1.delete方法,来每次删除TEXT里的内容。
import urllib.r
translate非标准库是
python中可以实现对多种语言进行互相
翻译的库,使用时只需要设置目标语言(比如:
中文、英文)后,会自动将原始文本
翻译成我们需要的目标语言。
【阅读全文】
使用pip的方式安装translate非标准库。
pip install translate
准备好之后进行
代码编写过程,实现的方式也比较常规。
输入需要
翻译的文本文件路径。
path = input('请输入需要
翻译的文件路径(.txt):\n')
编写文本文件读取函数,读取文本文件后返回字符串。
目录前言封装好的python中英互译模块使用demo
通过python translate库可以实现中英互译的功能,笔者将该实现该共能的代码封装成python的类,从而可以实现python用三行代码实现中英互译。
封装好的python中英互译模块
from translate import Translator
# 封装好的翻译模块
输入参数:
“E2C”:英译中
"C2E":中译英
class LanguageTrans():
这个网页是在是太占空间了, 挡到了好多东西… 我这个强迫症受不了( •̀ ω •́ )✧
于是想起以前学习python的时候好像写过一个翻译器, 便拿过来稍作修改, 已解决现在的困境(我需要一个很小的浮窗翻译器)
当当当当, 一条命令直接启...
要使用 Python 创建精确的翻译器,您可以使用现有的翻译 API。
有许多免费的翻译 API 可供选择,例如 Google 翻译 API 和 Microsoft Azure 翻译 API。这些 API 提供了用于翻译文本的简单接口,可以使用 Python 调用。
下面是使用 Google 翻译 API 的示例代码:
import requests
def translate(text, ta...
对于我这种英语比较差的人来说,无论是敲
代码还是看文档,
那都是离不开
翻译软件的于是乎,我想自己用
python做一个
翻译软件,
花了一个小时,终于做了出来了,各种语言随便翻
一、需要的库
translate:
谷歌
翻译的第三方包,可以实现多种语言之间的相互
翻译。
tkinter:
Tkinter 是
Python 的标准 GUI 库。
Python 使用
Tkinter 可以快速的创建 GU
以下是 Python 程序员必备的软件:
1. Python 解释器:Python 官网提供了最新版本的 Python 解释器下载,可以在自己的电脑上安装并运行 Python 程序。
2. Pycharm:Pycharm 是一款专业的 Python 集成开发环境(IDE),它提供了丰富的功能,例如代码编辑、代码调试、代码版本控制、代码分析等等,是 Python 程序员必备的工具。
3. Anaconda:Anaconda 是一个数据科学和机器学习的开发环境,它提供了 Python 解释器、包管理器、环境管理器等工具,可以方便地管理 Python 程序的依赖。
4. Jupyter Notebook:Jupyter Notebook 是一个交互式的 Python 编辑器,可以在浏览器中执行 Python 代码,并且支持 Markdown 格式的文本编辑,非常适合用于数据分析和机器学习的开发。
5. Git:Git 是一个版本控制工具,可以方便地管理代码的版本和分支,是 Python 程序员必备的工具之一。
6. Docker:Docker 是一种容器化技术,可以方便地打包和部署 Python 程序,非常适合用于开发和部署复杂的 Python 应用程序。