Index: admin/post.php
===================================================================
--- admin/post.php	(revision 1550)
+++ admin/post.php	(revision 1612)
@@ -58,5 +58,5 @@
 			str_repeat('&nbsp;&nbsp;',$categories->level-1).($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
 			$categories->cat_id
-		);
+	);
 	}
 } catch (Exception $e) { }
@@ -631,8 +631,10 @@
 	
 	$has_action = !empty($combo_action) && (!$trackbacks->isEmpty() || !$comments->isEmpty());
+	echo 
+		'<p class="top-add"><a class="button add onblog_link" href="#comment-form">'.__('Add a comment').'</a>';
 	
 	echo
 	'<div id="comments" class="multi-part" title="'.__('Comments').'">';
-	
+		
 	if ($has_action) {
 		echo '<form action="comments_actions.php" id="form-comments" method="post">';
@@ -667,14 +669,8 @@
 		'</form>';
 	}
-	
-	echo '</div>';
-}
-
-/* Add a comment
--------------------------------------------------------- */
-if ($post_id)
-{
-	echo
-	'<div class="multi-part" id="add-comment" title="'.__('Add a comment').'">'.
+	/* Add a comment
+	-------------------------------------------------------- */
+
+		echo
 	'<h3>'.__('Add a comment').'</h3>'.
 	
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 1607)
+++ admin/preferences.php	(revision 1609)
@@ -393,8 +393,7 @@
 
 echo
+'<h3 class="hidden-if-js">'.__('My profile').'</h3>'.
 '<form action="preferences.php" method="post" id="user-form">'.
-'<fieldset><legend>'.__('My profile').'</legend>'.
-'<div class="two-cols">'.
-'<div class="col">'.
+
 '<p><label for="user_name">'.__('Last Name:').'</label>'.
 form::field('user_name',20,255,html::escapeHTML($user_name)).'</p>'.
@@ -410,25 +409,10 @@
 
 '<p><label for="user_url">'.__('URL:').'</label>'.
-form::field('user_url',30,255,html::escapeHTML($user_url)).'</p>'.
-
-'</div>'.
-
-'<div class="col">'.
-
-'<p><label for="user_lang">'.__('Language for my interface:').'</label>'.
-form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</p>'.
-
-'<p><label for="user_tz">'.__('My timezone:').'</label>'.
-form::combo('user_tz',dt::getZones(true,true),$user_tz).'</p>'.
-
-'</div>'.
-'</div>'.
-'</fieldset>';
+form::field('user_url',30,255,html::escapeHTML($user_url)).'</p>';
 
 if ($core->auth->allowPassChange())
 {
 	echo
-	'<fieldset>'.
-	'<legend>'.__('Change my password').'</legend>'.
+	'<h4 class="vertical-separator">'.__('Change my password').'</h4>'.
 	
 	'<div class="pw-table">'.
@@ -443,20 +427,19 @@
 	'<p><label for="new_pwd_c">'.__('Confirm new password:').'</label>'.
 	form::password('new_pwd_c',20,255).'</p>'.
-	'</fieldset>'.
 	
-	'<div class="fieldset">'.
-	'<p class="form-note warn">'.__('If you have changed your email or password you must provide your current password to save these modifications.').'</p>'.
-	'<p><label for="cur_pwd">'.__('Your password:').'</label>'.
+	'<p><label for="cur_pwd">'.__('Your current password:').'</label>'.
 	form::password('cur_pwd',20,255).'</p>'.
-	'</div>';
-}
-
-echo
-'<p class="clear">'.
+	'<p class="form-note warn">'.
+	__('If you have changed your email or password you must provide your current password to save these modifications.').
+	'</p>';
+}
+
+echo
+'<p class="clear vertical-separator">'.
 $core->formNonce().
-'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
-'</form>';
-
-echo '</div>';
+'<input type="submit" accesskey="s" value="'.__('Update my profile').'" /></p>'.
+'</form>'.
+
+'</div>';
 
 # User options : some from actual user profile, dashboard modules, ...
@@ -465,34 +448,21 @@
 echo
 '<form action="preferences.php" method="post" id="opts-forms">'.
