Create a beautiful key-value field to allow users to enter all possible language values for a field on the same page
- You can install the package via composer:
composer require lucasgiovanny/filament-inline-translate-field
- Configure you model, as defined on spatie/laravel-translatable documentation:
- Add the
Spatie\Translatable\HasTranslations
trait to the model that is going to use this field. - Next, you should create a public property
$translatable
which holds an array with all the names of attributes you wish to make translatable. - Finally, you should make sure that all translatable attributes are set to the json-datatype in your database. If your database doesn't support json-columns, use text.
use Illuminate\Database\Eloquent\Model;
use Spatie\Translatable\HasTranslations;
class Activity extends Model
{
use HasTranslations;
public $translatable = ['name'];
}
- Publish the configuration file to set the available languages:
php artisan vendor:publish --tag="filament-inline-translate-field-config"
return [
'available_locales' => [
'en' => 'English',
'fr' => 'French',
'es' => 'Spanish',
],
];
Optionally, you can publish the translation files:
php artisan vendor:publish --tag="filament-inline-translate-field-translations
use LucasGiovanny\FilamentInlineTranslateField\Forms\Components\Fields\InlineTranslateField;
return $form
->schema([
InlineTranslateField::make('name'),
]);
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.