Dans cet article, je vais vous montrer comment traduire du contenu par programmation avec PHP à l'aide de la bibliothèque TransformersPHP.
La traduction de texte est essentielle pour atteindre un public mondial et garantir que votre contenu est accessible aux locuteurs de différentes langues.
Pour commencer, assurez-vous que la bibliothèque TransformersPHP est installée. Vous pouvez l'installer via Composer en exécutant :
composer require codewithkyrian/transformers
Lors de l'installation, vous devez répondre à une question :
Do you trust "codewithkyrian/transformers-libsloader" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
Vous devrez répondre oui pour permettre au plugin Composer de télécharger toutes les bibliothèques partagées nécessaires à TransformersPHP.
Une fois installé, demandez au fichier de chargement automatique de charger toutes les classes et dépendances nécessaires :
<?php require "./vendor/autoload.php";
Ensuite, vous devrez importer les classes et fonctions pertinentes qui gèrent la traduction :
use Codewithkyrian\Transformers\Transformers; use function Codewithkyrian\Transformers\Pipelines\pipeline;
Avant de traduire du contenu, vous devez configurer la classe Transformers :
Transformers::setup()->setCacheDir("./models")->apply();
L'étape suivante consiste à créer un pipeline de traduction à l'aide d'un modèle pré-entraîné :
$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
Le modèle utilisé pour les traductions dans cet exemple est https://huggingface.co/Xenova/nllb-200-distilled-600M
Définissez les phrases que vous souhaitez traduire :
$inputs = [ "The quality of tools in the PHP ecosystem has greatly improved in recent years", "Some developers don't like PHP as a programming language", "I appreciate Laravel as a development tool", "Laravel is a framework that improves my productivity", "Using an outdated version of Laravel is not a good practice", "I love Laravel", ];
Ce tableau contient des phrases anglaises qui seront traduites en italien.
Parcourez chaque phrase et traduisez-la :
foreach ($inputs as $input) { $output = $translationPipeline( $input, maxNewTokens: 256, tgtLang: 'ita_Latn' ); echo "?? " . $input . PHP_EOL; echo "?? " . trim($output[0]["translation_text"]) . PHP_EOL; echo PHP_EOL; }
Le modèle prend en charge de nombreuses langues. Pour définir la langue cible avec le paramètre tgtLang, vous devez utiliser le code langue FLORES-200. Voici une liste : https://github.com/facebookresearch/flores/blob/main/flores200/README.md#linguals-in-flores-200
Lors de la première exécution du script, la fonction pipeline() téléchargera tous les fichiers de modèle dans le répertoire : models/Xenova/nllb-200-distilled-600M. Soyez patient, le modèle est énorme, plus de 800 Mo.
Avec TransformersPHP, la traduction du contenu par programmation est un processus rationalisé. En configurant l'environnement, en initialisant les classes nécessaires et en définissant un pipeline de traduction, vous pouvez facilement convertir du texte d'une langue à une autre. Ceci est particulièrement utile pour créer des sites Web, des applications ou du contenu multilingues, vous permettant ainsi d'atteindre efficacement un public plus large.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!