aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/session.php
diff options
context:
space:
mode:
authorMeik Sievertsen <acydburn@phpbb.com>2009-08-01 11:01:18 +0000
committerMeik Sievertsen <acydburn@phpbb.com>2009-08-01 11:01:18 +0000
commit3461eaf828848bd27d4777cfd796319dd55c53ce (patch)
tree1f279d9f0aee5c0c028fa5f73c09550c7e651b0e /phpBB/includes/session.php
parent17c50b91a5d2c869faf9ea1da557b3c6e38b06f9 (diff)
downloadforums-3461eaf828848bd27d4777cfd796319dd55c53ce.tar
forums-3461eaf828848bd27d4777cfd796319dd55c53ce.tar.gz
forums-3461eaf828848bd27d4777cfd796319dd55c53ce.tar.bz2
forums-3461eaf828848bd27d4777cfd796319dd55c53ce.tar.xz
forums-3461eaf828848bd27d4777cfd796319dd55c53ce.zip
Fallback options for missing language files. (Bug #38575 - Patch by EXreaction)
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@9901 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/includes/session.php')
-rw-r--r--phpBB/includes/session.php32
1 files changed, 30 insertions, 2 deletions
diff --git a/phpBB/includes/session.php b/phpBB/includes/session.php
index c8617057c4..a49716a8db 100644
--- a/phpBB/includes/session.php
+++ b/phpBB/includes/session.php
@@ -2006,6 +2006,34 @@ class user extends session
$language_filename = $this->lang_path . $this->lang_name . '/' . (($use_help) ? 'help_' : '') . $lang_file . '.' . $phpEx;
}
+ if (!file_exists($language_filename))
+ {
+ global $config;
+
+ if ($this->lang_name == 'en')
+ {
+ // The user's selected language is missing the file, the board default's language is missing the file, and the file doesn't exist in /en.
+ $language_filename = str_replace($this->lang_path . 'en', $this->lang_path . $this->data['user_lang'], $language_filename);
+ trigger_error('Language file ' . $language_filename . ' couldn\'t be opened.', E_USER_ERROR);
+ }
+ else if ($this->lang_name == basename($config['default_lang']))
+ {
+ // Fall back to the English Language
+ $this->lang_name = 'en';
+ $this->set_lang($lang, $help, $lang_file, $use_db, $use_help);
+ }
+ else if ($this->lang_name == $this->data['user_lang'])
+ {
+ // Fall back to the board default language
+ $this->lang_name = basename($config['default_lang']);
+ $this->set_lang($lang, $help, $lang_file, $use_db, $use_help);
+ }
+
+ // Reset the lang name
+ $this->lang_name = (file_exists($this->lang_path . $this->data['user_lang'] . "/common.$phpEx")) ? $this->data['user_lang'] : basename($config['default_lang']);
+ return;
+ }
+
// Do not suppress error if in DEBUG_EXTRA mode
$include_result = (defined('DEBUG_EXTRA')) ? (include $language_filename) : (@include $language_filename);
@@ -2262,11 +2290,11 @@ class user extends session
if ($group = remove_newly_registered($this->data['user_id'], $this->data))
{
$this->data['group_id'] = $group;
-
+
}
$this->data['user_permissions'] = '';
$this->data['user_new'] = 0;
-
+
return true;
}
}