FahriMeral config/app.php içerisinde, locale anahtarının altına locales şeklinde bir anahtar daha ekleyin:
'locales' => ['tr', 'en', 'nl'],
if ($lang == 'en' or $lang=='tr' or $lang=='nl')
yapmak yerine if(in_array($locale, config('app.locales')))
yapın.
Hatta app/Services/LocaleManager.php dosyası oluşturun:
<?php
namespace App\Services;
class LocaleManager
{
public function resolve($locale): string
{
if(in_array($locale, config('app.locales'))) {
return $locale;
}
return app()->getLocale();
}
public function set($locale): void
{
$locale = $this->resolve($locale);
app()->setLocale($locale);
}
public function keep($locale): void
{
session([
'locale' => $this->resolve($locale)
]);
}
}
Şöyle kullanın:
public $localeManager;
public function __construct(LocaleManager $localeManager)
{
$this->localeManager = $localeManager;
}
public function index($locale)
{
$this->localeManager->keep($locale);
return redirect()->back();
}
Artık yavaş yavaş vanilla PHP yazmayı bırakmanız lazım.