'translate() missing 1 required positional argument: 'text'

I want to translate a tweet from Bahasa Indonesia to English, so after I can get a tweet, I run this code:

from googletrans import Translator

tweet = tweet.text # This saves the twitter text
tw_inggris = Translator.translate(tweet, src='id', dest='en')

But I got this specific error:

TypeError: translate() missing 1 required positional argument: 'text'

Does everyone know what's the error, and how I can fix it?



Solution 1:[1]

This is because you're using the Translator class directly instead of creating an instance first. Calling the .translate() function on the class directly would consider the first parameter as self and the second one as text (hence the error you got). So you'll need to do something like this:

from googletrans import Translator

tweet = tweet.text
translator = Translator()
tw_inggris = translator.translate(tweet, src='id', dest='en')

or for single use, you can simply do this:

Translator().translate(tweet.text, src='ar', dest='en')

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1