Spatie\Translatable
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
Поле вынесено в отдельный пакет, перед использованием необходимо выполнить установку
composer require visual-ideas/moonshine-spatie-translatable
Поле предназначено для работы с пакетом Laravel-translatable от Spatie
Прежде чем использовать поле Spatie\Translatable, необходимо убедиться что:
- Пакет spatie/laravel-translatable установлен и настроен
- Поле, передаваемое в Spatie\Translatable, добавлено в массив $translatable модели
use VI\MoonShineSpatieTranslatable\Fields\Translatable;//...Translatable::make('Название', 'name')//...
# Обязательные переводы
Для указания языков переводов, без которых валидатор не позволит создать/сохранить запись используется метод ->requiredLanguages(array $languages).
Рекомендуется передавать в этот метод значение config('app.fallback_locale')
use VI\MoonShineSpatieTranslatable\Fields\Translatable;//...Translatable::make('Название', 'name') ->requiredLanguages([config('app.fallback_locale'), 'ru'])//...
# Рекомендуемые переводы
При указании данного массива, коды языков в формах добавления/изменения конкретного перевода будут идти в начале списка всех возможных языков.
use VI\MoonShineSpatieTranslatable\Fields\Translatable;//...Translatable::make('Название', 'name') ->priorityLanguages([config('app.fallback_locale'), config('app.locale'), 'de', 'fr', 'uk'])//...
# Удаление
Позволяет удалять конкретные переводы из введенных
Translatable::make('Field', 'field') ->removable()
Если оставить текст перевода пустым - он будет удален!
Если в списке переводов будут 2 перевода на один язык, перевод, идущий первым, будет удален (замещён)!