Spatie\Translatable field for MoonShine Laravel admin panel
Extend JSON field.
MoonShine | Moonshine Spatie Translatable | Currently supported |
---|---|---|
>= v1.0 | ^1.0 | no |
>= v2.0 | ^2.0 | yes |
>= v3.0 | ^3.0 | yes |
This field belongs to a separate package, you have to complete the installation before using it
For MoonShine 2.*:
composer require "visual-ideas/moonshine-spatie-translatable:^2.0"
For MoonShine 3.* (current version):
composer require "visual-ideas/moonshine-spatie-translatable:^3.0"
The field is purposed for work with the Laravel-translatable package made by Spatie. Before using the Spatie\Translatable field, make sure that:
- The spatie/laravel-translatable package is installed and configured.
- The field passed to the Spatie\Translatable is added to the $translatable array of the model.
use VI\MoonShineSpatieTranslatable\Fields\Translatable;
//...
Translatable::make('Title', 'name')
//...
The ->requiredLanguages(array $languages)
method is used to specify the languages required by the validator for creating/saving a record.
It is recommended to pass the config('app.fallback_locale') value to this method
use VI\MoonShineSpatieTranslatable\Fields\Translatable;
//...
Translatable::make('Title', 'name')
->requiredLanguages([config('app.fallback_locale'), 'ru'])
//...
If you specify this array, the language codes in the forms for adding/modifying a specific translation will be placed at the beginning of the list of all possible languages.
use VI\MoonShineSpatieTranslatable\Fields\Translatable;
//...
Translatable::make('Title', 'name')
->priorityLanguages([config('app.fallback_locale'), config('app.locale'), 'de', 'fr', 'uk'])
//...
You can delete specific translations from out of the entered ones
Translatable::make('Field', 'field')
->removable()
If you leave the translation text blank, it will be deleted! If there are two translations into the same language, the translation that comes first will be deleted (replaced)!