The Perl and Raku Conference 2025: Greenville, South Carolina - June 27-29 Learn more

NAME

App::Greple::xlate - module de support de traduction pour greple

SYNOPSIS

greple -Mxlate -e ENGINE --xlate pattern target-file

greple -Mxlate::deepl --xlate pattern target-file

VERSION

Version 0.9908

DESCRIPTION

Le module Greple xlate trouve les blocs de texte souhaités et les remplace par le texte traduit. Actuellement, les modules DeepL (deepl.pm) et ChatGPT (gpt3.pm) sont implémentés en tant que moteur en arrière-plan. Un support expérimental pour gpt-4 et gpt-4o est également inclus.

Si vous souhaitez traduire des blocs de texte normaux dans un document écrit dans le style pod de Perl, utilisez la commande greple avec les modules xlate::deepl et perl de cette manière :

greple -Mxlate::deepl -Mperl --pod --re '^([\w\pP].*\n)+' --all foo.pm

Dans cette commande, la chaîne de motif ^([\w\pP].*\n)+ signifie des lignes consécutives commençant par une lettre alphanumérique et de ponctuation. Cette commande affiche la zone à traduire mise en évidence. L'option --all est utilisée pour produire l'intégralité du texte.

Ensuite, ajoutez l'option --xlate pour traduire la zone sélectionnée. Ensuite, il trouvera les sections souhaitées et les remplacera par la sortie de la commande deepl.

Par défaut, le texte original et traduit est affiché dans le format "conflict marker" compatible avec git(1). En utilisant le format ifdef, vous pouvez obtenir la partie souhaitée avec la commande unifdef(1) facilement. Le format de sortie peut être spécifié avec l'option --xlate-format.

Si vous souhaitez traduire l'intégralité du texte, utilisez l'option --match-all. Il s'agit d'un raccourci pour spécifier le motif (?s).+ qui correspond à l'ensemble du texte.

Le format des données de marqueur de conflit peut être visualisé en style côte à côte en utilisant la commande sdif avec l'option -V. Comme il n'a pas de sens de comparer sur une base par chaîne, l'option --no-cdif est recommandée. Si vous n'avez pas besoin de colorer le texte, spécifiez --no-textcolor (ou --no-tc).

sdif -V --no-tc --no-cdif data_shishin.deepl-EN-US.cm

NORMALIZATION

Le traitement est effectué en unités spécifiées, mais dans le cas d'une séquence de plusieurs lignes de texte non vide, elles sont converties ensemble en une seule ligne. Cette opération est effectuée comme suit :

Les données du cache sont gérées en fonction du texte normalisé, donc même si des modifications sont apportées qui n'affectent pas les résultats de normalisation, les données de traduction mises en cache resteront efficaces.

Ce processus de normalisation est effectué uniquement pour le premier (0e) et le motif de numéro pair. Ainsi, si deux motifs sont spécifiés comme suit, le texte correspondant au premier motif sera traité après la normalisation, et aucun processus de normalisation ne sera effectué sur le texte correspondant au deuxième motif.

greple -Mxlate -E normalized -E not-normalized

Par conséquent, utilisez le premier modèle pour le texte qui doit être traité en combinant plusieurs lignes en une seule ligne, et utilisez le deuxième modèle pour le texte préformaté. S'il n'y a pas de texte à correspondre dans le premier modèle, utilisez un modèle qui ne correspond à rien, comme (?!).

MASKING

De temps en temps, il y a des parties de texte que vous ne voulez pas traduire. Par exemple, les balises dans les fichiers markdown. DeepL suggère que dans de tels cas, la partie du texte à exclure soit convertie en balises XML, traduite, puis restaurée une fois la traduction terminée. Pour prendre en charge cela, il est possible de spécifier les parties à masquer de la traduction.

--xlate-setopt maskfile=MASKPATTERN

Cela interprétera chaque ligne du fichier `MASKPATTERN` comme une expression régulière, traduira les chaînes qui lui correspondent, puis les rétablira après le traitement. Les lignes commençant par # sont ignorées.

Un motif complexe peut être écrit sur plusieurs lignes avec un retour à la ligne échappé par un backslash.

Comment le texte est transformé par le masquage peut être vu en utilisant l'option --xlate-mask.

Cette interface est expérimentale et sujette à modification à l'avenir.

OPTIONS

CACHE OPTIONS

Le module xlate peut stocker le texte traduit en cache pour chaque fichier et le lire avant l'exécution pour éliminer les frais généraux de demande au serveur. Avec la stratégie de cache par défaut auto, il ne conserve les données en cache que lorsque le fichier de cache existe pour le fichier cible.

Utilisez --xlate-cache=clear pour initier la gestion du cache ou pour nettoyer toutes les données de cache existantes. Une fois exécutée avec cette option, un nouveau fichier de cache sera créé s'il n'existe pas, puis automatiquement maintenu par la suite.

COMMAND LINE INTERFACE

Vous pouvez facilement utiliser ce module à partir de la ligne de commande en utilisant la commande xlate incluse dans la distribution. Consultez la page de manuel xlate pour connaître son utilisation.

La commande xlate fonctionne en collaboration avec l'environnement Docker, donc même si vous n'avez rien d'installé sous la main, vous pouvez l'utiliser tant que Docker est disponible. Utilisez l'option -D ou -C.

De plus, étant donné que des fichiers makefiles pour différents styles de documents sont fournis, la traduction dans d'autres langues est possible sans spécification spéciale. Utilisez l'option -M.

Vous pouvez également combiner les options Docker et make afin de pouvoir exécuter make dans un environnement Docker.

L'exécution comme xlate -C lancera un shell avec le dépôt git de travail actuel monté.

Lisez l'article japonais dans la section "VOIR AUSSI" pour plus de détails.

EMACS

Chargez le fichier xlate.el inclus dans le référentiel pour utiliser la commande xlate depuis l'éditeur Emacs. La fonction xlate-region traduit la région donnée. La langue par défaut est EN-US et vous pouvez spécifier la langue en l'appelant avec un argument préfixe.

ENVIRONMENT

INSTALL

CPANMINUS

$ cpanm App::Greple::xlate

TOOLS

Vous devez installer les outils en ligne de commande pour DeepL et ChatGPT.

https://github.com/DeepLcom/deepl-python

https://github.com/tecolicom/App-gpty

SEE ALSO

App::Greple::xlate

App::Greple::xlate::deepl

App::Greple::xlate::gpt3

ARTICLES

AUTHOR

Kazumasa Utashiro

LICENSE

Copyright © 2023-2025 Kazumasa Utashiro.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.