visual-ideas / moonshine-spatie-translatable
Spatie\Translatable field for MoonShine Laravel admin panel
Installs: 2 449
Dependents: 1
Suggesters: 0
Security: 0
Stars: 5
Watchers: 1
Forks: 3
Open Issues: 3
Requires
- php: ^8.0|^8.1|^8.2|^8.3|^8.4
Conflicts
- moonshine/moonshine: <3.0
README
Extend JSON field.
Compatibility
Installation
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') //...
Mandatory translations
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']) //...
Recommended translations
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']) //...
Deleting
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)!