# -*- coding: utf-8 -*-
"""英译中，入库前统一翻译"""
import os
import re
from typing import Optional


def _is_mostly_chinese(text: str) -> bool:
    if not text or len(text.strip()) < 2:
        return False
    chinese = len(re.findall(r"[\u4e00-\u9fff]", text))
    return chinese / max(len(text), 1) > 0.3


def translate_to_chinese(text: str) -> str:
    """将文本翻译成中文，失败或已是中文则返回原文。Google 失败时尝试 MyMemory。"""
    if not text or not text.strip():
        return text
    if os.environ.get("TRANSLATE_DISABLED", "0") == "1":
        return text
    s = str(text).strip()
    if len(s) > 2000:
        s = s[:2000]
    if _is_mostly_chinese(s):
        return text
    for translator in ["google", "mymemory"]:
        try:
            if translator == "google":
                from deep_translator import GoogleTranslator
                out = GoogleTranslator(source="auto", target="zh-CN").translate(s)
            else:
                from deep_translator import MyMemoryTranslator
                out = MyMemoryTranslator(source="auto", target="zh-CN").translate(s)
            if out and out.strip() and out != s:
                return out
        except Exception:
            continue
    return text
