This commit is contained in:
xunbu
2025-08-27 13:39:40 +08:00
parent 3e39035b3c
commit b1d68c2fc0
8 changed files with 36 additions and 47 deletions

View File

@@ -1,20 +1,16 @@
import asyncio
from dataclasses import dataclass, field
from dataclasses import dataclass
from io import BytesIO
from typing import Self, Literal, List, Dict, Any, Tuple
import docx
from docx.document import Document as DocumentObject
from docx.oxml.ns import nsdecls
from docx.oxml import OxmlElement
from docx.table import _Cell, Table
from docx.text.paragraph import Paragraph
from docx.text.run import Run
from docutranslate.agents.segments_agent import SegmentsTranslateAgentConfig, SegmentsTranslateAgent
from docutranslate.ir.document import Document
from docutranslate.translator.ai_translator.base import AiTranslatorConfig
from docutranslate.translator.base import Translator
from docutranslate.translator.ai_translator.base import AiTranslatorConfig, AiTranslator
def is_image_run(run: Run) -> bool:
@@ -32,7 +28,7 @@ class DocxTranslatorConfig(AiTranslatorConfig):
separator: str = "\n"
class DocxTranslator(Translator):
class DocxTranslator(AiTranslator):
"""
用于翻译 .docx 文件的翻译器。
此版本经过优化,可以处理图文混排的段落而不会丢失图片。
@@ -188,4 +184,4 @@ class DocxTranslator(Translator):
# 将翻译结果写回文档
document.content = await asyncio.to_thread(self._after_translate, doc, elements_to_translate, translated_texts,
original_texts)
return self
return self