Browse Source

Feature #306 - Fixing the function api_get_language_isocode() so it could return correct results using "dirty" language identifiers. The languages occitan, trad_chinese, trad_chinese_unicode have no corresponding records in the database. I have to open them.

Ivan Tcholakov 15 years ago
parent
commit
2041d470ae

+ 2 - 1
main/inc/lib/internationalization.lib.php

@@ -291,7 +291,8 @@ function api_get_language_isocode($language = null) {
 			$result = Database::fetch_array($sql_result);
 			$iso_code[$language] = $result['isocode'];
 		} else {
-			$iso_code[$language] = null;
+			$language_purified_id = api_refine_language_id($language);
+			$iso_code[$language] = isset($iso_code[$language_purified_id]) ? $iso_code[$language_purified_id] : null;
 		}
 	}
 	return $iso_code[$language];

+ 2 - 2
tests/main/inc/lib/internationalization.lib.test.php

@@ -1078,7 +1078,7 @@ class TestInternationalization extends UnitTestCase {
 			'italian' => 'it',
 			'japanese' => 'ja',
 			'japanese_unicode' => 'ja',
-			'korean' => 'kr',
+			'korean' => 'ko',
 			'latvian' => 'lv',
 			'lithuanian' => 'lt',
 			'macedonian' => 'mk',
@@ -1100,7 +1100,7 @@ class TestInternationalization extends UnitTestCase {
 			'slovenian' => 'sl',
 			'slovenian_unicode' => 'sl',
 			'spanish' => 'es',
-			'spanish_latin' => '',
+			'spanish_latin' => 'es',
 			'swahili' => 'sw',
 			'swedish' => 'sv',
 			'thai' => 'th',