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.
Fund package maintenance!
CodeWithDennis
Requires
- php: ^8.1
- filament/forms: ^3.0
- spatie/laravel-package-tools: ^1.15.0
- stichoza/google-translate-php: ^5.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
README
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.