Skip to main content

Concurrently request multiple translation platforms. Support Baidu, Bing, Deepl, Google, MyMemory, Tencent, Youdao.

Project description

PyPI latest PyPI Version PyPI License Docs

Translate is a simple but powerful translation tool written in python with support for multiple translation providers. By now we offer integration with Baidu, Bing, Deepl, Google, MyMemory, Tencent, Youdao translation APIs.

It is forked from translate, and it is compatible with this pack.

Why Should I Use This?

The biggest reason to use translate is to make translations in wox and alfred quickly, and I would like to see the translation results of various platforms and choose the best one. I want to share with you, and it supports concurrent request for multiple platform translation results.

Installation

$ pip install multi-translate

Or, you can download the source and

$ python setup.py install

Prefix ‘sudo’ if you encounter a problem.

Features

  • Translate text in real time and support concurrent request for multiple platform translation results

  • Do translation in your terminal using the command line

  • Default Youdao Translator, and it has built-in Youdao Translator APP_KEY, so you can use Youdao Translator directly.

Usage

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. bing or deepl>', to_lang=to_lang, secret_key=secret)
In [5]: translator.translate('the book is on the table')
Out [5]: '碗是在桌子上。'

Use multi translation provider

from translate import Translator
baidu = {
    'appid': 'xxx',
    'secret_key': 'xxx'
}
tencent = {
    'secret_id': 'xxx',
    'secret_key': 'xxx'
}
bing = {
    'location': 'eastus',
    'secret_key': 'xxx'
}
youdao = {
    'app_key': 'xxx',
    'app_secret': 'xxx'
}
translator = Translator(to_lang='zh', provider='baidu,tencent,youdao,bing',
                        baidu=baidu, tencent=tencent, bing=bing, youdao=youdao)
translation = translator.translate('hello world', return_str=False)
print(translation)

# output: {'youdao': '你好世界', 'tencent': '你好世界', 'bing': '世界您好', 'baidu': '你好,世界'}

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_key

In: translator = Translator(provider='microsoft', to_lang=to_lang, secret_key=secret, pro=True)

Use As A Command Line

In your command-line:

$ translate-cli -t zh "This is a pen."

Translation: 这是一支钢笔。
-------------------------
Translated by: youdao

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 'auto'.
  -t, --to TEXT             Set the language you want to translate.
  -p, --provider TEXT       Set the provider you want to use. The default value is 'youdao'.
  --appid TEXT              appid, needed by baidu translator
  --secret_id TEXT          Set the secret id used to get provider oAuth token.
  --secret_key TEXT         Set the secret access key used to get provider oAuth token.
  -o, --output_only         Set to display the translation only.
  --help                    Show this message and exit.

Change Default Languages

In ~/.python-translate.cfg:

[DEFAULT]
from_lang = autodetect
to_lang = de
provider = youdao
secret_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 [youdao]:
Secret Access Key []:

Documentation

Check out the latest translate documentation at Read the Docs

It’s document of translate, but it’s still available, although no new features.

Contributing

Please send pull requests, very much appreciated.

  1. Fork the repository on GitHub.

  2. Make a branch off of main and commit your changes to it.

  3. (Optional) if you want an isolated environment, you can install nixOS (https://nixos.org) and run nix-shell --pure under the project folder

  4. Install requirements. pip install -r requirements-dev.txt

  5. Install pre-commit. pre-commit install

  6. Run the tests with py.test -vv -s

  7. Create a Pull Request with your contribution.

Changelog

1.0.0

  • initial release using changes file

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

multi-translate-1.0.0.tar.gz (20.7 kB view details)

Uploaded Source

Built Distribution

multi_translate-1.0.0-py2.py3-none-any.whl (16.8 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file multi-translate-1.0.0.tar.gz.

File metadata

  • Download URL: multi-translate-1.0.0.tar.gz
  • Upload date:
  • Size: 20.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.7

File hashes

Hashes for multi-translate-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8cb05a67f39c4642b20daa98677da4d5080e7ec67c051c50ee681de002217675
MD5 24a0da9190e2fcc2a044e7544a256553
BLAKE2b-256 af4e5067f03174250c78ce9862026e1accb1f74d4b351825e54086906d21f81f

See more details on using hashes here.

File details

Details for the file multi_translate-1.0.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for multi_translate-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a48dfc8f53a7427bb27193e1956519cabca74a4070f697b03ec87c3f3fecaa6d
MD5 8d17e112a9ec5c5c5fd26eabd0874fea
BLAKE2b-256 8cb4262ecdff2588cb254b448bd8abf4e45ac8495dffde68c1036acffa52c2fa

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