-'<fieldset><legend>'.__('My options').'</legend>'.
-
-'<p><label class="ib" for="user_post_format">'.__('Preferred format:').'</label>'.
-form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</p>'.
-
-'<p><label class="ib" for="user_post_status">'.__('Default entry status:').'</label>'.
-form::combo('user_post_status',$status_combo,$user_post_status).'</p>'.
-
-'<p><label class="ib" for="user_edit_size">'.__('Entry edit field height:').'</label>'.
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</p>'.
-
-'<p><label for="user_wysiwyg" class="classic">'.
-form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg']).' '.
-__('Enable WYSIWYG mode').'</label></p>'.
+'<h3 class="hidden-if-js">'.__('My options').'</h3>';
+
+echo
+'<div class="two-cols">'.
+
+'<div class="col">'.
+'<h4>'.__('Interface').'</h4>'.
+
+'<p><label for="user_lang">'.__('Language for my interface:').'</label>'.
+form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</p>'.
+
+'<p><label for="user_tz">'.__('My timezone:').'</label>'.
+form::combo('user_tz',dt::getZones(true,true),$user_tz).'</p>'.
 
 '<p><label for="user_ui_enhanceduploader" class="classic">'.
 form::checkbox('user_ui_enhanceduploader',1,$user_ui_enhanceduploader).' '.
-__('Activate enhanced uploader in media manager').'</label></p>'.
-
-'<p><label for="user_ui_nofavmenu" class="classic">'.
-form::checkbox('user_ui_nofavmenu',1,$user_ui_nofavmenu).' '.
-__('Hide My favorites menu').'</label></p>';
-
-if (count($iconsets_combo) > 1) {
-	echo 
-		'<p><label class="ib" for="user_ui_iconset">'.__('Iconset:').'</label>'.
-		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</p>';
-} else {
-	form::hidden('user_ui_iconset','');
-}
+__('Activate enhanced uploader in media manager').'</label></p>';
 
 if ($core->auth->isSuperAdmin()) {
@@ -502,12 +472,9 @@
 	__('Do not use standard favicon').'</label></p>'.
 	'<p class="clear form-note warn">'.__('This will be applied for all users').'.'.
-	'<br class="clear" /></p>';//Opera sucks;
-}
-
-echo 
-'</fieldset>';
-
-echo
-'<fieldset><legend>'.__('Accessibility options').'</legend>'.
+	'</p>';//Opera sucks;
+}
+
+echo
+'<h5>'.__('Accessibility').'</h5>'.
 
 '<p><label for="user_acc_nodragdrop" class="classic">'.
@@ -515,9 +482,48 @@
 __('Disable javascript powered drag and drop for ordering items').'</label></p>'.
 
-'<p class="clear form-note info">'.__('Numeric fields will allow to type the elements\' ordering number.').'</p>'.
-'</fieldset>';
-
-echo
-'<fieldset><legend>'.__('Dashboard modules').'</legend>'.
+'<p class="clear form-note">'.__('If checked, numeric fields will allow to type the elements\' ordering number.').'</p>';
+
+echo
+'<h4 class="border-top">'.__('Edition').'</h4>'.
+
+'<p><label for="user_post_format">'.__('Preferred format:').'</label>'.
+form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</p>'.
+
+'<p><label for="user_post_status">'.__('Default entry status:').'</label>'.
+form::combo('user_post_status',$status_combo,$user_post_status).'</p>'.
+
+'<p><label for="user_edit_size">'.__('Entry edit field height:').'</label>'.
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</p>'.
+
+'<p><label for="user_wysiwyg" class="classic">'.
+form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg']).' '.
+__('Enable WYSIWYG mode').'</label></p>';
+
+echo
+'<h4 class="border-top">'.__('Other options').'</h4>';
+
+# --BEHAVIOR-- adminPreferencesForm
+$core->callBehavior('adminPreferencesForm',$core);
+
+echo
+'</div>'.
+
+'<div class="col">'.
+'<h4>'.__('Dashboard and menu').'</h4>'.
+
+'<p><label for="user_ui_nofavmenu" class="classic">'.
+form::checkbox('user_ui_nofavmenu',1,$user_ui_nofavmenu).' '.
+__('Hide My favorites menu').'</label></p>';
+
+if (count($iconsets_combo) > 1) {
+	echo 
+		'<p><label for="user_ui_iconset" class="classic">'.__('Iconset:').'</label> '.
+		form::combo('user_ui_iconset',$iconsets_combo,$user_ui_iconset).'</p>';
+} else {
+	form::hidden('user_ui_iconset','');
+}
+
+echo
+'<h5>'.('Dashboard modules').'</h5>'.
 
 '<p><label for="user_dm_doclinks" class="classic">'.
