diff --git a/docutranslate/__init__.py b/docutranslate/__init__.py index 6f8bbde..03e0745 100644 --- a/docutranslate/__init__.py +++ b/docutranslate/__init__.py @@ -1,4 +1,4 @@ -__version__="0.2.37" +__version__="0.2.38" diff --git a/docutranslate/translater.py b/docutranslate/translater.py index 7ebe15b..7e74a8c 100644 --- a/docutranslate/translater.py +++ b/docutranslate/translater.py @@ -31,7 +31,6 @@ class FileTranslater: if isinstance(file_path, str): file_path = Path(file_path) self.file_path: Path = file_path - self.file_path: Path = file_path self._mask_dict = MaskDict() self.markdown: str = "" self.chunksize = chunksize @@ -48,7 +47,7 @@ class FileTranslater: translater_logger.info("检测到docling_artifact文件夹") self.docling_artifact = artifact_path self.timeout = timeout - self.file_suffix: str | None = None # 现在处理的文件后缀如".md"、".txt" + self.document: Document | None = None self.cache = cache self.cacher = document_cacher_global @@ -138,7 +137,7 @@ class FileTranslater: def read_document(self, document: Document, formula: bool, code: bool, save: bool, save_format: Literal["markdown", "html"], refine: bool, refine_agent: Agent | None): - self.file_suffix = document.suffix + self.document=document self.markdown = self._convert2markdown(document, formula=formula, code=code, artifact=self.docling_artifact) if refine: self.refine_markdown_by_agent(refine_agent) @@ -152,7 +151,7 @@ class FileTranslater: async def read_document_async(self, document: Document, formula: bool, code: bool, save: bool, save_format: Literal["markdown", "html"], refine: bool, refine_agent: Agent | None): - self.file_suffix = document.suffix + self.document = document.suffix self.markdown = await self._convert2markdown_async(document, formula=formula, code=code, artifact=self.docling_artifact) if refine: @@ -216,7 +215,7 @@ class FileTranslater: if refine_agent is None: refine_agent = self.default_refine_agent(custom_prompt) result: list[str] = refine_agent.send_prompts(chuncks) - if self.file_suffix == ".txt": + if self.document.suffix == ".txt": self.markdown = "\n".join(result) else: self.markdown = join_markdown_texts(result) @@ -231,7 +230,7 @@ class FileTranslater: if translate_agent is None: translate_agent = self.default_translate_agent(custom_prompt=custom_prompt, to_lang=to_lang) result: list[str] = translate_agent.send_prompts(chuncks) - if self.file_suffix == ".txt": + if self.document.suffix == ".txt": self.markdown = "\n".join(result) else: self.markdown = join_markdown_texts(result) @@ -246,7 +245,7 @@ class FileTranslater: if refine_agent is None: refine_agent = self.default_refine_agent(custom_prompt=custom_prompt) result: list[str] = await refine_agent.send_prompts_async(chuncks) - if self.file_suffix == ".txt": + if self.document.suffix == ".txt": self.markdown = "\n".join(result) else: self.markdown = join_markdown_texts(result) @@ -262,7 +261,7 @@ class FileTranslater: if translate_agent is None: translate_agent = self.default_translate_agent(to_lang=to_lang, custom_prompt=custom_prompt) result: list[str] = await translate_agent.send_prompts_async(chuncks) - if self.file_suffix == ".txt": + if self.document.suffix == ".txt": self.markdown = "\n".join(result) else: self.markdown = join_markdown_texts(result) @@ -276,10 +275,7 @@ class FileTranslater: if isinstance(output_dir, str): output_dir = Path(output_dir) if filename is None: - if self.file_path is not None: - filename = self.file_path.name - else: - filename = "output.md" + filename=f"{self.document.stem}_translated.md" # 确保输出目录存在 output_dir.mkdir(parents=True, exist_ok=True) full_name = output_dir / filename @@ -301,10 +297,8 @@ class FileTranslater: if isinstance(output_dir, str): output_dir = Path(output_dir) if filename is None: - if self.file_path is not None: - filename = self.file_path.name - else: - filename = "output.html" + if filename is None: + filename = f"{self.document.stem}_translated.html" # 确保输出目录存在 output_dir.mkdir(parents=True, exist_ok=True) full_name = output_dir / filename @@ -323,7 +317,7 @@ class FileTranslater: katex_js = f"" if not cdn else r"""""" auto_render = f'' if not cdn else r"""""" # language=javascript - renderMathInElement = r""" + render_math_in_element = r""" """ mermaid = f'' - if self.file_suffix == ".txt": + if self.document.suffix == ".txt": content = html.escape(self.export_to_markdown()).replace("\n", "
") else: content = markdowner.convert(self.export_to_markdown().replace("\\", "\\\\")) @@ -365,7 +359,7 @@ class FileTranslater: katexJs=katex_js, autoRender=auto_render, markdown=content, - renderMathInElement=renderMathInElement, + renderMathInElement=render_math_in_element, mermaid=mermaid, ) return render