Skip to main content

Translate, transliterate, get the language of texts in no time with the help of multiple APIs!

Project description

translatepy (originally: translate)

An aggregation of multiple translation API.

Translate, transliterate, get the language of texts in no time with the help of multiple APIs!

PyPI version PyPI - Downloads PyPI - Python Version PyPI - Status GitHub - License GitHub top language CodeQL Checks Badge Pytest Code Size Repo Size Issues

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See deployment for notes on how to deploy the project on a live system.

Prerequisites

You will need Python 3 to use this module

# vermin output
Minimum required versions: 3.2
Incompatible versions:     2

According to Vermin (--backport typing), Python 3.2 is needed for the backport of typing but some may say that it is available for python versions higher than 3.0

Always check if your Python version works with translatepy before using it in production

Installing

You can install it from PyPI with:

pip install translatepy

You can check if you successfully installed it by printing out its version:

python -c "import translatepy; print(translatepy.__version__)"
# output:
translatepy v1.5.2

List of Services

All of the names belong to their respective rightholders.

Usage

>>> import translatepy
>>> translator = translatepy.Translator()
>>> translator.translate("Hello", "French")
'Bonjour' (type: TranslationResult)
>>> translator.language("こんにちは")
'Japanese' (type: Language)

The Language Class

The language class contains lots of information about a language.

You need to pass the language name or code to the class initialization:

translatepy.Language("French")
# Returns a Language class with the "fr" language
translatepy.Language("en")
# Returns a Language class with the "en" language
translatepy.Language("eng")
# Returns a Language class with the "en" language
translatepy.Language("日本語")
# Returns a Language class with the "ja" language

The Language Class contains both the ISO 639-1 Alpha-2 language code and the ISO 639-2 Alpha-3 language code (the latter is nullable)

It also contains the language name for all of the languages available. (nullable)

Example:

>>> translatepy.Language("日本語").french
'Japonais'

It contains the correct language code for each translation service

It also contains the "similarity" attribute which gives back a number between 0 and 1 and which shows the similarity of the input language with what it found in the language code database.

A translatepy.models.exceptions.UnknownLanguage exception is raised if the given language is unknown.

——> A language with low chance of being the one you've chosen is displayed along with its similarity

The TranslationResult Class

This class contains all of the information needed to get the result of a translation:

  • source: The input text
  • result: The translation result
  • source_language: The input language
  • destination_language: The result language
  • service: The source (service used)

Caching

All of the operations are cached to provide the best performances

You can empty the cache by giving the default value to the variables holding the caches:

translatepy.TRANSLATION_CACHES = {}
translatepy.TRANSLITERATION_CACHES = {}
translatepy.SPELLCHECK_CACHES = {}
translatepy.LANGUAGE_CACHES = {}
translatepy.EXAMPLE_CACHES = {}
translatepy.DICTIONNARY_CACHES = {}

Or by calling the Translator() method "clean_cache"

Warning: translatepy's caches are global: they are used through all instances of Translator()

The Translator Class

It is the High API providing all of the methods and optimizations for translatepy

  • translate: To translate things
  • transliterate: To transliterate things
  • spellcheck: To check the spelling of a text
  • language: To get the language of a text
  • example: To get examples of a word
  • dictionary: To get a list of translations categorized into "featured" and "less common" by DeepL and Linguee

When something goes wrong or nothing got found, None is returned.

The source language while being most of the time an instance of the Language class can sometimes be a string if the conversion to the Language class failed.

An additional "text_to_speech" function can be found in the GoogleTranslate class (accessible with the Translator() class at Translator().google_translate).
It is not officialy supported and is not very stable.

Deployment

This module is currently in development and might contain bugs.

Feel free to use it in production if you feel like it is suitable for your production even if you may encounter issues.

Built With

Authors

License

This project is licensed under the GNU Affero General Public License v3.0 License - see the LICENSE file for details

Dataset

All of the datasets are the result of my searches, computation and sometimes translation.

Please ask me if you want to use them in another project.

(_languages_name_to_code_international.json comes from Google Translate translations (fixed by me sometimes) and other sourcecs and took me about 8 to 10 hours of work to get it done)

Acknowledgments

  • Thanks to @NawtJ0sh for giving me the way to add Microsoft Bing Translate
  • Inspired by py-googletrans (by @ssut) (especially the thread: Issue #268)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

translatepy-1.5.2.tar.gz (279.8 kB view details)

Uploaded Source

Built Distribution

translatepy-1.5.2-py3-none-any.whl (310.6 kB view details)

Uploaded Python 3

File details

Details for the file translatepy-1.5.2.tar.gz.

File metadata

  • Download URL: translatepy-1.5.2.tar.gz
  • Upload date:
  • Size: 279.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for translatepy-1.5.2.tar.gz
Algorithm Hash digest
SHA256 3bbb2e4913e31cdde318accf5620210c0d904489fafd154c4eb599dfe22f2b06
MD5 183beaa47dbd221c160df55ddc4a02c2
BLAKE2b-256 ebf15b75f09e13eb5c1afdb1f13e7d795ff3e91532c8d7aeaad3e33809b847fe

See more details on using hashes here.

File details

Details for the file translatepy-1.5.2-py3-none-any.whl.

File metadata

  • Download URL: translatepy-1.5.2-py3-none-any.whl
  • Upload date:
  • Size: 310.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for translatepy-1.5.2-py3-none-any.whl
Algorithm Hash digest
SHA256 85cb877039d2c7fbef27aa8eab3be4743a75d04895fb3336d1524266b8ddcdf3
MD5 49812750c8a1c5e0fc61ec1b3bd5268b
BLAKE2b-256 08402907020fdf155df493e3cd116a1b6b299216830c337c29781b9f64ed7f31

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page