@@ -532,15 +538,14 @@
 form::checkbox('user_dm_quickentry',1,$user_dm_quickentry).' '.
 __('Display quick entry form').'</label><br class="clear" />'. //Opera sucks
-'</p>'.
-
-'</fieldset>';
-
-# --BEHAVIOR-- adminPreferencesForm
-$core->callBehavior('adminPreferencesForm',$core);
-
-echo
-'<p class="clear">'.
+'</p>';
+
+echo
+'</div>'.
+'</div>';
+
+echo
+'<p class="clear border-top">'.
 $core->formNonce().
-'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
+'<input type="submit" accesskey="s" value="'.__('Save my options').'" /></p>'.
 '</form>';
 
@@ -552,4 +557,5 @@
 echo '<form action="preferences.php" method="post" id="favs-form">';
 echo '<div class="two-cols">';
+
 echo '<div class="col70">';
 echo '<div id="my-favs" class="fieldset"><h3>'.__('My favorites').'</h3>';
@@ -600,5 +606,5 @@
 
 echo '<div id="default-favs"><h3>'.__('Default favorites').'</h3>';
-echo '<p class="form-note info clear">'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
+echo '<p>'.__('Those favorites are displayed when My Favorites list is empty.').'</p>';
 $count = 0;
 foreach ($ws->dumpPrefs() as $k => $v) {
@@ -617,4 +623,6 @@
 echo '</div>';
 echo '</div>';
+
+
 echo '<div class="col30 fieldset" id="available-favs">';
 # Available favorites
@@ -646,4 +654,6 @@
 '<input type="submit" name="appendaction" value="'.__('Add to my favorites').'" /></p>';
 echo '</div>';
+
+
 echo '</div>'; # Two-cols
 echo '</form>';
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 1608)
+++ admin/style/default.css	(revision 1609)
@@ -782,5 +782,5 @@
 /* ------------------------------------------------------------------ preferences */
 #my-favs {
-	border: 2px solid #A8DC26;
+	border: 1px solid #A8DC26;
 	padding: 1em 2em
 }
@@ -846,4 +846,19 @@
 	width: 14em;
 	padding-right: 1em;
+}
+.blog-perm {
+	margin-top: 2em;
+	font-weight: bold;
+}
+.ul-perm {
+	list-style-type: square;
+	margin-left: 0;
+	padding-left: 3.5em;
+	margin-bottom: 0
+}
+.add-perm {
+	padding-top: .5em;
+	padding-left: 2.5em;
+	margin-left: 0;
 }
 /* -------------------------------------------------------------------- Themes */
@@ -1153,4 +1168,7 @@
 .no-margin, #entry-content label.no-margin {
 	margin: 0;
+}
+.vertical-separator {
+	margin-top: 2em;
 }
 .border-top {
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 1605)
+++ admin/user.php	(revision 1609)
@@ -192,4 +192,16 @@
 }
 
+echo
+'<form action="user.php" method="post" id="user-form" class="fieldset">'.
+'<div class="two-cols">'.
+
+'<div class="col">'.
+'<h3>'.__('User profile').'</h3>'.
+
+'<p><label for="user_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('User ID:').'</label> '.
+form::field('user_id',20,255,html::escapeHTML($user_id)).
+'</p>'.
+'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p>';
+
 if ($user_id == $core->auth->userID()) {
 	echo
@@ -199,13 +211,4 @@
 
 echo
-'<form action="user.php" method="post" id="user-form">'.
-'<fieldset><legend>'.__('User information').'</legend>'.
-'<div class="two-cols">'.
-'<div class="col">'.
-'<p><label for="user_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('User ID:').'</label> '.
-form::field('user_id',20,255,html::escapeHTML($user_id)).
-'</p>'.
-'<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p>'.
-
 '<p><label for="new_pwd" '.($user_id != '' ? '' : 'class="required"').'>'.
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').
@@ -218,46 +221,4 @@
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Confirm password:').'</label> '.
 form::password('new_pwd_c',20,255).
-'</p>'.
-
-'<p><label for="user_name">'.__('Last Name:').'</label> '.
-form::field('user_name',20,255,html::escapeHTML($user_name)).
-'</p>'.
-
-'<p><label for="user_firstname">'.__('First Name:').'</label> '.
-form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).
-'</p>'.
-
-'<p><label for="user_displayname">'.__('Display name:').'</label> '.
-form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).
-'</p>'.
-
-'<p><label for="user_email">'.__('Email:').'</label> '.
-form::field('user_email',20,255,html::escapeHTML($user_email)).
-'</p>'.
-'<p class="form-note">'.__('Mandatory for password recovering procedure.').'</p>'.
-'</div>'.
-
-'<div class="col">'.
-'<p><label for="user_url">'.__('URL:').'</label> '.
-form::field('user_url',30,255,html::escapeHTML($user_url)).
-'</p>'.
-'<p><label for="user_post_format">'.__('Preferred format:').'</label> '.
-form::combo('user_post_format',$formaters_combo,$user_options['post_format']).
-'</p>'.
-
-'<p><label for="user_post_status">'.__('Default entry status:').'</label> '.
-form::combo('user_post_status',$status_combo,$user_post_status).
-'</p>'.
-
-'<p><label for="user_edit_size">'.__('Entry edit field height:').'</label> '.
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).
-'</p>'.
-
-'<p><label for="user_lang">'.__('User language:').'</label> '.
-form::combo('user_lang',$lang_combo,$user_lang,'l10n').
-'</p>'.
-
-'<p><label for="user_tz">'.__('User timezone:').'</label> '.
-form::combo('user_tz',dt::getZones(true,true),$user_tz).
 '</p>';
 
@@ -270,18 +231,65 @@
 
 $super_disabled = $user_super && $user_id == $core->auth->userID();
-
 echo
 '<p><label for="user_super" class="classic">'.form::checkbox('user_super','1',$user_super,'','',$super_disabled).' '.
 __('Super administrator').'</label></p>'.
+
+'<p><label for="user_name">'.__('Last Name:').'</label> '.
+form::field('user_name',20,255,html::escapeHTML($user_name)).
+'</p>'.
+
+'<p><label for="user_firstname">'.__('First Name:').'</label> '.
+form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).
+'</p>'.
+
+'<p><label for="user_displayname">'.__('Display name:').'</label> '.
+form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).
+'</p>'.
+
+'<p><label for="user_email">'.__('Email:').'</label> '.
+form::field('user_email',20,255,html::escapeHTML($user_email)).
+'</p>'.
+'<p class="form-note">'.__('Mandatory for password recovering procedure.').'</p>'.
+
+'<p><label for="user_url">'.__('URL:').'</label> '.
+form::field('user_url',30,255,html::escapeHTML($user_url)).
+'</p>'.
 '</div>'.
-'</div>'.
-'</fieldset>';
+
+'<div class="col">'.
+'<h3>'.__('Options').'</h3>'.
+'<h4>'.__('Interface').'</h4>'.
+'<p><label for="user_lang">'.__('Language:').'</label> '.
+form::combo('user_lang',$lang_combo,$user_lang,'l10n').
+'</p>'.
+
+'<p><label for="user_tz">'.__('Timezone:').'</label> '.
+form::combo('user_tz',dt::getZones(true,true),$user_tz).
+'</p>'.
+
+'<h4>'.__('Edition').'</h4>'.
+'<p><label for="user_post_format">'.__('Preferred format:').'</label> '.
+form::combo('user_post_format',$formaters_combo,$user_options['post_format']).
+'</p>'.
+
+'<p><label for="user_post_status">'.__('Default entry status:').'</label> '.
+form::combo('user_post_status',$status_combo,$user_post_status).
+'</p>'.
+
+'<p><label for="user_edit_size">'.__('Entry edit field height:').'</label> '.
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).
+'</p>';
 
 # --BEHAVIOR-- adminUserForm
 $core->callBehavior('adminUserForm',isset($rs) ? $rs : null);
 
