Index: trunk/CHANGELOG
===================================================================
--- trunk/CHANGELOG	(revision 717)
+++ trunk/CHANGELOG	(revision 718)
@@ -10,7 +10,9 @@
 # = Bugfix
 ! = Update/Change
 
-------------------------------------- 2.7.0 -------------------------------------
+------------------------------------- 2.7.0 -------------------------------------
+20-Feb-2008 Thomas Hornik
+!	added workaround for language sorting-problem
 20-Feb-2008	Christian Sommer
 #	added the FCKEditor module PHP connector fix found by the forum member Luisehahne (thanks man)
 !	Updated upgrade script (added WB2.7 basic styles, pre-checks and disclaimer)
Index: trunk/wb/admin/settings/index.php
===================================================================
--- trunk/wb/admin/settings/index.php	(revision 717)
+++ trunk/wb/admin/settings/index.php	(revision 718)
@@ -33,6 +33,7 @@
 
 // Include the WB functions file
 require_once(WB_PATH.'/framework/functions.php');
+require_once(WB_PATH.'/framework/functions-utf8.php');
 
 // Create new template object
 $template = new Template(ADMIN_PATH.'/settings');
@@ -135,14 +136,19 @@
 $template->set_block('main_block', 'language_list_block', 'language_list');
 $result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
 if($result->numRows() > 0) {
-	while ($addon = $result->fetchRow()) {
+	while($addon = $result->fetchRow()) {
+		$l_codes[$addon['name']] = $addon['directory'];
+		$l_names[$addon['name']] = entities_to_7bit($addon['name']); // sorting-problem workaround
+	}
+	asort($l_names);
+	foreach($l_names as $l_name=>$v) {
 		// Insert code and name
 		$template->set_var(array(
-								'CODE' => $addon['directory'],
-								'NAME' => $addon['name']
+								'CODE' => $l_codes[$l_name],
+								'NAME' => $l_name
 								));
 		// Check if it is selected
-		if(DEFAULT_LANGUAGE == $addon['directory']) {
+		if(DEFAULT_LANGUAGE == $l_codes[$l_name]) {
 			$template->set_var('SELECTED', ' selected');
 		} else {
 			$template->set_var('SELECTED', '');
Index: trunk/wb/admin/preferences/index.php
===================================================================
--- trunk/wb/admin/preferences/index.php	(revision 717)
+++ trunk/wb/admin/preferences/index.php	(revision 718)
@@ -27,6 +27,8 @@
 require_once(WB_PATH.'/framework/class.admin.php');
 $admin = new admin('Preferences');
 
+require_once(WB_PATH.'/framework/functions-utf8.php');
+
 // Create new template object for the preferences form
 $template = new Template(ADMIN_PATH.'/preferences');
 $template->set_file('page', 'template.html');
@@ -50,13 +52,18 @@
 $result = $database->query("SELECT * FROM ".TABLE_PREFIX."addons WHERE type = 'language' order by name");
 if($result->numRows() > 0) {
 	while($addon = $result->fetchRow()) {
+		$l_codes[$addon['name']] = $addon['directory'];
+		$l_names[$addon['name']] = entities_to_7bit($addon['name']); // sorting-problem workaround
+	}
+	asort($l_names);
+	foreach($l_names as $l_name=>$v) {
 		// Insert code and name
 		$template->set_var(array(
-								'CODE' => $addon['directory'],
-								'NAME' => $addon['name']
+								'CODE' => $l_codes[$l_name],
+								'NAME' => $l_name
 								));
 		// Check if it is selected
-		if(LANGUAGE == $addon['directory']) {
+		if(LANGUAGE == $l_codes[$l_name]) {
 			$template->set_var('SELECTED', ' selected');
 		} else {
 			$template->set_var('SELECTED', '');
