aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/phpbb/language/language.php
diff options
context:
space:
mode:
authorTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
committerTristan Darricau <tristan.darricau@sensiolabs.com>2015-07-27 11:24:43 +0200
commita0258ae25ce31101241f0873b21e4582cd47a368 (patch)
treea828a84d8d57cf1b817e0f5adee83ea6cc288b5d /phpBB/phpbb/language/language.php
parent0e3b7e2de6e152960026a6533a1150e5fb1135aa (diff)
parent11dfe503aac699b88a333967a1d0e594998414ae (diff)
downloadforums-a0258ae25ce31101241f0873b21e4582cd47a368.tar
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.gz
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.bz2
forums-a0258ae25ce31101241f0873b21e4582cd47a368.tar.xz
forums-a0258ae25ce31101241f0873b21e4582cd47a368.zip
Merge pull request #3514 from CHItA/ticket/13740
[ticket/13740] Refactoring installer * CHItA/ticket/13740: (75 commits) [ticket/13740] Reduce number of references in nav provider [ticket/13740] Move handle_language_select calls to the controllers [ticket/13740] Fix infinite config.php check loop [ticket/13740] Move default data settings out of constructors [ticket/13740] Deduplicate container builder's checks [ticket/13740] Use JSON for installer config [ticket/13740] Fix comment [ticket/13740] Use language service in console application [ticket/13740] Fix CS in compatibilty_globals.php [ticket/13740] Fix message element creation in JS [ticket/13740] Replace more spaces with tabs [ticket/13740] Fix CS [ticket/13740] Filter basic directory change attempts in lang change [ticket/13740] Use tabs instead of spaces in JS file [ticket/13740] Add success message when install finished [ticket/13740] Fix $script_path in obtain_data [ticket/13740] Fix is_phpbb_installed() method [ticket/13740] Login admin when install finished [ticket/13740] Enhance server output buffer bypass [ticket/13740] Secure installer config against corrupted config data ...
Diffstat (limited to 'phpBB/phpbb/language/language.php')
-rw-r--r--phpBB/phpbb/language/language.php48
1 files changed, 42 insertions, 6 deletions
diff --git a/phpBB/phpbb/language/language.php b/phpBB/phpbb/language/language.php
index b2b9f5ce12..44131e3da3 100644
--- a/phpBB/phpbb/language/language.php
+++ b/phpBB/phpbb/language/language.php
@@ -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);
+ }
+ }
+ }
}