Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from googletrans import Translator
- word_list = []
- class Translate:
- def __init__(self, word, target_language='en'):
- translator = Translator()
- self.target_language = target_language
- self.original_language = translator.detect(word).lang
- self.chained_translation = self.repeat_translation(word, target_language)
- def __getitem__(self, item):
- return self.chained_translation[item]
- def __len__(self):
- return len(self.chained_translation)
- def repeat_translation(self, word, target, count=0):
- translator = Translator()
- translated_text = translator.translate(word, dest=target).text
- word_list.append(translated_text)
- count += 1
- # When recursive count is odd.
- if count % 2 == 1:
- return self.repeat_translation(translated_text, self.original_language, count)
- # When recursive count is even and under 10.
- if count < 10:
- return self.repeat_translation(translated_text, self.target_language, count)
- # When recursive ends.
- else:
- return word_list
- test = Translate('は忙しい。彼は多忙な人間だ。勉強をしたい')
- print(test.chained_translation)
- print(test[9])
- print(test[8])
- print(len(test))
- ['I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい', 'I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい', 'I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい', 'I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい', 'I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい']
- 私は忙しいです。彼は忙しい人だ。学びたい
- I am busy. He is a busy man. I want to learn
- 10
- from googletrans import Translator
- def chained_translations(phrase, target_language='en', source_language=None):
- translator = Translator()
- source_language = source_language or translator.detect(phrase).lang
- while True:
- phrase = translator.translate(phrase, src=source_language, dest=target_language).text
- yield phrase
- source_language, target_language = target_language, source_language
- >>> test = chained_translations('は忙しい。彼は多忙な人間だ。勉強をしたい')
- >>> print(next(test))
- 'I am busy. He is a busy man. I want to learn'
- >>> print(next(test))
- '私は忙しいです。彼は忙しい人だ。学びたい'
- >>> from itertools import islice
- >>> print(list(islice(test, 3)))
- ['I am busy. He is a busy man. I want to learn', '私は忙しいです。彼は忙しい人だ。学びたい', 'I am busy. He is a busy man. I want to learn']
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement