Automate translation of gettext PO files using LibreTranslate, Ollama, and local models
Project description
transpolibre
transpolibre is a Python program to automate translation of gettext PO files
using LibreTranslate, Ollama, or local models.
Install
PyPI Installation
To install with pip from PyPI, you can do something like this:
python -m venv venv
source venv/bin/activate
pip install -U setuptools pip wheel
pip install transpolibre
# For Ollama
pip install transpolibre[ollama]
# For Local Engine
pip install transpolibre[local]
# For all engines
pip install transpolibre[all]
Source Installation
Thusly, suit to taste:
git clone https://spacecruft.org/deepcrayon/transpolibre
cd transpolibre/
python -m venv venv
source venv/bin/activate
pip install -U setuptools pip wheel
pip install -e .
Help
$ transpolibre --help
usage: transpolibre [-h] [-a API_KEY] [-c CUDA_DEVICE] [-d] [-D {auto,cpu,gpu}] [-e {LibreTranslate,Ollama,Local}] [-f FILE] [-l] [-m MODEL] [-o] [-s SOURCE_LANG] [-t TARGET_LANG] [-u URL] [-v] [-V]
Translate PO files
options:
-h, --help show this help message and exit
-a API_KEY, --api-key API_KEY
LibreTranslate API key
-c CUDA_DEVICE, --cuda-device CUDA_DEVICE
Local CUDA device number (Default 0)
-d, --debug Debugging
-D {auto,cpu,gpu}, --device {auto,cpu,gpu}
Device to use for local translation: auto, cpu, gpu (Default auto)
-e {LibreTranslate,Ollama,Local}, --engine {LibreTranslate,Ollama,Local}
Translation engine (Default: LibreTranslate)
-f FILE, --file FILE PO file to translate
-l, --list List available languages
-m MODEL, --model MODEL
Model for Local or Ollama (Default local: ModelSpace/GemmaX2-28-9B-v0.1, default Ollama: aya-expanse:32b)
-o, --overwrite Overwrite existing translations
-s SOURCE_LANG, --source-lang SOURCE_LANG
Source Language ISO 639 code (Default en)
-t TARGET_LANG, --target-lang TARGET_LANG
Target Language ISO 639 code (Default es)
-u URL, --url URL Engine URL (Default LibreTranslate: http://127.0.0.1:8000, default Ollama: http://127.0.0.1:11434)
-v, --verbose Increase output verbosity
-V, --version Show version
Status
Beta.
AI
"Open Source" AI models are used to generate and edit some code.
Upstream
Projects used by transpolibre.
- https://libretranslate.com/
- https://www.gnu.org/software/gettext/manual/gettext.html
- https://polib.readthedocs.io
- https://github.com/argosopentech/LibreTranslate-py
- https://ollama.com/
License
Apache 2.0 or Creative Commons CC by SA 4.0 International. You may use this code, files, and text under either license.
Unofficial project, not related to upstream projects.
Upstream sources under their respective copyrights.
Copyright © 2025 Jeff Moe.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file transpolibre-0.8.15.tar.gz.
File metadata
- Download URL: transpolibre-0.8.15.tar.gz
- Upload date:
- Size: 685.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8a43d562dda46b6f7ae0b187beee511c618ea2e903d8672b9e1aaccc636d701c
|
|
| MD5 |
afef59bc2058653ee14290acdd2597f7
|
|
| BLAKE2b-256 |
22a9940f83b331d1715d41dde9925dcb2526e304b2aedd529135a304521c1250
|
File details
Details for the file transpolibre-0.8.15-py3-none-any.whl.
File metadata
- Download URL: transpolibre-0.8.15-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9e09e703fc0e4ae46f6a3fe2045ea118c20938468f3f3dd4b0009c682453cc8
|
|
| MD5 |
d00b6bdd6e2d33c85b30588c91ef21d8
|
|
| BLAKE2b-256 |
ab203776442a0a076fd9f5a8626e35a49c61afc2884dde9a49c849cfc511352e
|