Git Product home page Git Product logo

easygoogletranslate's Introduction

easygoogletranslate

Unofficial Google Translate API.

This library does not need an api key or something else to use, it's free and simple. You can either use a string or a file to translate but the text must be equal to or less than 5000 character. You can split your text into 5000 characters to translate more.

Google Translate supports 108 different languages. You can use any of them as source and target language in this application. If source language is not specified, it will detect source language automatically. This application supports multi thread translation, you can use it to translate multiple languages at once. Detailed language list can be found here: https://cloud.google.com/translate/docs/languages

Don't forget to hit the star ⭐ button

Installation:

The easiest way to install easygoogletranslateis to download it from PyPI. Then you will be able to use the library.

pip install easygoogletranslate

Examples:

  1. Specify default source and target language at beginning and use it any time.
from easygoogletranslate import EasyGoogleTranslate

translator = EasyGoogleTranslate(
    source_language='en',
    target_language='de',
    timeout=10
)
result = translator.translate('This is an example.')

print(result) 
# Output: Dies ist ein Beispiel.
  1. Don't specify default parameters.
from easygoogletranslate import EasyGoogleTranslate

translator = EasyGoogleTranslate()
result = translator.translate('This is an example.', target_language='tr')

print(result)
# Output: Bu bir örnektir.
  1. Override default parameters.
from easygoogletranslate import EasyGoogleTranslate

translator = EasyGoogleTranslate(target_language='tr')
result = translator.translate('This is an example.', target_language='fr')

print(result)
# Output: Ceci est un exemple.
  1. Translate a text in multiple languages at once via multi-threading.
from easygoogletranslate import EasyGoogleTranslate

translator = EasyGoogleTranslate()
result = translator.translate(text='This is an example.', target_language=['tr', 'fr', 'de'])

print(result)
# Output: ['Bu bir örnektir.', 'Ceci est un exemple.', 'Dies ist ein Beispiel.']
  1. Translate a file in multiple languages at once via multi-threading.
from easygoogletranslate import EasyGoogleTranslate

translator = EasyGoogleTranslate()
result = translator.translate_file(file_path='text.txt', target_language=['tr', 'fr', 'de'])

print(result)
# Output: ['Nasılsın?', 'Comment ca va?', 'Wie geht es Ihnen?']
# Text inside file: How are you?

Disclaimer

This package is not an official library and is not associated with Google. This package is only developed for educational and test purposes, can be removed if desired. Do not use this package on a real life project. If you want to use a translate service on a real project use official Google Cloud Translate service.

easygoogletranslate's People

Contributors

ahmeterenodaci avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

easygoogletranslate's Issues

add option to detect a language

i wanna achieve something like this :

Input text: "ру́сский язы́к"
Output text: "Russian"

Input text: "中文"
Output text: "Chinese"

Input text: "にほんご"
Output text: "Japanese"

Input text: "العَرَبِيَّة"
Output text: "Arabic"

using google api can we detect the lang ? if yes please add it to module

apostrophe is not detected ??

Problem

  • Apostrophe isnt being detected

Desired result

Bankman-Fried, the former CEO of bankrupt cryptocurrency exchange FTX, lost his entire $16 billion fortune in one of the largest losses in history, reports Bloomberg. At the peak of the business, the entrepreneur's fortune was estimated at $ 26 billion.
If you allow me, I'll post a link.
Thanks

Current result

Img

Code to Replicate issue

from easygoogletranslate import EasyGoogleTranslate
koko="Бывший гендиректор обанкротившейся криптовалютной биржи FTX Бэнкман-Фрид потерял все свое состояние в $16 млрд. Это один из крупнейших в истории случаев утраты состояния, передает Блумберг. На пике бизнеса состояние предпринимателя оценивалось в $26 млрд."
koko1="""Если разрешите кину ссылку.
Спасибо"""
translator=EasyGoogleTranslate()
print(koko)
print(koko1)

def tr(text):
    result = translator.translate(f'{(text)}', target_language='en')
    return result

mk=tr(koko)
kk=tr(koko1)
print(mk)
print(kk)

Read timed out

Having this issue for translating Indic languages to english:

raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='translate.google.com', port=443): Read timed out.

Traceback:

Traceback (most recent call last):
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 444, in _error_catcher
    yield
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 828, in read_chunked
    self._update_chunk_length()
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 758, in _update_chunk_length
    line = self._fp.fp.readline()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/socket.py", line 706, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/ssl.py", line 1311, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/ssl.py", line 1167, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/models.py", line 816, in generate
    yield from self.raw.stream(chunk_size, decode_content=True)
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 624, in stream
    for line in self.read_chunked(amt, decode_content=decode_content):
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 816, in read_chunked
    with self._error_catcher():
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/contextlib.py", line 155, in __exit__
    self.gen.throw(typ, value, traceback)
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/urllib3/response.py", line 449, in _error_catcher
    raise ReadTimeoutError(self._pool, None, "Read timed out.")
urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='translate.google.com', port=443): Read timed out.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/rumbleftw/Documents/Codes/vartapratikriya-cron-job/src/cron_job.py", line 137, in <module>
    job.run()
  File "/home/rumbleftw/Documents/Codes/vartapratikriya-cron-job/src/cron_job.py", line 106, in run
    categorised_dict = self.generate_sentiment(data=categorised, type="categorised")
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/Documents/Codes/vartapratikriya-cron-job/src/cron_job.py", line 71, in generate_sentiment
    sentiment = self.analyser(article["description"])
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/Documents/Codes/vartapratikriya-cron-job/src/sentiment_analyser.py", line 16, in __call__
    return self.pipe(self.translator.translate(text=string, target_language="en"))[
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/easygoogletranslate/easygoogletranslate.py", line 81, in translate
    return self.make_request(target_language, source_language, text, timeout)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/easygoogletranslate/easygoogletranslate.py", line 55, in make_request
    response = requests.get(url, timeout=timeout)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/api.py", line 73, in get
    return request("get", url, params=params, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/sessions.py", line 747, in send
    r.content
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/models.py", line 899, in content
    self._content = b"".join(self.iter_content(CONTENT_CHUNK_SIZE)) or b""
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/rumbleftw/anaconda3/envs/vartapratikriya/lib/python3.11/site-packages/requests/models.py", line 822, in generate
    raise ConnectionError(e)
requests.exceptions.ConnectionError: HTTPSConnectionPool(host='translate.google.com', port=443): Read timed out.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.