import tkinter as tk
from tkinter import ttk, messagebox
import requests

# 翻译函数（调用免费翻译接口）
def translate_text():
    # 获取输入内容
    text = input_text.get("1.0", tk.END).strip()
    if not text:
        messagebox.showwarning("提示", "请输入要翻译的内容！")
        return

    try:
        # 免费翻译API接口
        url = "https://api.mymemory.translated.net/get"
        
        # 判断语言（中译英/英译中）
        if any('\u4e00' <= char <= '\u9fff' for char in text):
            # 中文 → 英文
            params = {"q": text, "langpair": "zh-CN|en"}
        else:
            # 英文 → 中文
            params = {"q": text, "langpair": "en|zh-CN"}

        # 发送请求
        response = requests.get(url, params=params)
        result = response.json()

        # 提取翻译结果
        if "responseData" in result and "translatedText" in result["responseData"]:
            translated = result["responseData"]["translatedText"]
            # 清空结果框并插入翻译内容
            output_text.config(state=tk.NORMAL)
            output_text.delete("1.0", tk.END)
            output_text.insert(tk.END, translated)
            output_text.config(state=tk.DISABLED)
        else:
            messagebox.showerror("错误", "翻译失败，请重试！")

    except Exception as e:
        messagebox.showerror("网络错误", f"请检查网络连接！\n错误：{str(e)}")

# 清空输入输出框
def clear_all():
    input_text.delete("1.0", tk.END)
    output_text.config(state=tk.NORMAL)
    output_text.delete("1.0", tk.END)
    output_text.config(state=tk.DISABLED)

# ==================== 界面创建 ====================
window = tk.Tk()
window.title("简易翻译软件 v1.0")
window.geometry("600x450")  # 窗口大小
window.resizable(False, False)  # 固定窗口大小

# 样式设置
style = ttk.Style()
style.configure("TButton", font=("微软雅黑", 11))
style.configure("TLabel", font=("微软雅黑", 12))

# 输入框标签
tk.Label(window, text="输入内容（中文/英文）：", font=("微软雅黑", 12)).place(x=20, y=10)

# 输入文本框
input_text = tk.Text(window, font=("微软雅黑", 11), height=8, width=70)
input_text.place(x=20, y=40)
input_text.bind("<Return>", lambda event: translate_text())  # 回车翻译

# 翻译按钮
translate_btn = ttk.Button(window, text="翻译", command=translate_text)
translate_btn.place(x=220, y=200, width=100)

# 清空按钮
clear_btn = ttk.Button(window, text="清空", command=clear_all)
clear_btn.place(x=350, y=200, width=100)

# 输出框标签
tk.Label(window, text="翻译结果：", font=("微软雅黑", 12)).place(x=20, y=240)

# 输出文本框（不可编辑）
output_text = tk.Text(window, font=("微软雅黑", 11), height=8, width=70, state=tk.DISABLED)
output_text.place(x=20, y=270)

# 运行主界面
if __name__ == "__main__":
    window.mainloop()