CodeIgniter Forums
CodeModules Language Proplem - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: CodeIgniter 4 (https://forum.codeigniter.com/forumdisplay.php?fid=28)
+--- Forum: CodeIgniter 4 Discussion (https://forum.codeigniter.com/forumdisplay.php?fid=31)
+--- Thread: CodeModules Language Proplem (/showthread.php?tid=74202)



CodeModules Language Proplem - vebo - 08-25-2019

On multiple codemodules, I have same named language files like "Language/en/home.php" for all code modules.


Code:
lang('home.name') 


returns last module language, according to psr4

but I need to current namespace language

I have a solution

in system/language/language, I changed function like that.

Code:
        
    
    protected function requireFile(string $path): array
    {
               //------------------------------------------------------------//
               //load current namespace language file.
               //------------------------------------------------------------//
               $defaultNamespace = service('routes')->getDefaultNamespace();
               $namespacePath    = config('Autoload')->psr4[trim($defaultNamespace, '\\')] ?? NULL;
               $filePath = $namespacePath . DIRECTORY_SEPARATOR . $path;

               if (file_exists($filePath))
               {
                   return require $filePath;
               }
               //------------------------------------------------------------//
               ....


and I added inside adminpanel\Config\Routes.php 


Code:
$request  = \Config\Services::request();
$segments = $request->uri->getSegments();

if (($segments[0] ?? '') === 'adminpanel')
{
  $routes->setDefaultNamespace('Adminpanel');
}


So, is there any other solution. I don't want to change system core file...


RE: CodeModules Language Proplem - InsiteFX - 08-26-2019

You should never ever change a CodeIgniter system file!

If it's a problem submit a bug report on GitHub.