A flexible free and unlimited python tool to translate between different languages in a simple way using multiple translators.

Overview

deep-translator

deep-translator-icon


Documentation Status https://img.shields.io/pypi/l/deep-translator https://img.shields.io/pypi/status/deep-translator https://pepy.tech/badge/deep-translator https://img.shields.io/pypi/wheel/deep-translator Twitter URL

Translation for humans

A flexible FREE and UNLIMITED tool to translate between different languages in a simple way using multiple translators.

Motivation

I needed to translate a text using python. It was hard to find a simple way to do it. There are other libraries that can be used for this task, but most of them are buggy, not free, limited, not supported anymore or complex to use.

Therefore, I decided to build this simple tool. It is 100% free, unlimited, easy to use and provide support for all languages.

Basically, my goal was to integrate support for multiple famous translators in this tool.

When you should use it

  • If you want to translate text using python
  • If you want to translate from a file
  • If you want to get translations from many sources and not only one
  • If you want to automate translations
  • If you want to compare different translations
  • If you want to detect language automatically

Why you should use it

  • It's the only python tool that integrates many translators
  • multi language support
  • supports batch translation
  • High level of abstraction
  • Automatic language detection
  • Easy to use and extend
  • Support for most famous universal translators
  • Stable and maintained regularly

Features

Installation

Install the stable release:

$ pip install -U deep_translator

take a look at the docs if you want to install from source.

Quick Start

from deep_translator import GoogleTranslator
translated = GoogleTranslator(source='auto', target='de').translate("keep it up, you are awesome")  # output -> Weiter so, du bist großartig

or from terminal

$ deep_translator -trans "google" -src "en" -tg "de" -txt "keep it up, you are awesome"

Usage

In this section, demos on how to use all different integrated translators in this tool are provided.

Note

You can always pass the languages by the name or by abbreviation.

Example: If you want to use english as a source or target language, you can pass english or en as an argument

Imports

from deep_translator import (GoogleTranslator,
                             PonsTranslator,
                             LingueeTranslator,
                             MyMemoryTranslator,
                             YandexTranslator,
                             DeepL,
                             QCRI,
                             single_detection,
                             batch_detection)

Check Supported Languages

Note

You can check the supported languages of each translator by calling the get_supported_languages function as a static method.

# default return type is a list
langs_list = GoogleTranslator.get_supported_languages()  # output: [arabic, french, english etc...]

# alternatively, you can the dictionary containing languages mapped to their abbreviation
langs_dict = GoogleTranslator.get_supported_languages(as_dict=True)  # output: {arabic: ar, french: fr, english:en etc...}

Language Detection

Note

You can also detect language automatically. Notice that this package is free and my goal is to keep it free. Therefore, you will need to get your own api_key if you want to use the language detection function. I figured out you can get one for free here: https://detectlanguage.com/documentation

  • Single Text Detection
lang = single_detection('bonjour la vie', api_key='your_api_key')
print(lang) # output: fr
  • Batch Detection
lang = batch_detection(['bonjour la vie', 'hello world'], api_key='your_api_key')
print(lang) # output: [fr, en]

Google Translate

text = 'happy coding'
  • You can use automatic language detection to detect the source language:
translated = GoogleTranslator(source='auto', target='de').translate(text=text)
  • You can pass languages by name or by abbreviation:
translated = GoogleTranslator(source='auto', target='german').translate(text=text)

# Alternatively, you can pass languages by their abbreviation:
translated = GoogleTranslator(source='en', target='de').translate(text=text)
  • Translate batch of texts
texts = ["hallo welt", "guten morgen"]

# the translate_sentences function is deprecated, use the translate_batch function instead
translated = GoogleTranslator('de', 'en').translate_batch(texts)
  • Translate from a file:
translated = GoogleTranslator(source='auto', target='german').translate_file('path/to/file')

Mymemory Translator

Note

As in google translate, you can use the automatic language detection with mymemory by using "auto" as an argument for the source language. However, this feature in the mymemory translator is not so powerful as in google translate.

  • Simple translation
text = 'Keep it up. You are awesome'

translated = MyMemoryTranslator(source='auto', target='french').translate(text)
  • Translate batch of texts
texts = ["hallo welt", "guten morgen"]

# the translate_sentences function is deprecated, use the translate_batch function instead
translated = MyMemoryTranslator('de', 'en').translate_batch(texts)
  • Translate from file
