Skip to content

Instantly share code, notes, and snippets.

@bhavsarpratik
Created October 7, 2020 17:38
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bhavsarpratik/465be4f4d519be432160d611eecdda45 to your computer and use it in GitHub Desktop.
Save bhavsarpratik/465be4f4d519be432160d611eecdda45 to your computer and use it in GitHub Desktop.
from googletrans import Translator
from google.cloud import translate_v2 as translate
from textblob import TextBlob
class CustomTranslator:
def __init__(self, target='en'):
self.target = target
self.set_free_client()
self.set_google_client()
def set_free_client(self):
self.free_client = Translator()
def set_google_client(self):
self.google_client = translate.Client()
def detect_language(self, text):
return TextBlob(text).detect_language()
def free_translation(self, text):
try:
return self.free_client.translate(text, dest=self.target).text
except:
self.set_free_client()
return self.free_client.translate(text, dest=self.target).text
def google_translation(self, text):
try:
if isinstance(text, six.binary_type):
text = text.decode('utf-8')
return self.google_client.translate(text, target_language=self.target)['translatedText']
except:
self.set_google_client()
if isinstance(text, six.binary_type):
text = text.decode('utf-8')
return self.google_client.translate(text, target_language=self.target)['translatedText']
def get_translation(self, text):
try:
return self.free_translation(text)
except:
return self.google_translation(text)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment