LaravelPackages.net
Acme Inc.
Toggle sidebar
javidalpe/laravel-localization-automation

Translate your Laravel localization files using third party services

55
2
1.0.5
About javidalpe/laravel-localization-automation

javidalpe/laravel-localization-automation is a Laravel package for translate your laravel localization files using third party services. It currently has 2 GitHub stars and 55 downloads on Packagist (latest version 1.0.5). Install it with composer require javidalpe/laravel-localization-automation. Discover more Laravel packages by javidalpe or browse all Laravel packages to compare alternatives.

Last updated

Automatically translate your lang files

This package translates your Laravel localization files automatically using a third party service. Currently only supports DeepL.

This package only works with 'Short Keys' approach

Installation

You can install the package via composer:

composer require --dev javidalpe/laravel-localization-automation

If you're on Laravel 5.4 or earlier, you'll need to add the following to your config/app.php:

'providers' => [
    ...
    Javidalpe\LaravelLocalizationAutomation\LaravelLocalizationAutomationServiceProvider::class,
];

Usage

This command translates all your files in /lang/{from}/ directory and create the new ones in /lang/{to}/ directory.

php artisan localization:translate {from} {to} {--provider=deepl}

Example using default provider:

php artisan localization:translate es fr

Example using custom provider:

php artisan localization:translate es fr --provider=deepl

Known issues

The command will fail on:

  1. Lemmas with HTML inside.
    \\Wrong
    'welcome.greetings' => '<strong>Hey!</strong>',
    \\Good
    'welcome.greetings' => 'Hey!',
    
  2. Lemmas with placeholders different from Laravel.
    \\Wrong
    'welcome.greetings' => 'Hey {{name}}!',
    \\Good
    'welcome.greetings' => 'Hey!',
    
  3. URLs. Fix these URLs manually.

Supported Languages

Deeply

DeepL(y) supports these languages:

| Code | Language | |------|---------------| | DE | German | | EN | English | | FR | French | | ES | Spanish | | IT | Italian | | NL | Dutch | | PL | Polish |

DeepL says they will add more languages in the future, such as Chinese and Russian.

How it works

  1. Foreach file in /lang/{from}/ directory.
  2. Foreach lemma in file.
  3. Split pluralization lemmas.
  4. Replace each Laravel place-holder with temp string.
  5. Translate the lemma using the provider.
  6. Undo replacement.
  7. Assembly all lemmas in new files at /lang/{to}/ directory.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-translation-service)
  3. Commit your changes (git commit -am 'Added translation service')
  4. Push to the branch (git push origin my-new-translation-service)
  5. Create new Pull Request

Add a new translation service

  1. Create a new class inside /src/TranslationServices. Implements TranslationServiceStrategy.
  2. Add this class to TranslationServiceStrategyFactory.
  3. Update this `README.md file.

Credits

  • DeepL GmbH: https://www.deepl.com/
  • Chris Konnertz: https://github.com/chriskonnertz/DeepLy

License

The MIT License (MIT). Please see License File for more information.

Star History Chart