import pygame
import requests
import json

# ======================
# 翻译函数（公共API）
# ======================


def translate(text):
    url = "https://api.mymemory.translated.net/get"
    params = {
        "q": text,
        "langpair": "zh|en"
    }
    try:
        r = requests.get(url, params=params, timeout=5)
        data = r.json()
        return data["responseData"]["translatedText"]
    except Exception as e:
        return "翻译失败"


# ======================
# Pygame 初始化
# ======================
pygame.init()

WIDTH, HEIGHT = 600, 400
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Pygame 翻译软件")

font = pygame.font.SysFont("simhei", 28)

clock = pygame.time.Clock()

input_text = ""
result_text = ""

running = True
while running:
    screen.fill((30, 30, 30))

    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                result_text = translate(input_text)
            elif event.key == pygame.K_BACKSPACE:
                input_text = input_text[:-1]
            else:
                input_text += event.unicode

    # 绘制提示
    tip = font.render("请输入中文，按 Enter 翻译：", True, (200, 200, 200))
    screen.blit(tip, (20, 20))

    # 输入框
    input_surface = font.render(input_text, True, (255, 255, 255))
    pygame.draw.rect(screen, (70, 70, 70), (20, 60, 560, 40))
    screen.blit(input_surface, (25, 65))

    # 翻译结果
    result_surface = font.render(result_text, True, (0, 255, 127))
    screen.blit(result_surface, (20, 130))

    pygame.display.flip()
    clock.tick(30)

pygame.quit()