+echo 
+'</div>'.
+'</div>';
+
+
 echo
-'<p><label for="your_pwd" '.($user_id != '' ? '' : 'class="required"').'>'.
-($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Your password:').'</label>'.
+'<p class="clear border-top"><label for="your_pwd" class="required">'.
+'<abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').'</label>'.
 form::password('your_pwd',20,255).'</p>'.
 '<p class="clear"><input type="submit" name="save" accesskey="s" value="'.__('Save').'" />'.
@@ -295,51 +303,61 @@
 if ($user_id)
 {
-	echo '<div class="clear fieldset"><h3>'.__('Permissions').'</h3>'.
-	'<form action="users_actions.php" method="post">'.
-	'<p><input type="submit" value="'.__('Add new permissions').'" />'.
-	form::hidden(array('redir'),'user.php?id='.$user_id).
-	form::hidden(array('action'),'blogs').
-	form::hidden(array('users[]'),$user_id).
-	$core->formNonce().
-	'</p>'.
-	'</form>';
-	
-	$permissions = $core->getUserPermissions($user_id);
-	$perm_types = $core->auth->getPermissionsTypes();
-	
-	if (count($permissions) == 0)
+	echo '<div class="clear fieldset">'.
+	'<h3>'.__('Permissions').'</h3>';
+
+	if (!$user_super)
 	{
-		echo '<p>'.__('No permissions.').'</p>';
-	}
-	else
-	{
-		foreach ($permissions as $k => $v)
+		echo
+		'<form action="users_actions.php" method="post">'.
+		'<p><input type="submit" value="'.__('Add new permissions').'" />'.
+		form::hidden(array('redir'),'user.php?id='.$user_id).
+		form::hidden(array('action'),'blogs').
+		form::hidden(array('users[]'),$user_id).
+		$core->formNonce().
+		'</p>'.
+		'</form>';
+		
+		$permissions = $core->getUserPermissions($user_id);
+		$perm_types = $core->auth->getPermissionsTypes();
+		
+		if (count($permissions) == 0)
 		{
-			if (count($v['p']) > 0)
+			echo '<p>'.__('No permissions so far.').'</p>';
+		}
+		else
+		{
+			foreach ($permissions as $k => $v)
 			{
-				echo 
-				'<form action="users_actions.php" method="post">'.
-				'<h4><a href="blog.php?id='.html::escapeHTML($k).'">'.
-				html::escapeHTML($v['name']).'</a> ('.html::escapeHTML($k).')</h4>';
-				
-				echo '<ul>';
-				foreach ($v['p'] as $p => $V) {
-					if (isset($perm_types[$p])) {
-						echo '<li>'.__($perm_types[$p]).'</li>';
+				if (count($v['p']) > 0)
+				{
+					echo 
+					'<form action="users_actions.php" method="post">'.
+					'<p class="blog-perm">'.__('Blog:').' <a href="blog.php?id='.html::escapeHTML($k).'">'.
+					html::escapeHTML($v['name']).'</a> ('.html::escapeHTML($k).')</p>';
+					
+					echo '<ul class="ul-perm">';
+					foreach ($v['p'] as $p => $V) {
+						if (isset($perm_types[$p])) {
+							echo '<li>'.__($perm_types[$p]).'</li>';
+						}
 					}
+					echo
+					'</ul>'.
+					'<p class="add-perm"><input type="submit" class="reset" value="'.__('Change permissions').'" />'.
+					form::hidden(array('redir'),'user.php?id='.$user_id).
+					form::hidden(array('action'),'perms').
+					form::hidden(array('users[]'),$user_id).
+					form::hidden(array('blogs[]'),$k).
+					$core->formNonce().
+					'</p>'.
+					'</form>';
 				}
-				echo '</ul>'.
-				'<p><input type="submit" value="'.__('Change permissions').'" />'.
-				form::hidden(array('redir'),'user.php?id='.$user_id).
-				form::hidden(array('action'),'perms').
-				form::hidden(array('users[]'),$user_id).
-				form::hidden(array('blogs[]'),$k).
-				$core->formNonce().
-				'</p>'.
-				'</form>';
-			}
-		}
-	}
-	
+			}
+		}	
+
+	} 
+	else {
+		echo '<p>'.sprintf(__('User %s is super admin.'),$user_id).'</p>';
+	}	
 	echo '</div>';
 }
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 1514)
+++ admin/users.php	(revision 1609)
@@ -112,5 +112,5 @@
 	
 	echo
