Ce script Python fournit un outil robuste et flexible pour traduire des fichiers .po
à l'aide du modèle GPT-4 d'OpenAI. Il s'adapte à différents modes de traduction, gère les entrées floues et intègre le traitement par lots pour les projets plus volumineux, ce qui le rend adapté à diverses structures et tailles de fichiers .po
.
--detail-lang
) : prend en charge l'utilisation de noms de langue complets (par exemple, "Pays-Bas, allemand") aux côtés de codes courts (par exemple, nl, de
), garantissant la clarté des invites de traduction.polib
(pour la gestion des fichiers .po
)openai
Python (pour l'intégration avec les modèles OpenAI GPT)tenacity
(pour les mécanismes de nouvelle tentative)python-dotenv
(pour gérer les variables d'environnement) Installez le package gpt-po-translator
directement depuis PyPI :
pip install gpt-po-translator
Pour une installation manuelle ou pour travailler avec le dernier code du référentiel :
git clone [repository URL]
pip install .
Le gpt-po-translator
prend en charge deux méthodes pour fournir les informations d'identification de l'API OpenAI :
Variable d'environnement : définissez votre clé API OpenAI en tant que variable d'environnement nommée OPENAI_API_KEY
. Cette méthode est recommandée pour la sécurité et la facilité de gestion des clés API.
export OPENAI_API_KEY= ' your_api_key_here '
Argument de ligne de commande : transmettez la clé API comme argument de ligne de commande à l'aide de l'option --api_key
.
gpt-po-translator --folder ./locales --lang de,fr --api_key ' your_api_key_here ' --bulk --bulksize 100 --folder-language
Assurez-vous que votre clé API est stockée en toute sécurité et n'est pas exposée dans des espaces ou des référentiels publics.
Utilisez gpt-po-translator
comme outil de ligne de commande pour traduire les fichiers .po
:
gpt-po-translator --folder [path_to_po_files] --lang [language_codes] [--api_key [your_openai_api_key]] [--fuzzy] [--bulk] [--bulksize [batch_size]] [--folder-language] [--detail-lang [full_language_names]]
gpt-po-translator --folder ./locales --lang de,fr --api_key ' your_api_key_here ' --bulk --bulksize 40 --folder-language --detail-lang " German,French "
Cette commande traduit les fichiers .po
du dossier ./locales
en allemand et en français, à l'aide de la clé API OpenAI fournie et en traitant 40 traductions par lot en mode groupé. Il déduit également la langue de la structure des dossiers.
--folder
: Spécifie le dossier d'entrée contenant les fichiers .po
.--lang
: codes de langue séparés par des virgules pour filtrer les fichiers .po
(par exemple, de,fr
).--detail-lang
: Argument facultatif pour les noms de langue complets, correspondant à l'ordre de --lang
(par exemple, "Allemand, Français").--fuzzy
: Supprime les entrées floues avant le traitement.--bulk
: Active le mode de traduction groupée pour un traitement plus rapide.--bulksize
: définit la taille du lot pour la traduction en masse (la valeur par défaut est 50).--model
: Spécifie le modèle OpenAI à utiliser pour les traductions (la valeur par défaut est gpt-3.5-turbo-0125
).--api_key
: clé API OpenAI. Peut être fourni via la ligne de commande ou en tant que variable d'environnement.--folder-language
: déduit la langue cible à partir de la structure des dossiers. L'option --detail-lang
complète --lang
en vous permettant de spécifier des noms de langue complets (par exemple, Netherlands,German
) au lieu de codes courts de langue. Les noms complets sont ensuite utilisés dans le contexte des invites OpenAI, améliorant ainsi la clarté du modèle GPT.
Exemple d'utilisation :
gpt-po-translator --folder ./locales --lang nl,de --detail-lang " Netherlands,German "
Le script enregistre des informations détaillées sur les fichiers en cours de traitement, le nombre de traductions et les détails du lot en mode groupé. Les journaux sont essentiels pour suivre les progrès, déboguer les problèmes et garantir la transparence tout au long du processus de traduction.
Le script inclut une gestion robuste des erreurs et des tentatives pour garantir une traduction fiable :
Ce projet est sous licence MIT. Voir le fichier LICENSE pour plus de détails.