平时经常在网上翻译一些单词,突发奇想,可不可以直接利用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()