-	'<p class="top-add"><strong><a class="button add" href="user.php">'.__('Create a new user').'</a></strong></p>';
+	'<p class="top-add"><strong><a class="button add" href="user.php">'.__('New user').'</a></strong></p>';
 	
 	if (!$show_filters) {
Index: inc/core/class.dc.blog.php
===================================================================
--- inc/core/class.dc.blog.php	(revision 1532)
+++ inc/core/class.dc.blog.php	(revision 1610)
@@ -311,5 +311,9 @@
 		$counter = $this->getCategoriesCounter($c_params);
 		
-		$without_empty = $this->core->auth->userID() == false; # For public display
+		if (isset($params['without_empty']) && ($params['without_empty'] == false)) {
+			$without_empty = false;
+		} else {
+			$without_empty = $this->core->auth->userID() == false; # Get all categories if in admin display
+		}
 		
 		$start = isset($params['start']) ? (integer) $params['start'] : 0;
Index: inc/public/class.dc.template.php
===================================================================
--- inc/public/class.dc.template.php	(revision 1280)
+++ inc/public/class.dc.template.php	(revision 1611)
@@ -955,4 +955,8 @@
 			$p .= "\$params['level'] = ".(integer) $attr['level'].";\n";
 		}
+
+		if (isset($attr['with_empty']) && ((boolean) $attr['with_empty'] == true)) {
+			$p .= '$params[\'without_empty\'] = false;';
+		}
 		
 		$res = "<?php\n";
Index: inc/public/lib.urlhandlers.php
===================================================================
--- inc/public/lib.urlhandlers.php	(revision 1179)
+++ inc/public/lib.urlhandlers.php	(revision 1610)
@@ -263,5 +263,6 @@
 			$params = new ArrayObject(array(
 				'cat_url' => $args,
-				'post_type' => 'post'));
+				'post_type' => 'post',
+				'without_empty' => false));
 			
 			$core->callBehavior('publicCategoryBeforeGetCategories',$params,$args);
Index: locales/fr/help/core_user.html
===================================================================
--- locales/fr/help/core_user.html	(revision 1605)
+++ locales/fr/help/core_user.html	(revision 1609)
@@ -58,5 +58,5 @@
   <dd>Ce choix déterminera l'affichage de l'heure de publication des billets.</dd>
 
-  <dt>Changement de mot de passe requis pour la connexion</dt>
+  <dt>Changement de mot de passe requis à la prochaine connexion</dt>
   <dd>Cocher cette case permettra au nouvel utilisateur de choisir par lui-même son mot de passe à sa première connexion.</dd>
 
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 1607)
+++ locales/fr/main.po	(revision 1609)
@@ -89,5 +89,5 @@
 
 msgid "Confirm password:"
-msgstr "Confirmez le mot de passe :"
+msgstr "Confirmer le mot de passe :"
 
 msgid "change"
@@ -1886,5 +1886,5 @@
 
 msgid "Disable javascript powered drag and drop for ordering items"
-msgstr "Désactiver le drag and drop javascript pour ordonnancer les éléments"
+msgstr "Désactiver le glisser-déposer pour ordonnancer les éléments"
 
 msgid "Numeric fields will allow to type the elements' ordering number."
@@ -1916,4 +1916,10 @@
 msgstr "Retirer les favoris sélectionnés"
 
+msgid "Your current password:"
+msgstr "Votre mot de passe actuel :"
+
+msgid "Update my profile"
+msgstr "Mettre à jour mon profil"
+
 msgid "Are you sure you want to remove selected favorites?"
 msgstr "Êtes-vous sûr de vouloir retirer les favoris sélectionnés ?"
@@ -2093,5 +2099,5 @@
 
 msgid "Password change required to connect"
-msgstr "Changement de mot de passe requis pour la connexion"
+msgstr "Changement de mot de passe requis à la prochaine connexion"
 
 msgid "Save and create another"
