From 8d5db9edb23385e6b5a1be14426114aea512a1a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pavel=20Dvo=C5=99=C3=A1k?= Date: Sun, 15 May 2016 19:36:44 +0200 Subject: [PATCH] Issue #287 - Added to the default English language - Modified file functions.inc.php - because if you add new language variable so it is necessary to immediately translate all languages or all files added to the English translation of which is very inconvenient and time consuming. - Function psm_load_lang - loading the default language that I chose English and stored in the $ GLOBALS [ 'sm_lang_default'] for further use. - Function psm_get_lang - edited selection of translation. If there is no translation in the language you chose the user returns to the default language. --- src/includes/functions.inc.php | 58 +++++++++++++++++++++++----------- 1 file changed, 40 insertions(+), 18 deletions(-) diff --git a/src/includes/functions.inc.php b/src/includes/functions.inc.php index f4bbf3d3..c9ff594b 100644 --- a/src/includes/functions.inc.php +++ b/src/includes/functions.inc.php @@ -40,17 +40,26 @@ function psm_get_lang() { $args = func_get_args(); - if(empty($args)) return $GLOBALS['sm_lang']; + if (empty($args)) return $GLOBALS['sm_lang']; $result = null; + $resultDefault = null; $node = null; + $nodeDefault = null; - if($args) { + if ($args) { $node = '$GLOBALS[\'sm_lang\'][\'' . implode('\'][\'', $args) . '\']'; + $nodeDefault = '$GLOBALS[\'sm_lang_default\'][\'' . implode('\'][\'', $args) . '\']'; } - eval('if (isset('.$node.')) $result = '.$node.';'); - return $result; + eval('if (isset(' . $node . ')) $result = ' . $node . ';'); + eval('if (isset(' . $nodeDefault . ')) $resultDefault = ' . $nodeDefault . ';'); + + if (empty($result)) { + return $resultDefault; + } else { + return $result; + } } /** @@ -60,12 +69,25 @@ function psm_get_lang() { * @see psm_get_lang() */ function psm_load_lang($lang) { + // if not in the language translation must always be available starting translation - English + $default_lang_file = PSM_PATH_LANG . 'en_US.lang.php'; + + if (file_exists($default_lang_file)) { + require $default_lang_file; + + if (isset($sm_lang)) { + $GLOBALS['sm_lang_default'] = $sm_lang; + unset($sm_lang); + } + } + + // translated language $lang_file = PSM_PATH_LANG . $lang . '.lang.php'; - if(!file_exists($lang_file)) { + if (!file_exists($lang_file)) { // If the file has been removed, we use the english one $en_file = PSM_PATH_LANG . 'en_US.lang.php'; - if(!file_exists($en_file)) { + if (!file_exists($en_file)) { // OK, nothing we can do die('unable to load language file: ' . $lang_file); } @@ -73,7 +95,7 @@ function psm_load_lang($lang) { } require $lang_file; - if(isset($sm_lang['locale'])) { + if (isset($sm_lang['locale'])) { setlocale(LC_TIME, $sm_lang['locale']); } @@ -223,17 +245,17 @@ function psm_add_log($server_id, $type, $message, $user_id = null) { * @param string $latency */ function psm_log_uptime($server_id, $status, $latency) { - global $db; + global $db; - $db->save( - PSM_DB_PREFIX.'servers_uptime', - array( - 'server_id' => $server_id, - 'date' => date('Y-m-d H:i:s'), - 'status' => $status, - 'latency' => $latency, - ) - ); + $db->save( + PSM_DB_PREFIX.'servers_uptime', + array( + 'server_id' => $server_id, + 'date' => date('Y-m-d H:i:s'), + 'status' => $status, + 'latency' => $latency, + ) + ); } /** @@ -584,4 +606,4 @@ function psm_no_cache() { header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); -} +} \ No newline at end of file