MCPcopy Create free account
hub / github.com/dialect-app/dialect / translate

Method translate

dialect/providers/modules/google.py:303–418  ·  view source on GitHub ↗
(self, request)

Source from the content-addressed store, hash-verified

301 return self.format_url(url, params=params)
302
303 async def translate(self, request):
304 src_lang, dest_lang = self.denormalize_lang(request.src, request.dest)
305
306 # Form data
307 data = {
308 "f.req": self._build_rpc_request(request.text, src_lang, dest_lang),
309 }
310
311 # Do request
312 response = await self.post(self.translate_url, data, self._headers, True, False, False)
313
314 try:
315 token_found = False
316 square_bracket_counts = [0, 0]
317 resp = ""
318 data = response.decode("utf-8")
319
320 for line in data.split("\n"):
321 token_found = token_found or f'"{RPC_ID}"' in line[:30]
322 if not token_found:
323 continue
324
325 is_in_string = False
326 for index, char in enumerate(line):
327 if char == '"' and line[max(0, index - 1)] != "\\":
328 is_in_string = not is_in_string
329 if not is_in_string:
330 if char == "[":
331 square_bracket_counts[0] += 1
332 elif char == "]":
333 square_bracket_counts[1] += 1
334
335 resp += line
336 if square_bracket_counts[0] == square_bracket_counts[1]:
337 break
338
339 data = json.loads(resp)
340 parsed = json.loads(data[0][2])
341 translated_parts = None
342 translated = None
343 try:
344 translated_parts = list(
345 map(
346 lambda part: TranslatedPart(
347 part[0] if len(part) > 0 else "", part[1] if len(part) >= 2 else []
348 ),
349 parsed[1][0][0][5],
350 )
351 )
352 except TypeError:
353 translated_parts = [TranslatedPart(parsed[1][0][1][0], [parsed[1][0][0][0], parsed[1][0][1][0]])]
354
355 first_iter = True
356 translated = ""
357 for part in translated_parts:
358 if not part.text.isspace() and not first_iter:
359 translated += " "
360 if first_iter:

Callers

nothing calls this directly

Calls 9

_build_rpc_requestMethod · 0.95
_strip_html_tagsMethod · 0.95
UnexpectedErrorClass · 0.90
TranslationClass · 0.90
TranslationMistakeClass · 0.90
TranslatedPartClass · 0.85
denormalize_langMethod · 0.80
postMethod · 0.80

Tested by

no test coverage detected