Advanced

Локализация

Основы

После установки 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"