CodeIgniter Forums
Issue for loading language in controller - 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: Issue for loading language in controller (/showthread.php?tid=78397)



Issue for loading language in controller - eleumas - 01-13-2021

Hi, i would like compile the meta hreflang tag dynamically and navigate the pages like in Joomla.
My site is in italian and english. Default language should be italian. My code:

Config/App.php
PHP Code:
public $defaultLocale 'it';
public 
$negotiateLocale true;
public 
$supportedLocales = ['it''en']; 

Controller Main.php
PHP Code:
<?php namespace App\Controllers\It;
use 
App\Controllers\BaseController;

class 
Main extends BaseController
{
public function 
index()
  {
    $data['title'] = 'My Site';

    $data['ita'] = lang('App.linkNav01', [], 'it'); // FIRST ITALIAN
    $data['eng'] = lang('App.linkNav01', [], 'en'); // AFTER ENGLISH

    echo view('home'$data);
  }


View main.php
PHP Code:
<link rel="alternate" hreflang="it" href="<?php echo base_url($ita);?>" />
<
link rel="alternate" hreflang="en" href="<?php echo base_url($eng);?>" /> 

The meta tag are ok but the site (in italian too) is always translate in english. If i change the order in controller like this:
PHP Code:
<?php namespace App\Controllers\It;
use 
App\Controllers\BaseController;

class 
Main extends BaseController
{
public function 
index()
  {
    $data['title'] = 'My Site';

    $data['eng'] = lang('App.linkNav01', [], 'en'); // FIRTS ENGLISH
    $data['ita'] = lang('App.linkNav01', [], 'it'); // AFTER ITALIAN

    echo view('home'$data);
  }


the site is always translate in italian. What happens? Why i have this behavior?

Thanks for help me!  Smile


RE: Issue for loading language in controller - InsiteFX - 01-13-2021

Because you need to check to see which language should be displayed first
then add it to the data.


RE: Issue for loading language in controller - eleumas - 01-14-2021

Thanks for reply. Can you explain better please?


RE: Issue for loading language in controller - InsiteFX - 01-14-2021

You should have a dropdown and allow the user to select the language or get the local setting.

Read this:

CodeIgniter 4 Language Localization