Welcome to Translate Python’s documentation!¶
Translate is a simple but powerful translation tool written in python with with support for multiple translation providers. By now we are integrated with Microsoft Translation API and Translated MyMemory API
Quickstart¶
User Guide¶
Overview¶
Translate is a simple but powerful translation tool written in python with with support for multiple translation providers. It can be used as python module or as command line tool
TODO: Add more content
Providers¶
Providers are responsible to translate the text
MicrosoftProvider¶
It is a paid provider but it is possible you can create a free account tends a quota of up to 2m of words per day
MicrosoftProvider
(located at translate.providers
) receives the following options:
to_lang, from_lang=’en’, secret_access_key
to_lang
: language you want to translatefrom_lang
: Language of the text being translated (optional): as defaultautodetect
secret_access_key
: oAuth Access Token
for further information abount the provider:
MyMemory¶
Is a free provider but very complete
MyMemory
(located at translate.providers
) receives the following options:
to_lang, from_lang=’en’, email
to_lang
: language you want to translatefrom_lang
: Language of the text being translated (optional): as defaultautodetect
for further information abount the provider:
LibreTranslate¶
Free and open source translation provider
LibreTranslate
(located at translate.providers
) receives the following options:
to_lang, from_lang=’en’, secret_access_key=None, base_url=”https://translate.astian.org/”
to_lang
: language you want to translatefrom_lang
: Language of the text being translated (optional): as defaultautodetect
secret_access_key
: LibreTranslate API key
base_url
: LibreTranslate instance url
for further information abount the provider:
Tutorial¶
Command Line¶
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 on line 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 Generated 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 Sets 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.
--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 using 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 []:
The country code, as far as I know, is following https://en.wikipedia.org/wiki/ISO_639-1.
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 in translation, and it’s 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>'
In [4]: translator = Translator(provider='microsoft', to_lang=to_lang, secret_access_key=secret)
In [5]: translator.translate('the book is on the table')
Out [5]: '碗是在桌子上。'
Development¶
Development Installation¶
Requirements¶
Python 2.x, 3.x
Development install¶
After forking or checking out:
$ cd translate-python/
$ pip install -r requirements-dev.txt
$ pre-commit install
The requirements-dev are only used for development, so we can easily install/track dependencies required to run the tests using continuous integration platforms.
The official entrypoint for distritubution is the requirements.txt
which
contains the minimum requirements to execute the tests.
Running tests:
$ make test
or:
$ py.test -vv -s
Generating documentation:
$ cd docs/
$ make html
Release¶
To release a new version, a few steps are required:
- Update version/release number in
docs/source/conf.py
- Add entry to
CHANGES.rst
and documentation - Review changes in test requirements
requirements.txt
- Test build with
make build
- Commit changes
- Release with
make release
Other¶
Changelog¶
Changelog¶
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