Spatie\Translatable

Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.

Наследует Json * имеет те же возможности

Поле вынесено в отдельный пакет, перед использованием необходимо выполнить установку

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 перевода на один язык, перевод, идущий первым, будет удален (замещён)!