alessiodh / deepltranslator
Will translate all files inside a laravel project using the DeepL API and exports it to the requested language
Installs: 8 225
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 11
Open Issues: 6
Requires
- ext-json: *
- guzzlehttp/guzzle: ^7.3
Requires (Dev)
- ext-json: *
- guzzlehttp/guzzle: ^7.3
This package is auto-updated.
Last update: 2025-05-13 21:34:46 UTC
README
Will translate all files inside a laravel project using the DeepL API and exports it to the requested language
Installation
Installation can be done through composer
composer require alessiodh/deepltranslator
Publishing the config file
php artisan vendor:publish --provider="Alessiodh\Deepltranslator\DeeplTranslatorServiceProvider"
Usage
Command
php artisan deepl:translate {from} {to} {--filename} {--json}
Option | Description | Required |
---|---|---|
from | The from language where the translations will be taken from | Yes |
to | The language you want to translate to | Yes |
filename | In case you want to translate a single file this option can be set | No |
json | In case this flag is set , it will search for json translation files instead of PHP | No |
The from language files will be retrieved inside /lang/{from}/
Trait
The trait can be used to translate a single string to multiple languages on-the-fly
Examples
Translating all files
php artisan deepl:translate en nl
This command will translate all php files inside the /lang/en
directory. If the map nl
is not existing, it will create it and put all translations according to the files retrieved from the from
language.
Single file
php artisan deepl:translate en nl --filename=auth.php
This will do exactly the same as translating all files but instead will only take 1 file inconsideration.
Trait usage
namespace App\Http\Controllers; use Alessiodh\Deepltranslator\Traits\DeepltranslatorTrait; class MyTestController extends Controller { use DeepltranslatorTrait; public function home(){ $translated = $this->translateString('This is a test', 'en', ['fr','nl','ru']); /* $translated = [ "fr" => "Il s'agit d'un test", "nl" => "Dit is een test", "ru" => "Это тест" ]; */ } }
Upcoming changes
Currently not all options that Laravel supports are supported inside this package. Following options will be added soon:
- Pluralization inside translation file
- Numeric if statements inside the translation
- Database translations
- JSON files as translation files instead of PHP