<?php namespace App\Filters;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use CodeIgniter\Filters\FilterInterface;
class Locale implements FilterInterface
{
public function before(RequestInterface $request)
{
$supported_locales = config('Config\\App')->supportedLocales;
$uri_locale = $request->uri->getSegment(1);
if (in_array($uri_locale, $supported_locales))
{
// For pages outside of routing (404 and etc)
$request->setLocale($uri_locale);
}
$use_locale = $request->getLocale();
if ($uri_locale !== $use_locale)
{
return redirect()->to("/{$use_locale}/".trim($_SERVER['REQUEST_URI'], '/'));
}
}
//--------------------------------------------------------------------
public function after(RequestInterface $request, ResponseInterface $response)
{
// Do something here
}
}