Skip to content

StevenGuo42/poTranslation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

poTranslation

Description

This is a simple Python library/CLI tool to translate .po files using various APIs. Currently supports Microsoft Translate and OpenAI API.

Installation

Install and update using pip:

pip install -U poTranslation

Usage

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

CLI Examples

Translate a .po file

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

Translate a directory of .po files

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

CLI Usage

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.

Features

Challenge: Some services require a glossary to be created before translation for formatted strings with placeholders.

License

Distributed under the BSD 3-Clause License. See LICENSE for more information.

Links

Source Code: https://github.com/StevenGuo42/poTranslation
Issue Tracker: https://github.com/StevenGuo42/poTranslation/issues
PyPI: https://pypi.org/project/poTranslation/

About

Translator for .po files

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages