1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-31 05:50:42 +02:00

[ticket/13740] Allow language change in the installer

PHPBB3-13740
This commit is contained in:
Mate Bartus
2015-07-22 03:16:16 +02:00
parent 11642a5f94
commit 97d08d6f56
7 changed files with 212 additions and 95 deletions

View File

@@ -109,25 +109,27 @@ class language
/**
* Function to set user's language to display.
*
* @param string $user_lang_iso ISO code of the User's language
* @param string $user_lang_iso ISO code of the User's language
* @param bool $reload Whether or not to reload language files
*/
public function set_user_language($user_lang_iso)
public function set_user_language($user_lang_iso, $reload = false)
{
$this->user_language = $user_lang_iso;
$this->set_fallback_array();
$this->set_fallback_array($reload);
}
/**
* Function to set the board's default language to display.
*
* @param string $default_lang_iso ISO code of the board's default language
* @param bool $reload Whether or not to reload language files
*/
public function set_default_language($default_lang_iso)
public function set_default_language($default_lang_iso, $reload = false)
{
$this->default_language = $default_lang_iso;
$this->set_fallback_array();
$this->set_fallback_array($reload);
}
/**
@@ -508,9 +510,11 @@ class language
/**
* Returns language fallback data
*
* @param bool $reload Whether or not to reload language files
*
* @return array
*/
protected function set_fallback_array()
protected function set_fallback_array($reload = false)
{
$fallback_array = array();
@@ -527,6 +531,11 @@ class language
$fallback_array[] = self::FALLBACK_LANGUAGE;
$this->language_fallback = $fallback_array;
if ($reload)
{
$this->reload_language_files();
}
}
/**
@@ -563,4 +572,31 @@ class language
$this->loader->load_extension($extension_name, $component, $this->language_fallback, $this->lang);
$this->loaded_language_sets['ext'][$extension_name][$component] = true;
}
/**
* Reload language files
*/
protected function reload_language_files()
{
$loaded_files = $this->loaded_language_sets;
$this->loaded_language_sets = array(
'core' => array(),
'ext' => array(),
);
// Reload core files
foreach ($loaded_files['core'] as $component => $value)
{
$this->load_core_file($component);
}
// Reload extension files
foreach ($loaded_files['ext'] as $ext_name => $ext_info)
{
foreach ($ext_info as $ext_component => $value)
{
$this->load_extension($ext_name, $ext_component);
}
}
}
}