def _translate_single_text(self, text, target_language, source_lauguage):
assert _is_bytes(text)
def split_text(text):
start = 0
text = quote_plus(text)
length = len(text)
while (length - start) > self._MAX_LENGTH_PER_QUERY:
for seperator in self._SEPERATORS:
index = text.rfind(seperator, start, start+self._MAX_LENGTH_PER_QUERY)
if index != -1:
break
else:
raise Error('input too large')
end = index + len(seperator)
yield unquote_plus(text[start:end])
start = end
yield unquote_plus(text[start:])
def make_task(text):
return lambda: self._basic_translate(text, target_language, source_lauguage)[0]
results = list(self._execute(make_task(i) for i in split_text(text)))
return tuple(''.join(i[n] for i in results) for n in range(len(self._writing)))
评论列表
文章目录