0
点赞
收藏
分享

微信扫一扫

2021-09-11

扶摇_hyber 2022-04-21 阅读 88
python

文章目录


翻译小助手

本人英文水平很差,把论文翻译成英文的时候往往需要多种翻译软件,来对翻译的语句进行对比修改,于是为了免受这种折磨,写了一个汇集百度翻译、有道翻译和腾讯翻译的小软件,代码开源在gitee上供大家参考,指导。


一、API申请

百度翻译和腾讯翻译每月都有百万字符的免费额度,有道翻译免费送100元翻译额度(用了好久才用了3块钱),url如下:
百度翻译:https://fanyi-api.baidu.com/
有道翻译:https://ai.youdao.com/login.s
腾讯翻译:https://cloud.tencent.com/document/product/551/15611
申请API的时候可能比较繁琐(需要安装相应的包)。

二、使用步骤

1.登录API

登录界面:
在这里插入图片描述
输入API ID和Password点击Login就会把密钥放进配置文件App.ini里,输入一次即可(代码太多不放片段参考gitee)。

2.功能介绍

一、翻译功能:
在这里插入图片描述

调用翻译API接口获取翻译文本(具体参考gitee)
清空按钮清空输入框和翻译框的所有文字,复制按钮复制翻译框的所有文字。

def text_get():  #将获取翻译的文本,写入翻译框
    if T_2 == False:
        var_text = T_1.get(1.0, 'end')
        var_text_str = str(var_text)
        var_translation_1 = translation_baidu(var_text_str)
        var_translation_2 = translation_youdao(var_text_str)
        var_translation_3 = translation_tengxun(var_text_str)
        all_translation = var_translation_1 + var_translation_2 + var_translation_3
        T_2.insert('insert', all_translation)
    else:
        T_2.delete(1.0, 'end')
        var_text = T_1.get(1.0, 'end')
        var_text_str = str(var_text)
        var_translation_1 = translation_baidu(var_text_str)
        var_translation_2 = translation_youdao(var_text_str)
        var_translation_3 = translation_tengxun(var_text_str)
        all_translation = var_translation_1 + var_translation_2 + var_translation_3
        T_2.insert('insert', all_translation)
def text_clear():
       T_1.delete(1.0, 'end')
       T_2.delete(1.0, 'end')
def text_copy():
    t_copy=T_2.get(1.0,'end')
    pyperclip.copy(str(t_copy))
    pyperclip.paste()

每个按钮为了防止出现卡死现象,加入了多线程处理。

def text_get_thread():
    th=threading.Thread(target=text_get)
    th.setDaemon(True)
    th.start()
def text_get_EC_thread():
    th=threading.Thread(target=text_get_EC)
    th.setDaemon(True)
    th.start()

二、导入(导出)文件:
支持导入 .docx 和 .txt (将文件导入到输入框)

def File_DOCX():
    f_docx=askopenfilename(title='上传文件',initialdir='C:',filetypes=[('.docx', '*.docx')])
    file=docx.Document(str(f_docx))
    for paper in file.paragraphs:
        T_1.insert('insert',paper.text)
def File_TXT():
    f_txt = askopenfilename(title='上传文件', initialdir='C:', filetypes=[('.txt', '*.txt')])
    with open(file=f_txt, mode='r+', encoding='utf-8') as f:
        b = f.read()
        T_1.insert('insert', b)

支持到处 .docx文件 (将翻译结果以 .docx文件导出到电脑)

def output_File_DOCX():
    f_output = askdirectory(title='上传文件', initialdir='C:')
    d_suffix = '/导出文件.docx'
    folder_directory = str(f_output) + d_suffix
    document = docx.Document()
    t_text=T_2.get(1.0,'end')
    document.add_paragraph(str(t_text))
    document.save(folder_directory)

注:因为使用的为免费的翻译接口,控制文件文字在1000字左右
三、GUI主题
在这里插入图片描述
使用tkinter自带的调色板,将颜色保存到配置文件theme.ini文件里

def window_color():
    w_color=askcolor(title='界面颜色')
    w_color_str=w_color[1]   #得到颜色字符
    window.config(bg=w_color_str)
    config = cp.ConfigParser()   #打开ini配置文件
    config.read("theme.ini", encoding="utf-8") #读取配置文件
    config['theme']['window_clor'] = w_color_str  #将用户的设置写入到配置文件
    with open('theme.ini', 'w') as f:
        config.write(f)

总结

之前都在使用matlab,刚学的python编程所以写的代码有些臃肿(400行左右),不过通过编写这个小软件确实学到了不少东西,希望大家可以提供一些宝贵的意见,gitee仓库 : https://gitee.com/liu15/project.git

举报

相关推荐

0 条评论