2026-08-06 12:06:55 +03:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
namespace Modules\Core\Providers;
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\Event;
|
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
|
use Lunar\Models\Language;
|
|
|
|
|
use Modules\Core\Localization\Events\LanguageCreated;
|
|
|
|
|
use Modules\Core\Localization\Events\LanguageDeleted;
|
|
|
|
|
use Modules\Core\Localization\Events\LanguageUpdated;
|
|
|
|
|
use Modules\Core\Localization\Events\TranslationCreated;
|
|
|
|
|
use Modules\Core\Localization\Events\TranslationDeleted;
|
|
|
|
|
use Modules\Core\Localization\Events\TranslationUpdated;
|
|
|
|
|
use Modules\Core\Localization\Listeners\FlushLanguageCache;
|
|
|
|
|
use Modules\Core\Localization\Listeners\FlushTranslationCache;
|
|
|
|
|
use Modules\Core\Localization\Listeners\LogTranslationActivity;
|
|
|
|
|
use Modules\Core\Localization\Listeners\MigrateTranslationsForRenamedLanguage;
|
2026-08-27 01:08:34 +03:00
|
|
|
use Modules\Core\Localization\Middleware\LocaleMiddleware;
|
2026-08-27 01:28:37 +03:00
|
|
|
use Modules\Core\Localization\Models\LanguageLine;
|
2026-08-27 01:08:34 +03:00
|
|
|
use Modules\Core\Localization\Observers\LanguageCacheObserver;
|
2026-08-06 12:06:55 +03:00
|
|
|
|
|
|
|
|
class LocalizationServiceProvider extends ServiceProvider
|
|
|
|
|
{
|
2026-08-27 01:28:37 +03:00
|
|
|
public function register(): void
|
|
|
|
|
{
|
|
|
|
|
// Must run before Spatie\TranslationLoader\TranslationServiceProvider's
|
|
|
|
|
// register() merges its own config defaults - mergeConfigFrom() only fills
|
|
|
|
|
// in keys not already set, so setting this here (regardless of provider
|
|
|
|
|
// boot order) makes it win over the package's default
|
|
|
|
|
// Spatie\TranslationLoader\LanguageLine::class.
|
|
|
|
|
config(['translation-loader.model' => LanguageLine::class]);
|
|
|
|
|
}
|
|
|
|
|
|
2026-08-06 12:06:55 +03:00
|
|
|
public function boot(): void
|
|
|
|
|
{
|
|
|
|
|
$this->app['router']->aliasMiddleware('locale', LocaleMiddleware::class);
|
|
|
|
|
Language::observe(LanguageCacheObserver::class);
|
|
|
|
|
|
|
|
|
|
foreach ([TranslationCreated::class, TranslationUpdated::class, TranslationDeleted::class] as $event) {
|
|
|
|
|
Event::listen($event, FlushTranslationCache::class);
|
|
|
|
|
Event::listen($event, LogTranslationActivity::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
foreach ([LanguageCreated::class, LanguageUpdated::class, LanguageDeleted::class] as $event) {
|
|
|
|
|
Event::listen($event, FlushLanguageCache::class);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Event::listen(LanguageUpdated::class, MigrateTranslationsForRenamedLanguage::class);
|
|
|
|
|
}
|
|
|
|
|
}
|