开发了个translator

开发了一个软件,将英文文本翻译成中文
功能介绍:

  1. 双击打开translate.exe
  2. 选择需要进行翻译的文本文件
  3. 等待翻译完成并且会生成文件名_translated.txt文件



功能实现逻辑:

  1. 使用阿里机器翻译API
  2. 用python实现文件读取及写入API返回翻译的结果
  3. 开发用户操作页面
  4. 将文件打包成EXE可执行文件

使用阿里机器翻译API

  1. 首先开通机器翻译服务
  2. 创建用户产生access_key_id和access_key_secret

用python实现文件读取及写入API返回翻译的结果

from alibabacloud_alimt20181012.client import Client as alimt20181012Client
from alibabacloud_tea_openapi import models as open_api_models
from alibabacloud_alimt20181012 import models as alimt_20181012_models
from alibabacloud_tea_util import models as util_models

 # 换成你账户产生的id和secret
ACCESS_KEY_ID = '123'
ACCESS_KEY_SECRET = '456'

def create_client(
    access_key_id: str,
    access_key_secret: str,
) -> alimt20181012Client:
    config = open_api_models.Config(
        access_key_id=access_key_id,
        access_key_secret=access_key_secret
    )
    config.endpoint = f'mt.cn-hangzhou.aliyuncs.com'
    return alimt20181012Client(config)

def translate(text,client):
    translate_general_request = alimt_20181012_models.TranslateGeneralRequest(
        format_type='text',
        source_language='en',
        target_language='zh',
        source_text=text,
        scene='general'
    )
    runtime = util_models.RuntimeOptions()
    resp = client.translate_general_with_options(translate_general_request, runtime)
    print(resp)
    return resp.body.data.__dict__['translated']

def translate_file(file_path):
    client = create_client(ACCESS_KEY_ID, ACCESS_KEY_SECRET)

    # 生成翻译后的字幕文件名
    translated_file_path = file_path.replace('.txt', f'_translated.txt')

    # 打开原始文件和翻译后的文件
    with open(file_path, 'r') as in_f, open(translated_file_path, 'w', encoding='utf-8') as out_f:
        for line in in_f:
            if line.strip() == "":
                continue
            translated_line = translate(line,client)
            out_f.write(translated_line)

    print(f'Translated file saved as {translated_file_path}')

if __name__ == '__main__':
    translate_file('D:\\xxx.txt')

开发用户操作页面

# 修改上面的代码 新增界面操作
from tkinter import Tk
from tkinter.filedialog import askopenfilename
from tkinter import messagebox

# 获取用户选择的文件路径
def get_file_path():
    # 创建一个根窗口,但不显示
    root = Tk()
    root.withdraw()

    # 显示文件选择对话框,并返回用户选择的文件路径
    file_path = askopenfilename()

    return file_path

# 获取用户选择的文件路径并进行翻译
file_path = get_file_path()
if file_path:
    translate_file(file_path)
    messagebox.showinfo("翻译完成", "翻译已完成!")

将文件打包成EXE可执行文件

  1. 安装PyInstaller:打开命令提示符窗口,并运行以下命令安装PyInstaller:
    pip install pyinstaller
  2. 创建打包脚本:在您的Python文件所在的目录中创建一个名为build.py的新文件,并为其添加以下内容:
    import PyInstaller.__main__
    if __name__ == '__main__':
    PyInstaller.__main__.run([
        'your_script.py',  # 您的Python文件名称
        '--onefile',
        '--noconsole',  # 如果您想隐藏控制台窗口
    ])
  3. 打包代码:在命令提示符窗口中,切换到build.py所在的目录,并运行以下命令打包您的代码:
    py -3 build.py