29 lines
702 B
PHP
29 lines
702 B
PHP
<?php
|
|
|
|
namespace Modules\Localization\Services;
|
|
|
|
use Illuminate\Support\Collection;
|
|
use Modules\Localization\Models\Locale;
|
|
|
|
final class LocaleManager
|
|
{
|
|
public function active(): Collection
|
|
{
|
|
return Locale::query()->active()->get();
|
|
}
|
|
|
|
public function default(): ?Locale
|
|
{
|
|
return Locale::query()->where('is_default', true)->first() ?? Locale::query()->active()->first();
|
|
}
|
|
|
|
public function activate(string $code): Locale
|
|
{
|
|
$locale = Locale::query()->active()->where('code', $code)->firstOrFail();
|
|
app()->setLocale($locale->code);
|
|
session()->put(config('localization.session_key'), $locale->code);
|
|
|
|
return $locale;
|
|
}
|
|
}
|