Welcome Guest, Not a member yet? Register   Sign In
system/core/Lang.php bug
#1

[eluser]ksorbo[/eluser]
I think this may be a bug or at least un-intended consequences.

language defaults to English from the config.php file.

My folder structure is:
application
__/english
____strings_lang.php
__/spanish
____strings_lang.php

My command to load spanish is
Code:
$this->lang->load('strings','spanish');

Using the existing Lang.php file, the idiom does not change. Am I missing something or is this a bug?

My app is designed to allow the user to change languages while logged in. To do so, the user changes the language and the app loads the strings_lang.php file for the new language.

However, it seems that the system is only designed for one idiom to load. In particular the code from the load function in system/core/Lang.php around lines 76-79

Code:
if (in_array($langfile, $this->is_loaded, TRUE))
  {
   return;
  }

This code returns if the particular language file has been loaded but does not seem to pay any attention to whether this is a new idiom. My app loads English as default automatically. When my controller commands to load a new language, the Lang::loader says, this file has been loaded (albeit the English version) and returns without loading the new idiom.

What I did was to comment out the above lines. Everything works as intended.



(CI version 2.1)
#2

[eluser]Narf[/eluser]
Indeed, it's a bug - a fix is on the way. Smile
#3

[eluser]Narf[/eluser]
Can you confirm if this solves the problem: https://github.com/EllisLab/CodeIgniter/pull/993




Theme © iAndrew 2016 - Forum software by © MyBB