import tkinter as tk
from tkinter import ttk, scrolledtext
from googletrans import Translator

class OfflineTransApp:
    def __init__(self, root):
        self.root = root
        self.root.title("离线简易翻译器")
        self.root.geometry("620x420")
        self.translator = Translator()

        frame_top = ttk.Frame(root, padding=10)
        frame_top.pack(fill="x")

        langs = ["zh-CN", "en", "ja", "ko", "fr", "de"]
        lang_name = ["中文", "英文", "日语", "韩语", "法语", "德语"]

        ttk.Label(frame_top, text="目标语言：").grid(row=0, column=0)
        self.select_lang = ttk.Combobox(frame_top, values=lang_name, width=8)
        self.select_lang.set("英文")
        self.select_lang.grid(row=0, column=1, padx=5)

        ttk.Button(frame_top, text="翻译", command=self.do_trans).grid(row=0, column=3, padx=10)

        ttk.Label(root, text="输入：").pack(anchor="w", padx=10)
        self.in_box = scrolledtext.ScrolledText(root, width=72, height=8)
        self.in_box.pack(padx=10)

        ttk.Label(root, text="结果：").pack(anchor="w", padx=10)
        self.out_box = scrolledtext.ScrolledText(root, width=72, height=8)
        self.out_box.pack(padx=10)

        self.lang_dict = {
            "中文": "zh-CN",
            "英文": "en",
            "日语": "ja",
            "韩语": "ko",
            "法语": "fr",
            "德语": "de"
        }

    def do_trans(self):
        txt = self.in_box.get("1.0", tk.END).strip()
        if not txt:
            self.out_box.delete("1.0", tk.END)
            self.out_box.insert("1.0", "请输入文本！")
            return
        target = self.lang_dict[self.select_lang.get()]
        try:
            res = self.translator.translate(txt, dest=target)
            self.out_box.delete("1.0", tk.END)
            self.out_box.insert("1.0", res.text)
        except Exception as err:
            self.out_box.delete("1.0", tk.END)
            self.out_box.insert("1.0", f"翻译失败：{err}\n该库网络不稳定，推荐百度API版本！")

if __name__ == "__main__":
    win = tk.Tk()
    app = OfflineTransApp(win)
    win.mainloop()