因为我英文不好,对接口、函数、结构体起名字的时候特别为难,因此我使用Python写了一个工具
在输入框输入中文,就可以生成Golang语言对应的接口、函数或接口体的写法;也可以切换到英文翻译。如下演示:

看懂代码之后,就可以修改为其它语言对应的写法。这里使用到百度的翻译API,因此自己要替换掉下面的两个key值就直接可以用了。
Baidufanyi类用于中英文翻译;
Initface类用于创建窗口,之后调用第一个Frame,这里为了能切换不同页面,使用两个Frame作为两个页面
OneFace类是第一个页面,init函数用于初始化页面,faceUI方法用于显示控件和逻辑控制,并使用了grid布局,oneBack方法用于销毁本页面并切换到另一个页面
TwoFace类和第一个页面用法一致,页面使用了pack布局

# 翻译.py
import tkinter
import requests
import hashlib
import pyperclip
import timeclass Baidufanyi:def __init__(self, appid="百度API的应用ID", key="百度API的key"):self.appid = appidself.key = keyself.salt = "1435660288"def getEnglish(self, srcdata):q = srcdatafroms = "&from=zh"tos = "&to=en"sign = self.appid+q+self.salt+self.keysign = "&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+signresult = requests.get(url)en_resu = eval(result.text)return en_resu["trans_result"][0]["dst"]def getChina(self, srcdata):q = srcdatafroms = "&from=en"tos = "&to=zh"sign = self.appid+q+self.salt+self.keysign = "&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+signresult = 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 = windowsself.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 = oneWindowsself.oneface = tkinter.Frame(self.oneWindows)self.oneface.configure(background='#87CEFF')self.oneface.grid()self.faceUI()# 使用了grid布局,显示控件,里面的函数用于逻辑处理def faceUI(self):# 获取翻译结果并写入到大文本框def getEn():text.delete("0.0", "end")  # 删除大文本框的内容srcdata = getTextInput(text_0).replace('\n', '').replace(' ', '')if srcdata == "":returndata = fanyi.getEnglish(srcdata)text.insert("0.0", data)# 获取翻译结果并写入到大文本框def getInterface():text.delete("0.0", "end")  # 删除大文本框的内容srcdata = getTextInput(text_1).replace('\n', '').replace(' ', '')if srcdata == "":returndata = 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 == "":returndata = 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 == "":returndata = 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)# 根据多行文本的变量名获取里面的值,textname:多行文本的变量名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 = twoWindowsself.twoface = tkinter.Frame(self.twoWindows)self.twoface.config(bg='#87CEFF')self.twoface.pack()self.faceUI()# 使用了pack布局,显示控件def faceUI(self):# 根据多行文本的变量名获取里面的值,textname:多行文本的变量名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 == "":returndata = 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制作翻译工具(程序员必备中英文翻译工具)相关推荐

  1. 程序员必备网站和工具

    程序员必备网站和工具 思维工具:Xmind PPT模板:办公资源.站长素材.笨鸟网.PPTStone.六图网.欧酷PPT 招聘软件:前程无忧.智联招聘.BOSS直聘 Maven仓库:https://m ...

  2. java的六大_java程序员必备的六大工具!

    原标题:java程序员必备的六大工具! Java程序员都会有套工具来应对工作上的挑战.多年来,Java 程序员使用软件来完成他们的工作.有很多工具对他们是有用的,不过对于初入行的人员来说,寻找合适的工 ...

  3. 10款Web程序员必备的CSS工具

    对于web开发来说,CSS是最有效的美化页面.设置页面布局的技术.但问题是,CSS是一种标记性语言,语法结构非常的松散.不严谨.WEB程序员会经常发现自己的或别人的CSS文件里有大量的冗余代码或错误或 ...

  4. 我常用的两个翻译神器,程序员必备.

    我从五月中旬开始,每天强迫自己阅读至少一篇纯英文的文章.其实,这也算是跳出舒适区了.毕竟,相同内容的文章,中文看一篇需要 5 分钟的话,纯英文可能需要 10~15 分钟. 我平时通常会从 Medium ...

  5. 15款Java程序员必备的开发工具(转)

    如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它 对于Java,有两种截然不同的观点: 一种认为Java是最简单功能 ...

  6. 程序开发工具java_15款Java程序员必备的开发工具

    对于Java,有两种截然不同的观点:一种认为Java是最简单功能最强大的编程语言之一,另一种则表示这种编程语言既难用又复杂.下面这些工具或许功能和作用不同,但是有着一个共同的主旨,那就是--它们都是为 ...

  7. java程序 开发工具_15款Java程序员必备的开发工具

    如果你是一名Web开发人员,那么用膝盖想也知道你的职业生涯大部分将使用Java而度过.这是一款商业级的编程语言,我们没有办法不接触它. 对于Java,有两种截然不同的观点:一种认为Java是最简单功能 ...

  8. 程序员必备的画图工具

    作者:CUGGZ 来源: 前端充电宝 XMind 是一个跨平台的思维导图软件,具有多种结构样式,除了普通的思维导图,还包括树形图.逻辑图.鱼骨图.时间轴.树状表格等等,不同的结构样式可以自由组合混用, ...

  9. 推荐几个能被惊艳到的程序员必备的画图工具

    最近经常有小伙伴问文章中的图是用什么软件画的,下面就来梳理一下常用的画图工具: 常规画图: Excalidraw.draw.io.语雀 思维导图: Xmind 代码截图: Carbon 画图模板: P ...

最新文章

  1. 简单分解帮助看清复杂问题
  2. 持续集成之jenkins基础
  3. Android通过Scheme协议打开APP界面
  4. 目标检测特殊层:PSROIPooling详解
  5. bfc是什么_关于margin的两个经典bug,以及bfc简述
  6. 重温2 在Activity中使用Menu
  7. 五、CPU详解、寄存器详解、标志寄存器详解
  8. java 文件url地址_简单的解析文件,取URL地址,并根据地址抓下页面
  9. Snap 程序包管理器被爆Linux 提权漏洞
  10. LINQ的ORM功能中对使用sp_executesql语句的存储过程的支持
  11. 《黑客大曝光:移动应用安全揭秘及防护措施》一3.5 小结
  12. EF实体框架之CodeFirst五
  13. 塔菲克蓝牙适配器驱动_TAFIQ蓝牙适配器驱动(TAFIQ蓝牙设备驱动程序)V4.1 正式版...
  14. 批量生成pdf书签目录之目录自动格式化(Python实现)
  15. 基于JavaEye-API实现的Gerry-聊天Dos版v1.0
  16. [深度学习技巧]·数据类别不平衡问题处理
  17. 使用孪生网络和零样本学习进行文本分类
  18. 飞链云创始人受CSDN邀请,参与元宇宙创富交流会
  19. 互联网人集体的远程办公终将是昙花一现?
  20. 爱普生打印机在计算机上的地址,爱普生打印机怎么使用 爱普生打印机使用方法【详解】...

热门文章

  1. SkeyeVSS森林防火远程监控解决方案
  2. 基于Python多元线性回归、机器学习、深度学习在近红外光谱分析中的实践应用培训班
  3. OUC2021秋-Web安全技术-期末(回忆版)
  4. 进入职场瓶颈期?3步摆脱“毛毛虫效应”,不做悲剧的“跟随者”
  5. WORD中自动生成目录
  6. win10删除鼠标右键选项
  7. 电商数据监测全过程——采集、清洗、分析
  8. Linux系统配置网卡ip地址
  9. Vue3实现打字机效果
  10. P2321 [HNOI2006]潘多拉的宝盒 题解