path = "your_file.txt"

translated = MyMemoryTranslator(source='en', target='fr').translate_file(path)

DeepL Translator

Note

In order to use the DeepL translator, you need to generate an api key. Visit https://www.deepl.com/en/docs-api/ for more information

  • Simple translation
text = 'Keep it up. You are awesome'

translated = DeepL("your_api_key").translate(text)
  • Translate batch of texts
texts = ["hallo welt", "guten morgen"]

# the translate_sentences function is deprecated, use the translate_batch function instead
translated = DeepL("your_api_key").translate_batch(texts)

QCRI Translator

Note

In order to use the QCRI translator, you need to generate a free api key. Visit https://mt.qcri.org/api/ for more information

  • Check languages
# as a property
print("language pairs: ", QCRI("your_api_key").languages)
  • Check domains
# as a property
print("domains: ", QCRI("your_api_key").domains)
  • Text translation
text = 'Education is great'

translated = QCRI("your_api_key").translate(source='en', target='ar', domain="news", text=text)
# output -> التعليم هو عظيم

# see docs for batch translation and more.

Linguee Translator

word = 'good'
  • Simple Translation
translated_word = LingueeTranslator(source='english', target='french').translate(word)

# pass language by their abbreviation
translated_word = LingueeTranslator(source='en', target='fr').translate(word)
  • Return all synonyms or words that matches
# set the argument return_all to True if you want to get all synonyms of the word to translate
translated_word = LingueeTranslator(source='english', target='french').translate(word, return_all=True)
  • Translate a batch of words
translated_words = LingueeTranslator(source='english', target='french').translate_words(["good", "awesome"])

PONS Translator

Note

You can pass the languages by the name or by abbreviation just like previous examples using GoogleTranslate

word = 'awesome'
  • Simple Translation
translated_word = PonsTranslator(source='english', target='french').translate(word)

# pass language by their abbreviation
translated_word = PonsTranslator(source='en', target='fr').translate(word)
  • Return all synonyms or words that matches
# set the argument return_all to True if you want to get all synonyms of the word to translate
translated_word = PonsTranslator(source='english', target='french').translate(word, return_all=True)
  • Translate a batch of words
translated_words = LingueeTranslator(source='english', target='french').translate_words(["good", "awesome"])

Yandex Translator

Note

You need to require an private api key if you want to use the yandex translator. visit the official website for more information about how to get one

  • Language detection
lang = YandexTranslator('your_api_key').detect('Hallo, Welt')
print(f"language detected: {lang}")  # output -> language detected: 'de'
  • Text translation
# with auto detection | meaning provide only the target language and let yandex detect the source
translated = YandexTranslator('your_api_key').translate(source="auto", target="en", text='Hallo, Welt')
print(f"translated text: {translated}")  # output -> translated text: Hello world

# provide source and target language explicitly
translated = YandexTranslator('your_api_key').translate(source="de", target="en", text='Hallo, Welt')
print(f"translated text: {translated}")  # output -> translated text: Hello world
  • File translation
translated = YandexTranslator('your_api_key').translate_file(source="auto", target="en", path="path_to_your_file")
  • Batch translation
translated = YandexTranslator('your_api_key').translate_batch(source="auto", target="de", batch=["hello world", "happy coding"])

Usage from Terminal

For a quick access, you can use the deep_translator from terminal. For this to work, you need to provide the right arguments, which are the translator you want to use, source language, target language and the text you want to translate.

For example, provide "google" as an argument to use the google translator. Alternatively you can use the other supported translators. Just read the documentation to have an overview about the supported translators in this library.

$ deep_translator --translator "google" --source "english" --target "german" --text "happy coding"

Or you can go for the short version:

$ deep_translator -trans "google" -src "english" -tg "german" -txt "happy coding"

If you want, you can also pass the source and target language by their abbreviation

$ deep_translator -trans "google" -src "en" -tg "de" -txt "happy coding"

Tests

  • Install dev requirements
$ pip install -r requirements_dev.txt
  • Or just install pytest
$ pip install pytest
  • you can run tests individually for each translator by passing the prefix test_ followed by the translator name as an argument to pytest.
$ pytest test_google_trans
$ pytest test_linguee
$ pytest test_mymemory
$ pytest test_pons
  • Alternatively, you can run the test suite
$ pytest -ra

Links

