This program allows to translate .po files, as used by gettext using different cloud services. This software was inspired by pescheckit/python-gpt-po. Currently it works with Microsoft Azure Translator, but the plan is to rewrite the functionality of the ChatGPT backend.
This is an initial commit to initialize the repository. This version is experimental.
- Bulk Translation Mode: Enhances efficiency by facilitating the translation of multiple text entries simultaneously.
- Individual Translation Mode: Offers the flexibility to translate entries one at a time for greater precision.
- Configurable Batch Size: Allows users to set the number of entries to be translated in each batch during bulk translation.
- Comprehensive Logging: Logs detailed information for progress monitoring and debugging purposes.
- Fuzzy Entry Exclusion: Enables the option to omit 'fuzzy' entries from translation in
.po
files. - Flexible API Key Configuration: Supports providing the OpenAI API key either through command-line arguments or a
.env
file.
- Python 3.x
polib
libraryopenai
Python package
The gpt-po-translator
supports two methods for providing OpenAI API credentials:
-
Environment Variable: Set your OpenAI API key as an environment variable named
OPENAI_API_KEY
. This method is recommended for security and ease of API key management.export OPENAI_API_KEY='your_api_key_here'
-
Command-Line Argument: Pass the API key as a command-line argument using the
--api_key
option.gpt-po-translator --folder ./locales --lang de,fr --api_key 'your_api_key_here' --bulk --bulksize 100 --folder-language
Ensure your API key is kept secure and not exposed in shared or public spaces.
For manual installation or to work with the latest code from the repository:
- Clone the repository:
git clone [repository URL]
- Navigate to the cloned directory and install the package:
pip install .
Use gpt-po-translator
as a command-line tool:
gpt-po-translator --folder [path_to_po_files] --lang [language_codes] [--api_key [your_openai_api_key]] [--fuzzy] [--bulk] [--bulksize [batch_size]] [--folder-language] [--source-language [Language]]
gpt-po-translator --folder ./locales --lang de,fr --api_key 'your_api_key_here' --bulk --bulksize 100 --folder-language
This command translates .po
files in the ./locales
folder to German and French, using the provided OpenAI API key, and processes 100 translations per batch in bulk mode.
The script logs detailed information about the files being processed, the number of translations, and batch details in bulk mode.
- You can find the name of the OpenAI ChatGPT models and their pricing here.
- Learn about gettext and the format of PO files.
Read the MIT LICENSE file.