写一个带界面的多语言翻译器
时间: 2024-05-10 19:14:16 浏览: 18
好的,我可以帮你写一个基于Python的多语言翻译器,使用Tkinter库构建界面,Google Translate API实现翻译功能。
以下是大致的代码实现:
```python
import tkinter as tk
from googletrans import Translator
class TranslatorApp:
def __init__(self, master):
self.master = master
self.master.title("多语言翻译器")
self.master.geometry("400x300")
self.translator = Translator()
# 创建标签
self.label1 = tk.Label(self.master, text="输入文本:")
self.label1.grid(row=0, column=0)
self.label2 = tk.Label(self.master, text="翻译结果:")
self.label2.grid(row=1, column=0)
# 创建文本框
self.input_text = tk.Text(self.master, height=5, width=40)
self.input_text.grid(row=0, column=1)
self.output_text = tk.Text(self.master, height=5, width=40)
self.output_text.grid(row=1, column=1)
# 创建语言选择下拉框
self.languages = ["auto", "zh-cn", "en", "ja", "ko", "fr", "es", "pt", "de", "it", "ru", "ar", "af", "am", "az", "be", "bg", "bn", "bs", "ca", "ceb", "co", "cs", "cy", "da", "el", "eo", "et", "eu", "fa", "fi", "fy", "ga", "gd", "gl", "gu", "ha", "haw", "hi", "hmn", "hr", "ht", "hu", "hy", "id", "ig", "is", "jw", "ka", "kk", "km", "kn", "ku", "ky", "la", "lb", "lo", "lt", "lv", "mg", "mi", "mk", "ml", "mn", "mr", "ms", "mt", "my", "ne", "nl", "no", "ny", "pa", "pl", "ps", "ro", "sd", "si", "sk", "sl", "sm", "sn", "so", "sq", "sr", "st", "su", "sv", "sw", "ta", "te", "tg", "th", "tk", "tl", "tr", "ug", "uk", "ur", "uz", "vi", "xh", "yi", "yo", "zu"]
self.language1 = tk.StringVar()
self.language1.set(self.languages[0])
self.language2 = tk.StringVar()
self.language2.set(self.languages[1])
self.option1 = tk.OptionMenu(self.master, self.language1, *self.languages)
self.option1.grid(row=0, column=2)
self.option2 = tk.OptionMenu(self.master, self.language2, *self.languages)
self.option2.grid(row=1, column=2)
# 创建翻译按钮
self.translate_button = tk.Button(self.master, text="翻译", command=self.translate)
self.translate_button.grid(row=2, column=1)
def translate(self):
text = self.input_text.get("1.0", tk.END)
lang1 = self.language1.get()
lang2 = self.language2.get()
result = self.translator.translate(text, src=lang1, dest=lang2).text
self.output_text.delete("1.0", tk.END)
self.output_text.insert(tk.END, result)
if __name__ == "__main__":
root = tk.Tk()
app = TranslatorApp(root)
root.mainloop()
```
在运行程序前,需要先安装以下依赖库:
```bash
pip install googletrans==4.0.0-rc1
```
运行程序后,会弹出一个窗口,可以输入要翻译的文本,选择源语言和目标语言,点击翻译按钮,即可得到翻译结果。