codewithdennis/filament-translate-field

This package allows you to quickly translate filamentphp form field values, like converting a description from Dutch to English, with just one click. It's an efficient solution for instantly translating content in your forms.

v0.0.3 2024-10-10 09:41 UTC

This package is auto-updated.

Last update: 2024-12-10 09:57:47 UTC


README

Latest Version on Packagist GitHub Code Style Action Status Total Downloads

thumbnail

This package allows you to quickly translate form field values, like converting a description from German to English, with just one click. It's an efficient solution for instantly translating content in your forms.

Installation

This package uses the Google Translate PHP library, make sure you have it installed before using this package.

composer require stichoza/google-translate-php

You can install the package via composer:

composer require codewithdennis/filament-translate-field

You can publish the config file with:

php artisan vendor:publish --tag="filament-translate-field-config"

This is the contents of the published config file:

<?php

return [

    /*
     * Automatically detect the language of the text to translate.
     *
     * Whether to automatically detect the language of the text to translate.
     */

    'auto_detect' => true,

    /*
     * The default language to translate to.
     *
     * This should be the key of the language in the languages array.
     */

    'default_language' => 'en',

    /*
     * The languages that the user can translate to.
     *
     * The key should be the language code and the value should be the language name.
     */

    'languages' => [
        'en' => 'English',
    ],
];

Languages

You can add more languages to the "languages" array in the config file. The key should be the language code, and the value is the language name.

return [
    'languages' => [
        'en' => 'English',
        'es' => 'Spanish',
    ],
];

You can also replace the array with an enum. For more details, visit this FilamentPHP documentation on enums.

return [
    'languages' => App\Enums\Languages::class,
];

Auto Detect

By default, the auto-detect feature is enabled. This means that the package will automatically detect the language of the text you want to translate. If you want to disable this feature, you can set the "auto_detect" key to false in the config file. When this feature is disabled a new dropdown will show with the allowed languages.

Read Only

If you would like the user not to be able to submit the translation, you can disable the buttons by setting the modalSubmitAction and modalCancelAction to false just like any other action in Filament.

TranslateAction::make()
    ->modalSubmitAction(false)
    ->modalCancelAction(false),

Usage

use CodeWithDennis\FilamentTranslateField\Filament\Forms\Actions\TranslateAction;

Forms\Components\Textarea::make('description')
    ->hintAction(TranslateAction::make())
    ->columnSpanFull()
    ->rows(3),

Changelog

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

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

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