Browse Source

Fixed the sub-language feature (which apparently never worked)

Yannick Warnier 15 years ago
parent
commit
d8000d79d2
1 changed files with 20 additions and 20 deletions
  1. 20 20
      main/inc/global.inc.php

+ 20 - 20
main/inc/global.inc.php

@@ -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;