Основы
После установки MoonShine в директории с переводами также появится директория lang/vendor/moonshine
,
где вы можете добавить поддержку нового языка или изменить текущие переводы.
По умолчанию в MoonShine присутствует только английский язык. Дополнительные языки ищите в разделе Plugins.
Так же вы можете воспользоваться сторонним пакетом laravel-lang/moonshine. Он предоставляет большое количество локализаций в одном пакете.
Конфигурация
Прежде чем начать, обязательно ознакомьтесь с разделом Конфигурация.
Язык по умолчанию
'locale' => 'ru',
$config->locale('ru');
Доступные языки
'locales' => ['en', 'ru'],
Также можно использовать ключ-значение:
'locales' => [ 'en' => 'Английский', 'ru' => 'Русский',],
$config->locales(['en', 'ru']);
Также можно использовать ключ-значение:
$config->locales([ 'en' => 'Английский', 'ru' => 'Русский',]);
Если вы изменили язык в интерфейсе панели, то выбор сохранился в сессиях и будет в приоритете над конфигурацией.
Смена языка
За логику смены языка в интерфейсе панели отвечает middleware MoonShine\Laravel\Http\Middleware\ChangeLocale
.
ChangeLocale
в свою очередь при наличии запроса на смену языка сохраняет выбор в сессии и берет значение из сессии, чтобы установить язык, либо использует данные из конфига.
Если вы хотите изменить логику смены языка на собственную, просто замените middleware
на свой.
'middleware' => [ // ... ChangeLocale::class,],
$config ->exceptMiddleware(ChangeLocale::class) ->addMiddleware(MyChangeLocale::class);
Русский язык
Команда MoonShine также реализовала пакет с поддержкой русского языка.
Установка
composer require moonshine/ru
php artisan vendor:publish --provider="MoonShine\Ru\Providers\RuServiceProvider"