Check this article on medium to know why you should use the deep-translator package and how to translate text using python. https://medium.com/@nidhalbacc/how-to-translate-text-with-python-9d203139dcf5

Next Steps

Take a look in the examples folder for more :) Contributions are always welcome. Read the Contribution guildlines Here

The Translator++ mobile app

Icon of the app

After developing the deep_translator, I realised how cool this would be if I can use it as an app on my mobile phone. Sure, there is google translate, pons and linguee apps etc.. but isn't it cooler to make an app where all these translators are integrated?

Long story short, I started working on the app. I decided to use the kivy framework since I wanted to code in python and to develop a cross platform app. I open sourced the Translator++ app on my github too. Feel free to take a look at the code or make a pull request ;)

Note

The Translator++ app is based on the deep_translator package. I just built the app to prove the capabilities of the deep_translator package ;)

I published the first release on google play store on 02-08-2020

Here are some screenshots:

  • Phone

screenshot1

screenshot2

spinner

  • Tablet:

screenshot3

Comments
  • update deep-translator's cli

    update deep-translator's cli

    Description

    The cli functionality needs to be updated since more translators are now integrated. This is a fair easy issue for new comers to help people contribute to the project.

    PS: consider using click https://click.palletsprojects.com/en/8.0.x/

    enhancement help wanted good first issue easy 
    opened by nidhaloff 13
  • Text translation that once worked now does not work

    Text translation that once worked now does not work

    • deep_translator version: 1.1.7
    • Python version: 3.8.3
    • Operating System: Manjaro 20.0.3

    I'm trying to semi-automatize an HTML page using BeautifulSoup. I was very happy with deep-translator until something strange happened...

    It rises 'TranslationNotFound' with some text that was already working!

    text = 'If you are a school administrator or local official who has control over school opening decisions, we strongly urge you to keep schools closed until there is no more community transmission of the virus. There must be no more transmission of the virus in your community and the surrounding areas for 14 days. If you would like more guidance on why reopening schools is dangerous and how to talk to students, teachers, parents and staff, EndCoronavirus.org is here to help.Please contact us for more information.'
    
    GoogleTranslator(source='auto', target='spanish').translate(text=tag.text)
    

    Traceback:

    TranslationNotFound                       Traceback (most recent call last)
    <ipython-input-8-466242e1794e> in <module>
          1 # Using deep_translator with Google's engine (spanish)
    ----> 2 traslated = GoogleTranslator(source='auto', target='spanish').translate(text=tag.text)
          3 traslated
    
    ~/.local/lib/python3.8/site-packages/deep_translator/google_trans.py in translate(self, text, **kwargs)
         78             if not element:
         79                 # raise ElementNotFoundInGetRequest(element)
    ---> 80                 raise TranslationNotFound(text)
         81 
         82             return element.get_text(strip=True)
    
    TranslationNotFound: If you are a school administrator or local official who has control over school opening decisions, we strongly urge you to keep schools closed until there is no more community transmission of the virus. There must be no more transmission of the virus in your community and the surrounding areas for 14 days. If you would like more guidance on why reopening schools is dangerous and how to talk to students, teachers, parents and staff, EndCoronavirus.org is here to help.Please contact us for more information. --> No translation was found using the current translator. Try another translator?
    

    Maybe I exceeded the max translations allowed? It should be unlimited, right?

    And when I use 'MyMemoryTranslator' I get:

    'QUERY LENGTH LIMIT EXCEDEED. MAX ALLOWED QUERY : 500 CHARS'

    Also unexpected!

    bug 
    opened by ecuracosta 13
  • [Feature Request] Support for libretranslate.com

    [Feature Request] Support for libretranslate.com

    Description

    Support for https://libretranslate.com/

    Also, I think in this case, the construct should have the url as parameter, since as described at https://github.com/LibreTranslate/LibreTranslate#mirrors , the project can be used locally or by other servers.

    enhancement help wanted good first issue Hacktoberfest 
    opened by fcolecumberri 12
  • `KeyError: 'hl'` when running `translate_batch()`

    `KeyError: 'hl'` when running `translate_batch()`

    • deep_translator version: 1.3.9
    • Python version: 3.7.4
    • Operating System: Windows 10

    Description

    I couldn't translate 2000+ words from a text file (described in here #40) so I thought about using translate_batch() instead. Running:

    translated_list = GoogleTranslator(select_source_language, select_target_language).translate_batch(list_of_words)
    

    gives me this error:

    Traceback (most recent call last):
      File "script.py", line 113, in <module>
        translated_list = GoogleTranslator(select_source_language, select_target_language).translate_batch(list_of_words)
      File "C:\Users\USER\AppData\Local\Programs\Python\Python37\lib\site-packages\deep_translator\google_trans.py", line 169, in translate_batch
        translated = self.translate(text)
      File "C:\Users\USER\AppData\Local\Programs\Python\Python37\lib\site-packages\deep_translator\google_trans.py", line 113, in translate
        return self.translate(text)
      File "C:\Users\USER\AppData\Local\Programs\Python\Python37\lib\site-packages\deep_translator\google_trans.py", line 112, in translate
        del self._url_params["hl"]
    KeyError: 'hl'
    

    What's the reason behind it? How to make it work?

    bug question discussion 
    opened by vardecab 12
  • Keyerror: 'h1' when performing translations

    Keyerror: 'h1' when performing translations

    • deep_translator version: 1.3.3
    • Python version: 3.6
    • Operating System: Google Colab

    Description

    I have been using this script to translate words but just today it stopped working and I get this error: KeyError: 'hl'

    Full error: Screenshot 2021-02-13 at 1 06 25 AM

    from deep_translator import GoogleTranslator
    from deep_translator import GoogleTranslator as GT
    from deep_translator import exceptions as excp
    
    
    def translate(x):
        try:
            v = GT(source='auto', target='en').translate(x['tweet_text']) if (x['tweet_text'] != " " and x['lang'] != "en") else x['tweet_text']
        except (excp.NotValidPayload, excp.NotValidLength) as e:
            v = f'Translation Exception: {type(e)}'
        return v
    
    # translate the column
    df_bdtu['translated'] = df_bdtu[['tweet_text', 'lang']].swifter.apply(lambda x: translate(x), axis = 1)
    
    opened by yudhiesh 11
  • Bug fix in google_trans.py

    Bug fix in google_trans.py

    Close #90 Close #52

     super(GoogleTranslator, self).__init__(base_url=self.__base_url,
                                                   source=self._source,
                                                   target=self._target,
                                                   element_tag='div',
                                                   element_query={"class": "t0"},
                                                   payload_key='q',  # key of text in the url
                                                   tl=self._target,
                                                   sl=self._source,
                                                   **kwargs)
    

    This code fixes the above issues, I have been experimenting for a week to figure it out, also this fix doesn't cause issues with any other language. We can not assign self._target to hl.

    opened by kuspia 9
  • Asked changes done for excel

    Asked changes done for excel

    @nothead31 please have a look at it, if anything is missing please tell me. As per your requirement I have set it up in main.py instead of google_trans.py.

    enhancement 
    opened by debjyoti003 9
  • Excel column data translation feature added

    Excel column data translation feature added

    I have added the excel column data translation feature as requested by foubou. Please merge this if you find it suitable, also if you want to add something more, you can tell me.

    enhancement discussion pending 
    opened by debjyoti003 9
  • Add tests for the cli

    Add tests for the cli

    Description

    The cli was re-written using the click library. However, there are no tests for the functionality of cli at the moment. Click offers great support for unit testing. Read here

    I will let this issue open for newcomers or anyone who is looking for a good first issue. I think this would be a great task for anyone who wants to join the project.

    enhancement help wanted good first issue easy 
    opened by nidhaloff 7
  • libre no longer translating

    libre no longer translating

    • deep_translator version: 1.8.0
    • Python version: 3.8
    • Operating System: Linux

    Description

    Translating "Ich mag Züge" which is German for "I like trains" with the libre flavor.

    The result is still in German. All other flavors work.

    bug 
    opened by Zethson 6
  • Doesn't work with Chinese as target.

    Doesn't work with Chinese as target.

    • deep_translator version: 1.5.4
    • Python version: 3.9.7
    • Operating System: macOs 11.6

    Description

    What happened:

    GoogleTranslator not working when target is set to chinese.

    I am trying to translate english paragraphs to Chinese, here is what I did:

    class Translator:
        def __init__(self):
            pass
    
        def translate(self, textInput: str):
            textSliced = SentenceSplitter(language="en").split(textInput)
            textTranslated = GoogleTranslator(source="auto", target="chinese").translate_batch(textSliced)
            textTranslated = " ".join(textTranslated)
            return textTranslated
    

    where SentenceSplitter returns a list of strings each is a sentence from the original paragraph, and:

    if __name__ == "__main__":
        to_translate = "Currently, the application of deep learning in crop disease classification is one of the active areas of research for which an image dataset is required. Eggplant (Solanum melongena) is one of the important crops, but it is susceptible to serious diseases which hinder its production."
    
        print(Translator().translate(to_translate))
    

    where to_translate is piece of random text. It returns the original text:

    Please wait.. This may take a couple of seconds because deep_translator sleeps for two seconds after each request in order to not spam the google server.
    sentence number  1  has been translated successfully
    sentence number  2  has been translated successfully
    
    Currently, the application of deep learning in crop disease classification is one of the active areas of research for which an image dataset is required. Eggplant (Solanum melongena) is one of the important crops, but it is susceptible to serious diseases which hinder its production.
    

    when it is expected to turn its chinese translation.

    This method functions perfectly well when GoogleTranslator is replaced with MyMemoryTranslator, MyMemoryTranslator however raises TooManyRequests:

    Server Error: You made too many requests to the server. According to google, you are allowed to make 5 requests per second and up to 200k requests per day. You can wait and try again later or you can try the translate_batch function
    

    it looks like its time.sleep is not functioning properly.

    To summarise:

    1. GoogleTranslator doesn't work at all when target is chinese.
    2. MyMemoryTranslator needs a proper time.sleep mechanism.
    opened by Don-Yin 6
  • Linguee French-to-English translation not working

    Linguee French-to-English translation not working

    Linguee French-to-English translation not working

    • deep_translator version:v1.9.1(https://github.com/nidhaloff/deep-translator/commit/a694c92b6741fc9c3200835b64be2fd910cd761b)
    • Python version: 3.10.6
    • Operating System: GNU/Linux x86_64(Ubuntu 22.04)

    Description

    Hi, thank you for publishing such a useful plugin! I noticed that Linguee’s French-to-English translation didn’t work. And it seems that English-to-French, French-to-German, German-to-French also doesn’t work. I suspect it’s because the URL format of Linguee(such as path and query) has been changed as following.

    the URL deep-translator using

    https://www.linguee.com/fr-en/translation/courir.html
    

    the correct(and valid) URL

    https://www.linguee.com/english-french/search?source=french&query=courir
    

    If you guys are OK, I would be interested in contributing this.

    What I Did

    (expected returning 'run')

    >>> from deep_translator import LingueeTranslator
    >>> res = LingueeTranslator(source="fr", target="en").translate("courir", return_all=False)                        
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/root/share-ws/common/deep-translator/deep_translator/linguee.py", line 77, in translate
        raise ElementNotFoundInGetRequest(elements)
    deep_translator.exceptions.ElementNotFoundInGetRequest: [] --> Required element was not found in the API response
    
    
    opened by wf001 0
  • Update microsoft translator

    Update microsoft translator

    Update the code for microsoft translation api to accept global source to default and auto detect source language (preventing The source language is not valid.).

    opened by Jourdelune 0
  • using certain cuda in multi gpu environment?

    using certain cuda in multi gpu environment?

    Hello!

    As my nvidia-smi monitor displays an increase in gpu usage when making a translation it seems that deep-translator is using cuda, if available. But I have three graphic cards and due to performance reasons I need to use always the related gpu. Is it possible to influence this?

    opened by Marcophono2 0
  • Bump wheel from 0.35.1 to 0.38.1 in /docs

    Bump wheel from 0.35.1 to 0.38.1 in /docs

    Bumps wheel from 0.35.1 to 0.38.1.

    Changelog

    Sourced from wheel's changelog.

    Release Notes

    UNRELEASED

    • Updated vendored packaging to 22.0

    0.38.4 (2022-11-09)

    • Fixed PKG-INFO conversion in bdist_wheel mangling UTF-8 header values in METADATA (PR by Anderson Bravalheri)

    0.38.3 (2022-11-08)

    • Fixed install failure when used with --no-binary, reported on Ubuntu 20.04, by removing setup_requires from setup.cfg

    0.38.2 (2022-11-05)

    • Fixed regression introduced in v0.38.1 which broke parsing of wheel file names with multiple platform tags

    0.38.1 (2022-11-04)

    • Removed install dependency on setuptools
    • The future-proof fix in 0.36.0 for converting PyPy's SOABI into a abi tag was faulty. Fixed so that future changes in the SOABI will not change the tag.

    0.38.0 (2022-10-21)

    • Dropped support for Python < 3.7
    • Updated vendored packaging to 21.3
    • Replaced all uses of distutils with setuptools
    • The handling of license_files (including glob patterns and default values) is now delegated to setuptools>=57.0.0 (#466). The package dependencies were updated to reflect this change.
    • Fixed potential DoS attack via the WHEEL_INFO_RE regular expression
    • Fixed ValueError: ZIP does not support timestamps before 1980 when using SOURCE_DATE_EPOCH=0 or when on-disk timestamps are earlier than 1980-01-01. Such timestamps are now changed to the minimum value before packaging.

    0.37.1 (2021-12-22)

    • Fixed wheel pack duplicating the WHEEL contents when the build number has changed (#415)
    • Fixed parsing of file names containing commas in RECORD (PR by Hood Chatham)

    0.37.0 (2021-08-09)

    • Added official Python 3.10 support
    • Updated vendored packaging library to v20.9

    ... (truncated)

    Commits
    • 6f1608d Created a new release
    • cf8f5ef Moved news item from PR #484 to its proper place
    • 9ec2016 Removed install dependency on setuptools (#483)
    • 747e1f6 Fixed PyPy SOABI parsing (#484)
    • 7627548 [pre-commit.ci] pre-commit autoupdate (#480)
    • 7b9e8e1 Test on Python 3.11 final
    • a04dfef Updated the pypi-publish action
    • 94bb62c Fixed docs not building due to code style changes
    • d635664 Updated the codecov action to the latest version
    • fcb94cd Updated version to match the release
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Bad link under tests section

    Bad link under tests section

    Description

    Clicking on the link for the contributing guidelines under the Tests section leads to a 404 Link: https://deep-translator.readthedocs.io/en/latest/contributing.html/

    What I Did

    Clicked on link under Tests

    opened by thembow 0
Releases(untagged-b2080c9e6014b2d2c054)
  • untagged-b2080c9e6014b2d2c054(Nov 4, 2022)

    What’s Changed

    • fixed mymemory return_all (#170) @nidhaloff
    • Adding response.close() for non API-key translator (#160) @edisugi1996
    • Add 24 Languages to Google Translator (#168) @JettScythe
    • fix typos in documentation (#164) @joao-vitor-souza
    • Hotfix/linguee (#159) @nidhaloff
    • fixed make install (#151) (#152) @yutkat
    Source code(tar.gz)
    Source code(zip)
  • v1.8.3(Mar 31, 2022)

  • v1.8.2(Mar 19, 2022)

  • v1.8.1(Mar 14, 2022)

  • v1.8.0(Mar 9, 2022)

    Commits

    • dbaf8a8: Autogenerate the a dictionary of translators. (Vincent STRAGIER) #130
    • 697d292: Remove dictionary initialization. (Vincent STRAGIER) #130
    • 0d67af1: renamed parent to base (nidhal baccouri) #136
    • 2bbc526: huge refactoring (nidhal baccouri) #136
    • d03a2fc: simplified code and enhanced consistency (nidhal baccouri) #136
    • 5c85230: added engines dunder (nidhal baccouri) #136
    • f89616a: updated base urls (nidhal baccouri) #136
    • 4524f4c: refactored tests (nidhal baccouri) #136
    • 70f6ed6: global refactoring (nidhal baccouri) #136
    • 7216951: fixed examples (nidhal baccouri) #136
    • 78d0ff1: added black for formatting (nidhal baccouri) #139
    • 76688c0: removed unused constants (nidhal baccouri) #139
    • 7ade3be: added typing (nidhal baccouri) #139
    • 76aa3b2: renamed input validation func (nidhal baccouri) #139
    • 7a05cd7: sorted imports (nidhal baccouri) #139
    • 1e8da0a: updated version (nidhal baccouri)
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Feb 4, 2022)

    Commits

    • d3c12a3: updated cli in argparse (nidhal baccouri) #127
    • 37d3379: added cli class (nidhal baccouri) #127
    • 4a2e5df: temporarly removed cli tests (nidhal baccouri) #127
    • c228ada: added unit tests for cli (nidhal baccouri) #127
    • ed150d4: updated docs (nidhal baccouri)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.1(Jan 13, 2022)

    Updates

    • Fixed file translation bug
    • Support for utf-8 encoding

    Commits

    • 33c503f: updated tests (nidhal baccouri)
    • 0d1a764: fixed file translation encoding (nidhal baccouri) #117
    • a0b5eac: removed relative imports (nidhal baccouri) #117
    • 050157d: fixed relative imports (nidhal baccouri) #117
    • b8fcb92: fixed relative imports bug (nidhal baccouri) #117
    • c585ffe: upadted version for patch (nidhal baccouri)
    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Dec 24, 2021)

    Major Updates

    • Added support for the Libre Translator ( thanks to @rahulbanerjee26 , @saminul )

    Commits

    • 7c6d7e3: updated version (nidhal baccouri)
    • 3d6d95e: Update google_trans.py (kuspia) #95
    • 16b4632: Update constants.py (kuspia) #95
    • 214e2c6: Update test_google_trans.py (kuspia) #95
    • 33eb915: Update test_google_trans.py (kuspia) #95
    • 6438d56: Update constants.py (kuspia) #95
    • f8ccea0: Update test_google_trans.py (kuspia) #95
    • b40098f: Update google_trans.py (kuspia) #95
    • 6291d40: Update google_trans.py (kuspia) #95
    • 9632fac: Update google_trans.py (kuspia) #95
    • 39b7794: Add files via upload (kuspia) #95
    • faefd3f: Update test_google_trans.py (kuspia) #95
    • f58b97c: Update constants.py (kuspia) #95
    • 7914bb3: Update test_google_trans.py (kuspia) #95
    • 1aab85c: Updated Importing syntax in code-blocks README.rst (K R S Nandhan) #99
    • 1eb68a8: Update README.rst (Alex) #107
    • af03d64: Merge branch 'master' into master (Nidhal Baccouri) #99
    • 7162fd1: fixed merge (nidhal baccouri)
    • 7a8f545: updated batch translation (nidhal baccouri)
    • 74bcc29: updated version (nidhal baccouri)
    • a05c704: updated toml file (nidhal baccouri)
    • fd6b374: updated tests (nidhal baccouri)
    • ffa7560: updated tests (nidhal baccouri)
    • 1d42175: initial setup (Saminul) #115
    • 5a8d2be: implemented function for LibreTranslator class (Saminul) #115
    • 9a69d6b: added payload check in LibreTranslator.translate and added tests in test_libre.py (Saminul) #115
    • 50c16a8: Added test cases and support for translate_batch and translate_file (Rahul Banerjee) #115
    • a8c6e0d: Fixed some linting issues (Rahul Banerjee) #115
    • a887ba6: Updated README to add Libre Translator (saminul) #115
    • ba3ac27: Updated docs (Rahul Banerjee) #115
    • b1ea671: Fixed link to Libre Translator mirrors in usage.rst (saminul) #115
    • 616a476: Fixed link to Libre Translator mirrors in README (saminul) #115
    • f130669: added release actions (nidhal baccouri)
    • 878ab25: added a tagged release action (nidhal baccouri)
    • eb81737: updated github action (nidhal baccouri)
    • ad67197: updated version (nidhal baccouri)
    Source code(tar.gz)
    Source code(zip)
  • v1.5.4(Aug 23, 2021)

    @kuspia: restructured google trans url to resolve language conflicts. Supercedes fix in 1.5.3

    This release should resolve the long-standing translator issues with specific languages using the GTrans service. Additional language-specific issues should continue to be reported.

    Source code(tar.gz)
    Source code(zip)
  • v1.5.1(Aug 23, 2021)

  • v1.5.0(Jul 23, 2021)

    • improved the CLI
    • switched to click for the cli design
    • added subcommands
    • fixed bugs
    • refactored codebase and switched configurations to setup.cfg
    Source code(tar.gz)
    Source code(zip)
  • 1.4.4(May 21, 2021)

  • 1.4.3(May 15, 2021)

  • 1.4.1(Mar 8, 2021)

  • 1.3.9(Feb 28, 2021)

  • 1.3.8(Feb 28, 2021)

  • 1.3.5(Feb 19, 2021)

  • 1.3.4(Feb 12, 2021)

  • 1.3.3(Feb 11, 2021)

Owner
Nidhal Baccouri
A software engineer who wants to improve the software world.
Nidhal Baccouri
Python Common things by Problem Fighter Library, (Exception, Debug Log, etc.)

In the name of God, the Most Gracious, the Most Merciful. PF-PY-Common Documentation Install and update using pip: pip install -U xxxx Please find the

Problem Fighter 3 Jan 15, 2022
SimBiber - A tool for simplifying bibtex with official info

SimBiber: A tool for simplifying bibtex with official info. We often need to sim

336 Jan 02, 2023
The official Repository wherein newbies into Open Source can Contribute during the Hacktoberfest 2021

Hacktoberfest 2021 Get Started With your first Contrinution/Pull Request : Fork/Copy the repo by clicking the right most button on top of the page. Go

HacOkars 25 Aug 20, 2022
A simple python script to convert Rubber Ducky payloads into AutoHotKey scripts

AHKDuckyReplacer A simple python script to convert Rubber Ducky payloads into AutoHotKey scripts. I have also added a sample payload for testing. I wi

Krizsan0596 5 Sep 28, 2022
A simple hash system.

PBH-Hash-System A simple hash system. Usage You could use it like this: from pbh import pbh print(pbh("Hey", True)) Output: 2feae2471698cfcdcbd6b98ca

Karim 3 Mar 24, 2022
Run unpatched binaries on Nix/NixOS

Run unpatched binaries on Nix/NixOS

Thiago Kenji Okada 160 Jan 08, 2023
Created a Python Keylogger script.

Python Script Simple Keylogger Script WHAT IS IT? Created a Python Keylogger script. HOW IT WORKS Once the script has been executed, it will automatic

AC 0 Dec 12, 2021
Minterpy - Multidimensional interpolation in Python.

minterpy is an open-source Python package for a multivariate generalization of the classical Newton and Lagrange interpolation schemes as well as related tasks.

Center for Advanced Systems Understanding 18 Jan 06, 2023
Python with braces. Because Python is awesome, but whitespace is awful.

Bython Python with braces. Because Python is awesome, but whitespace is awful. Bython is a Python preprosessor which translates curly brackets into in

1 Nov 04, 2021
Pokemon catch events project to demonstrate data pipeline on AWS

Pokemon Catches Data Pipeline This is a sample project to practice end-to-end data project; Terraform is used to deploy infrastructure; Kafka is the t

Vitor Carra 4 Sep 03, 2021
Liquid Rocket Engine Cooling Simulation

Liquid Rocket Engine Cooling Simulation NASA CEA The implemented class calls NASA CEA via RocketCEA. INSTALL GUIDE In progress install instructions fo

John Salib 1 Jan 30, 2022
Animations made using manim-ce

ManimCE Animations Animations made using manim-ce The code turned out to be a bit complicated than expected.. It can be greatly simplified, will work

sparshg 17 Jan 06, 2023
Small tool to use hero .json files created with Optolith for The Dark Eye/ Das Schwarze Auge 5 to perform talent probes.

DSA5-ProbeMaker A little tool for The Dark Eye 5th Edition (Das Schwarze Auge 5) to load .json from Optolith character generation and easily perform t

2 Jan 06, 2022
github action test, because I dont know it.

mad-y testing testing pip install -r requirements.txt add the DISCORD_TOKEN value to your env vars. and run mad-y how to Deploy ` docker build -t mad-

Mit 1 Oct 29, 2021
Margin Calculator - Personally tailored investment tool

Margin Calculator - Personally tailored investment tool

1 Jul 19, 2022
Test pour savoir si je suis capable de paratger une lib avec le monde entier !!

Data analysis Document here the project: MLproject Description: Project Description Data Source: Type of analysis: Please document the project the bet

Lucas_Penarrubia 0 Jan 18, 2022
A totally unrealistic cell growth/reproduction simulation.

A totally unrealistic cell growth/reproduction simulation.

Andrien Wiandyano 1 Oct 24, 2021
An event-based script that is designed to improve your aim

Aim-Trainer Info: This is an event-based script that is designed to improve a user's aim. It was built using Python Turtle and the Random library. Ins

Ethan Francolla 4 Feb 17, 2022
Hotpile: High Order Turing Machine Language Compiler

Hotpile: High Order Turing Machine Language Compiler Build and Run Requirements: Python 3.6+, bison, flex, and GCC installed. Needs to be run under UN

Jiang Weihao 4 Dec 29, 2021