MCPcopy Index your code
hub / github.com/PDFMathTranslate/PDFMathTranslate / TranslateConverter

Class TranslateConverter

pdf2zh/converter.py:130–527  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

128
129# fmt: off
130class TranslateConverter(PDFConverterEx):
131 def __init__(
132 self,
133 rsrcmgr,
134 vfont: str = None,
135 vchar: str = None,
136 thread: int = 0,
137 layout={},
138 lang_in: str = "",
139 lang_out: str = "",
140 service: str = "",
141 noto_name: str = "",
142 noto: Font = None,
143 envs: Dict = None,
144 prompt: Template = None,
145 ignore_cache: bool = False,
146 ) -> None:
147 super().__init__(rsrcmgr)
148 self.vfont = vfont
149 self.vchar = vchar
150 self.thread = thread
151 self.layout = layout
152 self.noto_name = noto_name
153 self.noto = noto
154 self.translator: BaseTranslator = None
155 # e.g. "ollama:gemma2:9b" -> ["ollama", "gemma2:9b"]
156 param = service.split(":", 1)
157 service_name = param[0]
158 service_model = param[1] if len(param) > 1 else None
159 if not envs:
160 envs = {}
161 for translator in [GoogleTranslator, BingTranslator, DeepLTranslator, DeepLXTranslator, OllamaTranslator, XinferenceTranslator, AzureOpenAITranslator,
162 OpenAITranslator, ZhipuTranslator, ModelScopeTranslator, SiliconTranslator, GeminiTranslator, AzureTranslator, TencentTranslator, DifyTranslator, AnythingLLMTranslator, ArgosTranslator, GrokTranslator, GroqTranslator, DeepseekTranslator, OpenAIlikedTranslator, QwenMtTranslator,]:
163 if service_name == translator.name:
164 self.translator = translator(lang_in, lang_out, service_model, envs=envs, prompt=prompt, ignore_cache=ignore_cache)
165 if not self.translator:
166 raise ValueError("Unsupported translation service")
167
168 def receive_layout(self, ltpage: LTPage):
169 # 段落
170 sstk: list[str] = [] # 段落文字栈
171 pstk: list[Paragraph] = [] # 段落属性栈
172 vbkt: int = 0 # 段落公式括号计数
173 # 公式组
174 vstk: list[LTChar] = [] # 公式符号组
175 vlstk: list[LTLine] = [] # 公式线条组
176 vfix: float = 0 # 公式纵向偏移
177 # 公式组栈
178 var: list[list[LTChar]] = [] # 公式符号组栈
179 varl: list[list[LTLine]] = [] # 公式线条组栈
180 varf: list[float] = [] # 公式纵向偏移栈
181 vlen: list[float] = [] # 公式宽度栈
182 # 全局
183 lstk: list[LTLine] = [] # 全局线条栈
184 xt: LTChar = None # 上一个字符
185 xt_cls: int = -1 # 上一个字符所属段落,保证无论第一个字符属于哪个类别都可以触发新段落
186 vmax: float = ltpage.width / 4 # 行内公式最大宽度
187 ops: str = "" # 渲染结果

Callers 3

setUpMethod · 0.90
translate_patchFunction · 0.90

Calls

no outgoing calls

Tested by 2

setUpMethod · 0.72