Auto-I18N: outil de traduction multilingue automatique à l'aide de chatppt
Auto-I18n est un outil qui traduit automatiquement les fichiers de Markdown en multilingue à l'aide de Chatgpt. Il met en œuvre l'automatisation complète du blog I18N (internationalisation). Il vous suffit de pousser votre article de blog dans votre référentiel GitHub pour se traduire automatiquement par plusieurs langues avec des actions GitHub. (L'anglais, l'espagnol et l'arabe sont actuellement pris en charge et davantage de soutien linguistique seront fournis à l'avenir)
Les principales caractéristiques de Auto-I18N:
- Traduction multilingue par lots : Auto-I18n fournit la fonction de la traduction par lots, vous permettant de traduire tous les documents de marque dans un chemin entier dans des langues multilingues à la fois, améliorant considérablement l'efficacité des projets multilingues.
- Compatible avec Front Matter : Auto-I18N compatible avec la syntaxe de Markdown Front Match, vous pouvez personnaliser des règles de traduction ou de remplacement pour différents champs.
- Remplacement du contenu fixe : Auto-I18N prend également en charge le remplacement de contenu fixe. Si vous souhaitez que la traduction de certains champs en double du document reste inchangée, cette fonctionnalité peut vous aider à atteindre une documentation cohérente.
- Flux de travail automatisé : vous pouvez utiliser des actions GitHub pour implémenter un processus de traduction automatisé. Sans intervention manuelle, les travaux de traduction procéderont automatiquement et mettront à jour les documents, vous permettant de vous concentrer davantage sur le contenu.
Commencez rapidement
- Clonage du référentiel localement, renommant
env_template.py à env.py et fournissant votre API Chatgpt. Si vous n'avez pas votre propre API, vous pouvez en demander une gratuite dans GPT_API_FREE; Vous pouvez également utiliser Go-chatgpt-API pour convertir la version Web de ChatGpt en API à utiliser. - Installez les modules requis:
pip install -r requirements.txt . - Exécutez la commande
python auto-translater.py pour exécuter le programme, qui traitera automatiquement tous les fichiers Markdown dans le répertoire de test testdir/to-translate , et le lot le traduit en anglais, espagnol et arabe. (Plus de soutien linguistique sera fourni à l'avenir)
Description détaillée
La logique en cours d'exécution du programme auto-translater.py est la suivante:
- Le programme traitera automatiquement tous les fichiers Markdown dans le répertoire de test
testdir/to-translate . Vous pouvez exclure les fichiers qui n'ont pas besoin d'être traduits dans la variable exclude_list . - Le nom de fichier traité sera enregistré dans le
processed_list.txt généré automatiquement_list.txt. Les fichiers traités ne seront plus traduits la prochaine fois que le programme sera exécuté. - Pour les articles à l'origine écrits en anglais, le programme ne se rétroconsera pas en anglais, ni ne sera traduit en chinois, mais sera traduit dans d'autres langues. Vous devez ajouter des champs dans l'article
> This post was originally written in English. (Notez qu'il y a une ligne vide dans chaque supérieur et inférieur) pour que le programme reconnaisse. Veuillez vous référer au test Article_en.md. - Si vous avez besoin de retranslater l'article spécifié (par exemple, les résultats de traduction sont inexacts ou le contenu de l'article a changé, etc.), vous pouvez ajouter un champ
[translate] à l'article (vous devez également laisser une ligne vide en haut et en bas). Cela ignorera les règles exclude_list et processed_list et forcera le traitement de la traduction. Veuillez vous référer au test Article_Force-Mark.md. - Si le fichier Markdown contient la matière frontale, la méthode de traitement suivante sera sélectionnée en fonction des règles du programme
front_matter_translation_rules :- Traduction automatique: traduit par Chatgpt. Applicable au titre de titre ou de description de l'article.
- Remplacement du champ fixe: applicable aux champs de catégorie ou d'étiquette. Par exemple, si le même nom d'étiquette chinoise ne veut pas être traduit en différentes étiquettes anglaises, elle provoque des erreurs d'index.
- Aucun traitement n'est effectué: si le champ n'apparaît pas dans les deux règles ci-dessus, le texte d'origine sera conservé et aucun traitement ne sera effectué. Applicable à ce jour, URL, etc.
Guide d'automatisation des actions GitHub
Vous pouvez créer .github/workflows/ci.yml sous votre référentiel de projet. Lorsque le référentiel GitHub est détecté, vous pouvez utiliser des actions GitHub pour traduire et le traiter automatiquement et vous engager automatiquement au référentiel d'origine.
Le contenu de ci.yml peut être référencé comme modèle: ci_template.yml
Vous devez ajouter deux secrets dans les Settings du référentiel - Secrets and variables - Repository secrets : CHATGPT_API_BASE et CHATGPT_API_KEY , et commentez l'instruction import env dans le programme auto-translater.py .
Dépannage des erreurs
- Si vous devez vérifier la disponibilité de la clé API ChatGPT, vous pouvez utiliser le programme Verify-api-key.py pour le tester. Si vous utilisez l'API officielle dans le pays, vous devez avoir un proxy local.
- Si le premier problème dans Markdown ne peut pas être reconnu normalement, vous pouvez utiliser le programme détect_front_matter.py pour tester.
- Lorsque vous rencontrez des problèmes à l'aide d'actions GitHub, hiérarchisez la vérification que la référence de chemin est correcte (par exemple,
dir_to_translate dir_translated_en dir_translated_es dir_translated_ar processed_list ).
Problèmes à résoudre
- Dans certaines circonstances particulières, la traduction peut être inexacte ou certains champs ne sont pas traduits. Il est recommandé de vérifier manuellement l'article après la traduction.
- (Résolu)
Si la matière avant est incluse dans Markdown, le contenu d'origine de la matière frontale sera conservé. Front, certaines fonctions de traduction des paramètres sont en cours de développement.
contribuer
Bienvenue pour participer à l'amélioration de ce projet! Si vous souhaitez contribuer du code, signaler des questions ou faire des suggestions, consultez le guide de contribution.
Copyright et licence
Ce projet adopte une licence MIT.
Questions et soutien
Si vous rencontrez des problèmes avec Auto-I18N ou avez besoin d'un support technique, n'hésitez pas à soumettre le problème.
Mon blog utilise Auto-I18N pour implémenter un support multilingue, et vous pouvez aller au wiki de la puissance pour afficher les effets de démonstration.
Remerciements
- Merci à Chatanywhere / GPT_API_FREE pour la clé API ChatGPT gratuite.
- Merci à Linweiyuan / Go-chatgpt-API pour la méthode pour convertir ChatGpt en API sur le Web.