This is a simple Python library/CLI tool to translate .po
files using various APIs. Currently supports Microsoft Translate and OpenAI API.
Install and update using pip:
pip install -U poTranslation
Create a .env
file in your working directory or parent directory with the following content for the API you want to use:
TRANSLATOR_SERVICE=YOUR_TRANSLATOR_SERVICE
MS_API_KEY=YOUR_MS_API_KEY
MS_API_REGION=YOUR_MS_API_REGION
OPENAI_API_KEY=YOUR_OPENAI_API_KEY
potranslate ./messages.po # translate untranslated text from 'en' to language specified in the .po file, save to ./messages.po
potranslate ./messages.po -s en -l zh # translate from 'en' to 'zh'
potranslate ./messages.po -o ./translated.po # translated .po file, save to ./translated.po
potranslate ./messages.po -F # force translation of all entries
potranslate ./messages.po -w # translate and NOT write to the file
This would work with the .po
files compiled using pybabel compile [options]
[Babel CLI]
potranslate -d app/translations # translate app/translations/<locale>/LC_MESSAGES/<domain>.po
potranslate -d app/translations -l zh # translate app/translations/zh/LC_MESSAGES/<domain>.po
potranslate -d app/translations -D messages # translate app/translations/<locale>/LC_MESSAGES/messages.po
Usage: potranslate [OPTIONS] [PO_FILE_PATH]
Options:
-s, --source_language TEXT Translate from (language). [default: en]
-l, --locale TEXT Translate to (language). [default: (load from .po file)]
-L, --lang TEXT Programming langrage of formatted string. [default: python]
-o, --output PATH Path to the output file. [default: {po_file_path}]
-e, --env PATH Path to the env file. [default: (load from cwd and parent dir)]
-d, --directory PATH Directory of the PO files.
-D, --domain TEXT Domain of the PO file.
-F, --force Force translation of all entries.
-v, --verbose Enable verbose output.
-q, --quiet Suppress output.
-w, --write Write to the file. [default: True]
-h, --help Show this message and exit.
- Multiple translation services support
- Support for printf-style formatted strings[printf-style]
- Support for
Babel
compiled.po
files [Babel CLI][Bable]
Challenge: Some services require a glossary to be created before translation for formatted strings with placeholders.
Distributed under the BSD 3-Clause License. See LICENSE
for more information.
Source Code: https://github.com/StevenGuo42/poTranslation
Issue Tracker: https://github.com/StevenGuo42/poTranslation/issues
PyPI: https://pypi.org/project/poTranslation/