In this article, I'll show you how to translate content programmatically with PHP using the TransformersPHP library.
Translating text is essential for reaching a global audience and ensuring your content is accessible to speakers of different languages.
Step 1: Set up the project
To get started, please make sure you have the TransformersPHP library installed. You can install it via Composer by running:
composer require codewithkyrian/transformers
During the installation, you have to answer a 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,?]
You'll need to answer yes to enable the Composer plugin to download all shared libraries necessary for TransformersPHP.
Once installed, require the autoload file to load all necessary classes and dependencies:
<?php
require "./vendor/autoload.php";
Step 2: Import the necessary classes
Next, you’ll need to import the relevant classes and functions that handle translation:
use Codewithkyrian\Transformers\Transformers;
use function Codewithkyrian\Transformers\Pipelines\pipeline;
Transformers: This class manages the setup and configuration for translation models.
pipeline: This function initializes your specific translation pipeline.
Step 3: Initialize the Transformers class
Before translating content, you must configure the Transformers class:
Transformers::setup()->setCacheDir("./models")->apply();
setCacheDir(): This method defines the directory for caching models, which speeds up the process by avoiding repeated downloads.
apply(): Finalizes the setup and applies the configuration.
Step 4: Set Up the Translation Pipeline
The next step is to create a pipeline for translation using a pre-trained model:
$translationPipeline = pipeline("translation", 'Xenova/nllb-200-distilled-600M');
pipeline("translation", 'Xenova/nllb-200-distilled-600M'): This function sets up a translation pipeline using the specified model,Xenova/nllb-200-distilled-600M, which is capable of handling multiple languages efficiently.
The model used for translations in this example is
In the first execution of the script, the
pipeline()function will download all the model files into the directory:models/Xenova/nllb-200-distilled-600M. Be patient, the model is huge, more than 800 MB.
Conclusion
With TransformersPHP, translating content programmatically is a streamlined process. By setting up the environment, initializing the necessary classes, and defining a translation pipeline, you can easily convert text from one language to another. This is particularly useful for creating multilingual websites, applications, or content, allowing you to reach a broader audience effectively.
References
- TransformersPHP website:
- Intro article about TransformersPHP:
- TransformersPHP official documentation: , thank you for all your effort in building this open source PHP project ✨
↗ Original-Artikel auf dev.to lesenVollständiger Original-BerichtAusführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
SOCIAL SHARE CARD GENERATOR