1. Go to this page and download the library: Download minhyung/laravel-translator library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
use Minhyung\LaravelTranslator\Contracts\Translator;
public function __construct(private Translator $translator) {}
use Minhyung\LaravelTranslator\Facades\Translator;
$detection = Translator::via('google')->detect('Bonjour le monde');
$detection->language; // "fr"
$detection->confidence; // 0.98 (0–1, when the provider reports it)
(string) $detection; // "fr"
foreach (Translator::via('deepl')->languages() as $language) {
$language->code; // "EN-US"
$language->name; // "English (American)"
$language->source; // can be a source language?
$language->target; // can be a target language?
}
use Minhyung\LaravelTranslator\Facades\Translator;
// Create one from a source-term => target-term map.
$glossary = Translator::via('deepl')->createGlossary(
name: 'product-terms',
sourceLang: 'en',
targetLang: 'ko',
entries: ['cookie' => '쿠키', 'cache' => '캐시'],
);
$glossary->id; // provider identifier
$glossary->entryCount; // 2
$glossary->targetLangs; // ['ko'] (Amazon terminologies may list several)
$glossary->ready; // usable for translation yet?
Translator::via('deepl')->glossaries(); // list all
Translator::via('deepl')->glossary($glossary->id); // fetch one
Translator::via('deepl')->glossaryEntries($id); // ['cookie' => '쿠키', ...]
Translator::via('deepl')->deleteGlossary($id);
Translator::via('deepl')->translate('Clear the cache', 'ko', 'en', [
'glossary' => $glossary->id,
]);
Translator::translate('Hello', 'ko'); // if deepl fails, try claude
Translator::queue('Hello', 'ko', 'en'); // default translator
Translator::via('deepl')->queue('Hello', 'ko'); // a specific one
Translator::via('deepl')->queueBatch(['Hello', 'Bye'], 'ko');
use Illuminate\Support\Facades\Queue;
use Minhyung\LaravelTranslator\Jobs\TranslateJob;
Queue::fake();
Translator::queue('Hello', 'ko');
Queue::assertPushed(TranslateJob::class);
use Illuminate\Support\Facades\Event;
use Minhyung\LaravelTranslator\Events\TranslationCompleted;
Event::listen(function (TranslationCompleted $event) {
logger()->info("Translated via {$event->translator}: {$event->result->text}");
});
use Minhyung\LaravelTranslator\TranslatorManager;
app(TranslatorManager::class)->extend('papago', function ($container, $name, $config) {
return new \App\Translation\PapagoDriver($config['key'], $name); // implements Contracts\Driver
});
bash
php artisan translator:translate "Hello, world!" ko
# 안녕하세요, 세상!
# pick a translator and source language
php artisan translator:translate "Hello" ko --via=claude --from=en
# full result (text, detected source, translator, ...) as JSON
php artisan translator:translate "Hello" ko --json
bash
php artisan translator:doctor
# also attempt a live translation through each translator
php artisan translator:doctor --ping
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.