oss-tools / laravel-libretranslate
Package to introduce a Client for translating text using LibreTranslate in Laravel.
v1.0.1
2023-07-27 19:03 UTC
Requires
- php: ^8.0.2
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- illuminate/database: ^9.0 || ^10.0
- illuminate/support: ^9.0 || ^10.0
- nesbot/carbon: ^2.0
Requires (Dev)
- orchestra/testbench: ^7.0 || ^8.0
- phpunit/phpunit: ^9.5.10 || ^10.1
README
This package adds a client to translate text in Laravel using LibreTranslate.
What is LibreTranslate?
LibreTranslate is a free and open source translation library.
Installation
You can install the package via composer:
composer require oss-tools/laravel-libretranslate
Configuration
To set up the package, you will need to set the below env variables.
LIBRETRANSLATE_HOST=https://mylibretranslateserver.com
LIBRETRANSLATE_API_KEY=your-api-key
LIBRETRANSLATE_DEFAULT_SOURCE=en
Note: The default value for LIBRETRANSLATE_HOST
is set to https://translate.argosopentech.com however, we recommend setting up your own server or using a host that is suitable for your needs for production.
Usage
use OSSTools\LibreTranslate\Client; use OSSTools\LibreTranslate\Translation\LanguageCodes; class ExampleController extends Controller { public function translate() { $client = new Client(); // Returns an instance of \OSSTools\LibreTranslate\Translation\TranslationCollection $result = $client->translate('This is some text', LanguageCodes::SPANISH); // Returns an array of \OSSTools\LibreTranslate\Translation\TranslationItem $result = $client->translate('This is some text', LanguageCodes::SPANISH)->getAll(); // Returns a single instance of \OSSTools\LibreTranslate\Translation\TranslationItem $result = $client->translate(['This is some text', 'A test'], LanguageCodes::SPANISH)->first(); // Returns a single instance of \OSSTools\LibreTranslate\Translation\TranslationItem $result = $client->translate(['This is some text', 'A test'], LanguageCodes::SPANISH)->last(); // Returns a single instance of \OSSTools\LibreTranslate\Translation\TranslationItem $result = $client->translate(['This is some text', 'A test'], LanguageCodes::SPANISH)->get('A test'); // Returns "Una prueba" $result = $client->translate(['This is some text', 'A test'], LanguageCodes::SPANISH)->last()->getText(); } }
Detecting a language from some text
use OSSTools\LibreTranslate\Client; class ExampleController extends Controller { public function translate() { $client = new Client(); // Returns an instance of \OSSTools\LibreTranslate\Translation\TranslationDetectionCollection $result = $client->detect('This is some text'); // Returns an array of \OSSTools\LibreTranslate\Translation\TranslationDetectionItem $result = $client->detect('This is some text')->getAll(); // Returns a single instance of \OSSTools\LibreTranslate\Translation\TranslationDetectionItem $result = $client->translate('This is some text')->first(); // Returns "en" $result = $client->detect('Some text')->first()->getLanguage(); // Returns "es" $result = $client->detect('Una prueba')->first()->getLanguage(); } }
Testing
composer test
License
The MIT License (MIT). Please see License File for more information.