bernskioldmedia/laravel-autotranslate

A Laravel package to automatically translate the application's language files into a chosen language using DeepL.

1.1.0 2023-07-04 13:51 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A Laravel package to automatically translate the application's JSON language files into a chosen language using DeepL.

Installation

You can install the package via composer:

composer require bernskioldmedia/laravel-autotranslate

You can install the package using the installation command:

php artisan autotranslate:install

You can publish the config file with:

php artisan vendor:publish --tag="laravel-autotranslate-config"

This is the contents of the published config file:

return [

    /**
     * The source language that your application language is in before translation.
     */
    'source_language' => 'en',

    /**
     * This is your DeepL API key.
     */
    'api_key' => env('AUTOTRANSLATE_DEEPL_KEY'),

    /**
     * DeepL supports settings for each language to translate to.
     * These are the default settings that will be applied
     * unless you override it for a specific language below.
     *
     * See the DeepL PHP SDK for more information: https://github.com/DeepLcom/deepl-php
     */
    'options' => [

        // Choose the formality of the text.
        // This setting is only available for certain languages: https://github.com/DeepLcom/deepl-php#listing-available-languages
        // Available options: 'less', 'more', 'default', 'prefer_less', 'prefer_more'
        'formality' => 'default',

        // Specify how input text should be split into sentences.
        // Available options: 'on', (default) 'off', 'nonewlines'
        'split_sentences' => 'on',

        // Controls automatic-formatting-correction.
        // Set to true to prevent automatic-correction of formatting.
        'preserve_formatting' => false,

        // Type of tags to parse before translation.
        // Available options: 'html', 'xml'
        'tag_handling' => 'html',

        // The ID of the DeepL glossary to use.
        'glossary' => null,
    ],

    'language_options' => [

//      'de' => [
//          'formality' => 'less',
//      ],

    ],

];

Usage

To translate your application's language files, you can use the autotranslate:translate command:

php artisan autotranslate:translate sv

The language parameter is required, and should correspond to the language path within your application's languages folder.

Automatically exporting strings

If you want to automatically export strings from your application to the language files, you can use the Translatable String Exporter for Laravel package.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Credits

License

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