Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.82 KB | None | 0 0
  1. from googletrans import Translator
  2.  
  3. word_list = []
  4.  
  5.  
  6. class Translate:
  7.  
  8. def __init__(self, word, target_language='en'):
  9. translator = Translator()
  10.  
  11. self.target_language = target_language
  12. self.original_language = translator.detect(word).lang
  13. self.chained_translation = self.repeat_translation(word, target_language)
  14.  
  15. def __getitem__(self, item):
  16. return self.chained_translation[item]
  17.  
  18. def __len__(self):
  19. return len(self.chained_translation)
  20.  
  21. def repeat_translation(self, word, target, count=0):
  22. translator = Translator()
  23. translated_text = translator.translate(word, dest=target).text
  24. word_list.append(translated_text)
  25. count += 1
  26. # When recursive count is odd.
  27. if count % 2 == 1:
  28. return self.repeat_translation(translated_text, self.original_language, count)
  29. # When recursive count is even and under 10.
  30. if count < 10:
  31. return self.repeat_translation(translated_text, self.target_language, count)
  32. # When recursive ends.
  33. else:
  34. return word_list
  35.  
  36. test = Translate('は忙しい。彼は多忙な人間だ。勉強をしたい')
  37. print(test.chained_translation)
  38. print(test[9])
  39. print(test[8])
  40. print(len(test))
  41.  
  42. ['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', '私は忙しいです。彼は忙しい人だ。学びたい']
  43. 私は忙しいです。彼は忙しい人だ。学びたい
  44. I am busy. He is a busy man. I want to learn
  45. 10
  46.  
  47. from googletrans import Translator
  48.  
  49. def chained_translations(phrase, target_language='en', source_language=None):
  50. translator = Translator()
  51. source_language = source_language or translator.detect(phrase).lang
  52. while True:
  53. phrase = translator.translate(phrase, src=source_language, dest=target_language).text
  54. yield phrase
  55. source_language, target_language = target_language, source_language
  56.  
  57. >>> test = chained_translations('は忙しい。彼は多忙な人間だ。勉強をしたい')
  58. >>> print(next(test))
  59. 'I am busy. He is a busy man. I want to learn'
  60. >>> print(next(test))
  61. '私は忙しいです。彼は忙しい人だ。学びたい'
  62. >>> from itertools import islice
  63. >>> print(list(islice(test, 3)))
  64. ['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