CodeIgniter Forums
setLocale() doesn't change the language set by browser - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forumdisplay.php?fid=28)
+--- Forum: CodeIgniter 4 Support (https://forum.codeigniter.com/forumdisplay.php?fid=30)
+--- Thread: setLocale() doesn't change the language set by browser (/showthread.php?tid=76017)

Pages: 1 2


RE: setLocale() doesn't change the language set by browser - jcarvalho - 07-29-2024

in the BaseController I did this:
PHP Code:
    public function initController(RequestInterface $requestResponseInterface $responseLoggerInterface $logger)
    {
        // Do Not Edit This Line
        parent::initController($request$response$logger);

        // Preload any models, libraries, etc, here.
        $session = \Config\Services::session();
        $language = \Config\Services::language(); <--------- Added This
        $language
->setLocale($session->site_lang)  <--------- Added This;  
        
// E.g.: $this->session = \Config\Services::session();
    

in app/config/Lang.pgp
PHP Code:
<?php
namespace App\Controllers;
use 
CodeIgniter\Controller;

class 
Lang extends BaseController 
{
    function __construct() 
    {
        //parent::__construct();
    }

    public function index()
    {
        session()->set('site_lang',  "pt");
        //$this->load->view('welcome_message');
    }

    public function switchLang$language 'pt' 
    {
        session()->set('site_lang'$language);
        //header('Location: http://localhost/ci_multilingual_app/');
    }