@@ -3231,4 +3237,34 @@
 msgstr "Cliquez ici pour déverrouiller ce champ"
 
-msgid "User ID"
-msgstr "Identifiant (login)"
+msgid "User profile"
+msgstr "Profil utilisateur"
+
+msgid "User ID:"
+msgstr "Identifiant (login) :"
+
+msgid "Interface"
+msgstr "Interface"
+
+msgid "Edition"
+msgstr "Édition"
+
+msgid "Other options"
+msgstr "Autres options"
+
+msgid "No permissions so far."
+msgstr "Aucune permission pour le moment."
+
+msgid "Accessibility"
+msgstr "Accessibilité"
+
+msgid "Dashboard and menu"
+msgstr "Tableau de bord et menu"
+
+msgid "Dashboard modules"
+msgstr "Modules du tableau de bord"
+
+msgid "If checked, numeric fields will allow to type the elements' ordering number."
+msgstr "Si cette option est cochée, des champs numérique permettront l'ordonnancement des éléments."
+
+msgid "Save my options"
+msgstr "Enregistrer mes options"
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 1605)
+++ locales/fr/plugins.po	(revision 1610)
@@ -1675,4 +1675,7 @@
 msgstr "Avec le nombre de billets"
 
+msgid "Include empty categories"
+msgstr "Inclure les catégories vides"
+
 msgid "Subscribe links"
 msgstr "Liens de souscription"
@@ -1975,2 +1978,5 @@
 msgid "Are you sure you want to remove tag: “%s”?"
 msgstr "Êtes-vous sûr de vouloir supprimer le mot-clé “%s” ?"
+
+msgid "Syntax color for theme editor"
+msgstr "Coloration syntaxique de l'éditeur de thème"
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 1518)
+++ plugins/tags/_admin.php	(revision 1609)
@@ -321,8 +321,7 @@
 		
 		echo
-		'<fieldset><legend>'.__('Tags').'</legend>'.
 		'<p><label for="user_tag_list_format">'.__('Tags list format:').'</label> '.
 		form::combo('user_tag_list_format',$combo,$value).
-		'</p></fieldset>';
+		'</p>';
 	}
 	
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 1454)
+++ plugins/themeEditor/_admin.php	(revision 1609)
@@ -50,13 +50,9 @@
 		$core->auth->user_prefs->addWorkspace('interface');
 
-		echo
-		'<fieldset><legend>'.__('Theme Editor').'</legend>'.
-		
+		echo		
 		'<p><label for="colorsyntax" class="classic">'.
 		form::checkbox('colorsyntax',1,$core->auth->user_prefs->interface->colorsyntax).'</label>'.
-		__('Syntax color').
-		'<br class="clear" />'. //Opera sucks
-		'</p>'.
-		'</fieldset>';
+		__('Syntax color for theme editor').
+		'</p>';
 	}
 }
Index: plugins/widgets/_default_widgets.php
===================================================================
--- plugins/widgets/_default_widgets.php	(revision 1179)
+++ plugins/widgets/_default_widgets.php	(revision 1610)
@@ -47,7 +47,8 @@
 $__widgets->langs->setting('class',__('CSS class:'),'');
 
-$__widgets->create('categories',__('Categories list'),array('defaultWidgets','categories'),null,'List of categories');
+$__widgets->create('categories',__('Categories'),array('defaultWidgets','categories'),null,'List of categories');
 $__widgets->categories->setting('title',__('Title:'),__('Categories'));
 $__widgets->categories->setting('postcount',__('With entries counts'),0,'check');
+$__widgets->categories->setting('with_empty',__('Include empty categories'),0,'check');
 $__widgets->categories->setting('homeonly',__('Display on:'),0,'combo',
 	array(__('All pages') => 0, __('Home page only') => 1, __('Except on home page') => 2));
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 1280)
+++ plugins/widgets/_widgets_functions.php	(revision 1610)
@@ -77,5 +77,5 @@
 		}
 
-		$rs = $core->blog->getCategories(array('post_type'=>'post'));
+		$rs = $core->blog->getCategories(array('post_type'=>'post','without_empty'=> !$w->with_empty));
 		if ($rs->isEmpty()) {
 			return;
