From bb145fd3deed22c0312bcc389396cedb22951f56 Mon Sep 17 00:00:00 2001 From: Yannick Warnier Date: Tue, 16 Mar 2010 11:13:05 -0500 Subject: [PATCH] Minor typo --- main/admin/sub_language.class.php | 38 ++++++++++++++++++++-------- main/inc/global.inc.php | 42 +++++++++++++++---------------- 2 files changed, 48 insertions(+), 32 deletions(-) diff --git a/main/admin/sub_language.class.php b/main/admin/sub_language.class.php index 7a03d1e64a..d8ad124e5a 100755 --- a/main/admin/sub_language.class.php +++ b/main/admin/sub_language.class.php @@ -213,26 +213,42 @@ class SubLanguageManager { /** * Make available the language * @param Integer The language id - * @return void() + * @return void */ - public static function make_available_language ($language_id) { + public static function make_available_language ($language_id) { $tbl_admin_languages= Database :: get_main_table(TABLE_MAIN_LANGUAGE); $sql_make_available = "UPDATE $tbl_admin_languages SET available='1' WHERE id='".Database::escape_string($language_id)."'"; $result = Database::query($sql_make_available); - } - /** - * Set platform language - * @param Integer The language id - * @return void() - */ - public static function set_platform_language ($language_id) { - $tbl_admin_languages= Database :: get_main_table(TABLE_MAIN_LANGUAGE); + } + /** + * Set platform language + * @param Integer The language id + * @return void() + */ + public static function set_platform_language ($language_id) { + $tbl_admin_languages = Database :: get_main_table(TABLE_MAIN_LANGUAGE); $tbl_settings_current = Database :: get_main_table(TABLE_MAIN_SETTINGS_CURRENT); $sql_update = "SELECT english_name FROM ". $tbl_admin_languages." WHERE id='".Database::escape_string($language_id)."'"; $result = Database::query($sql_update); $lang=Database::fetch_array($result); $sql_update_2 = "UPDATE ".$tbl_settings_current." SET selected_value='".$lang['english_name']."' WHERE variable='platformLanguage'"; $result_2 = Database::query($sql_update_2); - } + } + /** + * Get parent language path (or null if no parent) + * @param string Children language path + * @return string Parent language path or null + */ + public static function get_parent_language_path ($language_path) { + $tbl_admin_languages = Database :: get_main_table(TABLE_MAIN_LANGUAGE); + $tbl_settings_current = Database :: get_main_table(TABLE_MAIN_SETTINGS_CURRENT); + $sql_update = "SELECT dokeos_folder FROM ". $tbl_admin_languages." WHERE id=(SELECT parent_id FROM ". $tbl_admin_languages." WHERE dokeos_folder = '".Database::escape_string($language_path)."')"; + $result = Database::query($sql_update); + if (Database::num_rows($result) == 0) { + return null; + } + $row = Database::fetch_array($result); + return $row['dokeos_folder']; + } } ?> \ No newline at end of file diff --git a/main/inc/global.inc.php b/main/inc/global.inc.php index 27e25e7aec..e1c91c25a7 100755 --- a/main/inc/global.inc.php +++ b/main/inc/global.inc.php @@ -446,7 +446,7 @@ if (!empty($valid_languages)) { // to use it within the function get_lang(...). $language_interface_initial_value = $language_interface; -/* +/** * Include all necessary language files * - trad4all * - notification @@ -463,34 +463,34 @@ if (isset($language_file)) { $language_files = array_merge($language_files, $language_file); } } - +// if a set of language files has been properly defined if (is_array($language_files)) { + // if the sub-language feature is on if (api_get_setting('allow_use_sub_language') == 'true') { - foreach ($language_files as $index => $language_file) { + require_once api_get_path(SYS_CODE_PATH).'admin/sub_language.class.php'; + $parent_path = SubLanguageManager::get_parent_language_path($language_interface); + foreach ($language_files as $index => $language_file) { + // include English include $langpath.'english/'.$language_file.'.inc.php'; - $langfile = $langpath.$language_interface.'/'.$language_file.'.inc.php'; - - $tbl_admin_languages = Database :: get_main_table(TABLE_MAIN_LANGUAGE); - $sql_sub_language = 'SELECT dokeos_folder FROM '.$tbl_admin_languages.' WHERE parent_id=(SELECT id FROM '.$tbl_admin_languages.' WHERE dokeos_folder="'.Database::escape_string($language_interface).'" AND ISNULL(parent_id))'; - - $rs_sub_language = Database::query($sql_sub_language); - $num_row_sub_language = Database::num_rows($rs_sub_language); - - if (file_exists($langfile)) { - include $langfile; - for ($i = 0; $i < $num_row_sub_language; $i++) { - $row_sub_language = Database::result($rs_sub_language, $i, 'dokeos_folder'); - $sub_langfile = $langpath.$row_sub_language.'/'.$language_file.'.inc.php'; - if (file_exists($sub_langfile)) { - include $sub_langfile; - } - } - + // prepare string for current language and its parent + $lang_file = $langpath.$language_interface.'/'.$language_file.'.inc.php'; + $parent_lang_file = $langpath.$parent_path.'/'.$language_file.'.inc.php'; + // load the parent language file first + if (file_exists($parent_lang_file)) { + include $parent_lang_file; + } + // overwrite the parent language translations if there is a child + if (file_exists($lang_file)) { + include $lang_file; } } } else { + // if the sub-languages feature is not on, then just load the + // set language interface foreach ($language_files as $index => $language_file) { + // include English include $langpath.'english/'.$language_file.'.inc.php'; + // prepare string for current language $langfile = $langpath.$language_interface.'/'.$language_file.'.inc.php'; if (file_exists($langfile)) { include $langfile;