Translate is a simple but powerful translation tool written in python with with support for multiple translation providers. By now we offer integration with Microsoft Translation API, Translated MyMemory API, LibreTranslate, DeepL’s free and pro APIs, and Yandex Translate API
Why Should I Use This?
The biggest reason to use translate is to make translations in a simple way without the need of bigger effort and can be used as a translation tool like command line
Installation
$ pip install translate
Or, you can download the source and
$ python setup.py install
Prefix ‘sudo’ if you encounter a problem.
Features
Translate your output in real time
Do translation in your terminal using the command line
Usage
In your command-line:
$ translate-cli -t zh "This is a pen."
Translation: 这是一支笔
-------------------------
Translated by: MyMemory
Or
$ translate-cli -t zh "This is a pen." -o
这是一支笔
Options
$ translate-cli --help
Usage: __main__.py [OPTIONS] TEXT...
Python command line tool to make online translations
Example:
$ translate-cli -t zh the book is on the table
碗是在桌子上。
Available languages:
https://en.wikipedia.org/wiki/ISO_639-1
Examples: (e.g. en, ja, ko, pt, zh, zh-TW, ...)
Options:
--version Show the version and exit.
--generate-config-file Generate the config file using a Wizard and exit.
-f, --from TEXT Sets the language of the text being translated.
The default value is 'autodetect'.
-t, --to TEXT Set the language you want to translate.
-p, --provider TEXT Set the provider you want to use. The default
value is 'mymemory'.
--secret_access_key TEXT Set the secret access key used to get provider
oAuth token.
-o, --output_only Set to display the translation only.
-r, --region TEXT Set to pass a region in to API calls that require it.
--help Show this message and exit.
Change Default Languages
In ~/.python-translate.cfg:
[DEFAULT]
from_lang = autodetect
to_lang = de
provider = mymemory
secret_access_key =
The cfg is not for use as a Python module.
or run the command line and follow the steps:
$ translate-cli --generate-config-file
Translate from [autodetect]:
Translate to: <language you want to translate>
Provider [mymemory]:
Secret Access Key []:
Use As A Python Module
In [1]: from translate import Translator
In [2]: translator = Translator(to_lang="zh")
In [3]: translation = translator.translate("This is a pen.")
Out [3]: 这是一支笔
The result is usually a unicode string.
Use a different translation provider
In [1]: from translate import Translator
In [2]: to_lang = 'zh'
In [3]: secret = '<your secret from Microsoft or DeepL>'
In [4]: translator = Translator(provider='<the name of the provider, eg. microsoft or deepl>', to_lang=to_lang, secret_access_key=secret)
In [5]: translator.translate('the book is on the table')
Out [5]: '碗是在桌子上。'
The DeepL Provider
To use DeepL’s pro API, pass an additional parameter named pro to the Translator object and set it to True and use your pro authentication key as the secret_access_key
In: translator = Translator(provider='deepl', to_lang=to_lang, secret_access_key=secret, pro=True)
The Yandex Provider
Yandex Translate API supports both API key and IAM token authentication. To use IAM token authentication, pass the is_iam parameter set to True. You may also need to provide a folder_id for your Yandex Cloud project.
In: translator = Translator(provider='yandex', to_lang=to_lang, secret_access_key='your_api_key', folder_id='your_folder_id')
In: translator = Translator(provider='yandex', to_lang=to_lang, secret_access_key='your_iam_token', folder_id='your_folder_id', is_iam=True)
Documentation
Check out the latest translate documentation at Read the Docs
Contributing
Please send pull requests, very much appreciated.
Fork the repository on GitHub.
Make a branch off of master and commit your changes to it.
(Optional) if you want an isolated environment, you can install nixOS (https://nixos.org) and run nix-shell --pure under the project folder
Install requirements. pip install -r requirements-dev.txt
Install pre-commit. pre-commit install
Run the tests with py.test -vv -s
Create a Pull Request with your contribution.
Changelog
3.8.1
Publish to PyPI via GitHub Actions on version tag push (trusted publishing)
Remove local twine upload from make release; tag push triggers CI publish
Document PyPI trusted publisher setup in release guide
3.8.0
Add Yandex Translate API provider support
Add Nix development environment (flake.nix) for reproducible builds
Add folder_id and is_iam flags to CLI for Yandex provider configuration
Enhance base provider to support folder_id parameter
Update documentation with Yandex provider details
Add comprehensive tests for Yandex provider
3.7.1
Bugfix for region flag to CLI
3.7.0
Adds region flag to CLI
3.6.1
Add LibreTranslate
3.5.0
Add sphinx documentation
Update readme.
3.4.1
Makefile: Add a make release command
Add twine to dev requirements.
3.4.0
Refactor: Create a folder to add all providers instead to let in a single file
Add Microsoft provider
Add more documentation to all providers (Translated-MyMemory and Microsoft Translator)
Add arguments to change the default provider using translate-cli
3.3.0
Refactor translate-cli (command line interface) Using Click library instead of ArgParser
Unify translate-cli and main to avoid duplicate code
Add documentation to be used on helper commands on translate-cli
Remove unnecessary code
Refactor setup to complete information in the PKG-INFO used by PyPI
3.2.1
Change the license from “BEER-WARE” to MIT
3.2.0
Add multiple providers suport
3.1.0
Apply Solid Principles
Organize Project
Add pre-commit, pytest
Add new Make file
Add new test cases
3.0.0
General Refactor
Remove urllib to use requests
Refactor methods names removing google from then
Apply PEP8
Change contructor to keep it the code simple
2.0.0 (2017-11-08)
initial release using changes file
Release files for translate 3.8.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| translate-3.8.1.tar.gz | 23.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| translate-3.8.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 38.5 kB
Release files / translate-3.8.1.tar.gz
| Download URL | translate-3.8.1.tar.gz |
|---|---|
| Size | 23.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b04d17a02b71266f25ce24fcbb99d04b96ac76a8954682ee2304d0697423c041
|
|
BLAKE2b-256 checksum How to use checksums |
d5b60cb83531b7ef41d2ddab6c56b4579423c3949916789b9048565853fc0906
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.
Transparency logRelease files / translate-3.8.1-py2.py3-none-any.whl
| Download URL | translate-3.8.1-py2.py3-none-any.whl |
|---|---|
| Size | 14.7 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
314511b7d1dc7bdec7685125e1155e29eacff4d8f88f8736d2942c5791da8c01
|
|
BLAKE2b-256 checksum How to use checksums |
fc132e0ff8eea201d44141592a469c7006716ff46f60db0d4879f9c199f1a48d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jul 6, 2026.
Transparency log