python之做一个简易的翻译器

平时经常在网上翻译一些单词,突发奇想,可不可以直接利用python去实现一个简易翻译器呢?话不多说开始实践。

一.利用googletrans

首先你需要下载’

pip install googletrans==4.0.0-rc1

二.简易版本

from googletrans import Translator, LANGUAGES

def translate_text(text, src_lang='auto', dest_lang='en'):
    translator = Translator()
    try:
        translation = translator.translate(text, src=src_lang, dest=dest_lang)
        return translation.text
    except Exception as e:
        return str(e)

def list_languages():
    for code, language in LANGUAGES.items():
        print(f"{code}: {language}")

if __name__ == "__main__":
    # 列出所有可用的语言
    list_languages()

    # 输入要翻译的文本和目标语言
    text_to_translate = input("Enter the text you want to translate: ")
    target_language = input("Enter the target language (e.g., 'zh-CN'): ")

    # 翻译并打印结果
    translated_text = translate_text(text_to_translate, dest_lang=target_language)
    print(f"Translated text: {translated_text}")

三.利用tkinter做一个GUI界面程序

import tkinter as tk
from tkinter import filedialog, messagebox
from PIL import Image, ImageTk
from googletrans import Translator, LANGUAGES


class TranslationApp:
    def __init__(self, master):
        self.master = master
        master.title("Simple Translator with Background Image")

        # 加载背景图片
        img = Image.open("background_image.jpg")  # 将路径替换为你的图片文件路径
        background_image = ImageTk.PhotoImage(img)
        background_label = tk.Label(master, image=background_image)
        background_label.image = background_image
        background_label.place(x=0, y=0, relwidth=1, relheight=1)

        # 创建翻译器对象
        self.translator = Translator()

        # 创建输入框和输出框
        self.text_input = tk.Entry(master, width=50)
        self.text_input.pack(pady=(10, 5))
        self.text_output = tk.Text(master, height=5, width=50)
        self.text_output.pack(pady=(5, 10))

        # 创建下拉菜单
        self.source_lang_var = tk.StringVar(master)
        self.target_lang_var = tk.StringVar(master)

        self.source_lang_menu = tk.OptionMenu(master, self.source_lang_var, *LANGUAGES.keys())
        self.source_lang_menu.pack(pady=(5, 0))

        self.target_lang_menu = tk.OptionMenu(master, self.target_lang_var, *LANGUAGES.keys())
        self.target_lang_menu.pack(pady=(5, 0))

        # 创建翻译按钮
        self.translate_button = tk.Button(master, text="Translate", command=self.translate)
        self.translate_button.pack(pady=(5, 10))

    def translate(self):
        try:
            translation = self.translator.translate(
                self.text_input.get(),
                src=self.source_lang_var.get(),
                dest=self.target_lang_var.get()
            )
            self.text_output.delete(1.0, tk.END)
            self.text_output.insert(tk.END, translation.text)
        except Exception as e:
            messagebox.showerror("Error", str(e))


if __name__ == "__main__":
    root = tk.Tk()
    my_gui = TranslationApp(root)
    root.mainloop()

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值