Index: .hgignore
===================================================================
--- .hgignore	(revision 14)
+++ .hgignore	(revision 358)
@@ -1,3 +1,4 @@
 cache
+public
 inc/config.php
 \.htaccess
Index: .hgsubstate
===================================================================
--- .hgsubstate	(revision 449)
+++ .hgsubstate	(revision 397)
@@ -1,1 +1,1 @@
-c10128f5cfd8994998a951841855fd23ad2c7c4d inc/libs/clearbricks
+b2111d3376a5700ef9b6ceee36de1b5a76953995 inc/libs/clearbricks
Index: .hgtags
===================================================================
--- .hgtags	(revision 369)
+++ .hgtags	(revision 369)
@@ -0,0 +1,2 @@
+ec077f3c6b20bc6f7f40a113acaff0220457a2c4 2.3.0
+4e0137ddb12474d62b88c4966d5895a391b6d382 2.3.1
Index: CHANGELOG
===================================================================
--- CHANGELOG	(revision 3)
+++ CHANGELOG	(revision 372)
@@ -1,2 +1,33 @@
+Dotclear 2.4.0 - ongoing dev
+===========================================================
+* handling of postgres non default schemas (db_prefix = 'schema.prefix')
+
+Dotclear 2.3.1 - 2001-06-14
+===========================================================
+* Updated makefile for cleaner distrib.
+* Better localization handling for prefs and shortcuts.
+* Misc JS & CSS cleaning.
+* Import/Export preferences-related bugfix.
+* Administrative mail address is now configurable.
+* Security: one minor fix and changes for two potential problems. Thanks to Jeremie Boutoille
+
+Dotclear 2.3.0 - 2011-05-16
+===========================================================
+* Admin: Major backend redesign
+* Admin: Customizable Dashboard
+* Admin: New Favourites admin submenu
+* Admin: New user preferences backend
+* Admin: Accessibility enhancements
+* Admin: Inline help extended
+* Templates: Default theme templates moved to inc/public/default-templates
+* Clearbricks: External libraries relocated to inc/libs
+* Clearbricks: fixed utf-8 and mysql strict mode problems
+* Added a safe mode connection, disabling all plugins
+* Mysqli support (config.php may need to be updated manually)
+* Fixed dcLog bug with pgsql
+* Fixed comment/trackbacks counters reset.
+* Several other bug fixes
+
+
 Dotclear 2.2.3 - 2011-04-01
 ===========================================================
@@ -20,5 +51,4 @@
 * Several typos corrected
 * Security fix in Clearbricks. Thx to François Pierre-Doray for pointing it out.
-
 
 Dotclear 2.2 - 2010-07-01
Index: Makefile
===================================================================
--- Makefile	(revision 0)
+++ Makefile	(revision 415)
@@ -25,4 +25,8 @@
 	## Remove .svn folders
 	find ./$(DIST)/ -type d -name '.svn' | xargs rm -rf
+
+	## Remove .hg* files and folders
+	find ./$(DIST)/ -type d -name '.hg*' | xargs rm -rf
+	find ./$(DIST)/ -type f -name '.hg*' | xargs rm -rf
 	
 	## Remove config file if any
@@ -34,4 +38,5 @@
 	./plugins/akismet \
 	./plugins/antispam \
+	./plugins/attachments \
 	./plugins/blogroll \
 	./plugins/blowupConfig \
@@ -43,4 +48,5 @@
 	./plugins/pings \
 	./plugins/themeEditor \
+	./plugins/userPref \
 	./plugins/widgets \
 	./$(DC)/plugins/
@@ -49,4 +55,8 @@
 	find ./$(DIST)/ -type d -name '.svn' -print0 | xargs -0 rm -rf
 	
+	## Remove .hg* files and folders
+	find ./$(DIST)/ -type d -name '.hg*' | xargs rm -rf
+	find ./$(DIST)/ -type f -name '.hg*' | xargs rm -rf
+
 	## "Compile" .po files
 	./build-tools/make-l10n.php ./$(DC)/
Index: admin/auth.php
===================================================================
--- admin/auth.php	(revision 199)
+++ admin/auth.php	(revision 473)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -22,5 +22,6 @@
 # That's a tricky hack but it works ;)
 $dlang = http::getAcceptLanguage();
-if ($dlang != 'en')
+$dlang = ($dlang == '' ? 'en' : $dlang);
+if ($dlang != 'en' && preg_match('/^[a-z]{2}(-[a-z]{2})?$/',$dlang))
 {
 	l10n::set(dirname(__FILE__).'/../locales/'.$dlang.'/main');
@@ -89,5 +90,5 @@
 		$page_url.'?akey='.$recover_key;
 		
-		$headers[] = 'From: dotclear@'.$_SERVER['HTTP_HOST'];
+		$headers[] = 'From: '.(defined('DC_ADMIN_MAILFROM') && DC_ADMIN_MAILFROM ? DC_ADMIN_MAILFROM : 'dotclear@local');
 		$headers[] = 'Content-Type: text/plain; charset=UTF-8;';
 		
@@ -125,6 +126,21 @@
 }
 # Change password and retry to log
-elseif ($change_pwd and $data = unserialize(base64_decode($_POST['login_data'])))
-{
+elseif ($change_pwd)
+{
+	try
+	{
+		$tmp_data = explode('/',$_POST['login_data']);
+		if (count($tmp_data) != 3) {
+			throw new Exception();
+		}
+		$data = array(
+			'user_id'=>base64_decode($tmp_data[0]),
+			'cookie_admin'=>$tmp_data[1],
+			'user_remember'=>$tmp_data[2]=='1'
+		);
+		if ($data['user_id'] === false) {
+			throw new Exception();
+		}
+		
 	# Check login informations
 	$check_user = false;
@@ -141,6 +157,4 @@
 	}
 	
-	try
-	{
 		if (!$core->auth->allowPassChange() || !$check_user) {
 			$change_pwd = false;
@@ -165,9 +179,5 @@
 		$_SESSION['sess_browser_uid'] = http::browserUID(DC_MASTER_KEY);
 		
-		if (!empty($data['blog_id'])) {
-			$_SESSION['sess_blog_id'] = $data['blog_id'];
-		}
-		
-		if (!empty($data['user_remember']))
+		if ($data['user_remember'])
 		{
 			setcookie('dc_admin',$data['cookie_admin'],strtotime('+15 days'),'','',DC_ADMIN_SSL);
@@ -192,10 +202,9 @@
 	if ($check_user && $core->auth->mustChangePassword())
 	{
-		$login_data = base64_encode(serialize(array(
-			'user_id'=>$user_id,
-			'cookie_admin'=>$cookie_admin,
-			'blog_id'=>(!empty($_POST['blog']) ? $_POST['blog'] : ''),
-			'user_remember'=>!empty($_POST['user_remember'])
-		)));
+		$login_data = join('/',array(
+			base64_encode($user_id),
+			$cookie_admin,
+			empty($_POST['user_remember'])?'0':'1'
+		));
 		
 		if (!$core->auth->allowPassChange()) {
@@ -248,10 +257,10 @@
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml"
-xml:lang="en" lang="en">
+xml:lang="<?php echo $dlang; ?>" lang="<?php echo $dlang; ?>">
 <head>
   <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
   <meta http-equiv="Content-Script-Type" content="text/javascript" />
   <meta http-equiv="Content-Style-Type" content="text/css" />
-  <meta http-equiv="Content-Language" content="en" />
+  <meta http-equiv="Content-Language" content="<?php echo $dlang; ?>" />
   <meta name="ROBOTS" content="NOARCHIVE,NOINDEX,NOFOLLOW" />
   <meta name="GOOGLEBOT" content="NOSNIPPET" />
@@ -263,7 +272,6 @@
 ?>
   
-  <style type="text/css">
-  @import url(style/default.css); 
-  </style>
+	<link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />
+	 
   <?php
   # --BEHAVIOR-- loginPageHTMLHead
@@ -292,7 +300,8 @@
 	 return true;
     };
-    
-    if (navigator.cookieEnabled) {
+    $.cookie('dc_admin_test_cookie',true);
+    if ($.cookie('dc_admin_test_cookie')) {
       $('#cookie_help').hide();
+      $.cookie('dc_admin_test_cookie', '', {'expires': -1});
     } else {
       $('#cookie_help').show();
@@ -326,14 +335,15 @@
 	'<fieldset><legend>'.__('Request a new password').'</legend>'.
 	'<p><label for="user_id">'.__('Username:').' '.
-	form::field(array('user_id','user_id'),20,32,html::escapeHTML($user_id),'',1).'</label></p>'.
+	form::field(array('user_id','user_id'),20,32,html::escapeHTML($user_id)).'</label></p>'.
 	
 	'<p><label for="user_email">'.__('Email:').' '.
-	form::field(array('user_email','user_email'),20,255,html::escapeHTML($user_email),'',2).'</label></p>'.
-	
-	'<p><input type="submit" value="'.__('recover').'" tabindex="3" />'.
+	form::field(array('user_email','user_email'),20,255,html::escapeHTML($user_email)).'</label></p>'.
+	
+	'<p><input type="submit" value="'.__('recover').'" />'.
 	form::hidden(array('recover'),1).'</p>'.
 	'</fieldset>'.
 	
-	'<p><a href="auth.php">'.__('Back to login screen').'</a></p>';
+	'<div id="issue">'.
+	'<p><a href="auth.php">'.__('Back to login screen').'</a></p></div>';
 }
 elseif ($change_pwd)
@@ -342,8 +352,8 @@
 	'<fieldset><legend>'.__('Change your password').'</legend>'.
 	'<p><label for="new_pwd">'.__('New password:').' '.
-	form::password(array('new_pwd','new_pwd'),20,255,'','',1).'</label></p>'.
+	form::password(array('new_pwd','new_pwd'),20,255).'</label></p>'.
 	
 	'<p><label for="new_pwd_c">'.__('Confirm password:').' '.
-	form::password(array('new_pwd_c','new_pwd_c'),20,255,'','',2).'</label></p>'.
+	form::password(array('new_pwd_c','new_pwd_c'),20,255).'</label></p>'.
 	'</fielset>'.
 	
@@ -371,14 +381,14 @@
 		echo
 		'<p><label for="user_id">'.__('Username:').' '.
-		form::field(array('user_id','user_id'),20,32,html::escapeHTML($user_id),'',1).'</label></p>'.
+		form::field(array('user_id','user_id'),20,32,html::escapeHTML($user_id)).'</label></p>'.
 		
 		'<p><label for="user_pwd">'.__('Password:').' '.
-		form::password(array('user_pwd','user_pwd'),20,255,'','',2).'</label></p>'.
+		form::password(array('user_pwd','user_pwd'),20,255).'</label></p>'.
 		
 		'<p><label for="user_remember" class="classic">'.
-		form::checkbox(array('user_remember','user_remember'),1,'','',3).' '.
+		form::checkbox(array('user_remember','user_remember'),1).' '.
 		__('Remember my ID on this computer').'</label></p>'.
 		
-		'<p><input type="submit" value="'.__('log in').'" tabindex="4" /></p>';
+		'<p><input type="submit" value="'.__('log in').'" /></p>';
 		
 		if (!empty($_REQUEST['blog'])) {
@@ -391,5 +401,5 @@
 		echo
 		'</fieldset>'.
-		'<p id="cookie_help">'.__('You must accept cookies in order to use the private area.').'</p>';
+		'<p id="cookie_help" class="error">'.__('You must accept cookies in order to use the private area.').'</p>';
 
 		echo '<div id="issue">';
Index: admin/blog.php
===================================================================
--- admin/blog.php	(revision 217)
+++ admin/blog.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -70,5 +70,5 @@
 	
 	echo
-	'<h2><a href="blogs.php">'.__('Blogs').'</a> &rsaquo; '.__('New blog').'</h2>'.
+	'<h2><a href="blogs.php">'.__('Blogs').'</a> &rsaquo; <span class="page-title">'.__('New blog').'</span></h2>'.
 	
 	'<form action="blog.php" method="post" id="blog-form">'.
Index: admin/blog_del.php
===================================================================
--- admin/blog_del.php	(revision 38)
+++ admin/blog_del.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,4 +16,5 @@
 
 $blog_id = '';
+$blog_name = '';
 
 if (!empty($_POST['blog_id']))
@@ -29,4 +30,5 @@
 	} else {
 		$blog_id = $rs->blog_id;
+		$blog_name = $rs->blog_name;
 	}
 }
@@ -52,8 +54,8 @@
 {
 	echo
-	'<h2>'.__('Delete a blog').'</h2>'.
+	'<h2 class="page-title">'.__('Delete a blog').'</h2>'.
 	'<p class="message">'.__('Warning').'</p>'.
 	'<p>'.sprintf(__('You are about to delete the blog %s. Every entry, comment and category will be deleted.'),
-	'<strong>'.$blog_id.'</strong>').'</p>'.
+	'<strong>'.$blog_id.' ('.$blog_name.')</strong>').'</p>'.
 	'<p>'.__('Please give your password to confirm the blog deletion.').'</p>';
 	
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 217)
+++ admin/blog_pref.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -243,6 +243,6 @@
 {
 	echo '<h2>'.(!$standalone ? '<a href="blogs.php">'.__('Blogs').'</a> &rsaquo; ' : '').
-	html::escapeHTML($blog_name).' &rsaquo; '.
-	__('Blog settings').'</h2>';
+	html::escapeHTML($blog_name).' &rsaquo; <span class="page-title">'.
+	__('Blog settings').'</span></h2>';
 	
 	if (!empty($_GET['add'])) {
Index: admin/blog_theme.php
===================================================================
--- admin/blog_theme.php	(revision 217)
+++ admin/blog_theme.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -156,5 +156,9 @@
 	
 	$radio_id = 'theme_'.html::escapeHTML($id);
-	$theme_url = http::concatURL($core->blog->url,$core->blog->settings->system->themes_url.'/'.$id);
+	if (preg_match('#^http(s)?://#',$core->blog->settings->system->themes_url)) {
+		$theme_url = http::concatURL($core->blog->settings->system->themes_url,'/'.$id);
+	} else {
+		$theme_url = http::concatURL($core->blog->url,$core->blog->settings->system->themes_url.'/'.$id);
+	}
 	$has_conf = file_exists(path::real($core->blog->themes_path.'/'.$id).'/_config.php');
 	$has_css = file_exists(path::real($core->blog->themes_path.'/'.$id).'/style.css');
@@ -212,5 +216,5 @@
 {
 	echo
-	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Blog appearance').'</h2>';
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Blog appearance').'</span></h2>';
 	
 	if (!empty($_GET['upd'])) {
@@ -329,17 +333,23 @@
 	echo
 	'<h2>'.html::escapeHTML($core->blog->name).
-	' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; '.__('Theme configuration').'</h2>'.
+	' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme configuration').'<span class="page-title"></h2>'.
 	'<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 	
 	try
 	{
-		echo '<form id="theme_config" action="blog_theme.php?conf=1" method="post" enctype="multipart/form-data">';
-		
+		# Let theme configuration set their own form(s) if required
+		$standalone_config = (boolean) $core->themes->moduleInfo($core->blog->settings->system->theme,'standalone_config');
+
+		if (!$standalone_config)
+			echo '<form id="theme_config" action="blog_theme.php?conf=1" method="post" enctype="multipart/form-data">';
+
 		include $theme_conf_file;
-		
-		echo
-		'<p class="clear"><input type="submit" value="'.__('Save').'" />'.
-		$core->formNonce().'</p>'.
-		'</form>';
+
+		if (!$standalone_config)
+			echo
+			'<p class="clear"><input type="submit" value="'.__('Save').'" />'.
+			$core->formNonce().'</p>'.
+			'</form>';
+
 	}
 	catch (Exception $e)
Index: admin/blogs.php
===================================================================
--- admin/blogs.php	(revision 456)
+++ admin/blogs.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -79,5 +79,5 @@
 }
 
-echo '<h2>'.__('List of blogs').'</h2>';
+echo '<h2 class="page-title">'.__('List of blogs').'</h2>';
 
 if (!$core->error->flag())
@@ -118,9 +118,68 @@
 	
 	# Show blogs
-	$blogs_list = new adminBlogList($core,$rs,$nb_blog);
-	$blogs_list->display($page,$nb_per_page);
+	if ($nb_blog == 0)
+	{
+		echo '<p><strong>'.__('No blog').'</strong></p>';
+	}
+	else
+	{
+		$pager = new pager($page,$nb_blog,$nb_per_page,10);
+		$pager->var_page = 'page';
+		
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		
+		echo
+		'<table class="clear"><tr>'.
+		'<th>'.__('Blog name').'</th>'.
+		'<th class="nowrap">'.__('Last update').'</th>'.
+		'<th class="nowrap">'.__('Entries').'</th>'.
+		'<th class="nowrap">'.__('Blog ID').'</th>'.
+		'<th>&nbsp;</th>'.
+		'<th class="nowrap">'.__('Status').'</th>'.
+		'</tr>';
+		
+		while ($rs->fetch()) {
+			echo blogLine($rs);
+		}
+		
+		echo '</table>';
+		
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+	}
 }
 
 dcPage::close();
 
+function blogLine($rs)
+{
+	global $core;
+	
+	$blog_id = html::escapeHTML($rs->blog_id);
+	$edit_link = '';
+	
+	if ($GLOBALS['core']->auth->isSuperAdmin()) {
+		$edit_link = 
+		'<a href="blog.php?id='.$blog_id.'" '.
+		'title="'.sprintf(__('Edit blog %s'),$blog_id).'">'.
+		__('edit').'</a>';
+	}
+	
+	$img_status = $rs->blog_status == 1 ? 'check-on' : 'check-off';
+	$txt_status = $GLOBALS['core']->getBlogStatus($rs->blog_status);
+	$img_status = sprintf('<img src="images/%1$s.png" alt="%2$s" title="%2$s" />',$img_status,$txt_status);
+	$offset = dt::getTimeOffset($core->auth->getInfo('user_tz'));
+	$blog_upddt = dt::str(__('%Y-%m-%d %H:%M'),strtotime($rs->blog_upddt) + $offset);
+	
+	return
+	'<tr class="line">'.
+	'<td class="maximal"><a href="index.php?switchblog='.$rs->blog_id.'" '.
+	'title="'.sprintf(__('Switch to blog %s'),$rs->blog_id).'">'.
+	html::escapeHTML($rs->blog_name).'</a></td>'.
+	'<td class="nowrap">'.$blog_upddt.'</td>'.
+	'<td class="nowrap">'.$core->countBlogPosts($rs->blog_id).'</td>'.
+	'<td class="nowrap">'.$blog_id.'</td>'.
+	'<td>'.$edit_link.'</td>'.
+	'<td class="status">'.$img_status.'</td>'.
+	'</tr>';
+}
 ?>
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 82)
+++ admin/categories.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -68,5 +68,5 @@
 }
 
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Categories').'</h2>';
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Categories').'</span></h2>';
 
 $rs = $core->blog->getCategories(array('post_type'=>'post'));
@@ -130,5 +130,7 @@
 '<option value="0">'.__('Top level').'</option>';
 while ($rs->fetch()) {
-	echo '<option value="'.$rs->cat_id.'">'.str_repeat('&nbsp;&nbsp;',$rs->level).'&bull; '.html::escapeHTML($rs->cat_title).'</option>';
+	echo '<option value="'.$rs->cat_id.'">'.
+		str_repeat('&nbsp;&nbsp;',$rs->level-1).($categories->level-1 == 0 ? '' : '&bull; ').
+		html::escapeHTML($rs->cat_title).'</option>';
 }
 echo
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 38)
+++ admin/category.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -58,5 +58,5 @@
 		if (!isset($p[$rs->cat_id])) {
 			$allowed_parents[] = new formSelectOption(
-				str_repeat('&nbsp;&nbsp;',$rs->level-1).'&bull; '.html::escapeHTML($rs->cat_title),
+				str_repeat('&nbsp;&nbsp;',$rs->level-1).($rs->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($rs->cat_title),
 				$rs->cat_id
 			);
@@ -179,5 +179,5 @@
 }
 
-echo $title.'</h2>';
+echo '<span class="page-title">'.$title.'</span></h2>';
 
 echo
@@ -185,5 +185,5 @@
 '<fieldset><legend>'.__('Category information').'</legend>'.
 '<p><label class="required" for="cat_title"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
-form::field('cat_title',40,255,html::escapeHTML($cat_title),'',2).
+form::field('cat_title',40,255,html::escapeHTML($cat_title)).
 '</label></p>';
 if (!$cat_id)
@@ -192,5 +192,5 @@
 	echo
 	'<p><label for="new_cat_parent">'.__('Parent:').' '.
-	'<select id="new_cat_parent" name="new_cat_parent" tabindex="3">'.
+	'<select id="new_cat_parent" name="new_cat_parent" >'.
 	'<option value="0">'.__('Top level').'</option>';
 	while ($rs->fetch()) {
@@ -204,5 +204,5 @@
 echo
 '<div class="lockable">'.
-'<p><label for="cat_url">'.__('URL:').' '.form::field('cat_url',40,255,html::escapeHTML($cat_url),'',4).
+'<p><label for="cat_url">'.__('URL:').' '.form::field('cat_url',40,255,html::escapeHTML($cat_url)).
 '</label></p>'.
 '<p class="form-note warn" id="note-cat-url">'.
@@ -211,8 +211,8 @@
 
 '<p class="area"><label for="cat_desc">'.__('Description:').'</label> '.
-form::textarea('cat_desc',50,8,html::escapeHTML($cat_desc),'',5).
+form::textarea('cat_desc',50,8,html::escapeHTML($cat_desc)).
 '</p>'.
 
-'<p><input type="submit" accesskey="s" value="'.__('Save').'" tabindex="5" />'.
+'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 ($cat_id ? form::hidden('id',$cat_id) : '').
 $core->formNonce().
@@ -232,5 +232,5 @@
 	'<p><label for="cat_parent" class="classic">'.__('Parent:').' '.
 	form::combo('cat_parent',$allowed_parents,$cat_parent).'</label></p>'.
-	'<p><input type="submit" accesskey="s" value="'.__('Save').'" tabindex="5" />'.
+	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 	form::hidden(array('id'),$cat_id).$core->formNonce().'</p>'.
 	'</fieldset>'.
@@ -246,5 +246,5 @@
 		form::combo('cat_move',array(__('before')=>'before',__('after')=>'after'),'','','',false,'title="'.__('position: ').'"').' '.
 		form::combo('cat_sibling',$siblings).'</p>'.
-		'<p><input type="submit" accesskey="s" value="'.__('Save').'" tabindex="5" />'.
+		'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 		form::hidden(array('id'),$cat_id).$core->formNonce().'</p>'.
 		'</fieldset>'.
Index: admin/comment.php
===================================================================
--- admin/comment.php	(revision 217)
+++ admin/comment.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -184,9 +184,8 @@
 	}
 	
-	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Edit comment').'</h2>';
-	
-	echo '<p><a class="back" href="'.$core->getPostAdminURL($post_type,$post_id).'&amp;co=1#c'.$comment_id.'"> '.
-		sprintf(__('Back to "%s"'),$post_title).'</a></p>';
-	
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.
+		$core->getPostAdminURL($post_type,$post_id).'&amp;co=1#c'.$comment_id.'"> '.
+		$post_title.'</a> &rsaquo; <span class="page-title">'.__('Edit comment').'</span></h2>';
+		
 	echo
 	'<form action="comment.php" method="post" id="comment-form">'.
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 178)
+++ admin/comments.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -108,4 +108,5 @@
 # Actions combo box
 $combo_action = array();
+$default = '';
 if ($core->auth->check('publish,contentadmin',$core->blog->id))
 {
@@ -118,4 +119,7 @@
 {
 	$combo_action[__('delete')] = 'delete';
+	if ($status == -2) {
+		$default = 'delete';
+	}
 }
 
@@ -144,5 +148,5 @@
 dcPage::open(__('Comments and trackbacks'),$starting_script);
 
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Comments and trackbacks').'</h2>';
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Comments and trackbacks').'</span></h2>';
 
 if (!$core->error->flag())
@@ -214,5 +218,5 @@
 	
 	'<p class="col right"><label for="action" class="classic">'.__('Selected comments action:').'</label> '.
-	form::combo('action',$combo_action,'','','','','title="'.__('action: ').'"').
+	form::combo('action',$combo_action,$default,'','','','title="'.__('action: ').'"').
 	$core->formNonce().
 	'<input type="submit" value="'.__('ok').'" /></p>'.
Index: admin/comments_actions.php
===================================================================
--- admin/comments_actions.php	(revision 0)
+++ admin/comments_actions.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: admin/dispatcher.php
===================================================================
--- admin/dispatcher.php	(revision 0)
+++ admin/dispatcher.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: admin/index.php
===================================================================
--- admin/index.php	(revision 217)
+++ admin/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -84,5 +84,5 @@
 			$title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) : 
 				($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
-			$__dashboard_icons[$fav['name']] = new ArrayObject(array($title,$fav['url'],$fav['large-icon']));
+			$__dashboard_icons[$fav['name']] = new ArrayObject(array(__($title),$fav['url'],$fav['large-icon']));
 
 			# Let plugins set their own title for favorite on dashboard
@@ -99,5 +99,5 @@
 			$title = ($fav['name'] == 'posts' ? sprintf($str_entries,$post_count) : 
 				($fav['name'] == 'comments' ? sprintf($str_comments,$comment_count) : $fav['title']));
-			$__dashboard_icons[$fav['name']] = new ArrayObject(array($title,$fav['url'],$fav['large-icon']));
+			$__dashboard_icons[$fav['name']] = new ArrayObject(array(__($title),$fav['url'],$fav['large-icon']));
 
 			# Let plugins set their own title for favorite on dashboard
@@ -177,4 +177,9 @@
 $core->callBehavior('adminDashboardItems', $core, $__dashboard_items);
 
+# Dashboard content
+$dashboardContents = '';
+$__dashboard_contents = new ArrayObject(array(new ArrayObject,new ArrayObject));
+$core->callBehavior('adminDashboardContents', $core, $__dashboard_contents);
+
 /* DISPLAY
 -------------------------------------------------------- */
@@ -186,5 +191,5 @@
 );
 
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Dashboard');
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Dashboard').'</span>';
 
 if ($core->auth->getInfo('user_default_blog') != $core->blog->id && $core->auth->blog_count > 1) {
@@ -201,8 +206,15 @@
 }
 
-if (!DC_ADMIN_URL) {
+if (!defined('DC_ADMIN_URL') || !DC_ADMIN_URL) {
 	echo
 	'<p class="static-msg">'.
-	__('DC_ADMIN_URL is not defined, you should edit your configuration file.').
+	'DC_ADMIN_URL '.__('is not defined, you should edit your configuration file.').
+	'</p>';
+}
+
+if (!defined('DC_ADMIN_MAILFROM') || !DC_ADMIN_MAILFROM) {
+	echo
+	'<p class="static-msg">'.
+	'DC_ADMIN_MAILFROM '.__('is not defined, you should edit your configuration file.').
 	'</p>';
 }
@@ -279,6 +291,6 @@
 {
 	echo
-	'<p><a href="'.$i[1].'"><img src="'.$i[2].'" alt="" /></a>'.
-	'<span><a href="'.$i[1].'">'.$i[0].'</a></span></p>';
+	'<p><a href="'.$i[1].'"><img src="'.$i[2].'" alt="" />'.
+	'<br /><span>'.$i[0].'</span></a></p>';
 }
 echo '</div>';
@@ -292,5 +304,6 @@
 			while ($categories->fetch()) {
 				$categories_combo[] = new formSelectOption(
-					str_repeat('&nbsp;&nbsp;',$categories->level-1).'&bull; '.html::escapeHTML($categories->cat_title),
+					str_repeat('&nbsp;&nbsp;',$categories->level-1).
+					($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
 					$categories->cat_id
 				);
@@ -304,13 +317,13 @@
 		'<fieldset>'.
 		'<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
-		form::field('post_title',20,255,'','maximal',2).
+		form::field('post_title',20,255,'','maximal').
 		'</label></p>'.
 		'<p class="area"><label class="required" '.
 		'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
-		form::textarea('post_content',50,7,'','',2).
+		form::textarea('post_content',50,7).
 		'</p>'.
 		'<p><label for="cat_id" class="classic">'.__('Category:').' '.
-		form::combo('cat_id',$categories_combo,'','',2).'</label></p>'.
-		'<p><input type="submit" value="'.__('Save').'" name="save" tabindex="3" /> '.
+		form::combo('cat_id',$categories_combo).'</label></p>'.
+		'<p><input type="submit" value="'.__('Save').'" name="save" /> '.
 		($core->auth->check('publish',$core->blog->id)
 			? '<input type="hidden" value="'.__('save and publish').'" name="save-publish" />'
@@ -329,4 +342,17 @@
 }
 
+foreach ($__dashboard_contents as $i)
+{	
+	if ($i->count() > 0)
+	{
+		$dashboardContents .= '<div>';
+		foreach ($i as $v) {
+			$dashboardContents .= $v;
+		}
+		$dashboardContents .= '</div>';
+	}
+}
+echo ($dashboardContents ? '<div id="dashboard-contents">'.$dashboardContents.'</div>' : '');
+
 echo '</div>';
 
Index: admin/install/check.php
===================================================================
--- admin/install/check.php	(revision 0)
+++ admin/install/check.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 199)
+++ admin/install/index.php	(revision 473)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -191,5 +191,13 @@
 		$core->auth->user_prefs->dashboard->put('dcnews',true,'boolean','',null,true);
 		$core->auth->user_prefs->dashboard->put('quickentry',true,'boolean','',null,true);
-		
+
+		# Add accessibility options
+		$core->auth->user_prefs->addWorkspace('accessibility');
+		$core->auth->user_prefs->accessibility->put('nodragdrop',false,'boolean','',null,true);
+
+		# Add user interface options
+		$core->auth->user_prefs->addWorkspace('interface');
+		$core->auth->user_prefs->interface->put('enhanceduploader',false,'boolean','',null,true);
+
 		# Add default favorites
 		$core->auth->user_prefs->addWorkspace('favorites');
@@ -197,27 +205,27 @@
 		$init_fav = array();
 		
-		$init_fav['new_post'] = array('new_post',__('New entry'),'post.php',
+		$init_fav['new_post'] = array('new_post','New entry','post.php',
 			'images/menu/edit.png','images/menu/edit-b.png',
 			'usage,contentadmin',null,'menu-new-post');
-		$init_fav['posts'] = array('posts',__('Entries'),'posts.php',
+		$init_fav['posts'] = array('posts','Entries','posts.php',
 			'images/menu/entries.png','images/menu/entries-b.png',
 			'usage,contentadmin',null,null);
-		$init_fav['comments'] = array('comments',__('Comments'),'comments.php',
+		$init_fav['comments'] = array('comments','Comments','comments.php',
 			'images/menu/comments.png','images/menu/comments-b.png',
 			'usage,contentadmin',null,null);
-		$init_fav['prefs'] = array('prefs',__('My preferences'),'preferences.php',
+		$init_fav['prefs'] = array('prefs','My preferences','preferences.php',
 			'images/menu/user-pref.png','images/menu/user-pref-b.png',
 			'*',null,null);
-		$init_fav['blog_pref'] = array('blog_pref',__('Blog settings'),'blog_pref.php',
+		$init_fav['blog_pref'] = array('blog_pref','Blog settings','blog_pref.php',
 			'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
 			'admin',null,null);
-		$init_fav['blog_theme'] = array('blog_theme',__('Blog appearance'),'blog_theme.php',
+		$init_fav['blog_theme'] = array('blog_theme','Blog appearance','blog_theme.php',
 			'images/menu/themes.png','images/menu/blog-theme-b.png',
 			'admin',null,null);
 
-		$init_fav['pages'] = array('pages',__('Pages'),'plugin.php?p=pages',
+		$init_fav['pages'] = array('pages','Pages','plugin.php?p=pages',
 			'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png',
 			'contentadmin,pages',null,null);
-		$init_fav['blogroll'] = array('blogroll',__('Blogroll'),'plugin.php?p=blogroll',
+		$init_fav['blogroll'] = array('blogroll','Blogroll','plugin.php?p=blogroll',
 			'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png',
 			'usage,contentadmin',null,null);
@@ -256,7 +264,6 @@
   <title><?php echo __('Dotclear Install'); ?></title>
   
-  <style type="text/css">
-  @import url(../style/install.css); 
-  </style>
+	<link rel="stylesheet" href="../style/install.css" type="text/css" media="screen" /> 
+
   <script type="text/javascript" src="../js/jquery/jquery.js"></script>
   <script type="text/javascript">
@@ -313,18 +320,18 @@
 	'<form action="index.php" method="post">'.
 	'<fieldset><legend>'.__('User information').'</legend>'.
-	'<p><label>'.__('First Name:').' '.
+	'<p><label for="u_firstname">'.__('First Name:').' '.
 	form::field('u_firstname',30,255,html::escapeHTML($u_firstname)).'</label></p>'.
-	'<p><label>'.__('Last Name:').' '.
+	'<p><label for="u_name">'.__('Last Name:').' '.
 	form::field('u_name',30,255,html::escapeHTML($u_name)).'</label></p>'.
-	'<p><label>'.__('Email:').' '.
+	'<p><label for="u_email">'.__('Email:').' '.
 	form::field('u_email',30,255,html::escapeHTML($u_email)).'</label></p>'.
 	'</fieldset>'.
 	
 	'<fieldset><legend>'.__('Username and password').'</legend>'.
-	'<p><label class="required" title="'.__('Required field').'">'.__('Username:').' '.
+	'<p><label for="u_login" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').' '.
 	form::field('u_login',30,32,html::escapeHTML($u_login)).'</label></p>'.
-	'<p><label class="required" title="'.__('Required field').'">'.__('Password:').' '.
+	'<p><label for="u_pwd" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Password:').' '.
 	form::password('u_pwd',30,255).'</label></p>'.
-	'<p><label class="required" title="'.__('Required field').'">'.__('Confirm password:').' '.
+	'<p><label for="u_pwd2" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Confirm password:').' '.
 	form::password('u_pwd2',30,255).'</label></p>'.
 	'</fieldset>'.
Index: admin/install/wizard.php
===================================================================
--- admin/install/wizard.php	(revision 217)
+++ admin/install/wizard.php	(revision 473)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -100,4 +100,5 @@
 		$admin_url = preg_replace('%install/wizard.php$%','',$_SERVER['REQUEST_URI']);
 		writeConfigValue('DC_ADMIN_URL',http::getHost().$admin_url,$full_conf);
+		writeConfigValue('DC_ADMIN_MAILFROM','dotclear@'.$_SERVER['HTTP_HOST'],$full_conf);
 		writeConfigValue('DC_MASTER_KEY',md5(uniqid()),$full_conf);
 		
@@ -138,8 +139,5 @@
   <meta name="GOOGLEBOT" content="NOSNIPPET" />
   <title><?php echo __('Dotclear installation wizard'); ?></title>
-  
-  <style type="text/css">
-  @import url(../style/install.css); 
-  </style>
+	<link rel="stylesheet" href="../style/install.css" type="text/css" media="screen" /> 
 </head>
 
@@ -171,15 +169,15 @@
 
 '<form action="wizard.php" method="post">'.
-'<p><label class="required" title="'.__('Required field').'">'.__('Database type:').' '.
+'<p><label class="required" for="DBDRIVER"><abbr title="'.__('Required field').'">*</abbr> '.__('Database type:').' '.
 form::combo('DBDRIVER',array('MySQL'=>'mysql','PostgreSQL'=>'pgsql'),$DBDRIVER).'</label></p>'.
-'<p><label>'.__('Database Host Name:').' '.
+'<p><label for="DBHOST">'.__('Database Host Name:').' '.
 form::field('DBHOST',30,255,html::escapeHTML($DBHOST)).'</label></p>'.
-'<p><label>'.__('Database Name:').' '.
+'<p><label for="DBNAME">'.__('Database Name:').' '.
 form::field('DBNAME',30,255,html::escapeHTML($DBNAME)).'</label></p>'.
-'<p><label>'.__('Database User Name:').' '.
+'<p><label for="DBUSER">'.__('Database User Name:').' '.
 form::field('DBUSER',30,255,html::escapeHTML($DBUSER)).'</label></p>'.
-'<p><label>'.__('Database Password:').' '.
+'<p><label for="DBPASSWORD">'.__('Database Password:').' '.
 form::password('DBPASSWORD',30,255).'</label></p>'.
-'<p><label class="required" title="'.__('Required field').'">'.__('Database Tables Prefix:').' '.
+'<p><label for="DBPREFIX" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Database Tables Prefix:').' '.
 form::field('DBPREFIX',30,255,html::escapeHTML($DBPREFIX)).'</label></p>'.
 
Index: admin/js/_index.js
===================================================================
--- admin/js/_index.js	(revision 3)
+++ admin/js/_index.js	(revision 454)
@@ -4,12 +4,12 @@
 		var contentTb = new jsToolBar($('#post_content',f)[0]);
 		contentTb.switchMode($('#post_format',f).val());
-		
+
 		$('input[name=save]',f).click(function() {
 			quickPost(f,-2);
 			return false;
 		});
-		
+
 		if ($('input[name=save-publish]',f).length > 0) {
-			var btn = $('<input type="submit" value="' + $('input[name=save-publish]',f).val() + '" tabindex="3" />');
+			var btn = $('<input type="submit" value="' + $('input[name=save-publish]',f).val() + '" />');
 			$('input[name=save-publish]',f).remove();
 			$('input[name=save]',f).after(btn).after(' ');
@@ -19,10 +19,10 @@
 			});
 		}
-		
+
 		function quickPost(f,status) {
 			if (contentTb.getMode() == 'wysiwyg') {
 				contentTb.syncContents('iframe');
 			}
-			
+
 			var params = {
 				f: 'quickPost',
@@ -35,7 +35,7 @@
 				post_lang: $('#post_lang',f).val()
 			}
-			
+
 			$('p.qinfo',f).remove();
-			
+
 			$.post('services.php',params,function(data) {
 				if ($('rsp[status=failed]',data).length > 0) {
@@ -57,13 +57,13 @@
 					}
 				}
-				
+
 				$('fieldset',f).prepend(msg);
 			});
 		}
 	}
-	
+
 	// allow to hide quick entry div, and remember choice
 	$('#quick h3').toggleWithLegend($('#quick').children().not('h3'),{
-		cookie: 'dcx_quick_entry',
-	});
+		cookie: 'dcx_quick_entry'
+	}, positionFooter);
 });
Index: admin/js/_media.js
===================================================================
--- admin/js/_media.js	(revision 224)
+++ admin/js/_media.js	(revision 250)
@@ -17,12 +17,5 @@
 	
 	if (!$.browser.opera) {
-		var cue = $('<a/>').attr({'id':'candyupload-enable','href':'#'}).append(dotclear.msg.activate_enhanced_uploader)
-		.click(function() {
-			candyUploadInit();
-			return false;
-		});
-		$('#media-upload>fieldset').append($('<div></div>').append(cue));
-		
-		if ($.cookie('dc_candy_upl') == 1) {
+		if (dotclear.candyUpload_force_init == '1') {
 			candyUploadInit();
 		}
@@ -43,16 +36,6 @@
 				createControls: function() {
 					var _this = this;
-					var cud = $('<a/>').attr({'id':'candyupload-disable','href':'#'}).append(dotclear.msg.disable_enhanced_uploader)
-					.click(function() {
-						_this.upldr.destroy();
-						_this.ctrl.block.empty().remove();
-						$('#media-upload').show();
-						delete _this;
-						$.cookie('dc_candy_upl','',{expires: -1});
-						return false;
-					});
 					this.ctrl.btn_browse.hide();
 					this.ctrl.msg.html(dotclear.msg.load_enhanced_uploader);
-					this.ctrl.disable = $('<div class="cu-disable"></div>').append(cud).appendTo(this.ctrl.block);
 				},
 				flashReady: function() {
@@ -67,5 +50,4 @@
 						});
 					});
-					this.ctrl.block.append(this.ctrl.disable);
 				},
 				uploadSuccess: function(o,data) {
Index: admin/js/color-picker.js
===================================================================
--- admin/js/color-picker.js	(revision 0)
+++ admin/js/color-picker.js	(revision 499)
@@ -36,5 +36,7 @@
 		span.css('display','block');
 		
-		span.css('width',($(this).width()+12)+'px');
+		/*ligne supprimée car elle ne fait pas le calcul
+		du width de l'input et ça fout la merde */
+		//span.css('width',($(this).width()+12)+'px');
 		span.css('padding','0 5px 0 0');
 		$(this).wrap(span);
@@ -45,5 +47,7 @@
 			position: 'absolute',
 			top: 3,
-			right: 0
+			/* la largeur du span n'étant pas calculée
+			right: 0 crée un affichage pourri. On vire. */
+			//right: 0
 		});
 		
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 163)
+++ admin/js/common.js	(revision 343)
@@ -57,5 +57,5 @@
 }
 
-jQuery.fn.toggleWithLegend = function(target,s, callback) {
+jQuery.fn.toggleWithLegend = function(target,s) {
 	var defaults = {
 		img_on_src: dotclear.img_plus_src,
@@ -79,14 +79,14 @@
 	}
 
-	var toggle = function(i,speed, callback) {
+	var toggle = function(i,speed) {
 		speed = speed || 0;
 		if (p.hide) {
 			$(i).get(0).src = p.img_on_src;
 			$(i).get(0).alt = p.img_on_alt;
-			target.hide(speed, callback);
+			target.hide(speed, positionFooter);
 		} else {
 			$(i).get(0).src = p.img_off_src;
 			$(i).get(0).alt = p.img_off_alt;
-			target.show(speed, callback);
+			target.show(speed, positionFooter);
 			if (p.fn) {
 				p.fn.apply(target);
@@ -122,5 +122,5 @@
 		$(ctarget).css('cursor','pointer');
 		$(ctarget).click(function() {
-			toggle(i,p.speed, callback);
+			toggle(i,p.speed, positionFooter);
 			return false;
 		});
@@ -316,4 +316,29 @@
 };
 
+/* Sticky footer
+-------------------------------------------------------- */
+function positionFooter() {
+	$("#wrapper").css({ overflow: "auto" });
+	var page_height = $("#top").height() + $("#wrapper").height() - $("#footer").height();
+	if( page_height < $(window).height() ){
+		// calcul de la largeur
+		var page_width = $(document).width() - 30;
+		$("#footer").css({
+			position: "absolute",
+			bottom: "10px",
+			width: page_width+"px",
+			padding: ".75em 0",
+			marginbottom: "0"
+		});
+	} else {
+		$("#footer").css({
+			position: "static",
+			padding: ".75em 0",
+			width: "auto"
+		});
+	}
+
+}
+
 /* On document ready
 -------------------------------------------------------- */
@@ -331,18 +356,14 @@
 	}
 	$('#blog-menu h3:first').toggleWithLegend($('#blog-menu ul:first'),
-		$.extend({cookie:'dc_blog_menu'},menu_settings),
-		positionFooter
+		$.extend({cookie:'dc_blog_menu'},menu_settings)
 	);
 	$('#system-menu h3:first').toggleWithLegend($('#system-menu ul:first'),
-		$.extend({cookie:'dc_system_menu'},menu_settings),
-		positionFooter
+		$.extend({cookie:'dc_system_menu'},menu_settings)
 	);
 	$('#plugins-menu h3:first').toggleWithLegend($('#plugins-menu ul:first'),
-		$.extend({cookie:'dc_plugins_menu'},menu_settings),
-		positionFooter
+		$.extend({cookie:'dc_plugins_menu'},menu_settings)
 	);
 	$('#favorites-menu h3:first').toggleWithLegend($('#favorites-menu ul:first'),
-		$.extend({cookie:'dc_favorites_menu',hide:false,reverse_cookie:true},menu_settings),
-		positionFooter
+		$.extend({cookie:'dc_favorites_menu',hide:false,reverse_cookie:true},menu_settings)
 	);
 
@@ -367,28 +388,5 @@
 	// Sticky footer
 	positionFooter();
-	function positionFooter() {
-		$("#wrapper").css({ overflow: "auto" });
-		var page_height = $("#top").height() + $("#wrapper").height() - $("#footer").height();
-		if( page_height < $(window).height() ){
-			// calcul de la largeur
-			var page_width = $(document).width() - 30;
-			$("#footer").css({
-				position: "absolute",
-				bottom: "10px",
-				width: page_width+"px",
-				padding: ".75em 0",
-				marginbottom: "0"
-			});
-		} else {
-			$("#footer").css({
-				position: "static",
-				padding: ".75em 0",
-				width: "auto",
-			});
-		}
-
-	}
 	$(window).resize(positionFooter);
-
 });
 
Index: dmin/js/filters.js
===================================================================
--- admin/js/filters.js	(revision 417)
+++ 	(revision )
@@ -1,5 +1,0 @@
-$(function() {
-	$('#toggle-filters').click(function(e) {
-		$('#filters').toggleClass('hidden');
-	});
-});
Index: admin/js/jquery/jquery.pageTabs.js
===================================================================
--- admin/js/jquery/jquery.pageTabs.js	(revision 0)
+++ admin/js/jquery/jquery.pageTabs.js	(revision 297)
@@ -9,7 +9,7 @@
 		breakerClassName: 'clear'
 	};
-	
+
 	var index = start_tab ? start_tab : 0;
-	
+
 	this.params = jQuery.extend(defaults,settings);
 	this.divs = jQuery('div.'+this.params.className);
@@ -20,10 +20,10 @@
 jQuery._pageTabs.prototype = {
 	items: new Array(),
-	
+
 	createList: function() {
 		if (this.divs.length <= 0) {
 			return;
 		}
-		
+
 		this.block = document.createElement('div');
 		this.block.className = this.params.listClassName;
@@ -32,5 +32,5 @@
 		this.block.appendChild(this.list);
 		var li, a;
-		
+
 		var This = this;
 		var i=0;
@@ -57,30 +57,30 @@
 			}
 		});
-		
+
 		this.breaker = document.createElement('br');
 		this.breaker.className = this.params.breakerClassName;
-		
+
 		jQuery(this.divs.get(0)).before(this.block);
 		jQuery(this.block).after(this.breaker);
 	},
-	
+
 	showDiv: function(index) {
 		var This = this;
 		var i = 0;
 		var to_trigger = null;
-		
+
 		this.divs.each(function() {
 			if ((this.id != '' && this.id == index) || i == index) {
-				jQuery(this).show();
+				jQuery(this).show(0, positionFooter);
 				This.items[i].className = This.params.listClassName+'-active';
 				to_trigger = i;
 			} else {
-				jQuery(this).hide();
+				jQuery(this).hide(0, positionFooter);
 				This.items[i].className = '';
 			}
-			
+
 			i++;
 		});
-		
+
 		if (to_trigger != null) {
 			jQuery(this.divs[to_trigger]).onetabload();
Index: admin/js/prelude.js
===================================================================
--- admin/js/prelude.js	(revision 447)
+++ admin/js/prelude.js	(revision 447)
@@ -0,0 +1,20 @@
+// Accessibility links thks to vie-publique.fr
+aFocus = function() {
+	if(document.getElementById("prelude")) {
+		var aElts = document.getElementById("prelude").getElementsByTagName("A");
+		for (var i=0; i<aElts.length; i++) {
+			aElts[i].className="hidden";
+			aElts[i].onfocus=function() {
+				this.className="";
+			}
+		}
+	}
+}
+// events onload
+function addLoadEvent(func) {
+	if (window.addEventListener)
+		window.addEventListener("load", func, false);
+	else if (window.attachEvent)
+		window.attachEvent("onload", func);
+}
+addLoadEvent(aFocus);
Index: admin/langs.php
===================================================================
--- admin/langs.php	(revision 456)
+++ admin/langs.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -133,5 +133,5 @@
 
 echo
-'<h2>'.__('Languages management').'</h2>';
+'<h2 class="page-title">'.__('Languages management').'</h2>';
 
 if (!empty($_GET['removed'])) {
@@ -173,10 +173,8 @@
 {
 	echo
-	'<table class="clear plugins">'.
-	'<thead><tr>'.
-	'<th scope="col">'.__('Language').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Action').'</th>'.
-	'</tr></thead>'.
-	'<tbody>';
+	'<table class="clear plugins"><tr>'.
+	'<th>'.__('Language').'</th>'.
+	'<th class="nowrap">'.__('Action').'</th>'.
+	'</tr>';
 	
 	foreach ($locales_content as $k => $v)
@@ -186,6 +184,6 @@
 		echo
 		'<tr class="line wide">'.
-		'<th scope="row" class="maximal nowrap">('.$k.') '.
-		'<strong>'.html::escapeHTML($iso_codes[$k]).'</strong></th>'.
+		'<td class="maximal nowrap">('.$k.') '.
+		'<strong>'.html::escapeHTML($iso_codes[$k]).'</strong></td>'.
 		'<td class="nowrap action">';
 		
@@ -204,7 +202,5 @@
 		echo '</td></tr>';
 	}
-	echo
-	'</tbody>'.
-	'</table>';
+	echo '</table>';
 }
 
@@ -232,5 +228,5 @@
 	'Proposed languages are based on your version: %s.'),'<strong>'.DC_VERSION.'</strong>').'</p>'.
 	'<p class="field"><label for="pkg_url" class="classic">'.__('Language:').' '.
-	form::combo('pkg_url',$dc_langs_combo).'</label></p>'.
+	form::combo(array('pkg_url'),$dc_langs_combo).'</label></p>'.
 	'<p class="field"><label for="your_pwd1" class="classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Your password:').' '.
 	form::password(array('your_pwd','your_pwd1'),20,255).'</label></p>'.
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 217)
+++ admin/media.php	(revision 505)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -68,5 +68,4 @@
 	unset($post);
 }
-
 $d = isset($_REQUEST['d']) ? $_REQUEST['d'] : null;
 $dir = null;
@@ -223,5 +222,5 @@
 	call_user_func($open_f,__('Media manager'));
 	
-	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Media manager').' &rsaquo; '.__('confirm removal').'</h2>';
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Media manager').' &rsaquo; <span class="page-title">'.__('confirm removal').'</span></h2>';
 	
 	echo
@@ -242,7 +241,16 @@
 /* DISPLAY Main page
 -------------------------------------------------------- */
+$core->auth->user_prefs->addWorkspace('interface');
+$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
+
 call_user_func($open_f,__('Media manager'),
+	'<script type="text/javascript">'."\n".
+	"//<![CDATA["."\n".
+	dcPage::jsVar('dotclear.candyUpload_force_init',$user_ui_enhanceduploader)."\n".
+	"//]]>".
+	"</script>".
 	dcPage::jsLoad('js/_media.js').
-	($core_media_writable ? dcPage::jsCandyUpload(array('d='.$d)) : ''));
+	(($user_ui_enhanceduploader && $core_media_writable) ? dcPage::jsCandyUpload(array('d='.$d)) : '')
+	);
 
 if (!empty($_GET['mkdok'])) {
@@ -270,6 +278,15 @@
 }
 
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.html::escapeURL($page_url.'&d=').'">'.__('Media manager').'</a>'.
-' / '.(isset($core->media) ? $core->media->breadCrumb(html::escapeURL($page_url).'&amp;d=%s') : '').'</h2>';
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; ';
+if (!isset($core->media)) {
+	echo '<span class="page-title">'.__('Media manager').'</span></h2>';
+} else {
+	$breadcrumb = $core->media->breadCrumb(html::escapeURL($page_url).'&amp;d=%s','<span class="page-title">%s</span>');
+	if ($breadcrumb == '') {
+		echo '<span class="page-title">'.__('Media manager').'</span></h2>';
+	} else {
+		echo '<a href="'.html::escapeURL($page_url.'&d=').'">'.__('Media manager').'</a>'.' / '.$breadcrumb.'</h2>';
+	}
+}
 
 if (!$dir) {
@@ -328,5 +345,5 @@
 	echo
 	'<div class="col"><h3 id="add-file">'.__('Add files').'</h3>'.
-	'<p class="form-note info">'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'.
+	'<p>'.__('Please take care to publish media that you own and that are not protected by copyright.').'</p>'.
 	'<form id="media-upload" class="clear" action="'.html::escapeURL($page_url).'" method="post" enctype="multipart/form-data">'.
 	'<div>'.form::hidden(array('MAX_FILE_SIZE'),DC_MAX_UPLOAD_SIZE).
@@ -337,7 +354,9 @@
 	'<input type="file" id="upfile" name="upfile" size="20" />'.
 	'</label></p>'.
-	'<p><label for="upfiletitle">'.__('Title:').form::field(array('upfiletitle'),35,255).'</label></p>'.
-	'<p><label for="upfilepriv" class="classic">'.form::checkbox(array('upfilepriv'),1).' '.
+	'<p><label for="upfiletitle">'.__('Title:').form::field(array('upfiletitle','upfiletitle'),35,255).'</label></p>'.
+	'<p><label for="upfilepriv" class="classic">'.form::checkbox(array('upfilepriv','upfilepriv'),1).' '.
 	__('Private').'</label></p>'.
+	'<p class="form-help info">'.__('To send several files at the same time, you can activate the enhanced uploader in').
+	'<a href="preferences.php?tab=user-options"> '.__('My preferences').'</a></p>'.
 	'<p><input type="submit" value="'.__('send').'" />'.
 	form::hidden(array('d'),$d).'</p>'.
@@ -352,5 +371,5 @@
 	$core->formNonce().
 	'<p><label for="newdir">'.__('Directory Name:').
-	form::field(array('newdir'),35,255).'</label></p>'.
+	form::field(array('newdir','newdir'),35,255).'</label></p>'.
 	'<p><input type="submit" value="'.__('Save').'" />'.
 	form::hidden(array('d'),html::escapeHTML($d)).'</p>'.
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 217)
+++ admin/media_item.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -182,5 +182,5 @@
 echo '<h2><a href="'.html::escapeURL($media_page_url).'">'.__('Media manager').'</a>'.
 ' / '.$core->media->breadCrumb(html::escapeURL($media_page_url).'&amp;d=%s').
-$file->basename.'</h2>';
+'<span class="page-title">'.$file->basename.'</span></h2>';
 
 # Insertion popup
@@ -394,5 +394,9 @@
 	if ($file->media_image)
 	{ # We look for thumbnails too
-		$media_root = $core->blog->host.path::clean($core->blog->settings->system->public_url).'/';
+		if (preg_match('#^http(s)?://#',$this->core->blog->settings->system->public_url)) {
+			$media_root = $core->blog->settings->system->public_url;
+		} else {
+			$media_root = $core->blog->host.path::clean($core->blog->settings->system->public_url).'/';
+		}
 		foreach ($file->media_thumb as $v) {
 			$v = preg_replace('/^'.preg_quote($media_root,'/').'/','',$v);
Index: admin/permissions.php
===================================================================
--- admin/permissions.php	(revision 217)
+++ admin/permissions.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -98,5 +98,5 @@
 );
 
-echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; '.__('Permissions').'</h2>';
+echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.__('Permissions').'</span></h2>';
 
 if (!empty($_GET['upd'])) {
@@ -145,5 +145,5 @@
 	'<fieldset>'.
 	'<p><label for="your_pwd">'.__('Your password:').
-	form::password('your_pwd',20,255,'','',15).'</label></p>'.
+	form::password('your_pwd',20,255).'</label></p>'.
 	'</fieldset>'.
 	'<p><input type="submit" accesskey="s" value="'.__('Save').'" />'.
Index: admin/permissions_blog.php
===================================================================
--- admin/permissions_blog.php	(revision 456)
+++ admin/permissions_blog.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -90,5 +90,5 @@
 dcPage::open(__('choose a blog'),$starting_script);
 
-echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; '.__('Choose a blog').'</h2>';
+echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.__('Choose a blog').'</span></h2>';
 
 if (!$core->error->flag())
@@ -136,16 +136,61 @@
 	
 	# Show blogs
-	$blogs_list = new adminBlogPermissionsList($core,$rs,$nb_blog);
-	$blogs_list->display($page,$nb_per_page,'<form action="permissions.php" method="post" id="form-blogs">'.
-		'%s'.
+	if ($nb_blog == 0)
+	{
+		echo '<p><strong>'.__('No blog').'</strong></p>';
+	}
+	else
+	{
+		$pager = new pager($page,$nb_blog,$nb_per_page,10);
+		$pager->var_page = 'page';
+		
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		
+		echo
+		'<form action="permissions.php" method="post" id="form-blogs">'.
+		'<table class="clear"><tr>'.
+		'<th colspan="2">'.__('Blog ID').'</th>'.
+		'<th>'.__('Blog name').'</th>'.
+		'<th class="nowrap">'.__('Entries').'</th>'.
+		'<th class="nowrap">'.__('Status').'</th>'.
+		'</tr>';
+		
+		while ($rs->fetch()) {
+			echo blogLine($rs);
+		}
+		
+		echo
+		'</table>'.
+		
 		'<p class="checkboxes-helpers"></p>'.
+		
 		'<p><input type="submit" value="'.__('set permissions').'" />'.
 		$hidden_fields.
 		$core->formNonce().'</p>'.
-		'</form>'
-	);
+		'</form>';
+		
+		echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+	}
 }
 
 dcPage::close();
 
+function blogLine($rs)
+{
+	global $core;
+	
+	$img_status = $rs->blog_status == 1 ? 'check-on' : 'check-off';
+	$txt_status = $GLOBALS['core']->getBlogStatus($rs->blog_status);
+	$img_status = sprintf('<img src="images/%1$s.png" alt="%2$s" title="%2$s" />',$img_status,$txt_status);
+	
+	return
+	'<tr class="line">'.
+	'<td class="nowrap">'.
+	form::checkbox(array('blog_id[]'),$rs->blog_id,'','','',false,'title="'.__('select').' '.$rs->blog_id.'"').'</td>'.
+	'<td class="nowrap">'.$rs->blog_id.'</td>'.
+	'<td class="maximal">'.html::escapeHTML($rs->blog_name).'</td>'.
+	'<td class="nowrap">'.$core->countBlogPosts($rs->blog_id).'</td>'.
+	'<td class="status">'.$img_status.'</td>'.
+	'</tr>';
+}
 ?>
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 0)
+++ admin/plugin.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -83,5 +83,5 @@
 	call_user_func($open_f,__('Plugin not found'));
 	
-	echo '<h2>'.__('Plugin not found').'</h2>';
+	echo '<h2 class="page-title">'.__('Plugin not found').'</h2>';
 	
 	echo '<p>'.__('The plugin you reached does not exist or does not have an admin page.').'</p>';
Index: admin/plugins.php
===================================================================
--- admin/plugins.php	(revision 456)
+++ admin/plugins.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -173,5 +173,5 @@
 
 echo
-'<h2>'.__('Plugins management').'</h2>';
+'<h2 class="page-title">'.__('Plugins management').'</h2>';
 
 if (!empty($_GET['removed'])) {
@@ -227,13 +227,10 @@
 	echo
 	'<h3>'.__('Activated plugins').'</h3>'.
-	'<table class="clear plugins">'.
-	'<caption>'.__('Activated plugin list').'</caption>'.
-	'<thead><tr>'.
-	'<th scope="col">'.__('Plugin').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Version').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Details').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Action').'</th>'.
-	'</tr></thead>'.
-	'<tbody>';
+	'<table class="clear plugins"><tr>'.
+	'<th>'.__('Plugin').'</th>'.
+	'<th class="nowrap">'.__('Version').'</th>'.
+	'<th class="nowrap">'.__('Details').'</th>'.
+	'<th class="nowrap">'.__('Action').'</th>'.
+	'</tr>';
 	
 	foreach ($p_available as $k => $v)
@@ -244,5 +241,5 @@
 		echo
 		'<tr class="line wide">'.
-		'<th scope="row" class="minimal nowrap"><strong>'.html::escapeHTML($k).'</strong></th>'.
+		'<td class="minimal nowrap"><strong>'.html::escapeHTML($k).'</strong></td>'.
 		'<td class="minimal">'.html::escapeHTML($v['version']).'</td>'.
 		'<td class="maximal"><strong>'.html::escapeHTML($v['name']).'</strong> '.
@@ -268,5 +265,4 @@
 	}
 	echo
-	'</tbody>'.
 	'</table>';
 }
@@ -278,11 +274,8 @@
 	echo
 	'<h3>'.__('Deactivated plugins').'</h3>'.
-	'<table class="clear plugins">'.
-	'<caption>'.__('Deactivated plugin list').'</caption>'.
-	'<thead><tr>'.
-	'<th scope="col">'.__('Plugin').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Action').'</th>'.
-	'</tr></thead>'.
-	'<tbody>';
+	'<table class="clear plugins"><tr>'.
+	'<th>'.__('Plugin').'</th>'.
+	'<th class="nowrap">'.__('Action').'</th>'.
+	'</tr>';
 	
 	foreach ($p_disabled as $k => $v)
@@ -293,5 +286,5 @@
 		echo
 		'<tr class="line wide">'.
-		'<th scope="row" class="maximal nowrap"><strong>'.html::escapeHTML($k).'</strong></th>'.
+		'<td class="maximal nowrap"><strong>'.html::escapeHTML($k).'</strong></td>'.
 		'<td class="nowrap action">';
 		
@@ -315,5 +308,4 @@
 	}
 	echo
-	'</tbody>'.
 	'</table>';
 }
Index: admin/popup_link.php
===================================================================
--- admin/popup_link.php	(revision 68)
+++ admin/popup_link.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -21,5 +21,5 @@
 dcPage::openPopup(__('Add a link'),dcPage::jsLoad('js/jsToolBar/popup_link.js'));
 
-echo '<h2>'.__('Add a link').'</h2>';
+echo '<h2 class="page-title">'.__('Add a link').'</h2>';
 
 # Languages combo
Index: admin/popup_posts.php
===================================================================
--- admin/popup_posts.php	(revision 68)
+++ admin/popup_posts.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -33,5 +33,5 @@
 	dcPage::jsLoad('js/jsToolBar/popup_posts.js'));
 
-echo '<h2>'.__('Add a link to an entry').'</h2>';
+echo '<h2 class="page-title">'.__('Add a link to an entry').'</h2>';
 
 echo '<form action="popup_posts.php" method="get">'.
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 456)
+++ admin/post.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -32,6 +32,4 @@
 $post_open_comment = $core->blog->settings->system->allow_comments;
 $post_open_tb = $core->blog->settings->system->allow_trackbacks;
-
-$post_media = array();
 
 $page_title = __('New entry');
@@ -146,5 +144,4 @@
 		try {
 			$core->media = new dcMedia($core);
-			$post_media = $core->media->getPostMedia($post_id);
 		} catch (Exception $e) {}
 	}
@@ -322,5 +319,5 @@
 }
 
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.'<a href="posts.php">'.__('Entries').'</a> &rsaquo; '.$page_title;
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.'<a href="posts.php">'.__('Entries').'</a> &rsaquo; <span class="page-title">'.$page_title.'</span>';
 
 if ($post_id && $post->post_status == 1) {
@@ -363,43 +360,79 @@
 	echo '<div class="multi-part" title="'.__('Edit entry').'" id="edit-entry">';
 	echo '<form action="post.php" method="post" id="entry-form">';
+	echo '<div id="entry-wrapper">';
+	echo '<div id="entry-content"><fieldset class="constrained">';
+	
+	echo
+	'<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
+	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
+	'</label></p>'.
+	
+	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
+	form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)).
+	'</p>'.
+	
+	'<p class="area"><label class="required" '.
+	'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
+	form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)).
+	'</p>'.
+	
+	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
+	form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
+	'</p>';
+	
+	# --BEHAVIOR-- adminPostForm
+	$core->callBehavior('adminPostForm',isset($post) ? $post : null);
+	
+	echo
+	'<p>'.
+	($post_id ? form::hidden('id',$post_id) : '').
+	'<input type="submit" value="'.__('Save').' (s)" '.
+	'accesskey="s" name="save" /> '.
+	($can_delete ? '<input type="submit" class="delete" value="'.__('Delete').'" name="delete" />' : '').
+	$core->formNonce().
+	'</p>';
+	
+	echo '</fieldset></div>';		// End #entry-content
+	echo '</div>';		// End #entry-wrapper
+
 	echo '<div id="entry-sidebar">';
 	
 	echo
 	'<p><label for="cat_id">'.__('Category:').
-	form::combo('cat_id',$categories_combo,$cat_id,'maximal',3).
+	form::combo('cat_id',$categories_combo,$cat_id,'maximal').
 	'</label></p>'.
 	
 	'<p><label for="post_status">'.__('Entry status:').
-	form::combo('post_status',$status_combo,$post_status,'',3,!$can_publish).
+	form::combo('post_status',$status_combo,$post_status,'','',!$can_publish).
 	'</label></p>'.
 	
 	'<p><label for="post_dt">'.__('Published on:').
-	form::field('post_dt',16,16,$post_dt,'',3).
+	form::field('post_dt',16,16,$post_dt).
 	'</label></p>'.
 	
 	'<p><label for="post_format">'.__('Text formating:').
-	form::combo('post_format',$formaters_combo,$post_format,'',3).
+	form::combo('post_format',$formaters_combo,$post_format).
 	'</label>'.
 	'</p>'.
 	'<p>'.($post_id && $post_format != 'xhtml' ? '<a id="convert-xhtml" class="button" href="post.php?id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').'</p>'.
 	
-	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment,'',3).' '.
+	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment).' '.
 	__('Accept comments').'</label></p>'.
-	'<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb,'',3).' '.
+	'<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb).' '.
 	__('Accept trackbacks').'</label></p>'.
-	'<p><label for="post_selected" class="classic">'.form::checkbox('post_selected',1,$post_selected,'',3).' '.
+	'<p><label for="post_selected" class="classic">'.form::checkbox('post_selected',1,$post_selected).' '.
 	__('Selected entry').'</label></p>'.
 	
 	'<p><label for="post_lang">'.__('Entry lang:').
-	form::combo('post_lang',$lang_combo,$post_lang,'',5).
+	form::combo('post_lang',$lang_combo,$post_lang).
 	'</label></p>'.
 	
 	'<p><label for="post_password">'.__('Entry password:').
-	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal',3).
+	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
 	'</label></p>'.
 	
 	'<div class="lockable">'.
 	'<p><label for="post_url">'.__('Basename:').
-	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal',3).
+	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
 	'</label></p>'.
 	'<p class="form-note warn">'.
@@ -408,80 +441,14 @@
 	'</div>';
 	
-	if ($post_id)
-	{
-		echo
-		'<h3 class="clear">'.__('Attachments').'</h3>';
-		foreach ($post_media as $f)
-		{
-			$ftitle = $f->media_title;
-			if (strlen($ftitle) > 18) {
-				$ftitle = substr($ftitle,0,16).'...';
-			}
-			echo
-			'<div class="media-item">'.
-			'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
-			'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
-			'<ul>'.
-			'<li><a class="media-link" href="media_item.php?id='.$f->media_id.'"'.
-			'title="'.$f->basename.'">'.$ftitle.'</a></li>'.
-			'<li>'.$f->media_dtstr.'</li>'.
-			'<li>'.files::size($f->size).' - '.
-			'<a href="'.$f->file_url.'">'.__('open').'</a>'.'</li>'.
-			
-			'<li class="media-action"><a class="attachment-remove" id="attachment-'.$f->media_id.'" '.
-			'href="post_media.php?post_id='.$post_id.'&amp;media_id='.$f->media_id.'&amp;remove=1">'.
-			'<img src="images/check-off.png" alt="'.__('remove').'" /></a>'.
-			'</li>'.
-			
-			'</ul>'.
-			'</div>';
-		}
-		unset($f);
-		
-		if (empty($post_media)) {
-			echo '<p>'.__('No attachment.').'</p>';
-		}
-		echo '<p><a class="button" href="media.php?post_id='.$post_id.'">'.__('Add files to this entry').'</a></p>';
-	}
-	
 	# --BEHAVIOR-- adminPostFormSidebar
 	$core->callBehavior('adminPostFormSidebar',isset($post) ? $post : null);
 	
 	echo '</div>';		// End #entry-sidebar
-	
-	echo '<div id="entry-content"><fieldset class="constrained">';
-	
-	echo
-	'<p class="col"><label class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
-	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal',2).
-	'</label></p>'.
-	
-	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
-	form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt),'',2).
-	'</p>'.
-	
-	'<p class="area"><label class="required" '.
-	'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
-	form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content),'',2).
-	'</p>'.
-	
-	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
-	form::textarea('post_notes',50,5,html::escapeHTML($post_notes),'',2).
-	'</p>';
+
+	echo '</form>';
 	
 	# --BEHAVIOR-- adminPostForm
-	$core->callBehavior('adminPostForm',isset($post) ? $post : null);
-	
-	echo
-	'<p>'.
-	($post_id ? form::hidden('id',$post_id) : '').
-	'<input type="submit" value="'.__('Save').' (s)" tabindex="4" '.
-	'accesskey="s" name="save" /> '.
-	($can_delete ? '<input type="submit" class="delete" value="'.__('Delete').'" name="delete" />' : '').
-	$core->formNonce().
-	'</p>';
-	
-	echo '</fieldset></div>';		// End #entry-content
-	echo '</form>';
+	$core->callBehavior('adminPostAfterForm',isset($post) ? $post : null);
+	
 	echo '</div>';
 	
@@ -491,13 +458,4 @@
 	}
 	
-	if ($post_id && !empty($post_media))
-	{
-		echo
-		'<form action="post_media.php" id="attachment-remove-hide" method="post">'.
-		'<div>'.form::hidden(array('post_id'),$post_id).
-		form::hidden(array('media_id'),'').
-		form::hidden(array('remove'),1).
-		$core->formNonce().'</div></form>';
-	}
 }
 
@@ -527,4 +485,7 @@
 	}
 	
+	# --BEHAVIOR-- adminCommentsActionsCombo
+	$core->callBehavior('adminCommentsActionsCombo',array(&$combo_action));
+	
 	$has_action = !empty($combo_action) && (!$trackbacks->isEmpty() || !$comments->isEmpty());
 	
@@ -608,14 +569,11 @@
 {
 	echo
-	'<table class="comments-list">'.
-	'<caption>'.__('Post comments and trackbacks').'</caption>'.
-	'<thead><tr>'.
-	'<th scope="col" colspan="2">'.__('Author').'</th>'.
-	'<th scope="col">'.__('Date').'</th>'.
-	'<th scope="col" class="nowrap">'.__('IP address').'</th>'.
-	'<th scope="col">'.__('Status').'</th>'.
-	'<th scope="col">&nbsp;</th>'.
-	'</tr></thead>'.
-	'<tbody>';
+	'<table class="comments-list"><tr>'.
+	'<th colspan="2">'.__('Author').'</th>'.
+	'<th>'.__('Date').'</th>'.
+	'<th class="nowrap">'.__('IP address').'</th>'.
+	'<th>'.__('Status').'</th>'.
+	'<th>&nbsp;</th>'.
+	'</tr>';
 	
 	while($rs->fetch())
@@ -645,5 +603,5 @@
 		'<td class="nowrap">'.
 		($has_action ? form::checkbox(array('comments[]'),$rs->comment_id,'','','',0,'title="'.($tb ? __('select this trackback') : __('select this comment')).'"') : '').'</td>'.
-		'<th scope="row" class="maximal">'.html::escapeHTML($rs->comment_author).'</th>'.
+		'<td class="maximal">'.html::escapeHTML($rs->comment_author).'</td>'.
 		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$rs->comment_dt).'</td>'.
 		'<td class="nowrap"><a href="comments.php?ip='.$rs->comment_ip.'">'.$rs->comment_ip.'</a></td>'.
@@ -655,7 +613,5 @@
 	}
 	
-	echo
-	'</tbody>'.
-	'</table>';
+	echo '</table>';
 }
 
Index: admin/post_media.php
===================================================================
--- admin/post_media.php	(revision 70)
+++ admin/post_media.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -61,5 +61,5 @@
 		dcPage::open(__('Remove attachment'));
 		
-		echo '<h2>'.__('Attachment').' &rsaquo; '.__('confirm removal').'</h2>';
+		echo '<h2>'.__('Attachment').' &rsaquo; <span class="page-title">'.__('confirm removal').'</span></h2>';
 		
 		echo
Index: admin/posts.php
===================================================================
--- admin/posts.php	(revision 504)
+++ admin/posts.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -48,4 +48,5 @@
 	# Filter form we'll put in html_block
 	$users_combo = $categories_combo = array();
+	$users_combo['-'] = $categories_combo['-'] = '';
 	while ($users->fetch())
 	{
@@ -62,5 +63,5 @@
 	$categories_combo[__('None')] = 'NULL';
 	while ($categories->fetch()) {
-		$categories_combo[str_repeat('&nbsp;&nbsp;',$categories->level-1).'&bull; '.
+		$categories_combo[str_repeat('&nbsp;&nbsp;',$categories->level-1).($categories->level-1 == 0 ? '' : '&bull; ').
 			html::escapeHTML($categories->cat_title).
 			' ('.$categories->nb_post.')'] = $categories->cat_id;
@@ -68,4 +69,5 @@
 	
 	$status_combo = array(
+	'-' => ''
 	);
 	foreach ($core->blog->getAllPostStatus() as $k => $v) {
@@ -74,13 +76,16 @@
 	
 	$selected_combo = array(
-	__('is selected') => '1',
-	__('is not selected') => '0'
+	'-' => '',
+	__('selected') => '1',
+	__('not selected') => '0'
 	);
 	
 	# Months array
+	$dt_m_combo['-'] = '';
 	while ($dates->fetch()) {
 		$dt_m_combo[dt::str('%B %Y',$dates->ts())] = $dates->year().$dates->month();
 	}
 	
+	$lang_combo['-'] = '';
 	while ($langs->fetch()) {
 		$lang_combo[$langs->post_lang] = $langs->post_lang;
@@ -133,4 +138,15 @@
 /* Get posts
 -------------------------------------------------------- */
+$user_id = !empty($_GET['user_id']) ?	$_GET['user_id'] : '';
+$cat_id = !empty($_GET['cat_id']) ?	$_GET['cat_id'] : '';
+$status = isset($_GET['status']) ?	$_GET['status'] : '';
+$selected = isset($_GET['selected']) ?	$_GET['selected'] : '';
+$month = !empty($_GET['month']) ?		$_GET['month'] : '';
+$lang = !empty($_GET['lang']) ?		$_GET['lang'] : '';
+$sortby = !empty($_GET['sortby']) ?	$_GET['sortby'] : 'post_dt';
+$order = !empty($_GET['order']) ?		$_GET['order'] : 'desc';
+
+$show_filters = false;
+
 $page = !empty($_GET['page']) ? (integer) $_GET['page'] : 1;
 $nb_per_page =  30;
@@ -143,59 +159,70 @@
 }
 
-$params = new ArrayObject();
 $params['limit'] = array((($page-1)*$nb_per_page),$nb_per_page);
 $params['no_content'] = true;
 
-$filterSet = new dcFilterSet('posts','posts.php');
-class monthComboFilter extends comboFilter {
-	public function applyFilter($params) {
-		$month=$this->values[0];
-		$params['post_month'] = substr($month,4,2);
-		$params['post_year'] = substr($month,0,4);
-	}
-}
-$filterSet
-	->addFilter(new comboFilter(
-		'users',__('Author'), 'user_id', $users_combo))
-	->addFilter(new comboFilter(
-		'category',__('Category'), 'cat_id', $categories_combo))
-	->addFilter(new comboFilter(
-		'post_status',__('Status'), 'post_status', $status_combo))
-	->addFilter(new booleanFilter(
-		'post_selected',__('The post :'), 'post_selected', $selected_combo))
-	->addFilter(new comboFilter(
-		'lang',__('Lang'), 'post_lang', $lang_combo))
-	->addFilter(new monthComboFilter(
-		'month',__('Month'), 'post_month', $dt_m_combo,array('singleval' => 1)));
-
-$core->callBehavior('adminPostsFilters',$filterSet);
-
-$filterSet->setValues($_GET);
+# - User filter
+if ($user_id !== '' && in_array($user_id,$users_combo)) {
+	$params['user_id'] = $user_id;
+	$show_filters = true;
+}
+
+# - Categories filter
+if ($cat_id !== '' && in_array($cat_id,$categories_combo)) {
+	$params['cat_id'] = $cat_id;
+	$show_filters = true;
+}
+
+# - Status filter
+if ($status !== '' && in_array($status,$status_combo)) {
+	$params['post_status'] = $status;
+	$show_filters = true;
+}
+
+# - Selected filter
+if ($selected !== '' && in_array($selected,$selected_combo)) {
+	$params['post_selected'] = $selected;
+	$show_filters = true;
+}
+
+# - Month filter
+if ($month !== '' && in_array($month,$dt_m_combo)) {
+	$params['post_month'] = substr($month,4,2);
+	$params['post_year'] = substr($month,0,4);
+	$show_filters = true;
+}
+
+# - Lang filter
+if ($lang !== '' && in_array($lang,$lang_combo)) {
+	$params['post_lang'] = $lang;
+	$show_filters = true;
+}
+
+# - Sortby and order filter
+if ($sortby !== '' && in_array($sortby,$sortby_combo)) {
+	if ($order !== '' && in_array($order,$order_combo)) {
+		$params['order'] = $sortby.' '.$order;
+	}
+	
+	if ($sortby != 'post_dt' || $order != 'desc') {
+		$show_filters = true;
+	}
+}
 
 # Get posts
 try {
-	$nfparams = $params->getArrayCopy();
-	$filtered = $filterSet->applyFilters($params);
-	$core->callBehavior('adminPostsParams',$params);
 	$posts = $core->blog->getPosts($params);
 	$counter = $core->blog->getPosts($params,true);
-	if ($filtered) {
-		$totalcounter = $core->blog->getPosts($nfparams,true);
-		$page_title = sprintf(__('Entries / %s filtered out of %s'),$counter->f(0),$totalcounter->f(0));
-	} else {
-		$page_title = __('Entries');
-	}
 	$post_list = new adminPostList($core,$posts,$counter->f(0));
 } catch (Exception $e) {
 	$core->error->add($e->getMessage());
 }
-
-$filterSet->setColumnsForm($post_list->getColumnsForm());
 
 /* DISPLAY
 -------------------------------------------------------- */
 $starting_script = dcPage::jsLoad('js/_posts_list.js');
-
-$starting_script .= $filterSet->header();
+if (!$show_filters) {
+	$starting_script .= dcPage::jsLoad('js/filter-controls.js');
+}
 
 dcPage::open(__('Entries'),$starting_script);
@@ -204,9 +231,48 @@
 {
 	echo 
-	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_title.'</h2>'.
+	'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Entries').'</span></h2>'.
 	'<p class="top-add"><a class="button add" href="post.php">'.__('New entry').'</a></p>';
-
-	$filterSet->display();
-
+	
+	if (!$show_filters) {
+		echo '<p><a id="filter-control" class="form-control" href="#">'.
+		__('Filters').'</a></p>';
+	}
+	
+	echo
+	'<form action="posts.php" method="get" id="filters-form">'.
+	'<fieldset><legend>'.__('Filters').'</legend>'.
+	'<div class="three-cols">'.
+	'<div class="col">'.
+	'<label for="user_id">'.__('Author:').
+	form::combo('user_id',$users_combo,$user_id).'</label> '.
+	'<label for="cat_id">'.__('Category:').
+	form::combo('cat_id',$categories_combo,$cat_id).'</label> '.
+	'<label for="status">'.__('Status:').
+	form::combo('status',$status_combo,$status).'</label> '.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<label for="selected">'.__('Selected:').
+	form::combo('selected',$selected_combo,$selected).'</label> '.
+	'<label for="month">'.__('Month:').
+	form::combo('month',$dt_m_combo,$month).'</label> '.
+	'<label for="lang">'.__('Lang:').
+	form::combo('lang',$lang_combo,$lang).'</label> '.
+	'</div>'.
+	
+	'<div class="col">'.
+	'<p><label for="sortby">'.__('Order by:').
+	form::combo('sortby',$sortby_combo,$sortby).'</label> '.
+	'<label for="order">'.__('Sort:').
+	form::combo('order',$order_combo,$order).'</label></p>'.
+	'<p><label for="nb" class="classic">'.	form::field('nb',3,3,$nb_per_page).' '.
+	__('Entries per page').'</label></p> '.
+	'<p><input type="submit" value="'.__('Apply filters').'" /></p>'.
+	'</div>'.
+	'</div>'.
+	'<br class="clear" />'. //Opera sucks
+	'</fieldset>'.
+	'</form>';
+	
 	# Show posts
 	$post_list->display($page,$nb_per_page,
@@ -218,8 +284,17 @@
 	'<p class="col checkboxes-helpers"></p>'.
 	
-	'<p class="col right"><span class="filter-title">'.__('Selected entries action:').'</span> '.
+	'<p class="col right"><label for="action" class="classic">'.__('Selected entries action:').'</label> '.
 	form::combo('action',$combo_action).
 	'<input type="submit" value="'.__('ok').'" /></p>'.
-	$filterSet->getFormFieldsAsHidden().
+	form::hidden(array('user_id'),$user_id).
+	form::hidden(array('cat_id'),$cat_id).
+	form::hidden(array('status'),$status).
+	form::hidden(array('selected'),$selected).
+	form::hidden(array('month'),$month).
+	form::hidden(array('lang'),$lang).
+	form::hidden(array('sortby'),$sortby).
+	form::hidden(array('order'),$order).
+	form::hidden(array('page'),$page).
+	form::hidden(array('nb'),$nb_per_page).
 	$core->formNonce().
 	'</div>'.
Index: admin/posts_actions.php
===================================================================
--- admin/posts_actions.php	(revision 217)
+++ admin/posts_actions.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -207,5 +207,5 @@
 if ($action == 'category')
 {
-	echo '<h2>'.__('Change category for entries').'</h2>';
+	echo '<h2 class="page-title">'.__('Change category for entries').'</h2>';
 	
 	# categories list
@@ -216,5 +216,6 @@
 		while ($categories->fetch()) {
 			$categories_combo[] = new formSelectOption(
-				str_repeat('&nbsp;&nbsp;',$categories->level-1).'&bull; '.html::escapeHTML($categories->cat_title),
+				str_repeat('&nbsp;&nbsp;',$categories->level-1).
+				($categories->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($categories->cat_title),
 				$categories->cat_id
 			);
@@ -237,5 +238,5 @@
 elseif ($action == 'author' && $core->auth->check('admin',$core->blog->id))
 {
-	echo '<h2>'.__('Change author for entries').'</h2>';
+	echo '<h2 class="page-title">'.__('Change author for entries').'</h2>';
 	
 	echo
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 190)
+++ admin/preferences.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -34,7 +34,13 @@
 
 $core->auth->user_prefs->addWorkspace('accessibility');
-$user_dm_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
-
-$default_tab = 'user-profile';
+$user_acc_nodragdrop = $core->auth->user_prefs->accessibility->nodragdrop;
+
+$core->auth->user_prefs->addWorkspace('interface');
+$user_ui_enhanceduploader = $core->auth->user_prefs->interface->enhanceduploader;
+if ($core->auth->isSuperAdmin()) {
+	$user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
+}
+
+$default_tab = !empty($_GET['tab']) ? html::escapeHTML($_GET['tab']) : 'user-profile';
 
 if (!empty($_GET['append']) || !empty($_GET['removed']) || !empty($_GET['neworder']) || !empty($_GET['replaced'])) {
@@ -42,4 +48,7 @@
 } elseif (!empty($_GET['updated'])) {
 	$default_tab = 'user-options';
+}
+if (($default_tab != 'user-profile') && ($default_tab != 'user-options') && ($default_tab != 'user-favorites')) {
+	$default_tab = 'user-profile';
 }
 
@@ -144,5 +153,10 @@
 		$core->auth->user_prefs->dashboard->put('dcnews',!empty($_POST['user_dm_dcnews']),'boolean');
 		$core->auth->user_prefs->dashboard->put('quickentry',!empty($_POST['user_dm_quickentry']),'boolean');
-		$core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_dm_nodragdrop']),'boolean');
+		$core->auth->user_prefs->accessibility->put('nodragdrop',!empty($_POST['user_acc_nodragdrop']),'boolean');
+		$core->auth->user_prefs->interface->put('enhanceduploader',!empty($_POST['user_ui_enhanceduploader']),'boolean');
+		if ($core->auth->isSuperAdmin()) {
+			# Applied to all users
+			$core->auth->user_prefs->interface->put('hide_std_favicon',!empty($_POST['user_ui_hide_std_favicon']),'boolean',null,true,true);
+		}
 		
 		# Udate user
@@ -292,5 +306,5 @@
 dcPage::open($page_title,
 	dcPage::jsLoad('js/_preferences.js').
-	($user_dm_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
+	($user_acc_nodragdrop ? '' : dcPage::jsLoad('js/_preferences-dragdrop.js')).
 	dcPage::jsLoad('js/jquery/jquery-ui-1.8.12.custom.min.js').
 	dcPage::jsPageTabs($default_tab).
@@ -320,5 +334,5 @@
 }
 
-echo '<h2>'.$page_title.'</h2>';
+echo '<h2 class="page-title">'.$page_title.'</h2>';
 
 # User profile
@@ -331,17 +345,17 @@
 '<div class="col">'.
 '<p><label for="user_name">'.__('Last Name:').
-form::field('user_name',20,255,html::escapeHTML($user_name),'',2).'</label></p>'.
+form::field('user_name',20,255,html::escapeHTML($user_name)).'</label></p>'.
 
 '<p><label for="user_firstname">'.__('First Name:').
-form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',3).'</label></p>'.
+form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).'</label></p>'.
 
 '<p><label for="user_displayname">'.__('Display name:').
-form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',4).'</label></p>'.
+form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).'</label></p>'.
 
 '<p><label for="user_email">'.__('Email:').
-form::field('user_email',20,255,html::escapeHTML($user_email),'',5).'</label></p>'.
+form::field('user_email',20,255,html::escapeHTML($user_email)).'</label></p>'.
 
 '<p><label for="user_url">'.__('URL:').
-form::field('user_url',30,255,html::escapeHTML($user_url),'',6).'</label></p>'.
+form::field('user_url',30,255,html::escapeHTML($user_url)).'</label></p>'.
 
 '</div>'.
@@ -350,8 +364,8 @@
 
 '<p><label for="user_lang">'.__('User language:').
-form::combo('user_lang',$lang_combo,$user_lang,'l10n',10).'</label></p>'.
+form::combo('user_lang',$lang_combo,$user_lang,'l10n').'</label></p>'.
 
 '<p><label for="user_tz">'.__('User timezone:').
-form::combo('user_tz',dt::getZones(true,true),$user_tz,'',11).'</label></p>'.
+form::combo('user_tz',dt::getZones(true,true),$user_tz).'</label></p>'.
 
 '</div>'.
@@ -367,8 +381,8 @@
 	
 	'<p><label for="new_pwd">'.__('New password:').
-	form::password('new_pwd',20,255,'','',30).'</label></p>'.
+	form::password('new_pwd',20,255).'</label></p>'.
 	
 	'<p><label for="new_pwd_c">'.__('Confirm password:').
-	form::password('new_pwd_c',20,255,'','',31).'</label></p>'.
+	form::password('new_pwd_c',20,255).'</label></p>'.
 	'</fieldset>'.
 	
@@ -376,5 +390,5 @@
 	'<p>'.__('If you want to change your email or password you must provide your current password.').'</p>'.
 	'<p><label for="cur_pwd">'.__('Your password:').
-	form::password('cur_pwd',20,255,'','',32).'</label></p>'.
+	form::password('cur_pwd',20,255).'</label></p>'.
 	'</fieldset>';
 }
@@ -383,5 +397,5 @@
 '<p class="clear">'.
 $core->formNonce().
-'<input type="submit" accesskey="s" value="'.__('Save').'" tabindex="33" /></p>'.
+'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
 '</form>';
 
@@ -396,15 +410,29 @@
 
 '<p><label for="user_post_format">'.__('Preferred format:').
-form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',7).'</label></p>'.
+form::combo('user_post_format',$formaters_combo,$user_options['post_format']).'</label></p>'.
 
 '<p><label for="user_post_status">'.__('Default entry status:').
-form::combo('user_post_status',$status_combo,$user_post_status,'',8).'</label></p>'.
+form::combo('user_post_status',$status_combo,$user_post_status).'</label></p>'.
 
 '<p><label for="user_edit_size">'.__('Entry edit field height:').
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',9).'</label></p>'.
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).'</label></p>'.
 
 '<p><label for="user_wysiwyg" class="classic">'.
-form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg'],'',12).' '.
+form::checkbox('user_wysiwyg',1,$user_options['enable_wysiwyg']).' '.
 __('Enable WYSIWYG mode').'</label></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>';
+
+if ($core->auth->isSuperAdmin()) {
+	echo
+	'<p><label for="user_ui_hide_std_favicon" class="classic">'.
+	form::checkbox('user_ui_hide_std_favicon',1,$user_ui_hide_std_favicon).' '.
+	__('Do not use standard favicon').'</label></p>'.
+	'<p class="clear form-note info">'.__('This will be applied for all users').'</p>';
+}
+
+echo 
 '<br class="clear" />'. //Opera sucks
 '</fieldset>';
@@ -413,6 +441,6 @@
 '<fieldset><legend>'.__('Accessibility options').'</legend>'.
 
-'<p><label for="user_dm_nodragdrop" class="classic">'.
-form::checkbox('user_dm_nodragdrop',1,$user_dm_nodragdrop,'',13).' '.
+'<p><label for="user_acc_nodragdrop" class="classic">'.
+form::checkbox('user_acc_nodragdrop',1,$user_acc_nodragdrop).' '.
 __('Disable javascript powered drag and drop for ordering items').'</label></p>'.
 
@@ -424,13 +452,13 @@
 
 '<p><label for="user_dm_doclinks" class="classic">'.
-form::checkbox('user_dm_doclinks',1,$user_dm_doclinks,'',14).' '.
+form::checkbox('user_dm_doclinks',1,$user_dm_doclinks).' '.
 __('Display documentation links').'</label></p>'.
 
 '<p><label for="user_dm_dcnews" class="classic">'.
-form::checkbox('user_dm_dcnews',1,$user_dm_dcnews,'',15).' '.
+form::checkbox('user_dm_dcnews',1,$user_dm_dcnews).' '.
 __('Display Dotclear news').'</label></p>'.
 
 '<p><label for="user_dm_quickentry" class="classic">'.
-form::checkbox('user_dm_quickentry',1,$user_dm_quickentry,'',16).' '.
+form::checkbox('user_dm_quickentry',1,$user_dm_quickentry).' '.
 __('Display quick entry form').'</label></p>'.
 
@@ -444,5 +472,5 @@
 '<p class="clear">'.
 $core->formNonce().
-'<input type="submit" accesskey="s" value="'.__('Save').'" tabindex="33" /></p>'.
+'<input type="submit" accesskey="s" value="'.__('Save').'" /></p>'.
 '</form>';
 
@@ -469,5 +497,5 @@
 				form::field(array('order['.$k.']'),2,3,$count,'position','',false,'title="'.sprintf(__('position of %s'),$fav['title']).'"').
 				form::hidden(array('dynorder[]','dynorder-'.$k.''),$k).
-				'<label for="fuk-'.$k.'">'.form::checkbox(array('remove[]','fuk-'.$k),$k).$fav['title'].'</label>'.
+				'<label for="fuk-'.$k.'">'.form::checkbox(array('remove[]','fuk-'.$k),$k).__($fav['title']).'</label>'.
 				'</li>';
 		}
@@ -512,5 +540,5 @@
 			$count++;
 			echo '<li id="fd-'.$k.'">'.
-			'<img src="'.$fav['small-icon'].'" alt="" /> '.$fav['title'].'</li>';
+			'<img src="'.$fav['small-icon'].'" alt="" /> '.__($fav['title']).'</li>';
 		}
 	}
@@ -525,8 +553,8 @@
 $array = $_fav;
 function cmp($a,$b) {
-    if ($a[1] == $b[1]) {
+    if (__($a[1]) == __($b[1])) {
         return 0;
     }
-    return ($a[1] < $b[1]) ? -1 : 1;
+    return (__($a[1]) < __($b[1])) ? -1 : 1;
 }
 $array=$array->getArrayCopy();
@@ -538,6 +566,6 @@
 		echo '<li id="fa-'.$fav[0].'">'.'<label for="fak-'.$fav[0].'">'.
 			form::checkbox(array('append[]','fak-'.$fav[0]),$k).
-			'<img src="'.$fav[3].'" alt="" /> '.'<span class="zoom"><img src="'.$fav[4].'" alt="" /></span>'.$fav[1].
-			'</label>'.'</li>';
+			'<img src="'.$fav[3].'" alt="" /> '.'<span class="zoom"><img src="'.$fav[4].'" alt="" /></span>'.
+			__($fav[1]).'</label>'.'</li>';
 	}
 }	
Index: admin/search.php
===================================================================
--- admin/search.php	(revision 125)
+++ admin/search.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -73,5 +73,5 @@
 
 echo
-'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Search').'</h2>'.
+'<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Search').'</span></h2>'.
 '<form action="search.php" method="get">'.
 '<fieldset><legend>'.__('Search options').'</legend>'.
Index: admin/services.php
===================================================================
--- admin/services.php	(revision 0)
+++ admin/services.php	(revision 323)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -133,6 +133,5 @@
 			$rsp->comment_ip($rs->comment_ip);
 			$rsp->comment_email($rs->comment_email);
-			# --BEHAVIOR-- adminAfterCommentDesc
-			$rsp->comment_spam_disp($core->callBehavior('adminAfterCommentDesc', $rs));
+			$rsp->comment_spam_disp(dcAntispam::statusMessage($rs));
 		}
 		
Index: admin/style/default.css
===================================================================
--- admin/style/default.css	(revision 453)
+++ admin/style/default.css	(revision 500)
@@ -11,6 +11,8 @@
 # -- END LICENSE BLOCK -----------------------------------------
 */
+
+/* ------------------------------------------------------------------ html */
 body {
-	font: 76%/1.5em Helvetica,Arial,sans-serif;
+	font: 75%/1.5em Helvetica,Arial,sans-serif;
 	color: #333;
 	background: #f5f5f5;
@@ -21,6 +23,4 @@
 	background: #fff;
 }
-
-a img,:link img,:visited img { border:none }
 
 a, a:link, a:visited {
@@ -32,4 +32,7 @@
 	text-decoration: underline;
 }
+a img, a:link img, a:visited img { 
+	border:none;
+}
 
 h1, h2, h3, h4, h5, h6, p {
@@ -37,5 +40,4 @@
 	margin-bottom: 0.6em;
 }
-
 h2 {
 	color: #666;
@@ -43,14 +45,14 @@
 	padding: 4px 0;
 }
-
+.page-title {
+	color: #d30e60;
+}
 h3 {
 	color: #333;
 	font-size: 1.2em;
 }
-
 p, div.p {
 	margin: 0 0 1em 0;
 }
-
 hr {
 	height: 1px;
@@ -59,5 +61,4 @@
 	border-style: solid;
 }
-
 pre, code {
 	font: 100% "Andale Mono","Courier New",monospace;
@@ -80,9 +81,30 @@
 /* LAYOUT
 -------------------------------------------------------- */
-
+/* prelude */
+#prelude {
+	background: #575859;
+	line-height: 1.8em;
+	margin: 0;
+	overflow: hidden;
+	}
+#prelude li {
+	list-style-type: none;
+	margin: 0 1em 0 0;
+	background:transparent;
+	}
+#prelude a {
+	color:#fff;
+	}
+/* header */
+#header {
+	background: #575859;
+	height: 3em;
+	position: relative;
+}
 #top {
 	margin: 0;
 	padding: 0;
-	background: #575859 url(dc_bg.png) repeat-x 0 3em;
+	width: 13em;
+	float: left;
 }
 #top h1 {
@@ -103,49 +125,57 @@
 	color: #fff;
 }
-
-#info-box {
+#info-boxes {
 	background: #575859;
-	position: absolute;
-	left: 13em;
-	top: 3px;
-	margin: 0;
-	padding: 3px 3px 4px 0;
+	font-size: .95em;
+	height: 3em;
+}
+#info-box1 {
+	margin: 0;
+	padding: .5em 3px 4px 0;
 	color: #fff;
+	float: left;
+	background: #575859;
 }
 #info-box2 {
+	margin: .1em 0 0 0;
+	padding: .5em 1em 4px 0;
+	color: #fff;
+	float: right;
+	text-align: right;
 	background: #575859;
-	position: absolute;
-	right: 1em;
-	top: 3px;
-	margin: 0;
-	padding: 3px 3px 4px 0;
-	color: #fff;
-}
-#info-box div, #info-box2 div {
-	margin: 0; padding: 0;
-}
-#info-box div div, #info-box2 div div {
-	display: inline;
-}
-#info-box>form>div, #info-box2>form>div {
-	line-height: 1.5;
-}
-#info-box select {
-	width: 20em;
-}
-#info-box a img, #info-box2 a img {
+	height: 2em;
+}
+#info-box1 select {
+	width: 15em;
+}
+#info-box1 a img, #info-box2 a img {
 	vertical-align: middle;
 	padding-left: .3em;
 	}
-#info-box a, #info-box2 a {
+#info-box1 a, #info-box2 a {
 	background: #575859;
 	font-weight: bold;
 	color: #fff;
 	border-bottom-color: #ccc;
-}
-#info-box a {
-	margin-left: 2em;
-}
-
+	margin-left: .3em;
+	margin-right: .3em;
+	white-space: nowrap;
+	font-weight: normal;
+}
+#info-box1 a {
+	margin-left: 1.33em;
+}
+#info-box2 a.active {
+	border-bottom-color: #f5f5f5;
+	margin: 0;
+	padding: 1.2em .5em;
+	background-color: #f5f5f5;
+	color: #333;
+	font-weight: bold;
+}
+#info-box2 span {
+	color: #575859;
+}
+/* prelude */
 #wrapper {
 	width: 100%;
@@ -169,16 +199,86 @@
 	#content:before, #content:after {content:"";display:table;}
 	#content:after {clear:both;}
-
+/* -------------------------------------------------- layout - multipart */
+.three-cols {
+}
+.three-cols .col {
+	width: 32.3%;
+	float: left;
+	margin-left: 1%;
+}
+.three-cols .col:first-child {
+	width: 33.3%;
+	margin-left: 0;
+}
+.two-cols {
+	position: static;
+}
+.two-cols .col {
+	width: 49%;
+	margin-left: 2%;
+	float: left;
+}
+.two-cols .col:first-child {
+	width: 49%;
+	margin-left: 0;
+}
+.two-cols .col70{
+	width: 69%;
+	margin-left: 0;
+	float: left;
+}
+.two-cols .col30 {
+	width: 28%;
+	margin-left: 2%;
+	float: left;
+}
+/* -------------------------------------------------------------- layout - onglets */
+.part-tabs ul {
+	padding: .3em 0 1px 1em;
+	border-bottom: 1px solid #999;
+}
+.part-tabs li {
+	list-style: none;
+	margin: 0;
+	display: inline;
+}
+.part-tabs li a {
+	padding: .3em 0.5em;
+	margin-right: .5em;
+	border: 1px solid #999;
+	border-bottom: none;
+	background: #dfdfdf;
+	text-decoration: none;
+	-webkit-border-top-left-radius: .3em;
+	-webkit-border-top-right-radius: .3em;
+	-moz-border-radius-topleft: .3em;
+	-moz-border-radius-topright: .3em;
+	border-top-left-radius: .3em;
+	border-top-right-radius: .3em;
+	color: #000;
+}
+.part-tabs li.part-tabs-link a {
+	background: #ffe;
+}
+.part-tabs li a:hover, .part-tabs li a:focus {
+	color: #000;
+	background: #fff;
+	border-bottom-color: #fff;
+}
+.part-tabs li.part-tabs-active a {
+	background: #fff;
+	border-bottom: 1px solid #fff;
+	color: #000;
+	font-weight: bold;
+}
+/* ------------------------------------------------------------------ main-menu */
 #main-menu {
 	width: 13em;
 	float: left;
-	margin-top: 1em;
+	margin-top: 1.2em;
 	margin-bottom: 1em;
 }
-#main-menu * {
-}
-
 #main-menu h3 {
-	margin: 0 0 0.5em 0;
+	margin: 0 0 0.5em;
 	padding: .5em 0 0 .5em;
 	text-transform: uppercase;
@@ -194,5 +294,5 @@
 #main-menu li {
 	display: block;
-	margin: 0.5em 0 0 0;
+	margin: 0.5em 0 0;
 	padding: .2em 0 0 32px;
 	background-repeat: no-repeat;
@@ -206,5 +306,5 @@
 	color: #333;
 }
-#main-menu li.active {
+#main-menu .active {
 	background-color: #fff;
 	padding: .4em 0 .1em 32px;
@@ -214,8 +314,23 @@
 	margin-right: -1px;
 }
-#main-menu #dashboard-menu li {
-	margin-left: 0;
-}
-
+#favorites-menu {
+	margin: 0 0 2em;
+}
+#favorites-menu h3 {
+	color: #333;
+	text-transform: none;
+}
+#favorites-menu a {
+	color: #000;
+	font-weight: normal;
+}
+#favorites-menu .active {
+	background-color: transparent;
+	border: none;
+}
+#favorites-menu .active a {
+	font-weight: bold;
+}
+/* ------------------------------------------------------------------ footer */
 #footer {
 	clear: both;
@@ -241,27 +356,36 @@
 	font-weight: normal;
 }
-
-#debug {
-	position: absolute;
-	top: 0;
+/* ---------------------------------------------------------------------------- auth.php */
+#login-screen {
+	display: block;
+	width: 18em;
+	margin: 1.5em auto 0;
+	font-size: 1.1em;
+}
+#login-screen h1 {
+	text-indent: -2000px;
+	background: transparent url(dotclear-logo2.png) no-repeat top left;
+	height: 50px;
+	margin-bottom: .5em;
+	margin-left: .5em;
+}
+#login-screen fieldset {
+	border: 1px solid #999;
+	padding: 1em 1em 0 1em;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+}
+#login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] {
 	width: 100%;
-	height: 4px;
-	background: #d99;
-}
-#debug div {
-	display: none;
-	padding: 3px 0.5em 2px;
-}
-#debug p {
-	margin: 0.5em 0;
-}
-#debug:hover {
-	height: auto;
-}
-#debug:hover div {
-	display: block;
-}
-
-/* DASHBOARD */
+}
+#login-screen #issue {
+	margin-left: 1em;
+	font-size: 1em;
+}
+#login-screen #issue strong {font-weight: normal;}
+
+
+/* ------------------------------------------------------------------ dashboard */
 #dashboard-main {
 	float: left;
@@ -275,10 +399,10 @@
 	float: none;
 }
-#dashboard-main #icons {
+#icons {
 	overflow: hidden;
 	padding-bottom: 1em;
 	text-align: center;
 }
-#dashboard-main #icons p {
+#icons p {
 	width: 210px;
 	text-align: center;
@@ -286,23 +410,27 @@
 	display:inline-block;
 }
-#dashboard-main #icons span {
-	display: block;
-}
-#dashboard-main #icons a {
-	border-bottom-width: 0;
-}
-#dashboard-main #icons span a {
-	border-bottom-width: 1px;
-}
-
-#dashboard-main #quick {
+#icons a,
+#icons a:link,
+#icons a:visited,
+#icons a:hover,
+#icons a:focus {
+	border-bottom-width: 0px;
+	text-decoration: none;
+}
+#icons a span {
+	border-bottom: 1px dotted #f90;
+}
+#icons a:focus span, #icons a:hover span {
+	text-decoration: underline;
+}
+#quick {
 	clear: left;
 	margin-top: 2em;
 }
-#dashboard-main #quick h3 {
+#quick h3 {
 	margin-bottom: 0.2em;
 	font-size: 1.2em;
 }
-#dashboard-main #quick p.qinfo {
+#quick p.qinfo {
 	margin: -.7em -1em 1em;
 	background: #eef url(info.png) no-repeat .2em .2em;
@@ -311,5 +439,4 @@
 	color: #666;
 }
-
 #dashboard-items {
 	float: left;
@@ -319,5 +446,5 @@
 	padding-top: 3em;
 }
-#dashboard-items p img {
+#dashboard-items img {
 	vertical-align: middle;
 }
@@ -331,12 +458,12 @@
 	color: #666;
 }
-#dashboard-items #news dt {
+#news dt {
 	font-weight: bold;
 	margin: 0 0 0.4em 0;
 }
-#dashboard-items #news dd {
+#news dd {
 	margin: 0 0 1em 0;
 }
-#dashboard-items #news dd p {
+#news dd p {
 	margin: 0.2em 0 0 0;
 }
@@ -350,18 +477,21 @@
 	color: #fff;
 }
-
-/* POST */
+/* ------------------------------------------------------------------ post */
+#entry-wrapper {
+	float: left;
+	width: 100%;
+	margin-right: -18em;
+}
+#entry-content {
+	margin-right: 18em;
+}
 #entry-sidebar {
 	width: 17em;
 	float: right;
 }
-#entry-content {
-	margin-right: 18em;
-}
 #comments {
 	clear: both;
 }
-
-/* CATEGORIES */
+/* ------------------------------------------------------------------ categories */
 #categories {
 	margin: 1em 0 2em;
@@ -372,5 +502,5 @@
 	padding: 0;
 }
-#categories ul li {
+#categories li {
 	margin: .5em 0;
 	padding: .3em 1.5em;
@@ -381,11 +511,11 @@
 	border-radius: .3em;
 }
-#categories ul li h4 {
-	margin: 0;
-}
-#categories ul li h4 span {
+#categories h4 {
+	margin: 0;
+}
+#categories h4 span {
 	font-weight: normal;
 }
-#categories ul li p {
+#categories li p {
 	margin: 0;
 }
@@ -393,6 +523,5 @@
 	width: 100%;
 }
-
-/* MEDIA */
+/* ------------------------------------------------------------------ media */
 #media-icon {
 	float: left;
@@ -417,5 +546,4 @@
 	height: 500px;
 }
-
 #add-file-f {
 	position: relative;
@@ -428,6 +556,52 @@
 	border: none;
 }
-
-/* favorites */
+.media-list {
+	position: static;
+}
+.media-col-0 {
+	clear: left;
+}
+.media-item {
+	position: relative;
+	border-top: 1px solid #ccc;
+	margin-bottom: 1em;
+	padding: 5px 0;
+}
+div.media-list .media-item {
+	width: 49%;
+	float: left;
+	margin-right: 1%;
+}
+a.media-icon {
+	display: block;
+	border-bottom: none;
+	float: left;
+}
+.media-icon img {
+	display: block;
+}
+.media-item ul {
+	display: block;
+	list-style: none;
+	margin: 0 0 0 60px;
+	padding: 0;
+}
+li.media-action {
+	display: block;
+	position: absolute;
+	top: 5px;
+	right: 5px;
+	height: 16px;
+}
+li.media-action a {
+	border: none;
+}
+li.media-action form {
+	display: inline;
+}
+li.media-action input {
+	border: none;
+}
+/* ------------------------------------------------------------------ preferences */
 #my-favs ul {
 	list-style-type: none;
@@ -436,5 +610,5 @@
 	line-height: 1.2;
 }
-#my-favs ul li {
+#my-favs li {
 	display: block;
 	float: left;
@@ -455,10 +629,8 @@
 	display: inline;
 }
-
 #default-favs h3 {
 	margin-top: 2em;
 	margin-bottom: 1em;
 }
-
 .fav-list {
 	list-style-type: none;
@@ -472,5 +644,5 @@
 	position: relative;
 }
-.fav-list li img {
+.fav-list img {
 	vertical-align: middle;
 	margin-right: .2em;
@@ -491,6 +663,130 @@
 	border-radius: .5em;
 }
-
-/* Help */
+/* -------------------------------------------------------------------- Themes */
+#themes {
+	border-bottom: 1px solid #ccc;
+	margin: 1em 0;
+}
+#themes div.theme-details {
+	clear: left;
+	border-top: 1px solid #ccc;
+	padding: 1em 0;
+}
+#themes div.theme-details:hover {
+	background: #eee;
+}
+#themes div.theme-details div.theme-shot {
+	float: left;
+}
+#themes div.theme-details div.theme-shot img {
+	display: block;
+	width: 57px;
+	height: 50px;
+	border: 1px solid #ccc;
+}
+#themes div.theme-details div.theme-info {
+	margin-left: 67px;
+}
+#themes div.theme-details div.theme-info span.theme-desc {
+	display: block;
+}
+#themes div.theme-details div.theme-info span.theme-version {
+	color: #666;
+}
+#themes div.theme-details div.theme-actions {
+	margin-left: 67px;
+}
+/* Themes list, JS version */
+#themes-wrapper {
+}
+#theme-box {
+	border: 1px solid #999;
+	border-left: none;
+	padding: 5px;
+	float: right;
+	height: 420px;
+	width: 320px;
+	overflow: auto;
+}
+#theme-box div.theme-shot img {
+	display: block;
+	margin: 0 0 0 10px;
+	width: 280px;
+	height: 245px;
+	border: 1px solid #ccc;
+}
+#theme-box div.theme-info {
+	margin: 1em 0 0 10px;
+}
+#theme-box h3 {
+	margin: 0;
+}
+#theme-box div.theme-info span {
+	display: block;
+}
+#theme-box span.theme-version {
+	color: #666;
+}
+#theme-box span.theme-parent-ok {
+	color: #666;
+}
+#theme-box span.theme-parent-missing {
+	color: #c00;
+	font-weight:bold;
+}
+#theme-box div.theme-actions {
+	margin-left: 10px;
+}
+#themes-wrapper #themes {
+	border: 1px solid #999;
+	overflow: auto;
+	height: 420px;
+	padding: 5px;
+	margin: 0;
+}
+#themes div.theme-details-js {
+	float: left;
+	width: 120px;
+	height: 150px;
+	margin: 0 10px 20px;
+	padding: 10px 10px 0;
+	text-align: center;
+	background: #f3f3f3;
+	border: 1px solid #f3f3f3;
+	cursor: pointer;
+	-moz-border-radius: 4px;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+}
+#themes div.theme-details-js label {
+	cursor: pointer;
+}
+#themes div.theme-details-js.theme-selected {
+	background: #E5E3DA;
+	border: 1px solid #999;
+}
+#themes div.theme-details-js div.theme-shot img {
+	width: 120px;
+	height: 105px;
+	border: 1px solid #fff;
+}
+#themes div.theme-details-js h3 {
+	font-family: inherit;
+	font-weight: normal;
+	margin: 0;
+	padding: 0;
+}
+/* ----------------------------------------------------------  Plugins list */
+#plugins td.action {
+	vertical-align: middle;
+}
+
+select.l10n option {
+	padding-left: 16px;
+}
+option.avail10n {
+	background: transparent url(../images/check-on.png) no-repeat 0 50%;
+}
+/* ------------------------------------------------------------------ contextual help */
 #help {
 	margin-top: 2em;
@@ -539,8 +835,16 @@
 	padding: 0 5px 1em 5px;
 }
-
-/* POPUP */
+.help-content dt {
+	font-weight: bold;
+	color: #626262;
+	margin: 0;
+}
+.help-content dd {
+	margin: 0.3em 0 1.5em 0;
+}
+/* ------------------------------------------------------------------ popups */
 body.popup #wrapper, body.popup #top {
 	margin-top: -1.5em;
+	float: none;
 }
 body.popup #top h1 {
@@ -562,9 +866,55 @@
 	border: none;
 }
-
-/* CLASSES
--------------------------------------------------------- */
-
-/* -------------- paragraphe pour bouton Nouveau bidule ----------- */
+/* ------------------------------------------------------------------ messages */
+div.error, p.error, 
+div.message, p.message, 
+div.static-msg, p.static-msg {
+	padding: 0.5em 0.5em 0.5em 40px;
+	margin-bottom: 1em;
+	-moz-border-radius: 8px;
+	-webkit-border-radius: 8px;
+	border-radius: 8px;
+}
+p.error, p.message, p.static-msg {
+	padding-top: 1em;
+	padding-bottom: 1em;
+}
+div.error, p.error {
+	background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
+	color: #600;
+}
+div.message, p.message, 
+div.static-msg, p.static-msg {
+	background: #666 url(msg-std.png) no-repeat 5px 5px;
+	color: #fff;
+}
+div.message a, p.message a, 
+div.static-msg a, p.static-msg a {
+	color: #fff;
+}
+/* ------------------------------------------------------------------ debug */
+#debug {
+	position: absolute;
+	top: 0;
+	width: 100%;
+	height: 4px;
+	background: #d99;
+}
+#debug div {
+	display: none;
+	padding: 3px 0.5em 2px;
+}
+#debug p {
+	margin: 0.5em 0;
+}
+#debug:hover {
+	height: auto;
+}
+#debug:hover div {
+	display: block;
+}
+/* -------------------------------------------------------------------- CLASSES COMMUNES */
+
+/* paragraphe pour bouton Nouveau bidule */
 p.top-add {
 	text-align: right;
@@ -579,5 +929,4 @@
 	vertical-align: middle;
 }
-
 /* Si quelque chose a besoin d'être caché sauf pour les revues d'écran */
 .hidden {
@@ -591,15 +940,4 @@
     overflow: hidden;
     }
-
-/* -------------- aide ----------- */
-.help-content dt {
-	font-weight: bold;
-	color: #626262;
-	margin: 0;
-}
-.help-content dd {
-	margin: 0.3em 0 1.5em 0;
-}
-
 .clear {
 	clear: both;
@@ -625,40 +963,13 @@
 	overflow: auto;
 }
-
 .grid {
 	background: transparent repeat url('grid.png') 0 0;
 }
-
 .line p {
 	margin: 0;
 }
-
-div.error, p.error, div.message, p.message, div.static-msg, p.static-msg {
-	padding: 0.5em 0.5em 0.5em 40px;
-	margin-bottom: 1em;
-	-moz-border-radius: 8px;
-	-webkit-border-radius: 8px;
-	border-radius: 8px;
-}
-p.error, p.message, p.static-msg {
-	padding-top: 1em;
-	padding-bottom: 1em;
-}
-div.error, p.error {
-	background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
-	color: #600;
-}
-div.message, p.message, div.static-msg, p.static-msg {
-	background: #666 url(msg-std.png) no-repeat 5px 5px;
-	color: #fff;
-}
-div.message a, p.message a, div.static-msg a, p.static-msg a {
-	color: #fff;
-}
-
 .offline {
 	color: #666;
 }
-
 ul.nice {
 	margin: 1em 0;
@@ -670,39 +981,9 @@
 	padding: 0;
 }
-
-.three-cols {
-}
-.three-cols .col {
-	width: 32.3%;
-	float: left;
-	margin-left: 1%;
-}
-.three-cols .col:first-child {
-	width: 33.3%;
-	margin-left: 0;
-}
-.two-cols {
-	position: static;
-}
-.two-cols .col {
-	width: 49%;
-	margin-left: 2%;
-	float: left;
-}
-.two-cols .col:first-child {
-	width: 49%;
-	margin-left: 0;
-}
-.two-cols .col70{
-	width: 69%;
-	margin-left: 0;
-	float: left;
-}
-.two-cols .col30 {
-	width: 28%;
-	margin-left: 2%;
-	float: left;
-}
-
+.zip-dl {
+	background: transparent url(package.png) no-repeat 0 50%;
+	padding: 5px 0 5px 20px;
+}
+/* pas trouvé dans le code */
 .comment {
 	border-top: 2px solid #ccc;
@@ -717,224 +998,4 @@
 	right: 0;
 }
-
-/* -------- onglets ------ */
-.part-tabs ul {
-	padding: .3em 0 1px 1em;
-	border-bottom: 1px solid #999;
-}
-.part-tabs li {
-	list-style: none;
-	margin: 0;
-	display: inline;
-}
-.part-tabs li a {
-	padding: .3em 0.5em;
-	margin-right: .5em;
-	border: 1px solid #999;
-	border-bottom: none;
-	background: #dfdfdf;
-	text-decoration: none;
-	-webkit-border-top-left-radius: .3em;
-	-webkit-border-top-right-radius: .3em;
-	-moz-border-radius-topleft: .3em;
-	-moz-border-radius-topright: .3em;
-	border-top-left-radius: .3em;
-	border-top-right-radius: .3em;
-	color: #000;
-}
-.part-tabs li.part-tabs-link a {
-	background: #ffe;
-}
-.part-tabs li a:hover, .part-tabs li a:focus {
-	color: #000;
-	background: #fff;
-	border-bottom-color: #fff;
-}
-.part-tabs li.part-tabs-active a {
-	background: #fff;
-	border-bottom: 1px solid #fff;
-	color: #000;
-	font-weight: bold;
-}
-
-/* Themes list */
-#themes {
-	border-bottom: 1px solid #ccc;
-	margin: 1em 0;
-}
-#themes div.theme-details {
-	clear: left;
-	border-top: 1px solid #ccc;
-	padding: 1em 0;
-}
-#themes div.theme-details:hover {
-	background: #eee;
-}
-#themes div.theme-details div.theme-shot {
-	float: left;
-}
-#themes div.theme-details div.theme-shot img {
-	display: block;
-	width: 57px;
-	height: 50px;
-	border: 1px solid #ccc;
-}
-#themes div.theme-details div.theme-info {
-	margin-left: 67px;
-}
-#themes div.theme-details div.theme-info span.theme-desc {
-	display: block;
-}
-#themes div.theme-details div.theme-info span.theme-version {
-	color: #666;
-}
-#themes div.theme-details div.theme-actions {
-	margin-left: 67px;
-}
-/* Themes list, JS version */
-#themes-wrapper {
-}
-#theme-box {
-	border: 1px solid #999;
-	border-left: none;
-	padding: 5px;
-	float: right;
-	height: 420px;
-	width: 320px;
-	overflow: auto;
-}
-#theme-box div.theme-shot img {
-	display: block;
-	margin: 0 0 0 10px;
-	width: 280px;
-	height: 245px;
-	border: 1px solid #ccc;
-}
-#theme-box div.theme-info {
-	margin: 1em 0 0 10px;
-}
-#theme-box h3 {
-	margin: 0;
-}
-#theme-box div.theme-info span {
-	display: block;
-}
-#theme-box span.theme-version {
-	color: #666;
-}
-#theme-box span.theme-parent-ok {
-	color: #666;
-}
-#theme-box span.theme-parent-missing {
-	color: #c00;
-	font-weight:bold;
-}
-#theme-box div.theme-actions {
-	margin-left: 10px;
-}
-#themes-wrapper #themes {
-	border: 1px solid #999;
-	overflow: auto;
-	height: 420px;
-	padding: 5px;
-	margin: 0;
-}
-#themes div.theme-details-js {
-	float: left;
-	width: 120px;
-	height: 150px;
-	margin: 0 10px 20px;
-	padding: 10px 10px 0;
-	text-align: center;
-	background: #f3f3f3;
-	border: 1px solid #f3f3f3;
-	cursor: pointer;
-	-moz-border-radius: 4px;
-	-webkit-border-radius: 4px;
-	border-radius: 4px;
-}
-#themes div.theme-details-js label {
-	cursor: pointer;
-}
-#themes div.theme-details-js.theme-selected {
-	background: #E5E3DA;
-	border: 1px solid #999;
-}
-#themes div.theme-details-js div.theme-shot img {
-	width: 120px;
-	height: 105px;
-	border: 1px solid #fff;
-}
-#themes div.theme-details-js h3 {
-	font-family: inherit;
-	font-weight: normal;
-	margin: 0;
-	padding: 0;
-}
-
-/* Plugins list */
-#plugins td.action {
-	vertical-align: middle;
-}
-.media-list {
-	position: static;
-}
-.media-col-0 {
-	clear: left;
-}
-.media-item {
-	position: relative;
-	border-top: 1px solid #ccc;
-	margin-bottom: 1em;
-	padding: 5px 0;
-}
-div.media-list .media-item {
-	width: 49%;
-	float: left;
-	margin-right: 1%;
-}
-a.media-icon {
-	display: block;
-	border-bottom: none;
-	float: left;
-}
-.media-icon img {
-	display: block;
-}
-.media-item ul {
-	display: block;
-	list-style: none;
-	margin: 0 0 0 60px;
-	padding: 0;
-}
-li.media-action {
-	display: block;
-	position: absolute;
-	top: 5px;
-	right: 5px;
-	height: 16px;
-}
-li.media-action a {
-	border: none;
-}
-li.media-action form {
-	display: inline;
-}
-li.media-action input {
-	border: none;
-}
-
-.zip-dl {
-	background: transparent url(package.png) no-repeat 0 50%;
-	padding: 5px 0 5px 20px;
-}
-
-select.l10n option {
-	padding-left: 16px;
-}
-option.avail10n {
-	background: transparent url(../images/check-on.png) no-repeat 0 50%;
-}
-
 /* TABLES
 -------------------------------------------------------- */
@@ -944,8 +1005,4 @@
 	margin: 0 0 1em 0;
 }
-table caption {
-	position: absolute;
-	left: -9999px;
-}
 tr.line:hover {
 	background: #ddd;
@@ -958,18 +1015,11 @@
 	vertical-align: top;
 }
-thead th {
+th {
 	text-align: left;
 	border-bottom-color: #666;
 }
-tbody th {
-	text-align: left;
-	font-weight: normal;
-	border-bottom-color: #ccc;
-}
-
 .noborder td, td.noborder, .noborder th, th.noborder {
 	border-width: 0;
 }
-
 table .maximal, table.maximal {
 	width: 100%;
@@ -978,10 +1028,8 @@
 	width: 1px;
 }
-
 table .nowrap {
 	white-space: nowrap;
 	vertical-align: top;
 }
-
 td.status {
 	vertical-align: middle;
@@ -1023,16 +1071,5 @@
 }
 
-div.pagination {
-	padding-bottom: 1em;
-}
-div.pagination a {
-	margin: 0 0.3em 0 0.3em;
-}
-div.pagination span{
-	margin: 0 1em 0 1em;
-}
-
-/* FORMS
--------------------------------------------------------- */
+/* ----------------------------------------------------------------- FORMS */
 form {
 	display: block;
@@ -1040,5 +1077,4 @@
 	padding: 0;
 }
-
 fieldset {
 	display: block;
@@ -1066,5 +1102,4 @@
 	font-weight: normal;
 }
-
 input, textarea, select {
 	background: #f9f9f9;
@@ -1093,5 +1128,4 @@
 	background: transparent;
 }
-
 label {
 	display: block;
@@ -1099,7 +1133,4 @@
 label input, label select, label span {
 	display: block;
-}
-#filters label {
-	display: inline;
 }
 p.form-note {
@@ -1136,5 +1167,4 @@
 	width: 100%;
 }
-
 label.required {
 	font-weight: bold;
@@ -1161,5 +1191,4 @@
 	top: 0;
 }
-
 label .maximal, textarea.maximal, input.maximal {
 	width: 100%;
@@ -1173,5 +1202,4 @@
 	padding-left: 20px;
 }
-
 fieldset.constrained {
 	margin: 0;
@@ -1181,34 +1209,5 @@
 }
 
-#login-screen {
-	display: block;
-	width: 18em;
-	margin: 1.5em auto 0;
-	font-size: 1.1em;
-}
-#login-screen h1 {
-	text-indent: -2000px;
-	background: transparent url(dotclear-logo2.png) no-repeat top left;
-	height: 50px;
-	margin-bottom: .5em;
-}
-#login-screen fieldset {
-	border: 1px solid #999;
-	padding: 1em 1em 0 1em;
-	-moz-border-radius: 4px;
-	-webkit-border-radius: 4px;
-	border-radius: 4px;
-}
-#login-screen input[type=text], #login-screen input[type=password], #login-screen input[type=submit] {
-	width: 100%;
-}
-#login-screen #issue {
-	margin-left: 1em;
-	font-size: 1em;
-}
-#login-screen #issue strong {font-weight: normal;}
-
-
-/* ------------------  Tous les boutons -------------------- */
+/* --------------------------------------------------------------- buttons */
 h2 a.button {
 	color: #333;
@@ -1322,23 +1321,2 @@
 	background-color: #2373A8;
 }
-
-form#filters {font-size: 100%; background: #f0f0f0; padding: 1em; border-radius: .5em; border: 1px solid #ddd;}
-form#filters .margintop {padding-top: 1.33em;}
-form#filters ul {list-style-type:none;margin: 0; padding: 0; margin-left: 1em;}
-form#filters .col30 {border-left: 1px solid #999;}
-form#filters .col30 h3 {margin-left: 1em;}
-p.line, li.line { position: relative; padding: 3px 0 0 28px; margin: 0 0 1em 0;}
-li.line input[type=submit] {position: absolute; left:0;top:0; padding: 0 .1em; margin: 0;}
-li.line input[type=checkbox], li.line input[type=checkbox] {position: absolute; left: 0; top: .2em; padding: 0 .1em; margin: 0;}
-li.line select { margin-right: 2em;}
-li.line label { display: block; width: 8em; float: left;}
-li.line label img {margin-right: 8px;}
-li.line span.or {
-	text-align: right;
-	margin-left: 5em;
-	font-weight: bold;
-}
-p.line label.or + select {margin-left: 2em;}
-li.line { padding: 0 0 0 20px; height: 1em;}
-li.line label {width: auto;}
-#available_filters input[type=submit] {padding: 0 .1em; margin-left: .5em;}
Index: admin/style/install.css
===================================================================
--- admin/style/install.css	(revision 69)
+++ admin/style/install.css	(revision 269)
@@ -7,10 +7,11 @@
 */
 body.install {
-	font: 0.8em "DejaVu Sans","Lucida Grande","Lucida Sans Unicode",Arial,sans-serif;
+	font: 0.875em Helvetica,Arial,sans-serif;
 	color: #000;
 	background-color: #fff;
+	line-height: 1.5em;
 }
 body.install #content {
-	width:500px;
+	width:32em;
 	margin:1em auto;
 }
@@ -20,4 +21,5 @@
 	-moz-border-radius:8px;
 	-webkit-border-radius:8px;
+	border-radius: 8px;
 }
 body.install h1,h2 {
@@ -40,10 +42,9 @@
 }
 body.install label {
-	font-weight: bold;
 	color: #555;
 }
 
 body.install .msg {
-	padding:10px 10px 10px 42px;
+	padding:10px 10px 10px 60px;
 	-moz-border-radius:8px;
 	-webkit-border-radius:8px;
@@ -55,7 +56,15 @@
 	background: #eef url(install/note.png) no-repeat 10px 10px;
 }
+a, a:link, a:visited {
+	color: #2373A8;
+	text-decoration: none;
+	border-bottom: 1px dotted #f90;
+}
+a:hover, a:active, a:focus {
+	text-decoration: underline;
+}
 
 div.error, p.error, div.message, p.message, div.static-msg, p.static-msg {
-	padding: 0.5em 0.5em 0.5em 40px;
+	padding: 0.5em 0.5em 0.5em 60px;
 	margin-bottom: 1em;
 	-moz-border-radius: 8px;
@@ -67,9 +76,9 @@
 }
 div.error, p.error {
-	background: #e5bfbf url(msg-error.png) no-repeat 5px 5px;
+	background: #e5bfbf url(install/process_warning.png) no-repeat 5px 5px;
 	color: #600;
 }
 div.message, p.message, div.static-msg, p.static-msg {
-	background: #666 url(msg-std.png) no-repeat 5px 5px;
+	background: #666 url(install/note.png) no-repeat 5px 5px;
 	color: #fff;
 }
@@ -87,7 +96,7 @@
 	font-weight : bold;
 }
-label.required:before {
-	content : '* ';
-	color : #c00;
+label.required abbr {
+	color: #dd0000;
+	font-size: 1.3em;
 }
 
@@ -123,2 +132,31 @@
 	-webkit-border-radius: 2px;
 }
+
+input[type=submit]{
+	font-size: 1.05em;
+	display: inline-block;
+	outline: none;
+	cursor: pointer;
+	text-align: center;
+	text-decoration: none;
+	padding: .1em .5em;
+	text-shadow: 0 1px 1px rgba(0,0,0,.3);
+	-webkit-border-radius: .2em;
+	-moz-border-radius: .2em;
+	border-radius: .2em;
+	margin-bottom: .1em;
+	color: #fff;
+	border: 1px solid #2373A8;
+	background: #2373A8;
+	background: -webkit-gradient(linear, left top, left bottom, from(#2C8FD1), to(#2373A8));
+	background: -moz-linear-gradient(top,  #2C8FD1,  #2373A8);
+	width: 100%;
+}
+input[type=submit]:hover,
+input[type=submit]:focus {
+	background: #2373A8;
+	background: -webkit-gradient(linear, left top, left bottom, from(#2373A8), to(#2C8FD1));
+	background: -moz-linear-gradient(top,  #2373A8,  #2C8FD1);
+	filter:  progid:DXImageTransform.Microsoft.gradient(startColorstr='#2373A8', endColorstr='#2C8FD1');
+	border: 1px solid #2C8FD1;
+}
Index: admin/trackbacks.php
===================================================================
--- admin/trackbacks.php	(revision 196)
+++ admin/trackbacks.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: admin/update.php
===================================================================
--- admin/update.php	(revision 166)
+++ admin/update.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: admin/user.php
===================================================================
--- admin/user.php	(revision 181)
+++ admin/user.php	(revision 501)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -96,4 +96,8 @@
 		$cur->user_post_status = $user_post_status = $_POST['user_post_status'];
 		
+		if ($cur->user_id == $core->auth->userID() && $core->auth->isSuperAdmin()) {
+			// force super_user to true if current user
+			$cur->user_super = $user_super = true;
+		}
 		if ($core->auth->allowPassChange()) {
 			$cur->user_change_pwd = !empty($_POST['user_change_pwd']) ? 1 : 0;
@@ -177,5 +181,5 @@
 }
 
-echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; '.$page_title.'</h2>';
+echo '<h2><a href="users.php">'.__('Users').'</a> &rsaquo; <span class="page-title">'.$page_title.'</span></h2>';
 
 if ($user_id == $core->auth->userID()) {
@@ -191,5 +195,5 @@
 '<div class="col">'.
 '<p><label for="user_id" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Username:').' '.
-form::field('user_id',20,255,html::escapeHTML($user_id),'',2).
+form::field('user_id',20,255,html::escapeHTML($user_id)).
 '</label></p>'.
 '<p class="form-note">'.__('At least 2 characters using letters, numbers or symbols.').'</p>'.
@@ -198,5 +202,5 @@
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').
 ($user_id != '' ? __('New password:') : __('Password:')).' '.
-form::password('new_pwd',20,255,'','',3).
+form::password('new_pwd',20,255).
 '</label></p>'.
 '<p class="form-note">'.__('Password must contain at least 6 characters.').'</p>'.
@@ -204,46 +208,47 @@
 '<p><label for="new_pwd_c" '.($user_id != '' ? '' : 'class="required"').'>'.
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Confirm password:').' '.
-form::password('new_pwd_c',20,255,'','',4).
+form::password('new_pwd_c',20,255).
 '</label></p>'.
 
 '<p><label for="user_name">'.__('Last Name:').' '.
-form::field('user_name',20,255,html::escapeHTML($user_name),'',5).
+form::field('user_name',20,255,html::escapeHTML($user_name)).
 '</label></p>'.
 
 '<p><label for="user_firstname">'.__('First Name:').' '.
-form::field('user_firstname',20,255,html::escapeHTML($user_firstname),'',6).
+form::field('user_firstname',20,255,html::escapeHTML($user_firstname)).
 '</label></p>'.
 
 '<p><label for="user_displayname">'.__('Display name:').' '.
-form::field('user_displayname',20,255,html::escapeHTML($user_displayname),'',7).
+form::field('user_displayname',20,255,html::escapeHTML($user_displayname)).
 '</label></p>'.
 
 '<p><label for="user_email">'.__('Email:').' '.
-form::field('user_email',20,255,html::escapeHTML($user_email),'',8).
-'</label></p>'.
+form::field('user_email',20,255,html::escapeHTML($user_email)).
+'</label></p>'.
+'<p class="form-note">'.__('Mandatory for password recovering procedure.').'</p>'.
 '</div>'.
 
 '<div class="col">'.
 '<p><label for="user_url">'.__('URL:').' '.
-form::field('user_url',30,255,html::escapeHTML($user_url),'',9).
+form::field('user_url',30,255,html::escapeHTML($user_url)).
 '</label></p>'.
 '<p><label for="user_post_format">'.__('Preferred format:').' '.
-form::combo('user_post_format',$formaters_combo,$user_options['post_format'],'',10).
+form::combo('user_post_format',$formaters_combo,$user_options['post_format']).
 '</label></p>'.
 
 '<p><label for="user_post_status">'.__('Default entry status:').' '.
-form::combo('user_post_status',$status_combo,$user_post_status,'',11).
-'</label></p>'.
-
-'<p><label>'.__('Entry edit field height:').' '.
-form::field('user_edit_size',5,4,(integer) $user_options['edit_size'],'',12).
-'</label></p>'.
-
-'<p><label for="user_edit_size">'.__('User language:').' '.
-form::combo('user_lang',$lang_combo,$user_lang,'l10n',13).
+form::combo('user_post_status',$status_combo,$user_post_status).
+'</label></p>'.
+
+'<p><label for="user_edit_size">'.__('Entry edit field height:').' '.
+form::field('user_edit_size',5,4,(integer) $user_options['edit_size']).
+'</label></p>'.
+
+'<p><label for="user_lang">'.__('User language:').' '.
+form::combo('user_lang',$lang_combo,$user_lang,'l10n').
 '</label></p>'.
 
 '<p><label for="user_tz">'.__('User timezone:').' '.
-form::combo('user_tz',dt::getZones(true,true),$user_tz,'',14).
+form::combo('user_tz',dt::getZones(true,true),$user_tz).
 '</label></p>';
 
@@ -251,10 +256,12 @@
 	echo
 	'<p><label for="user_change_pwd" class="classic">'.
-	form::checkbox('user_change_pwd','1',$user_change_pwd,'',15).' '.
+	form::checkbox('user_change_pwd','1',$user_change_pwd).' '.
 	__('Password change required to connect').'</label></p>';
 }
 
+$super_disabled = $user_super && $user_id == $core->auth->userID();
+
 echo
-'<p><label for="user_super" class="classic">'.form::checkbox('user_super','1',$user_super,'',16).' '.
+'<p><label for="user_super" class="classic">'.form::checkbox('user_super','1',$user_super,'','',$super_disabled).' '.
 __('Super administrator').'</label></p>'.
 '</div>'.
@@ -269,7 +276,7 @@
 '<p><label for="your_pwd" '.($user_id != '' ? '' : 'class="required"').'>'.
 ($user_id != '' ? '' : '<abbr title="'.__('Required field').'">*</abbr> ').__('Your password:').
-form::password('your_pwd',20,255,'','',17).'</label></p>'.
+form::password('your_pwd',20,255).'</label></p>'.
 '</fieldset>'.
-'<p class="clear"><input type="submit" accesskey="s" value="'.__('Save').'" tabindex="16" />'.
+'<p class="clear"><input type="submit" accesskey="s" value="'.__('Save').'" />'.
 ($user_id != '' ? form::hidden('id',$user_id) : '').
 $core->formNonce().
Index: admin/users.php
===================================================================
--- admin/users.php	(revision 158)
+++ admin/users.php	(revision 501)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -24,6 +24,7 @@
 			# --BEHAVIOR-- adminBeforeUserDelete
 			$core->callBehavior('adminBeforeUserDelete',$u);
-			
-			$core->delUser($u);
+			if ($u != $core->auth->userID()) {
+				$core->delUser($u);
+			}
 		}
 		catch (Exception $e)
@@ -32,5 +33,4 @@
 		}
 	}
-	
 	if (!$core->error->flag()) {
 		http::redirect('users.php?del=1');
@@ -118,5 +118,5 @@
 	
 	echo 
-	'<h2>'.__('Users').'</h2>'.
+	'<h2 class="post-title">'.__('Users').'</h2>'.
 	'<p class="top-add"><strong><a class="button add" href="user.php">'.__('Create a new user').'</a></strong></p>';
 	
Index: admin/xmlrpc.php
===================================================================
--- admin/xmlrpc.php	(revision 0)
+++ admin/xmlrpc.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: build-tools/make-l10n.php
===================================================================
--- build-tools/make-l10n.php	(revision 0)
+++ build-tools/make-l10n.php	(revision 270)
@@ -6,5 +6,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: build-tools/min-js.php
===================================================================
--- build-tools/min-js.php	(revision 0)
+++ build-tools/min-js.php	(revision 270)
@@ -5,5 +5,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: nc/admin/class.dc.filter.php
===================================================================
--- inc/admin/class.dc.filter.php	(revision 453)
+++ 	(revision )
@@ -1,516 +1,0 @@
-<?php
-# ***** BEGIN LICENSE BLOCK *****
-# This file is part of DotClear "MyPostTypes" plugin.
-# Copyright (c) 2010 Bruno Hondelatte, and contributors. 
-# Many, many thanks to Olivier Meunier and the Dotclear Team.
-# All rights reserved.
-#
-# MyPostTypes plugin for DC2 is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# DotClear is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with DotClear; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-#
-# ***** END LICENSE BLOCK *****
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief Dotclear FilterSet class.
-
-Dotclear FilterSet handles filters and columns when displaying items lists.
-*/
-class dcFilterSet {
-
-	protected $filters;			/// <b>array</b> lists of defined filters
-	protected $form_prefix;		/// <b>string</b> displayed form prefix
-	protected $action; 			/// <b>string</b> form action page
-	protected $hideform;		/// <b>boolean</b> start form display hidden by default or not
-	protected $columns_form;	/// <b>string</b> columns form
-	protected $name;			/// <b>string</b> fieldset name
-	/**
-	Inits dcFilterSet object
-	
-	@param	core		<b>dcCore</b>		Dotclear core reference
-	@param	form_prefix	<b>string</b>		form prefix to use for parameters
-	*/
-	public function __construct($name,$action,$form_prefix="f_") {
-		$this->name = $name;
-		$this->form_prefix=$form_prefix;
-		$this->filters = array();
-		$this->action = $action;
-	}
-
-	/**
-	Adds a new filter to list
-	
-	@param	filter		<b>dcFilter</b>		the filter to add
-	*/
-	public function addFilter (Filter $filter) {
-		$filter->setFormPrefix($this->form_prefix);
-		$this->filters[$filter->id] = $filter;
-		return $this;
-	}
-	
-	/**
-	Saves user filters to preferences
-	*/
-	protected function saveFilters() {
-		$ser = array();
-		$ws = $GLOBALS['core']->auth->user_prefs->addWorkspace('filters');
-		foreach($this->filters as $filter) {
-			$ser[$filter->id]=$filter->serialize();
-		}
-		$ws->put($this->name,serialize($ser),'string');
-	}
-	
-	/**
-	Loads user filters from preferences
-	*/
-	protected function loadFilters() {
-		$ws = $GLOBALS['core']->auth->user_prefs->addWorkspace('filters');
-		
-		$settings = !is_null($ws->{$this->name}) ? unserialize($ws->{$this->name}) : array();
-		foreach($settings as $k => $v) {
-			$this->filters[$k]->unserialize($v);
-		}
-	}
-	
-	/**
-	Updates filters values according to form_data
-	To be called before any call to display() or getForm()
-	
-	@param	form_data	<b>array</b>	form values (usually $_GET or $_POST)
-	*/
-	public function setValues ($form_data) {
-		$this->hideform = true;
-		if (isset($form_data['clear_filters'])) {
-			$this->saveFilters();
-			return;
-		}
-		if (!isset($form_data['apply'])) {
-			$this->loadFilters();
-		}
-		foreach ($this->filters as $filter) {
-			$filter->setValues ($form_data);
-			if ($filter->isEnabled()) {
-				$this->hideform=false;
-			}
-		}
-		if (isset($form_data['apply'])) {
-			if (trim($form_data['apply']) == '+'
-				&& isset($form_data['add_filter']) 
-				&& isset($this->filters[$form_data['add_filter']])) {
-				$this->filters[$form_data['add_filter']]->add();
-				$this->hideform=false;
-			}
-		}
-		$this->saveFilters();
-	}
-	
-	/**
-	Defines additional form in layout (right column)
-	
-	@param	html	<b>string</b>		the code to add
-	*/
-	public function setColumnsForm($html)
-	{
-		$this->columns_form = $html;
-	}
-	
-	/**
-	Returns form fields as hidden fields
-	
-	@return	<b>string</b>	the corresponding html code
-	*/
-	public function getFormFieldsAsHidden() {
-		$ret='';
-		foreach ($this->filters as $filter) {
-			$ret.= $filter->getFormFieldAsHidden();
-		}
-		return $ret;
-	}
-
-	/**
-	Retrieves filterset generated form
-	
-	@param	method	<b>string</b>		form method to use (default: "get")
-	*/
-	public function getForm($method="get") {
-		$ret = '';
-		
-		if ($this->hideform) {
-			$formclass = ' class="hidden"';
-		} else {
-			$formclass='';
-		}
-		$ret .= '<p><img alt="" src="images/minus.png" /> <a href="#" id="toggle-filters">'.__('Toggle filters and display options').'</a></p>';
-		$ret .=
-			'<div class="two-cols">'.
-			'<form id="filters" action="'.$this->action.'" method="'.$method.'"'.$formclass.'>'.
-			'<div class="col70">'.
-			'<h3>'.__('Entries filters').'</h3>';
-			
-		$count=0;
-		$form_combo=array();
-		$form_combo['-']='';
-		if (count($this->filters)) {
-			$ret .= '<ul>';
-			foreach ($this->filters as $filter) {
-				if ($filter->isEnabled()) {
-					$ret .= $filter->getFormLine();
-				}
-				$form_combo[$filter->desc]=$filter->id;
-				$count++;
-			}
-			$ret .= '</ul>';
-		}
-		$ret .= 
-			'<p class="clear"><input class="delete" type="submit" value="'.__('Delete all filters').'" name="clear_filters" /></p>'.
-			'<h3 class="margintop">'.__('Add a filter').'</h3>'.
-			'<p id="available_filters">'.
-			form::combo("add_filter",$form_combo).
-			'<input type="submit" value=" + " title="'.__('Add this filter').'" name="apply" />'.
-			'</p>'.
-			'</div>'.
-			'<div class="col30">'.
-			$this->columns_form.
-			'</div>'.
-			'<p class="clear margintop"><input type="submit" value="'.__('Apply filters and display options').'" name="apply" /></p>'.
-
-			'</form></div>';
-		return $ret;
-	}
-	
-	/**
-	Displays required fieldset http header
-	To be called in page header, of course.
-	*/
-	public function header() {
-		return dcPage::jsLoad('js/filters.js');
-	}
-	
-	
-	/**
-	Displays the fieldset
-	*/
-	public function display() {
-		echo $this->getForm();
-	}
-
-	/**
-	Applies fieldset and return resulting parameters for request
-	
-	@param	method	<b>string</b>		form method to use (default: "get")
-	@param	method	<b>string</b>		form method to use (default: "get")
-	
-	*/
-	public function applyFilters($params) {
-		$filtered = false;
-		foreach ($this->filters as $filter) {
-			if ($filter->isEnabled()) {
-				$filter->applyFilter($params);
-				$filtered = true;
-			}
-		}
-		return $filtered;
-	}
-	
-}
-
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract filter class.
-
-Dotclear Filter handles administration filters for each list
-A filter fills in a parameter array, as defined in dcBlog class
-*/
-abstract class Filter {
-	public $id;					///< <b>string</b> field id (local to fieldset)
-	public $desc;				///< <b>string</b> field description
-	protected $request_param;	///< <b>string</b> resulting parameter array key
-	protected $enabled;			///< <b>string</b> true if filter is enabled
-	protected $values;			///< <b>array</b> possible filter values
-	public $field_id;			///< <b>string</b> field id (global to the page)
-	
-	/**
-	Inits Filter object
-	
-	@param	id		<b>string</b>	field id
-	@param	form_prefix	<b>string</b>		form prefix to use for parameters
-	*/
-	public function __construct ($id,$desc,$request_param) {
-		$this->id = $id;
-		$this->desc = $desc;
-		$this->request_param = $request_param;
-		$this->enabled=false;
-		$this->values = array();
-		$this->field_id = $this->id;
-	}
-	
-	/**
-	Get a field id
-	
-	@param	pos		<b>integer</b>	position of field, in case of multiple field (0 if only 1 field set, default value)
-	@return	<b>string</b> The field ID
-	*/
-	protected function getFieldId($pos=0) {
-		if ($pos == 0) {
-			return $this->field_id;
-		} else {
-			return $this->field_id.'_'.$pos;
-		}
-	}
-	
-	/**
-	Tells whether the filter is enabled or not
-	
-	@return	<b>boolean</b> true if enabled, false otherwise
-	*/
-	public function isEnabled() {
-		return $this->enabled;
-	}
-	
-	/**
-	Adds the current filter to the list
-	*/
-	public function add() {
-		// By default here, only 1 value allowed. Simply enable the filter
-		$this->enabled = true;
-	}
-	
-	/**
-	Defines form prefix for filter
-	
-	@param	prefix		<b>string</b>	the form prefix
-	*/
-	public function setFormPrefix($prefix) {
-		$this->field_id = $prefix.$this->id;
-	}
-	
-	
-	/**
-	Returns HTML code for form field
-	
-	@param	pos		<b>integer</b>	position of the field to display (in case of multiple values)
-	@return <b>string</b> the html code
-	*/
-	public function getFormFields($pos=0) {
-		return '';
-	}
-	
-	/**
-	Returns filter values il a serialized way (array)
-	
-	@return		<b>array</b>	serialized data
-	*/
-	public function serialize() {
-		return array(
-			'values' => $this->values,
-			'enabled' => $this->enabled
-		);
-	}
-	
-	/**
-	Defines filter values from serialized data (array)
-	To be used in conjunction with serialize method
-	
-	@param	$data	<b>array</b>	serialized data to retrieve
-	*/
-	public function unserialize ($data) {
-		$this->values = $data['values'];
-		$this->enabled = $data['enabled'];
-	}
-	
-	/**
-	Set filter values from form_data (usually $_GET)	
-	@param	$form_data	<b>array</b>	form data
-	*/
-	public function setValues($form_data) {
-		$count=0;
-		while (isset($form_data[$this->getFieldId($count)])) {
-			if (!isset($form_data['del_'.$this->getFieldId($count)])) {
-				$this->values[$count] = $form_data[$this->getFieldId($count)];
-			} elseif (isset($this->values[$count])) {
-				unset($this->values[$count]);
-			}
-			$count++;
-
-		}
-		$this->values = array_values($this->values);
-		$this->enabled = (count($this->values)!=0);
-	}
-	
-		/**
-	Returns form fields as hidden fields
-	
-	@return	<b>string</b>	the corresponding html code
-	*/	
-	public function getFormFieldAsHidden () {
-		$ret='';
-		for ($cur=0; $cur < count($this->values); $cur++) {
-			$ret .= form::hidden($this->getFieldId($cur), $this->values[$cur]);
-		}
-	}
-	/**
-	Returns HTML code for the hole filter lines
-	
-	@return <b>string</b> the html code
-	*/
-	
-	public function getFormLine() {
-		$ret="";
-		for ($cur=0; $cur < count($this->values); $cur++) {
-			$ret .= '<li id="'.$this->getFieldId($cur).'" class="line" title="'.$this->desc.'">'.
-				$this->getFormFields($cur).
-				'<input id="del_'.$this->getFieldId($cur).'" class="delete" '.
-				'type="submit" title="Delete the following filter : " value=" - " name="del_'.$this->getFieldId($cur).'"/>'.
-				'</li>';
-		}
-		return $ret;
-	}
-	
-	/**
-	Convert filter values into a $param filter, used for the upcoming SQL request
-	
-	@param <b>ArrayObject</b> the parameters array to enrich
-	*/
-	public function applyFilter($params) {
-	}
-	
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract filter class.
-
-Handle combo filter on admin side. Can be single or multi-valued
-*/
-class comboFilter extends Filter {
-	protected $options;
-	protected $default;
-	protected $no_value;
-	protected $verb;
-	protected $extra;
-	
-	public function __construct($id,$desc,$request_param,$options,$extra=array()) {
-		parent::__construct($id,$desc,$request_param);
-		$this->options = $options;
-		$this->extra = $extra;
-		$this->desc = $desc;
-		$this->verb = "is";
-		$this->values=array();
-	}
-	
-	public function add() {
-		parent::add();
-		if (isset($this->extra['singleval']) && (count($this->values) > 0))
-			return;
-		$this->values[]=current($this->options);
-	}
-	
-	public function getType() {
-		return "combo";
-	}
-
-	public function serialize() {
-		$data = parent::serialize();
-		$data['verb'] = $this->verb;
-		return $data;
-	}
-	
-	public function unserialize ($data) {
-		parent::unserialize($data);
-		$this->verb = $data['verb'];
-	}
-	
-	public function setValues($form_data) {
-		parent::setValues($form_data);
-		if (isset($form_data[$this->field_id."_v"])) {
-			$this->verb = ($form_data[$this->field_id."_v"] == 'is') ? 'is' : 'isnot';
-		}
-	}
-
-	public function getFormFieldAsHidden () {
-		return parent::getFormFieldAsHidden().form::hidden($this->field_id."_v",$this->verb);
-	}
-
-	public function getFormFields($pos=0) {
-		
-		if ($pos == 0) {
-			$desc = $this->desc.' : ';
-			$labelclass="filter-title";
-		} else {
-			$desc = __('or');
-			$labelclass = 'or';
-		};
-		return '<span class="'.$labelclass.'">'.$desc.'</span>'.
-			(($pos == 0) 
-				?form::combo($this->field_id.'_v',
-					array(__('is')=>'is',__('is not')=>'isnot'),$this->verb,'','',
-					false,'title="'.sprintf(__('%s is or is not'),$this->desc).'"') 
-				:'').
-			form::combo($this->getFieldId($pos),$this->options,$this->values[$pos],
-				'','',false,'title="'.__('Choose an option').'"');
-	}
-	
-	public function applyFilter($params) {
-		$attr = $this->request_param;
-		if ($this->verb != "is") {
-			$params[$attr."_not"] = true;
-		}
-		if (isset($this->extra['singleval']))
-			$params[$attr]=$this->values[0];
-		else
-			$params[$attr]=$this->values;
-	}
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract filter class.
-
-Handle boolean filter on admin side.
-*/
-class booleanFilter extends Filter {
-	protected $options;
-	
-	public function __construct($id,$desc,$request_param,$options,$extra=array()) {
-		parent::__construct($id,$desc,$request_param);
-		$this->options = $options;
-		$this->values=array();
-	}
-	
-	
-	public function getType() {
-		return "boolean";
-	}
-	public function add() {
-		parent::add();
-		$this->values[]=$options[0];
-	}
-
-	public function getFormFields($pos=0) {
-		return '<span class="'.$labelclass.'">'.$this->desc.'</span>'.
-			form::combo($this->getFieldId($pos),$this->options,$this->values[$pos],
-				'','',false,'title="'.__('Choose an option').'"');
-	}
-	
-	public function applyFilter($params) {
-		$params[$this->request_param]=$this->values[0];
-	}
-}
-
-?>
Index: inc/admin/class.dc.menu.php
===================================================================
--- inc/admin/class.dc.menu.php	(revision 3)
+++ inc/admin/class.dc.menu.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 224)
+++ inc/admin/lib.dc.page.php	(revision 489)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,4 +16,6 @@
 class dcPage
 {
+	private static $loaded_js=array();
+
 	# Auth check
 	public static function check($permissions)
@@ -73,5 +75,5 @@
 			__('Blogs:').' '.
 			$core->formNonce().
-			form::combo('switchblog',$blogs,$core->blog->id,	'',1).
+			form::combo('switchblog',$blogs,$core->blog->id).
 			'</label>'.
 			'<noscript><div><input type="submit" value="'.__('ok').'" /></div></noscript>';
@@ -96,9 +98,14 @@
 		
 		self::jsLoadIE7().
-		'  <style type="text/css">'."\n". 
-		'  @import "style/default.css";'."\n".
-		"  </style>\n";
+		'  	<link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 
 		if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') {
-			echo '  <style type="text/css">'."\n".'  @import "style/default-rtl.css";'."\n"."  </style>\n";
+			echo
+		'  	<link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 
+		}
+
+		$core->auth->user_prefs->addWorkspace('interface');
+		$user_ui_hide_std_favicon = $core->auth->user_prefs->interface->hide_std_favicon;
+		if (!$user_ui_hide_std_favicon) {
+			echo '<link rel="icon" type="image/png" href="images/favicon.png" />';
 		}
 		
@@ -116,17 +123,21 @@
 		'">'."\n".
 		
-		'<div id="top"><h1><a href="index.php">'.DC_VENDOR_NAME.'</a></h1></div>'."\n";
-		
-		
-		echo
-		'<div id="info-box">'.
-		'<form action="index.php" method="post"><div>'.
+		'<div id=header>'.
+		'<ul id="prelude"><li><a href="#content">Aller au contenu</a></li><li><a href="#main-menu">Aller au menu</a></li></ul>'."\n".
+		'<div id="top"><h1><a href="index.php">'.DC_VENDOR_NAME.'</a></h1></div>'."\n";	
+		
+		echo
+		'<div id="info-boxes">'.
+		'<div id="info-box1">'.
+		'<form action="index.php" method="post">'.
 		$blog_box.
 		'<a href="'.$core->blog->url.'" onclick="window.open(this.href);return false;" title="'.__('Go to site').' ('.__('new window').')'.'">'.__('Go to site').' <img src="images/outgoing.png" alt="" /></a>'.
-		'</div></form>'.
+		'</form>'.
 		'</div>'.
-		'<div id="info-box2"><div>'.
-		' '.__('User:').' <strong>'.$core->auth->userID().'</strong>'.
-		' - <a href="index.php?logout=1" class="logout">'.__('Logout').' <img src="images/logout.png" alt="" /></a>'.
+		'<div id="info-box2">'.
+		'<a'.(preg_match('/index.php$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="index.php">'.__('My dashboard').'</a>'.
+		'<span> | </span><a'.(preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']) ? ' class="active"' : '').' href="preferences.php">'.__('My preferences').'</a>'.
+		'<span> | </span><a href="index.php?logout=1" class="logout">'.sprintf(__('Logout %s'),$core->auth->userID()).' <img src="images/logout.png" alt="" /></a>'.
+		'</div>'.
 		'</div>'.
 		'</div>';
@@ -204,9 +215,8 @@
 		
 		self::jsLoadIE7().
-		'  <style type="text/css">'."\n". 
-		'  @import "style/default.css";'."\n".
-		"  </style>\n";
+		'  	<link rel="stylesheet" href="style/default.css" type="text/css" media="screen" />'."\n"; 
 		if (l10n::getTextDirection($GLOBALS['_lang']) == 'rtl') {
-			echo '  <style type="text/css">'."\n".'  @import "style/default-rtl.css";'."\n"."  </style>\n";
+			echo
+			'  	<link rel="stylesheet" href="style/default-rtl.css" type="text/css" media="screen" />'."\n"; 
 		}
 		
@@ -264,7 +274,7 @@
 			} else {
 				$prof_url = http::getSelfURI();
-				$prof_url .= (strpos($prof_url,'?') === false) ? '?' : '&amp;';
+				$prof_url .= (strpos($prof_url,'?') === false) ? '?' : '&';
 				$prof_url .= 'XDEBUG_PROFILE';
-				$res .= '<p><a href="'.$prof_url.'">Trigger profiler</a></p>';
+				$res .= '<p><a href="'.html::escapeURL($prof_url).'">Trigger profiler</a></p>';
 			}
 			
@@ -343,5 +353,9 @@
 	public static function jsLoad($src)
 	{
-		return '<script type="text/javascript" src="'.html::escapeHTML($src).'"></script>'."\n";
+		$escaped_src = html::escapeHTML($src);
+		if (!isset(self::$loaded_js[$escaped_src])) {
+			self::$loaded_js[$escaped_src]=true;
+			return '<script type="text/javascript" src="'.$escaped_src.'"></script>'."\n";
+		}
 	}
 	
@@ -358,4 +372,5 @@
 		self::jsLoad('js/jquery/jquery.bgFade.js').
 		self::jsLoad('js/common.js').
+		self::jsLoad('js/prelude.js').
 		
 		'<script type="text/javascript">'."\n".
Index: inc/admin/lib.pager.php
===================================================================
--- inc/admin/lib.pager.php	(revision 463)
+++ inc/admin/lib.pager.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -12,232 +12,10 @@
 if (!defined('DC_RC_PATH')) { return; }
 
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief Dotclear Pager class.
-
-Dotclear Pager handles pagination for every admin list.
-*/
-class dcPager extends pager
-{
-	public function getLinks()
-	{
-		$htmlText = '';
-		$htmlStart = '';
-		$htmlEnd = '';
-		$htmlPrev = '';
-		$htmlNext = '';
-		$htmlDirectAccess = '';
-		$htmlHidden = '';
-		
-		$this->setURL();
-		
-		# Page text
-		$htmlText = '<span>'.sprintf(__('Page %s over %s'),$this->env,$this->nb_pages).'</span>';
-		
-		# Previous page
-		if($this->env != 1) {
-			$htmlPrev = '<a href="'.sprintf($this->page_url,$this->env-1).'" class="prev">'.
-			$htmlPrev .= $this->html_prev.'</a>';
-		}
-		
-		# Next page
-		if($this->env != $this->nb_pages) {
-			$htmlNext = '<a href="'.sprintf($this->page_url,$this->env+1).'" class="next">';
-			$htmlNext .= $this->html_next.'</a>';
-		}
-		
-		# Start
-		if($this->env != 1) {
-			$htmlStart = '<a href="'.sprintf($this->page_url,1).'" class="start">'.
-			$htmlStart .= $this->html_start.'</a>';
-		}
-		
-		# End
-		if($this->env != $this->nb_pages) {
-			$htmlEnd = '<a href="'.sprintf($this->page_url,$this->nb_elements).'" class="end">'.
-			$htmlEnd .= $this->html_end.'</a>';
-		}
-		
-		# Direct acces
-		$htmlDirectAccess = 
-			'<span>'.__('Direct access to page').'&nbsp;'.
-			form::field(array('page'),3,3,$this->env).'&nbsp;'.
-			'<input type="submit" value="'.__('ok').'" />'.
-			'</span>';
-			
-		# Hidden fields
-		foreach ($_GET as $k => $v) {
-			if ($k != $this->var_page) {
-				$htmlHidden .= form::hidden(array($k),$v);
-			}
-		}
-		
-		$res =
-			'<form method="get" action="'.$this->base_url.'"><p>'.
-			$htmlStart.
-			$htmlPrev.
-			$htmlText.
-			$htmlNext.
-			$htmlEnd.
-			$htmlDirectAccess.
-			$htmlHidden.
-			'</p></form>';
-		
-		return $this->nb_elements > 0 ? $res : '';
-	}
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief Dotclear Generic column class.
-
-Dotclear Generic column handles each column object use in adminGenericList class.
-*/
-class adminGenericColumn
-{
-	protected $core;		/// <b>object</b> dcCore object
-	protected $id;			/// <b>string</b> ID of defined column
-	protected $title;		/// <b>string</b> Title of defined column
-	protected $callback;	/// <b>array</b> Callback calls to display defined column
-	protected $html;		/// <b>string</b> Extra HTML for defined column
-	protected $visibility;	/// <b>boolean</b> Visibility of defined column
-	
-	/**
-	Inits Generic column object
-	
-	@param	id		<b>string</b>		Column id
-	@param	title	<b>string</b>		Column title (for table headers)
-	@param	callback	<b>array</b>		Column callback (used for display)
-	@param	html		<b>string</b>		Extra html (used for table headers)
-	@param	can_hide	<b>boolean</b>		Defines if the column can be hidden or not
-	*/
-	public function __construct($id,$title,$callback,$html = null,$can_hide = true)
-	{
-		if (!is_string($id) || $id === '') {
-			throw new Exception(__('Invalid column ID'));
-		}
-		
-		if (!is_string($title)) {
-			throw new Exception(__('Invalid column title'));
-		}
-		
-		if (is_null($html) || !is_string($html)) {
-			$html = '';
-		}
-		if (!empty($html)) {
-			$html = ' '.$html;
-		}
-		
-		if (!is_bool($can_hide)) {
-			$can_hide = true;
-		}
-		
-		try {
-			if (!is_array($callback) || count($callback) < 2) {
-				throw new Exception(__('Callback parameter should be an array'));
-			}
-			$r = new ReflectionClass($callback[0]);
-			$f = $r->getMethod($callback[1]);
-			$p = $r->getParentClass();
-			$find_parent = false;
-			
-			while (!$p) {
-				if ($p->name == 'adminGenericList') {
-					$find_parent = true;
-				}
-				else {
-					$p->getParentClass();
-				}
-			}
-			
-			if (!$p || !$f) {
-				throw new Exception(__('Callback class should be inherited of adminGenericList class'));
-			}
-		}
-		catch (Exception $e) {
-			throw new Exception(sprintf(__('Invalid column callback: %s'),$e->getMessage()));
-		}
-		
-		$this->id = $id;
-		$this->title = $title;
-		$this->callback = $callback;
-		$this->html = $html;
-		$this->can_hide = $can_hide;
-		$this->visibility = true;
-	}
-	
-	/**
-	Gets information of defined column
-	
-	@param	info		<b>string</b>		Column info to retrive
-	
-	@return	<b>mixed</b>	The information requested, null otherwise
-	*/
-	public function getInfo($info)
-	{
-		return property_exists(get_class($this),$info) ? $this->{$info} : null;
-	}
-	
-	/**
-	Sets visibility of defined column
-	
-	@param	visibility	<b>boolean</b>		Column visibility
-	*/
-	public function setVisibility($visibility)
-	{
-		if (is_bool($visibility)) {
-			$this->visibility = $visibility;
-		}
-	}
-	
-	/**
-	Returns visibility status of defined column
-	
-	@return	<b>boolean</b>		true if column is visible, false otherwise
-	*/
-	public function isVisible()
-	{
-		return $this->visibility;
-	}
-	
-	/**
-	Returns if the defined column can be hidden
-	
-	@return	<b>boolean</b>	true if column can be hidden, false otherwise
-	*/
-	public function canHide()
-	{
-		return $this->can_hide;
-	}
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract Generic list class.
-
-Dotclear Generic list handles administration lists
-*/
-abstract class adminGenericList
+class adminGenericList
 {
 	protected $core;
 	protected $rs;
 	protected $rs_count;
-	protected $columns;
 	
-	/*
-	Sets columns of defined list
-	*/
-	public function setColumns() {}
-	
-	/**
-	Inits List object
-	
-	@param	core		<b>dcCore</b>		dcCore object
-	@param	rs		<b>recordSet</b>	Items recordSet to display
-	@param	rs_count	<b>int</b>		Total items number
-	*/
 	public function __construct($core,$rs,$rs_count)
 	{
@@ -245,91 +23,34 @@
 		$this->rs =& $rs;
 		$this->rs_count = $rs_count;
-		$this->context = get_class($this);
-		$this->columns = array();
-		$this->form_prefix = 'col_%s';
-		$this->form_trigger = 'add_filter';
-		
-		$this->html_prev = __('prev');
-		$this->html_next = __('next');
-		$this->html_start = __('start');
-		$this->html_end = __('end');
-		
-		$this->setColumns();
-		
-		$core->callBehavior('adminListConstruct',$this);
-		
-		$this->setColumnsVisibility();
-	}
-	
-	/**
-	Returns HTML code form used to choose which column to display
-	
-	@return	<b>string</b>		HTML code form
-	*/
-	public function getColumnsForm()
-	{
-		$block = 
-		'<h3>'.__('Displayed information').'</h3>'.
-		'<ul>%s</ul>';
-		
-		$list = array();
-		
-		foreach ($this->columns as $k => $v) {
-			$col_id = sprintf($this->form_prefix,$k);
-			$col_label = sprintf('<label for="%s">%s</label>',$col_id,$v->getInfo('title'));
-			$col_html = sprintf('<li class="line">%s</li>',$col_label.form::checkbox($col_id,1,$v->isVisible(),null,null,!$v->canHide()));
-			
-			array_push($list,$col_html);
-		}
-		
-		$nb_per_page = isset($_GET['nb']) ? $_GET['nb'] : 10;
-		
-		return
-		sprintf($block,implode('',$list)).
-		'<p><label for="nb">'.__('Items per page:').
-		'</label>&nbsp;'.form::field('nb',3,3,$nb_per_page).
-		'</p>';
-	}
-	
-	/**
-	Returns HTML code list to display
-	
-	@param	page			<b>string|int</b>	Current page
-	@param	nb_per_page	<b>string|int</b>	Number of items to display in each page
-	@param	enclose_block	<b>string</b>		HTML wrapper of defined list
-	
-	@return	<b>string</b>		HTML code list
-	*/
-	public function display($page,$nb_per_page,$enclose_block = '')
+		$this->html_prev = __('&#171;prev.');
+		$this->html_next = __('next&#187;');
+	}
+}
+
+class adminPostList extends adminGenericList
+{
+	public function display($page,$nb_per_page,$enclose_block='')
 	{
 		if ($this->rs->isEmpty())
 		{
-			echo '<p><strong>'.__('No item').'</strong></p>';
+			echo '<p><strong>'.__('No entry').'</strong></p>';
 		}
 		else
 		{
-			$pager = new dcPager($page,$this->rs_count,$nb_per_page,10);
+			$pager = new pager($page,$this->rs_count,$nb_per_page,10);
 			$pager->html_prev = $this->html_prev;
 			$pager->html_next = $this->html_next;
-			$pager->html_start = $this->html_start;
-			$pager->html_end = $this->html_end;
 			$pager->var_page = 'page';
 			
 			$html_block =
-			'<table class="maximal clear">'.
-			$this->getCaption($page).
-			'<thead><tr>';
-			
-			foreach ($this->columns as $k => $v) {
-				if ($v->isVisible()) {
-					$html_extra = $v->getInfo('html') != '' ? ' '.$v->getInfo('html') : '';
-					$html_block .= sprintf('<th scope="col"%s>%s</th>',$html_extra,$v->getInfo('title'));
-				}
-			}
-			
-			$html_block .=
-			'</tr></thead>'.
-			'<tbody>%s</tbody>'.
-			'</table>';
+			'<table class="clear"><tr>'.
+			'<th colspan="2">'.__('Title').'</th>'.
+			'<th>'.__('Date').'</th>'.
+			'<th>'.__('Category').'</th>'.
+			'<th>'.__('Author').'</th>'.
+			'<th>'.__('Comments').'</th>'.
+			'<th>'.__('Trackbacks').'</th>'.
+			'<th>'.__('Status').'</th>'.
+			'</tr>%s</table>';
 			
 			if ($enclose_block) {
@@ -337,5 +58,5 @@
 			}
 			
-			echo '<div class="pagination">'.$pager->getLinks().'</div>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 			
 			$blocks = explode('%s',$html_block);
@@ -345,176 +66,14 @@
 			while ($this->rs->fetch())
 			{
-				echo $this->displayLine();
+				echo $this->postLine();
 			}
 			
 			echo $blocks[1];
 			
-			echo '<div class="pagination">'.$pager->getLinks().'</div>';
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
 		}
 	}
 	
-	/**
-	Adds column to defined list
-	
-	@param	id		<b>string</b>		Column id
-	@param	title	<b>string</b>		Column title (for table headers)
-	@param	callback	<b>array</b>		Column callback (used for display)
-	@param	html		<b>string</b>		Extra html (used for table headers)
-	@param	can_hide	<b>boolean</b>		Defines if the column can be hidden or not
-	*/
-	protected function addColumn($id,$title,$callback,$html = null,$can_hide = true)
-	{
-		try {
-			$c = new adminGenericColumn($id,$title,$callback,$html,$can_hide);
-			$this->columns[$id] = $c;
-		}
-		catch (Exception $e) {
-			if (DC_DEBUG) {
-				$this->core->error->add($e->getMessage());
-			}
-		}
-	}
-	
-	/**
-	Returns default caption text
-	
-	@return	<b>string</b>		Default caption
-	*/
-	protected function getDefaultCaption()
-	{
-		return;
-	}
-	
-	/**
-	Returns default HTMl code line
-	
-	@return	<b>string</b>		Default HTMl code line
-	*/
-	protected function getDefaultLine()
-	{
-		return '<tr class="line">%s</tr>';
-	}
-	
-	/**
-	Sets columns visibility of defined list
-	*/
-	private function setColumnsVisibility()
-	{
-		$ws = $this->core->auth->user_prefs->addWorkspace('lists');
-		
-		$user_pref = !is_null($ws->{$this->context}) ? unserialize($ws->{$this->context}) : array();
-		
-		foreach ($this->columns as $k => $v) {
-			$visibility =  array_key_exists($k,$user_pref) ? $user_pref[$k] : true;
-			if (array_key_exists($this->form_trigger,$_REQUEST)) {
-				$key = sprintf($this->form_prefix,$k);
-				$visibility = !array_key_exists($key,$_REQUEST) ? false : true;
-			}
-			if (!$v->canHide()) {
-				$visibility = true;
-			}
-			$v->setVisibility($visibility);
-			$user_pref[$k] = $visibility;
-		}
-		
-		if (array_key_exists($this->form_trigger,$_REQUEST)) {
-			$this->core->auth->user_prefs->lists->put($this->context,serialize($user_pref),'string');
-		}
-	}
-	
-	/**
-	Returns HTML code for each line of defined list
-	
-	@return	<b>string</b>		HTML code line
-	*/
-	private function displayLine()
-	{
-		$res = '';
-		
-		foreach ($this->columns as $k => $v) {
-			if ($v->isVisible()) {
-				$c = $v->getInfo('callback');
-				$res .= $this->{$c[1]}();
-			}
-		}
-		
-		return sprintf($this->getDefaultLine(),$res);
-	}
-	
-	/**
-	Returns caption of defined list
-	
-	@param	page			<b>string|int</b>	Current page
-	
-	@return	<b>string</b>		HTML caption tag
-	*/
-	private function getCaption($page)
-	{
-		$caption = $this->getDefaultCaption();
-		
-		if (!empty($caption)) {
-			$caption = sprintf(
-				'<caption>%s - %s</caption>',
-				$caption,sprintf(__('Page %s'),$page)
-			);
-		}
-		
-		return $caption;
-	}
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract posts list class.
-
-Handle posts list on admin side
-*/
-class adminPostList extends adminGenericList
-{
-	public function setColumns()
-	{
-		$this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false);
-		$this->addColumn('date',__('Date'),array('adminPostList','getDate'));
-		$this->addColumn('datetime',__('Date and time'),array('adminPostList','getDateTime'));
-		$this->addColumn('category',__('Category'),array('adminPostList','getCategory'));
-		$this->addColumn('author',__('Author'),array('adminPostList','getAuthor'));
-		$this->addColumn('comment',__('Comments'),array('adminPostList','getComments'));
-		$this->addColumn('trackback',__('Trackbacks'),array('adminPostList','getTrackbacks'));
-		$this->addColumn('status',__('Status'),array('adminPostList','getStatus'));
-	}
-	
-	protected function getDefaultCaption()
-	{
-		return __('Entries list');
-	}
-	
-	protected function getDefaultLine()
-	{
-		return
-		'<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'.
-		' id="p'.$this->rs->post_id.'">%s</tr>';
-	}
-	
-	protected function getTitle()
-	{
-		return
-		'<th scope="row" class="maximal">'.
-		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable()).'&nbsp;'.
-		'<a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'">'.
-		html::escapeHTML($this->rs->post_title).'</a></th>';
-	}
-	
-	protected function getDate()
-	{
-		return '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d'),$this->rs->post_dt).'</td>';
-	}
-	
-	protected function getDateTime()
-	{
-		return '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).'</td>';
-	}
-	
-	protected function getCategory()
+	private function postLine()
 	{
 		if ($this->core->auth->check('categories',$this->core->blog->id)) {
@@ -531,24 +90,4 @@
 		}
 		
-		return '<td class="nowrap">'.$cat_title.'</td>';
-	}
-	
-	protected function getAuthor()
-	{
-		return '<td class="nowrap">'.$this->rs->user_id.'</td>';
-	}
-	
-	protected function getComments()
-	{
-		return '<td class="nowrap">'.$this->rs->nb_comment.'</td>';
-	}
-	
-	protected function getTrackbacks()
-	{
-		return '<td class="nowrap">'.$this->rs->nb_trackback.'</td>';
-	}
-	
-	protected function getStatus()
-	{
 		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
 		switch ($this->rs->post_status) {
@@ -584,85 +123,166 @@
 		}
 		
-		return '<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.' '.$attach.'</td>';
+		$res = '<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'.
+		' id="p'.$this->rs->post_id.'">';
+		
+		$res .=
+		'<td class="nowrap">'.
+		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable()).'</td>'.
+		'<td class="maximal"><a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'">'.
+		html::escapeHTML($this->rs->post_title).'</a></td>'.
+		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).'</td>'.
+		'<td class="nowrap">'.$cat_title.'</td>'.
+		'<td class="nowrap">'.$this->rs->user_id.'</td>'.
+		'<td class="nowrap">'.$this->rs->nb_comment.'</td>'.
+		'<td class="nowrap">'.$this->rs->nb_trackback.'</td>'.
+		'<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.' '.$attach.'</td>'.
+		'</tr>';
+		
+		return $res;
 	}
 }
 
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract mini posts list class.
-
-Handle mini posts list on admin side (used for link popup)
-*/
-class adminPostMiniList extends adminPostList
+class adminPostMiniList extends adminGenericList
 {
-	public function setColumns()
-	{
-		$this->addColumn('title',__('Title'),array('adminPostMiniList','getTitle'),' class="maximal"',false);
-		$this->addColumn('date',__('Date'),array('adminPostList','getDate'));
-		$this->addColumn('author',__('Author'),array('adminPostList','getAuthor'));
-		$this->addColumn('status',__('Status'),array('adminPostList','getStatus'));
+	public function display($page,$nb_per_page,$enclose_block='')
+	{
+		if ($this->rs->isEmpty())
+		{
+			echo '<p><strong>'.__('No entry').'</strong></p>';
+		}
+		else
+		{
+			$pager = new pager($page,$this->rs_count,$nb_per_page,10);
+			$pager->html_prev = $this->html_prev;
+			$pager->html_next = $this->html_next;
+			$pager->var_page = 'page';
+			
+			$html_block =
+			'<table class="clear"><tr>'.
+			'<th>'.__('Title').'</th>'.
+			'<th>'.__('Date').'</th>'.
+			'<th>'.__('Author').'</th>'.
+			'<th>'.__('Status').'</th>'.
+			'</tr>%s</table>';
+			
+			if ($enclose_block) {
+				$html_block = sprintf($enclose_block,$html_block);
+			}
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			
+			$blocks = explode('%s',$html_block);
+			
+			echo $blocks[0];
+			
+			while ($this->rs->fetch())
+			{
+				echo $this->postLine();
+			}
+			
+			echo $blocks[1];
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		}
 	}
 	
-	protected function getTitle() 
-	{
-		return
-		'<th scope="row" class="maximal">'.
-		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable()).'&nbsp;'.
-		'<a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'" '.
+	private function postLine()
+	{
+		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
+		switch ($this->rs->post_status) {
+			case 1:
+				$img_status = sprintf($img,__('published'),'check-on.png');
+				break;
+			case 0:
+				$img_status = sprintf($img,__('unpublished'),'check-off.png');
+				break;
+			case -1:
+				$img_status = sprintf($img,__('scheduled'),'scheduled.png');
+				break;
+			case -2:
+				$img_status = sprintf($img,__('pending'),'check-wrn.png');
+				break;
+		}
+		
+		$protected = '';
+		if ($this->rs->post_password) {
+			$protected = sprintf($img,__('protected'),'locker.png');
+		}
+		
+		$selected = '';
+		if ($this->rs->post_selected) {
+			$selected = sprintf($img,__('selected'),'selected.png');
+		}
+		
+		$attach = '';
+		$nb_media = $this->rs->countMedia();
+		if ($nb_media > 0) {
+			$attach_str = $nb_media == 1 ? __('%d attachment') : __('%d attachments');
+			$attach = sprintf($img,sprintf($attach_str,$nb_media),'attach.png');
+		}
+		
+		$res = '<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'.
+		' id="p'.$this->rs->post_id.'">';
+		
+		$res .=
+		'<td class="maximal"><a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'" '.
 		'title="'.html::escapeHTML($this->rs->getURL()).'">'.
-		html::escapeHTML($this->rs->post_title).'</a></td>';
+		html::escapeHTML($this->rs->post_title).'</a></td>'.
+		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).'</td>'.
+		'<td class="nowrap">'.$this->rs->user_id.'</td>'.
+		'<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.' '.$attach.'</td>'.
+		'</tr>';
+		
+		return $res;
 	}
 }
 
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract comments list class.
-
-Handle comments list on admin side
-*/
 class adminCommentList extends adminGenericList
 {
-	public function setColumns()
-	{
-		$this->addColumn('title',__('Title'),array('adminCommentList','getTitle'),' class="maximal"',false);
-		$this->addColumn('date',__('Date'),array('adminCommentList','getDate'));
-		$this->addColumn('author',__('Author'),array('adminCommentList','getAuthor'));
-		$this->addColumn('type',__('Type'),array('adminCommentList','getType'));
-		$this->addColumn('status',__('Status'),array('adminCommentList','getStatus'));
-		$this->addColumn('edit','',array('adminCommentList','getEdit'));
+	public function display($page,$nb_per_page,$enclose_block='')
+	{
+		if ($this->rs->isEmpty())
+		{
+			echo '<p><strong>'.__('No comment').'</strong></p>';
+		}
+		else
+		{
+			$pager = new pager($page,$this->rs_count,$nb_per_page,10);
+			$pager->html_prev = $this->html_prev;
+			$pager->html_next = $this->html_next;
+			$pager->var_page = 'page';
+			
+			$html_block =
+			'<table><tr>'.
+			'<th colspan="2">'.__('Title').'</th>'.
+			'<th>'.__('Date').'</th>'.
+			'<th>'.__('Author').'</th>'.
+			'<th>'.__('Type').'</th>'.
+			'<th>'.__('Status').'</th>'.
+			'<th>&nbsp;</th>'.
+			'</tr>%s</table>';
+			
+			if ($enclose_block) {
+				$html_block = sprintf($enclose_block,$html_block);
+			}
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			
+			$blocks = explode('%s',$html_block);
+			
+			echo $blocks[0];
+			
+			while ($this->rs->fetch())
+			{
+				echo $this->commentLine();
+			}
+			
+			echo $blocks[1];
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		}
 	}
 	
-	protected function getDefaultCaption()
-	{
-		return __('Comments list');
-	}
-	
-	protected function getDefaultLine()
-	{
-		return
-		'<tr class="line'.($this->rs->comment_status != 1 ? ' offline' : '').'"'.
-		' id="c'.$this->rs->comment_id.'">%s</tr>';
-	}
-	
-	protected function getTitle()
-	{
-		$post_url = $this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id);
-		
-		return
-		'<th scope="row" class="maximal">'.
-		form::checkbox(array('comments[]'),$this->rs->comment_id,'','','',0).'&nbsp;'.
-		'<a href="'.$post_url.'">'.
-		html::escapeHTML($this->rs->post_title).'</a>'.
-		($this->rs->post_type != 'post' ? ' ('.html::escapeHTML($this->rs->post_type).')' : '').'</th>';
-	}
-	
-	protected function getDate()
-	{
-		return '<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->comment_dt).'</td>';
-	}
-	
-	protected function getAuthor()
+	private function commentLine()
 	{
 		global $author, $status, $sortby, $order, $nb_per_page;
@@ -675,19 +295,12 @@
 		'&amp;author='.rawurlencode($this->rs->comment_author);
 		
-		$comment_author = html::escapeHTML($this->rs->comment_author);
-		if (mb_strlen($comment_author) > 20) {
-			$comment_author = mb_strcut($comment_author,0,17).'...';
-		}
-		
-		return '<td class="nowrap"><a href="'.$author_url.'">'.$comment_author.'</a></td>';
-	}
-	
-	protected function getType()
-	{
-		return '<td class="nowrap">'.($this->rs->comment_trackback ? __('trackback') : __('comment')).'</td>';
-	}
-	
-	protected function getStatus()
-	{
+		$post_url = $this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id);
+		
+		$comment_url = 'comment.php?id='.$this->rs->comment_id;
+		
+		$comment_dt =
+		dt::dt2str($this->core->blog->settings->system->date_format.' - '.
+		$this->core->blog->settings->system->time_format,$this->rs->comment_dt);
+		
 		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
 		switch ($this->rs->comment_status) {
@@ -706,41 +319,77 @@
 		}
 		
-		return '<td class="nowrap status">'.$img_status.'</td>';
-	}
-	
-	protected function getEdit()
-	{
-		$comment_url = 'comment.php?id='.$this->rs->comment_id;
-		
-		return
+		$comment_author = html::escapeHTML($this->rs->comment_author);
+		if (mb_strlen($comment_author) > 20) {
+			$comment_author = mb_strcut($comment_author,0,17).'...';
+		}
+		
+		$res = '<tr class="line'.($this->rs->comment_status != 1 ? ' offline' : '').'"'.
+		' id="c'.$this->rs->comment_id.'">';
+		
+		$res .=
+		'<td class="nowrap">'.
+		form::checkbox(array('comments[]'),$this->rs->comment_id,'','','',0).'</td>'.
+		'<td class="maximal"><a href="'.$post_url.'">'.
+		html::escapeHTML($this->rs->post_title).'</a>'.
+		($this->rs->post_type != 'post' ? ' ('.html::escapeHTML($this->rs->post_type).')' : '').'</td>'.
+		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->comment_dt).'</td>'.
+		'<td class="nowrap"><a href="'.$author_url.'">'.$comment_author.'</a></td>'.
+		'<td class="nowrap">'.($this->rs->comment_trackback ? __('trackback') : __('comment')).'</td>'.
+		'<td class="nowrap status">'.$img_status.'</td>'.
 		'<td class="nowrap status"><a href="'.$comment_url.'">'.
 		'<img src="images/edit-mini.png" alt="" title="'.__('Edit this comment').'" /></a></td>';
+		
+		$res .= '</tr>';
+		
+		return $res;
 	}
 }
 
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract users list class.
-
-Handle users list on admin side
-*/
 class adminUserList extends adminGenericList
 {
-	public function setColumns()
-	{
-		$this->addColumn('username',__('Username'),array('adminUserList','getUserName'),'class="maximal"',false);
-		$this->addColumn('firstname',__('First name'),array('adminUserList','getFirstName'),'class="nowrap"');
-		$this->addColumn('lastname',__('Last name'),array('adminUserList','getLastName'),'class="nowrap"');
-		$this->addColumn('displayname',__('Display name'),array('adminUserList','getDisplayName'),'class="nowrap"');
-		$this->addColumn('entries',__('Entries'),array('adminUserList','getEntries'),'class="nowrap"');
+	public function display($page,$nb_per_page,$enclose_block='')
+	{
+		if ($this->rs->isEmpty())
+		{
+			echo '<p><strong>'.__('No user').'</strong></p>';
+		}
+		else
+		{
+			$pager = new pager($page,$this->rs_count,$nb_per_page,10);
+			$pager->html_prev = $this->html_prev;
+			$pager->html_next = $this->html_next;
+			$pager->var_page = 'page';
+			
+			$html_block =
+			'<table class="clear"><tr>'.
+			'<th colspan="2">'.__('Username').'</th>'.
+			'<th>'.__('First Name').'</th>'.
+			'<th>'.__('Last Name').'</th>'.
+			'<th>'.__('Display name').'</th>'.
+			'<th class="nowrap">'.__('Entries').'</th>'.
+			'</tr>%s</table>';
+			
+			if ($enclose_block) {
+				$html_block = sprintf($enclose_block,$html_block);
+			}
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			
+			$blocks = explode('%s',$html_block);
+			
+			echo $blocks[0];
+			
+			while ($this->rs->fetch())
+			{
+				echo $this->userLine();
+			}
+			
+			echo $blocks[1];
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		}
 	}
 	
-	protected function getDefaultCaption()
-	{
-		return __('Users list');
-	}
-	
-	protected function getUserName()
+	private function userLine()
 	{
 		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
@@ -755,140 +404,17 @@
 			$img_status = sprintf($img,__('superadmin'),'superadmin.png');
 		}
-		
 		return
-		'<th scope="row" class="maximal">'.form::hidden(array('nb_post[]'),(integer) $this->rs->nb_post).
-		form::checkbox(array('user_id[]'),$this->rs->user_id).'&nbsp;'.
-		'<a href="user.php?id='.$this->rs->user_id.'">'.
-		$this->rs->user_id.'</a>&nbsp;'.$img_status.'</th>';
-	}
-	
-	protected function getFirstName()
-	{
-		return '<td class="nowrap">'.$this->rs->user_firstname.'</td>';
-	}
-	
-	protected function getLastName()
-	{
-		return '<td class="nowrap">'.$this->rs->user_name.'</td>';
-	}
-	
-	protected function getDisplayName()
-	{
-		return '<td class="nowrap">'.$this->rs->user_displayname.'</td>';
-	}
-	
-	protected function getEntries()
-	{
-		return
+		'<tr class="line">'.
+		'<td class="nowrap">'.form::hidden(array('nb_post[]'),(integer) $this->rs->nb_post).
+		form::checkbox(array('user_id[]'),$this->rs->user_id).'</td>'.
+		'<td class="maximal"><a href="user.php?id='.$this->rs->user_id.'">'.
+		$this->rs->user_id.'</a>&nbsp;'.$img_status.'</td>'.
+		'<td class="nowrap">'.$this->rs->user_firstname.'</td>'.
+		'<td class="nowrap">'.$this->rs->user_name.'</td>'.
+		'<td class="nowrap">'.$this->rs->user_displayname.'</td>'.
 		'<td class="nowrap"><a href="posts.php?user_id='.$this->rs->user_id.'">'.
-		$this->rs->nb_post.'</a></td>';
+		$this->rs->nb_post.'</a></td>'.
+		'</tr>';
 	}
 }
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract blogs list class.
-
-Handle blogs list on admin side
-*/
-class adminBlogList extends adminGenericList
-{
-	public function setColumns()
-	{
-		$this->addColumn('blogname',__('Blog name'),array('adminBlogList','getBlogName'),'class="maximal"',false);
-		$this->addColumn('lastupdate',__('Last update'),array('adminBlogList','getLastUpdate'),'class="nowrap"');
-		$this->addColumn('entries',__('Entries'),array('adminBlogList','getEntries'),'class="nowrap"');
-		$this->addColumn('blogid',__('Blog ID'),array('adminBlogList','getBlogId'),'class="nowrap"');
-		$this->addColumn('action','',array('adminBlogList','getAction'),'class="nowrap"');
-		$this->addColumn('status',__('status'),array('adminBlogList','getStatus'),'class="nowrap"');
-	}
-	
-	protected function getDefaultCaption()
-	{
-		return __('Blogs list');
-	}
-	
-	protected function getBlogName()
-	{
-		return
-		'<th scope="row" class="maximal"><a href="index.php?switchblog='.$this->rs->blog_id.'" '.
-		'title="'.sprintf(__('Switch to blog %s'),$this->rs->blog_id).'">'.
-		html::escapeHTML($this->rs->blog_name).'</a></th>';
-	}
-	
-	protected function getLastUpdate()
-	{
-		$offset = dt::getTimeOffset($this->core->auth->getInfo('user_tz'));
-		$blog_upddt = dt::str(__('%Y-%m-%d %H:%M'),strtotime($this->rs->blog_upddt) + $offset);
-	
-		return '<td class="nowrap">'.$blog_upddt.'</td>';
-	}
-	
-	protected function getEntries()
-	{
-		return '<td class="nowrap">'.$this->core->countBlogPosts($this->rs->blog_id).'</td>';
-	}
-	
-	protected function getBlogId()
-	{
-		return '<td class="nowrap">'.html::escapeHTML($this->rs->blog_id).'</td>';
-	}
-	
-	protected function getAction()
-	{
-		$edit_link = '';
-		$blog_id = html::escapeHTML($this->rs->blog_id);
-	
-		if ($GLOBALS['core']->auth->isSuperAdmin()) {
-			$edit_link = 
-			'<a href="blog.php?id='.$blog_id.'" '.
-			'title="'.sprintf(__('Edit blog %s'),$blog_id).'">'.
-			__('edit').'</a>';
-		}
-		
-		return '<td class="nowrap">'.$edit_link.'</td>';
-	}
-	
-	protected function getStatus()
-	{
-		$img_status = $this->rs->blog_status == 1 ? 'check-on' : 'check-off';
-		$txt_status = $GLOBALS['core']->getBlogStatus($this->rs->blog_status);
-		$img_status = sprintf('<img src="images/%1$s.png" alt="%2$s" title="%2$s" />',$img_status,$txt_status);
-		
-		return '<td class="status">'.$img_status.'</td>';
-	}
-}
-
-/**
-@ingroup DC_CORE
-@nosubgrouping
-@brief abstract blogs permissions list class.
-
-Handle blogs permissions list on admin side
-*/
-class adminBlogPermissionsList extends adminBlogList
-{
-	public function setColumns()
-	{
-		$this->addColumn('blogid',__('Blog ID'),array('adminBlogPermissionsList','getBlogId'),'class="nowrap"',false);
-		$this->addColumn('blogname',__('Blog name'),array('adminBlogPermissionsList','getBlogName'),'class="maximal"');
-		$this->addColumn('entries',__('Entries'),array('adminBlogList','getEntries'),'class="nowrap"');
-		$this->addColumn('status',__('status'),array('adminBlogList','getStatus'),'class="nowrap"');
-	}
-	
-	protected function getBlogId()
-	{
-		return
-		'<th scope="row" class="nowrap">'.
-		form::checkbox(array('blog_id[]'),$this->rs->blog_id,'','','',false,'title="'.__('select').' '.$this->rs->blog_id.'"').
-		$this->rs->blog_id.'</th>';
-	}
-	
-	protected function getBlogName()
-	{
-		return '<td class="maximal">'.html::escapeHTML($this->rs->blog_name).'</td>';
-	}
-}
-
 ?>
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 185)
+++ inc/admin/prepend.php	(revision 489)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -21,4 +21,17 @@
 
 define('DC_CONTEXT_ADMIN',true);
+
+function dc_valid_fav($url) {
+	global $core;
+
+	if (preg_match('#plugin\.php\?p=([^&]+)#',$url,$matches)) {
+		if (isset($matches[1])) {
+			if (!$core->plugins->moduleExists($matches[1])) {
+				return false;
+			}
+		}
+	}
+	return true;
+}
 
 function dc_prepare_url($url) {
@@ -185,43 +198,43 @@
 	# NB : '*' in permissions means any, null means super admin only
 	
-	$_fav['prefs'] = new ArrayObject(array('prefs',__('My preferences'),'preferences.php',
+	$_fav['prefs'] = new ArrayObject(array('prefs','My preferences','preferences.php',
 		'images/menu/user-pref.png','images/menu/user-pref-b.png',
 		'*',null,null));
 
-	$_fav['new_post'] = new ArrayObject(array('new_post',__('New entry'),'post.php',
+	$_fav['new_post'] = new ArrayObject(array('new_post','New entry','post.php',
 		'images/menu/edit.png','images/menu/edit-b.png',
 		'usage,contentadmin',null,'menu-new-post'));
-	$_fav['posts'] = new ArrayObject(array('posts',__('Entries'),'posts.php',
+	$_fav['posts'] = new ArrayObject(array('posts','Entries','posts.php',
 		'images/menu/entries.png','images/menu/entries-b.png',
 		'usage,contentadmin',null,null));
-	$_fav['comments'] = new ArrayObject(array('comments',__('Comments'),'comments.php',
+	$_fav['comments'] = new ArrayObject(array('comments','Comments','comments.php',
 		'images/menu/comments.png','images/menu/comments-b.png',
 		'usage,contentadmin',null,null));
-	$_fav['search'] = new ArrayObject(array('search',__('Search'),'search.php',
+	$_fav['search'] = new ArrayObject(array('search','Search','search.php',
 		'images/menu/search.png','images/menu/search-b.png',
 		'usage,contentadmin',null,null));
-	$_fav['categories'] = new ArrayObject(array('categories',__('Categories'),'categories.php',
+	$_fav['categories'] = new ArrayObject(array('categories','Categories','categories.php',
 		'images/menu/categories.png','images/menu/categories-b.png',
 		'categories',null,null));
-	$_fav['media'] = new ArrayObject(array('media',__('Media manager'),'media.php',
+	$_fav['media'] = new ArrayObject(array('media','Media manager','media.php',
 		'images/menu/media.png','images/menu/media-b.png',
 		'media,media_admin',null,null));
-	$_fav['blog_pref'] = new ArrayObject(array('blog_pref',__('Blog settings'),'blog_pref.php',
+	$_fav['blog_pref'] = new ArrayObject(array('blog_pref','Blog settings','blog_pref.php',
 		'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
 		'admin',null,null));
-	$_fav['blog_theme'] = new ArrayObject(array('blog_theme',__('Blog appearance'),'blog_theme.php',
+	$_fav['blog_theme'] = new ArrayObject(array('blog_theme','Blog appearance','blog_theme.php',
 		'images/menu/themes.png','images/menu/blog-theme-b.png',
 		'admin',null,null));
 
-	$_fav['blogs'] = new ArrayObject(array('blogs',__('Blogs'),'blogs.php',
+	$_fav['blogs'] = new ArrayObject(array('blogs','Blogs','blogs.php',
 		'images/menu/blogs.png','images/menu/blogs-b.png',
 		'usage,contentadmin',null,null));
-	$_fav['users'] = new ArrayObject(array('users',__('Users'),'users.php',
+	$_fav['users'] = new ArrayObject(array('users','Users','users.php',
 		'images/menu/users.png','images/menu/users-b.png',
 		null,null,null));
-	$_fav['plugins'] = new ArrayObject(array('plugins',__('Plugins'),'plugins.php',
+	$_fav['plugins'] = new ArrayObject(array('plugins','Plugins','plugins.php',
 		'images/menu/plugins.png','images/menu/plugins-b.png',
 		null,null,null));
-	$_fav['langs'] = new ArrayObject(array('langs',__('Languages'),'langs.php',
+	$_fav['langs'] = new ArrayObject(array('langs','Languages','langs.php',
 		'images/menu/langs.png','images/menu/langs-b.png',
 		null,null,null));
@@ -254,11 +267,4 @@
 	}
 */
-	$_menu['Dashboard']->prependItem(__('My preferences'),'preferences.php','images/menu/user-pref.png',
-		preg_match('/preferences.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
-		true);
-	$_menu['Dashboard']->prependItem(__('Dashboard'),'index.php','images/menu/dashboard.png',
-		preg_match('/index.php$/',$_SERVER['REQUEST_URI']),
-		$core->auth->check('usage,contentadmin',$core->blog->id));
-	
 	$_menu['Blog']->prependItem(__('Blog appearance'),'blog_theme.php','images/menu/themes.png',
 		preg_match('/blog_theme.php(\?.*)?$/',$_SERVER['REQUEST_URI']),
@@ -309,9 +315,11 @@
 		// User favorites only
 		if (!$v['global']) {
-			$count++;
 			$fav = unserialize($v['value']);
-			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-				preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']),
-				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+			if (dc_valid_fav($fav['url'])) {
+				$count++;
+				$_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'],
+					preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']),
+					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+			}
 		}
 	}	
@@ -319,9 +327,11 @@
 		// Global favorites if any
 		foreach ($ws->dumpPrefs() as $k => $v) {
-			$count++;
 			$fav = unserialize($v['value']);
-			$_menu['Favorites']->addItem($fav['title'],$fav['url'],$fav['small-icon'],
-				preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']),
-				(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+			if (dc_valid_fav($fav['url'])) {
+				$count++;
+				$_menu['Favorites']->addItem(__($fav['title']),$fav['url'],$fav['small-icon'],
+					preg_match(dc_prepare_url($fav['url']),$_SERVER['REQUEST_URI']),
+					(($fav['permissions'] == '*') || $core->auth->check($fav['permissions'],$core->blog->id)),$fav['id'],$fav['class']);
+			}
 		}
 	}
Index: inc/config.php.in
===================================================================
--- inc/config.php.in	(revision 0)
+++ inc/config.php.in	(revision 362)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -40,4 +40,7 @@
 define('DC_ADMIN_URL','');
 
+// Admin mail from address. For password recovery and such.
+define('DC_ADMIN_MAILFROM','');
+
 // Cookie's name
 define('DC_SESSION_NAME','dcxd');
Index: inc/core/class.dc.auth.php
===================================================================
--- inc/core/class.dc.auth.php	(revision 3)
+++ inc/core/class.dc.auth.php	(revision 333)
@@ -13,37 +13,52 @@
 
 /**
-@ingroup DC_CORE
-@nosubgrouping
-@brief Authentication and user credentials management
-
-dcAuth is a class used to handle everything related to user authentication
-and credentials. Object is provided by dcCore $auth property.
+* @ingroup DC_CORE
+* @nosubgrouping
+* @brief Authentication and user credentials management
+* 
+* dcAuth is a class used to handle everything related to user authentication
+* and credentials. Object is provided by dcCore $auth property.
 */
 class dcAuth
 {
-	protected $core;		///< <b>dcCore</b> dcCore instance
-	protected $con;		///< <b>connection</b> Database connection object
-	
-	protected $user_table;	///< <b>string</b>	User table name
-	protected $perm_table;	///< <b>string</b>	Perm table name
-	
-	protected $user_id;					///< <b>string</b>		Current user ID
-	protected $user_info = array();		///< <b>array</b>		Array with user information
-	protected $user_options = array();		///< <b>array</b>		Array with user options
-	protected $user_change_pwd;			///< <b>boolean</b>		User must change his password after login
-	protected $user_admin;				///< <b>boolean</b>		User is super admin
-	protected $permissions = array();		///< <b>array</b>		Permissions for each blog
-	protected $allow_pass_change = true;	///< <b>boolean</b>		User can change its password
-	protected $blogs = array();			///< <b>array</b>		List of blogs on which the user has permissions
-	public $blog_count = null;				///< <b>integer</b>		Count of user blogs
-	
-	protected $perm_types;	///< <b>array</b> Permission types
-	
-	public $user_prefs;	///< <b>dcPrefs</b>	dcPrefs object
-	
-	/**
-	Class constructor. Takes dcCore object as single argument.
-	
-	@param	core		<b>dcCore</b>		dcCore object
+	/** @var dcCore dcCore instance */
+	protected $core;
+	/** @var connection Database connection object */
+	protected $con;
+	
+	/** @var string User table name */
+	protected $user_table;
+	/** @var string Perm table name */
+	protected $perm_table;
+	
+	/** @var string Current user ID */
+	protected $user_id;
+	/** @var array Array with user information */
+	protected $user_info = array();
+	/** @var array Array with user options */
+	protected $user_options = array();
+	/** @var boolean User must change his password after login */
+	protected $user_change_pwd;
+	/** @var boolean User is super admin */
+	protected $user_admin;
+	/** @var array Permissions for each blog */
+	protected $permissions = array();
+	/** @var boolean User can change its password */
+	protected $allow_pass_change = true;
+	/** @var array List of blogs on which the user has permissions */
+	protected $blogs = array();
+	/** @var integer Count of user blogs */
+	public $blog_count = null;
+	
+	/** @var array Permission types */
+	protected $perm_types;
+	
+	/** @var dcPrefs dcPrefs object */
+	public $user_prefs;
+	
+	/**
+	* Class constructor. Takes dcCore object as single argument.
+	* 
+	* @param dcCore	$core		dcCore object
 	*/
 	public function __construct($core)
@@ -70,14 +85,15 @@
 	//@{
 	/**
-	Checks if user exists and can log in. <var>$pwd</var> argument is optionnal
-	while you may need to check user without password. This method will create
-	credentials and populate all needed object properties.
-	
-	@param	user_id	<b>string</b>		User ID
-	@param	pwd		<b>string</b>		User password
-	@param	user_key	<b>string</b>		User key check
-	@return	<b>boolean</b>
-	*/
-	public function checkUser($user_id, $pwd=null, $user_key=null)
+	* Checks if user exists and can log in. <var>$pwd</var> argument is optionnal
+	* while you may need to check user without password. This method will create
+	* credentials and populate all needed object properties.
+	* 
+	* @param string	$user_id		User ID
+	* @param string	$pwd			User password
+	* @param string	$user_key		User key check
+	* @param boolean	$check_blog	checks if user is associated to a blog or not.
+	* @return boolean
+	*/
+	public function checkUser($user_id, $pwd=null, $user_key=null, $check_blog=true)
 	{
 		# Check user and password
@@ -141,5 +157,5 @@
 		
 		# Get permissions on blogs
-		if ($this->findUserBlog() === false) {
+		if ($check_blog && ($this->findUserBlog() === false)) {
 			return false;
 		}
@@ -148,8 +164,8 @@
 	
 	/**
-	This method only check current user password.
-	
-	@param	pwd		<b>string</b>		User password
-	@return	<b>boolean</b>
+	* This method only check current user password.
+	* 
+	* @param string	$pwd			User password
+	* @return boolean
 	*/
 	public function checkPassword($pwd)
@@ -163,7 +179,7 @@
 	
 	/**
-	This method checks if user session cookie exists
-	
-	@return	<b>boolean</b>
+	* This method checks if user session cookie exists
+	* 
+	* @return boolean
 	*/
 	public function sessionExists()
@@ -173,7 +189,7 @@
 	
 	/**
-	This method checks user session validity.
-	
-	@return	<b>boolean</b>
+	* This method checks user session validity.
+	* 
+	* @return boolean
 	*/
 	public function checkSession($uid=null)
@@ -212,7 +228,7 @@
 	
 	/**
-	Checks if user is super admin
-	
-	@return	<b>boolean</b>
+	* Checks if user is super admin
+	* 
+	* @return boolean
 	*/
 	public function isSuperAdmin()
@@ -222,11 +238,11 @@
 	
 	/**
-	Checks if user has permissions given in <var>$permissions</var> for blog
-	<var>$blog_id</var>. <var>$permissions</var> is a coma separated list of
-	permissions.
-	
-	@param	permissions	<b>string</b>		Permissions list
-	@param	blog_id		<b>string</b>		Blog ID
-	@return	<b>boolean</b>
+	* Checks if user has permissions given in <var>$permissions</var> for blog
+	* <var>$blog_id</var>. <var>$permissions</var> is a coma separated list of
+	* permissions.
+	* 
+	* @param string	$permissions	Permissions list
+	* @param string	$blog_id		Blog ID
+	* @return boolean
 	*/
 	public function check($permissions,$blog_id)
@@ -257,7 +273,7 @@
 	
 	/**
-	Returns true if user is allowed to change its password.
-	
-	@return	<b>boolean</b>
+	* Returns true if user is allowed to change its password.
+	* 
+	* @return	boolean
 	*/
 	public function allowPassChange()
@@ -312,8 +328,9 @@
 	//@{
 	/**
-	Calls <var>$f</var> function with super admin rights.
-	
-	@param	f		<b>callback</b>	Callback function
-	@return	<b>mixed</b> Function result
+	* Calls $f function with super admin rights.
+	* Returns the function result.
+	* 
+	* @param callback	$f			Callback function
+	* @return mixed
 	*/
 	public function sudo($f)
@@ -346,11 +363,12 @@
 	//@{
 	/**
-	Returns user permissions for a blog as an array which looks like:
-	
-	 - [blog_id]
-	   - [permission] => true
-	   - ...
-	
-	@return	<b>array</b>
+	* Returns user permissions for a blog as an array which looks like:
+	* 
+	*  - [blog_id]
+	*    - [permission] => true
+	*    - ...
+	* 
+	* @param string	$blog_id		Blog ID
+	* @return array
 	*/
 	public function getPermissions($blog_id)
@@ -422,7 +440,7 @@
 	
 	/**
-	Returns current user ID
-	
-	@return	<b>string</b>
+	* Returns current user ID
+	* 
+	* @return string
 	*/
 	public function userID()
@@ -432,8 +450,8 @@
 	
 	/**
-	Returns information about a user .
-	
-	@param	n		<b>string</b>		Information name
-	@return	<b>string</b> Information value
+	* Returns information about a user .
+	* 
+	* @param string	$n			Information name
+	* @return string
 	*/
 	public function getInfo($n)
@@ -447,8 +465,8 @@
 	
 	/**
-	Returns a specific user option
-	
-	@param	n		<b>string</b>		Option name
-	@return	<b>string</b> Option value
+	* Returns a specific user option
+	* 
+	* @param string	$n			Option name
+	* @return string
 	*/
 	public function getOption($n)
@@ -461,7 +479,7 @@
 	
 	/**
-	Returns all user options in an associative array.
-	
-	@return	<b>array</b>
+	* Returns all user options in an associative array.
+	* 
+	* @return array
 	*/
 	public function getOptions()
@@ -474,8 +492,8 @@
 	//@{
 	/**
-	Returns an array with permissions parsed from the string <var>$level</var>
-	
-	@param	level	<b>string</b>		Permissions string
-	@return	<b>array</b>
+	* Returns an array with permissions parsed from the string <var>$level</var>
+	* 
+	* @param string	$level		Permissions string
+	* @return array
 	*/
 	public function parsePermissions($level)
@@ -492,7 +510,7 @@
 	
 	/**
-	Returns <var>perm_types</var> property content.
-	
-	@return	<b>array</b>
+	* Returns <var>perm_types</var> property content.
+	* 
+	* @return array
 	*/
 	public function getPermissionsTypes()
@@ -502,8 +520,8 @@
 	
 	/**
-	Adds a new permission type.
-	
-	@param	name		<b>string</b>		Permission name
-	@param	title	<b>string</b>		Permission title
+	* Adds a new permission type.
+	* 
+	* @param string	$name		Permission name
+	* @param string	$title		Permission title
 	*/
 	public function setPermissionType($name,$title)
@@ -516,10 +534,10 @@
 	//@{
 	/**
-	Add a recover key to a specific user identified by its email and
-	password.
-	
-	@param	user_id		<b>string</b>		User ID
-	@param	user_email	<b>string</b>		User Email
-	@return	<b>string</b> Recover key
+	* Add a recover key to a specific user identified by its email and
+	* password.
+	* 
+	* @param string	$user_id		User ID
+	* @param string	$user_email	User Email
+	* @return string
 	*/
 	public function setRecoverKey($user_id,$user_email)
@@ -547,12 +565,12 @@
 	
 	/**
-	Creates a new user password using recovery key. Returns an array:
-	
-	- user_email
-	- user_id
-	- new_pass
-	
-	@param	recover_key	<b>string</b>		Recovery key
-	@return	<b>array</b>
+	* Creates a new user password using recovery key. Returns an array:
+	* 
+	* - user_email
+	* - user_id
+	* - new_pass
+	* 
+	* @param string	$recover_key	Recovery key
+	* @return array
 	*/
 	public function recoverUserPassword($recover_key)
@@ -590,22 +608,22 @@
 	
 	/**
-	Called after core->addUser
-	@see		dcCore::addUser
-	@param	cur		<b>cursor</b>		User cursor
+	* Called after core->addUser
+	* @see dcCore::addUser
+	* @param cursor	$cur			User cursor
 	*/
 	public function afterAddUser($cur) {}
 	
 	/**
-	Called after core->updUser
-	@see		dcCore::updUser
-	@param	id		<b>string</b>		User ID
-	@param	cur		<b>cursor</b>		User cursor
+	* Called after core->updUser
+	* @see dcCore::updUser
+	* @param string	$id			User ID
+	* @param cursor	$cur			User cursor
 	*/
 	public function afterUpdUser($id,$cur) {}
 	
 	/**
-	Called after core->delUser
-	@see		dcCore::delUser
-	@param	id		<b>string</b>		User ID
+	* Called after core->delUser
+	* @see dcCore::delUser
+	* @param string	$id			User ID
 	*/
 	public function afterDelUser($id) {}
Index: inc/core/class.dc.blog.php
===================================================================
--- inc/core/class.dc.blog.php	(revision 504)
+++ inc/core/class.dc.blog.php	(revision 407)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -21,21 +21,36 @@
 class dcBlog
 {
-	protected $core;	///< <b>dcCore</b> dcCore instance
-	public $con;		///< <b>connection</b>	Database connection object
-	public $prefix;	///< <b>string</b>		Database table prefix
-	
-	public $id;		///< <b>string</b>		Blog ID
-	public $uid;		///< <b>string</b>		Blog unique ID
-	public $name;		///< <b>string</b>		Blog name
-	public $desc;		///< <b>string</b>		Blog description
-	public $url;		///< <b>string</b>		Blog URL
-	public $host;		///< <b>string</b>		Blog host
-	public $creadt;	///< <b>string</b>		Blog creation date
-	public $upddt;		///< <b>string</b>		Blog last update date
-	public $status;	///< <b>string</b>		Blog status
-	
-	public $settings;		///< <b>dcSettings</b>	dcSettings object
-	public $themes_path;	///< <b>string</b>		Blog theme path
-	public $public_path;	///< <b>string</b>		Blog public path
+	/** @var dcCore dcCore instance */
+	protected $core;
+	/** @var connection Database connection object */
+	public $con;
+	/** @var string Database table prefix */
+	public $prefix;
+	
+	/** @var string Blog ID */
+	public $id;
+	/** @var string Blog unique ID */
+	public $uid;
+	/** @var string Blog name */
+	public $name;
+	/** @var string Blog description */
+	public $desc;
+	/** @var string Blog URL */
+	public $url;
+	/** @var string Blog host */
+	public $host;
+	/** @var string Blog creation date */
+	public $creadt;
+	/** @var string Blog last update date */
+	public $upddt;
+	/** @var string Blog status */
+	public $status;
+	
+	/** @var dcSettings dcSettings object */
+	public $settings;
+	/** @var string Blog theme path */
+	public $themes_path;
+	/** @var string Blog public path */
+	public $public_path;
 	
 	private $post_status = array();
@@ -44,5 +59,6 @@
 	private $categories;
 	
-	public $without_password = true;	///< <b>boolean</b> Disallow entries password protection
+	/** @var boolean Disallow entries password protection */
+	public $without_password = true;
 	
 	/**
@@ -88,22 +104,4 @@
 			$this->core->callBehavior('coreBlogConstruct',$this);
 		}
-	}
-	
-	/**
-	Returns sql statement for a given parameter. 
-	Computes in() or not_in lists in parameter
-
-	@param	params	<b>array</b> query parameters
-	@param	param_name	<b>array</b> parameter to check
-	@param	sql column	<b>array</b> sql column matching parameter name
-	
-	@return	<b>string</b> the generated SQL statement
-	*/
-	protected function getInParamStr($params, $param_name, $sql_column) {
-		$not='';
-		if (isset($params[$param_name.'_not'])) {
-			$not = "NOT ";
-		}
-		return $sql_column.' '.$not.$this->con->in($params[$param_name]).' ';
 	}
 	
@@ -409,5 +407,5 @@
 		
 		if (!empty($params['post_type'])) {
-			$strReq .= "AND post_type = '".$this->con->escape($params['post_type'])."' ";
+			$strReq .= 'AND P.post_type '.$this->con->in($params['post_type']);
 		}
 		
@@ -729,8 +727,6 @@
 		if (isset($params['post_type']))
 		{
-			if (is_array($params['post_type']) && !empty($params['post_type'])) {
+			if (is_array($params['post_type']) || $params['post_type'] != '') {
 				$strReq .= 'AND post_type '.$this->con->in($params['post_type']);
-			} elseif ($params['post_type'] != '') {
-				$strReq .= "AND post_type = '".$this->con->escape($params['post_type'])."' ";
 			}
 		}
@@ -754,5 +750,5 @@
 		
 		if (!empty($params['user_id'])) {
-			$strReq .= 'AND '.$this->getInParamStr($params,'user_id','U.user_id');
+			$strReq .= "AND U.user_id = '".$this->con->escape($params['user_id'])."' ";
 		}
 		
@@ -780,5 +776,5 @@
 		/* Other filters */
 		if (isset($params['post_status'])) {
-			$strReq .= 'AND '.$this->getInParamStr($params,'post_status','post_status');
+			$strReq .= 'AND post_status = '.(integer) $params['post_status'].' ';
 		}
 		
@@ -803,5 +799,5 @@
 		
 		if (!empty($params['post_lang'])) {
-			$strReq .= 'AND '.$this->getInParamStr($params,'post_lang','P.post_lang');
+			$strReq .= "AND P.post_lang = '".$this->con->escape($params['post_lang'])."' ";
 		}
 		
@@ -876,11 +872,11 @@
 		
 		if($dir > 0) {
-               $sign = '>';
-               $order = 'ASC';
-          }
-          else {
-               $sign = '<';
-               $order = 'DESC';
-          }
+			$sign = '>';
+			$order = 'ASC';
+		}
+		else {
+			$sign = '<';
+			$order = 'DESC';
+		}
 		
 		$params['post_type'] = $post->post_type;
@@ -1043,5 +1039,5 @@
 			$strReq .= "AND post_type = 'post' ";
 		}
-				
+		
 		if (!empty($params['year'])) {
 			$strReq .= 'AND '.$this->con->dateFormat('post_dt','%Y')." = '".sprintf('%04d',$params['year'])."' ";
@@ -1183,5 +1179,5 @@
 		$cur->post_upddt = date('Y-m-d H:i:s');
 		
-		#�If user is only "usage", we need to check the post's owner
+		#If user is only "usage", we need to check the post's owner
 		if (!$this->core->auth->check('contentadmin',$this->id))
 		{
@@ -1446,4 +1442,5 @@
 	{
 		$field = $field == 'cat_id' ? 'cat_id' : 'cat_url';
+		
 		$sub = array();
 		$not = array();
@@ -1459,11 +1456,7 @@
 			if (isset($args['not'])) { $not[$id] = 1; }
 			if (isset($args['sub'])) { $sub[$id] = 1; }
-			$nullExcluded = false;
 			if ($field == 'cat_id') {
 				if (preg_match('/^null$/i',$id)) {
 					$queries[$id] = 'P.cat_id IS NULL';
-					if ($not[$id]) {
-						$nullExcluded = true;
-					}
 				}
 				else {
@@ -1507,12 +1500,9 @@
 		
 		if ($sql[1]) {
-			if ($nullExcluded) {
-				$sql[1] = 'NOT('.$sql[1].')';
-			} else {
-				$sql[1] = '(P.cat_id IS NULL OR NOT('.$sql[1].'))';
-			}
+			$sql[1] = '(P.cat_id IS NULL OR NOT('.$sql[1].'))';
 		} else {
 			unset($sql[1]);
 		}
+		
 		return implode(' AND ',$sql);
 	}
@@ -1792,9 +1782,5 @@
 		if (!empty($params['post_type']))
 		{
-			if (is_array($params['post_type']) && !empty($params['post_type'])) {
-				$strReq .= 'AND post_type '.$this->con->in($params['post_type']);
-			} else {
-				$strReq .= "AND post_type = '".$this->con->escape($params['post_type'])."' ";
-			}
+			$strReq .= 'AND post_type '.$this->con->in($params['post_type']);
 		}
 		
Index: inc/core/class.dc.categories.php
===================================================================
--- inc/core/class.dc.categories.php	(revision 0)
+++ inc/core/class.dc.categories.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.core.php
===================================================================
--- inc/core/class.dc.core.php	(revision 136)
+++ inc/core/class.dc.core.php	(revision 407)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -27,5 +27,5 @@
 {
 	public $con;		///< <b>connection</b>		Database connection object
-	public $prefix;	///< <b>string</b>			Database tables prefix
+	public $prefix;		///< <b>string</b>			Database tables prefix
 	public $blog;		///< <b>dcBlog</b>			dcBlog object
 	public $error;		///< <b>dcError</b>			dcError object
@@ -36,5 +36,6 @@
 	public $plugins;	///< <b>dcModules</b>		dcModules object
 	public $media;		///< <b>dcMedia</b>			dcMedia object
-	public $rest;		///< <b>dcRestServer</b>		dcRestServer object
+	public $postmedia;	///< <b>dcPostMedia</b>		dcPostMedia object
+	public $rest;		///< <b>dcRestServer</b>	dcRestServer object
 	public $log;		///< <b>dcLog</b>			dcLog object
 	
@@ -63,4 +64,16 @@
 		if ($this->con instanceof mysqlConnection) {
 			mysqlConnection::$weak_locks = true;
+		}
+		
+		# define searchpath for postgresql
+		if ($this->con instanceof pgsqlConnection)
+		{
+			$searchpath = explode ('.',$prefix,2);
+			if (count($searchpath) > 1)
+			{
+				$prefix = $searchpath[1];
+				$sql = 'SET search_path TO '.$searchpath[0].',public;';
+				$this->con->execute($sql);
+			}
 		}
 		
Index: inc/core/class.dc.error.php
===================================================================
--- inc/core/class.dc.error.php	(revision 0)
+++ inc/core/class.dc.error.php	(revision 334)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -13,20 +13,24 @@
 
 /**
-@ingroup DC_CORE
-@brief Error class
-
-dcError is a very simple error class, with a stack. Call dcError::add to
-add an error in stack. In administration area, errors are automatically
-displayed.
+* @ingroup DC_CORE
+* @brief Error class
+* 
+* dcError is a very simple error class, with a stack. Call dcError::add to
+* add an error in stack. In administration area, errors are automatically
+* displayed.
 */
 class dcError
 {
-	protected $errors = array();				///< <b>array</b>	Errors stack
-	protected $flag = false;					///< <b>boolean</b>	True if stack is not empty
-	protected $html_list = "<ul>\n%s</ul>\n";	///< <b>string</b>	HTML errors list pattern
-	protected $html_item = "<li>%s</li>\n";	///< <b>string</b>	HTML error item pattern
+	/** @var array Errors stack */
+	protected $errors = array();
+	/** @var boolean True if stack is not empty */
+	protected $flag = false;
+	/** @var string HTML errors list pattern */
+	protected $html_list = "<ul>\n%s</ul>\n";
+	/** @var string HTML error item pattern */
+	protected $html_item = "<li>%s</li>\n";
 	
 	/**
-	Object constructor.
+	* Object constructor.
 	*/
 	public function __construct()
@@ -37,7 +41,7 @@
 	
 	/**
-	Object string representation. Returns errors stack.
-	
-	@return	<b>string</b>
+	* Object string representation. Returns errors stack.
+	* 
+	* @return string
 	*/
 	public function __toString()
@@ -54,7 +58,7 @@
 	
 	/**
-	Adds an error to stack.
-	
-	@param	msg		<b>string</b>		Error message
+	* Adds an error to stack.
+	* 
+	* @param string	$msg			Error message
 	*/
 	public function add($msg)
@@ -65,7 +69,7 @@
 	
 	/**
-	Returns the value of <var>flag</var> property.
-	
-	@return	<b>boolean</b> True if errors stack is not empty
+	* Returns the value of <var>flag</var> property. True if errors stack is not empty
+	* 
+	* @return boolean
 	*/
 	public function flag()
@@ -75,5 +79,5 @@
 	
 	/**
-	Resets errors stack.
+	* Resets errors stack.
 	*/
 	public function reset()
@@ -84,7 +88,7 @@
 	
 	/**
-	Returns <var>errors</var> property.
-	
-	@return	<b>array</b>
+	* Returns <var>errors</var> property.
+	* 
+	* @return array
 	*/
 	public function getErrors()
@@ -94,8 +98,8 @@
 	
 	/**
-	Sets <var>list</var> and <var>item</var> properties.
-	
-	@param	list		<b>string</b>		HTML errors list pattern
-	@param	item		<b>string</b>		HTML error item pattern
+	* Sets <var>list</var> and <var>item</var> properties.
+	* 
+	* @param string	$list		HTML errors list pattern
+	* @param string	$item		HTML error item pattern
 	*/
 	public function setHTMLFormat($list,$item)
@@ -106,7 +110,7 @@
 	
 	/**
-	Returns errors stack as HTML.
-	
-	@return	<b>string</b>
+	* Returns errors stack as HTML.
+	* 
+	* @return string
 	*/
 	public function toHTML()
Index: inc/core/class.dc.log.php
===================================================================
--- inc/core/class.dc.log.php	(revision 126)
+++ inc/core/class.dc.log.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.media.php
===================================================================
--- inc/core/class.dc.media.php	(revision 40)
+++ inc/core/class.dc.media.php	(revision 505)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -23,6 +23,6 @@
 	protected $con;		///< <b>connection</b> Database connection
 	protected $table;		///< <b>string</b> Media table name
-	protected $table_ref;	///< <b>string</b> Post-media relation table name
 	protected $type;		///< <b>string</b> Media type filter
+	protected $postmedia;
 	protected $file_sort = 'name-asc';
 	
@@ -57,4 +57,5 @@
 		$this->core =& $core;
 		$this->con =& $core->con;
+		$this->postmedia = new dcPostMedia($core);
 		
 		if ($this->core->blog == null) {
@@ -63,5 +64,4 @@
 		
 		$this->table = $this->core->prefix.'media';
-		$this->table_ref = $this->core->prefix.'post_media';
 		$root = $this->core->blog->public_path;
 		
@@ -175,14 +175,21 @@
 	
 	@param	href		<b>string</b>		URL pattern
+	@param	last		<b>string</b>		Last item pattern
 	@return	<b>string</b> HTML code
 	*/
-	public function breadCrumb($href)
+	public function breadCrumb($href,$last='')
 	{
 		$res = '';
 		if ($this->relpwd && $this->relpwd != '.') {
 			$pwd = '';
-			foreach (explode('/',$this->relpwd) as $v) {
-				$pwd .= rawurlencode($v).'/';
-				$res .= '<a href="'.sprintf($href,$pwd).'">'.$v.'</a> / ';
+			$arr = explode('/',$this->relpwd);
+			$count = count($arr);
+			foreach ($arr as $v) {
+				if (($last != '') && (0 === --$count)) {
+					$res .= sprintf($last,$v);
+				} else {
+					$pwd .= rawurlencode($v).'/';
+					$res .= '<a href="'.sprintf($href,$pwd).'">'.$v.'</a> / ';
+				}
 			}
 		}
@@ -494,19 +501,12 @@
 	public function getPostMedia($post_id,$media_id=null)
 	{
-		$post_id = (integer) $post_id;
-		
-		$strReq =
-		'SELECT media_file, M.media_id, media_path, media_title, media_meta, media_dt, '.
-		'media_creadt, media_upddt, media_private, user_id '.
-		'FROM '.$this->table.' M '.
-		'INNER JOIN '.$this->table_ref.' PM ON (M.media_id = PM.media_id) '.
-		"WHERE media_path = '".$this->path."' ".
-		'AND post_id = '.$post_id.' ';
-		
+		$params = array(
+			'post_id' => $post_id,
+			'media_path' => $this->path
+		);
 		if ($media_id) {
-			$strReq .= 'AND M.media_id = '.(integer) $media_id.' ';
-		}
-		
-		$rs = $this->con->select($strReq);
+			$params['media_id'] = (integer) $media_id;
+		}
+		$rs = $this->postmedia->getPostMedia($params);
 		
 		$res = array();
@@ -523,45 +523,19 @@
 	
 	/**
-	Attaches a media to a post.
-	
-	@param	post_id	<b>integer</b>		Post ID
-	@param	media_id	<b>integer</b>		Optionnal media ID
+	@deprecated since version 2.4
+	@see dcPostMedia::addPostMedia
 	*/
 	public function addPostMedia($post_id,$media_id)
 	{
-		$post_id = (integer) $post_id;
-		$media_id = (integer) $media_id;
-		
-		$f = $this->getPostMedia($post_id,$media_id);
-		
-		if (!empty($f)) {
-			return;
-		}
-		
-		$cur = $this->con->openCursor($this->table_ref);
-		$cur->post_id = $post_id;
-		$cur->media_id = $media_id;
-		
-		$cur->insert();
-		$this->core->blog->triggerBlog();
-	}
-	
-	/**
-	Detaches a media from a post.
-	
-	@param	post_id	<b>integer</b>		Post ID
-	@param	media_id	<b>integer</b>		Optionnal media ID
+		$this->postmedia->addPostMedia($post_id,$media_id);
+	}
+	
+	/**
+	@deprecated since version 2.4
+	@see dcPostMedia::removePostMedia
 	*/
 	public function removePostMedia($post_id,$media_id)
 	{
-		$post_id = (integer) $post_id;
-		$media_id = (integer) $media_id;
-		
-		$strReq = 'DELETE FROM '.$this->table_ref.' '.
-				'WHERE post_id = '.$post_id.' '.
-				'AND media_id = '.$media_id.' ';
-		
-		$this->con->execute($strReq);
-		$this->core->blog->triggerBlog();
+		$this->postmedia->removePostMedia($post_id,$media_id,"attachment");
 	}
 	
Index: inc/core/class.dc.meta.php
===================================================================
--- inc/core/class.dc.meta.php	(revision 0)
+++ inc/core/class.dc.meta.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.modules.php
===================================================================
--- inc/core/class.dc.modules.php	(revision 43)
+++ inc/core/class.dc.modules.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -159,9 +159,26 @@
 	@param	author		<b>string</b>		Module author name
 	@param	version		<b>string</b>		Module version
-	@param	permissions	<b>string</b>		Module permissions
-	@param	priority		<b>integer</b>		Module priority
-	*/
-	public function registerModule($name,$desc,$author,$version,$permissions=null,$priority=1000)
-	{
+	@param	properties	<b>array</b>		extra properties (currently available keys : permissions, priority)
+	*/
+	public function registerModule($name,$desc,$author,$version, $properties = array())
+	{
+		if (!is_array($properties)) {
+			//Fallback to legacy registerModule parameters
+			$args = func_get_args();
+			$properties = array();
+			if (isset($args[4])) {
+				$properties['permissions']=$args[4];
+			}
+			if (isset($args[5])) {
+				$properties['priority']= (integer)$args[5];
+			}
+		}
+		$properties = array_merge(
+			array(
+				'permissions' => null,
+				'priority' => 1000
+			), $properties
+		);
+		$permissions = $properties['permissions'];
 		if ($this->ns == 'admin') {
 			if ($permissions == '' && !$this->core->auth->isSuperAdmin()) {
@@ -177,13 +194,14 @@
 			if (!$module_exists || ($module_exists && $module_overwrite)) {
 				$this->modules_names[$name] = $version;
-				$this->modules[$this->id] = array(
-					'root' => $this->mroot,
-					'name' => $name,
-					'desc' => $desc,
-					'author' => $author,
-					'version' => $version,
-					'permissions' => $permissions,
-					'priority' => $priority === null ? 1000 : (integer) $priority,
-					'root_writable' => is_writable($this->mroot)
+				$this->modules[$this->id] = array_merge(
+					$properties,
+					array(
+						'root' => $this->mroot,
+						'name' => $name,
+						'desc' => $desc,
+						'author' => $author,
+						'version' => $version,
+						'root_writable' => is_writable($this->mroot)
+					)
 				);
 			}
Index: inc/core/class.dc.namespace.php
===================================================================
--- inc/core/class.dc.namespace.php	(revision 0)
+++ inc/core/class.dc.namespace.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.postmedia.php
===================================================================
--- inc/core/class.dc.postmedia.php	(revision 407)
+++ inc/core/class.dc.postmedia.php	(revision 407)
@@ -0,0 +1,172 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+if (!defined('DC_RC_PATH')) { return; }
+
+class dcPostMedia
+{
+	protected $core;		///< <b>dcCore</b> dcCore instance
+	protected $con;		///< <b>connection</b> Database connection
+	protected $table;		///< <b>string</b> Post-Media table name
+	
+	/**
+	Object constructor.
+	
+	@param	core		<b>dcCore</b>		dcCore instance
+	@param	type		<b>string</b>		Media type filter
+	*/
+	public function __construct($core,$type='')
+	{
+		$this->core =& $core;
+		$this->con =& $core->con;
+		$this->table = $this->core->prefix.'post_media';
+	}
+	
+	/**
+	Returns media items attached to a blog post. Result is an array containing
+	fileItems objects.
+	
+	@param	post_id	<b>integer</b>		Post ID
+	@param	media_id	<b>integer</b>		Optionnal media ID
+	@return	<b>array</b> Array of fileItems
+	*/
+	public function getPostMedia($params=array())
+	{
+		$strReq =
+		'SELECT M.media_file, M.media_id, M.media_path, M.media_title, M.media_meta, M.media_dt, '.
+		'M.media_creadt, M.media_upddt, M.media_private, M.user_id, PM.post_id ';
+		
+		if (!empty($params['columns']) && is_array($params['columns'])) {
+			$strReq .= implode(', ',$params['columns']).', ';
+		}
+		
+		$strReq .=
+		'FROM '.$this->core->prefix.'media M '.
+		'INNER JOIN '.$this->table.' PM ON (M.media_id = PM.media_id) ';
+		
+		if (!empty($params['from'])) {
+			$strReq .= $params['from'].' ';
+		}
+		
+		$where='';
+		if (isset($params['post_id'])) {
+			$where[]="PM.post_id ".$this->con->in($params['post_id']);
+		}
+		if (isset($params['media_id'])) {
+			$where[]="M.media_id ".$this->con->in($params['media_id']);
+		}
+		if (isset($params['media_path'])) {
+			$where[]="M.media_path ".$this->con->in($params['media_path']);
+		}
+		if (isset($params['link_type'])) {
+			$where[]="PM.link_type ".$this->con->in($params['link_type']);
+		} else {
+			$where[]="PM.link_type='attachment'";
+		}
+
+		$strReq .= 'WHERE '.join('AND ',$where).' ';
+
+		if (isset($params['sql'])) {
+			$strReq .= $params['sql'];
+		}
+	//echo $strReq; exit;
+		$rs = $this->con->select($strReq);
+		
+		return $rs;
+	}
+
+	/**
+	Attaches a media to a post.
+	
+	@param	post_id	<b>integer</b>		Post ID
+	@param	media_id	<b>integer</b>		Optionnal media ID
+	*/
+	public function addPostMedia($post_id,$media_id,$link_type='attachment')
+	{
+		$post_id = (integer) $post_id;
+		$media_id = (integer) $media_id;
+		
+		$f = $this->getPostMedia(array('post_id'=>$post_id,'media_id'=>$media_id,'link_type'=>$link_type));
+		
+		if (!$f->isEmpty()) {
+			return;
+		}
+		
+		$cur = $this->con->openCursor($this->table);
+		$cur->post_id = $post_id;
+		$cur->media_id = $media_id;
+		$cur->link_type = $link_type;
+		
+		$cur->insert();
+		$this->core->blog->triggerBlog();
+	}
+	
+	/**
+	Detaches a media from a post.
+	
+	@param	post_id	<b>integer</b>		Post ID
+	@param	media_id	<b>integer</b>		Optionnal media ID
+	*/
+	public function removePostMedia($post_id,$media_id,$link_type=null)
+	{
+		$post_id = (integer) $post_id;
+		$media_id = (integer) $media_id;
+		
+		$strReq = 'DELETE FROM '.$this->table.' '.
+				'WHERE post_id = '.$post_id.' '.
+				'AND media_id = '.$media_id.' ';
+		if ($link_type != null) {
+			$strReq .= "AND link_type = '".$this->con->escape($link_type)."'";
+		}
+		$this->con->execute($strReq);
+		$this->core->blog->triggerBlog();
+	}
+	
+	/**
+	Returns media items attached to a blog post. Result is an array containing
+	fileItems objects.
+	
+	@param	post_id	<b>integer</b>		Post ID
+	@param	media_id	<b>integer</b>		Optionnal media ID
+	@return	<b>array</b> Array of fileItems
+	*/
+	public function getLegacyPostMedia($post_id,$media_id=null)
+	{
+		$post_id = (integer) $post_id;
+		
+		$strReq =
+		'SELECT media_file, M.media_id, media_path, media_title, media_meta, media_dt, '.
+		'media_creadt, media_upddt, media_private, user_id '.
+		'FROM '.$this->table.' M '.
+		'INNER JOIN '.$this->table_ref.' PM ON (M.media_id = PM.media_id) '.
+		"WHERE media_path = '".$this->path."' ".
+		'AND post_id = '.$post_id.' ';
+		
+		if ($media_id) {
+			$strReq .= 'AND M.media_id = '.(integer) $media_id.' ';
+		}
+		
+		$rs = $this->con->select($strReq);
+		
+		$res = array();
+		
+		while ($rs->fetch()) {
+			$f = $this->fileRecord($rs);
+			if ($f !== null) {
+				$res[] = $f;
+			}
+		}
+		
+		return $res;
+	}
+	
+}
+?>
Index: inc/core/class.dc.rest.php
===================================================================
--- inc/core/class.dc.rest.php	(revision 0)
+++ inc/core/class.dc.rest.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.rs.extensions.php
===================================================================
--- inc/core/class.dc.rs.extensions.php	(revision 0)
+++ inc/core/class.dc.rs.extensions.php	(revision 270)
@@ -3,5 +3,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.settings.php
===================================================================
--- inc/core/class.dc.settings.php	(revision 0)
+++ inc/core/class.dc.settings.php	(revision 301)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -308,4 +308,77 @@
 	}
 
+	/**
+	Returns a list of settings matching given criteria, for any blog.
+	<b>$params</b> is an array taking the following
+	optionnal parameters:
+	
+	- ns : retrieve setting from given namespace
+	- id : retrieve only settings corresponding to the given id
+	
+	@param	params		<b>array</b>		Parameters
+	@return	<b>record</b>	A record 
+	*/
+	public function getGlobalSettings($params=array())
+	{
+		$strReq = "SELECT * from ".$this->table." ";
+		$where = array();
+		if (!empty($params['ns'])) {
+			$where[] = "setting_ns = '".$this->con->escape($params['ns'])."'";
+		}
+		if (!empty($params['id'])) {
+			$where[] = "setting_id = '".$this->con->escape($params['id'])."'";
+		}
+		if (isset($params['blog_id'])) {
+			if (!empty($params['blog_id'])) {
+				$where[] = "blog_id = '".$this->con->escape($params['blog_id'])."'";
+			} else {
+				$where[] = "blog_id IS NULL";
+			}
+		}
+		if (count($where) != 0) {
+			$strReq .= " WHERE ".join(" AND ", $where);
+		}
+		$strReq .= " ORDER by blog_id";
+		return $this->con->select($strReq);
+	}
+
+	/**
+	Updates a setting from a given record
+	
+	@param	rs		<b>record</b>		the setting to update
+	*/
+	public function updateSetting($rs) 
+	{
+		$cur = $this->con->openCursor($this->table);
+		$cur->setting_id = $rs->setting_id;
+		$cur->setting_value = $rs->setting_value;
+		$cur->setting_type = $rs->setting_type;
+		$cur->setting_label = $rs->setting_label;
+		$cur->blog_id = $rs->blog_id;
+		$cur->setting_ns = $rs->setting_ns;
+		if ($cur->blog_id == null) {
+				$where = 'WHERE blog_id IS NULL ';
+		} else {
+			$where = "WHERE blog_id = '".$this->con->escape($cur->blog_id)."' ";
+		}
+		$cur->update($where."AND setting_id = '".$this->con->escape($cur->setting_id)."' AND setting_ns = '".$this->con->escape($cur->setting_ns)."' ");
+	}
+	
+	/**
+	Drops a setting from a given record
+	
+	@param	rs		<b>record</b>		the setting to drop
+	@return	int		number of deleted records (0 if setting does not exist)
+	*/
+	public function dropSetting($rs) {
+		$strReq = "DELETE FROM ".$this->table.' ';
+		if ($rs->blog_id == null) {
+			$strReq .= 'WHERE blog_id IS NULL ';
+		} else {
+			$strReq .= "WHERE blog_id = '".$this->con->escape($rs->blog_id)."' ";
+		}
+		$strReq .= "AND setting_id = '".$this->con->escape($rs->setting_id)."' AND setting_ns = '".$this->con->escape($rs->setting_ns)."' ";
+		return $this->con->execute($strReq);
+	}
 }
 ?>
Index: inc/core/class.dc.themes.php
===================================================================
--- inc/core/class.dc.themes.php	(revision 0)
+++ inc/core/class.dc.themes.php	(revision 465)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -39,19 +39,37 @@
 	@param	author		<b>string</b>		Module author name
 	@param	version		<b>string</b>		Module version
-	@param	parent		<b>string</b>		Module parent
-	@param	priority		<b>integer</b>		Module priority
+	@param	properties	<b>array</b>		extra properties (currently available keys : parent, priority, standalone_config)
 	*/
-	public function registerModule($name,$desc,$author,$version,$parent = null,$priority = 1000)
+	public function registerModule($name,$desc,$author,$version,$properties = array())
 	{
+		if (!is_array($properties)) {
+			//Fallback to legacy registerModule parameters
+			$args = func_get_args();
+			$properties = array();
+			if (isset($args[4])) {
+				$properties['parent']=$args[4];
+			}
+			if (isset($args[5])) {
+				$properties['priority']= (integer)$args[5];
+			}
+		}
+		$properties = array_merge(
+			array(
+				'parent' => null,
+				'priority' => 1000,
+				'standalone_config' => false
+			), $properties
+		);
 		if ($this->id) {
-			$this->modules[$this->id] = array(
-			'root' => $this->mroot,
-			'name' => $name,
-			'desc' => $desc,
-			'author' => $author,
-			'version' => $version,
-			'parent' => $parent,
-			'priority' => 1000,
-			'root_writable' => is_writable($this->mroot)
+			$this->modules[$this->id] = array_merge(
+				$properties,
+				array(
+					'root' => $this->mroot,
+					'name' => $name,
+					'desc' => $desc,
+					'author' => $author,
+					'version' => $version,
+					'root_writable' => is_writable($this->mroot)
+				)
 			);
 		}
Index: inc/core/class.dc.trackback.php
===================================================================
--- inc/core/class.dc.trackback.php	(revision 0)
+++ inc/core/class.dc.trackback.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.update.php
===================================================================
--- inc/core/class.dc.update.php	(revision 0)
+++ inc/core/class.dc.update.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.utils.php
===================================================================
--- inc/core/class.dc.utils.php	(revision 0)
+++ inc/core/class.dc.utils.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core/class.dc.xmlrpc.php
===================================================================
--- inc/core/class.dc.xmlrpc.php	(revision 0)
+++ inc/core/class.dc.xmlrpc.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/core_error.php
===================================================================
--- inc/core_error.php	(revision 199)
+++ inc/core_error.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/dbschema/db-schema.php
===================================================================
--- inc/dbschema/db-schema.php	(revision 3)
+++ inc/dbschema/db-schema.php	(revision 407)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -152,6 +152,7 @@
 	->media_id	('bigint',	0,	false)
 	->post_id		('bigint',	0,	false)
-	
-	->primary('pk_post_media','media_id','post_id')
+	->link_type		('varchar',	32,	false,	"'attachment'")
+	
+	->primary('pk_post_media','media_id','post_id','link_type')
 	;
 
@@ -235,4 +236,5 @@
 $_s->media->index		('idx_media_user_id',			'btree',	'user_id');
 $_s->post_media->index	('idx_post_media_post_id',		'btree',	'post_id');
+$_s->post_media->index	('idx_post_media_media_id',		'btree',	'media_id');
 $_s->log->index		('idx_log_user_id',				'btree',	'user_id');
 $_s->comment->index		('idx_comment_post_id',			'btree',	'post_id');
Index: inc/dbschema/upgrade-cli.php
===================================================================
--- inc/dbschema/upgrade-cli.php	(revision 0)
+++ inc/dbschema/upgrade-cli.php	(revision 270)
@@ -5,5 +5,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 107)
+++ inc/dbschema/upgrade.php	(revision 462)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -20,5 +20,5 @@
 	}
 	
-	if (version_compare($version,DC_VERSION,'<') == 1)
+	if (version_compare($version,DC_VERSION,'<') == 1 || strpos(DC_VERSION,'dev'))
 	{
 		try
@@ -149,27 +149,27 @@
 				$init_fav = array();
 
-				$init_fav['new_post'] = array('new_post',__('New entry'),'post.php',
+				$init_fav['new_post'] = array('new_post','New entry','post.php',
 					'images/menu/edit.png','images/menu/edit-b.png',
 					'usage,contentadmin',null,'menu-new-post');
-				$init_fav['posts'] = array('posts',__('Entries'),'posts.php',
+				$init_fav['posts'] = array('posts','Entries','posts.php',
 					'images/menu/entries.png','images/menu/entries-b.png',
 					'usage,contentadmin',null,null);
-				$init_fav['comments'] = array('comments',__('Comments'),'comments.php',
+				$init_fav['comments'] = array('comments','Comments','comments.php',
 					'images/menu/comments.png','images/menu/comments-b.png',
 					'usage,contentadmin',null,null);
-				$init_fav['prefs'] = array('prefs',__('My preferences'),'preferences.php',
+				$init_fav['prefs'] = array('prefs','My preferences','preferences.php',
 					'images/menu/user-pref.png','images/menu/user-pref-b.png',
 					'*',null,null);
-				$init_fav['blog_pref'] = array('blog_pref',__('Blog settings'),'blog_pref.php',
+				$init_fav['blog_pref'] = array('blog_pref','Blog settings','blog_pref.php',
 					'images/menu/blog-pref.png','images/menu/blog-pref-b.png',
 					'admin',null,null);
-				$init_fav['blog_theme'] = array('blog_theme',__('Blog appearance'),'blog_theme.php',
+				$init_fav['blog_theme'] = array('blog_theme','Blog appearance','blog_theme.php',
 					'images/menu/themes.png','images/menu/blog-theme-b.png',
 					'admin',null,null);
 
-				$init_fav['pages'] = array('pages',__('Pages'),'plugin.php?p=pages',
+				$init_fav['pages'] = array('pages','Pages','plugin.php?p=pages',
 					'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png',
 					'contentadmin,pages',null,null);
-				$init_fav['blogroll'] = array('blogroll',__('Blogroll'),'plugin.php?p=blogroll',
+				$init_fav['blogroll'] = array('blogroll','Blogroll','plugin.php?p=blogroll',
 					'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png',
 					'usage,contentadmin',null,null);
@@ -290,4 +290,11 @@
 			}
 			
+			if (version_compare($version,'2.3.1','<'))
+			{
+				# Remove unecessary file
+				@unlink(DC_ROOT.'/'.'inc/libs/clearbricks/.hgignore');
+			}
+			
+			
 			$core->setVersion('core',DC_VERSION);
 			$core->blogDefaults();
Index: inc/load_plugin_file.php
===================================================================
--- inc/load_plugin_file.php	(revision 0)
+++ inc/load_plugin_file.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 456)
+++ inc/prepend.php	(revision 407)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -41,8 +41,7 @@
 $__autoload['dcCategories']			= dirname(__FILE__).'/core/class.dc.categories.php';
 $__autoload['dcError']				= dirname(__FILE__).'/core/class.dc.error.php';
-$__autoload['dcGenericMeta']		= dirname(__FILE__).'/core/class.dc.genmeta.php';
 $__autoload['dcMeta']				= dirname(__FILE__).'/core/class.dc.meta.php';
-$__autoload['dcUserMeta']				= dirname(__FILE__).'/core/class.dc.usermeta.php';
 $__autoload['dcMedia']				= dirname(__FILE__).'/core/class.dc.media.php';
+$__autoload['dcPostMedia']				= dirname(__FILE__).'/core/class.dc.postmedia.php';
 $__autoload['dcModules']				= dirname(__FILE__).'/core/class.dc.modules.php';
 $__autoload['dcThemes']				= dirname(__FILE__).'/core/class.dc.themes.php';
@@ -70,8 +69,4 @@
 $__autoload['adminCommentList']		= dirname(__FILE__).'/admin/lib.pager.php';
 $__autoload['adminUserList']			= dirname(__FILE__).'/admin/lib.pager.php';
-$__autoload['adminBlogList']			= dirname(__FILE__).'/admin/lib.pager.php';
-$__autoload['adminBlogPermissionsList']	= dirname(__FILE__).'/admin/lib.pager.php';
-$__autoload['dcFilterSet']			= dirname(__FILE__).'/admin/class.dc.filter.php';
-$__autoload['dcFilter']				= dirname(__FILE__).'/admin/class.dc.filter.php';
 
 $__autoload['dcTemplate']			= dirname(__FILE__).'/public/class.dc.template.php';
@@ -124,5 +119,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.3.1');
+define('DC_VERSION','2.4.0-dev');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
Index: inc/public/class.dc.template.php
===================================================================
--- inc/public/class.dc.template.php	(revision 0)
+++ inc/public/class.dc.template.php	(revision 415)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -54,18 +54,4 @@
 		$this->addValue('ArchiveEntriesCount',array($this,'ArchiveEntriesCount'));
 		$this->addValue('ArchiveURL',array($this,'ArchiveURL'));
-		
-		# Attachments
-		$this->addBlock('Attachments',array($this,'Attachments'));
-		$this->addBlock('AttachmentsHeader',array($this,'AttachmentsHeader'));
-		$this->addBlock('AttachmentsFooter',array($this,'AttachmentsFooter'));
-		$this->addValue('AttachmentMimeType',array($this,'AttachmentMimeType'));
-		$this->addValue('AttachmentType',array($this,'AttachmentType'));
-		$this->addValue('AttachmentFileName',array($this,'AttachmentFileName'));
-		$this->addValue('AttachmentSize',array($this,'AttachmentSize'));
-		$this->addValue('AttachmentTitle',array($this,'AttachmentTitle'));
-		$this->addValue('AttachmentThumbnailURL',array($this,'AttachmentThumbnailURL'));
-		$this->addValue('AttachmentURL',array($this,'AttachmentURL'));
-		$this->addBlock('AttachmentIf',array($this,'AttachmentIf'));
-		$this->addValue('MediaURL',array($this,'MediaURL'));
 		
 		# Blog
@@ -141,5 +127,4 @@
 		$this->addBlock('EntriesHeader',array($this,'EntriesHeader'));
 		$this->addValue('EntryExcerpt',array($this,'EntryExcerpt'));
-		$this->addValue('EntryAttachmentCount',array($this,'EntryAttachmentCount'));
 		$this->addValue('EntryAuthorCommonName',array($this,'EntryAuthorCommonName'));
 		$this->addValue('EntryAuthorDisplayName',array($this,'EntryAuthorDisplayName'));
@@ -323,4 +308,10 @@
 		}
 		
+		if (($node instanceof tplNodeBlock) && !$node->isClosed()) {
+			$errors[] = sprintf(
+				__('Did not find closing tag for block <tpl:%s>. Content has been ignored.'),
+				html::escapeHTML($node->getTag()));
+		}
+		
 		$err = "";
 		if (count($errors) > 0) {
@@ -341,4 +332,7 @@
 		# --BEHAVIOR-- templateBeforeBlock
 		$res = $this->core->callBehavior('templateBeforeBlock',$this->core,$this->current_tag,$attr);
+		
+		# --BEHAVIOR-- templateInsideBlock
+		$this->core->callBehavior('templateInsideBlock',$this->core,$this->current_tag,$attr,array(&$content));
 		
 		if (isset($this->blocks[$this->current_tag])) {
@@ -563,5 +557,5 @@
 		}
 		
-		if (empty($attr['no_context']))
+		if (empty($attr['no_context']) && !isset($attr['category']))
 		{
 			$p .=
@@ -740,173 +734,4 @@
 	}
 	
-	/* Attachments ---------------------------------------- */
-	/*dtd
-	<!ELEMENT tpl:Attachments - - -- Post Attachments loop -->
-	*/
-	public function Attachments($attr,$content)
-	{
-		$res =
-		"<?php\n".
-		'if ($_ctx->posts !== null && $core->media) {'."\n".
-			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
-		"?>\n".
-		
-		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
-		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
-		'$_ctx->file_url = $attach_f->file_url; ?>'.
-		$content.
-		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
-		
-		"<?php } ?>\n";
-		
-		return $res;
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentsHeader - - -- First attachments result container -->
-	*/
-	public function AttachmentsHeader($attr,$content)
-	{
-		return
-		"<?php if (\$attach_i == 0) : ?>".
-		$content.
-		"<?php endif; ?>";
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentsFooter - - -- Last attachments result container -->
-	*/
-	public function AttachmentsFooter($attr,$content)
-	{
-		return
-		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
-		$content.
-		"<?php endif; ?>";
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentsIf - - -- Test on attachment fields -->
-	<!ATTLIST tpl:AttachmentIf
-	is_image	(0|1)	#IMPLIED	-- test if attachment is an image (value : 1) or not (value : 0)
-	has_thumb	(0|1)	#IMPLIED	-- test if attachment has a square thumnail (value : 1) or not (value : 0)
-	is_mp3	(0|1)	#IMPLIED	-- test if attachment is a mp3 file (value : 1) or not (value : 0)
-	is_flv	(0|1)	#IMPLIED	-- test if attachment is a flv file (value : 1) or not (value : 0)
-	>
-	*/
-	public function AttachmentIf($attr,$content)
-	{
-		$if = array();
-		
-		$operator = isset($attr['operator']) ? $this->getOperator($attr['operator']) : '&&';
-		
-		if (isset($attr['is_image'])) {
-			$sign = (boolean) $attr['is_image'] ? '' : '!';
-			$if[] = $sign.'$attach_f->media_image';
-		}
-		
-		if (isset($attr['has_thumb'])) {
-			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
-			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
-		}
-		
-		if (isset($attr['is_mp3'])) {
-			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
-			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
-		}
-		
-		if (isset($attr['is_flv'])) {
-			$sign = (boolean) $attr['is_flv'] ? '' : '!';
-			$if[] = $sign.
-				'($attach_f->type == "video/x-flv" || '.
-				'$attach_f->type == "video/mp4" || '.
-				'$attach_f->type == "video/x-m4v")';
-		}
-		
-		if (!empty($if)) {
-			return '<?php if('.implode(' '.$operator.' ',$if).') : ?>'.$content.'<?php endif; ?>';
-		} else {
-			return $content;
-		}
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentMimeType - O -- Attachment MIME Type -->
-	*/
-	public function AttachmentMimeType($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentType - O -- Attachment type -->
-	*/
-	public function AttachmentType($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentFileName - O -- Attachment file name -->
-	*/
-	public function AttachmentFileName($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentSize - O -- Attachment size -->
-	<!ATTLIST tpl:AttachmentSize
-	full	CDATA	#IMPLIED	-- if set, size is rounded to a human-readable value (in KB, MB, GB, TB)
-	>
-	*/
-	public function AttachmentSize($attr)
-	{
-		$f = $this->getFilters($attr);
-		if (!empty($attr['full'])) {
-			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
-		}
-		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentTitle - O -- Attachment title -->
-	*/
-	public function AttachmentTitle($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentThumbnailURL - O -- Attachment square thumbnail URL -->
-	*/
-	public function AttachmentThumbnailURL($attr)
-	{
-		$f = $this->getFilters($attr);
-		return
-		'<?php '.
-		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
-			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
-		'}'.
-		'?>';
-	}
-	
-	/*dtd
-	<!ELEMENT tpl:AttachmentURL - O -- Attachment URL -->
-	*/
-	public function AttachmentURL($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
-	}
-	
-	public function MediaURL($attr)
-	{
-		$f = $this->getFilters($attr);
-		return '<?php echo '.sprintf($f,'$_ctx->file_url').'; ?>';
-	}
 	
 	/* Blog ----------------------------------------------- */
@@ -1151,5 +976,5 @@
 	public function CategoryIf($attr,$content)
 	{
-		$if = array();
+		$if = new ArrayObject();
 		$operator = isset($attr['operator']) ? $this->getOperator($attr['operator']) : '&&';
 		
@@ -1174,6 +999,8 @@
 		} 
 		
-		if (!empty($if)) {
-			return '<?php if('.implode(' '.$operator.' ',$if).') : ?>'.$content.'<?php endif; ?>';
+		$this->core->callBehavior('tplIfConditions','CategoryIf',$attr,$content,$if);
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' '.$operator.' ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
 		} else {
 			return $content;
@@ -1324,13 +1151,19 @@
 		if (empty($attr['no_context']))
 		{
-			$p .=
-			'if ($_ctx->exists("users")) { '.
-				"\$params['user_id'] = \$_ctx->users->user_id; ".
-			"}\n";
+			if (!isset($attr['author']))
+			{
+				$p .=
+				'if ($_ctx->exists("users")) { '.
+					"\$params['user_id'] = \$_ctx->users->user_id; ".
+				"}\n";
+			}
 			
-			$p .=
-			'if ($_ctx->exists("categories")) { '.
-				"\$params['cat_id'] = \$_ctx->categories->cat_id; ".
-			"}\n";
+			if (!isset($attr['category']) && (!isset($attr['no_category']) || !$attr['no_category']))
+			{
+				$p .=
+				'if ($_ctx->exists("categories")) { '.
+					"\$params['cat_id'] = \$_ctx->categories->cat_id; ".
+				"}\n";
+			}
 			
 			$p .=
@@ -1416,5 +1249,5 @@
 	selected	(0|1)	#IMPLIED	-- post is selected (value : 1) or not (value : 0)
 	has_category	(0|1)	#IMPLIED	-- post has a category (value : 1) or not (value : 0)
-	has_attachment	(0|1)	#IMPLIED	-- post has attachments (value : 1) or not (value : 0)
+	has_attachment	(0|1)	#IMPLIED	-- post has attachments (value : 1) or not (value : 0) (see Attachment plugin for code)
 	comments_active	(0|1)	#IMPLIED	-- comments are active for this post (value : 1) or not (value : 0)
 	pings_active	(0|1)	#IMPLIED	-- trackbacks are active for this post (value : 1) or not (value : 0)
@@ -1427,5 +1260,5 @@
 	public function EntryIf($attr,$content)
 	{
-		$if = array();
+		$if = new ArrayObject();
 		$extended = null;
 		$hascategory = null;
@@ -1484,9 +1317,4 @@
 		}
 		
-		if (isset($attr['has_attachment'])) {
-			$sign = (boolean) $attr['has_attachment'] ? '' : '!';
-			$if[] = $sign.'$_ctx->posts->countMedia()';
-		}
-		
 		if (isset($attr['comments_active'])) {
 			$sign = (boolean) $attr['comments_active'] ? '' : '!';
@@ -1525,6 +1353,8 @@
 		}
 		
-		if (!empty($if)) {
-			return '<?php if('.implode(' '.$operator.' ',$if).') : ?>'.$content.'<?php endif; ?>';
+		$this->core->callBehavior('tplIfConditions','EntryIf',$attr,$content,$if);
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' '.$operator.' ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
 		} else {
 			return $content;
@@ -1621,37 +1451,4 @@
 	}
 	
-	/*dtd
-	<!ELEMENT tpl:EntryAttachmentCount - O -- Number of attachments for entry -->
-	<!ATTLIST tpl:EntryAttachmentCount
-	none	CDATA	#IMPLIED	-- text to display for "no attachment" (default: no attachment)
-	one	CDATA	#IMPLIED	-- text to display for "one attachment" (default: one attachment)
-	more	CDATA	#IMPLIED	-- text to display for "more attachment" (default: %s attachment, %s is replaced by the number of attachments)
-	>
-	*/
-	public function EntryAttachmentCount($attr)
-	{
-		$none = 'no attachment';
-		$one = 'one attachment';
-		$more = '%d attachments';
-		
-		if (isset($attr['none'])) {
-			$none = addslashes($attr['none']);
-		}
-		if (isset($attr['one'])) {
-			$one = addslashes($attr['one']);
-		}
-		if (isset($attr['more'])) {
-			$more = addslashes($attr['more']);
-		}
-		
-		return
-		"<?php if (\$_ctx->posts->countMedia() == 0) {\n".
-		"  printf(__('".$none."'),(integer) \$_ctx->posts->countMedia());\n".
-		"} elseif (\$_ctx->posts->countMedia() == 1) {\n".
-		"  printf(__('".$one."'),(integer) \$_ctx->posts->countMedia());\n".
-		"} else {\n".
-		"  printf(__('".$more."'),(integer) \$_ctx->posts->countMedia());\n".
-		"} ?>";
-	}
 	
 	/*dtd
@@ -2209,6 +2006,8 @@
 		}
 		
-		if (!empty($if)) {
-			return '<?php if('.implode(' && ',$if).') : ?>'.$content.'<?php endif; ?>';
+		$this->core->callBehavior('tplIfConditions','PaginationIf',$attr,$content,$if);
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' && ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
 		} else {
 			return $content;
@@ -2482,6 +2281,8 @@
 		}
 		
-		if (!empty($if)) {
-			return '<?php if('.implode(' && ',$if).') : ?>'.$content.'<?php endif; ?>';
+		$this->core->callBehavior('tplIfConditions','CommentIf',$attr,$content,$if);
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' && ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
 		} else {
 			return $content;
@@ -2973,5 +2774,5 @@
 	current_mode		CDATA	#IMPLIED	-- tests if current URL mode is the one given in parameter
 	has_tpl			CDATA     #IMPLIED  -- tests if a named template exists
-	has_tag			CDATA     #IMPLIED  -- tests if a named template tag exists
+	has_tag			CDATA     #IMPLIED  -- tests if a named template tag exists (see Tag plugin for code)
 	blog_id			CDATA     #IMPLIED  -- tests if current blog ID is the one given in parameter
 	comments_active	(0|1)	#IMPLIED	-- test if comments are enabled blog-wide 
@@ -2983,5 +2784,5 @@
 	public function SysIf($attr,$content)
 	{
-		$if = array();
+		$if = new ArrayObject();
 		$is_ping = null;
 		
@@ -3029,13 +2830,4 @@
 		}
 		
-		if (isset($attr['has_tag'])) {
-			$sign = '';
-			if (substr($attr['has_tag'],0,1) == '!') {
-				$sign = '!';
-				$attr['has_tag'] = substr($attr['has_tag'],1);
-			}
-			$if[] =  $sign."(\$core->tpl->tagExists('".addslashes($attr['has_tag'])."') )";
-		}
-		
 		if (isset($attr['blog_id'])) {
 			$sign = '';
@@ -3067,6 +2859,8 @@
 		}
 		
-		if (!empty($if)) {
-			return '<?php if('.implode(' '.$operator.' ',$if).') : ?>'.$content.'<?php endif; ?>';
+		$this->core->callBehavior('tplIfConditions','SysIf',$attr,$content,$if);
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' '.$operator.' ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
 		} else {
 			return $content;
@@ -3230,4 +3024,7 @@
 		$this->closed = true;
 	}
+	public function isClosed() {
+		return $this->closed;
+	}
 	public function compile($tpl) {
 		if ($this->closed) {
Index: inc/public/default-templates/password-form.html
===================================================================
--- inc/public/default-templates/password-form.html	(revision 199)
+++ inc/public/default-templates/password-form.html	(revision 454)
@@ -34,6 +34,5 @@
 
 <p>{{tpl:lang You must give a password to access this area.}}</p>
-<p><label>{{tpl:lang Password:}} <input type="password" name="password" value=""
-tabindex="1" /></label> <input type="submit" value="ok" /></p>
+<p><label>{{tpl:lang Password:}} <input type="password" name="password" value="" /></label> <input type="submit" value="ok" /></p>
 
 </form>
Index: nc/public/default-templates/tag.html
===================================================================
--- inc/public/default-templates/tag.html	(revision 199)
+++ 	(revision )
@@ -1,153 +1,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <meta name="ROBOTS" content="{{tpl:BlogMetaRobots}}" />
-  
-  <title>{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf></title>
-  <meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-  <meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
-  <meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-  
-  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-  <meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
-  <meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-  <meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-  <meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-  <meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-  <meta name="dc.type" content="text" />
-  <meta name="dc.format" content="text/html" />
-  
-  <link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
-  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
-  
-  <tpl:Entries no_content="1">
-    <tpl:EntriesHeader>
-      <tpl:Pagination>
-        <tpl:PaginationIf end="0">
-        <link rel="prev" title="{{tpl:lang previous entries}}" href="{{tpl:PaginationURL offset="1"}}" />
-        </tpl:PaginationIf>
-        
-        <tpl:PaginationIf start="0">
-        <link rel="next" title="{{tpl:lang next entries}}" href="{{tpl:PaginationURL offset="-1"}}" />
-        </tpl:PaginationIf>
-      </tpl:Pagination>
-    </tpl:EntriesHeader>
-    
-    <link rel="chapter" href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html="1"}}" />
-  </tpl:Entries>
-  
-  <link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:TagFeedURL type="atom"}}" />
-  <link rel="meta" type="application/xbel+xml" title="Blogroll" href="{{tpl:BlogrollXbelLink}}" />
-  
-  {{tpl:include src="_head.html"}}
-</head>
-
-<body class="dc-tag">
-<div id="page">
-{{tpl:include src="_top.html"}}
-
-<div id="wrapper">
-
-<div id="main">
-  <div id="content">
-  
-  <div id="content-info">
-    <h2>{{tpl:lang Tag}} - {{tpl:TagID}}</h2>
-    
-    <p><a type="application/atom+xml" href="{{tpl:TagFeedURL type="atom"}}"
-    title="{{tpl:lang This tag's entries Atom feed}}" class="feed">{{tpl:lang Entries feed}}</a>
-    
-    <tpl:SysIf operator="or" comments_active="1" pings_active="1">
-    - <a type="application/atom+xml" href="{{tpl:TagFeedURL type="atom"}}/comments"
-    title="{{tpl:lang This tag's comments Atom feed}}" class="feed">{{tpl:lang Comments feed}}</a>
-    </tpl:SysIf>
-    </p>
-  </div>
-  
-  <tpl:Entries>
-    <div id="p{{tpl:EntryID}}" class="post {{tpl:EntryIfOdd}} {{tpl:EntryIfFirst}}" lang="{{tpl:EntryLang}}" xml:lang="{{tpl:EntryLang}}">
-    <!-- # New day date -->
-    <tpl:DateHeader><p class="day-date">{{tpl:EntryDate}}</p></tpl:DateHeader>
-    
-    <h2 class="post-title"><a
-    href="{{tpl:EntryURL}}">{{tpl:EntryTitle encode_html="1"}}</a></h2>
-    
-    <p class="post-info">{{tpl:lang By}} {{tpl:EntryAuthorLink}}
-    {{tpl:lang on}} {{tpl:EntryDate}}, {{tpl:EntryTime}}
-    <tpl:EntryIf has_category="1">
-    - <a href="{{tpl:EntryCategoryURL}}">{{tpl:EntryCategory encode_html="1"}}</a>
-    </tpl:EntryIf>
-    </p>
-    
-    <tpl:EntryTags>
-    <tpl:TagsHeader><ul class="post-tags"></tpl:TagsHeader>
-    <li><a href="{{tpl:TagURL}}">{{tpl:TagID}}</a></li>
-    <tpl:TagsFooter></ul></tpl:TagsFooter>
-    </tpl:EntryTags>
-    
-    <!-- # --BEHAVIOR-- publicEntryBeforeContent -->
-    {{tpl:SysBehavior behavior="publicEntryBeforeContent"}}
-    
-    <!-- # Entry with an excerpt -->
-    <tpl:EntryIf extended="1">
-      <div class="post-content">{{tpl:EntryExcerpt}}</div>
-      <p class="read-it"><a href="{{tpl:EntryURL}}"
-      title="{{tpl:lang Continue reading}} {{tpl:EntryTitle encode_html="1"}}">{{tpl:lang Continue
-      reading}}</a>...</p>
-    </tpl:EntryIf>
-    
-    <!-- # Entry without excerpt -->
-    <tpl:EntryIf extended="0">
-      <div class="post-content">{{tpl:EntryContent}}</div>
-    </tpl:EntryIf>
-    
-    <!-- # --BEHAVIOR-- publicEntryAfterContent -->
-    {{tpl:SysBehavior behavior="publicEntryAfterContent"}}
-    
-    <!-- # Number of comments, trackbacks and attachments -->
-    <tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
-      <p class="post-info-co">
-    </tpl:EntryIf>
-    <tpl:EntryIf show_comments="1">
-      <a href="{{tpl:EntryURL}}#comments" class="comment_count">{{tpl:EntryCommentCount}}</a>
-    </tpl:EntryIf>
-    <tpl:EntryIf show_pings="1">
-      <a href="{{tpl:EntryURL}}#pings" class="ping_count">{{tpl:EntryPingCount}}</a></tpl:EntryIf>
-    <tpl:EntryIf has_attachment="1">
-      <a href="{{tpl:EntryURL}}#attachments" class="attach_count">{{tpl:EntryAttachmentCount}}</a></tpl:EntryIf>
-    <tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
-      </p>
-    </tpl:EntryIf>
-    </div>
-    
-    <tpl:EntriesFooter>
-      <tpl:Pagination>
-        <p class="pagination"><tpl:PaginationIf end="0"><a href="{{tpl:PaginationURL offset="+1"}}" class="prev">&#171;
-        {{tpl:lang previous entries}}</a> - </tpl:PaginationIf>
-        {{tpl:lang page}} {{tpl:PaginationCurrent}} {{tpl:lang of}} {{tpl:PaginationCounter}}
-        <tpl:PaginationIf start="0"> - <a href="{{tpl:PaginationURL offset="-1"}}" class="next">{{tpl:lang next entries}}
-        &#187;</a></tpl:PaginationIf></p>
-      </tpl:Pagination>
-    </tpl:EntriesFooter>
-  </tpl:Entries>
-  </div>
-</div> <!-- End #main -->
-
-<div id="sidebar">
-  <div id="blognav">
-    {{tpl:Widgets type="nav"}}
-  </div> <!-- End #blognav -->
-  
-  <div id="blogextra">
-    {{tpl:Widgets type="extra"}}
-  </div> <!-- End #blogextra -->
-</div>
-
-</div> <!-- End #wrapper -->
-
-{{tpl:include src="_footer.html"}}
-</div> <!-- End #page -->
-</body>
-</html>
Index: nc/public/default-templates/tags.html
===================================================================
--- inc/public/default-templates/tags.html	(revision 199)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}">
-<head>
-  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
-  <meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
-  
-  <title>{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}</title>
-  <meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-  <meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
-  <meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-  
-  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
-  <meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
-  <meta name="dc.language" content="{{tpl:BlogLanguage}}" />
-  <meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
-  <meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
-  <meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
-  <meta name="dc.type" content="text" />
-  <meta name="dc.format" content="text/html" />
-  
-  <link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
-  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
-  
-  <link rel="meta" type="application/xbel+xml" title="Blogroll" href="{{tpl:BlogrollXbelLink}}" />
-  
-  {{tpl:include src="_head.html"}}
-</head>
-
-<body class="dc-tags">
-<div id="page">
-{{tpl:include src="_top.html"}}
-
-<div id="wrapper">
-
-<div id="main">
-  <div id="content">
-  
-  <div id="content-info">
-    <h2>{{tpl:lang Tags}}</h2>
-  </div>
-  
-  <div class="content-inner">  
-  <ul class="tags">
-    <tpl:Tags>
-      <li><a href="{{tpl:TagURL}}" class="tag{{tpl:TagRoundPercent}}">{{tpl:TagID}}</a></li>
-    </tpl:Tags>
-    </ul>
-  </div>
-  
-  </div>
-</div> <!-- End #main -->
-
-<div id="sidebar">
-  <div id="blognav">
-    {{tpl:Widgets type="nav"}}
-  </div> <!-- End #blognav -->
-  
-  <div id="blogextra">
-    {{tpl:Widgets type="extra"}}
-  </div> <!-- End #blogextra -->
-</div>
-
-</div> <!-- End #wrapper -->
-
-{{tpl:include src="_footer.html"}}
-</div> <!-- End #page -->
-</body>
-</html>
Index: inc/public/lib.tpl.context.php
===================================================================
--- inc/public/lib.tpl.context.php	(revision 0)
+++ inc/public/lib.tpl.context.php	(revision 478)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -353,5 +353,5 @@
 		
 		$pattern = '(?:'.preg_quote($p_site,'/').')?'.preg_quote($p_url,'/');
-		$pattern = sprintf('/<img.+?src="%s(.*?\.(?:jpg|gif|png))"[^>]+/msu',$pattern);
+		$pattern = sprintf('/<img.+?src="%s(.*?\.(?:jpg|jpeg|gif|png))"[^>]+/msu',$pattern);
 		
 		$src = '';
@@ -420,4 +420,6 @@
 			} elseif (file_exists($f.'.jpg')) {
 				$res = $base.'.jpg';
+			} elseif (file_exists($f.'.jpeg')) {
+				$res = $base.'.jpeg';
 			} elseif (file_exists($f.'.png')) {
 				$res = $base.'.png';
Index: inc/public/lib.urlhandlers.php
===================================================================
--- inc/public/lib.urlhandlers.php	(revision 0)
+++ inc/public/lib.urlhandlers.php	(revision 306)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -204,6 +204,9 @@
 		
 		$n = self::getPageNumber($args);
-		
-		$params['lang'] = $args;
+		$params = new ArrayObject(array(
+			'lang' => $args));
+		
+		$core->callBehavior('publicLangBeforeGetLangs',$params,$args);
+		
 		$_ctx->langs = $core->blog->getLangs($params);
 		
@@ -235,6 +238,9 @@
 		else
 		{
-			$params['cat_url'] = $args;
-			$params['post_type'] = 'post';
+			$params = new ArrayObject(array(
+				'cat_url' => $args,
+				'post_type' => 'post'));
+			
+			$core->callBehavior('publicCategoryBeforeGetCategories',$params,$args);
 			
 			$_ctx->categories = $core->blog->getCategories($params);
@@ -267,7 +273,11 @@
 		elseif (preg_match('|^/([0-9]{4})/([0-9]{2})$|',$args,$m))
 		{
-			$params['year'] = $m[1];
-			$params['month'] = $m[2];
-			$params['type'] = 'month';
+			$params = new ArrayObject(array(
+				'year' => $m[1],
+				'month' => $m[2],
+				'type' => 'month'));
+			
+			$core->callBehavior('publicArchiveBeforeGetDates',$params,$args);
+			
 			$_ctx->archives = $core->blog->getDates($params);
 			
@@ -300,7 +310,9 @@
 			$core->blog->withoutPassword(false);
 			
-			$params = new ArrayObject();
-			$params['post_url'] = $args;
-			
+			$params = new ArrayObject(array(
+				'post_url' => $args));
+			
+			$core->callBehavior('publicPostBeforeGetPosts',$params,$args);
+
 			$_ctx->posts = $core->blog->getPosts($params);
 			
@@ -410,5 +422,5 @@
 						
 						$redir = $_ctx->posts->getURL();
-						$redir .= strpos($redir,'?') !== false ? '&' : '?';
+						$redir .= $core->blog->settings->system->url_scan == 'query_string' ? '&' : '?';
 						
 						try
@@ -481,5 +493,4 @@
 		$cat_url = false;
 		$post_id = null;
-		$params = array();
 		$subtitle = '';
 		
@@ -490,6 +501,9 @@
 		
 		if (preg_match('!^([a-z]{2}(-[a-z]{2})?)/(.*)$!',$args,$m)) {
-			$params['lang'] = $m[1];
+			$params = new ArrayObject(array('lang' => $m[1]));
+			
 			$args = $m[3];
+			
+			$core->callBehavior('publicFeedBeforeGetLangs',$params,$args);
 			
 			$_ctx->langs = $core->blog->getLangs($params);
@@ -535,6 +549,10 @@
 		if ($cat_url)
 		{
-			$params['cat_url'] = $cat_url;
-			$params['post_type'] = 'post';
+			$params = new ArrayObject(array(
+				'cat_url' => $cat_url,
+				'post_type' => 'post'));
+			
+			$core->callBehavior('publicFeedBeforeGetCategories',$params,$args);
+			
 			$_ctx->categories = $core->blog->getCategories($params);
 			
@@ -549,6 +567,10 @@
 		elseif ($post_id)
 		{
-			$params['post_id'] = $post_id;
-			$params['post_type'] = '';
+			$params = new ArrayObject(array(
+				'post_id' => $post_id,
+				'post_type' => ''));
+				
+			$core->callBehavior('publicFeedBeforeGetPosts',$params,$args);
+			
 			$_ctx->posts = $core->blog->getPosts($params);
 			
Index: inc/public/prepend.php
===================================================================
--- inc/public/prepend.php	(revision 0)
+++ inc/public/prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: inc/public/rs.extension.php
===================================================================
--- inc/public/rs.extension.php	(revision 0)
+++ inc/public/rs.extension.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: index.php
===================================================================
--- index.php	(revision 0)
+++ index.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: locales/_pot/main.pot
===================================================================
--- locales/_pot/main.pot	(revision 438)
+++ locales/_pot/main.pot	(revision 261)
@@ -8,8 +8,9 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-27 13:20+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
@@ -28,6 +29,6 @@
 msgstr ""
 
-#: admin/auth.php:87 admin/auth.php:111 admin/auth.php:327 admin/auth.php:372
-#: admin/install/index.php:324 admin/install/index.php:365 admin/user.php:192
+#: admin/auth.php:87 admin/auth.php:111 admin/auth.php:328 admin/auth.php:373
+#: admin/install/index.php:332 admin/install/index.php:373 admin/user.php:192
 msgid "Username:"
 msgstr ""
@@ -46,6 +47,6 @@
 msgstr ""
 
-#: admin/auth.php:112 admin/auth.php:375 admin/blog_pref.php:488
-#: admin/install/index.php:326 admin/install/index.php:366 admin/user.php:199
+#: admin/auth.php:112 admin/auth.php:376 admin/blog_pref.php:488
+#: admin/install/index.php:334 admin/install/index.php:374 admin/user.php:199
 msgid "Password:"
 msgstr ""
@@ -55,5 +56,5 @@
 msgstr ""
 
-#: admin/auth.php:151 admin/install/index.php:84 admin/preferences.php:91
+#: admin/auth.php:151 admin/install/index.php:84 admin/preferences.php:100
 #: admin/user.php:104
 msgid "Passwords don't match"
@@ -80,76 +81,76 @@
 msgstr ""
 
-#: admin/auth.php:321 admin/auth.php:337
+#: admin/auth.php:322 admin/auth.php:338
 msgid "Back to login screen"
 msgstr ""
 
-#: admin/auth.php:326
+#: admin/auth.php:327
 msgid "Request a new password"
 msgstr ""
 
-#: admin/auth.php:330 admin/comment.php:203 admin/install/index.php:319
-#: admin/post.php:584 admin/preferences.php:341 admin/user.php:221
-#: inc/admin/lib.dc.page.php:383
+#: admin/auth.php:331 admin/comment.php:203 admin/install/index.php:327
+#: admin/post.php:584 admin/preferences.php:357 admin/user.php:221
+#: inc/admin/lib.dc.page.php:389
 msgid "Email:"
 msgstr ""
 
-#: admin/auth.php:333
+#: admin/auth.php:334
 msgid "recover"
 msgstr ""
 
-#: admin/auth.php:342 admin/preferences.php:366
+#: admin/auth.php:343 admin/preferences.php:382
 msgid "Change your password"
 msgstr ""
 
-#: admin/auth.php:343 admin/preferences.php:368 admin/user.php:199
+#: admin/auth.php:344 admin/preferences.php:384 admin/user.php:199
 msgid "New password:"
 msgstr ""
 
-#: admin/auth.php:346 admin/install/index.php:328 admin/preferences.php:371
+#: admin/auth.php:347 admin/install/index.php:336 admin/preferences.php:387
 #: admin/user.php:205
 msgid "Confirm password:"
 msgstr ""
 
-#: admin/auth.php:350
+#: admin/auth.php:351
 msgid "change"
 msgstr ""
 
-#: admin/auth.php:364
+#: admin/auth.php:365
 msgid "Safe mode login"
 msgstr ""
 
-#: admin/auth.php:367
+#: admin/auth.php:368
 msgid "This mode allows you to login without activating any of your plugins. This may be useful to solve compatibility problems"
 msgstr ""
 
-#: admin/auth.php:368
+#: admin/auth.php:369
 msgid "Disable or delete any plugin suspected to cause trouble, then log out and log back in normally."
 msgstr ""
 
-#: admin/auth.php:380
+#: admin/auth.php:381
 msgid "Remember my ID on this computer"
 msgstr ""
 
-#: admin/auth.php:382
+#: admin/auth.php:383
 msgid "log in"
 msgstr ""
 
-#: admin/auth.php:393
+#: admin/auth.php:394
 msgid "You must accept cookies in order to use the private area."
 msgstr ""
 
-#: admin/auth.php:399
+#: admin/auth.php:400
 msgid "Get back to normal authentication"
 msgstr ""
 
-#: admin/auth.php:401
+#: admin/auth.php:402
 msgid "Connection issue?"
 msgstr ""
 
-#: admin/auth.php:403
+#: admin/auth.php:404
 msgid "I forgot my password"
 msgstr ""
 
-#: admin/auth.php:405
+#: admin/auth.php:406
 msgid "I want to log in in safe mode"
 msgstr ""
@@ -176,7 +177,7 @@
 #: admin/blog_theme.php:293 admin/blog_theme.php:295 admin/blog_theme.php:307
 #: admin/blog_theme.php:309 admin/categories.php:126 admin/category.php:186
-#: admin/comment.php:199 admin/index.php:305 admin/index.php:309
-#: admin/install/index.php:324 admin/install/index.php:326
-#: admin/install/index.php:328 admin/install/wizard.php:173
+#: admin/comment.php:199 admin/index.php:306 admin/index.php:310
+#: admin/install/index.php:332 admin/install/index.php:334
+#: admin/install/index.php:336 admin/install/wizard.php:173
 #: admin/install/wizard.php:183 admin/langs.php:231 admin/langs.php:247
 #: admin/langs.php:249 admin/plugins.php:328 admin/plugins.php:330
@@ -208,10 +209,10 @@
 
 #: admin/blog.php:93 admin/blog_pref.php:454 admin/blog_theme.php:341
-#: admin/categories.php:136 admin/category.php:216 admin/category.php:234
-#: admin/category.php:248 admin/comment.php:225 admin/index.php:314
-#: admin/install/wizard.php:186 admin/media.php:355 admin/media_item.php:497
+#: admin/categories.php:138 admin/category.php:216 admin/category.php:234
+#: admin/category.php:248 admin/comment.php:225 admin/index.php:315
+#: admin/install/wizard.php:186 admin/media.php:366 admin/media_item.php:497
 #: admin/permissions.php:149 admin/post.php:478 admin/post.php:599
-#: admin/posts_actions.php:234 admin/posts_actions.php:251
-#: admin/preferences.php:385 admin/preferences.php:446 admin/user.php:273
+#: admin/posts_actions.php:235 admin/posts_actions.php:252
+#: admin/preferences.php:401 admin/preferences.php:476 admin/user.php:273
 msgid "Save"
 msgstr ""
@@ -246,5 +247,5 @@
 #: admin/blog_del.php:63 admin/blog_theme.php:295 admin/blog_theme.php:309
 #: admin/langs.php:231 admin/langs.php:249 admin/permissions.php:146
-#: admin/plugins.php:330 admin/plugins.php:344 admin/preferences.php:377
+#: admin/plugins.php:330 admin/plugins.php:344 admin/preferences.php:393
 #: admin/user.php:270
 msgid "Your password:"
@@ -279,6 +280,6 @@
 msgstr ""
 
-#: admin/blog_pref.php:92 admin/posts.php:91 inc/admin/lib.pager.php:102
-#: inc/admin/lib.pager.php:111 inc/admin/lib.pager.php:117
+#: admin/blog_pref.php:92 admin/posts.php:96 inc/admin/lib.pager.php:47
+#: inc/admin/lib.pager.php:162 inc/admin/lib.pager.php:257
 msgid "Title"
 msgstr ""
@@ -316,5 +317,5 @@
 msgstr ""
 
-#: admin/blog_pref.php:223 admin/blog_pref.php:246 admin/install/index.php:211
+#: admin/blog_pref.php:223 admin/blog_pref.php:246 admin/install/index.php:219
 #: inc/admin/prepend.php:209 inc/admin/prepend.php:266
 #: inc/dbschema/upgrade.php:163
@@ -594,5 +595,5 @@
 
 #: admin/blog_theme.php:214 admin/blog_theme.php:331
-#: admin/install/index.php:214 inc/admin/prepend.php:212
+#: admin/install/index.php:222 inc/admin/prepend.php:212
 #: inc/admin/prepend.php:263 inc/dbschema/upgrade.php:166
 msgid "Blog appearance"
@@ -678,5 +679,5 @@
 
 #: admin/blog_theme.php:332 admin/comments_actions.php:133
-#: admin/posts_actions.php:255
+#: admin/posts_actions.php:256
 msgid "back"
 msgstr ""
@@ -697,10 +698,10 @@
 
 #: admin/blogs.php:25 admin/comments.php:40 admin/permissions_blog.php:24
-#: admin/posts.php:99 admin/users.php:51
+#: admin/posts.php:104 admin/users.php:51
 msgid "Descending"
 msgstr ""
 
 #: admin/blogs.php:26 admin/comments.php:41 admin/permissions_blog.php:25
-#: admin/posts.php:100 admin/users.php:52
+#: admin/posts.php:105 admin/users.php:52
 msgid "Ascending"
 msgstr ""
@@ -720,15 +721,16 @@
 #: admin/blogs.php:90 admin/blogs.php:95 admin/comments.php:153
 #: admin/comments.php:158 admin/permissions_blog.php:102
-#: admin/permissions_blog.php:107 admin/users.php:124 admin/users.php:129
+#: admin/permissions_blog.php:107 admin/posts.php:238 admin/posts.php:243
+#: admin/users.php:124 admin/users.php:129
 msgid "Filters"
 msgstr ""
 
 #: admin/blogs.php:98 admin/comments.php:170 admin/permissions_blog.php:110
-#: admin/users.php:132
+#: admin/posts.php:264 admin/users.php:132
 msgid "Order by:"
 msgstr ""
 
 #: admin/blogs.php:101 admin/comments.php:173 admin/permissions_blog.php:113
-#: admin/users.php:135
+#: admin/posts.php:266 admin/users.php:135
 msgid "Sort:"
 msgstr ""
@@ -743,5 +745,5 @@
 
 #: admin/blogs.php:112 admin/comments.php:187 admin/permissions_blog.php:124
-#: admin/users.php:146
+#: admin/posts.php:270 admin/users.php:146
 msgid "Apply filters"
 msgstr ""
@@ -751,15 +753,18 @@
 msgstr ""
 
-#: admin/blogs.php:129 admin/blogs.php:147 admin/media.php:312
-#: admin/media.php:320 admin/permissions_blog.php:147
-#: admin/permissions_blog.php:172 inc/admin/lib.pager.php:220
-#: inc/admin/lib.pager.php:233
+#: admin/blogs.php:129 admin/blogs.php:147 admin/media.php:321
+#: admin/media.php:329 admin/permissions_blog.php:147
+#: admin/permissions_blog.php:172 inc/admin/lib.pager.php:60
+#: inc/admin/lib.pager.php:73 inc/admin/lib.pager.php:172
+#: inc/admin/lib.pager.php:185 inc/admin/lib.pager.php:269
+#: inc/admin/lib.pager.php:282 inc/admin/lib.pager.php:376
+#: inc/admin/lib.pager.php:389
 msgid "Page(s)"
 msgstr ""
 
-#: admin/blogs.php:135 admin/install/index.php:202
+#: admin/blogs.php:135 admin/install/index.php:210
 #: admin/permissions_blog.php:154 admin/post.php:284 admin/post.php:324
-#: admin/posts.php:182 admin/posts.php:197 admin/posts_actions.php:165
-#: inc/admin/lib.pager.php:129 inc/admin/prepend.php:194
+#: admin/posts.php:228 admin/posts.php:233 admin/posts_actions.php:165
+#: inc/admin/lib.pager.php:369 inc/admin/prepend.php:194
 #: inc/admin/prepend.php:281 inc/dbschema/upgrade.php:154
 msgid "Entries"
@@ -767,7 +772,7 @@
 
 #: admin/blogs.php:138 admin/comments.php:36 admin/permissions_blog.php:155
-#: admin/post.php:614 admin/posts.php:94 admin/posts.php:108
-#: admin/posts.php:163 inc/admin/lib.pager.php:108 inc/admin/lib.pager.php:114
-#: inc/admin/lib.pager.php:121
+#: admin/post.php:614 admin/posts.php:99 admin/posts.php:113
+#: inc/admin/lib.pager.php:53 inc/admin/lib.pager.php:165
+#: inc/admin/lib.pager.php:261
 msgid "Status"
 msgstr ""
@@ -834,5 +839,5 @@
 msgstr ""
 
-#: admin/categories.php:110 admin/category.php:206 admin/preferences.php:344
+#: admin/categories.php:110 admin/category.php:206 admin/preferences.php:360
 #: admin/user.php:227
 msgid "URL:"
@@ -843,6 +848,6 @@
 msgstr ""
 
-#: admin/categories.php:126 admin/category.php:186 admin/index.php:305
-#: admin/media.php:339 admin/post.php:455
+#: admin/categories.php:126 admin/category.php:186 admin/index.php:306
+#: admin/media.php:348 admin/post.php:455
 msgid "Title:"
 msgstr ""
@@ -856,14 +861,14 @@
 msgstr ""
 
-#: admin/categories.php:164
+#: admin/categories.php:166
 msgid "Remove a category"
 msgstr ""
 
-#: admin/categories.php:165
+#: admin/categories.php:167
 msgid "Choose a category to remove:"
 msgstr ""
 
-#: admin/categories.php:167 admin/comments.php:218 admin/media.php:308
-#: admin/popup_posts.php:39 admin/post.php:562 admin/posts.php:218
+#: admin/categories.php:169 admin/comments.php:218 admin/media.php:317
+#: admin/popup_posts.php:39 admin/post.php:562 admin/posts.php:288
 #: admin/search.php:81 admin/search.php:129 admin/search.php:169
 #: admin/users.php:166 inc/admin/lib.dc.page.php:77
@@ -871,13 +876,13 @@
 msgstr ""
 
-#: admin/categories.php:175
+#: admin/categories.php:177
 msgid "Reorder categories"
 msgstr ""
 
-#: admin/categories.php:176
+#: admin/categories.php:178
 msgid "This will relocate all categories on the top level"
 msgstr ""
 
-#: admin/categories.php:177
+#: admin/categories.php:179
 msgid "Reorder"
 msgstr ""
@@ -935,5 +940,5 @@
 msgstr ""
 
-#: admin/comment.php:93 admin/post.php:550
+#: admin/comment.php:93 admin/post.php:550 inc/admin/lib.pager.php:246
 msgid "No comment"
 msgstr ""
@@ -976,5 +981,5 @@
 msgstr ""
 
-#: admin/comment.php:193 admin/comments.php:184 inc/admin/lib.dc.page.php:385
+#: admin/comment.php:193 admin/comments.php:184 inc/admin/lib.dc.page.php:391
 msgid "IP address:"
 msgstr ""
@@ -984,13 +989,13 @@
 msgstr ""
 
-#: admin/comment.php:199
+#: admin/comment.php:199 admin/posts.php:246
 msgid "Author:"
 msgstr ""
 
-#: admin/comment.php:208 admin/post.php:588 inc/admin/lib.dc.page.php:381
+#: admin/comment.php:208 admin/post.php:588 inc/admin/lib.dc.page.php:387
 msgid "Web site:"
 msgstr ""
 
-#: admin/comment.php:212 admin/comments.php:164
+#: admin/comment.php:212 admin/comments.php:164 admin/posts.php:250
 msgid "Status:"
 msgstr ""
@@ -1001,20 +1006,20 @@
 
 #: admin/comment.php:228 admin/langs.php:197 admin/plugins.php:257
-#: admin/plugins.php:300 admin/post.php:480 admin/posts.php:127
+#: admin/plugins.php:300 admin/post.php:480 admin/posts.php:132
 #: admin/users.php:58
 msgid "Delete"
 msgstr ""
 
-#: admin/comments.php:28 inc/admin/lib.pager.php:402
+#: admin/comments.php:28 inc/admin/lib.pager.php:337
 msgid "comment"
 msgstr ""
 
-#: admin/comments.php:29 inc/admin/lib.pager.php:402
+#: admin/comments.php:29 inc/admin/lib.pager.php:337
 msgid "trackback"
 msgstr ""
 
-#: admin/comments.php:33 admin/post.php:612 admin/posts.php:90
-#: inc/admin/lib.pager.php:103 inc/admin/lib.pager.php:112
-#: inc/admin/lib.pager.php:118
+#: admin/comments.php:33 admin/post.php:612 admin/posts.php:95
+#: inc/admin/lib.pager.php:48 inc/admin/lib.pager.php:163
+#: inc/admin/lib.pager.php:258
 msgid "Date"
 msgstr ""
@@ -1024,7 +1029,7 @@
 msgstr ""
 
-#: admin/comments.php:35 admin/post.php:611 admin/posts.php:93
-#: admin/posts.php:159 inc/admin/lib.pager.php:105 inc/admin/lib.pager.php:113
-#: inc/admin/lib.pager.php:119
+#: admin/comments.php:35 admin/post.php:611 admin/posts.php:98
+#: inc/admin/lib.pager.php:50 inc/admin/lib.pager.php:164
+#: inc/admin/lib.pager.php:259
 msgid "Author"
 msgstr ""
@@ -1049,5 +1054,5 @@
 msgstr ""
 
-#: admin/comments.php:119 admin/media.php:439 admin/post.php:526
+#: admin/comments.php:119 admin/media.php:450 admin/post.php:526
 #: admin/search.php:107 admin/search.php:150
 msgid "delete"
@@ -1091,6 +1096,6 @@
 msgstr ""
 
-#: admin/comments_actions.php:101 admin/install/index.php:205
-#: admin/post.php:532 admin/post.php:546 inc/admin/lib.pager.php:106
+#: admin/comments_actions.php:101 admin/install/index.php:213
+#: admin/post.php:532 admin/post.php:546 inc/admin/lib.pager.php:51
 #: inc/admin/prepend.php:197 inc/admin/prepend.php:278
 #: inc/dbschema/upgrade.php:157
@@ -1108,13 +1113,13 @@
 msgstr ""
 
-#: admin/index.php:111 admin/install/index.php:199 admin/post.php:37
-#: admin/posts.php:203 inc/admin/prepend.php:191 inc/admin/prepend.php:284
+#: admin/index.php:111 admin/install/index.php:207 admin/post.php:37
+#: admin/posts.php:234 inc/admin/prepend.php:191 inc/admin/prepend.php:284
 #: inc/admin/prepend.php:330 inc/dbschema/upgrade.php:151
 msgid "New entry"
 msgstr ""
 
-#: admin/index.php:113 admin/install/index.php:208 admin/preferences.php:17
-#: inc/admin/prepend.php:187 inc/admin/prepend.php:256
-#: inc/dbschema/upgrade.php:160
+#: admin/index.php:113 admin/install/index.php:216 admin/media.php:352
+#: admin/preferences.php:17 inc/admin/prepend.php:187
+#: inc/admin/prepend.php:256 inc/dbschema/upgrade.php:160
 msgid "My preferences"
 msgstr ""
@@ -1148,9 +1153,9 @@
 msgstr ""
 
-#: admin/index.php:213 admin/install/index.php:341 admin/plugins.php:190
+#: admin/index.php:213 admin/install/index.php:349 admin/plugins.php:190
 msgid "Following plugins have been installed:"
 msgstr ""
 
-#: admin/index.php:221 admin/install/index.php:349 admin/plugins.php:198
+#: admin/index.php:221 admin/install/index.php:357 admin/plugins.php:198
 msgid "Following plugins have not been installed:"
 msgstr ""
@@ -1177,17 +1182,18 @@
 msgstr ""
 
-#: admin/index.php:302
+#: admin/index.php:303
 msgid "Quick entry"
 msgstr ""
 
-#: admin/index.php:309 admin/post.php:464
+#: admin/index.php:310 admin/post.php:464
 msgid "Content:"
 msgstr ""
 
-#: admin/index.php:312 admin/post.php:368 admin/posts_actions.php:226
+#: admin/index.php:313 admin/post.php:368 admin/posts.php:248
+#: admin/posts_actions.php:227
 msgid "Category:"
 msgstr ""
 
-#: admin/index.php:316
+#: admin/index.php:317
 msgid "save and publish"
 msgstr ""
@@ -1299,96 +1305,96 @@
 msgstr ""
 
-#: admin/install/index.php:218 inc/dbschema/upgrade.php:170
+#: admin/install/index.php:226 inc/dbschema/upgrade.php:170
 msgid "Pages"
 msgstr ""
 
-#: admin/install/index.php:221 inc/dbschema/upgrade.php:173
+#: admin/install/index.php:229 inc/dbschema/upgrade.php:173
 msgid "Blogroll"
 msgstr ""
 
-#: admin/install/index.php:256
+#: admin/install/index.php:264
 msgid "Dotclear Install"
 msgstr ""
 
-#: admin/install/index.php:276
+#: admin/install/index.php:284
 msgid "show"
 msgstr ""
 
-#: admin/install/index.php:291
+#: admin/install/index.php:299
 msgid "Dotclear installation"
 msgstr ""
 
-#: admin/install/index.php:295
+#: admin/install/index.php:303
 #, php-format
 msgid "Cache directory %s is not writable."
 msgstr ""
 
-#: admin/install/index.php:299 admin/install/index.php:385
-#: admin/install/wizard.php:154 inc/admin/lib.dc.page.php:150
-#: inc/admin/lib.dc.page.php:233
+#: admin/install/index.php:307 admin/install/index.php:393
+#: admin/install/wizard.php:154 inc/admin/lib.dc.page.php:156
+#: inc/admin/lib.dc.page.php:239
 msgid "Errors:"
 msgstr ""
 
-#: admin/install/index.php:303
+#: admin/install/index.php:311
 msgid "Configuration file has been successfully created."
 msgstr ""
 
-#: admin/install/index.php:309 admin/install/index.php:314 admin/user.php:189
+#: admin/install/index.php:317 admin/install/index.php:322 admin/user.php:189
 msgid "User information"
 msgstr ""
 
-#: admin/install/index.php:311
+#: admin/install/index.php:319
 msgid "Please provide the following information needed to create the first user."
 msgstr ""
 
-#: admin/install/index.php:315 admin/preferences.php:335 admin/user.php:213
+#: admin/install/index.php:323 admin/preferences.php:351 admin/user.php:213
 msgid "First Name:"
 msgstr ""
 
-#: admin/install/index.php:317 admin/preferences.php:332 admin/user.php:209
+#: admin/install/index.php:325 admin/preferences.php:348 admin/user.php:209
 msgid "Last Name:"
 msgstr ""
 
-#: admin/install/index.php:323
+#: admin/install/index.php:331
 msgid "Username and password"
 msgstr ""
 
-#: admin/install/index.php:332
+#: admin/install/index.php:340
 msgid "save"
 msgstr ""
 
-#: admin/install/index.php:357
+#: admin/install/index.php:365
 msgid "All done!"
 msgstr ""
 
-#: admin/install/index.php:361
+#: admin/install/index.php:369
 msgid "Dotclear has been successfully installed. Here is some useful information you should keep."
 msgstr ""
 
-#: admin/install/index.php:363
+#: admin/install/index.php:371
 msgid "Your account"
 msgstr ""
 
-#: admin/install/index.php:369
+#: admin/install/index.php:377
 msgid "Your blog"
 msgstr ""
 
-#: admin/install/index.php:371
+#: admin/install/index.php:379
 msgid "Blog address:"
 msgstr ""
 
-#: admin/install/index.php:372
+#: admin/install/index.php:380
 msgid "Administration interface:"
 msgstr ""
 
-#: admin/install/index.php:376
+#: admin/install/index.php:384
 msgid "Manage your blog now"
 msgstr ""
 
-#: admin/install/index.php:384
+#: admin/install/index.php:392
 msgid "Installation can not be completed"
 msgstr ""
 
-#: admin/install/index.php:386
+#: admin/install/index.php:394
 msgid "For the said reasons, Dotclear can not be installed. Please refer to <a href=\"http://dotclear.org/documentation/2.0/admin/install\">the documentation</a> to learn how to correct the problem."
 msgstr ""
@@ -1563,6 +1569,6 @@
 msgstr ""
 
-#: admin/media.php:48 inc/admin/lib.dc.page.php:387
-#: inc/admin/lib.dc.page.php:660
+#: admin/media.php:48 inc/admin/lib.dc.page.php:393
+#: inc/admin/lib.dc.page.php:666
 msgid "Error:"
 msgstr ""
@@ -1584,6 +1590,6 @@
 msgstr ""
 
-#: admin/media.php:223 admin/media.php:225 admin/media.php:244
-#: admin/media.php:272 admin/media_item.php:164 admin/media_item.php:182
+#: admin/media.php:223 admin/media.php:225 admin/media.php:247
+#: admin/media.php:281 admin/media_item.php:164 admin/media_item.php:182
 #: inc/admin/prepend.php:206 inc/admin/prepend.php:269
 msgid "Media manager"
@@ -1608,93 +1614,97 @@
 msgstr ""
 
-#: admin/media.php:249
+#: admin/media.php:258
 msgid "Directory has been successfully created."
 msgstr ""
 
-#: admin/media.php:253
+#: admin/media.php:262
 msgid "Files have been successfully uploaded."
 msgstr ""
 
-#: admin/media.php:257
+#: admin/media.php:266
 msgid "File has been successfully removed."
 msgstr ""
 
-#: admin/media.php:261
+#: admin/media.php:270
 msgid "Directory has been successfully removed."
 msgstr ""
 
-#: admin/media.php:265
+#: admin/media.php:274
 msgid "Directory has been successfully rebuilt."
 msgstr ""
 
-#: admin/media.php:269
+#: admin/media.php:278
 msgid "Zip file has been successfully extracted."
 msgstr ""
 
-#: admin/media.php:281
+#: admin/media.php:290
 #, php-format
 msgid "Choose a file to attach to entry %s by clicking on %s."
 msgstr ""
 
-#: admin/media.php:283 admin/media.php:287 admin/media.php:421
-#: admin/media.php:422
+#: admin/media.php:292 admin/media.php:296 admin/media.php:432
+#: admin/media.php:433
 msgid "Attach this file to entry"
 msgstr ""
 
-#: admin/media.php:286
+#: admin/media.php:295
 #, php-format
 msgid "Choose a file to insert into entry by clicking on %s."
 msgstr ""
 
-#: admin/media.php:294
+#: admin/media.php:303
 msgid "No file."
 msgstr ""
 
-#: admin/media.php:304
+#: admin/media.php:313
 msgid "Sort files:"
 msgstr ""
 
-#: admin/media.php:329
+#: admin/media.php:338
 msgid "Add files"
 msgstr ""
 
-#: admin/media.php:330
+#: admin/media.php:339
 msgid "Please take care to publish media that you own and that are not protected by copyright."
 msgstr ""
 
-#: admin/media.php:335 admin/media_item.php:506
+#: admin/media.php:344 admin/media_item.php:506
 msgid "Choose a file:"
 msgstr ""
 
-#: admin/media.php:336 admin/media_item.php:507
+#: admin/media.php:345 admin/media_item.php:507
 #, php-format
 msgid "Maximum size %s"
 msgstr ""
 
-#: admin/media.php:341 admin/media_item.php:494
+#: admin/media.php:350 admin/media_item.php:494
 msgid "Private"
 msgstr ""
 
-#: admin/media.php:342 admin/media_item.php:510
+#: admin/media.php:351
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
+#: admin/media.php:353 admin/media_item.php:510
 msgid "send"
 msgstr ""
 
-#: admin/media.php:349
+#: admin/media.php:360
 msgid "New directory"
 msgstr ""
 
-#: admin/media.php:353
+#: admin/media.php:364
 msgid "Directory Name:"
 msgstr ""
 
-#: admin/media.php:377
+#: admin/media.php:388
 msgid "Download this directory as a zip file"
 msgstr ""
 
-#: admin/media.php:413 admin/post.php:429
+#: admin/media.php:424 admin/post.php:429
 msgid "open"
 msgstr ""
 
-#: admin/media.php:431 admin/media.php:432
+#: admin/media.php:442 admin/media.php:443
 msgid "Insert this file into entry"
 msgstr ""
@@ -1729,5 +1739,5 @@
 
 #: admin/media_item.php:222 admin/media_item.php:252 admin/media_item.php:287
-#: admin/posts.php:62 inc/admin/lib.pager.php:293
+#: admin/posts.php:63 inc/admin/lib.pager.php:89
 msgid "None"
 msgstr ""
@@ -1789,5 +1799,5 @@
 msgstr ""
 
-#: admin/media_item.php:311 inc/admin/lib.dc.page.php:663
+#: admin/media_item.php:311 inc/admin/lib.dc.page.php:669
 msgid "Cancel"
 msgstr ""
@@ -1934,5 +1944,5 @@
 msgstr ""
 
-#: admin/permissions_blog.php:123
+#: admin/permissions_blog.php:123 admin/posts.php:269
 msgid "Entries per page"
 msgstr ""
@@ -2111,5 +2121,5 @@
 msgstr ""
 
-#: admin/post.php:124 admin/post.php:363 inc/admin/lib.dc.page.php:391
+#: admin/post.php:124 admin/post.php:363 inc/admin/lib.dc.page.php:397
 msgid "Edit entry"
 msgstr ""
@@ -2127,5 +2137,5 @@
 msgstr ""
 
-#: admin/post.php:301 inc/admin/lib.dc.page.php:389
+#: admin/post.php:301 inc/admin/lib.dc.page.php:395
 msgid "Entry has been successfully created."
 msgstr ""
@@ -2220,5 +2230,5 @@
 msgstr ""
 
-#: admin/post.php:538 inc/admin/lib.pager.php:107
+#: admin/post.php:538 inc/admin/lib.pager.php:52
 msgid "Trackbacks"
 msgstr ""
@@ -2240,20 +2250,23 @@
 msgstr ""
 
-#: admin/post.php:625 inc/admin/lib.pager.php:319 inc/admin/lib.pager.php:410
-#: inc/core/class.dc.blog.php:80 inc/core/class.dc.blog.php:85
+#: admin/post.php:625 inc/admin/lib.pager.php:95 inc/admin/lib.pager.php:194
+#: inc/admin/lib.pager.php:308 inc/core/class.dc.blog.php:80
+#: inc/core/class.dc.blog.php:85
 msgid "published"
 msgstr ""
 
-#: admin/post.php:628 inc/admin/lib.pager.php:322 inc/admin/lib.pager.php:413
-#: inc/core/class.dc.blog.php:79 inc/core/class.dc.blog.php:84
+#: admin/post.php:628 inc/admin/lib.pager.php:98 inc/admin/lib.pager.php:197
+#: inc/admin/lib.pager.php:311 inc/core/class.dc.blog.php:79
+#: inc/core/class.dc.blog.php:84
 msgid "unpublished"
 msgstr ""
 
-#: admin/post.php:631 inc/admin/lib.pager.php:328 inc/admin/lib.pager.php:416
-#: inc/core/class.dc.blog.php:77 inc/core/class.dc.blog.php:83
+#: admin/post.php:631 inc/admin/lib.pager.php:104 inc/admin/lib.pager.php:203
+#: inc/admin/lib.pager.php:314 inc/core/class.dc.blog.php:77
+#: inc/core/class.dc.blog.php:83
 msgid "pending"
 msgstr ""
 
-#: admin/post.php:634 inc/admin/lib.pager.php:419
+#: admin/post.php:634 inc/admin/lib.pager.php:317
 #: inc/core/class.dc.blog.php:82
 msgid "junk"
@@ -2268,5 +2281,5 @@
 msgstr ""
 
-#: admin/post.php:649 inc/admin/lib.pager.php:432
+#: admin/post.php:649 inc/admin/lib.pager.php:340
 msgid "Edit this comment"
 msgstr ""
@@ -2288,74 +2301,73 @@
 msgstr ""
 
-#: admin/posts.php:76 inc/admin/lib.pager.php:339
+#: admin/posts.php:79 inc/admin/lib.pager.php:115 inc/admin/lib.pager.php:214
 msgid "selected"
 msgstr ""
 
-#: admin/posts.php:77
+#: admin/posts.php:80
 msgid "not selected"
 msgstr ""
 
-#: admin/posts.php:92 admin/posts.php:161 inc/admin/lib.pager.php:104
+#: admin/posts.php:97 inc/admin/lib.pager.php:49
 msgid "Category"
 msgstr ""
 
-#: admin/posts.php:95 admin/posts.php:165
+#: admin/posts.php:100
 msgid "Selected"
 msgstr ""
 
-#: admin/posts.php:109
+#: admin/posts.php:114
 msgid "Publish"
 msgstr ""
 
-#: admin/posts.php:110
+#: admin/posts.php:115
 msgid "Unpublish"
 msgstr ""
 
-#: admin/posts.php:111
+#: admin/posts.php:116
 msgid "Schedule"
 msgstr ""
 
-#: admin/posts.php:112
+#: admin/posts.php:117
 msgid "Mark as pending"
 msgstr ""
 
-#: admin/posts.php:115
+#: admin/posts.php:120
 msgid "Mark"
 msgstr ""
 
-#: admin/posts.php:116
+#: admin/posts.php:121
 msgid "Mark as selected"
 msgstr ""
 
-#: admin/posts.php:117
+#: admin/posts.php:122
 msgid "Mark as unselected"
 msgstr ""
 
-#: admin/posts.php:119 admin/posts.php:122
+#: admin/posts.php:124 admin/posts.php:127
 msgid "Change"
 msgstr ""
 
-#: admin/posts.php:119
+#: admin/posts.php:124
 msgid "Change category"
 msgstr ""
 
-#: admin/posts.php:123
+#: admin/posts.php:128
 msgid "Change author"
 msgstr ""
 
-#: admin/posts.php:167
-msgid "Lang"
-msgstr ""
-
-#: admin/posts.php:169
-msgid "Month"
-msgstr ""
-
-#: admin/posts.php:180
-#, php-format
-msgid "Entries / %s filtered out of %s"
-msgstr ""
-
-#: admin/posts.php:216 admin/search.php:127
+#: admin/posts.php:255
+msgid "Selected:"
+msgstr ""
+
+#: admin/posts.php:257
+msgid "Month:"
+msgstr ""
+
+#: admin/posts.php:259
+msgid "Lang:"
+msgstr ""
+
+#: admin/posts.php:286 admin/search.php:127
 msgid "Selected entries action:"
 msgstr ""
@@ -2369,151 +2381,163 @@
 msgstr ""
 
-#: admin/posts_actions.php:239
+#: admin/posts_actions.php:240
 msgid "Change author for entries"
 msgstr ""
 
-#: admin/posts_actions.php:243
+#: admin/posts_actions.php:244
 msgid "Author ID:"
 msgstr ""
 
-#: admin/preferences.php:69 admin/preferences.php:87 admin/preferences.php:376
+#: admin/preferences.php:78 admin/preferences.php:96 admin/preferences.php:392
 msgid "If you want to change your email or password you must provide your current password."
 msgstr ""
 
-#: admin/preferences.php:304
+#: admin/preferences.php:318
 msgid "Personal information has been successfully updated."
 msgstr ""
 
-#: admin/preferences.php:307
+#: admin/preferences.php:321
 msgid "Personal options has been successfully updated."
 msgstr ""
 
-#: admin/preferences.php:310
+#: admin/preferences.php:324
 msgid "Favorites have been successfully added."
 msgstr ""
 
-#: admin/preferences.php:313
+#: admin/preferences.php:327
 msgid "Favorites have been successfully updated."
 msgstr ""
 
-#: admin/preferences.php:316
+#: admin/preferences.php:330
 msgid "Favorites have been successfully removed."
 msgstr ""
 
-#: admin/preferences.php:319
+#: admin/preferences.php:333
 msgid "Default favorites have been successfully updated."
 msgstr ""
 
-#: admin/preferences.php:325 admin/preferences.php:329
+#: admin/preferences.php:341 admin/preferences.php:345
 msgid "My profile"
 msgstr ""
 
-#: admin/preferences.php:338 admin/user.php:217
+#: admin/preferences.php:354 admin/user.php:217
 msgid "Display name:"
 msgstr ""
 
-#: admin/preferences.php:351 admin/user.php:242
+#: admin/preferences.php:367 admin/user.php:242
 msgid "User language:"
 msgstr ""
 
-#: admin/preferences.php:354 admin/user.php:246
+#: admin/preferences.php:370 admin/user.php:246
 msgid "User timezone:"
 msgstr ""
 
-#: admin/preferences.php:391 admin/preferences.php:395
+#: admin/preferences.php:407 admin/preferences.php:411
 msgid "My options"
 msgstr ""
 
-#: admin/preferences.php:397 admin/user.php:230
+#: admin/preferences.php:413 admin/user.php:230
 msgid "Preferred format:"
 msgstr ""
 
-#: admin/preferences.php:400 admin/user.php:234
+#: admin/preferences.php:416 admin/user.php:234
 msgid "Default entry status:"
 msgstr ""
 
-#: admin/preferences.php:403 admin/user.php:238
+#: admin/preferences.php:419 admin/user.php:238
 msgid "Entry edit field height:"
 msgstr ""
 
-#: admin/preferences.php:408
+#: admin/preferences.php:424
 msgid "Enable WYSIWYG mode"
 msgstr ""
 
-#: admin/preferences.php:413
+#: admin/preferences.php:428
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+#: admin/preferences.php:434
+msgid "Do not use standard favicon"
+msgstr ""
+
+#: admin/preferences.php:435
+msgid "This will be applied for all users"
+msgstr ""
+
+#: admin/preferences.php:443
 msgid "Accessibility options"
 msgstr ""
 
-#: admin/preferences.php:417
+#: admin/preferences.php:447
 msgid "Disable javascript powered drag and drop for ordering items"
 msgstr ""
 
-#: admin/preferences.php:419
+#: admin/preferences.php:449
 msgid "Numeric fields will allow to type the elements' ordering number."
 msgstr ""
 
-#: admin/preferences.php:423
+#: admin/preferences.php:453
 msgid "Dashboard modules"
 msgstr ""
 
-#: admin/preferences.php:427
+#: admin/preferences.php:457
 msgid "Display documentation links"
 msgstr ""
 
-#: admin/preferences.php:431
+#: admin/preferences.php:461
 msgid "Display Dotclear news"
 msgstr ""
 
-#: admin/preferences.php:435
+#: admin/preferences.php:465
 msgid "Display quick entry form"
 msgstr ""
 
-#: admin/preferences.php:452 admin/preferences.php:457
+#: admin/preferences.php:482 admin/preferences.php:487
 #: inc/admin/prepend.php:247
 msgid "My favorites"
 msgstr ""
 
-#: admin/preferences.php:469
+#: admin/preferences.php:499
 #, php-format
 msgid "position of %s"
 msgstr ""
 
-#: admin/preferences.php:482
+#: admin/preferences.php:512
 msgid "Save order"
 msgstr ""
 
-#: admin/preferences.php:485
+#: admin/preferences.php:515
 msgid "Delete selected favorites"
 msgstr ""
 
-#: admin/preferences.php:487
+#: admin/preferences.php:517
 msgid "Are you sure you want to remove selected favorites?"
 msgstr ""
 
-#: admin/preferences.php:491
+#: admin/preferences.php:521
 msgid "If you are a super administrator, you may define this set of favorites to be used by default on all blogs of this installation:"
 msgstr ""
 
-#: admin/preferences.php:492
+#: admin/preferences.php:522
 msgid "Define as default favorites"
 msgstr ""
 
-#: admin/preferences.php:498
+#: admin/preferences.php:528
 msgid "Currently no personal favorites."
 msgstr ""
 
-#: admin/preferences.php:503
+#: admin/preferences.php:533
 msgid "Default favorites"
 msgstr ""
 
-#: admin/preferences.php:504
+#: admin/preferences.php:534
 msgid "Those favorites are displayed when My Favorites list is empty."
 msgstr ""
 
-#: admin/preferences.php:523
+#: admin/preferences.php:553
 msgid "Available favorites"
 msgstr ""
 
-#: admin/preferences.php:548
+#: admin/preferences.php:578
 msgid "Add to my favorites"
 msgstr ""
@@ -2710,17 +2734,17 @@
 msgstr ""
 
-#: admin/users.php:43 inc/admin/lib.pager.php:125
+#: admin/users.php:43 inc/admin/lib.pager.php:365
 msgid "Username"
 msgstr ""
 
-#: admin/users.php:44
+#: admin/users.php:44 inc/admin/lib.pager.php:367
 msgid "Last Name"
 msgstr ""
 
-#: admin/users.php:45
+#: admin/users.php:45 inc/admin/lib.pager.php:366
 msgid "First Name"
 msgstr ""
 
-#: admin/users.php:46 inc/admin/lib.pager.php:128
+#: admin/users.php:46 inc/admin/lib.pager.php:368
 msgid "Display name"
 msgstr ""
@@ -2754,49 +2778,4 @@
 msgstr ""
 
-#: inc/admin/class.dc.filter.php:95
-msgid "Toggle filters and display options"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:100
-msgid "Entries filters"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:117
-msgid "Delete all filters"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:118
-msgid "Add a filter"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:121
-msgid "Add this filter"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:127
-msgid "Apply filters and display options"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:279
-msgid "or"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:285
-msgid "is"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:285
-msgid "is not"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:286
-#, php-format
-msgid "%s is or is not"
-msgstr ""
-
-#: inc/admin/class.dc.filter.php:289
-msgid "Choose an option"
-msgstr ""
-
 #: inc/admin/lib.dc.page.php:57
 msgid "Blog:"
@@ -2811,427 +2790,399 @@
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:125
+#: inc/admin/lib.dc.page.php:131
 msgid "Go to site"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:125
+#: inc/admin/lib.dc.page.php:131
 msgid "new window"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:129
+#: inc/admin/lib.dc.page.php:135
 msgid "User:"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:130
+#: inc/admin/lib.dc.page.php:136
 msgid "Logout"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:143
+#: inc/admin/lib.dc.page.php:149
 msgid "Safe mode"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:144
+#: inc/admin/lib.dc.page.php:150
 msgid "You are in safe mode. All plugins have been temporarily disabled. Remind to log out then log in again normally to get back all functionalities"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:173
+#: inc/admin/lib.dc.page.php:179
 #, php-format
 msgid "Thank you for using %s."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:338
+#: inc/admin/lib.dc.page.php:344
 msgid "Help"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:366
+#: inc/admin/lib.dc.page.php:372
 msgid "uncover"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:368
+#: inc/admin/lib.dc.page.php:374
 msgid "hide"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:373
+#: inc/admin/lib.dc.page.php:379
 msgid "help"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:375
+#: inc/admin/lib.dc.page.php:381
 msgid "no selection"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:377
+#: inc/admin/lib.dc.page.php:383
 msgid "select all"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:379
+#: inc/admin/lib.dc.page.php:385
 msgid "invert selection"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:393
+#: inc/admin/lib.dc.page.php:399
 msgid "view entry"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:395
+#: inc/admin/lib.dc.page.php:401
 #, php-format
 msgid "Are you sure you want to delete selected entries (%s)?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:397
+#: inc/admin/lib.dc.page.php:403
 msgid "Are you sure you want to delete this entry?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:399
+#: inc/admin/lib.dc.page.php:405
 #, php-format
 msgid "Are you sure you want to delete selected comments (%s)?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:401
+#: inc/admin/lib.dc.page.php:407
 msgid "Are you sure you want to delete this comment?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:403
+#: inc/admin/lib.dc.page.php:409
 msgid "Users with posts cannot be deleted."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:405
+#: inc/admin/lib.dc.page.php:411
 #, php-format
 msgid "Are you sure you want to delete selected users (%s)?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:407
+#: inc/admin/lib.dc.page.php:413
 #, php-format
 msgid "Are you sure you want to delete category \"%s\"?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:409
+#: inc/admin/lib.dc.page.php:415
 msgid "Are you sure you want to reorder all categories?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:411
+#: inc/admin/lib.dc.page.php:417
 #, php-format
 msgid "Are you sure you want to remove media \"%s\"?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:413
+#: inc/admin/lib.dc.page.php:419
 msgid "Are you sure you want to extract archive in current directory?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:415
+#: inc/admin/lib.dc.page.php:421
 #, php-format
 msgid "Are you sure you want to remove attachment \"%s\"?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:417
+#: inc/admin/lib.dc.page.php:423
 #, php-format
 msgid "Are you sure you want to delete \"%s\" language?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:419
+#: inc/admin/lib.dc.page.php:425
 #, php-format
 msgid "Are you sure you want to delete \"%s\" plugin?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:421
+#: inc/admin/lib.dc.page.php:427
 msgid "Use this theme"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:423
+#: inc/admin/lib.dc.page.php:429
 msgid "Remove this theme"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:425
+#: inc/admin/lib.dc.page.php:431
 #, php-format
 msgid "Are you sure you want to delete \"%s\" theme?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:427
+#: inc/admin/lib.dc.page.php:433
 msgid "Zip file content"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:429
+#: inc/admin/lib.dc.page.php:435
 msgid "XHTML markup validator"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:431
+#: inc/admin/lib.dc.page.php:437
 msgid "XHTML content is valid."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:433
+#: inc/admin/lib.dc.page.php:439
 msgid "There are XHTML markup errors."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:435
+#: inc/admin/lib.dc.page.php:441
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:437
+#: inc/admin/lib.dc.page.php:443
 msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:468
+#: inc/admin/lib.dc.page.php:474
 msgid "You have unsaved changes."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:542
+#: inc/admin/lib.dc.page.php:548
 msgid "close"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:543
+#: inc/admin/lib.dc.page.php:549
 msgid "now"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:587
+#: inc/admin/lib.dc.page.php:593
 msgid "visual"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:588
+#: inc/admin/lib.dc.page.php:594
 msgid "source"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:590
+#: inc/admin/lib.dc.page.php:596
 msgid "You can use the following shortcuts to format your text."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:591
+#: inc/admin/lib.dc.page.php:597
 msgid "-- none --"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:592
+#: inc/admin/lib.dc.page.php:598
 msgid "-- block format --"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:593
+#: inc/admin/lib.dc.page.php:599
 msgid "Paragraph"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:594
+#: inc/admin/lib.dc.page.php:600
 msgid "Level 1 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:595
+#: inc/admin/lib.dc.page.php:601
 msgid "Level 2 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:596
+#: inc/admin/lib.dc.page.php:602
 msgid "Level 3 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:597
+#: inc/admin/lib.dc.page.php:603
 msgid "Level 4 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:598
+#: inc/admin/lib.dc.page.php:604
 msgid "Level 5 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:599
+#: inc/admin/lib.dc.page.php:605
 msgid "Level 6 header"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:600
+#: inc/admin/lib.dc.page.php:606
 msgid "Strong emphasis"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:601
+#: inc/admin/lib.dc.page.php:607
 msgid "Emphasis"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:602
+#: inc/admin/lib.dc.page.php:608
 msgid "Inserted"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:603
+#: inc/admin/lib.dc.page.php:609
 msgid "Deleted"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:604
+#: inc/admin/lib.dc.page.php:610
 msgid "Inline quote"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:605
+#: inc/admin/lib.dc.page.php:611
 msgid "Code"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:606
+#: inc/admin/lib.dc.page.php:612
 msgid "Line break"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:607
+#: inc/admin/lib.dc.page.php:613
 msgid "Blockquote"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:608
+#: inc/admin/lib.dc.page.php:614
 msgid "Preformated text"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:609
+#: inc/admin/lib.dc.page.php:615
 msgid "Unordered list"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:610
+#: inc/admin/lib.dc.page.php:616
 msgid "Ordered list"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:612
+#: inc/admin/lib.dc.page.php:618
 msgid "Link"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:613 inc/admin/lib.dc.page.php:617
+#: inc/admin/lib.dc.page.php:619 inc/admin/lib.dc.page.php:623
 msgid "URL?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:614
+#: inc/admin/lib.dc.page.php:620
 msgid "Language?"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:616
+#: inc/admin/lib.dc.page.php:622
 msgid "External image"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:619
+#: inc/admin/lib.dc.page.php:625
 msgid "Media chooser"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:620
+#: inc/admin/lib.dc.page.php:626
 msgid "Link to an entry"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:652
+#: inc/admin/lib.dc.page.php:658
 msgid "Activate enhanced uploader"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:653
+#: inc/admin/lib.dc.page.php:659
 msgid "Disable enhanced uploader"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:654
+#: inc/admin/lib.dc.page.php:660
 msgid "File successfully uploaded."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:655
+#: inc/admin/lib.dc.page.php:661
 msgid "Maximum file size allowed:"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:656
+#: inc/admin/lib.dc.page.php:662
 msgid "Limit exceeded."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:657
+#: inc/admin/lib.dc.page.php:663
 msgid "File size exceeds allowed limit."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:658
+#: inc/admin/lib.dc.page.php:664
 msgid "Canceled."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:659
+#: inc/admin/lib.dc.page.php:665
 msgid "HTTP Error:"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:661
+#: inc/admin/lib.dc.page.php:667
 msgid "Choose file"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:662
+#: inc/admin/lib.dc.page.php:668
 msgid "Choose files"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:664
+#: inc/admin/lib.dc.page.php:670
 msgid "Clean"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:665
+#: inc/admin/lib.dc.page.php:671
 msgid "Upload"
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:666
+#: inc/admin/lib.dc.page.php:672
 msgid "No file in queue."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:667
+#: inc/admin/lib.dc.page.php:673
 msgid "1 file in queue."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:668
+#: inc/admin/lib.dc.page.php:674
 #, php-format
 msgid "%d files in queue."
 msgstr ""
 
-#: inc/admin/lib.dc.page.php:669
+#: inc/admin/lib.dc.page.php:675
 msgid "Queue error:"
 msgstr ""
 
-#: inc/admin/lib.pager.php:27
-msgid "Invalid column ID"
-msgstr ""
-
-#: inc/admin/lib.pager.php:31
-msgid "Invalid column title"
-msgstr ""
-
-#: inc/admin/lib.pager.php:43
-msgid "Callback parameter should be an array"
-msgstr ""
-
-#: inc/admin/lib.pager.php:49
-msgid "Callback class should be inherited of adminGenericList class"
-msgstr ""
-
-#: inc/admin/lib.pager.php:53
-#, php-format
-msgid "Invalid column callback: %s"
-msgstr ""
-
-#: inc/admin/lib.pager.php:98
+#: inc/admin/lib.pager.php:25
 msgid "&#171;prev."
 msgstr ""
 
-#: inc/admin/lib.pager.php:99
+#: inc/admin/lib.pager.php:26
 msgid "next&#187;"
 msgstr ""
 
-#: inc/admin/lib.pager.php:120
+#: inc/admin/lib.pager.php:36 inc/admin/lib.pager.php:151
+msgid "No entry"
+msgstr ""
+
+#: inc/admin/lib.pager.php:101 inc/admin/lib.pager.php:200
+#: inc/core/class.dc.blog.php:78
+msgid "scheduled"
+msgstr ""
+
+#: inc/admin/lib.pager.php:110 inc/admin/lib.pager.php:209
+msgid "protected"
+msgstr ""
+
+#: inc/admin/lib.pager.php:121 inc/admin/lib.pager.php:220
+#, php-format
+msgid "%d attachment"
+msgstr ""
+
+#: inc/admin/lib.pager.php:121 inc/admin/lib.pager.php:220
+#, php-format
+msgid "%d attachments"
+msgstr ""
+
+#: inc/admin/lib.pager.php:260
 msgid "Type"
 msgstr ""
 
-#: inc/admin/lib.pager.php:126
-msgid "First name"
-msgstr ""
-
-#: inc/admin/lib.pager.php:127
-msgid "Last name"
-msgstr ""
-
-#: inc/admin/lib.pager.php:177
-msgid "Displayed information"
-msgstr ""
-
-#: inc/admin/lib.pager.php:197
-msgid "No entry"
-msgstr ""
-
-#: inc/admin/lib.pager.php:325 inc/core/class.dc.blog.php:78
-msgid "scheduled"
-msgstr ""
-
-#: inc/admin/lib.pager.php:334
-msgid "protected"
-msgstr ""
-
-#: inc/admin/lib.pager.php:345
-#, php-format
-msgid "%d attachment"
-msgstr ""
-
-#: inc/admin/lib.pager.php:345
-#, php-format
-msgid "%d attachments"
-msgstr ""
-
-#: inc/admin/lib.pager.php:446
+#: inc/admin/lib.pager.php:354
+msgid "No user"
+msgstr ""
+
+#: inc/admin/lib.pager.php:401
 msgid "admin"
 msgstr ""
 
-#: inc/admin/lib.pager.php:449
+#: inc/admin/lib.pager.php:404
 msgid "superadmin"
 msgstr ""
@@ -3329,88 +3280,88 @@
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1090
+#: inc/core/class.dc.blog.php:1085
 msgid "You are not allowed to create an entry"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1148
+#: inc/core/class.dc.blog.php:1143
 msgid "You are not allowed to update entries"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1154 inc/core/class.dc.blog.php:1335
+#: inc/core/class.dc.blog.php:1149 inc/core/class.dc.blog.php:1330
 msgid "No such entry ID"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1183
+#: inc/core/class.dc.blog.php:1178
 msgid "You are not allowed to edit this entry"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1207 inc/core/class.dc.blog.php:1225
+#: inc/core/class.dc.blog.php:1202 inc/core/class.dc.blog.php:1220
 #: inc/core/class.dc.meta.php:168 inc/core/class.dc.meta.php:182
 msgid "You are not allowed to change this entry status"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1244 inc/core/class.dc.blog.php:1287
-#: inc/core/class.dc.blog.php:1305
+#: inc/core/class.dc.blog.php:1239 inc/core/class.dc.blog.php:1282
+#: inc/core/class.dc.blog.php:1300
 msgid "You are not allowed to change this entry category"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1262
+#: inc/core/class.dc.blog.php:1257
 msgid "You are not allowed to mark this entry as selected"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1329
+#: inc/core/class.dc.blog.php:1324
 msgid "You are not allowed to delete entries"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1350
+#: inc/core/class.dc.blog.php:1345
 msgid "You are not allowed to delete this entry"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1504
+#: inc/core/class.dc.blog.php:1499
 msgid "No entry title"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1508 inc/core/class.dc.blog.php:1524
+#: inc/core/class.dc.blog.php:1503 inc/core/class.dc.blog.php:1519
 msgid "No entry content"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1686
+#: inc/core/class.dc.blog.php:1681
 msgid "Empty entry URL"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1926
+#: inc/core/class.dc.blog.php:1921
 msgid "You are not allowed to update comments"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1932 inc/core/class.dc.blog.php:1938
-#: inc/core/class.dc.blog.php:2000
+#: inc/core/class.dc.blog.php:1927 inc/core/class.dc.blog.php:1933
+#: inc/core/class.dc.blog.php:1995
 msgid "No such comment ID"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1945
+#: inc/core/class.dc.blog.php:1940
 msgid "You are not allowed to update this comment"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1978
+#: inc/core/class.dc.blog.php:1973
 msgid "You are not allowed to change this comment's status"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:1994
+#: inc/core/class.dc.blog.php:1989
 msgid "You are not allowed to delete comments"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:2016
+#: inc/core/class.dc.blog.php:2011
 msgid "You are not allowed to delete this comment"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:2031
+#: inc/core/class.dc.blog.php:2026
 msgid "You must provide a comment"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:2035
+#: inc/core/class.dc.blog.php:2030
 msgid "You must provide an author name"
 msgstr ""
 
-#: inc/core/class.dc.blog.php:2039
+#: inc/core/class.dc.blog.php:2034
 msgid "Email address is not valid."
 msgstr ""
@@ -3812,14 +3763,14 @@
 msgstr ""
 
-#: inc/prepend.php:163
+#: inc/prepend.php:159
 msgid "Unable to connect to database"
 msgstr ""
 
-#: inc/prepend.php:165
+#: inc/prepend.php:161
 #, php-format
 msgid "<p>This either means that the username and password information in your <strong>config.php</strong> file is incorrect or we can't contact the database server at \"<em>%s</em>\". This could mean your host's database server is down.</p> <ul><li>Are you sure you have the correct username and password?</li><li>Are you sure that you have typed the correct hostname?</li><li>Are you sure that the database server is running?</li></ul><p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"http://forum.dotclear.net/\">Dotclear Support Forums</a>.</p>"
 msgstr ""
 
-#: inc/prepend.php:176
+#: inc/prepend.php:172
 msgid "The following error was encountered while trying to read the database:"
 msgstr ""
Index: locales/_pot/plugins.pot
===================================================================
--- locales/_pot/plugins.pot	(revision 438)
+++ locales/_pot/plugins.pot	(revision 261)
@@ -8,8 +8,9 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-27 13:20+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=CHARSET\n"
@@ -534,4 +535,8 @@
 msgstr ""
 
+#: plugins/blogroll/index.php:249
+msgid "Lang"
+msgstr ""
+
 #: plugins/blogroll/index.php:261
 msgid "select this link"
@@ -909,28 +914,28 @@
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:137
+#: plugins/importExport/inc/class.dc.export.flat.php:138
 msgid "Export file not found."
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:155
+#: plugins/importExport/inc/class.dc.export.flat.php:156
 msgid "Export a blog"
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:156
+#: plugins/importExport/inc/class.dc.export.flat.php:157
 #, php-format
 msgid "This will create an export of your current blog: %s"
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:161
+#: plugins/importExport/inc/class.dc.export.flat.php:162
 #: plugins/importExport/index.php:124
 msgid "Export"
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:165
+#: plugins/importExport/inc/class.dc.export.flat.php:166
 msgid "You may also want to download your media directory as a zip file"
 msgstr ""
 
-#: plugins/importExport/inc/class.dc.export.flat.php:172
-#: plugins/importExport/inc/class.dc.export.flat.php:176
+#: plugins/importExport/inc/class.dc.export.flat.php:173
+#: plugins/importExport/inc/class.dc.export.flat.php:177
 msgid "Export all content"
 msgstr ""
@@ -946,4 +951,8 @@
 #: plugins/importExport/inc/class.dc.ieModule.php:85
 msgid "Why don't you blog this now?"
+msgstr ""
+
+#: plugins/importExport/inc/class.dc.ieModule.php:86
+msgid "or"
 msgstr ""
 
@@ -1196,17 +1205,17 @@
 msgstr ""
 
-#: plugins/importExport/inc/flat/class.dc.import.php:104
+#: plugins/importExport/inc/flat/class.dc.import.php:105
 msgid "File is not a single blog export."
 msgstr ""
 
-#: plugins/importExport/inc/flat/class.dc.import.php:221
+#: plugins/importExport/inc/flat/class.dc.import.php:222
 msgid "File is not a full export."
 msgstr ""
 
-#: plugins/importExport/inc/flat/class.dc.import.php:610
-#: plugins/importExport/inc/flat/class.dc.import.php:620
-#: plugins/importExport/inc/flat/class.dc.import.php:647
-#: plugins/importExport/inc/flat/class.dc.import.php:658
-#: plugins/importExport/inc/flat/class.dc.import.php:673
+#: plugins/importExport/inc/flat/class.dc.import.php:628
+#: plugins/importExport/inc/flat/class.dc.import.php:638
+#: plugins/importExport/inc/flat/class.dc.import.php:665
+#: plugins/importExport/inc/flat/class.dc.import.php:676
+#: plugins/importExport/inc/flat/class.dc.import.php:691
 msgid "The backup file does not appear to be well formed."
 msgstr ""
Index: locales/bn/main.po
===================================================================
--- locales/bn/main.po	(revision 221)
+++ locales/bn/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-09-16 12:33+0600\n"
 "Last-Translator: Adnan Shameem <needadnan@gmail.com>\n"
@@ -1227,4 +1227,7 @@
 msgstr "প্রাইভেট"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "পাঠাও"
@@ -1805,4 +1808,13 @@
 
 msgid "Enable WYSIWYG mode"
+msgstr ""
+
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
 msgstr ""
 
@@ -2178,4 +2190,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/bn/plugins.po
===================================================================
--- locales/bn/plugins.po	(revision 221)
+++ locales/bn/plugins.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-09-16 11:17+0600\n"
 "Last-Translator: Adnan Shameem <needadnan@gmail.com>\n"
@@ -236,164 +236,164 @@
 msgstr ""
 
-msgid "Syndication"
-msgstr ""
-
-msgid "Junk comments RSS feed"
-msgstr ""
-
-msgid "Published comments RSS feed"
-msgstr ""
-
-msgid "manage blogroll"
-msgstr ""
-
-msgid "Links"
-msgstr "লিংকসমূহ"
-
-msgid "All categories"
-msgstr "সব ক্যাটাগরি"
-
-msgid "Home page only"
-msgstr "শুধু হোমপেজ"
-
-msgid "You must provide a link title"
-msgstr "আপনাকে অবশ্যই লিংকের শিরোনাম দিতে হবে"
-
-msgid "You must provide a link URL"
-msgstr "আপনাকে অবশ্যই লিংক URL দিতে হবে"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr ""
-
-msgid "File is not in XML format."
-msgstr "ফাইলটি XML ফরম্যাটে নেই।"
-
-msgid "No such link or title"
-msgstr ""
-
-msgid "Return to blogroll"
-msgstr ""
-
-msgid "Category has been successfully updated"
-msgstr ""
-
-msgid "Edit category"
-msgstr ""
-
-msgid "Link has been successfully updated"
-msgstr ""
-
-msgid "Edit link"
-msgstr ""
-
-msgid "XFN"
-msgstr ""
-
-msgid "_xfn_Me"
-msgstr ""
-
-msgid "_xfn_Another link for myself"
-msgstr ""
-
-msgid "_xfn_Friendship"
-msgstr ""
-
-msgid "_xfn_Contact"
-msgstr ""
-
-msgid "_xfn_Acquaintance"
-msgstr ""
-
-msgid "_xfn_Friend"
-msgstr ""
-
-msgid "_xfn_Physical"
-msgstr ""
-
-msgid "_xfn_Met"
-msgstr ""
-
-msgid "_xfn_Professional"
-msgstr ""
-
-msgid "_xfn_Co-worker"
-msgstr ""
-
-msgid "_xfn_Colleague"
-msgstr ""
-
-msgid "_xfn_Geographical"
-msgstr ""
-
-msgid "_xfn_Co-resident"
-msgstr ""
-
-msgid "_xfn_Neighbor"
-msgstr ""
-
-msgid "_xfn_Family"
-msgstr ""
-
-msgid "_xfn_Child"
-msgstr ""
-
-msgid "_xfn_Parent"
-msgstr ""
-
-msgid "_xfn_Sibling"
-msgstr ""
-
-msgid "_xfn_Spouse"
-msgstr ""
-
-msgid "_xfn_Kin"
-msgstr ""
-
-msgid "_xfn_Romantic"
-msgstr ""
-
-msgid "_xfn_Muse"
-msgstr ""
-
-msgid "_xfn_Crush"
-msgstr ""
-
-msgid "_xfn_Date"
-msgstr ""
-
-msgid "_xfn_Sweetheart"
-msgstr ""
-
-msgid "Nothing to import"
-msgstr ""
-
-msgid "Import operation cancelled."
-msgstr ""
-
-msgid "Items order has been successfully updated"
-msgstr ""
-
-msgid "Items have been successfully removed."
-msgstr ""
-
-msgid "Link has been successfully created."
-msgstr ""
-
-msgid "category has been successfully created."
-msgstr ""
-
-msgid "links have been successfully imported."
-msgstr ""
-
-msgid "URL"
-msgstr ""
-
-msgid "Lang"
-msgstr ""
-
 #, fuzzy
 msgid "position"
 msgstr "বিবরণ"
 
+msgid "Syndication"
+msgstr ""
+
+msgid "Junk comments RSS feed"
+msgstr ""
+
+msgid "Published comments RSS feed"
+msgstr ""
+
+msgid "manage blogroll"
+msgstr ""
+
+msgid "Links"
+msgstr "লিংকসমূহ"
+
+msgid "All categories"
+msgstr "সব ক্যাটাগরি"
+
+msgid "Home page only"
+msgstr "শুধু হোমপেজ"
+
+msgid "You must provide a link title"
+msgstr "আপনাকে অবশ্যই লিংকের শিরোনাম দিতে হবে"
+
+msgid "You must provide a link URL"
+msgstr "আপনাকে অবশ্যই লিংক URL দিতে হবে"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr ""
+
+msgid "File is not in XML format."
+msgstr "ফাইলটি XML ফরম্যাটে নেই।"
+
+msgid "No such link or title"
+msgstr ""
+
+msgid "Return to blogroll"
+msgstr ""
+
+msgid "Category has been successfully updated"
+msgstr ""
+
+msgid "Edit category"
+msgstr ""
+
+msgid "Link has been successfully updated"
+msgstr ""
+
+msgid "Edit link"
+msgstr ""
+
+msgid "XFN"
+msgstr ""
+
+msgid "_xfn_Me"
+msgstr ""
+
+msgid "_xfn_Another link for myself"
+msgstr ""
+
+msgid "_xfn_Friendship"
+msgstr ""
+
+msgid "_xfn_Contact"
+msgstr ""
+
+msgid "_xfn_Acquaintance"
+msgstr ""
+
+msgid "_xfn_Friend"
+msgstr ""
+
+msgid "_xfn_Physical"
+msgstr ""
+
+msgid "_xfn_Met"
+msgstr ""
+
+msgid "_xfn_Professional"
+msgstr ""
+
+msgid "_xfn_Co-worker"
+msgstr ""
+
+msgid "_xfn_Colleague"
+msgstr ""
+
+msgid "_xfn_Geographical"
+msgstr ""
+
+msgid "_xfn_Co-resident"
+msgstr ""
+
+msgid "_xfn_Neighbor"
+msgstr ""
+
+msgid "_xfn_Family"
+msgstr ""
+
+msgid "_xfn_Child"
+msgstr ""
+
+msgid "_xfn_Parent"
+msgstr ""
+
+msgid "_xfn_Sibling"
+msgstr ""
+
+msgid "_xfn_Spouse"
+msgstr ""
+
+msgid "_xfn_Kin"
+msgstr ""
+
+msgid "_xfn_Romantic"
+msgstr ""
+
+msgid "_xfn_Muse"
+msgstr ""
+
+msgid "_xfn_Crush"
+msgstr ""
+
+msgid "_xfn_Date"
+msgstr ""
+
+msgid "_xfn_Sweetheart"
+msgstr ""
+
+msgid "Nothing to import"
+msgstr ""
+
+msgid "Import operation cancelled."
+msgstr ""
+
+msgid "Items order has been successfully updated"
+msgstr ""
+
+msgid "Items have been successfully removed."
+msgstr ""
+
+msgid "Link has been successfully created."
+msgstr ""
+
+msgid "category has been successfully created."
+msgstr ""
+
+msgid "links have been successfully imported."
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "Lang"
+msgstr ""
+
 msgid "select this link"
 msgstr ""
Index: locales/ca/main.po
===================================================================
--- locales/ca/main.po	(revision 221)
+++ locales/ca/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2.0-rc1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-06-03 17:03+0200\n"
 "Last-Translator: Aina Chabert Ramon <ainachabert@gmail.com>\n"
@@ -1275,4 +1275,7 @@
 msgstr "Privat"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "Enviat"
@@ -1874,4 +1877,13 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Activar la modalitat WYSIWYG"
+
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2258,4 +2270,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "No ha guardat els canvis."
Index: locales/ca/plugins.po
===================================================================
--- locales/ca/plugins.po	(revision 221)
+++ locales/ca/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/cs/main.po
===================================================================
--- locales/cs/main.po	(revision 221)
+++ locales/cs/main.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2010-06-02 01:21+0100\n"
 "Last-Translator: Jan Skrasek <hrach.cz@gmail.com>\n"
@@ -1227,4 +1227,7 @@
 msgstr "Soukromý"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "poslat"
@@ -1804,4 +1807,14 @@
 msgstr "Zapnout WYSIWYG mód"
 
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Zapnout rozšířený uploader"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2173,4 +2186,7 @@
 
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
Index: locales/cs/plugins.po
===================================================================
--- locales/cs/plugins.po	(revision 221)
+++ locales/cs/plugins.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2010-06-02 01:31+0100\n"
 "Last-Translator: Jan Skrasek <hrach.cz@gmail.com>\n"
@@ -237,164 +237,164 @@
 msgstr "Konfigurace filtru"
 
-msgid "Syndication"
-msgstr "Odběr"
-
-msgid "Junk comments RSS feed"
-msgstr "Podezřelé komentáře - RSS zdroj"
-
-msgid "Published comments RSS feed"
-msgstr "Publikované komentáře - RSS zdroj"
-
-msgid "manage blogroll"
-msgstr "spravovat odkazy"
-
-msgid "Links"
-msgstr "Odkazy"
-
-msgid "All categories"
-msgstr "Všechny kategorie"
-
-msgid "Home page only"
-msgstr "Pouze úvodní stránka"
-
-msgid "You must provide a link title"
-msgstr "Musíte vložit název odkazu"
-
-msgid "You must provide a link URL"
-msgstr "Musíte vložit URL odkazu"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "Musíte nahrát XBEL nebo OPML soubor."
-
-msgid "File is not in XML format."
-msgstr "Soubor není v XML formátu."
-
-msgid "No such link or title"
-msgstr "Žádný takový odkaz nebo název"
-
-msgid "Return to blogroll"
-msgstr "Zpět na seznam odkazů"
-
-msgid "Category has been successfully updated"
-msgstr "Kategorie byla úspěšně upravena"
-
-msgid "Edit category"
-msgstr "Upravit kategorii"
-
-msgid "Link has been successfully updated"
-msgstr "Odkaz byl úspěšně upraven"
-
-msgid "Edit link"
-msgstr "Upravit odkaz"
-
-msgid "XFN"
-msgstr "XFN"
-
-msgid "_xfn_Me"
-msgstr "Já"
-
-msgid "_xfn_Another link for myself"
-msgstr "moje další webová stránka"
-
-msgid "_xfn_Friendship"
-msgstr "přítelství"
-
-msgid "_xfn_Contact"
-msgstr "kontakt"
-
-msgid "_xfn_Acquaintance"
-msgstr "známý"
-
-msgid "_xfn_Friend"
-msgstr "přítel"
-
-msgid "_xfn_Physical"
-msgstr "fyzický"
-
-msgid "_xfn_Met"
-msgstr "setkali jsme se"
-
-msgid "_xfn_Professional"
-msgstr "profesně"
-
-msgid "_xfn_Co-worker"
-msgstr "spolupracovník"
-
-msgid "_xfn_Colleague"
-msgstr "kolega"
-
-msgid "_xfn_Geographical"
-msgstr "geograficky"
-
-msgid "_xfn_Co-resident"
-msgstr "ze sousedství"
-
-msgid "_xfn_Neighbor"
-msgstr "soused"
-
-msgid "_xfn_Family"
-msgstr "rodina"
-
-msgid "_xfn_Child"
-msgstr "dítě"
-
-msgid "_xfn_Parent"
-msgstr "rodič"
-
-msgid "_xfn_Sibling"
-msgstr "sourozenec"
-
-msgid "_xfn_Spouse"
-msgstr "partner"
-
-msgid "_xfn_Kin"
-msgstr "příbuzný"
-
-msgid "_xfn_Romantic"
-msgstr "romantické"
-
-msgid "_xfn_Muse"
-msgstr "múza"
-
-msgid "_xfn_Crush"
-msgstr "touha"
-
-msgid "_xfn_Date"
-msgstr "randí"
-
-msgid "_xfn_Sweetheart"
-msgstr "zlatíčko"
-
-msgid "Nothing to import"
-msgstr "Není nic k importu"
-
-msgid "Import operation cancelled."
-msgstr "Import byl zrušen."
-
-msgid "Items order has been successfully updated"
-msgstr "Položky byly úspěšně upraveny."
-
-msgid "Items have been successfully removed."
-msgstr "Položky byly úspěšně odstraněny."
-
-msgid "Link has been successfully created."
-msgstr "Odkaz byl úspěšně vytvořen."
-
-msgid "category has been successfully created."
-msgstr "kategorie byla úspěšně vytvořena."
-
-msgid "links have been successfully imported."
-msgstr "odkazy byly úspěšně naimportovány."
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "Jazyk"
-
 #, fuzzy
 msgid "position"
 msgstr "Pozice stránky"
 
+msgid "Syndication"
+msgstr "Odběr"
+
+msgid "Junk comments RSS feed"
+msgstr "Podezřelé komentáře - RSS zdroj"
+
+msgid "Published comments RSS feed"
+msgstr "Publikované komentáře - RSS zdroj"
+
+msgid "manage blogroll"
+msgstr "spravovat odkazy"
+
+msgid "Links"
+msgstr "Odkazy"
+
+msgid "All categories"
+msgstr "Všechny kategorie"
+
+msgid "Home page only"
+msgstr "Pouze úvodní stránka"
+
+msgid "You must provide a link title"
+msgstr "Musíte vložit název odkazu"
+
+msgid "You must provide a link URL"
+msgstr "Musíte vložit URL odkazu"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "Musíte nahrát XBEL nebo OPML soubor."
+
+msgid "File is not in XML format."
+msgstr "Soubor není v XML formátu."
+
+msgid "No such link or title"
+msgstr "Žádný takový odkaz nebo název"
+
+msgid "Return to blogroll"
+msgstr "Zpět na seznam odkazů"
+
+msgid "Category has been successfully updated"
+msgstr "Kategorie byla úspěšně upravena"
+
+msgid "Edit category"
+msgstr "Upravit kategorii"
+
+msgid "Link has been successfully updated"
+msgstr "Odkaz byl úspěšně upraven"
+
+msgid "Edit link"
+msgstr "Upravit odkaz"
+
+msgid "XFN"
+msgstr "XFN"
+
+msgid "_xfn_Me"
+msgstr "Já"
+
+msgid "_xfn_Another link for myself"
+msgstr "moje další webová stránka"
+
+msgid "_xfn_Friendship"
+msgstr "přítelství"
+
+msgid "_xfn_Contact"
+msgstr "kontakt"
+
+msgid "_xfn_Acquaintance"
+msgstr "známý"
+
+msgid "_xfn_Friend"
+msgstr "přítel"
+
+msgid "_xfn_Physical"
+msgstr "fyzický"
+
+msgid "_xfn_Met"
+msgstr "setkali jsme se"
+
+msgid "_xfn_Professional"
+msgstr "profesně"
+
+msgid "_xfn_Co-worker"
+msgstr "spolupracovník"
+
+msgid "_xfn_Colleague"
+msgstr "kolega"
+
+msgid "_xfn_Geographical"
+msgstr "geograficky"
+
+msgid "_xfn_Co-resident"
+msgstr "ze sousedství"
+
+msgid "_xfn_Neighbor"
+msgstr "soused"
+
+msgid "_xfn_Family"
+msgstr "rodina"
+
+msgid "_xfn_Child"
+msgstr "dítě"
+
+msgid "_xfn_Parent"
+msgstr "rodič"
+
+msgid "_xfn_Sibling"
+msgstr "sourozenec"
+
+msgid "_xfn_Spouse"
+msgstr "partner"
+
+msgid "_xfn_Kin"
+msgstr "příbuzný"
+
+msgid "_xfn_Romantic"
+msgstr "romantické"
+
+msgid "_xfn_Muse"
+msgstr "múza"
+
+msgid "_xfn_Crush"
+msgstr "touha"
+
+msgid "_xfn_Date"
+msgstr "randí"
+
+msgid "_xfn_Sweetheart"
+msgstr "zlatíčko"
+
+msgid "Nothing to import"
+msgstr "Není nic k importu"
+
+msgid "Import operation cancelled."
+msgstr "Import byl zrušen."
+
+msgid "Items order has been successfully updated"
+msgstr "Položky byly úspěšně upraveny."
+
+msgid "Items have been successfully removed."
+msgstr "Položky byly úspěšně odstraněny."
+
+msgid "Link has been successfully created."
+msgstr "Odkaz byl úspěšně vytvořen."
+
+msgid "category has been successfully created."
+msgstr "kategorie byla úspěšně vytvořena."
+
+msgid "links have been successfully imported."
+msgstr "odkazy byly úspěšně naimportovány."
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "Jazyk"
+
 #, fuzzy
 msgid "select this link"
Index: locales/da/main.po
===================================================================
--- locales/da/main.po	(revision 221)
+++ locales/da/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-09-09 09:19+0100\n"
 "Last-Translator: Dennis S. L. Jørgensen <maniactor@gmail.com>\n"
@@ -1234,4 +1234,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1817,4 +1820,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2188,4 +2200,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/da/plugins.po
===================================================================
--- locales/da/plugins.po	(revision 221)
+++ locales/da/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/de/main.po
===================================================================
--- locales/de/main.po	(revision 221)
+++ locales/de/main.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2010-08-09 06:24-0000\n"
 "Last-Translator: ben_griffith <ben_griffith@topmail.co.uk>\n"
@@ -1229,4 +1229,7 @@
 msgstr "Privat"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "senden"
@@ -1808,4 +1811,14 @@
 msgstr "Verwende WYSIWYG Modus"
 
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Aktiviere erweiterten Uploader"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2178,4 +2191,7 @@
 
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
Index: locales/de/plugins.po
===================================================================
--- locales/de/plugins.po	(revision 221)
+++ locales/de/plugins.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2010-08-09 19:49-0000\n"
 "Last-Translator: ben_griffith <ben_griffith@topmail.co.uk>\n"
@@ -237,164 +237,164 @@
 msgstr "Filter-Einstellungen"
 
-msgid "Syndication"
-msgstr "Zusammenfassung"
-
-msgid "Junk comments RSS feed"
-msgstr "Junk-Kommentare per RSS-Feed abonnieren"
-
-msgid "Published comments RSS feed"
-msgstr "Veröffentlichte Kommentare per RSS-Feed abonnieren"
-
-msgid "manage blogroll"
-msgstr "Blogroll verwalten"
-
-msgid "Links"
-msgstr "Links"
-
-msgid "All categories"
-msgstr "Alle Kategorien"
-
-msgid "Home page only"
-msgstr "Nur auf Startseite"
-
-msgid "You must provide a link title"
-msgstr "Du mußt einen Linktitel eingeben"
-
-msgid "You must provide a link URL"
-msgstr "Du mußt einen Link-URL eingeben"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "Du benötigst eine XBEL oder OPML-Datei."
-
-msgid "File is not in XML format."
-msgstr "Datei ist kein XML-Format."
-
-msgid "No such link or title"
-msgstr "Kein solcher Link oder Titel"
-
-msgid "Return to blogroll"
-msgstr "Zurück zum Blogroll"
-
-msgid "Category has been successfully updated"
-msgstr "Kategorie wurde erfolgreich aktualisiert"
-
-msgid "Edit category"
-msgstr "Bearbeite Kategorie"
-
-msgid "Link has been successfully updated"
-msgstr "Link wurde erfolgreich aktualisiert"
-
-msgid "Edit link"
-msgstr "Bearbeite Link"
-
-msgid "XFN"
-msgstr "XFN"
-
-msgid "_xfn_Me"
-msgstr "Ich"
-
-msgid "_xfn_Another link for myself"
-msgstr "Ein anderer Link für mich"
-
-msgid "_xfn_Friendship"
-msgstr "Freundschaft"
-
-msgid "_xfn_Contact"
-msgstr "Kontakt"
-
-msgid "_xfn_Acquaintance"
-msgstr "Bekanntschaft"
-
-msgid "_xfn_Friend"
-msgstr "Freund"
-
-msgid "_xfn_Physical"
-msgstr "Physisch"
-
-msgid "_xfn_Met"
-msgstr "Getroffen"
-
-msgid "_xfn_Professional"
-msgstr "Professionell "
-
-msgid "_xfn_Co-worker"
-msgstr "Arbeitskollege"
-
-msgid "_xfn_Colleague"
-msgstr "Kollege"
-
-msgid "_xfn_Geographical"
-msgstr "Geografisch"
-
-msgid "_xfn_Co-resident"
-msgstr "Mitbewohner"
-
-msgid "_xfn_Neighbor"
-msgstr "Nachbar"
-
-msgid "_xfn_Family"
-msgstr "Familie"
-
-msgid "_xfn_Child"
-msgstr "Kind"
-
-msgid "_xfn_Parent"
-msgstr "Elternteil"
-
-msgid "_xfn_Sibling"
-msgstr "Geschwisterteil"
-
-msgid "_xfn_Spouse"
-msgstr "Ehepartner"
-
-msgid "_xfn_Kin"
-msgstr "Verwandter"
-
-msgid "_xfn_Romantic"
-msgstr "Romantisch"
-
-msgid "_xfn_Muse"
-msgstr "Muse"
-
-msgid "_xfn_Crush"
-msgstr "Verknallt"
-
-msgid "_xfn_Date"
-msgstr "Treffen"
-
-msgid "_xfn_Sweetheart"
-msgstr "Liebling"
-
-msgid "Nothing to import"
-msgstr "Nichts zum Importieren"
-
-msgid "Import operation cancelled."
-msgstr "Import-Vorgang beendet."
-
-msgid "Items order has been successfully updated"
-msgstr "Posten wurden erfolgreich aktualisiert."
-
-msgid "Items have been successfully removed."
-msgstr "Posten wurden erfolgreich entfernt."
-
-msgid "Link has been successfully created."
-msgstr "Link wurde erfolgreich erstellt"
-
-msgid "category has been successfully created."
-msgstr "Kategorie wurde erfolgreich erstellt"
-
-msgid "links have been successfully imported."
-msgstr "Links wurden erfolgreich importiert."
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "Sprache"
-
 #, fuzzy
 msgid "position"
 msgstr "Position der Seite"
 
+msgid "Syndication"
+msgstr "Zusammenfassung"
+
+msgid "Junk comments RSS feed"
+msgstr "Junk-Kommentare per RSS-Feed abonnieren"
+
+msgid "Published comments RSS feed"
+msgstr "Veröffentlichte Kommentare per RSS-Feed abonnieren"
+
+msgid "manage blogroll"
+msgstr "Blogroll verwalten"
+
+msgid "Links"
+msgstr "Links"
+
+msgid "All categories"
+msgstr "Alle Kategorien"
+
+msgid "Home page only"
+msgstr "Nur auf Startseite"
+
+msgid "You must provide a link title"
+msgstr "Du mußt einen Linktitel eingeben"
+
+msgid "You must provide a link URL"
+msgstr "Du mußt einen Link-URL eingeben"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "Du benötigst eine XBEL oder OPML-Datei."
+
+msgid "File is not in XML format."
+msgstr "Datei ist kein XML-Format."
+
+msgid "No such link or title"
+msgstr "Kein solcher Link oder Titel"
+
+msgid "Return to blogroll"
+msgstr "Zurück zum Blogroll"
+
+msgid "Category has been successfully updated"
+msgstr "Kategorie wurde erfolgreich aktualisiert"
+
+msgid "Edit category"
+msgstr "Bearbeite Kategorie"
+
+msgid "Link has been successfully updated"
+msgstr "Link wurde erfolgreich aktualisiert"
+
+msgid "Edit link"
+msgstr "Bearbeite Link"
+
+msgid "XFN"
+msgstr "XFN"
+
+msgid "_xfn_Me"
+msgstr "Ich"
+
+msgid "_xfn_Another link for myself"
+msgstr "Ein anderer Link für mich"
+
+msgid "_xfn_Friendship"
+msgstr "Freundschaft"
+
+msgid "_xfn_Contact"
+msgstr "Kontakt"
+
+msgid "_xfn_Acquaintance"
+msgstr "Bekanntschaft"
+
+msgid "_xfn_Friend"
+msgstr "Freund"
+
+msgid "_xfn_Physical"
+msgstr "Physisch"
+
+msgid "_xfn_Met"
+msgstr "Getroffen"
+
+msgid "_xfn_Professional"
+msgstr "Professionell "
+
+msgid "_xfn_Co-worker"
+msgstr "Arbeitskollege"
+
+msgid "_xfn_Colleague"
+msgstr "Kollege"
+
+msgid "_xfn_Geographical"
+msgstr "Geografisch"
+
+msgid "_xfn_Co-resident"
+msgstr "Mitbewohner"
+
+msgid "_xfn_Neighbor"
+msgstr "Nachbar"
+
+msgid "_xfn_Family"
+msgstr "Familie"
+
+msgid "_xfn_Child"
+msgstr "Kind"
+
+msgid "_xfn_Parent"
+msgstr "Elternteil"
+
+msgid "_xfn_Sibling"
+msgstr "Geschwisterteil"
+
+msgid "_xfn_Spouse"
+msgstr "Ehepartner"
+
+msgid "_xfn_Kin"
+msgstr "Verwandter"
+
+msgid "_xfn_Romantic"
+msgstr "Romantisch"
+
+msgid "_xfn_Muse"
+msgstr "Muse"
+
+msgid "_xfn_Crush"
+msgstr "Verknallt"
+
+msgid "_xfn_Date"
+msgstr "Treffen"
+
+msgid "_xfn_Sweetheart"
+msgstr "Liebling"
+
+msgid "Nothing to import"
+msgstr "Nichts zum Importieren"
+
+msgid "Import operation cancelled."
+msgstr "Import-Vorgang beendet."
+
+msgid "Items order has been successfully updated"
+msgstr "Posten wurden erfolgreich aktualisiert."
+
+msgid "Items have been successfully removed."
+msgstr "Posten wurden erfolgreich entfernt."
+
+msgid "Link has been successfully created."
+msgstr "Link wurde erfolgreich erstellt"
+
+msgid "category has been successfully created."
+msgstr "Kategorie wurde erfolgreich erstellt"
+
+msgid "links have been successfully imported."
+msgstr "Links wurden erfolgreich importiert."
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "Sprache"
+
 #, fuzzy
 msgid "select this link"
Index: locales/en/help/user_pref.html
===================================================================
--- locales/en/help/user_pref.html	(revision 175)
+++ locales/en/help/user_pref.html	(revision 243)
@@ -58,4 +58,8 @@
   <dd>Allow the use of the WYSIWYG editor for the posts and description fields.</dd>
   
+  <dt>Activate enhanced uploader in media manager</dt>
+  <dd>This option allows you to upload several files at the same time on your server.
+  Needs the presence of Flash plugin in your browser.</dd>
+  
   <dt>Dashboard modules</dt>
   <dd>Choices made in this zone will be reflected on your blog's dashboard.</dd>
Index: locales/en/resources.php
===================================================================
--- locales/en/resources.php	(revision 179)
+++ locales/en/resources.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: locales/eo/main.po
===================================================================
--- locales/eo/main.po	(revision 221)
+++ locales/eo/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -1208,4 +1208,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1775,4 +1778,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2138,4 +2150,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/eo/plugins.po
===================================================================
--- locales/eo/plugins.po	(revision 221)
+++ locales/eo/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/es-ar/main.po
===================================================================
--- locales/es-ar/main.po	(revision 221)
+++ locales/es-ar/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2.1.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-03 04:00-0300\n"
 "Last-Translator: ThecaTTony <thecattony@thecattony.com.ar>\n"
@@ -1232,4 +1232,7 @@
 msgstr "Privado"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "enviar"
@@ -1818,4 +1821,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Activar el modo WYSIWYG"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Activar ventajas de subida"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2190,4 +2203,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Usted tiene cambios sin guardar."
Index: locales/es-ar/plugins.po
===================================================================
--- locales/es-ar/plugins.po	(revision 221)
+++ locales/es-ar/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2.1.6\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-03 03:00-0300\n"
 "Last-Translator: ThecaTTony <thecattony@thecattony.com.ar>\n"
@@ -236,4 +236,8 @@
 msgstr "Configuración del filtro"
 
+#, fuzzy
+msgid "position"
+msgstr "Posición de la pagina"
+
 msgid "Syndication"
 msgstr "Sindicación"
@@ -391,8 +395,4 @@
 msgid "Lang"
 msgstr "Idioma"
-
-#, fuzzy
-msgid "position"
-msgstr "Posición de la pagina"
 
 #, fuzzy
Index: locales/es/main.po
===================================================================
--- locales/es/main.po	(revision 221)
+++ locales/es/main.po	(revision 261)
@@ -9,5 +9,5 @@
 "Project-Id-Version: main\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-02 16:02+0200\n"
 "Last-Translator: Quique <cronopios@gmail.com>\n"
@@ -1235,4 +1235,7 @@
 msgstr "Privado"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "enviar"
@@ -1812,4 +1815,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Habilitar el modo WYSIWYG"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Activar la interfaz avanzada"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2193,4 +2206,7 @@
 
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
Index: locales/es/plugins.po
===================================================================
--- locales/es/plugins.po	(revision 221)
+++ locales/es/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: plugins\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-02 16:06+0200\n"
 "Last-Translator: Quique <cronopios@gmail.com>\n"
@@ -241,164 +241,164 @@
 msgstr "Configuración del filtro"
 
-msgid "Syndication"
-msgstr "Sindicación"
-
-msgid "Junk comments RSS feed"
-msgstr "Fuente RSS de comentarios no deseados"
-
-msgid "Published comments RSS feed"
-msgstr "Fuente RSS de comentarios publicados"
-
-msgid "manage blogroll"
-msgstr "Gestión de la lista de enlaces"
-
-msgid "Links"
-msgstr "Enlaces"
-
-msgid "All categories"
-msgstr "Todas las categorías"
-
-msgid "Home page only"
-msgstr "Sólo la página de inicio"
-
-msgid "You must provide a link title"
-msgstr "Debe indicar un título al enlace"
-
-msgid "You must provide a link URL"
-msgstr "Debe indicar un URL"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "Debe proveer un fichero XBEL tú OPML."
-
-msgid "File is not in XML format."
-msgstr "El fichero no está al formato XML."
-
-msgid "No such link or title"
-msgstr "El enlace o el título no existe"
-
-msgid "Return to blogroll"
-msgstr "Volver a la lista de enlaces"
-
-msgid "Category has been successfully updated"
-msgstr "Categoría actualizada con éxito"
-
-msgid "Edit category"
-msgstr "Modificar una categoría"
-
-msgid "Link has been successfully updated"
-msgstr "Enlace actualizado con éxito"
-
-msgid "Edit link"
-msgstr "Modificar el enlace"
-
-msgid "XFN"
-msgstr "XFN"
-
-msgid "_xfn_Me"
-msgstr "Yo"
-
-msgid "_xfn_Another link for myself"
-msgstr "Otro enlace mío"
-
-msgid "_xfn_Friendship"
-msgstr "Amistad"
-
-msgid "_xfn_Contact"
-msgstr "Contacto"
-
-msgid "_xfn_Acquaintance"
-msgstr "Conocido"
-
-msgid "_xfn_Friend"
-msgstr "Amigo(a)"
-
-msgid "_xfn_Physical"
-msgstr "Físico"
-
-msgid "_xfn_Met"
-msgstr "Conocido(a) en persona"
-
-msgid "_xfn_Professional"
-msgstr "Profesional"
-
-msgid "_xfn_Co-worker"
-msgstr "Compañero de trabajo"
-
-msgid "_xfn_Colleague"
-msgstr "Colega"
-
-msgid "_xfn_Geographical"
-msgstr "Geográfico"
-
-msgid "_xfn_Co-resident"
-msgstr "Compañero de piso"
-
-msgid "_xfn_Neighbor"
-msgstr "Vecino(a)"
-
-msgid "_xfn_Family"
-msgstr "Familia"
-
-msgid "_xfn_Child"
-msgstr "Hijo(a)"
-
-msgid "_xfn_Parent"
-msgstr "Padre/madre"
-
-msgid "_xfn_Sibling"
-msgstr "Hermano(a)"
-
-msgid "_xfn_Spouse"
-msgstr "Cónyuge"
-
-msgid "_xfn_Kin"
-msgstr "Pariente"
-
-msgid "_xfn_Romantic"
-msgstr "Romance"
-
-msgid "_xfn_Muse"
-msgstr "Musa"
-
-msgid "_xfn_Crush"
-msgstr "Flechazo"
-
-msgid "_xfn_Date"
-msgstr "Ligue"
-
-msgid "_xfn_Sweetheart"
-msgstr "Pareja"
-
-msgid "Nothing to import"
-msgstr "Nada que importar"
-
-msgid "Import operation cancelled."
-msgstr "Importación anulada."
-
-msgid "Items order has been successfully updated"
-msgstr "El orden de los elementos ha sido actualizado con éxito"
-
-msgid "Items have been successfully removed."
-msgstr "Los elementos han sido suprimidos con éxito."
-
-msgid "Link has been successfully created."
-msgstr "Enlace creado con éxito."
-
-msgid "category has been successfully created."
-msgstr "Categoría actualizada con éxito."
-
-msgid "links have been successfully imported."
-msgstr "Enlaces importados con éxito."
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "Idioma"
-
 #, fuzzy
 msgid "position"
 msgstr "Posición de la página"
 
+msgid "Syndication"
+msgstr "Sindicación"
+
+msgid "Junk comments RSS feed"
+msgstr "Fuente RSS de comentarios no deseados"
+
+msgid "Published comments RSS feed"
+msgstr "Fuente RSS de comentarios publicados"
+
+msgid "manage blogroll"
+msgstr "Gestión de la lista de enlaces"
+
+msgid "Links"
+msgstr "Enlaces"
+
+msgid "All categories"
+msgstr "Todas las categorías"
+
+msgid "Home page only"
+msgstr "Sólo la página de inicio"
+
+msgid "You must provide a link title"
+msgstr "Debe indicar un título al enlace"
+
+msgid "You must provide a link URL"
+msgstr "Debe indicar un URL"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "Debe proveer un fichero XBEL tú OPML."
+
+msgid "File is not in XML format."
+msgstr "El fichero no está al formato XML."
+
+msgid "No such link or title"
+msgstr "El enlace o el título no existe"
+
+msgid "Return to blogroll"
+msgstr "Volver a la lista de enlaces"
+
+msgid "Category has been successfully updated"
+msgstr "Categoría actualizada con éxito"
+
+msgid "Edit category"
+msgstr "Modificar una categoría"
+
+msgid "Link has been successfully updated"
+msgstr "Enlace actualizado con éxito"
+
+msgid "Edit link"
+msgstr "Modificar el enlace"
+
+msgid "XFN"
+msgstr "XFN"
+
+msgid "_xfn_Me"
+msgstr "Yo"
+
+msgid "_xfn_Another link for myself"
+msgstr "Otro enlace mío"
+
+msgid "_xfn_Friendship"
+msgstr "Amistad"
+
+msgid "_xfn_Contact"
+msgstr "Contacto"
+
+msgid "_xfn_Acquaintance"
+msgstr "Conocido"
+
+msgid "_xfn_Friend"
+msgstr "Amigo(a)"
+
+msgid "_xfn_Physical"
+msgstr "Físico"
+
+msgid "_xfn_Met"
+msgstr "Conocido(a) en persona"
+
+msgid "_xfn_Professional"
+msgstr "Profesional"
+
+msgid "_xfn_Co-worker"
+msgstr "Compañero de trabajo"
+
+msgid "_xfn_Colleague"
+msgstr "Colega"
+
+msgid "_xfn_Geographical"
+msgstr "Geográfico"
+
+msgid "_xfn_Co-resident"
+msgstr "Compañero de piso"
+
+msgid "_xfn_Neighbor"
+msgstr "Vecino(a)"
+
+msgid "_xfn_Family"
+msgstr "Familia"
+
+msgid "_xfn_Child"
+msgstr "Hijo(a)"
+
+msgid "_xfn_Parent"
+msgstr "Padre/madre"
+
+msgid "_xfn_Sibling"
+msgstr "Hermano(a)"
+
+msgid "_xfn_Spouse"
+msgstr "Cónyuge"
+
+msgid "_xfn_Kin"
+msgstr "Pariente"
+
+msgid "_xfn_Romantic"
+msgstr "Romance"
+
+msgid "_xfn_Muse"
+msgstr "Musa"
+
+msgid "_xfn_Crush"
+msgstr "Flechazo"
+
+msgid "_xfn_Date"
+msgstr "Ligue"
+
+msgid "_xfn_Sweetheart"
+msgstr "Pareja"
+
+msgid "Nothing to import"
+msgstr "Nada que importar"
+
+msgid "Import operation cancelled."
+msgstr "Importación anulada."
+
+msgid "Items order has been successfully updated"
+msgstr "El orden de los elementos ha sido actualizado con éxito"
+
+msgid "Items have been successfully removed."
+msgstr "Los elementos han sido suprimidos con éxito."
+
+msgid "Link has been successfully created."
+msgstr "Enlace creado con éxito."
+
+msgid "category has been successfully created."
+msgstr "Categoría actualizada con éxito."
+
+msgid "links have been successfully imported."
+msgstr "Enlaces importados con éxito."
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "Idioma"
+
 #, fuzzy
 msgid "select this link"
Index: locales/eu/main.po
===================================================================
--- locales/eu/main.po	(revision 221)
+++ locales/eu/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -1208,4 +1208,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1775,4 +1778,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2138,4 +2150,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/eu/plugins.po
===================================================================
--- locales/eu/plugins.po	(revision 221)
+++ locales/eu/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/fr/date.po
===================================================================
--- locales/fr/date.po	(revision 438)
+++ locales/fr/date.po	(revision 0)
@@ -10,8 +10,8 @@
 "Last-Translator: Olivier Meunier <olivier@dotclear.net>\n"
 "Language-Team: \n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: French\n"
 
Index: locales/fr/help/core_blog_pref.html
===================================================================
--- locales/fr/help/core_blog_pref.html	(revision 175)
+++ locales/fr/help/core_blog_pref.html	(revision 352)
@@ -43,6 +43,7 @@
 <dl>
   <dt>Nom de l'éditeur du blog</dt>
-  <dd>Nom de la personne en charge du blog. Peut être le propriétaire ou le
-  directeur de publication s'il existe.</dd>
+  <dd>Nom de la personne responsable du contenu du blog. Peut être le propriétaire
+  ou le directeur de publication s'il existe. Information affichée dans les
+  informations du flux de syndication.</dd>
   
   <dt>Note de copyright</dt>
Index: locales/fr/help/core_user_pref.html
===================================================================
--- locales/fr/help/core_user_pref.html	(revision 175)
+++ locales/fr/help/core_user_pref.html	(revision 243)
@@ -63,4 +63,8 @@
   <dd>Permet d'activer ou non l'éditeur visuel des billets et des catégories.</dd>
   
+  <dt>Activer l'interface avancée du gestionnaire de médias</dt>
+  <dd>Cette option permet d'envoyer plusieurs fichiers à la fois sur le serveur.
+  Nécessite la présence du plugin Flash dans votre navigateur.</dd>
+  
   <dt>Modules du tableau de bord</dt>
   <dd>Les choix opérés dans cette zone détermineront l'affichage de 
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 438)
+++ locales/fr/main.po	(revision 490)
@@ -6,12 +6,12 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-27 13:14+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2011-05-08 19:27+0100\n"
 "Last-Translator: Franck Paul <carnet.franck.paul@gmail.com>\n"
 "Language-Team: \n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: French\n"
 
@@ -795,4 +795,7 @@
 msgstr "Nouveau billet"
 
+msgid "My dashboard"
+msgstr "Mon tableau de bord"
+
 msgid "My preferences"
 msgstr "Mes préférences"
@@ -1213,4 +1216,7 @@
 msgstr "Privé"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr "Pour envoyer plusieurs fichiers à la fois, vous pouvez activer l'interface avancée dans"
+
 msgid "send"
 msgstr "envoyer"
@@ -1708,15 +1714,12 @@
 msgstr "Changer l'auteur"
 
-#, fuzzy
-msgid "Lang"
+msgid "Selected:"
+msgstr "Sélectionné :"
+
+msgid "Month:"
+msgstr "Mois :"
+
+msgid "Lang:"
 msgstr "Langue :"
-
-#, fuzzy
-msgid "Month"
-msgstr "Mois :"
-
-#, php-format
-msgid "Entries / %s filtered out of %s"
-msgstr ""
 
 msgid "Selected entries action:"
@@ -1783,4 +1786,13 @@
 msgstr "Activer l'éditeur visuel"
 
+msgid "Activate enhanced uploader in media manager"
+msgstr "Activer l'interface avancée du gestionnaire de médias"
+
+msgid "Do not use standard favicon"
+msgstr "Ne pas utiliser le favicon standard"
+
+msgid "This will be applied for all users"
+msgstr "Ce choix sera actif pour tous les utilisateurs"
+
 msgid "Accessibility options"
 msgstr "Options d'accessibilité"
@@ -2019,37 +2031,4 @@
 msgstr "Action sur les utilisateurs sélectionnés :"
 
-msgid "Toggle filters and display options"
-msgstr ""
-
-msgid "Entries filters"
-msgstr "Filtres sur les billets"
-
-msgid "Delete all filters"
-msgstr "Supprimer tous les filtres"
-
-msgid "Add a filter"
-msgstr "Ajouter un filtre"
-
-msgid "Add this filter"
-msgstr "Ajouter ce filtre"
-
-msgid "Apply filters and display options"
-msgstr "Appliquer les filtres et les options d'affichage"
-
-msgid "or"
-msgstr "ou"
-
-msgid "is"
-msgstr "est"
-
-msgid "is not"
-msgstr "n'est pas"
-
-msgid "%s is or is not"
-msgstr "%s est ou n'est pas"
-
-msgid "Choose an option"
-msgstr "Choisissez une option un blog"
-
 msgid "Blog:"
 msgstr "Blog :"
@@ -2073,4 +2052,7 @@
 msgstr "Déconnexion"
 
+msgid "Logout %s"
+msgstr "Déconnecter %s"
+
 msgid "Safe mode"
 msgstr "Mode de secours"
@@ -2180,5 +2162,5 @@
 
 msgid "Loading enhanced uploader, please wait."
-msgstr ""
+msgstr "Chargement de l'interface avancée."
 
 msgid "You have unsaved changes."
@@ -2327,21 +2309,4 @@
 msgstr "Erreur de file d'attente :"
 
-msgid "Invalid column ID"
-msgstr ""
-
-#, fuzzy
-msgid "Invalid column title"
-msgstr "URL de fichier de langue invalide."
-
-msgid "Callback parameter should be an array"
-msgstr ""
-
-msgid "Callback class should be inherited of adminGenericList class"
-msgstr ""
-
-#, fuzzy, php-format
-msgid "Invalid column callback: %s"
-msgstr "Espace de travail de la préférence invalide : %s"
-
 msgid "&#171;prev."
 msgstr "&#171;préc."
@@ -2350,35 +2315,26 @@
 msgstr "suiv.&#187;"
 
+msgid "No entry"
+msgstr "Pas de billet"
+
+msgid "scheduled"
+msgstr "programmé"
+
+msgid "protected"
+msgstr "protégé"
+
+#, php-format
+msgid "%d attachment"
+msgstr "%d annexe"
+
+#, php-format
+msgid "%d attachments"
+msgstr "%d annexes"
+
 msgid "Type"
 msgstr "Type"
 
-#, fuzzy
-msgid "First name"
-msgstr "Prénom"
-
-#, fuzzy
-msgid "Last name"
-msgstr "Nom"
-
-#, fuzzy
-msgid "Displayed information"
-msgstr "Informations utilisateur"
-
-msgid "No entry"
-msgstr "Pas de billet"
-
-msgid "scheduled"
-msgstr "programmé"
-
-msgid "protected"
-msgstr "protégé"
-
-#, php-format
-msgid "%d attachment"
-msgstr "%d annexe"
-
-#, php-format
-msgid "%d attachments"
-msgstr "%d annexes"
+msgid "No user"
+msgstr "Pas d'utilisateur"
 
 msgid "admin"
@@ -2815,4 +2771,7 @@
 msgstr "Connexion à la base de données impossible"
 
+msgid "Mandatory for password recovering procedure."
+msgstr "Obligatoire pour la procédure de récupération de mot de passe."
+
 #, php-format
 msgid "<p>This either means that the username and password information in your <strong>config.php</strong> file is incorrect or we can't contact the database server at \"<em>%s</em>\". This could mean your host's database server is down.</p> <ul><li>Are you sure you have the correct username and password?</li><li>Are you sure that you have typed the correct hostname?</li><li>Are you sure that the database server is running?</li></ul><p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"http://forum.dotclear.net/\">Dotclear Support Forums</a>.</p>"
@@ -2822,10 +2781,4 @@
 msgstr "L'erreur suivante a été rencontrée lors de la tentative d'accès à la base de données :"
 
-#~ msgid "Selected:"
-#~ msgstr "Sélectionné :"
-
-#~ msgid "No user"
-#~ msgstr "Pas d'utilisateur"
-
 #~ msgid "login"
 #~ msgstr "login"
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 438)
+++ locales/fr/plugins.po	(revision 261)
@@ -6,12 +6,12 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-27 13:14+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Franck Paul <carnet.franck.paul@gmail.com>\n"
 "Language-Team: \n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: French\n"
 
@@ -391,4 +391,7 @@
 msgstr "URL"
 
+msgid "Lang"
+msgstr "Langue"
+
 msgid "select this link"
 msgstr "sélectionner ce lien"
@@ -696,4 +699,7 @@
 msgid "Why don't you blog this now?"
 msgstr "Pourquoi ne pas le bloguer maintenant ?"
+
+msgid "or"
+msgstr "ou"
 
 msgid "visit your dashboard"
@@ -1403,10 +1409,4 @@
 msgstr "Supprimer le widget"
 
-#~ msgid "Lang"
-#~ msgstr "Langue"
-
-#~ msgid "or"
-#~ msgstr "ou"
-
 #~ msgid "Blogroll"
 #~ msgstr "Liens / Blogroll"
Index: locales/fr/public.po
===================================================================
--- locales/fr/public.po	(revision 438)
+++ locales/fr/public.po	(revision 221)
@@ -10,8 +10,8 @@
 "Last-Translator: xave <xave@dotclear.net>\n"
 "Language-Team: \n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "X-Poedit-Language: French\n"
 
Index: locales/fr/resources.php
===================================================================
--- locales/fr/resources.php	(revision 179)
+++ locales/fr/resources.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: locales/hu/main.po
===================================================================
--- locales/hu/main.po	(revision 221)
+++ locales/hu/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-06-29 18:39+0200\n"
 "Last-Translator: Benjamin Bank <benjaminbank@gmail.com> | Murancsik Sebestyen <dr.graf@lajt.hu>\n"
@@ -1264,4 +1264,7 @@
 msgstr "Privát"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "küld"
@@ -1854,4 +1857,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "WYSIWYG mód"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Bővített fájlfeltöltő aktiválása"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2233,4 +2246,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Vannak nem mentett változásaid."
Index: locales/hu/plugins.po
===================================================================
--- locales/hu/plugins.po	(revision 221)
+++ locales/hu/plugins.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-06-27 17:39+0200\n"
 "Last-Translator: Muráncsik Sebestyén <dr.graf@lajt.hu>\n"
@@ -236,4 +236,8 @@
 msgstr "Szűrő beállítása"
 
+#, fuzzy
+msgid "position"
+msgstr "Oldal elhelyzekdése"
+
 msgid "Syndication"
 msgstr "Szindikáció"
@@ -391,8 +395,4 @@
 msgid "Lang"
 msgstr "Nyelv"
-
-#, fuzzy
-msgid "position"
-msgstr "Oldal elhelyzekdése"
 
 #, fuzzy
Index: locales/it/main.po
===================================================================
--- locales/it/main.po	(revision 221)
+++ locales/it/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2010-08-18 17:30+0100\n"
 "Last-Translator: Luca Andrea Rossi <rossilucaandrea@gmail.com>\n"
@@ -1226,4 +1226,7 @@
 msgstr "Privato"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "inviare"
@@ -1803,4 +1806,14 @@
 msgstr "Attivare l'editor visuale"
 
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Attiva il caricamento avanzato"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2172,4 +2185,7 @@
 
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
Index: locales/it/plugins.po
===================================================================
--- locales/it/plugins.po	(revision 221)
+++ locales/it/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/ja/main.po
===================================================================
--- locales/ja/main.po	(revision 221)
+++ locales/ja/main.po	(revision 261)
@@ -10,5 +10,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-11-24 00:00+0900\n"
 "Last-Translator: Takafumi <jp.drupal@imagine **reverse order**>\n"
@@ -1240,4 +1240,7 @@
 msgstr "プライベート"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "送信"
@@ -1827,4 +1830,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "WYSIWYG モードの有効化"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "拡張アップローダを有効化"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2204,4 +2217,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "保存されていない変更があります。"
Index: locales/ja/plugins.po
===================================================================
--- locales/ja/plugins.po	(revision 221)
+++ locales/ja/plugins.po	(revision 261)
@@ -10,5 +10,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-11-24 00:00+0900\n"
 "Last-Translator: Takafumi <jp.drupal@imagine **reverse order**>\n"
@@ -238,4 +238,8 @@
 msgstr "フィルタの設定"
 
+#, fuzzy
+msgid "position"
+msgstr "ページの位置"
+
 msgid "Syndication"
 msgstr "シンジケート"
@@ -393,8 +397,4 @@
 msgid "Lang"
 msgstr "言語"
-
-#, fuzzy
-msgid "position"
-msgstr "ページの位置"
 
 #, fuzzy
Index: locales/ja/resources.php
===================================================================
--- locales/ja/resources.php	(revision 0)
+++ locales/ja/resources.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: locales/ko/main.po
===================================================================
--- locales/ko/main.po	(revision 221)
+++ locales/ko/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-01-14 04:21+0100\n"
 "Last-Translator: S.L. SONG <baramme@free.fr>\n"
@@ -1240,4 +1240,7 @@
 msgstr "미디어 관리화면에서 감춤 (주의! URL알면 접근 가능)"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "보내기"
@@ -1827,4 +1830,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "위지윅모드 사용가능"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "복수파일 동시전송 모드로 전환"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2204,4 +2217,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "변경하신 내용을 저장하지 않았습니다."
Index: locales/ko/plugins.po
===================================================================
--- locales/ko/plugins.po	(revision 221)
+++ locales/ko/plugins.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: \n"
 "Last-Translator: S.L. SONG <baramme@free.fr>\n"
@@ -237,4 +237,8 @@
 msgstr "필터 설정"
 
+#, fuzzy
+msgid "position"
+msgstr "페이지 위치"
+
 msgid "Syndication"
 msgstr "타래소식(RSS)"
@@ -392,8 +396,4 @@
 msgid "Lang"
 msgstr "언어"
-
-#, fuzzy
-msgid "position"
-msgstr "페이지 위치"
 
 #, fuzzy
Index: locales/nl/main.po
===================================================================
--- locales/nl/main.po	(revision 221)
+++ locales/nl/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-11-01 16:30+0100\n"
 "Last-Translator: Joran Bosscher <joranbosscher@gmail.com>\n"
@@ -1209,4 +1209,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1784,4 +1787,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2148,4 +2160,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/nl/plugins.po
===================================================================
--- locales/nl/plugins.po	(revision 221)
+++ locales/nl/plugins.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-22 12:12+0100\n"
 "Last-Translator: Joran Bosscher <joranbosscher@gmail.com>\n"
@@ -235,164 +235,164 @@
 msgstr ""
 
-msgid "Syndication"
-msgstr ""
-
-msgid "Junk comments RSS feed"
-msgstr ""
-
-msgid "Published comments RSS feed"
-msgstr ""
-
-msgid "manage blogroll"
-msgstr ""
-
-msgid "Links"
-msgstr ""
-
-msgid "All categories"
-msgstr ""
-
-msgid "Home page only"
-msgstr ""
-
-msgid "You must provide a link title"
-msgstr ""
-
-msgid "You must provide a link URL"
-msgstr ""
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr ""
-
-msgid "File is not in XML format."
-msgstr ""
-
-msgid "No such link or title"
-msgstr ""
-
-msgid "Return to blogroll"
-msgstr ""
-
-msgid "Category has been successfully updated"
-msgstr ""
-
-msgid "Edit category"
-msgstr ""
-
-msgid "Link has been successfully updated"
-msgstr ""
-
-msgid "Edit link"
-msgstr ""
-
-msgid "XFN"
-msgstr ""
-
-msgid "_xfn_Me"
-msgstr ""
-
-msgid "_xfn_Another link for myself"
-msgstr ""
-
-msgid "_xfn_Friendship"
-msgstr ""
-
-msgid "_xfn_Contact"
-msgstr ""
-
-msgid "_xfn_Acquaintance"
-msgstr ""
-
-msgid "_xfn_Friend"
-msgstr ""
-
-msgid "_xfn_Physical"
-msgstr ""
-
-msgid "_xfn_Met"
-msgstr ""
-
-msgid "_xfn_Professional"
-msgstr ""
-
-msgid "_xfn_Co-worker"
-msgstr ""
-
-msgid "_xfn_Colleague"
-msgstr ""
-
-msgid "_xfn_Geographical"
-msgstr ""
-
-msgid "_xfn_Co-resident"
-msgstr ""
-
-msgid "_xfn_Neighbor"
-msgstr ""
-
-msgid "_xfn_Family"
-msgstr ""
-
-msgid "_xfn_Child"
-msgstr ""
-
-msgid "_xfn_Parent"
-msgstr ""
-
-msgid "_xfn_Sibling"
-msgstr ""
-
-msgid "_xfn_Spouse"
-msgstr ""
-
-msgid "_xfn_Kin"
-msgstr ""
-
-msgid "_xfn_Romantic"
-msgstr ""
-
-msgid "_xfn_Muse"
-msgstr ""
-
-msgid "_xfn_Crush"
-msgstr ""
-
-msgid "_xfn_Date"
-msgstr ""
-
-msgid "_xfn_Sweetheart"
-msgstr ""
-
-msgid "Nothing to import"
-msgstr ""
-
-msgid "Import operation cancelled."
-msgstr ""
-
-msgid "Items order has been successfully updated"
-msgstr ""
-
-msgid "Items have been successfully removed."
-msgstr ""
-
-msgid "Link has been successfully created."
-msgstr ""
-
-msgid "category has been successfully created."
-msgstr ""
-
-msgid "links have been successfully imported."
-msgstr ""
-
-msgid "URL"
-msgstr ""
-
-msgid "Lang"
-msgstr ""
-
 #, fuzzy
 msgid "position"
 msgstr "Beschrijving"
 
+msgid "Syndication"
+msgstr ""
+
+msgid "Junk comments RSS feed"
+msgstr ""
+
+msgid "Published comments RSS feed"
+msgstr ""
+
+msgid "manage blogroll"
+msgstr ""
+
+msgid "Links"
+msgstr ""
+
+msgid "All categories"
+msgstr ""
+
+msgid "Home page only"
+msgstr ""
+
+msgid "You must provide a link title"
+msgstr ""
+
+msgid "You must provide a link URL"
+msgstr ""
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr ""
+
+msgid "File is not in XML format."
+msgstr ""
+
+msgid "No such link or title"
+msgstr ""
+
+msgid "Return to blogroll"
+msgstr ""
+
+msgid "Category has been successfully updated"
+msgstr ""
+
+msgid "Edit category"
+msgstr ""
+
+msgid "Link has been successfully updated"
+msgstr ""
+
+msgid "Edit link"
+msgstr ""
+
+msgid "XFN"
+msgstr ""
+
+msgid "_xfn_Me"
+msgstr ""
+
+msgid "_xfn_Another link for myself"
+msgstr ""
+
+msgid "_xfn_Friendship"
+msgstr ""
+
+msgid "_xfn_Contact"
+msgstr ""
+
+msgid "_xfn_Acquaintance"
+msgstr ""
+
+msgid "_xfn_Friend"
+msgstr ""
+
+msgid "_xfn_Physical"
+msgstr ""
+
+msgid "_xfn_Met"
+msgstr ""
+
+msgid "_xfn_Professional"
+msgstr ""
+
+msgid "_xfn_Co-worker"
+msgstr ""
+
+msgid "_xfn_Colleague"
+msgstr ""
+
+msgid "_xfn_Geographical"
+msgstr ""
+
+msgid "_xfn_Co-resident"
+msgstr ""
+
+msgid "_xfn_Neighbor"
+msgstr ""
+
+msgid "_xfn_Family"
+msgstr ""
+
+msgid "_xfn_Child"
+msgstr ""
+
+msgid "_xfn_Parent"
+msgstr ""
+
+msgid "_xfn_Sibling"
+msgstr ""
+
+msgid "_xfn_Spouse"
+msgstr ""
+
+msgid "_xfn_Kin"
+msgstr ""
+
+msgid "_xfn_Romantic"
+msgstr ""
+
+msgid "_xfn_Muse"
+msgstr ""
+
+msgid "_xfn_Crush"
+msgstr ""
+
+msgid "_xfn_Date"
+msgstr ""
+
+msgid "_xfn_Sweetheart"
+msgstr ""
+
+msgid "Nothing to import"
+msgstr ""
+
+msgid "Import operation cancelled."
+msgstr ""
+
+msgid "Items order has been successfully updated"
+msgstr ""
+
+msgid "Items have been successfully removed."
+msgstr ""
+
+msgid "Link has been successfully created."
+msgstr ""
+
+msgid "category has been successfully created."
+msgstr ""
+
+msgid "links have been successfully imported."
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "Lang"
+msgstr ""
+
 msgid "select this link"
 msgstr ""
Index: locales/oc/main.po
===================================================================
--- locales/oc/main.po	(revision 221)
+++ locales/oc/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-06-25 12:45+0200\n"
 "Last-Translator: euskaraz <sabrina.favier@orange.fr>\n"
@@ -1225,4 +1225,7 @@
 msgstr "Privat"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "mandar"
@@ -1800,4 +1803,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2167,4 +2179,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/oc/plugins.po
===================================================================
--- locales/oc/plugins.po	(revision 221)
+++ locales/oc/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/pl/main.po
===================================================================
--- locales/pl/main.po	(revision 221)
+++ locales/pl/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-07-13 15:08+0200\n"
 "Last-Translator: Nnidŷu <nnidyu@asylumeternity.net>\n"
@@ -1276,4 +1276,7 @@
 msgstr "Prywatne"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "wyślij"
@@ -1881,4 +1884,13 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Aktywuj tryb WYSIWYG"
+
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2267,4 +2279,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Masz niezapisane zmiany."
Index: locales/pl/plugins.po
===================================================================
--- locales/pl/plugins.po	(revision 221)
+++ locales/pl/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-07-13 12:42+0200\n"
 "Last-Translator: Nnidŷu <nnidyu@asylumeternity.net>\n"
@@ -237,4 +237,8 @@
 msgstr "Konfiguracja filtra"
 
+#, fuzzy
+msgid "position"
+msgstr "Dyspozycja mediów"
+
 msgid "Syndication"
 msgstr "Powiadomienie"
@@ -394,8 +398,4 @@
 msgid "Lang"
 msgstr "Język"
-
-#, fuzzy
-msgid "position"
-msgstr "Dyspozycja mediów"
 
 #, fuzzy
Index: locales/po_update.sh
===================================================================
--- locales/po_update.sh	(revision 81)
+++ locales/po_update.sh	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: locales/pt-br/main.po
===================================================================
--- locales/pt-br/main.po	(revision 221)
+++ locales/pt-br/main.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2.0-RC1-1\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-06-19 18:33+0200\n"
 "Last-Translator: Alain Fagot Béarez <Alain@Timbo-Bearez.biz>\n"
@@ -1284,4 +1284,7 @@
 msgstr "Privado"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "enviar"
@@ -1889,4 +1892,13 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Ativar o editor visual"
+
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2275,4 +2287,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Você não salvou as suas modificações."
Index: locales/pt-br/plugins.po
===================================================================
--- locales/pt-br/plugins.po	(revision 221)
+++ locales/pt-br/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/pt/main.po
===================================================================
--- locales/pt/main.po	(revision 221)
+++ locales/pt/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2.0-RC2.2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-02 21:51+0100\n"
 "Last-Translator: Luis Correia <luis.f.correia@gmail.com>\n"
@@ -1233,4 +1233,7 @@
 msgstr "Privado"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "enviar"
@@ -1810,4 +1813,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Activar a interface WYSIWYG"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Activar o uploader"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2182,4 +2195,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Você tem alterações não salvas."
Index: locales/pt/plugins.po
===================================================================
--- locales/pt/plugins.po	(revision 221)
+++ locales/pt/plugins.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-10-02 21:54+0100\n"
 "Last-Translator: Luis Correia <luis.f.correia@gmail.com>\n"
@@ -241,164 +241,164 @@
 msgstr "Configuração do filtro"
 
-msgid "Syndication"
-msgstr "Syndication"
-
-msgid "Junk comments RSS feed"
-msgstr "Feed RSS para os comentários spam"
-
-msgid "Published comments RSS feed"
-msgstr "Feed RSS para os comentários publicados"
-
-msgid "manage blogroll"
-msgstr "Gerir os blogroll"
-
-msgid "Links"
-msgstr "Links"
-
-msgid "All categories"
-msgstr "Todas as categorias"
-
-msgid "Home page only"
-msgstr "Página inicial só"
-
-msgid "You must provide a link title"
-msgstr "Deve dar um título ao link"
-
-msgid "You must provide a link URL"
-msgstr "Deve dar um URL ao link"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "Você tem que fornecer um ficheiro OPML ou XBEL."
-
-msgid "File is not in XML format."
-msgstr "O ficheiro não está no formato XML."
-
-msgid "No such link or title"
-msgstr "Nada como link ou título"
-
-msgid "Return to blogroll"
-msgstr "Retornar ao blogroll"
-
-msgid "Category has been successfully updated"
-msgstr "A categoria foi actualizada com sucesso."
-
-msgid "Edit category"
-msgstr "Editar a categoria"
-
-msgid "Link has been successfully updated"
-msgstr "O link foi actualizado com sucesso."
-
-msgid "Edit link"
-msgstr "Editar link"
-
-msgid "XFN"
-msgstr "XFN"
-
-msgid "_xfn_Me"
-msgstr "_xfn_Mim"
-
-msgid "_xfn_Another link for myself"
-msgstr "_xfn_Outro link para mim"
-
-msgid "_xfn_Friendship"
-msgstr "_xfn_Amizade"
-
-msgid "_xfn_Contact"
-msgstr "_xfn_Contacto"
-
-msgid "_xfn_Acquaintance"
-msgstr "_xfn_Conhecimento"
-
-msgid "_xfn_Friend"
-msgstr "_xfn_Amigo"
-
-msgid "_xfn_Physical"
-msgstr "_xfn_Físico"
-
-msgid "_xfn_Met"
-msgstr "_xfn_Encontrado"
-
-msgid "_xfn_Professional"
-msgstr "_xfn_Profissional"
-
-msgid "_xfn_Co-worker"
-msgstr "_xfn_Companheiro de trabalho"
-
-msgid "_xfn_Colleague"
-msgstr "_xfn_Colega"
-
-msgid "_xfn_Geographical"
-msgstr "_xfn_Geográfico"
-
-msgid "_xfn_Co-resident"
-msgstr "_xfn_Co-residente"
-
-msgid "_xfn_Neighbor"
-msgstr "_xfn_Vizinho"
-
-msgid "_xfn_Family"
-msgstr "_xfn_Família"
-
-msgid "_xfn_Child"
-msgstr "_xfn_Criança"
-
-msgid "_xfn_Parent"
-msgstr "_xfn_Pai"
-
-msgid "_xfn_Sibling"
-msgstr "_xfn_Irmão"
-
-msgid "_xfn_Spouse"
-msgstr "_xfn_Esposo"
-
-msgid "_xfn_Kin"
-msgstr "_xfn_Parentes"
-
-msgid "_xfn_Romantic"
-msgstr "_xfn_Romântico"
-
-msgid "_xfn_Muse"
-msgstr "_xfn_Musa"
-
-msgid "_xfn_Crush"
-msgstr "_xfn_Paixão"
-
-msgid "_xfn_Date"
-msgstr "_xfn_Data"
-
-msgid "_xfn_Sweetheart"
-msgstr "_xfn_Querido"
-
-msgid "Nothing to import"
-msgstr "Nada a importar"
-
-msgid "Import operation cancelled."
-msgstr "Importação cancelada."
-
-msgid "Items order has been successfully updated"
-msgstr "A ordem dos itens foi actualizada com sucesso."
-
-msgid "Items have been successfully removed."
-msgstr "Os itens foram removidos com sucesso."
-
-msgid "Link has been successfully created."
-msgstr "O link foi criado com sucesso."
-
-msgid "category has been successfully created."
-msgstr "A categoria foi criada com sucesso"
-
-msgid "links have been successfully imported."
-msgstr "Os links foram adicionados com sucesso."
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "Língua"
-
 #, fuzzy
 msgid "position"
 msgstr "Posição da página"
 
+msgid "Syndication"
+msgstr "Syndication"
+
+msgid "Junk comments RSS feed"
+msgstr "Feed RSS para os comentários spam"
+
+msgid "Published comments RSS feed"
+msgstr "Feed RSS para os comentários publicados"
+
+msgid "manage blogroll"
+msgstr "Gerir os blogroll"
+
+msgid "Links"
+msgstr "Links"
+
+msgid "All categories"
+msgstr "Todas as categorias"
+
+msgid "Home page only"
+msgstr "Página inicial só"
+
+msgid "You must provide a link title"
+msgstr "Deve dar um título ao link"
+
+msgid "You must provide a link URL"
+msgstr "Deve dar um URL ao link"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "Você tem que fornecer um ficheiro OPML ou XBEL."
+
+msgid "File is not in XML format."
+msgstr "O ficheiro não está no formato XML."
+
+msgid "No such link or title"
+msgstr "Nada como link ou título"
+
+msgid "Return to blogroll"
+msgstr "Retornar ao blogroll"
+
+msgid "Category has been successfully updated"
+msgstr "A categoria foi actualizada com sucesso."
+
+msgid "Edit category"
+msgstr "Editar a categoria"
+
+msgid "Link has been successfully updated"
+msgstr "O link foi actualizado com sucesso."
+
+msgid "Edit link"
+msgstr "Editar link"
+
+msgid "XFN"
+msgstr "XFN"
+
+msgid "_xfn_Me"
+msgstr "_xfn_Mim"
+
+msgid "_xfn_Another link for myself"
+msgstr "_xfn_Outro link para mim"
+
+msgid "_xfn_Friendship"
+msgstr "_xfn_Amizade"
+
+msgid "_xfn_Contact"
+msgstr "_xfn_Contacto"
+
+msgid "_xfn_Acquaintance"
+msgstr "_xfn_Conhecimento"
+
+msgid "_xfn_Friend"
+msgstr "_xfn_Amigo"
+
+msgid "_xfn_Physical"
+msgstr "_xfn_Físico"
+
+msgid "_xfn_Met"
+msgstr "_xfn_Encontrado"
+
+msgid "_xfn_Professional"
+msgstr "_xfn_Profissional"
+
+msgid "_xfn_Co-worker"
+msgstr "_xfn_Companheiro de trabalho"
+
+msgid "_xfn_Colleague"
+msgstr "_xfn_Colega"
+
+msgid "_xfn_Geographical"
+msgstr "_xfn_Geográfico"
+
+msgid "_xfn_Co-resident"
+msgstr "_xfn_Co-residente"
+
+msgid "_xfn_Neighbor"
+msgstr "_xfn_Vizinho"
+
+msgid "_xfn_Family"
+msgstr "_xfn_Família"
+
+msgid "_xfn_Child"
+msgstr "_xfn_Criança"
+
+msgid "_xfn_Parent"
+msgstr "_xfn_Pai"
+
+msgid "_xfn_Sibling"
+msgstr "_xfn_Irmão"
+
+msgid "_xfn_Spouse"
+msgstr "_xfn_Esposo"
+
+msgid "_xfn_Kin"
+msgstr "_xfn_Parentes"
+
+msgid "_xfn_Romantic"
+msgstr "_xfn_Romântico"
+
+msgid "_xfn_Muse"
+msgstr "_xfn_Musa"
+
+msgid "_xfn_Crush"
+msgstr "_xfn_Paixão"
+
+msgid "_xfn_Date"
+msgstr "_xfn_Data"
+
+msgid "_xfn_Sweetheart"
+msgstr "_xfn_Querido"
+
+msgid "Nothing to import"
+msgstr "Nada a importar"
+
+msgid "Import operation cancelled."
+msgstr "Importação cancelada."
+
+msgid "Items order has been successfully updated"
+msgstr "A ordem dos itens foi actualizada com sucesso."
+
+msgid "Items have been successfully removed."
+msgstr "Os itens foram removidos com sucesso."
+
+msgid "Link has been successfully created."
+msgstr "O link foi criado com sucesso."
+
+msgid "category has been successfully created."
+msgstr "A categoria foi criada com sucesso"
+
+msgid "links have been successfully imported."
+msgstr "Os links foram adicionados com sucesso."
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "Língua"
+
 #, fuzzy
 msgid "select this link"
Index: locales/ro/main.po
===================================================================
--- locales/ro/main.po	(revision 221)
+++ locales/ro/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -1208,4 +1208,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1775,4 +1778,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2138,4 +2150,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/ro/plugins.po
===================================================================
--- locales/ro/plugins.po	(revision 221)
+++ locales/ro/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/ru/main.po
===================================================================
--- locales/ru/main.po	(revision 221)
+++ locales/ru/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: main\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2011-04-12 17:48+0200\n"
 "Last-Translator: Ihar <chi27@open.by>\n"
@@ -1229,4 +1229,7 @@
 msgstr "Личный"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "отправить"
@@ -1805,4 +1808,14 @@
 msgstr "Активировать режим WYSIWYG"
 
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Активировать улучшенный аплоадер"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2174,4 +2187,7 @@
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
 msgstr "Вы не сохранили изменения. Переключение формата поста  приведет к потере этих изменений. Продолжить?"
+
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
 
 msgid "You have unsaved changes."
Index: locales/ru/plugins.po
===================================================================
--- locales/ru/plugins.po	(revision 221)
+++ locales/ru/plugins.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Ihar <chi27@open.by>\n"
@@ -235,164 +235,164 @@
 msgstr "Конфигурация фильтра"
 
-msgid "Syndication"
-msgstr "Ленты новостей"
-
-msgid "Junk comments RSS feed"
-msgstr "RSS спам комментариев"
-
-msgid "Published comments RSS feed"
-msgstr "RSS опубликованных комментариев"
-
-msgid "manage blogroll"
-msgstr "управление ссылками"
-
-msgid "Links"
-msgstr "Ссылки"
-
-msgid "All categories"
-msgstr "Все категории"
-
-msgid "Home page only"
-msgstr "Долько домашняя страница"
-
-msgid "You must provide a link title"
-msgstr "Вы должны указать текст ссылки"
-
-msgid "You must provide a link URL"
-msgstr "Необходимо указать URL ссылки"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "Необходимо предоставить XBEL или OPML файл."
-
-msgid "File is not in XML format."
-msgstr "Файл не в формате XML."
-
-msgid "No such link or title"
-msgstr "Нет такой ссылки ли заголовка"
-
-msgid "Return to blogroll"
-msgstr "Вернуться в блогролл"
-
-msgid "Category has been successfully updated"
-msgstr "Категория была успешно удалена"
-
-msgid "Edit category"
-msgstr "Редактировать категорию"
-
-msgid "Link has been successfully updated"
-msgstr "Ссылка была успешно обновлена"
-
-msgid "Edit link"
-msgstr "Редактировать ссылку"
-
-msgid "XFN"
-msgstr "XFN"
-
-msgid "_xfn_Me"
-msgstr "Мне"
-
-msgid "_xfn_Another link for myself"
-msgstr "Другую ссылку для меня"
-
-msgid "_xfn_Friendship"
-msgstr "Дружба"
-
-msgid "_xfn_Contact"
-msgstr "Контакт"
-
-msgid "_xfn_Acquaintance"
-msgstr "Знакомство"
-
-msgid "_xfn_Friend"
-msgstr "Друг(подруга)"
-
-msgid "_xfn_Physical"
-msgstr "Материальный"
-
-msgid "_xfn_Met"
-msgstr "Встретить"
-
-msgid "_xfn_Professional"
-msgstr "Профессионал"
-
-msgid "_xfn_Co-worker"
-msgstr "Товарищ по работе"
-
-msgid "_xfn_Colleague"
-msgstr "Коллега"
-
-msgid "_xfn_Geographical"
-msgstr "Георгафический"
-
-msgid "_xfn_Co-resident"
-msgstr "Сожитель"
-
-msgid "_xfn_Neighbor"
-msgstr "Сосед"
-
-msgid "_xfn_Family"
-msgstr "Семья"
-
-msgid "_xfn_Child"
-msgstr "Ребенок"
-
-msgid "_xfn_Parent"
-msgstr "Родитель"
-
-msgid "_xfn_Sibling"
-msgstr "Брат/Сестра"
-
-msgid "_xfn_Spouse"
-msgstr "Супруг/Супруга"
-
-msgid "_xfn_Kin"
-msgstr "Семья"
-
-msgid "_xfn_Romantic"
-msgstr "Романтика"
-
-msgid "_xfn_Muse"
-msgstr "Муза"
-
-msgid "_xfn_Crush"
-msgstr "Страсть"
-
-msgid "_xfn_Date"
-msgstr "Свидание"
-
-msgid "_xfn_Sweetheart"
-msgstr "Подруга"
-
-msgid "Nothing to import"
-msgstr "Нечего импортировать"
-
-msgid "Import operation cancelled."
-msgstr "Импортирование отменено."
-
-msgid "Items order has been successfully updated"
-msgstr "Порядок элементов успешно обновлен"
-
-msgid "Items have been successfully removed."
-msgstr "Элементы успешно удалены."
-
-msgid "Link has been successfully created."
-msgstr "Ссылка успешно создана."
-
-msgid "category has been successfully created."
-msgstr "Категория успешно обновлена."
-
-msgid "links have been successfully imported."
-msgstr "Ссылки были успешно импортированы."
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "Язык"
-
 #, fuzzy
 msgid "position"
 msgstr "Позиция страницы"
 
+msgid "Syndication"
+msgstr "Ленты новостей"
+
+msgid "Junk comments RSS feed"
+msgstr "RSS спам комментариев"
+
+msgid "Published comments RSS feed"
+msgstr "RSS опубликованных комментариев"
+
+msgid "manage blogroll"
+msgstr "управление ссылками"
+
+msgid "Links"
+msgstr "Ссылки"
+
+msgid "All categories"
+msgstr "Все категории"
+
+msgid "Home page only"
+msgstr "Долько домашняя страница"
+
+msgid "You must provide a link title"
+msgstr "Вы должны указать текст ссылки"
+
+msgid "You must provide a link URL"
+msgstr "Необходимо указать URL ссылки"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "Необходимо предоставить XBEL или OPML файл."
+
+msgid "File is not in XML format."
+msgstr "Файл не в формате XML."
+
+msgid "No such link or title"
+msgstr "Нет такой ссылки ли заголовка"
+
+msgid "Return to blogroll"
+msgstr "Вернуться в блогролл"
+
+msgid "Category has been successfully updated"
+msgstr "Категория была успешно удалена"
+
+msgid "Edit category"
+msgstr "Редактировать категорию"
+
+msgid "Link has been successfully updated"
+msgstr "Ссылка была успешно обновлена"
+
+msgid "Edit link"
+msgstr "Редактировать ссылку"
+
+msgid "XFN"
+msgstr "XFN"
+
+msgid "_xfn_Me"
+msgstr "Мне"
+
+msgid "_xfn_Another link for myself"
+msgstr "Другую ссылку для меня"
+
+msgid "_xfn_Friendship"
+msgstr "Дружба"
+
+msgid "_xfn_Contact"
+msgstr "Контакт"
+
+msgid "_xfn_Acquaintance"
+msgstr "Знакомство"
+
+msgid "_xfn_Friend"
+msgstr "Друг(подруга)"
+
+msgid "_xfn_Physical"
+msgstr "Материальный"
+
+msgid "_xfn_Met"
+msgstr "Встретить"
+
+msgid "_xfn_Professional"
+msgstr "Профессионал"
+
+msgid "_xfn_Co-worker"
+msgstr "Товарищ по работе"
+
+msgid "_xfn_Colleague"
+msgstr "Коллега"
+
+msgid "_xfn_Geographical"
+msgstr "Георгафический"
+
+msgid "_xfn_Co-resident"
+msgstr "Сожитель"
+
+msgid "_xfn_Neighbor"
+msgstr "Сосед"
+
+msgid "_xfn_Family"
+msgstr "Семья"
+
+msgid "_xfn_Child"
+msgstr "Ребенок"
+
+msgid "_xfn_Parent"
+msgstr "Родитель"
+
+msgid "_xfn_Sibling"
+msgstr "Брат/Сестра"
+
+msgid "_xfn_Spouse"
+msgstr "Супруг/Супруга"
+
+msgid "_xfn_Kin"
+msgstr "Семья"
+
+msgid "_xfn_Romantic"
+msgstr "Романтика"
+
+msgid "_xfn_Muse"
+msgstr "Муза"
+
+msgid "_xfn_Crush"
+msgstr "Страсть"
+
+msgid "_xfn_Date"
+msgstr "Свидание"
+
+msgid "_xfn_Sweetheart"
+msgstr "Подруга"
+
+msgid "Nothing to import"
+msgstr "Нечего импортировать"
+
+msgid "Import operation cancelled."
+msgstr "Импортирование отменено."
+
+msgid "Items order has been successfully updated"
+msgstr "Порядок элементов успешно обновлен"
+
+msgid "Items have been successfully removed."
+msgstr "Элементы успешно удалены."
+
+msgid "Link has been successfully created."
+msgstr "Ссылка успешно создана."
+
+msgid "category has been successfully created."
+msgstr "Категория успешно обновлена."
+
+msgid "links have been successfully imported."
+msgstr "Ссылки были успешно импортированы."
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "Язык"
+
 #, fuzzy
 msgid "select this link"
Index: locales/sr/main.po
===================================================================
--- locales/sr/main.po	(revision 221)
+++ locales/sr/main.po	(revision 261)
@@ -6,5 +6,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-09-17 11:59+0100\n"
 "Last-Translator: dragan <dragan@ctoutvert.com>\n"
@@ -1245,4 +1245,7 @@
 msgstr "Privé"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "envoyer"
@@ -1835,4 +1838,14 @@
 msgid "Enable WYSIWYG mode"
 msgstr "Activer l'éditeur visuel"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Activer l'interface avancée"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
 
 msgid "Accessibility options"
@@ -2218,4 +2231,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "Vous n'avez pas enregistré vos modifications."
Index: locales/sr/plugins.po
===================================================================
--- locales/sr/plugins.po	(revision 221)
+++ locales/sr/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/sv/main.po
===================================================================
--- locales/sv/main.po	(revision 221)
+++ locales/sv/main.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -1208,4 +1208,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr ""
@@ -1775,4 +1778,13 @@
 msgstr ""
 
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2138,4 +2150,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr ""
Index: locales/sv/plugins.po
===================================================================
--- locales/sv/plugins.po	(revision 221)
+++ locales/sv/plugins.po	(revision 261)
@@ -8,5 +8,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
@@ -236,4 +236,7 @@
 msgstr ""
 
+msgid "position"
+msgstr ""
+
 msgid "Syndication"
 msgstr ""
@@ -392,7 +395,4 @@
 msgstr ""
 
-msgid "position"
-msgstr ""
-
 msgid "select this link"
 msgstr ""
Index: locales/te/main.po
===================================================================
--- locales/te/main.po	(revision 221)
+++ locales/te/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-10-12 11:49+0530\n"
 "Last-Translator: Veeven <veeven@gmail.com>\n"
@@ -1243,4 +1243,7 @@
 msgstr "అంతరంగికం"
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "పంపించు"
@@ -1826,4 +1829,13 @@
 
 msgid "Enable WYSIWYG mode"
+msgstr ""
+
+msgid "Activate enhanced uploader in media manager"
+msgstr ""
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
 msgstr ""
 
@@ -2207,4 +2219,7 @@
 msgstr ""
 
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
 msgid "You have unsaved changes."
 msgstr "భద్రపరచని మార్పులున్నాయి."
Index: locales/te/plugins.po
===================================================================
--- locales/te/plugins.po	(revision 221)
+++ locales/te/plugins.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2008-10-12 12:02+0530\n"
 "Last-Translator: Veeven <veeven@gmail.com>\n"
@@ -235,4 +235,8 @@
 msgstr ""
 
+#, fuzzy
+msgid "position"
+msgstr "పేజీ స్థానం"
+
 msgid "Syndication"
 msgstr ""
@@ -392,8 +396,4 @@
 msgstr "భాష"
 
-#, fuzzy
-msgid "position"
-msgstr "పేజీ స్థానం"
-
 msgid "select this link"
 msgstr ""
Index: locales/tr/main.po
===================================================================
--- locales/tr/main.po	(revision 221)
+++ locales/tr/main.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-09-17 23:52+0200\n"
 "Last-Translator: ozgur ulukir <ozgurulukir@yahoo.com>\n"
@@ -1224,4 +1224,7 @@
 msgstr ""
 
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
 msgid "send"
 msgstr "yolla"
@@ -1810,4 +1813,14 @@
 msgstr "WYSIWYG kipini aç"
 
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "Gelişmiş yükleyiciyi etkinleştir"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
 msgid "Accessibility options"
 msgstr ""
@@ -2178,4 +2191,7 @@
 
 msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
 msgstr ""
 
Index: locales/tr/plugins.po
===================================================================
--- locales/tr/plugins.po	(revision 221)
+++ locales/tr/plugins.po	(revision 261)
@@ -7,5 +7,5 @@
 "Project-Id-Version: Dotclear 2\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:35+0200\n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
 "PO-Revision-Date: 2009-09-17 23:35+0200\n"
 "Last-Translator: ozgur ulukir <ozgurulukir@yahoo.com>\n"
@@ -237,164 +237,164 @@
 msgstr ""
 
-msgid "Syndication"
-msgstr ""
-
-msgid "Junk comments RSS feed"
-msgstr ""
-
-msgid "Published comments RSS feed"
-msgstr ""
-
-msgid "manage blogroll"
-msgstr ""
-
-msgid "Links"
-msgstr ""
-
-msgid "All categories"
-msgstr ""
-
-msgid "Home page only"
-msgstr ""
-
-msgid "You must provide a link title"
-msgstr ""
-
-msgid "You must provide a link URL"
-msgstr ""
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr ""
-
-msgid "File is not in XML format."
-msgstr ""
-
-msgid "No such link or title"
-msgstr ""
-
-msgid "Return to blogroll"
-msgstr ""
-
-msgid "Category has been successfully updated"
-msgstr ""
-
-msgid "Edit category"
-msgstr ""
-
-msgid "Link has been successfully updated"
-msgstr ""
-
-msgid "Edit link"
-msgstr ""
-
-msgid "XFN"
-msgstr ""
-
-msgid "_xfn_Me"
-msgstr ""
-
-msgid "_xfn_Another link for myself"
-msgstr ""
-
-msgid "_xfn_Friendship"
-msgstr ""
-
-msgid "_xfn_Contact"
-msgstr ""
-
-msgid "_xfn_Acquaintance"
-msgstr ""
-
-msgid "_xfn_Friend"
-msgstr ""
-
-msgid "_xfn_Physical"
-msgstr ""
-
-msgid "_xfn_Met"
-msgstr ""
-
-msgid "_xfn_Professional"
-msgstr ""
-
-msgid "_xfn_Co-worker"
-msgstr ""
-
-msgid "_xfn_Colleague"
-msgstr ""
-
-msgid "_xfn_Geographical"
-msgstr ""
-
-msgid "_xfn_Co-resident"
-msgstr ""
-
-msgid "_xfn_Neighbor"
-msgstr ""
-
-msgid "_xfn_Family"
-msgstr ""
-
-msgid "_xfn_Child"
-msgstr ""
-
-msgid "_xfn_Parent"
-msgstr ""
-
-msgid "_xfn_Sibling"
-msgstr ""
-
-msgid "_xfn_Spouse"
-msgstr ""
-
-msgid "_xfn_Kin"
-msgstr ""
-
-msgid "_xfn_Romantic"
-msgstr ""
-
-msgid "_xfn_Muse"
-msgstr ""
-
-msgid "_xfn_Crush"
-msgstr ""
-
-msgid "_xfn_Date"
-msgstr ""
-
-msgid "_xfn_Sweetheart"
-msgstr ""
-
-msgid "Nothing to import"
-msgstr ""
-
-msgid "Import operation cancelled."
-msgstr ""
-
-msgid "Items order has been successfully updated"
-msgstr ""
-
-msgid "Items have been successfully removed."
-msgstr ""
-
-msgid "Link has been successfully created."
-msgstr ""
-
-msgid "category has been successfully created."
-msgstr ""
-
-msgid "links have been successfully imported."
-msgstr ""
-
-msgid "URL"
-msgstr ""
-
-msgid "Lang"
-msgstr ""
-
 #, fuzzy
 msgid "position"
 msgstr "Açıklama"
 
+msgid "Syndication"
+msgstr ""
+
+msgid "Junk comments RSS feed"
+msgstr ""
+
+msgid "Published comments RSS feed"
+msgstr ""
+
+msgid "manage blogroll"
+msgstr ""
+
+msgid "Links"
+msgstr ""
+
+msgid "All categories"
+msgstr ""
+
+msgid "Home page only"
+msgstr ""
+
+msgid "You must provide a link title"
+msgstr ""
+
+msgid "You must provide a link URL"
+msgstr ""
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr ""
+
+msgid "File is not in XML format."
+msgstr ""
+
+msgid "No such link or title"
+msgstr ""
+
+msgid "Return to blogroll"
+msgstr ""
+
+msgid "Category has been successfully updated"
+msgstr ""
+
+msgid "Edit category"
+msgstr ""
+
+msgid "Link has been successfully updated"
+msgstr ""
+
+msgid "Edit link"
+msgstr ""
+
+msgid "XFN"
+msgstr ""
+
+msgid "_xfn_Me"
+msgstr ""
+
+msgid "_xfn_Another link for myself"
+msgstr ""
+
+msgid "_xfn_Friendship"
+msgstr ""
+
+msgid "_xfn_Contact"
+msgstr ""
+
+msgid "_xfn_Acquaintance"
+msgstr ""
+
+msgid "_xfn_Friend"
+msgstr ""
+
+msgid "_xfn_Physical"
+msgstr ""
+
+msgid "_xfn_Met"
+msgstr ""
+
+msgid "_xfn_Professional"
+msgstr ""
+
+msgid "_xfn_Co-worker"
+msgstr ""
+
+msgid "_xfn_Colleague"
+msgstr ""
+
+msgid "_xfn_Geographical"
+msgstr ""
+
+msgid "_xfn_Co-resident"
+msgstr ""
+
+msgid "_xfn_Neighbor"
+msgstr ""
+
+msgid "_xfn_Family"
+msgstr ""
+
+msgid "_xfn_Child"
+msgstr ""
+
+msgid "_xfn_Parent"
+msgstr ""
+
+msgid "_xfn_Sibling"
+msgstr ""
+
+msgid "_xfn_Spouse"
+msgstr ""
+
+msgid "_xfn_Kin"
+msgstr ""
+
+msgid "_xfn_Romantic"
+msgstr ""
+
+msgid "_xfn_Muse"
+msgstr ""
+
+msgid "_xfn_Crush"
+msgstr ""
+
+msgid "_xfn_Date"
+msgstr ""
+
+msgid "_xfn_Sweetheart"
+msgstr ""
+
+msgid "Nothing to import"
+msgstr ""
+
+msgid "Import operation cancelled."
+msgstr ""
+
+msgid "Items order has been successfully updated"
+msgstr ""
+
+msgid "Items have been successfully removed."
+msgstr ""
+
+msgid "Link has been successfully created."
+msgstr ""
+
+msgid "category has been successfully created."
+msgstr ""
+
+msgid "links have been successfully imported."
+msgstr ""
+
+msgid "URL"
+msgstr ""
+
+msgid "Lang"
+msgstr ""
+
 msgid "select this link"
 msgstr ""
Index: ocales/zh-CN/date.po
===================================================================
--- locales/zh-CN/date.po	(revision 221)
+++ 	(revision )
@@ -1,135 +1,0 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Dotclear 2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-04-15 16:27+0200\n"
-"PO-Revision-Date: 2010-01-16 15:23+0800\n"
-"Last-Translator: lainme <lainme993@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid "%Y-%m-%d %H:%M"
-msgstr "%Y-%m-%d %H:%M"
-
-msgid "_Jan"
-msgstr "一月"
-
-msgid "_Feb"
-msgstr "二月"
-
-msgid "_Mar"
-msgstr "三月"
-
-msgid "_Apr"
-msgstr "四月"
-
-msgid "_May"
-msgstr "五月"
-
-msgid "_Jun"
-msgstr "六月"
-
-msgid "_Jul"
-msgstr "七月"
-
-msgid "_Aug"
-msgstr "八月"
-
-msgid "_Sep"
-msgstr "九月"
-
-msgid "_Oct"
-msgstr "十月"
-
-msgid "_Nov"
-msgstr "十一月"
-
-msgid "_Dec"
-msgstr "十二月"
-
-msgid "January"
-msgstr "一月"
-
-msgid "February"
-msgstr "二月"
-
-msgid "March"
-msgstr "三月"
-
-msgid "April"
-msgstr "四月"
-
-msgid "May"
-msgstr "五月"
-
-msgid "June"
-msgstr "六月"
-
-msgid "July"
-msgstr "七月"
-
-msgid "August"
-msgstr "八月"
-
-msgid "September"
-msgstr "九月"
-
-msgid "October"
-msgstr "十月"
-
-msgid "November"
-msgstr "十一月"
-
-msgid "December"
-msgstr "十二月"
-
-msgid "_Mon"
-msgstr "星期一"
-
-msgid "_Tue"
-msgstr "星期二"
-
-msgid "_Wed"
-msgstr "星期三"
-
-msgid "_Thu"
-msgstr "星期四"
-
-msgid "_Fri"
-msgstr "星期五"
-
-msgid "_Sat"
-msgstr "星期六"
-
-msgid "_Sun"
-msgstr "星期日"
-
-msgid "Monday"
-msgstr "星期一"
-
-msgid "Tuesday"
-msgstr "星期二"
-
-msgid "Wednesday"
-msgstr "星期三"
-
-msgid "Thursday"
-msgstr "星期四"
-
-msgid "Friday"
-msgstr "星期五"
-
-msgid "Saturday"
-msgstr "星期六"
-
-msgid "Sunday"
-msgstr "星期日"
Index: ocales/zh-CN/help/blowupConfig.html
===================================================================
--- locales/zh-CN/help/blowupConfig.html	(revision 0)
+++ 	(revision )
@@ -1,54 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>Blowup 主题配置</title>
-</head>
-
-<body>
-<p>修改 Blowup 主题配置允许您轻松定制自己的主题。要这样做，仅需填写配置字段或者选择一个预定义的样式。</p>
-
-<h3>颜色</h3>
-
-<p>当您需要填入一个颜色值时，您应该使用十六进制格式。比如：“#FF0000”会显示红色。您也可以使用每个颜色字段下面的颜色选择器。</p>
-<p>如果您没有灵感，尝试浏览下列网页：</p>
-<ul>
- <li><a href="http://zh.wikipedia.org/wiki/颜色列表">颜色列表</a>(维基百科)</li>
- <li><a href="http://kuler.adobe.com/">Adobe Kuler</a></li>
- <li><a href="http://colorblender.com/">ColorBlender</a></li>
- <li><a href="http://www.colorcombos.com/">ColorCombos</a></li>
-</ul>
-
-<h3>度量单位</h3>
-
-<p>当您需要指定一个大小，它必须有一个度量单位。例如：“1em”。如果您不把单位包含在内，像素将作为默认的度量单位。</p>
-<p>下列度量单位是可用的：</p>
-<ul>
-  <li>px</li>
-  <li>em</li>
-  <li>ex</li>
-  <li>pt</li>
-  <li>%</li>
-</ul>
-
-<h3>头部图片</h3>
-
-<p>您可以从列表中选择一个头部图片来取代默认的。</p>
-
-<p>当您在图片列表中选择“定制...”，您将可以上传自己的图片。<strong>图片必须是 JPG 或者 PNG 格式并且必须精确等于 800 像素宽。</strong>
-
-<p>如果您上传一个 JPG 图片，一个边框将会被添加。而 PNG 图片不会如此(透明特性也会被保留)。</p>
-
-<h3>预定义的样式</h3>
-
-<p>您可以在“预定义的样式”下拉列表中选择一个预定义的样式。一旦您选择了样式，您必须提交表格以应用更改。</p>
-
-<p>您接着可以根据自己的喜好和需要修改预定义样式。</p>
-
-<h3>配置导入／导出</h3>
-
-<p>在 Blowup 选项的最后，您可以显示一个叫做“配置导入／导出”的区域。这个文本区域包括您当前使用的配置。您可以复制它以和其他人分享。</p>
-
-<p>要应用(导入)一个配置，您仅需要将文本区域的内容替换为您想要的配置。不要忘记点击“应用代码”按钮。</p>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_blog_pref.html
===================================================================
--- locales/zh-CN/help/core_blog_pref.html	(revision 0)
+++ 	(revision )
@@ -1,120 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>博客设置</title>
-</head>
-
-<body>
-
-<h3>博客详情</h3>
-<dl>
-  <dt>博客 ID</dt>
-  <dd>博客的独有 ID。必须有，仅有超级管理员可以修改。</dd>
-  
-  <dt>博客名称</dt>
-  <dd>博客的名称，必须有。</dd>
-  
-  <dt>博客 URL</dt>
-  <dd>博客的完整 URL。必须有，仅有超级管理员可以修改。</dd>
-  
-  <dt>博客状态</dt>
-  <dd>
-    <ul>
-      <li><strong>在线</strong>：博客对浏览者开放</li>
-      <li><strong>不在线</strong>：博客对浏览者关闭，但对作者开放。</li>
-      <li><strong>移除</strong>：博客对浏览者和作者都关闭。</li>
-    </ul>
-  </dd>
-  
-  <dt>博客描述</dt>
-  <dd>这里您可以放置任何希望的对您博客的描述。这是一个简单的文本，没有格式化。</dd>
-</dl>
-
-<h3>博客配置</h3>
-<dl>
-  <dt>博客编辑者姓名</dt>
-  <dd>此博客负责人的姓名。它可以是拥有者或者发布者，如果存在的话。</dd>
-  
-  <dt>版权声明</dt>
-  <dd>对于博客版权的声明。</dd>
-  
-  <dt>默认语言</dt>
-  <dd>博客界面的语言。如果该语言包可获得，界面将被翻译。如果不存在，界面将保持默认的英语。</dd>
-  
-  <dt>博客时区</dt>
-  <dd>定义评论和 trackback 所用的时区。</dd>
-  
-  <dt>日期格式</dt>
-  <dd>博客文章的日期格式。看下面日期和时间格式参考部分以了解细节。</dd>
-  
-  <dt>时间格式</dt>
-  <dd>博客文章的时间格式。看下面日期和时间格式参考部分以了解细节。</dd>
-  
-  <dt>每页显示..篇文章</dt>
-  <dd>这个数字将被用来限制文章在主页、每个分类目录和 RSS feed 第一页的数目。</dd>
-  
-  <dt>保持评论开放..天</dt>
-  <dd>文章发布后评论和 trackback 保持开放的天数。留空则评论将会一直开放。</dd>
-  
-  <dt>在文章和评论上显示表情</dt>
-  <dd>显示序列字符例如 :-) 或者 ;-) 为图片。</dd>
-  
-  <dt>接受评论</dt>
-  <dd>在博客上全局接受评论。比每篇文章的设置要优先。</dd>
-  
-  <dt>接受 trackbacks</dt>
-  <dd>在博客上全局接受 trackbacks。比每篇文章的设置要优先。</dd>
-  
-  <dt>审核评论和 trackbacks</dt>
-  <dd>有这个选项，评论和 trackbacks 将会在编辑者同意之后发布。</dd>
-  
-  <dt>在评论和 trackbacks 链接上添加 “nofollow” 关系</dt>
-  <dd>在评论和链接上添加一个属性，告诉搜索机器人不要跟随这些链接。这个反垃圾评论特性已经证明了它的价值。</dd>
-  
-  <dt>对评论使用 Wiki 语法</dt>
-  <dd>允许在评论中使用一个 wiki 语法的子集。</dd>
-</dl>
-
-<h3>格式参考</h3>
-<p>一些字段可以配置来格式化日期和时间以满足您的需要。这是一些参考：</p>
-
-<ul>
-  <li><strong>%a</strong>：缩写的星期(本地)。</li>
-  <li><strong>%A</strong>：完整的星期(本地)。</li>
-  <li><strong>%b</strong>：缩写的月份(本地)。</li>
-  <li><strong>%B</strong>：完整的月份(本地)。</li>
-  <li><strong>%c</strong>：默认的本地日期和时间显示。</li>
-  <li><strong>%C</strong>：世纪(年份除以 100，在 00 到 99 范围内)</li>
-  <li><strong>%d</strong>：数字表示的月份(从 01 到 31)</li>
-  <li><strong>%D</strong>：等于 %m/%d/%y</li>
-  <li><strong>%e</strong>：数字表示的月份(从 1 到 31)</li>
-  <li><strong>%g</strong>：等于 %G，2 个数字。</li>
-  <li><strong>%G</strong>：4 位数字的年份，依据星期数(参见 %V)。格式和值等于 %Y，除了如果星期数如果属于前年或者下一年则当前年份将被使用。</li>
-  <li><strong>%h</strong>：等于 %b</li>
-  <li><strong>%H</strong>：一天中数字表示的小时，24 小时模式(从 00 到 23)</li>
-  <li><strong>%I</strong>：一天中数字表示的小时，12 小时模式(从 01 到 12)</li>
-  <li><strong>%j</strong>：一年中的一天，数字表示(从 001 到 366)</li>
-  <li><strong>%m</strong>：月份，数字表示(从 1 到 12)</li>
-  <li><strong>%M</strong>：分钟，数字表示</li>
-  <li><strong>%n</strong>：换行符</li>
-  <li><strong>%p</strong>：依据绝对时间或者本地设置，“am”或者“pm”。</li>
-  <li><strong>%r</strong>：小时，a.m. 和 p.m. 格式</li>
-  <li><strong>%R</strong>：小时，24 小时格式</li>
-  <li><strong>%S</strong>：秒，数字表示</li>
-  <li><strong>%t</strong>：制表符</li>
-  <li><strong>%T</strong>：当前时间(等于 %H:%M:%S)</li>
-  <li><strong>%u</strong>：一星期中哪一天，从 1 到 7。(1 表示星期一)</li>
-  <li><strong>%U</strong>：星期数，一年中第一个星期天成为第一个星期的第一天。</li>
-  <li><strong>%V</strong>：ISO 8601:1988 定义的星期数，数字表示，从 01 到 53。第一个星期是当前年份第一个大于 4 天的星期，其星期一是第一天。(使用 %G 或者 %g 取得和与所考虑的时间戳相一致的年份。)</li>
-  <li><strong>%W</strong>：一年中星期的数目，一年里第一个星期一作为第一个星期的开始</li>
-  <li><strong>%w</strong>：星期中的一天，数字表示，0 表示星期日</li>
-  <li><strong>%x</strong>：日期首选格式，没有时间</li>
-  <li><strong>%X</strong>：时间首选格式，没有日期</li>
-  <li><strong>%y</strong>：年份，两个数字(从 00 到 99)</li>
-  <li><strong>%Y</strong>：年份，4 位数字</li>
-  <li><strong>%Z ou %z</strong>：时区，名字或者缩写</li>
-  <li><strong>%%</strong>：一个“%”字符</li>
-</ul>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_categories.html
===================================================================
--- locales/zh-CN/help/core_categories.html	(revision 0)
+++ 	(revision )
@@ -1,30 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>分类目录</title>
-</head>
-
-<body>
-<h3>分类目录列表</h3>
-<dl>
-  <dt>创建一个新分类目录</dt>
-  <dd>选择您想要的新分类目录名字然后点击保存使创建生效。要修改它，点击列表中它的名字。</dd>
-  
-  <dt>改变分类目录排序</dt>
-  <dd>要改变分类目录排序，使用箭头样子的图片拖拽分类目录并点击<strong>保存排序</strong>。如果您没有看到箭头，使用没个分类目录旁边的数字字段。</dd>
-</dl>
-
-<h3>修改一个分类目录</h3>
-<dl>
-  <dt>标题</dt>
-  <dd>选择您想要给您的分类目录的名字然后点击保存以使之生效。</dd>
-  
-  <dt>URL</dt>
-  <dd>DotClear 为每个分类目录创建一个默认的 url，使之可以通过类似下面的方式到达：<strong>http://monblog.tld/category/我的分类目录</strong>。您可以点击左边的小锁来修改它以满足您的需要。</dd>
-  
-  <dt>描述</dt>
-  <dd>描述区域中的内容将会在选择一个博客的分类目录时展示。您可以用任何类型的内容填写它(段落、列表等)。这个区域的格式化方法是 HTML。</dd>
-</dl>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_comments.html
===================================================================
--- locales/zh-CN/help/core_comments.html	(revision 0)
+++ 	(revision )
@@ -1,57 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>评论</title>
-</head>
-
-<body>
-<h3>评论列表过滤器</h3>
-<dl>
-  <dt>类型：</dt>
-  <dd>无、评论或者 trackbacks。</dd>
-  
-  <dt>状态：</dt>
-  <dd><ul>
-    <li><strong>垃圾评论</strong>：</li>
-    <li><strong>待审核</strong>：</li>
-    <li><strong>未发布</strong>：不在线</li>
-    <li><strong>发布</strong>：在线</li>
-  </ul></dd>
-  
-  <dt>排序依据：</dt>
-  <dd>选择：日期、文章标题、作者或者状态，然后选择排序顺序。</dd>
-  
-  <dt>排序</dt>
-  <dd>选择列表按照升序还是降序排列。</dd>
-  
-  <dt>评论作者。</dt>
-  <dd>搜索对大小写不敏感。如果您仅想搜索部分名字，您可以使用 <strong>*</strong> 通配符。</dd>
-  
-  <dt>每页的评论数：</dt>
-  <dd>允许你你选择列表每页的评论数目。</dd>
-</dl>
-
-<h3>修改或者添加一个评论</h3>
-<dl>
-  <dt>作者：</dt>
-  <dd>作者姓名。这个字段是必须的。</dd>
-  
-  <dt>邮箱：</dt>
-  <dd>作者的邮箱地址。</dd>
-  
-  <dt>网站：</dt>
-  <dd>评论作者的博客或者网站 URL。</dd>
-  
-  <dt>状态：</dt>
-  <dd><ul>
-    <li><strong>垃圾评论</strong>：</li>
-    <li><strong>待审核</strong>：</li>
-    <li><strong>未发布</strong>：不在线</li>
-    <li><strong>发布</strong>：在线</li>
-  </ul></dd>
-  
-  <dt>评论：</dt>
- <dd>评论的内容。这个区域是用 html 格式化。</dd>
-</dl>
-</body>
-</html>
Index: ocales/zh-CN/help/core_media.html
===================================================================
--- locales/zh-CN/help/core_media.html	(revision 0)
+++ 	(revision )
@@ -1,77 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>媒体管理中心</title>
-</head>
-
-<body>
-
-<h3>媒体列表</h3>
-<p>媒体管理中心的主页显示所选博客的一个可获取文件(媒体)的列表。</p>
-
-<p>您可以点击文件夹中媒体的图标或者名称，或是任何子文件夹来显示它们。</p>
-
-<p>选择一个 MP3 音乐文件将显示一个播放器立即播放这个文件。您的浏览器必须安装 Flash 插件以使播放器工作。</p>
-
-<p>图片将会和一个缩略图一起显示，如果可能。</p>
-
-<h3>添加文件</h3>
-<dl>
-  <dt>选择一个文件</dt>
-  <dd>这里您可以选择一个您的本地文件并发送到您的博客。如果文件大于限制的最大大小，它将不会被发送。</dd>
-  
-  <dt>标题</dt>
-  <dd>您要发送的文件的可选标题。</dd>
-  
-  <dt>私有的</dt>
-  <dd>如果您想要这个文件私有，选择它。也就是仅能被拥有者取得而不能从博客中取得。</dd>
-</dl>
-
-<h3>新目录</h3>
-<p>这个表格允许您在当前显示的目录中创建一个新的子目录。仅需为它选择一个名称，就像在您自己计算机上那样做。</p>
-
-<h3>媒体详情</h3>
-<p>这个页面显示关于当前选择的文件的一系列信息，并允许您进行一些操作。</p>
-
-<dl>
-  <dt>文件名</dt>
-  <dd>改变当前文件的名称。</dd>
-  
-  <dt>文件标题</dt>
-  <dd>给文件一个标题或者改变当前的。</dd>
-  
-  <dt>文件日期</dt>
-  <dd>改变文件的日期。</dd>
-  
-  <dt>私有的</dt>
-  <dd>指定这个文件将在媒体中心对除了拥有者外的所有人隐藏。</dd>
-  
-  <dt>新目录</dt>
-  <dd>允许您移动文件到另一个目录。</dd>
-  
-  <dt>改变文件</dt>
-  <dd>使用这个表格，您可以替换文件而保持所有属性不变(名字，标题等)。同理，您必须遵循最大允许的文件大小。</dd>
-</dl>
-
-<h3>图片的特别处理</h3>
-<p>当您添加一个图片，根据它的大小，最多 4 个版本将可以使用：</p>
-<ul>
-  <li><strong>方块</strong>：一个 48x48 像素方形所略图。</li>
-  <li><strong>所略图</strong>：图片最大边缩小到 100 像素。</li>
-  <li><strong>小</strong>：最大边缩小到 240 像素。</li>
-  <li><strong>中</strong>：最大边缩小到 500 像素。</li>
-  <li><strong>原始</strong>：原始，没有改变的图片。</li>
-</ul>
-
-<h3>向文章中添加文件</h3>
-<p>您可以简单地向您的文章中附加一个文件。首先，创建一篇新文章并保存。然后点击“向这篇文章添加文件”来打开媒体管理中心。</p>
-
-<p>仅需点击 [+] 图表(附加这个文件到文章)。接着文件就会被附加到文章中。</p>
-
-<p>附加的文件将会在文章页面显示，作为一个列表显示在文章内容旁边。MP3 文件将会通过 Flash 播放器使用，因此可以轻松被浏览者听到。</p>
-
-<h3>播放和广播音乐文件</h3>
-<p>所有附加的文件都将会包含在您的 RSS feeds 里，可以轻松播放任何类型的文件。</p>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_post.html
===================================================================
--- locales/zh-CN/help/core_post.html	(revision 0)
+++ 	(revision )
@@ -1,91 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>编辑一篇文章</title>
-</head>
-
-<body>
-
-<h3>编辑一篇文章</h3>
-
-<dl>
-  <dt>文章标题</dt>
-  <dd>输入文章标题。这个字段是必须的。</dd>
-  
-  <dt>摘录</dt>
-  <dd>这个字段的内容将会显示在文章列表展示页面，例如首页或者分类目录页面，并跟随一个“继续阅读”链接。同时它也在每个文章页面的开头可见。如果您留空，<em>内容</em>字段将在首页和其他文章列表页面显示。</dd>
-  
-  <dt>内容</dt>
-  <dd>您文章的内容。这个字段是必须的。</dd>
-  
-  <dt>注释</dt>
-  <dd>这个文本区域是个人使用，用于注释或者备忘。您在这里输入的内容将永不会显示在博客上。</dd>
-  
-  <dt>分类目录</dt>
-  <dd>您文章的分类目录。要创建一个新分类目录，请看“分类目录”部分。您可以通过选择空白行以使您的文章没有分类目录。</dd>
-  
-  <dt>文章状态</dt>
-  <dd>允许您选择您文章的状态：
-    <ul>
-      <li><strong>待审核：</strong>发布状态还没有决定。</li>
-      <li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
-      <li><strong>未发布：</strong>文章不在线。</li>
-      <li><strong>已发布：</strong>文章在线。</li>
-    </ul>
-  </dd>
-  
-  <dt>发布于</dt>
-  <dd>这里您可以改变文章的发布日期和时间。如果文章状态是<em>计划的</em>，它将在此日期和时间上线。</dd>
-  
-  <dt>文本格式</dt>
-  <dd>选择文章语法。Wiki 是一个简化的语法并将会转化到有效的  xhtml&nbsp;；除非您对于 html 有极好的理解，我们建议选择 wiki 语法。看 wiki 语法参考以获取更多信息。</dd>
-  
-  <dt>接受评论</dt>
-  <dd>选择这个选框以使您的访客能够评论文章。相应的全局设置可以在博客设置中找到。</dd>
-  
-  <dt>接受 trackbacks</dt>
-  <dd>trackback 是一种可以让您的文章的一部分成为另一个博客的评论。选择这个选框以允许其他人对您的文章进行 trackback。相应的全局设置可以在博客设置中找到。</dd>
-  
-  <dt>精选文章</dt>
-  <dd>精选文章将会在您的博客菜单中列出，在标题“我最好的文章”下面。</dd>
-  
-  <dt>文章密码</dt>
-  <dd>您可以为您的文章输入一个密码。一个密码保护的文章将不会显示在您的博客上，它仅会使您给予文章链接(看<em>查看文章</em>)和密码的人可见。</dd>
-  
-  <dt>具体的 URL</dt>
-  <dd>点击它的锁，您可以解锁这个字段并为您的文章选择另一个 URL。如果您准备使用的 URL 已经被另一篇文章使用，一个数字将会附加其上。</dd>
-  
-  <dt>文章语言</dt>
-  <dd>您文章的 2 个字符的语言代码。它默认是您的(作为一个用户)语言，但您也可以改变为任何您希望的语言代码，例如“en”或者”fr“。代码用于文章的显示。</dd>
-  
-  <dt>附件</dt>
-  <dd>附件是所有您添加到文章中的媒体。链接<em>向这篇文章添加文件</em>允许您向文章中附加其他文件。记得在点击这个链接前保存您的修改。更多信息参考媒体管理中心帮助。</dd>
-</dl>
-
-<h3>评论</h3>
-<dl>
-  <dt>评论列表</dt>
-  <dd>在<em>评论</em>标签，您可以读取并改变您文章评论的状态。如果您被博客管理员允许，您可以设置您的评论在线或者不在线，删除它们或者标记为垃圾评论。</dd>
-  
-  <dt>添加一个评论</dt>
-  <dd>在<em>添加一个评论</em>标签，您可以回复您文章中的一个评论而不离开您的博客后台。这里使用的语法是无限制的纯 xhtml。使用这个区域就好像您在编辑一个评论。</dd>
-</dl>
-
-<h3>Trackback</h3>
-<p>要进行一个 trackback，点击<em>Ping 博客</em>链接。如果您的文章状态不是<em>已发布</em>，您将不会看到这个链接。</p>
-
-<dl>
-  <dt>ping 的 URL</dt>
-  <dd>在这里粘贴您想要 ping 的 trackback URL。</dd>
-  
-  
-  <dt>发送摘录</dt>
-  <dd>这个字段默认是您的文章开始的少数段落。这是将要发送到您要 ping 的博客的内容，同时有一个到您博客的链接。您可以通过编辑这个字段修改摘录。</dd>
-  
-  
-  <dt>自动发现 ping URL</dt>
-  <dd>如果您的文章链接特别的文章，并且拥有这些文章的博客允许，这个工具将会为您发现 ping 的 URL。</dd>
-</dl>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_posts.html
===================================================================
--- locales/zh-CN/help/core_posts.html	(revision 0)
+++ 	(revision )
@@ -1,59 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>管理文章</title>
-</head>
-
-<body>
-
-<h3>文章列表的过滤器</h3>
-
-<dl>
-  <dt>作者</dt>
-  <dd>允许您依据作者过滤。</dd>
-  
-  <dt>分类目录</dt>
-  <dd>依据分类目录过滤。</dd>
-  
-  <dt>状态</dt>
-  <dd><ul>
-    <li><strong>待审核：</strong>发布状态还没有决定。</li>
-    <li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
-    <li><strong>未发布：</strong>文章不在线。</li>
-    <li><strong>已发布：</strong>文章在线。</li>
-  </ul></dd>
-  
-  <dt>精选的</dt>
-  <dd>仅有精选的文章，或者非精选的。</dd>
-  
-  <dt>月份</dt>
-  <dd>过滤到一个特定的月份和年份。</dd>
-  
-  <dt>语言</dt>
-  <dd>通过博客上使用的不同语言过滤。</dd>
-  
-  <dt>排序依据</dt>
-  <dd>定义列表依据，或是日期、标题、作者、状态或者精选状态。</dd>
-  
-  <dt>排序</dt>
-  <dd>选择列表是升序或者降序排序。</dd>
-  
-  <dt>每页文章数</dt>
-  <dd>结果页面每页显示的文章数目。</dd>
-</dl>
-
-<h3>已选择的文章的动作</h3>
-<p>如果您的用户权限允许，您可以对您在列表中选择的文章进行批量操作。</p>
-
-<ul>
-  <li><strong>发布</strong>：设置文章在线。</li>
-  <li><strong>未发布</strong>：设置文章不在线。</li>
-  <li><strong>计划</strong>：计划设置文章在它们的发布日期上限。</li>
-  <li><strong>标记为待审核</strong>：清除其他发布状态。</li>
-  <li><strong>改变分类目录</strong>：引导您去分类目录列表来为文章选择一个新的文类列表。</li>
-  <li><strong>改变作者</strong>：允许您通过输入新作者 ID 来改变文章作者。</li>
-  <li><strong>删除</strong>：删除文章(这个操作无法恢复)。</li>
-</ul>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_user_pref.html
===================================================================
--- locales/zh-CN/help/core_user_pref.html	(revision 0)
+++ 	(revision )
@@ -1,54 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>用户偏好</title>
-</head>
-
-<body>
-
-<h3>用户偏好</h3>
-<dl>
-  <dt>名字，姓氏</dt>
-  <dd>如果显示的名字为空，则作者名字将会以在这里设置的姓氏显示。</dd>
-  
-  <dt>显示的名字</dt>
-  <dd>您可以在这里选择您的文章中应该如何显示您的名字。</dd>
-  
-  <dt>邮箱</dt>
-  <dd>送达新评论通知的地址。</dd>
-  
-  <dt>URL</dt>
-  <dd>作者的网站网址。如果设置，作者姓名将会链接到这个网址。</dd>
-  
-  <dt>喜好的格式</dt>
-  <dd>选择喜好的文章语法。Wiki 是一个简单的语法并会转换到有效的xhtml&nbsp;; 除非您对于 html 有很好的理解，我们建议您选择 wiki 语法。</dd>
-  
-  <dt>默认的文章状态</dt>
-  <dd>默认的文章状态可以设置为：
-    <ul>
-    	<li><strong>待审核：</strong>发布状态还没有决定。</li>
-    	<li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
-    	<li><strong>未发布：</strong>文章不在线。</li>
-    	<li><strong>已发布：</strong>文章在线。</li>
-    </ul>
-  </dd>
-  
-  <dt>文章编辑区域高度</dt>
-  <dd>文章编辑区域的高度。默认是 24。</dd>
-  
-  <dt>用户语言</dt>
-  <dd>用户发布自己文章所用的语言。如果翻译存在，界面也会以这个语言显示。</dd>
-  
-  <dt>用户时区</dt>
-  <dd>这个选项将会定义文章发布的时间显示。</dd>
-  
-  <dt>激活所见即所得模式</dt>
-  <dd>允许对文章和描述区域使用所见即所得编辑器。</dd>
-</dl>
-
-<h3>改变您的密码</h3>
-<p>要改变您的密码，在<em>新密码</em>和<em>确认密码</em>两个字段中将密码输入两次。密码最小长度是 6 个字符。</p>
-<p>如果不提供新密码，则保持当前设置。</p>
-
-</body>
-</html>
Index: ocales/zh-CN/help/core_wiki.html
===================================================================
--- locales/zh-CN/help/core_wiki.html	(revision 0)
+++ 	(revision )
@@ -1,74 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>Wiki 语法参考</title>
-</head>
-
-<body>
-
-<h3>Wiki 语法参考</h3>
-
-<p>wiki 语法是一个用最少的标签来提高您的文本的方法，用以满足基本的要求(标题，段落，引用，列表...)</p>
-
-<dl>
-<dt>区块元素</dt>
-<dd>
-<ul>
-  <li>在两个相似区块中间留一个空行。</li>
-  <li><strong>段落</strong>：自由文本，如果有另一个段落跟随其后，则以空行结束。</li>
-  <li><strong>标题</strong>：<code>!!! 标题</code>，<code>!! 标题</code>或者 <code>! 标题</code>，允许您使用不同级别的标题。</li>
-  <li><strong>水平线</strong>：<code>----</code></li>
-  <li><strong>列表</strong>：每一行以 <code>*</code> 或者 <code>#</code> 开始。对应无序列表和有序列表。列表层叠通过下列方式混合列表标记实现：
-<pre>
-* 项目 1
-** 项目 1.1
-* 项目 2
-*# 项目 2.1
-...
-</pre>
-  </li>
-  <li><strong>预格式化文本</strong>：每行以一个空格开始。</li>
-  <li><strong>区块引用</strong>：每一行以分号(<code>&gt;</code>)开始。</li>
-</ul>
-</dd>
-
-<dt>格式化标签</dt>
-<dd>
-<ul>
-  <li><strong>强调</strong>：两个引号 <code>''文本''</code></li>
-  <li><strong>着重强调</strong>：两个下划线 <code>__text__</code></li>
-  <li><strong>新一行</strong>：<code>%%%</code></li>
-  <li><strong>下划线</strong>：两个加号 <code>++text++</code></li>
-  <li><strong>删除线</strong>：两个减号 <code>--text--</code></li>
-  <li><strong>链接</strong>： <code>[url]</code>，<code>[名称|url]</code>，<code>[名称|url|语言]</code> 或者 <code>[名称|url|语言|标题]</code></li>
-  <li><strong>图片</strong>：
-  	<code>((url|替代文本))</code>，
-    <code>((url|替代文本|位置))</code> 或者 
-    <code>((url|替代文本|位置|长的描述))</code>。
-    <br />位置可以是 L 或 G(左边)，R 或 D(右边)或者 C(中间)。</li>
-  <li><strong>锚</strong>：<code>~anchor~</code></li>
-  <li><strong>首字母缩写</strong>：<code>??缩写|标题??</code></li>
-  <li><strong>行内 HTML</strong>：两个反引号 <code>``html 代码``</code></li>
-  <li><strong>行内引用</strong>：<code>{{引用}}</code>，<code>{{引用|语言}}</code> 或者 <code>{{引用|语言|url}}</code></li>
-  <li><strong>代码</strong>：<code>@@代码@@</code></li>
-  <li><strong>脚标</strong>：<code>$$脚标$$</code></li>
-</ul>
-</dd>
-
-<dt>未格式化文本</dt>
-<dd>如果您不想要一个格式化字符被解析，在前面添加 <code>\</code>。这样：<code>\[括号中的文本不会成为链接\]</code>
-</dd>
-
-<dt>HTML 代码</dt>
-<dd>即使您选择了 wiki syntax，您有时会需要更强大的格式华，例如 HTML 语法。按下面的方法做：
-<pre>
-///html
-&lt;p style="color:red"&gt;红色的文字&lt;/p&gt;
-///
-</pre>
-</dd>
-</dl>
-
-
-</body>
-</html>
Index: ocales/zh-CN/help/themeEditor.html
===================================================================
--- locales/zh-CN/help/themeEditor.html	(revision 0)
+++ 	(revision )
@@ -1,28 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<html>
-<head>
-  <title>主题编辑器</title>
-</head>
-
-<body>
-<p>主题编辑器让您改变正在使用的主题的模板文件，样式表和 JavaScript 文件。</p>
-
-<p>文件列表被划分为三个部分&nbsp;：</p>
-<ul>
-  <li>模板文件：所有模板</li>
-  <li>CSS 文件：所有样式表</li>
-  <li>JavaScript 文件</li>
-</ul>
-
-<p>文件名前面的黄色图标表明这个文件是当前主题的一部分。黑色图标意味着这是默认主题的一部分。</p>
-
-<p>如果您修改一个属于默认主题的文件，它将会被复制到您正在使用的主题里面。</p>
-
-<p>要修改一个文件，点击它的名字以将它的内容显示在编辑区域。如果文件是可写的，您将可以通过点击“保存”来保存您的修改。</p>
-
-<p>修改会在保存后立刻应用，所以要小心。</p>
-
-<p>为了帮助修改您的模板，您可以参考<a href="http://doc.dotclear.net/2.0/resources/templates">模板标签列表</a>。</p>
-
-</body>
-</html>
Index: ocales/zh-CN/main.po
===================================================================
--- locales/zh-CN/main.po	(revision 221)
+++ 	(revision )
@@ -1,2817 +1,0 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Dotclear 2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:36+0200\n"
-"PO-Revision-Date: 2010-01-16 19:07+0800\n"
-"Last-Translator: lainme <lainme993@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid "Dotclear has been upgraded."
-msgstr "Dotclear 己被升级。"
-
-msgid "Password reset"
-msgstr "密码重置"
-
-msgid "Someone has requested to reset the password for the following site and username."
-msgstr "有人请求为下列站点和用户重置密码。"
-
-msgid "Username:"
-msgstr "用户名："
-
-msgid "To reset your password visit the following address, otherwise just ignore this email and nothing will happen."
-msgstr "要重置您的密码浏览下列网站，否则不要理会这个邮件则什么都不会发生。"
-
-#, php-format
-msgid "The e-mail was sent successfully to %s."
-msgstr "邮件成功发送到 %s。"
-
-msgid "Your new password"
-msgstr "您的新密码"
-
-msgid "Password:"
-msgstr "密码："
-
-msgid "Your new password is in your mailbox."
-msgstr "您的新密码在您的邮箱里。"
-
-msgid "Passwords don't match"
-msgstr "密码不匹配"
-
-msgid "You didn't change your password."
-msgstr "您没有改变您的密码。"
-
-msgid "You have to change your password before you can login."
-msgstr "在您能登录前，您必须改变您的密码。"
-
-msgid "In order to login, you have to change your password now."
-msgstr "您必须现在更改密码以便登录。"
-
-#, fuzzy
-msgid "Safe Mode can only be used for super administrators."
-msgstr "您不是超级管理员。"
-
-msgid "Wrong username or password"
-msgstr "错误的用户名或密码"
-
-msgid "Back to login screen"
-msgstr "返回到登录界面"
-
-msgid "Request a new password"
-msgstr "请求一个新密码"
-
-msgid "Email:"
-msgstr "邮箱："
-
-msgid "recover"
-msgstr "恢复"
-
-msgid "Change your password"
-msgstr "改变您的密码"
-
-msgid "New password:"
-msgstr "新密码："
-
-msgid "Confirm password:"
-msgstr "确认密码："
-
-msgid "change"
-msgstr "更改"
-
-msgid "Safe mode login"
-msgstr ""
-
-msgid "This mode allows you to login without activating any of your plugins. This may be useful to solve compatibility problems"
-msgstr ""
-
-msgid "Disable or delete any plugin suspected to cause trouble, then log out and log back in normally."
-msgstr ""
-
-msgid "Remember my ID on this computer"
-msgstr "在这台计算机上记住我的 ID"
-
-#, fuzzy
-msgid "log in"
-msgstr "博客名称"
-
-msgid "You must accept cookies in order to use the private area."
-msgstr "您必须接受 cookies 以使用私有区域。"
-
-msgid "Get back to normal authentication"
-msgstr ""
-
-msgid "Connection issue?"
-msgstr ""
-
-msgid "I forgot my password"
-msgstr "我忘记了我的密码"
-
-msgid "I want to log in in safe mode"
-msgstr ""
-
-msgid "New blog"
-msgstr "新博客"
-
-msgid "Blogs"
-msgstr "博客"
-
-msgid "Blog details"
-msgstr "博客详情"
-
-msgid "Blog ID:"
-msgstr "博客 ID："
-
-msgid "Required field"
-msgstr "必添字段"
-
-msgid "At least 2 characters using letters, numbers or symbols."
-msgstr "至少 2 个字符，使用字母、数字或符号。"
-
-msgid "Please note that changing your blog ID may require changes in your public index.php file."
-msgstr "请注意改变您的博客 ID 可能需要修改您的公共 index.php 文件。"
-
-msgid "Blog name:"
-msgstr "博客名称："
-
-msgid "Blog URL:"
-msgstr "博客 URL："
-
-msgid "Blog description:"
-msgstr "博客描述："
-
-msgid "Save"
-msgstr "保存"
-
-msgid "No such blog ID"
-msgstr "没有这样的博客 ID"
-
-msgid "Password verification failed"
-msgstr "密码验证失败"
-
-msgid "Delete a blog"
-msgstr "删除一个博客"
-
-msgid "Warning"
-msgstr "警告"
-
-#, php-format
-msgid "You are about to delete the blog %s. Every entry, comment and category will be deleted."
-msgstr "您准备删除博客 %s。每篇文章、评论和分类目录都将被删除。"
-
-msgid "Please give your password to confirm the blog deletion."
-msgstr "请提供您的密码以确认删除博客。"
-
-msgid "Your password:"
-msgstr "您的密码："
-
-msgid "Delete this blog"
-msgstr "删除这个博客"
-
-msgid "No given blog id."
-msgstr "没有这样的博客 ID。"
-
-msgid "No such blog."
-msgstr "没有这样的博客。"
-
-msgid "year/month/day/title"
-msgstr "年／月／日／标题"
-
-msgid "year/month/title"
-msgstr "年／月／标题"
-
-msgid "year/title"
-msgstr "年／标题"
-
-msgid "title"
-msgstr "标题"
-
-msgid "Title"
-msgstr "标题"
-
-msgid "Title, Date"
-msgstr "标题，日期"
-
-msgid "Title, Country, Date"
-msgstr "标题，国家，日期"
-
-msgid "Title, City, Country, Date"
-msgstr "标题，城市，国家，日期"
-
-msgid "I would like search engines and archivers to index and archive my blog's content."
-msgstr "我想要搜索引擎和 archivers 来索引和存档我的博客内容。"
-
-msgid "I would like search engines and archivers to index but not archive my blog's content."
-msgstr "我想要搜索引擎和 archivers 来索引但不要存档我的博客内容。"
-
-msgid "I would like to prevent search engines and archivers from indexing or archiving my blog's content."
-msgstr "我想要阻止搜索引擎和 archivers 来索引或者存档我的博客内容。"
-
-#, fuzzy
-msgid "That blog Id is already in use."
-msgstr "Dotclear 已被安装。"
-
-msgid "Invalid language code"
-msgstr "无效的语言代码"
-
-msgid "Blog settings"
-msgstr "博客设置"
-
-msgid "Warning: except for special configurations, it is generally advised to have a trailing \"/\" in your blog URL in PATH_INFO mode."
-msgstr ""
-
-msgid "Warning: except for special configurations, it is generally advised to have a trailing \"?\" in your blog URL in QUERY_STRING mode."
-msgstr ""
-
-msgid "Blog has been successfully created."
-msgstr "博客已被成功创建。"
-
-msgid "Blog has been successfully updated."
-msgstr "博客已被成功更新。"
-
-msgid "Parameters"
-msgstr "参数"
-
-msgid "URL scan method:"
-msgstr "URL 扫描方法："
-
-msgid "Blog status:"
-msgstr "博客状态："
-
-msgid "Blog configuration"
-msgstr "博客配置"
-
-msgid "Blog editor name:"
-msgstr "博客编辑者姓名："
-
-msgid "Default language:"
-msgstr "默认语言："
-
-msgid "Blog timezone:"
-msgstr "博客时区："
-
-msgid "Copyright notice:"
-msgstr "版权声明："
-
-msgid "New post URL format:"
-msgstr "新文章的 URL 格式："
-
-msgid "Enable XML/RPC interface"
-msgstr "激活 XML/RPC 接口"
-
-msgid "more information"
-msgstr "更多信息"
-
-msgid "Comments and trackbacks"
-msgstr "评论和 trackbacks"
-
-msgid "Accept comments"
-msgstr "接受评论"
-
-msgid "Moderate comments"
-msgstr "审核评论"
-
-#, php-format
-msgid "Leave comments open for %s days"
-msgstr "保持评论开放 %s 天"
-
-msgid "Leave blank to disable this feature."
-msgstr "留空以禁用该特性。"
-
-msgid "Wiki syntax for comments"
-msgstr "对评论使用Wiki语法"
-
-msgid "Accept trackbacks"
-msgstr "接受 trackbacks"
-
-msgid "Moderate trackbacks"
-msgstr "审核 trackbacks"
-
-#, php-format
-msgid "Leave trackbacks open for %s days"
-msgstr "保持 trackbacks 开放 %s 天"
-
-msgid "Add \"nofollow\" relation on comments and trackbacks links"
-msgstr "在评论和 trackbacks 链接上添加“nofollow”关系"
-
-msgid "Blog presentation"
-msgstr "博客展示"
-
-msgid "Date format:"
-msgstr "日期格式："
-
-msgid "Time format:"
-msgstr "时间格式："
-
-msgid "Display smilies on entries and comments"
-msgstr "在文章和评论上显示表情"
-
-#, php-format
-msgid "Display %s entries per page"
-msgstr "每页显示 %s 篇文章"
-
-#, php-format
-msgid "Display %s entries per feed"
-msgstr "每个 feed 显示 %s 篇文章"
-
-#, php-format
-msgid "Display %s comments per feed"
-msgstr "每个 feed 显示 %s 个评论"
-
-msgid "Truncate feeds"
-msgstr "截断 feeds"
-
-msgid "Media and images"
-msgstr "媒体和图片"
-
-msgid "Generated image sizes (in pixels)"
-msgstr "产生的图片大小(用像素)"
-
-msgid "Thumbnails:"
-msgstr "缩略图："
-
-msgid "Small:"
-msgstr "小："
-
-msgid "Medium:"
-msgstr "中："
-
-msgid "Inserted image title"
-msgstr "插入的图片标题"
-
-msgid "This defines image tag title when you insert it in a post from the media manager. It is retrieved from the picture's metadata."
-msgstr "当您从媒体中心将它插入一篇文章时，这会定义一个图片标签题目。它从图片的元数据中检索。"
-
-msgid "Search engines robots policy"
-msgstr "搜索引擎机器人规则"
-
-msgid "XML/RPC interface"
-msgstr "XML/RPC 接口"
-
-msgid "XML/RPC interface allows you to edit your blog with an external client."
-msgstr "XML/RPC 接口允许您使用外部客户端编辑您的博客。"
-
-msgid "XML/RPC interface is not active. Change settings to enable it."
-msgstr "XML/RPC 接口没有激活。更改设置以激活它。"
-
-msgid "XML/RPC interface is active. You should set the following parameters on your XML/RPC client:"
-msgstr "XML/RPC 接口已激活。您应该在您的 XML/RPC 客户端设置下列参数："
-
-msgid "Server URL:"
-msgstr "服务器 URL："
-
-msgid "Blogging system:"
-msgstr "博客系统："
-
-msgid "User name:"
-msgstr "用户名："
-
-msgid "your password"
-msgstr "您的密码"
-
-msgid "Users"
-msgstr "用户"
-
-msgid "Users on this blog"
-msgstr "这个博客上的用户"
-
-msgid "No users"
-msgstr "没有用户"
-
-msgid "change permissions"
-msgstr "改变权限"
-
-msgid "Super administrator"
-msgstr "超级管理员"
-
-msgid "You can't remove default theme."
-msgstr "您不能移除默认主题。"
-
-msgid "Theme does not exist."
-msgstr "主题不存在。"
-
-msgid "Unable to move uploaded file."
-msgstr "无法移动上传的文件。"
-
-msgid "An error occurred while downloading the file."
-msgstr "当下载这个文件时产生错误。"
-
-#, php-format
-msgid "by %s"
-msgstr "作者为 %s"
-
-#, php-format
-msgid "version %s"
-msgstr "版本 %s"
-
-#, php-format
-msgid "(built on \"%s\")"
-msgstr "(在“%s”生成)"
-
-#, php-format
-msgid "(requires \"%s\")"
-msgstr "(需要“%s”)"
-
-msgid "Stylesheet"
-msgstr "样式表"
-
-msgid "Theme configuration"
-msgstr "主题配置"
-
-msgid "Blog themes"
-msgstr "博客主题"
-
-msgid "Blog appearance"
-msgstr "博客外观"
-
-msgid "Theme has been successfully changed."
-msgstr "成功改变主题。"
-
-msgid "Theme has been successfully installed."
-msgstr "成功安装主题。"
-
-msgid "Theme has been successfully upgraded"
-msgstr "成功升级主题。"
-
-msgid "Theme has been successfully deleted."
-msgstr "成功删除主题。"
-
-#, php-format
-msgid "You can find additional themes for your blog on %s."
-msgstr "您可以在 %s 找到用于您博客的额外主题。"
-
-msgid "To install or upgrade a theme you generally just need to upload it in \"Install or upgrade a theme\" section."
-msgstr "要安装或者升级一个主题，您一般仅需要在“安装或升级一个主题”中上传它。"
-
-msgid "Themes"
-msgstr "主题"
-
-#, php-format
-msgid "You are currently using \"%s\""
-msgstr "您正在使用“%s”"
-
-msgid "use selected theme"
-msgstr "使用选中的主题"
-
-msgid "delete selected theme"
-msgstr "删除选中的主题"
-
-msgid "Install or upgrade a theme"
-msgstr "安装或升级一个主题"
-
-msgid "You can install themes by uploading or downloading zip files."
-msgstr "您可以通过上传或下载 zip 文件安装主题。"
-
-msgid "Upload a zip file"
-msgstr "上传一个 zip 文件"
-
-msgid "Theme zip file:"
-msgstr "主题 zip 文件："
-
-msgid "Upload theme"
-msgstr "上传主题"
-
-msgid "Download a zip file"
-msgstr "下载一个 zip 文件"
-
-msgid "Theme zip file URL:"
-msgstr "主题 zip 文件的 URL："
-
-msgid "Download theme"
-msgstr "下载主题"
-
-msgid "To enable this function, please give write access to your themes directory."
-msgstr "要激活这个功能，请赋予您的主题目录写权限。"
-
-msgid "back"
-msgstr "返回"
-
-msgid "Last update"
-msgstr "最后更新"
-
-msgid "Blog name"
-msgstr "博客名称"
-
-msgid "Blog ID"
-msgstr "博客 ID"
-
-msgid "Descending"
-msgstr "降序"
-
-msgid "Ascending"
-msgstr "升序"
-
-msgid "List of blogs"
-msgstr "博客列表"
-
-msgid "Blog has been successfully deleted."
-msgstr "博客已被成功删除。"
-
-msgid "Create a new blog"
-msgstr "创建一个新博客"
-
-msgid "Filters"
-msgstr "过滤器"
-
-msgid "Order by:"
-msgstr "排序依据："
-
-msgid "Sort:"
-msgstr "排序："
-
-msgid "Search:"
-msgstr "搜索："
-
-msgid "Blogs per page"
-msgstr "每页的博客数目"
-
-#, fuzzy
-msgid "Apply filters"
-msgstr "添加文件"
-
-msgid "No blog"
-msgstr "没有博客"
-
-msgid "Page(s)"
-msgstr "页数"
-
-msgid "Entries"
-msgstr "文章"
-
-msgid "Status"
-msgstr "状态"
-
-#, php-format
-msgid "Edit blog %s"
-msgstr "编辑博客 %s"
-
-msgid "edit"
-msgstr "编辑"
-
-#, php-format
-msgid "Switch to blog %s"
-msgstr "切换到博客 %s"
-
-msgid "This category does not exist."
-msgstr "这个分类目录不存在。"
-
-msgid "Categories"
-msgstr "分类目录"
-
-msgid "The category has been successfully created."
-msgstr "成功创建分类目录。"
-
-msgid "The category has been successfully removed."
-msgstr "成功移除分类目录。"
-
-msgid "Categories have been successfully reordered."
-msgstr "成功重新排序分类目录。"
-
-msgid "The category has been successfully moved."
-msgstr "成功移动分类目录。"
-
-msgid "No category yet."
-msgstr "还没有分类目录。"
-
-msgid "Categories list"
-msgstr "分类目录列表"
-
-#, php-format
-msgid "%d entries"
-msgstr "%d 篇文章"
-
-#, php-format
-msgid "%d entry"
-msgstr "%d 篇文章"
-
-msgid "total:"
-msgstr "总共："
-
-msgid "URL:"
-msgstr "URL："
-
-msgid "Add a new category"
-msgstr "添加一个新的分类目录"
-
-msgid "Title:"
-msgstr "标题："
-
-msgid "Parent:"
-msgstr "上层目录："
-
-msgid "Top level"
-msgstr "顶层"
-
-msgid "Remove a category"
-msgstr "移除一个分类目录"
-
-msgid "Choose a category to remove:"
-msgstr "选择要移除的分类目录："
-
-msgid "ok"
-msgstr "确定"
-
-msgid "Reorder categories"
-msgstr "重新排序分类目录"
-
-msgid "This will relocate all categories on the top level"
-msgstr "这将会把所有分类目录定位到顶层"
-
-msgid "Reorder"
-msgstr "重新排序"
-
-msgid "New category"
-msgstr "新分类目录"
-
-msgid "Category has been successfully updated."
-msgstr "成功更新分类目录。"
-
-msgid "Category information"
-msgstr "分类目录信息"
-
-msgid "Warning: If you set the URL manually, it may conflict with another category."
-msgstr "警告：如果您手动设置 URL，它可能与其他分类目录冲突。"
-
-msgid "Description:"
-msgstr "描述："
-
-msgid "Move this category"
-msgstr "移动这个分类目录"
-
-msgid "Category parent"
-msgstr "分类目录的上层目录"
-
-msgid "Category sibling"
-msgstr "分类目录的同层"
-
-msgid "Move current category"
-msgstr "移动当前的分类目录"
-
-msgid "after"
-msgstr "后于"
-
-msgid "before"
-msgstr "前于"
-
-#, fuzzy
-msgid "position: "
-msgstr "MP3 处理"
-
-msgid "Entry does not exist."
-msgstr "文章不存在。"
-
-msgid "No comment"
-msgstr "没有评论"
-
-msgid "You can't edit this comment."
-msgstr "您不能编辑这个评论。"
-
-msgid "Edit comment"
-msgstr "编辑评论"
-
-msgid "Comment has been successfully updated."
-msgstr "成功更新评论。"
-
-#, php-format
-msgid "Your comment on my blog %s"
-msgstr "您在我的博客 %s 上的评论"
-
-#, php-format
-msgid ""
-"Hi!\n"
-"\n"
-"You wrote a comment on:\n"
-"%s\n"
-"\n"
-"\n"
-msgstr ""
-"您好，\n"
-"\n"
-"您写了一则评论在：\n"
-"%s\n"
-"\n"
-"\n"
-
-msgid "Send an e-mail"
-msgstr "发送一封邮件"
-
-#, php-format
-msgid "Back to \"%s\""
-msgstr "返回到“%s”"
-
-msgid "IP address:"
-msgstr "IP 地址："
-
-msgid "Date:"
-msgstr "日期："
-
-msgid "Author:"
-msgstr "作者："
-
-msgid "Web site:"
-msgstr "网站："
-
-msgid "Status:"
-msgstr "状态："
-
-msgid "Comment:"
-msgstr "评论："
-
-msgid "Delete"
-msgstr "删除"
-
-msgid "comment"
-msgstr "评论"
-
-msgid "trackback"
-msgstr "trackback"
-
-msgid "Date"
-msgstr "日期"
-
-msgid "Entry title"
-msgstr "文章标题"
-
-msgid "Author"
-msgstr "作者"
-
-msgid "publish"
-msgstr "发布"
-
-msgid "unpublish"
-msgstr "未发布"
-
-msgid "mark as pending"
-msgstr "标记为待审核"
-
-msgid "mark as junk"
-msgstr "标记为垃圾评论"
-
-msgid "delete"
-msgstr "删除"
-
-msgid "Type:"
-msgstr "类型："
-
-msgid "Comments per page"
-msgstr "每页的评论数"
-
-msgid "Comment author:"
-msgstr "评论作者："
-
-msgid "You have one spam comments."
-msgstr "您有一个垃圾评论。"
-
-msgid "Show it."
-msgstr "显示它。"
-
-#, php-format
-msgid "You have %s spam comments."
-msgstr "您有 %s 个垃圾评论。"
-
-msgid "Show them."
-msgstr "显示它们。"
-
-msgid "Selected comments action:"
-msgstr "选择的评论动作："
-
-#, fuzzy
-msgid "action: "
-msgstr "动作"
-
-msgid "Comments"
-msgstr "评论"
-
-#, php-format
-msgid "%d comment"
-msgstr "%d 个评论"
-
-#, php-format
-msgid "%d comments"
-msgstr "%d 个评论"
-
-msgid "New entry"
-msgstr "新文章"
-
-#, fuzzy
-msgid "My preferences"
-msgstr "用户偏好"
-
-#, fuzzy
-msgid "Documentation and support"
-msgstr "文档"
-
-msgid "Latest news"
-msgstr "最新新闻"
-
-msgid "Dashboard"
-msgstr "控制板"
-
-msgid "Make this blog my default blog"
-msgstr "使这个博客成为我的默认博客"
-
-msgid "This blog is offline"
-msgstr "这个博客不在线"
-
-msgid "This blog is removed"
-msgstr "这个博客已移除"
-
-msgid "DC_ADMIN_URL is not defined, you should edit your configuration file."
-msgstr "DC_ADMIN_URL 没有定义，您需要编辑您的配置文件。"
-
-msgid "Following plugins have been installed:"
-msgstr "下列插件已被安装："
-
-msgid "Following plugins have not been installed:"
-msgstr "下列插件还没有安装："
-
-#, php-format
-msgid "Dotclear %s is available!"
-msgstr "Dotclear %s 可用！"
-
-msgid "Upgrade now"
-msgstr "现在升级"
-
-msgid "Remind me later"
-msgstr "稍后提醒我"
-
-msgid "information about this version"
-msgstr ""
-
-#, fuzzy
-msgid "Some plugins are installed twice:"
-msgstr "下列插件已被安装："
-
-msgid "Quick entry"
-msgstr "快速书写文章"
-
-msgid "Content:"
-msgstr "内容："
-
-msgid "Category:"
-msgstr "分类目录："
-
-msgid "save and publish"
-msgstr "保存并发布"
-
-#, php-format
-msgid "PHP version is %s (5.0 or earlier needed)."
-msgstr "PHP 版本是 %s (需要 5.0 或更早)。"
-
-msgid "Multibyte string module (mbstring) is not available."
-msgstr "多字节字符串模块(mbstring)不可用。"
-
-msgid "Iconv module is not available."
-msgstr "Iconv 模块不可用。"
-
-msgid "Output control functions are not available."
-msgstr "输出控制功能不可用。"
-
-msgid "SimpleXML module is not available."
-msgstr "SimpleXML 模块不可用。"
-
-msgid "DOM XML module is not available."
-msgstr "DOM XML 模块不可用。"
-
-msgid "PCRE engine does not support UTF-8 strings."
-msgstr "PCRE 引擎不支持 UTF-8 字符串。"
-
-msgid "SPL module is not available."
-msgstr "SPL 模块不可用。"
-
-#, php-format
-msgid "MySQL version is %s (4.1 or earlier needed)."
-msgstr "MySQL 版本是 %s (需要 4.1 或者更早)。"
-
-msgid "MySQL InnoDB engine is not available."
-msgstr "MySQL InnoDB 引擎不可用。"
-
-#, php-format
-msgid "PostgreSQL version is %s (8.0 or earlier needed)."
-msgstr "PostgreSQL 版本是 %s (需要 8.0 或者更早)。"
-
-msgid "Please set a master key (DC_MASTER_KEY) in configuration file."
-msgstr "请在配置文件中设置一个管理者钥匙(DC_MASTER_KEY)。"
-
-msgid "Dotclear is already installed."
-msgstr "Dotclear 已被安装。"
-
-msgid "Dotclear cannot be installed."
-msgstr "Dotclear 无法被安装。"
-
-msgid "No user ID given"
-msgstr "没有指定用户 ID"
-
-msgid "User ID must contain at least 2 characters using letters, numbers or symbols."
-msgstr "用户 ID 必须包含至少 2 个字符，使用字母、数字或者符号。"
-
-msgid "Invalid email address"
-msgstr "无效的邮箱地址"
-
-msgid "No password given"
-msgstr "没有指定密码"
-
-msgid "Password must contain at least 6 characters."
-msgstr "密码必须包含不少于 6 个字符。"
-
-msgid "My first blog"
-msgstr "我的第一个博客"
-
-msgid "%A, %B %e %Y"
-msgstr ""
-
-msgid "Welcome to Dotclear!"
-msgstr "欢迎来到 Dotclear！"
-
-msgid "This is your first entry. When you're ready to blog, log in to edit or delete it."
-msgstr "这是您的第一篇文章。当您准备写博客，登入修改或者删除它。"
-
-msgid "Dotclear Team"
-msgstr "Dotclear 团队"
-
-msgid ""
-"<p>This is a comment.</p>\n"
-"<p>To delete it, log in and view your blog's comments. Then you might remove or edit it.</p>"
-msgstr ""
-"<p>这是一个评论。</p>\n"
-"<p>要删除它，登入并查看您的博客评论。然后您可以移除或者修改它。</p>"
-
-#, fuzzy
-msgid "Pages"
-msgstr "页数"
-
-#, fuzzy
-msgid "Blogroll"
-msgstr "博客"
-
-#, fuzzy
-msgid "Dotclear Install"
-msgstr "Dotclear 安装"
-
-msgid "show"
-msgstr "显示"
-
-msgid "Dotclear installation"
-msgstr "Dotclear 安装"
-
-#, php-format
-msgid "Cache directory %s is not writable."
-msgstr "缓存目录 %s 不可写。"
-
-msgid "Errors:"
-msgstr "错误："
-
-msgid "Configuration file has been successfully created."
-msgstr "配置文件已被成功创建。"
-
-msgid "User information"
-msgstr "用户信息"
-
-msgid "Please provide the following information needed to create the first user."
-msgstr "请提供以下需要的信息来创建第一个用户。"
-
-msgid "First Name:"
-msgstr "名："
-
-msgid "Last Name:"
-msgstr "姓："
-
-msgid "Username and password"
-msgstr "用户名和密码"
-
-msgid "save"
-msgstr "保存"
-
-msgid "All done!"
-msgstr "一切完成！"
-
-msgid "Dotclear has been successfully installed. Here is some useful information you should keep."
-msgstr "Dotclear 已经成功安装。这是一些您应当保留的有用信息。"
-
-msgid "Your account"
-msgstr "您的帐户"
-
-msgid "Your blog"
-msgstr "您的博客"
-
-msgid "Blog address:"
-msgstr "博客地址："
-
-msgid "Administration interface:"
-msgstr "管理界面："
-
-msgid "Manage your blog now"
-msgstr "现在开始管理您的博客"
-
-msgid "Installation can not be completed"
-msgstr ""
-
-msgid "For the said reasons, Dotclear can not be installed. Please refer to <a href=\"http://dotclear.org/documentation/2.0/admin/install\">the documentation</a> to learn how to correct the problem."
-msgstr ""
-
-#, php-format
-msgid "File %s does not exist."
-msgstr "%s 文件不存在。"
-
-#, php-format
-msgid "Cannot write %s file."
-msgstr "无法写入 %s 文件。"
-
-msgid "Dotclear installation wizard"
-msgstr "Dotclear 安装向导"
-
-msgid "Welcome"
-msgstr ""
-
-msgid "To complete your Dotclear installation and start writing on your blog, we just need to know how to access your database and who you are. Just fill this two steps wizard with this information and we will be done."
-msgstr ""
-
-#, fuzzy
-msgid "Attention:"
-msgstr "动作"
-
-msgid "this wizard may not function on every host. If it does not work for you, please refer to <a href=\"http://dotclear.org/documentation/2.0/admin/install\">the documentation</a> to learn how to create the <strong>config.php</strong> file manually."
-msgstr ""
-
-msgid "System information"
-msgstr "系统信息"
-
-msgid "Please provide the following information needed to create your configuration file."
-msgstr "请提供以下需要的信息来创建您的配置文件。"
-
-msgid "Database type:"
-msgstr "数据库类型："
-
-msgid "Database Host Name:"
-msgstr "数据库主机名："
-
-msgid "Database Name:"
-msgstr "数据库名称："
-
-msgid "Database User Name:"
-msgstr "数据库用户名："
-
-msgid "Database Password:"
-msgstr "数据库密码："
-
-msgid "Database Tables Prefix:"
-msgstr "数据库表前缀："
-
-msgid "No such installed language"
-msgstr "没有这样的已安装的语言包"
-
-msgid "You can't remove English language."
-msgstr "您不能移除英语语言包。"
-
-msgid "Permissions to delete language denied."
-msgstr "删除语言包的权限被拒绝。"
-
-msgid "Invalid language file URL."
-msgstr "无效的语言包文件 URL。"
-
-msgid "Languages management"
-msgstr "语言包管理"
-
-msgid "Language has been successfully deleted."
-msgstr "成功删除语言包。"
-
-msgid "Language has been successfully installed."
-msgstr "成功安装语言包 。"
-
-msgid "Language has been successfully upgraded"
-msgstr "成功升级语言包"
-
-msgid "Here you can install, upgrade or remove languages for your Dotclear installation."
-msgstr "这里您可以为您安装的 Dotclear 安装、升级或者移除语言包。"
-
-#, php-format
-msgid "You can change your user language in your <a href=\"%1$s\">preferences</a> or change your blog's main language in your <a href=\"%2$s\">blog settings</a>."
-msgstr "您可以在<a href=\"%1$s\">偏好</a>里更改您的用户语言或者在<a href=\"%2$s\">博客设置</a>中改变您的博客的主体语言。"
-
-msgid "Installed languages"
-msgstr "安装的语言包"
-
-msgid "No additional language is installed."
-msgstr "没有安装额外的语言包。"
-
-msgid "Language"
-msgstr "语言"
-
-msgid "Action"
-msgstr "动作"
-
-msgid "Install or upgrade languages"
-msgstr "安装或者升级语言包"
-
-#, php-format
-msgid "You can install or remove a language by adding or removing the relevant directory in your %s folder."
-msgstr "您可以通过在 %s 文件夹中添加或这移除相关目录来安装或者删除一个语言包。"
-
-msgid "Available languages"
-msgstr "可用的语言包"
-
-#, php-format
-msgid "You can download and install a additional language directly from Dotclear.net. Proposed languages are based on your version: %s."
-msgstr "您可以直接从 Dotclear.net 下载并安装一个额外的语言包。建议的语言包基于您的版本：%s。"
-
-msgid "Language:"
-msgstr "语言："
-
-msgid "Install language"
-msgstr "安装语言包"
-
-msgid "You can install languages by uploading zip files."
-msgstr "您可以通过上传 zip 文件安装语言包。"
-
-msgid "Language zip file:"
-msgstr "语言包 zip 文件："
-
-msgid "Upload language"
-msgstr "上传语言包"
-
-msgid "Invalid language zip file."
-msgstr "无效的语言包 zip 文件。"
-
-msgid "The zip file does not appear to be a valid Dotclear language pack."
-msgstr "这个 zip 文件似乎不是可用的 Dotclear 语言包。"
-
-msgid "An error occurred during language upgrade."
-msgstr "语言包升级时出现错误。"
-
-msgid "Error:"
-msgstr "错误："
-
-msgid "By names, in ascending order"
-msgstr "按名称，升序"
-
-msgid "By names, in descending order"
-msgstr "按名称，降序"
-
-msgid "By dates, in ascending order"
-msgstr "按日期，升序"
-
-msgid "By dates, in descending order"
-msgstr "按日期，降序"
-
-msgid "Media manager"
-msgstr "媒体管理中心"
-
-msgid "confirm removal"
-msgstr "确认清除"
-
-#, php-format
-msgid "Are you sure you want to remove %s?"
-msgstr "您确定要移除 %s 吗？"
-
-msgid "cancel"
-msgstr "取消"
-
-msgid "yes"
-msgstr "是"
-
-msgid "Directory has been successfully created."
-msgstr "成功创建目录。"
-
-msgid "Files have been successfully uploaded."
-msgstr "成功上传文件。"
-
-msgid "File has been successfully removed."
-msgstr "成功移除文件。"
-
-msgid "Directory has been successfully removed."
-msgstr "成功移除目录。"
-
-msgid "Directory has been successfully rebuilt."
-msgstr "成功重建目录。"
-
-msgid "Zip file has been successfully extracted."
-msgstr "成功解压缩 zip 文件。"
-
-#, php-format
-msgid "Choose a file to attach to entry %s by clicking on %s."
-msgstr "选择一个文件附加到文章 %s，通过点击 %s。"
-
-msgid "Attach this file to entry"
-msgstr "附加这个文件到文章"
-
-#, php-format
-msgid "Choose a file to insert into entry by clicking on %s."
-msgstr "通过点击 %s 将选择的文件插入到文章。"
-
-msgid "No file."
-msgstr "没有文件。"
-
-msgid "Sort files:"
-msgstr "排序文件："
-
-msgid "Add files"
-msgstr "添加文件"
-
-msgid "Please take care to publish media that you own and that are not protected by copyright."
-msgstr "请小心发布您拥有的媒体文件，这不受到版权的保护。"
-
-msgid "Choose a file:"
-msgstr "选择一个文件："
-
-#, php-format
-msgid "Maximum size %s"
-msgstr "最大大小 %s"
-
-msgid "Private"
-msgstr "私有的"
-
-msgid "send"
-msgstr "发送"
-
-msgid "New directory"
-msgstr "新目录"
-
-msgid "Directory Name:"
-msgstr "目录名称："
-
-msgid "Download this directory as a zip file"
-msgstr "以 zip 文件下载这个目录"
-
-msgid "open"
-msgstr "打开"
-
-msgid "Insert this file into entry"
-msgstr "插入这个文件到文章中"
-
-msgid "Not a valid file"
-msgstr "不是一个有效的文件"
-
-msgid "File has been successfully updated."
-msgstr "成功更新文件。"
-
-msgid "Thumbnails have been successfully updated."
-msgstr "成功更新缩略图。"
-
-msgid "Insert media item"
-msgstr "插入媒体条目"
-
-msgid "Image size:"
-msgstr "图片大小："
-
-msgid "original"
-msgstr "原始"
-
-msgid "Image alignment"
-msgstr "图片对齐"
-
-msgid "None"
-msgstr "无"
-
-msgid "Left"
-msgstr "左"
-
-msgid "Right"
-msgstr "右"
-
-msgid "Center"
-msgstr "中心"
-
-msgid "Image insertion"
-msgstr "图片插入"
-
-msgid "As a single image"
-msgstr "作为一个单独的图片"
-
-msgid "As a link to original image"
-msgstr "作为一个到原始图片的链接"
-
-msgid "MP3 disposition"
-msgstr "MP3 处理"
-
-msgid "Please note that you cannot insert mp3 files with visual editor."
-msgstr "请注意您无法通过可视编辑器插入 mp3 文件。"
-
-msgid "Please note that you cannot insert video files with visual editor."
-msgstr "请注意您无法通过可视编辑器插入视频文件。"
-
-msgid "Video size"
-msgstr "视频大小"
-
-msgid "Width:"
-msgstr "宽度："
-
-msgid "Height:"
-msgstr "高度："
-
-msgid "Video disposition"
-msgstr "视频处理"
-
-msgid "Media item will be inserted as a link."
-msgstr "媒体项目将会作为链接插入。"
-
-msgid "Cancel"
-msgstr "取消"
-
-msgid "Insert"
-msgstr "插入"
-
-msgid "Media details"
-msgstr "媒体详情"
-
-msgid "Available sizes:"
-msgstr "可用的大小："
-
-msgid "File owner:"
-msgstr "文件拥有者："
-
-msgid "File type:"
-msgstr "文件类型："
-
-msgid "File size:"
-msgstr "文件大小："
-
-msgid "File URL:"
-msgstr "文件 URL："
-
-msgid "Show entries containing this media"
-msgstr "显示包含这个媒体的文章"
-
-msgid "Entries containing this media"
-msgstr "包含这个媒体的文章"
-
-msgid "No entry seems contain this media."
-msgstr "似乎没有文章包含这个媒体。"
-
-msgid "Image details"
-msgstr "图片详情"
-
-msgid "No detail"
-msgstr "没有详情"
-
-msgid "Update thumbnails"
-msgstr "更新缩略图"
-
-msgid "This will create or update thumbnails for this image."
-msgstr "这将会创建或者更新此图片的缩略图。"
-
-msgid "update thumbnails"
-msgstr "更新缩略图"
-
-msgid "Extract in a new directory"
-msgstr "解压缩到一个新目录"
-
-msgid "Extract in current directory"
-msgstr "解压缩到当前目录"
-
-msgid "Extract archive"
-msgstr "解压缩"
-
-#, fuzzy
-msgid "This will extract archive in a new directory that should not exist yet."
-msgstr "这将会把压缩包解压到一个不存在的新目录。"
-
-msgid "This will extract archive in current directory and will overwrite existing files or directory."
-msgstr "这将会把压缩包解压缩到当前目录并会覆盖已存在的文件或者目录。"
-
-msgid "Extract mode:"
-msgstr "解压缩模式："
-
-msgid "extract"
-msgstr "解压缩"
-
-msgid "Change media properties"
-msgstr "更改媒体属性"
-
-msgid "File name:"
-msgstr "文件名："
-
-msgid "File title:"
-msgstr "文件标题："
-
-msgid "File date:"
-msgstr "文件日期："
-
-msgid "New directory:"
-msgstr "新目录："
-
-msgid "Change file"
-msgstr "改变文件"
-
-msgid "No blog or user given."
-msgstr "没有指定博客或用户。"
-
-msgid "permissions"
-msgstr "权限"
-
-msgid "Permissions"
-msgstr "权限"
-
-msgid "The permissions have been successfully updated."
-msgstr "成功更新权限。"
-
-#, php-format
-msgid "You are about to change permissions on the following blogs for users %s."
-msgstr "您将为用户 %s 改变在下列博客的权限。"
-
-msgid "choose a blog"
-msgstr "选择一个博客"
-
-msgid "Choose a blog"
-msgstr "选择一个博客"
-
-msgid "Entries per page"
-msgstr "每页文章数"
-
-#, php-format
-msgid "Choose one or more blogs to which you want to give permissions to users %s."
-msgstr "选择一个或者多个您想要赋予用户 %s 权限的博客。"
-
-msgid "set permissions"
-msgstr "设置权限"
-
-#, fuzzy
-msgid "select"
-msgstr "精选的"
-
-msgid "No content found on this plugin."
-msgstr "这个插件中没有找到内容。"
-
-msgid "Plugin not found"
-msgstr "未找到插件"
-
-msgid "The plugin you reached does not exist or does not have an admin page."
-msgstr "您到达的插件不存在或者没有管理页面。"
-
-msgid "No such plugin."
-msgstr "没有这样的插件。"
-
-msgid "You don't have permissions to delete this plugin."
-msgstr "您没有删除这个插件的权限。"
-
-msgid "You don't have permissions to deactivate this plugin."
-msgstr "您没有禁用这个插件的权限。"
-
-msgid "Plugins management"
-msgstr "插件管理"
-
-msgid "Plugin has been successfully deleted."
-msgstr "成功删除插件。"
-
-msgid "Plugin has been successfully installed."
-msgstr "成功安装插件。"
-
-msgid "Plugin has been successfully upgraded"
-msgstr "成功升级插件"
-
-msgid "Plugins add new functionalities to Dotclear. Here you can activate or deactivate installed plugins."
-msgstr "插件向 Dotclear 添加新功能。这里您可以激活或者禁用安装的插件。"
-
-#, php-format
-msgid "You can find additional plugins for your blog on %s."
-msgstr "您可以从 %s 找到用于您博客的额外插件。"
-
-msgid "To install or upgrade a plugin you generally just need to upload it in \"Install or upgrade a plugin\" section."
-msgstr "要安装或升级一个插件，您一般仅需要在“安装或升级一个插件”中上传它。"
-
-msgid "To install or upgrade a plugin you just need to extract it in your plugins directory."
-msgstr "要安装或升级一个插件，您仅需要将它解压缩到您的插件目录。"
-
-msgid "Plugins"
-msgstr "插件"
-
-msgid "Activated plugins"
-msgstr "激活的插件"
-
-msgid "Plugin"
-msgstr "插件"
-
-msgid "Version"
-msgstr "版本"
-
-msgid "Details"
-msgstr "详情"
-
-msgid "Deactivate"
-msgstr "禁用"
-
-msgid "Deactivated plugins"
-msgstr "禁用的插件"
-
-msgid "Activate"
-msgstr "激活"
-
-msgid "Install or upgrade a plugin"
-msgstr "安装或升级一个插件"
-
-msgid "You can install plugins by uploading or downloading zip files."
-msgstr "您可以通过上传或者下载 zip 文件安装插件。"
-
-msgid "Plugin zip file:"
-msgstr "插件 zip 文件："
-
-msgid "Upload plugin"
-msgstr "上传插件"
-
-msgid "Plugin zip file URL:"
-msgstr "插件 zip 文件的 URL："
-
-msgid "Download plugin"
-msgstr "下载插件"
-
-msgid "To enable this function, please give write access to your plugins directory."
-msgstr "要激活这个功能，请赋予您的插件目录写权限。"
-
-msgid "Add a link"
-msgstr "添加一个链接"
-
-msgid "Available"
-msgstr "可用"
-
-msgid "Most used"
-msgstr "最多使用"
-
-msgid "Link URL:"
-msgstr "链接 URL："
-
-#, fuzzy
-msgid "Link title:"
-msgstr "文件标题："
-
-msgid "Link language:"
-msgstr "链接语言："
-
-msgid "insert"
-msgstr "插入"
-
-msgid "Add a link to an entry"
-msgstr "向文章中添加一个链接"
-
-msgid "Search entry:"
-msgstr "搜索文章："
-
-msgid "This entry does not exist."
-msgstr "这篇文章不存在。"
-
-msgid "Edit entry"
-msgstr "编辑文章"
-
-msgid "next entry"
-msgstr "下一篇文章"
-
-msgid "previous entry"
-msgstr "前一篇文章"
-
-msgid "Entry has been successfully updated."
-msgstr "成功更新文章。"
-
-msgid "Entry has been successfully created."
-msgstr "成功创建文章。"
-
-msgid "File has been successfully attached."
-msgstr "成功附加文件。"
-
-msgid "Attachment has been successfully removed."
-msgstr "成功移除附件。"
-
-msgid "Comment has been successfully created."
-msgstr "成功创建评论。"
-
-msgid "Don't forget to validate your XHTML conversion by saving your post."
-msgstr "请不要忘了通过保存您的文章检验您的 XHTML 转换。"
-
-msgid "View entry"
-msgstr "查看文章"
-
-msgid "Preview entry"
-msgstr "预览文章"
-
-msgid "Entry status:"
-msgstr "文章状态："
-
-msgid "Published on:"
-msgstr "发布于："
-
-msgid "Text formating:"
-msgstr "文本格式："
-
-msgid "Convert to XHTML"
-msgstr "转换到 XHTML"
-
-msgid "Selected entry"
-msgstr "精选文章"
-
-msgid "Entry lang:"
-msgstr "文章语言："
-
-msgid "Entry password:"
-msgstr "文章密码："
-
-msgid "Basename:"
-msgstr "具体的 URL："
-
-msgid "Warning: If you set the URL manually, it may conflict with another entry."
-msgstr "警告：如果您手动设置 URL，它可能与其他文章冲突。"
-
-msgid "Attachments"
-msgstr "附件"
-
-msgid "remove"
-msgstr "移除"
-
-msgid "No attachment."
-msgstr "没有附件。"
-
-msgid "Add files to this entry"
-msgstr "向这篇文章添加文件"
-
-msgid "Excerpt:"
-msgstr "摘录："
-
-msgid "Notes:"
-msgstr "注释："
-
-msgid "Ping blogs"
-msgstr "Ping 博客"
-
-msgid "Trackbacks"
-msgstr "Trackbacks"
-
-msgid "No trackback"
-msgstr "没有 trackback"
-
-msgid "Add a comment"
-msgstr "添加一个评论"
-
-msgid "Name:"
-msgstr "名字："
-
-msgid "IP address"
-msgstr "IP 地址"
-
-msgid "published"
-msgstr "已发布"
-
-msgid "unpublished"
-msgstr "未发布"
-
-msgid "pending"
-msgstr "待审核"
-
-msgid "junk"
-msgstr "垃圾评论"
-
-#, fuzzy
-msgid "select this comment"
-msgstr "编辑这个评论"
-
-#, fuzzy
-msgid "select this trackback"
-msgstr "接受 trackbacks"
-
-msgid "Edit this comment"
-msgstr "编辑这个评论"
-
-msgid "This attachment does not exist"
-msgstr "这个附件不存在"
-
-msgid "Remove attachment"
-msgstr "移除附件"
-
-msgid "Attachment"
-msgstr "附件"
-
-msgid "Are you sure you want to remove this attachment?"
-msgstr "您确定要移除这个附件吗？"
-
-msgid "selected"
-msgstr "精选的"
-
-msgid "not selected"
-msgstr "非精选的"
-
-msgid "Category"
-msgstr "分类目录"
-
-msgid "Selected"
-msgstr "精选的"
-
-msgid "Publish"
-msgstr "发布"
-
-msgid "Unpublish"
-msgstr "未发布"
-
-msgid "Schedule"
-msgstr "计划"
-
-msgid "Mark as pending"
-msgstr "标记为待审核"
-
-msgid "Mark"
-msgstr "标记"
-
-msgid "Mark as selected"
-msgstr "标记为精选的"
-
-msgid "Mark as unselected"
-msgstr "标记为非精选的"
-
-msgid "Change"
-msgstr "改变"
-
-msgid "Change category"
-msgstr "改变分类目录"
-
-msgid "Change author"
-msgstr "改变作者"
-
-msgid "Selected:"
-msgstr "精选的："
-
-msgid "Month:"
-msgstr "月份："
-
-msgid "Lang:"
-msgstr "语言："
-
-msgid "Selected entries action:"
-msgstr "已选择的文章的动作："
-
-msgid "This user does not exist"
-msgstr "用户不存在"
-
-msgid "Change category for entries"
-msgstr "改变文章的分类目录"
-
-msgid "Change author for entries"
-msgstr "改变文章的作者"
-
-msgid "Author ID:"
-msgstr "作者 ID："
-
-msgid "If you want to change your email or password you must provide your current password."
-msgstr "如果您想要改变您的邮箱或者密码，您必须提供当前的密码。"
-
-msgid "Personal information has been successfully updated."
-msgstr "成功更新个人信息。"
-
-#, fuzzy
-msgid "Personal options has been successfully updated."
-msgstr "成功更新个人信息。"
-
-#, fuzzy
-msgid "Favorites have been successfully added."
-msgstr "成功上传文件。"
-
-#, fuzzy
-msgid "Favorites have been successfully updated."
-msgstr "成功更新文件。"
-
-#, fuzzy
-msgid "Favorites have been successfully removed."
-msgstr "成功移除文件。"
-
-#, fuzzy
-msgid "Default favorites have been successfully updated."
-msgstr "成功更新缩略图。"
-
-msgid "My profile"
-msgstr ""
-
-msgid "Display name:"
-msgstr "显示的名字："
-
-msgid "User language:"
-msgstr "用户语言："
-
-msgid "User timezone:"
-msgstr "用户时区："
-
-#, fuzzy
-msgid "My options"
-msgstr "搜索选项"
-
-msgid "Preferred format:"
-msgstr "喜好的格式："
-
-msgid "Default entry status:"
-msgstr "默认的文章状态："
-
-msgid "Entry edit field height:"
-msgstr "文章编辑区域高度："
-
-msgid "Enable WYSIWYG mode"
-msgstr "激活所见即所得模式"
-
-msgid "Accessibility options"
-msgstr ""
-
-msgid "Disable javascript powered drag and drop for ordering items"
-msgstr ""
-
-msgid "Numeric fields will allow to type the elements' ordering number."
-msgstr ""
-
-#, fuzzy
-msgid "Dashboard modules"
-msgstr "控制板"
-
-#, fuzzy
-msgid "Display documentation links"
-msgstr "文档"
-
-#, fuzzy
-msgid "Display Dotclear news"
-msgstr "更新 Dotclear"
-
-msgid "Display quick entry form"
-msgstr ""
-
-msgid "My favorites"
-msgstr ""
-
-#, php-format
-msgid "position of %s"
-msgstr ""
-
-#, fuzzy
-msgid "Save order"
-msgstr "重新排序"
-
-#, fuzzy
-msgid "Delete selected favorites"
-msgstr "删除选择的文件"
-
-#, fuzzy
-msgid "Are you sure you want to remove selected favorites?"
-msgstr "您确定您要重新排列所有分类目录吗？"
-
-msgid "If you are a super administrator, you may define this set of favorites to be used by default on all blogs of this installation:"
-msgstr ""
-
-msgid "Define as default favorites"
-msgstr ""
-
-msgid "Currently no personal favorites."
-msgstr ""
-
-msgid "Default favorites"
-msgstr ""
-
-msgid "Those favorites are displayed when My Favorites list is empty."
-msgstr ""
-
-#, fuzzy
-msgid "Available favorites"
-msgstr "可用的大小："
-
-msgid "Add to my favorites"
-msgstr ""
-
-msgid "Search"
-msgstr "搜索"
-
-msgid "Search options"
-msgstr "搜索选项"
-
-msgid "Query:"
-msgstr "查询："
-
-msgid "search entries"
-msgstr "搜索文章"
-
-msgid "search comments"
-msgstr "搜索评论"
-
-msgid "schedule"
-msgstr "计划"
-
-msgid "change category"
-msgstr "改变分类目录"
-
-msgid "change author"
-msgstr "改变作者"
-
-#, php-format
-msgid "%d entries found"
-msgstr "找到 %d 篇文章"
-
-#, php-format
-msgid "%d entry found"
-msgstr "找到 %d 篇文章"
-
-#, php-format
-msgid "%d comment found"
-msgstr "找到 %d 个评论"
-
-#, php-format
-msgid "%d comments found"
-msgstr "找到 %d 个评论"
-
-msgid "This entry does not exist or is not published"
-msgstr "这篇文章不存在或者没有发布"
-
-msgid "All pings sent."
-msgstr "所有的 ping 已发送。"
-
-msgid "Auto discover ping URLs"
-msgstr "自动发现 ping URL。"
-
-msgid "URLs to ping:"
-msgstr "ping 的 URL："
-
-msgid "Send excerpt:"
-msgstr "发送摘录："
-
-msgid "Previously sent pings"
-msgstr "之前发送的 ping"
-
-msgid "Dotclear update"
-msgstr "Dotclear 更新"
-
-#, php-format
-msgid "Unable to delete file %s"
-msgstr "无法删除文件 %s"
-
-#, php-format
-msgid "Downloaded Dotclear archive seems to be corrupted. Try <a %s>download it</a> again."
-msgstr "下载的 Dotclear 压缩包似乎损坏了。尝试再次<a %s>下载它</a>。"
-
-msgid "The following files of your Dotclear installation have been modified so we won't try to update your installation. Please try to <a href=\"http://dotclear.org/download\">update manually</a>."
-msgstr "您的 Dotclear 中下列文件已被修改，所以我们将不会尝试更新您的安装。请尝试<a href=\"http://dotclear.org/download\">手动更新</a>。"
-
-#, php-format
-msgid "The following files of your Dotclear installation are not readable. Please fix this or try to make a backup file named %s manually."
-msgstr "您的 Dotclear 中下列文件不可读取。请修正或者尝试手动创建一个名为 %s 的备份文件。"
-
-msgid "The following files of your Dotclear installation cannot be written. Please fix this or try to <a href=\"http://dotclear.org/download\">update manually</a>."
-msgstr "您的 Dotclear 中下列文件不可写。请修正或者尝试<a href=\"http://dotclear.org/download\">手动更新</a>。"
-
-msgid "No newer Dotclear version available."
-msgstr "没有可用的 Dotclear 新版本。"
-
-#, php-format
-msgid "Dotclear %s is available."
-msgstr "Dotclear %s 可用。"
-
-msgid "To upgrade your Dotclear installation simply click on the following button. A backup file of your current installation will be created in your root directory."
-msgstr "要升级您的 Dotclear，只需点击下列按钮。一个您现有安装的备份文件将在您的根目录生成。"
-
-msgid "Update Dotclear"
-msgstr "更新 Dotclear"
-
-msgid "Update backup files"
-msgstr "更新备份文件"
-
-msgid "The following files are backups of previously updates. You can revert your previous installation or delete theses files."
-msgstr "下列文件是您之前更新的备份。您可以恢复之前的安装或者删除这些文件。"
-
-msgid "Please note that reverting your Dotclear version may have some unwanted side-effects. Consider reverting only if you experience strong issues with this new version."
-msgstr "请注意恢复您的 Dotclear 版本可能产生一些不希望的副作用。仅在您使用新版本遇到重大问题的时候考虑恢复。"
-
-#, php-format
-msgid "You should not revert to version prior to last one (%s)."
-msgstr "您不能恢复到先于最后一个 (%s) 的版本。"
-
-msgid "Delete selected file"
-msgstr "删除选择的文件"
-
-msgid "Revert to selected file"
-msgstr "恢复到选择的文件"
-
-msgid "Congratulations, you're one click away from the end of the update."
-msgstr "恭喜，您距更新完成仅有一个点击的距离。"
-
-msgid "Finish the update."
-msgstr "完成更新。"
-
-msgid "new user"
-msgstr "新用户"
-
-#, php-format
-msgid "User \"%s\" already exists."
-msgstr "用户“%s”已经存在。"
-
-msgid "User has been successfully updated."
-msgstr "成功更新用户。"
-
-msgid "User has been successfully created."
-msgstr "成功创建用户。"
-
-msgid "Warning:"
-msgstr "警告："
-
-msgid "If you change your username, you will have to log in again."
-msgstr "如果您改变用户名，您必须重新登录。"
-
-#, fuzzy
-msgid "Password change required to connect"
-msgstr "连接需要改动密码"
-
-msgid "No permissions."
-msgstr "没有权限。"
-
-msgid "Add new permissions"
-msgstr "添加新权限"
-
-msgid "Username"
-msgstr "用户名"
-
-msgid "Last Name"
-msgstr "姓"
-
-msgid "First Name"
-msgstr "名"
-
-msgid "Display name"
-msgstr "显示的名字"
-
-msgid "Number of entries"
-msgstr "文章数目"
-
-msgid "Set permissions"
-msgstr "设置权限"
-
-msgid "users"
-msgstr "用户"
-
-msgid "User has been successfully removed."
-msgstr "成功移除用户。"
-
-msgid "Create a new user"
-msgstr "创建一个新用户"
-
-msgid "Users per page"
-msgstr "每页用户数目"
-
-msgid "Selected users action:"
-msgstr "选择的用户的动作："
-
-msgid "Blog:"
-msgstr "博客："
-
-msgid "Change blog"
-msgstr "改变博客"
-
-msgid "Blogs:"
-msgstr "博客："
-
-msgid "Go to site"
-msgstr ""
-
-msgid "new window"
-msgstr ""
-
-msgid "User:"
-msgstr "用户："
-
-msgid "Logout"
-msgstr "退出"
-
-msgid "Safe mode"
-msgstr ""
-
-msgid "You are in safe mode. All plugins have been temporarily disabled. Remind to log out then log in again normally to get back all functionalities"
-msgstr ""
-
-#, php-format
-msgid "Thank you for using %s."
-msgstr "感谢您使用 %s。"
-
-msgid "Help"
-msgstr "帮助"
-
-msgid "uncover"
-msgstr "显示"
-
-msgid "hide"
-msgstr "隐藏"
-
-msgid "help"
-msgstr "帮助"
-
-#, fuzzy
-msgid "no selection"
-msgstr "取消全部选择"
-
-msgid "select all"
-msgstr "选择全部"
-
-msgid "invert selection"
-msgstr "反选"
-
-msgid "view entry"
-msgstr "查看文章"
-
-#, fuzzy, php-format
-msgid "Are you sure you want to delete selected entries (%s)?"
-msgstr "您确定您要删除选定的文章吗？"
-
-msgid "Are you sure you want to delete this entry?"
-msgstr "您确定您要删除这篇文章吗？"
-
-#, fuzzy, php-format
-msgid "Are you sure you want to delete selected comments (%s)?"
-msgstr "您确定您要删除选定的评论吗？"
-
-msgid "Are you sure you want to delete this comment?"
-msgstr "您确定您要删除这个评论吗？"
-
-#, fuzzy
-msgid "Users with posts cannot be deleted."
-msgstr "有文章的用户无法被删除。"
-
-#, fuzzy, php-format
-msgid "Are you sure you want to delete selected users (%s)?"
-msgstr "您确定您要删除选定的用户吗？"
-
-#, php-format
-msgid "Are you sure you want to delete category \"%s\"?"
-msgstr "您确定您要删除分类目录“%s”吗？"
-
-msgid "Are you sure you want to reorder all categories?"
-msgstr "您确定您要重新排列所有分类目录吗？"
-
-#, php-format
-msgid "Are you sure you want to remove media \"%s\"?"
-msgstr "您确定您要移除媒体“%s”吗？"
-
-msgid "Are you sure you want to extract archive in current directory?"
-msgstr "您确定您要把压缩包解压到当前目录吗？"
-
-#, php-format
-msgid "Are you sure you want to remove attachment \"%s\"?"
-msgstr "您确定您要移除附件“%s”吗？"
-
-#, php-format
-msgid "Are you sure you want to delete \"%s\" language?"
-msgstr "您确定您要删除“%s”语言包吗？"
-
-#, php-format
-msgid "Are you sure you want to delete \"%s\" plugin?"
-msgstr "您确定您要删除“%s”插件吗？"
-
-msgid "Use this theme"
-msgstr "使用这个主题"
-
-msgid "Remove this theme"
-msgstr "移除这个主题"
-
-#, php-format
-msgid "Are you sure you want to delete \"%s\" theme?"
-msgstr "您确定您要删除“%s”主题吗？"
-
-msgid "Zip file content"
-msgstr "zip 文件内容"
-
-msgid "XHTML markup validator"
-msgstr "XHTML 标记检查器"
-
-msgid "XHTML content is valid."
-msgstr "XHTML 内容有效。"
-
-msgid "There are XHTML markup errors."
-msgstr "这是 XHTML 标记的错误。"
-
-msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
-msgstr ""
-
-msgid "You have unsaved changes."
-msgstr "您有未保存的改动。"
-
-msgid "close"
-msgstr "关闭"
-
-msgid "now"
-msgstr "现在"
-
-msgid "visual"
-msgstr "可视"
-
-msgid "source"
-msgstr "源码"
-
-msgid "You can use the following shortcuts to format your text."
-msgstr "您可以使用下列缩写来格式化您的文本。"
-
-msgid "-- none --"
-msgstr "-- 无 --"
-
-msgid "-- block format --"
-msgstr "-- 区块格式 --"
-
-msgid "Paragraph"
-msgstr "段落"
-
-msgid "Level 1 header"
-msgstr "Level 1 标题"
-
-msgid "Level 2 header"
-msgstr "Level 2 标题"
-
-msgid "Level 3 header"
-msgstr "Level 3 标题"
-
-msgid "Level 4 header"
-msgstr "Level 4 标题"
-
-msgid "Level 5 header"
-msgstr "Level 5 标题"
-
-msgid "Level 6 header"
-msgstr "Level 6 标题"
-
-msgid "Strong emphasis"
-msgstr "着重强调"
-
-msgid "Emphasis"
-msgstr "强调"
-
-msgid "Inserted"
-msgstr "下划线"
-
-msgid "Deleted"
-msgstr "删除线"
-
-msgid "Inline quote"
-msgstr "行内引用"
-
-msgid "Code"
-msgstr "代码"
-
-msgid "Line break"
-msgstr "断行"
-
-msgid "Blockquote"
-msgstr "块引用"
-
-msgid "Preformated text"
-msgstr "预格式化文本"
-
-msgid "Unordered list"
-msgstr "无序列表"
-
-msgid "Ordered list"
-msgstr "有序列表"
-
-msgid "Link"
-msgstr "链接"
-
-msgid "URL?"
-msgstr "URL?"
-
-msgid "Language?"
-msgstr "语言?"
-
-msgid "External image"
-msgstr "外部图片"
-
-msgid "Media chooser"
-msgstr "媒体选择"
-
-msgid "Link to an entry"
-msgstr "链接到一篇文章"
-
-msgid "Activate enhanced uploader"
-msgstr "激活增强的上传工具"
-
-msgid "Disable enhanced uploader"
-msgstr "禁用增强的上传工具"
-
-msgid "File successfully uploaded."
-msgstr "成功上传文件。"
-
-msgid "Maximum file size allowed:"
-msgstr "允许的文件最大大小："
-
-msgid "Limit exceeded."
-msgstr "超出限制。"
-
-msgid "File size exceeds allowed limit."
-msgstr "文件大小超出允许的限制。"
-
-msgid "Canceled."
-msgstr "已取消。"
-
-msgid "HTTP Error:"
-msgstr "HTTP 错误："
-
-msgid "Choose file"
-msgstr "选择文件"
-
-msgid "Choose files"
-msgstr "选择文件"
-
-msgid "Clean"
-msgstr "清除"
-
-msgid "Upload"
-msgstr "上传"
-
-msgid "No file in queue."
-msgstr "队列中没有文件。"
-
-msgid "1 file in queue."
-msgstr "队列中有 1 个文件。"
-
-#, php-format
-msgid "%d files in queue."
-msgstr "队列中有 %d 个文件。"
-
-msgid "Queue error:"
-msgstr "队列错误："
-
-msgid "&#171;prev."
-msgstr "&#171;前一个。"
-
-msgid "next&#187;"
-msgstr "后一个&#187;"
-
-msgid "No entry"
-msgstr "没有文章"
-
-msgid "scheduled"
-msgstr "计划的"
-
-msgid "protected"
-msgstr "保护的"
-
-#, php-format
-msgid "%d attachment"
-msgstr "%d 个附件"
-
-#, php-format
-msgid "%d attachments"
-msgstr "%d 个附件"
-
-msgid "Type"
-msgstr "类型"
-
-msgid "No user"
-msgstr "没有用户"
-
-msgid "admin"
-msgstr ""
-
-#, fuzzy
-msgid "superadmin"
-msgstr "超级管理员"
-
-#, fuzzy
-msgid "Database error"
-msgstr "数据库类型："
-
-msgid "There seems to be no Session table in your database. Is Dotclear completly installed?"
-msgstr ""
-
-msgid "Languages"
-msgstr "语言"
-
-msgid "System"
-msgstr "系统"
-
-msgid "Blog"
-msgstr "博客"
-
-msgid "Updates"
-msgstr "更新"
-
-msgid "administrator"
-msgstr "管理员"
-
-msgid "manage their own entries and comments"
-msgstr "管理他们自己的文章和评论"
-
-msgid "publish entries and comments"
-msgstr "发布文章和评论"
-
-msgid "delete entries and comments"
-msgstr "删除文章和评论"
-
-msgid "manage all entries and comments"
-msgstr "管理所有文章和评论"
-
-msgid "manage categories"
-msgstr "管理分类目录"
-
-msgid "manage their own media items"
-msgstr "管理他们自己的媒体条目"
-
-msgid "manage all media items"
-msgstr "管理全部媒体条目"
-
-msgid "That user does not exist in the database."
-msgstr "用户在数据库中不存在。"
-
-#, fuzzy
-msgid "That key does not exist in the database."
-msgstr "key 在数据库中不存在。"
-
-msgid "You are not allowed to add categories"
-msgstr "您不被允许添加分类目录"
-
-msgid "You are not allowed to update categories"
-msgstr "您不被允许更新分类目录"
-
-msgid "You are not allowed to delete categories"
-msgstr "您不被允许删除分类目录"
-
-msgid "This category is not empty."
-msgstr "这个分类目录非空。"
-
-msgid "Category URL must be unique."
-msgstr "分类目录的 URL 必须无重复。"
-
-msgid "You must provide a category title"
-msgstr "您必须提供一个分类目录标题"
-
-msgid "You must provide a category URL"
-msgstr "您必须提供一个分类目录 URL"
-
-msgid "You are not allowed to create an entry"
-msgstr "您不被允许创建一篇文章"
-
-msgid "You are not allowed to update entries"
-msgstr "您不被允许更新文章"
-
-msgid "No such entry ID"
-msgstr "没有这样的文章 ID"
-
-msgid "You are not allowed to edit this entry"
-msgstr "您不被允许编辑这篇文章"
-
-msgid "You are not allowed to change this entry status"
-msgstr "您不被允许更改这篇文章的状态"
-
-msgid "You are not allowed to change this entry category"
-msgstr "您不被允许更改这篇文章的分类目录"
-
-msgid "You are not allowed to mark this entry as selected"
-msgstr "您不被允许标记这篇文章为精选的"
-
-msgid "You are not allowed to delete entries"
-msgstr "您不被允许删除文章"
-
-msgid "You are not allowed to delete this entry"
-msgstr "您不被允许删除这篇文章"
-
-msgid "No entry title"
-msgstr "没有文章标题"
-
-msgid "No entry content"
-msgstr "没有文章内容"
-
-msgid "Empty entry URL"
-msgstr "空的文章 URL"
-
-msgid "You are not allowed to update comments"
-msgstr "您不被允许更新评论"
-
-msgid "No such comment ID"
-msgstr "没有这样的评论 ID"
-
-msgid "You are not allowed to update this comment"
-msgstr "您不被允许更新这个评论"
-
-msgid "You are not allowed to change this comment's status"
-msgstr "您不被允许更改这个评论的状态"
-
-msgid "You are not allowed to delete comments"
-msgstr "您不被允许删除评论"
-
-msgid "You are not allowed to delete this comment"
-msgstr "您不被允许删除这个评论"
-
-msgid "You must provide a comment"
-msgstr "您必须提供一个评论"
-
-msgid "You must provide an author name"
-msgstr "您必需提供一个作者姓名"
-
-msgid "Email address is not valid."
-msgstr "邮箱地址无效。"
-
-msgid "online"
-msgstr "在线"
-
-msgid "offline"
-msgstr "不在线"
-
-msgid "removed"
-msgstr "已移除"
-
-msgid "You are not an administrator"
-msgstr "您不是管理员"
-
-msgid "Invalid user language code"
-msgstr "无效的用户语言代码"
-
-msgid "Blog ID must contain at least 2 characters using letters, numbers or symbols."
-msgstr "博客 ID 必须包含至少2个字符，使用字母、数字或符号。"
-
-msgid "No blog name"
-msgstr "没有博客名称"
-
-msgid "No blog URL"
-msgstr "没有博客 URL"
-
-#, fuzzy
-msgid "No log message"
-msgstr "没有博客名称"
-
-#, fuzzy
-msgid "unknown"
-msgstr "现在"
-
-msgid "No blog defined."
-msgstr "没有博客被定义。"
-
-#, php-format
-msgid "Directory %s does not exist."
-msgstr "目录 %s 不存在。"
-
-msgid "You are not a super administrator."
-msgstr "您不是超级管理员。"
-
-msgid "Permission denied."
-msgstr "权限被拒绝。"
-
-msgid "You are not the file owner."
-msgstr "您不是文件的所有者。"
-
-#, fuzzy
-msgid "This file is not allowed."
-msgstr "上传此文件是不允许的。"
-
-msgid "New file already exists."
-msgstr "新文件已经存在。"
-
-msgid "File does not exist in the database."
-msgstr "文件在数据库中不存在。"
-
-#, php-format
-msgid "Extract destination directory %s already exists."
-msgstr "解压缩目标目录 %s 已经存在。"
-
-msgid "Embedded Audio Player"
-msgstr ""
-
-msgid "Embedded Video Player"
-msgstr ""
-
-#, php-format
-msgid "%s: in [%s] and [%s]"
-msgstr ""
-
-msgid "Empty module zip file."
-msgstr "空的模块 zip 文件。"
-
-msgid "The zip file does not appear to be a valid Dotclear module."
-msgstr "这个 zip 文件似乎不是一个有效的 Dotclear 模块。"
-
-msgid "An error occurred during module deletion."
-msgstr "模块删除时出现错误。"
-
-#, php-format
-msgid "Unable to upgrade \"%s\". (same version)"
-msgstr "无法升级到“%s”。（版本相同）"
-
-msgid "Unable to read new _define.php file"
-msgstr "无法读取新的 _define.php。"
-
-msgid "No such module."
-msgstr "没有这样的模块。"
-
-msgid "Cannot remove module files"
-msgstr "无法移除模块文件"
-
-msgid "Cannot deactivate plugin."
-msgstr "无法禁用插件。"
-
-msgid "Cannot activate plugin."
-msgstr "无法激活插件。"
-
-#, fuzzy, php-format
-msgid "Invalid setting dcNamespace: %s"
-msgstr "无效的设置命名空间：%s"
-
-msgid "Unable to retrieve settings:"
-msgstr "无法检索设置："
-
-#, php-format
-msgid "%s is not a valid setting id"
-msgstr "%s 不是一个有效的设置 ID"
-
-msgid "No namespace specified"
-msgstr "没有指定命名空间"
-
-#, fuzzy
-msgid "Unable to retrieve workspaces:"
-msgstr "无法检索设置："
-
-#, fuzzy
-msgid "Unable to retrieve namespaces:"
-msgstr "无法检索设置："
-
-#, php-format
-msgid "Invalid setting namespace: %s"
-msgstr "无效的设置命名空间：%s"
-
-#, php-format
-msgid "%s has still been pinged"
-msgstr "%s 已经被 ping"
-
-msgid "Unable to ping URL"
-msgstr "无法 ping URL"
-
-#, php-format
-msgid "%s is not a ping URL"
-msgstr "%s 不是一个 ping URL"
-
-#, php-format
-msgid "%s, ping error:"
-msgstr "%s，ping 错误："
-
-msgid "Digests file not found."
-msgstr "摘要文件未找到。"
-
-msgid "No file to download"
-msgstr "没有要下载的文件"
-
-msgid "Root directory is not writable."
-msgstr "根目录不可写。"
-
-msgid "An error occurred while downloading archive."
-msgstr "下载压缩文件时产生错误。"
-
-msgid "Archive not found."
-msgstr "压缩文件未找到。"
-
-msgid "Unable to read current digests file."
-msgstr "无法读取现有的摘要文件。"
-
-#, fuzzy
-msgid "Downloaded file does not seem to be a valid archive."
-msgstr "下载的文件似乎不是一个有效的压缩文件。"
-
-msgid "Incomplete archive."
-msgstr "压缩文件不完整。"
-
-msgid "Unable to read digests file."
-msgstr "无法读取摘要文件。"
-
-msgid "Invalid digests file."
-msgstr "无效的摘要文件。"
-
-#, fuzzy, php-format
-msgid "Invalid dcWorkspace: %s"
-msgstr "无效的设置命名空间：%s"
-
-#, fuzzy
-msgid "Unable to retrieve prefs:"
-msgstr "无法检索设置："
-
-#, fuzzy, php-format
-msgid "%s is not a valid pref id"
-msgstr "%s 不是一个有效的设置 ID"
-
-#, fuzzy
-msgid "No workspace specified"
-msgstr "没有指定命名空间"
-
-msgid "SQLite Database Schema cannot be upgraded."
-msgstr "SQLite 数据库模式无法被升级。"
-
-msgid "Something went wrong with auto upgrade:"
-msgstr "自动升级时出现错误："
-
-msgid "Unable to open directory."
-msgstr "无法打开目录。"
-
-msgid "Unable to create directory."
-msgstr "无法创建目录。"
-
-msgid "File is not writable."
-msgstr "文件不可写。"
-
-msgid "Unable to open file."
-msgstr "无法打开文件。"
-
-msgid "Not an uploaded file."
-msgstr "不是一个上传的文件。"
-
-msgid "The uploaded file exceeds the maximum file size allowed."
-msgstr "上传的文件超过了最大允许的文件大小。"
-
-msgid "The uploaded file was only partially uploaded."
-msgstr "上传的文件仅被部分上传。"
-
-msgid "No file was uploaded."
-msgstr "没有文件被上传。"
-
-msgid "Missing a temporary folder."
-msgstr "忽略了一个临时文件夹。"
-
-msgid "Failed to write file to disk."
-msgstr "写入文件到磁盘失败。"
-
-#, php-format
-msgid "%s is not a directory."
-msgstr "%s 不是一个目录。"
-
-msgid "Uploading this file is not allowed."
-msgstr "上传此文件是不允许的。"
-
-#, fuzzy
-msgid "Destination directory is not in jail."
-msgstr "目标目录不在监禁中。"
-
-msgid "File already exists."
-msgstr "文件已存在。"
-
-msgid "Cannot write in this directory."
-msgstr "无法在这个目录写入。"
-
-msgid "An error occurred while writing the file."
-msgstr "写入文件时出现错误。"
-
-msgid "Source file does not exist."
-msgstr "源文件不存在。"
-
-#, fuzzy
-msgid "File is not in jail."
-msgstr "文件不再监禁中。"
-
-msgid "Destination directory is not writable."
-msgstr "目标目录不可写。"
-
-msgid "Unable to rename file."
-msgstr "无法重命名文件。"
-
-msgid "File cannot be removed."
-msgstr "文件无法被移除。"
-
-#, fuzzy
-msgid "Directory is not in jail."
-msgstr "目录不在监禁中。"
-
-msgid "Directory cannot be removed."
-msgstr "目录无法被移除。"
-
-msgid "Not enough memory to open image."
-msgstr "没有足够的空间打开图片。"
-
-#, php-format
-msgid "File %s is not compressed in the zip."
-msgstr "文件 %s 没有压缩到 zip 中。"
-
-#, php-format
-msgid "Trying to unzip a folder name %s"
-msgstr "尝试解压缩一个目录 %s"
-
-msgid "Unable to write destination file."
-msgstr "无法写入目标文件。"
-
-msgid "Unable to write in target directory, permission denied."
-msgstr "无法写入目标目录，权限被拒绝。"
-
-msgid "Not enough memory to open file."
-msgstr "没有足够空间打开文件。"
-
-msgid "File does not exist"
-msgstr "文件不存在"
-
-msgid "Cannot read file"
-msgstr "无法读取文件"
-
-msgid "Directory does not exist"
-msgstr "目录不存在"
-
-msgid "Cannot read directory"
-msgstr "无法读取目录"
-
-msgid "Unable to connect to database"
-msgstr ""
-
-#, php-format
-msgid "<p>This either means that the username and password information in your <strong>config.php</strong> file is incorrect or we can't contact the database server at \"<em>%s</em>\". This could mean your host's database server is down.</p> <ul><li>Are you sure you have the correct username and password?</li><li>Are you sure that you have typed the correct hostname?</li><li>Are you sure that the database server is running?</li></ul><p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"http://forum.dotclear.net/\">Dotclear Support Forums</a>.</p>"
-msgstr ""
-
-msgid "The following error was encountered while trying to read the database:"
-msgstr ""
-
-#~ msgid "login"
-#~ msgstr "登录"
-
-#~ msgid "filter"
-#~ msgstr "过滤"
-
-#~ msgid "View site"
-#~ msgstr "浏览网站"
-
-#~ msgid "The file <strong>%s</strong> already exists. If you need to reset any of the configuration items in this file, please delete it first or you may <a href=\"%s\">continue to install</a>."
-#~ msgstr "<strong>%s</strong> 文件已经存在。如果您需要在这个文件中重新设置任何配置项目，请先删除它或者您可以<a href=\"%s\">继续安装</a>。"
Index: ocales/zh-CN/plugins.po
===================================================================
--- locales/zh-CN/plugins.po	(revision 221)
+++ 	(revision )
@@ -1,1461 +1,0 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Dotclear 2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-05-08 18:36+0200\n"
-"PO-Revision-Date: 2010-01-16 19:14+0800\n"
-"Last-Translator: lainme <lainme993@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid "no"
-msgstr "否"
-
-msgid "Configuration successfully updated"
-msgstr "成功更新配置"
-
-msgid "Settings definition successfully updated"
-msgstr "成功更新设置定义"
-
-msgid "blog settings"
-msgstr "博客设置"
-
-msgid "Value"
-msgstr "值"
-
-msgid "Description"
-msgstr "描述"
-
-msgid "global settings"
-msgstr "全局设置"
-
-msgid "Akismet spam filter"
-msgstr "Akismet 垃圾评论过滤"
-
-#, php-format
-msgid "Filtered by %s."
-msgstr "依据 %s 过滤。"
-
-msgid "Akismet API key:"
-msgstr "Akismet API key："
-
-msgid "API key verified"
-msgstr "API key 验证成功"
-
-msgid "API key not verified"
-msgstr "API key 验证失败"
-
-msgid "Get your own API key"
-msgstr "获取您自己的 API key"
-
-msgid "Antispam"
-msgstr "反垃圾评论"
-
-msgid "Delete junk comments older than"
-msgstr "删除垃圾评论早于"
-
-msgid "days"
-msgstr "天"
-
-msgid "IP Blacklist / Whitelist Filter"
-msgstr "IP 黑名单／白名单过滤"
-
-#, php-format
-msgid "Filtered by %1$s with rule %2$s."
-msgstr "根据规则 %2$s 被 %1$s 过滤。"
-
-msgid "IP address has been successfully added."
-msgstr "成功添加 IP 地址。"
-
-msgid "IP addresses have been successfully removed."
-msgstr "成功删除 IP 地址。"
-
-msgid "Blacklist"
-msgstr "黑名单"
-
-msgid "Whitelist"
-msgstr "白名单"
-
-msgid "Add an IP address"
-msgstr "添加一个 IP 地址"
-
-msgid "Global IP"
-msgstr "全球 IP"
-
-msgid "Add"
-msgstr "添加"
-
-msgid "No IP address in list."
-msgstr "列表中没有 IP 地址。"
-
-msgid "IP list"
-msgstr "IP 列表"
-
-msgid "Checks sender IP address against DNSBL servers"
-msgstr "从 DNSBL 服务器检查发送者 IP 地址"
-
-#, php-format
-msgid "Filtered by %1$s with server %2$s."
-msgstr "根据服务器 %2$s 被 %1$s 过滤。"
-
-msgid "IP Lookup servers"
-msgstr "IP 查询服务器"
-
-msgid "Add here a coma separated list of servers."
-msgstr "添加一个由逗号分隔的服务器列表。"
-
-msgid "Checks links in comments against surbl.org"
-msgstr "从 surbl.org 查询评论中的链接"
-
-msgid "Words Blacklist"
-msgstr "关键字黑名单"
-
-#, php-format
-msgid "Filtered by %1$s with word %2$s."
-msgstr "根据关键字 %2$s 被 %1$s 过滤。"
-
-msgid "Words have been successfully added."
-msgstr "成功添加关键字。"
-
-msgid "Word has been successfully added."
-msgstr "成功添加关键字。"
-
-msgid "Words have been successfully removed."
-msgstr "成功移除关键字。"
-
-msgid "Add a word"
-msgstr "添加一个关键字"
-
-msgid "Global word"
-msgstr "全局关键字"
-
-msgid "No word in list."
-msgstr "列表中没有关键字"
-
-msgid "List"
-msgstr "列表"
-
-msgid "Delete selected words"
-msgstr "删除选择的关键字"
-
-msgid "Create default wordlist"
-msgstr "创建默认的关键字列表"
-
-msgid "This word exists"
-msgstr "这个关键字已存在"
-
-msgid "No description"
-msgstr "没有描述"
-
-#, php-format
-msgid "Filtered by %1$s (%2$s)"
-msgstr "被 %1$s (%2$s) 过滤"
-
-msgid "Unknown filter."
-msgstr "未知的过滤。"
-
-msgid "This comment is a spam:"
-msgstr "这个评论是垃圾评论："
-
-#, php-format
-msgid "(including %d spam comment)"
-msgstr "(包括 %d 个垃圾评论)"
-
-#, php-format
-msgid "(including %d spam comments)"
-msgstr "(包括 %d 个垃圾评论)"
-
-msgid "Spam moderation"
-msgstr "垃圾评论审核"
-
-msgid "Spam"
-msgstr "垃圾评论"
-
-#, fuzzy
-msgid "Ham"
-msgstr "Ham"
-
-msgid "Filter does not exist."
-msgstr "过滤器不存在。"
-
-msgid "Filter has no user interface."
-msgstr "过滤器没有用户界面。"
-
-msgid "Return to filters"
-msgstr "返回到过滤器"
-
-#, php-format
-msgid "%s configuration"
-msgstr "%s 配置"
-
-msgid "Information"
-msgstr "信息"
-
-msgid "Spam comments have been successfully deleted."
-msgstr "成功删除垃圾评论。"
-
-msgid "Junk comments:"
-msgstr "垃圾评论："
-
-msgid "Published comments:"
-msgstr "发布的评论："
-
-msgid "Delete all spams"
-msgstr "删除所有垃圾评论"
-
-#, php-format
-msgid "All spam comments older than %s day(s) will be automatically deleted."
-msgstr "所有早于 %s 天的垃圾评论都会被自动删除。"
-
-msgid "Available spam filters"
-msgstr "可用的垃圾评论过滤器"
-
-msgid "Filters configuration has been successfully saved."
-msgstr "成功保存过滤器配置。"
-
-msgid "Order"
-msgstr "顺序"
-
-msgid "Active"
-msgstr "激活"
-
-msgid "Auto Del."
-msgstr "自动删除。"
-
-msgid "Filter name"
-msgstr "过滤器名称"
-
-msgid "Filter configuration"
-msgstr "过滤器配置"
-
-msgid "Syndication"
-msgstr "同步"
-
-msgid "Junk comments RSS feed"
-msgstr "垃圾评论 RSS feed"
-
-msgid "Published comments RSS feed"
-msgstr "发表的评论 RSS feed"
-
-msgid "manage blogroll"
-msgstr "管理博客链接"
-
-msgid "Links"
-msgstr "链接"
-
-msgid "All categories"
-msgstr "所有分类目录"
-
-msgid "Home page only"
-msgstr "仅首页"
-
-msgid "You must provide a link title"
-msgstr "您必须提供一个链接标题"
-
-msgid "You must provide a link URL"
-msgstr "您必须提供一个链接 URL"
-
-msgid "You need to provide a XBEL or OPML file."
-msgstr "您必须提供一个 XBEL 或者 OPML 文件。"
-
-msgid "File is not in XML format."
-msgstr "文件不是 XML 格式。"
-
-msgid "No such link or title"
-msgstr "没有这样的链接或者标题"
-
-msgid "Return to blogroll"
-msgstr "返回到博客链接"
-
-msgid "Category has been successfully updated"
-msgstr "成功更新分类目录"
-
-msgid "Edit category"
-msgstr "编辑分类目录"
-
-msgid "Link has been successfully updated"
-msgstr "成功更新链接"
-
-msgid "Edit link"
-msgstr "编辑链接"
-
-msgid "XFN"
-msgstr "链接关系（XFN）"
-
-msgid "_xfn_Me"
-msgstr "我自己"
-
-msgid "_xfn_Another link for myself"
-msgstr "我的另一个连接"
-
-msgid "_xfn_Friendship"
-msgstr "友情"
-
-msgid "_xfn_Contact"
-msgstr "联系人"
-
-msgid "_xfn_Acquaintance"
-msgstr "熟人"
-
-msgid "_xfn_Friend"
-msgstr "朋友"
-
-msgid "_xfn_Physical"
-msgstr "接触"
-
-msgid "_xfn_Met"
-msgstr "新识"
-
-msgid "_xfn_Professional"
-msgstr "专家"
-
-msgid "_xfn_Co-worker"
-msgstr "合作者"
-
-msgid "_xfn_Colleague"
-msgstr "同事"
-
-msgid "_xfn_Geographical"
-msgstr "地理区域"
-
-msgid "_xfn_Co-resident"
-msgstr "同区域"
-
-msgid "_xfn_Neighbor"
-msgstr "邻居"
-
-msgid "_xfn_Family"
-msgstr "家人"
-
-msgid "_xfn_Child"
-msgstr "孩子"
-
-msgid "_xfn_Parent"
-msgstr "父母"
-
-msgid "_xfn_Sibling"
-msgstr "兄弟姐妹"
-
-msgid "_xfn_Spouse"
-msgstr "配偶"
-
-msgid "_xfn_Kin"
-msgstr "家族"
-
-msgid "_xfn_Romantic"
-msgstr "浪漫的"
-
-msgid "_xfn_Muse"
-msgstr "我的女神"
-
-msgid "_xfn_Crush"
-msgstr "迷恋的"
-
-msgid "_xfn_Date"
-msgstr "与我约会的"
-
-msgid "_xfn_Sweetheart"
-msgstr "甜心"
-
-msgid "Nothing to import"
-msgstr "没有要导入的"
-
-msgid "Import operation cancelled."
-msgstr "导入操作被取消。"
-
-msgid "Items order has been successfully updated"
-msgstr "成功更新项目顺序"
-
-msgid "Items have been successfully removed."
-msgstr "成功删除项目。"
-
-msgid "Link has been successfully created."
-msgstr "成功创建连接。"
-
-msgid "category has been successfully created."
-msgstr "成功创建分类目录。"
-
-msgid "links have been successfully imported."
-msgstr "成功导入链接。"
-
-msgid "URL"
-msgstr "URL"
-
-msgid "Lang"
-msgstr "语言"
-
-#, fuzzy
-msgid "position"
-msgstr "页面位置"
-
-#, fuzzy
-msgid "select this link"
-msgstr "删除此标签"
-
-msgid "Delete selected links"
-msgstr "删除选定的链接"
-
-msgid "Are you sure you want to delete selected links?"
-msgstr "您确定您要删除选定的链接吗？"
-
-msgid "The link list is empty."
-msgstr ""
-
-msgid "Add a new link"
-msgstr "添加一个新链接"
-
-msgid "Add a category"
-msgstr "添加一个分类目录"
-
-msgid "Import links"
-msgstr "导入链接"
-
-msgid "OPML or XBEL File:"
-msgstr "OPML 或者 XBEL 文件："
-
-msgid "import"
-msgstr "导入"
-
-msgid "Light linear gradient"
-msgstr "浅的线性梯度"
-
-msgid "Medium linear gradient"
-msgstr "中等线性梯度"
-
-msgid "Dark linear gradient"
-msgstr "深的线性梯度"
-
-msgid "Solid color"
-msgstr "实色"
-
-msgid "Custom..."
-msgstr "定制..."
-
-msgid "Blowup configuration"
-msgstr "Blowup 配置"
-
-msgid "Predefined styles"
-msgstr "预定义的样式"
-
-msgid "Apply code"
-msgstr "应用代码"
-
-#, fuzzy
-msgid "Choose a predefined style"
-msgstr "预定义的样式"
-
-#, fuzzy
-msgid "For the following reasons, images cannot be created. You won't be able to change some background properties."
-msgstr "由于图片无法被创建，您将不能改变某些背景属性。"
-
-msgid "Theme configuration has been successfully updated."
-msgstr "成功更新主题配置。"
-
-msgid "General"
-msgstr "一般"
-
-msgid "Background color:"
-msgstr "背景颜色："
-
-msgid "Background color fill:"
-msgstr "背景颜色填充："
-
-msgid "Main text font:"
-msgstr "主体文字字体："
-
-msgid "Main text font size:"
-msgstr "主体文字大小："
-
-msgid "Main text color:"
-msgstr "主体文字颜色："
-
-msgid "Text line height:"
-msgstr "文本行高："
-
-msgid "Links color:"
-msgstr "链接颜色："
-
-msgid "Visited links color:"
-msgstr "浏览过的链接颜色："
-
-msgid "Focus links color:"
-msgstr "焦点链接颜色："
-
-msgid "Page top"
-msgstr "页面顶部"
-
-#, fuzzy
-msgid "Prelude color:"
-msgstr "Prelude 的颜色："
-
-msgid "Hide main title"
-msgstr "隐藏主标题"
-
-msgid "Main title font:"
-msgstr "主标题字体："
-
-msgid "Main title font size:"
-msgstr "主标题字体大小："
-
-msgid "Main title color:"
-msgstr "主标题颜色："
-
-msgid "Main title alignment:"
-msgstr "主标题对齐："
-
-msgid "center"
-msgstr "中间"
-
-msgid "left"
-msgstr "左"
-
-msgid "right"
-msgstr "右"
-
-msgid "Main title position (x:y)"
-msgstr "主标题位置(x:y)"
-
-msgid "Top image"
-msgstr "顶部图片"
-
-msgid "Choose \"Custom...\" to upload your own image."
-msgstr "选择“定制...”来上传您自己的图片。"
-
-msgid "Add your image:"
-msgstr "添加您的图片："
-
-#, php-format
-msgid "JPEG or PNG file, 800 pixels wide, maximum size %s"
-msgstr "JPEG 或者 PNG 文件，800 像素宽，最大大小 %s"
-
-msgid "Preview"
-msgstr "预览"
-
-msgid "Sidebar"
-msgstr "侧边栏"
-
-msgid "Sidebar position:"
-msgstr "侧边栏位置："
-
-msgid "Sidebar text font:"
-msgstr "侧边栏文字字体："
-
-msgid "Sidebar text font size:"
-msgstr "侧边栏文字字体大小："
-
-msgid "Sidebar text color:"
-msgstr "侧边栏文字颜色："
-
-msgid "Sidebar titles font:"
-msgstr "侧边栏标题字体："
-
-msgid "Sidebar titles font size:"
-msgstr "侧边栏标题字体大小："
-
-msgid "Sidebar titles color:"
-msgstr "侧边栏标题颜色："
-
-msgid "Sidebar 2nd level titles font:"
-msgstr "侧边栏第二层标题字体："
-
-msgid "Sidebar 2nd level titles font size:"
-msgstr "侧边栏第二层标题字体大小："
-
-msgid "Sidebar 2nd level titles color:"
-msgstr "侧边栏第二层标题颜色："
-
-msgid "Sidebar lines color:"
-msgstr "侧边栏水平线颜色："
-
-msgid "Sidebar links color:"
-msgstr "侧边栏链接颜色："
-
-msgid "Sidebar visited links color:"
-msgstr "侧边栏浏览过的链接颜色："
-
-msgid "Sidebar focus links color:"
-msgstr "侧边栏焦点链接颜色："
-
-msgid "Date title font:"
-msgstr "日期标题字体："
-
-msgid "Date title font size:"
-msgstr "日期标题字体大小："
-
-msgid "Date title color:"
-msgstr "日期标题颜色："
-
-msgid "Entry title font:"
-msgstr "文章标题字体："
-
-msgid "Entry title font size:"
-msgstr "文章标题字体大小："
-
-msgid "Entry title color:"
-msgstr "文章标题颜色："
-
-msgid "Comment background color:"
-msgstr "评论背景颜色："
-
-msgid "Comment text color:"
-msgstr "评论文字颜色："
-
-msgid "My comment background color:"
-msgstr "我的评论背景颜色："
-
-msgid "My comment text color:"
-msgstr "我的评论文字颜色："
-
-msgid "Footer"
-msgstr "足部"
-
-msgid "Footer font:"
-msgstr "足部字体："
-
-msgid "Footer font size:"
-msgstr "足部字体大小："
-
-msgid "Footer color:"
-msgstr "足部颜色："
-
-msgid "Footer links color:"
-msgstr "足部链接颜色："
-
-msgid "Footer background color:"
-msgstr "足部背景颜色："
-
-msgid "Configuration import / export"
-msgstr "配置导入／导出"
-
-msgid "You can share your configuration using the following code. To apply a configuration, paste the code, click on \"Apply code\" and save."
-msgstr "您可以使用如下代码分享您的配置。要应用一个配置 ，粘贴代码，点击“应用代码”并保存。"
-
-msgid "Copy this code:"
-msgstr ""
-
-msgid "default"
-msgstr "默认"
-
-msgid "At least one of the following functions is not available: imagecreatetruecolor, imagepng & imagecreatefrompng."
-msgstr ""
-
-#, fuzzy
-msgid "The 'public' directory does not exist."
-msgstr "此页面不存在。"
-
-#, php-format
-msgid "The '%s' directory cannot be modified."
-msgstr ""
-
-msgid "Unable to create images."
-msgstr "无法创建图片。"
-
-msgid "Invalid file type."
-msgstr "无效的文件格式。"
-
-msgid "Uploaded image is not 800 pixels wide."
-msgstr ""
-
-msgid "Unable to open image."
-msgstr "无法打开图片。"
-
-msgid "Checks trackback source for a link to the post"
-msgstr "检查文章链接的 trackback 源"
-
-msgid "Import/Export"
-msgstr "导入／导出"
-
-msgid "Flat file export"
-msgstr "纯文本导出"
-
-msgid "Exports a blog or a full Dotclear installation to flat file."
-msgstr "导出一个博客或者整个 Dotclear 到一个纯文本文件。"
-
-msgid "Export file not found."
-msgstr "导出文件没有找到。"
-
-msgid "Export a blog"
-msgstr "导出一个博客"
-
-#, php-format
-msgid "This will create an export of your current blog: %s"
-msgstr "这将会导出您当前博客：%s"
-
-msgid "Export"
-msgstr "导出"
-
-msgid "You may also want to download your media directory as a zip file"
-msgstr "您或许也希望将您的媒体目录作为 zip 文件下载"
-
-msgid "Export all content"
-msgstr "导出所有内容"
-
-msgid "Congratulation!"
-msgstr "恭喜！"
-
-msgid "Your blog has been successfully imported. Welcome on Dotclear 2!"
-msgstr "您的博客已被成功导入。欢迎来到 Dotclear 2！"
-
-msgid "Why don't you blog this now?"
-msgstr "为什么不立刻开始写博客呢？"
-
-msgid "or"
-msgstr "或者"
-
-msgid "visit your dashboard"
-msgstr "浏览您的控制板"
-
-msgid "Dotclear 1.2 import"
-msgstr "Dotclear 1.2 导入"
-
-msgid "Import a Dotclear 1.2 installation into your current blog."
-msgstr "从 Dotclear 1.2 导入到您现在的博客。"
-
-#, php-format
-msgid "This will import your Dotclear 1.2 content as new content in the current blog: %s."
-msgstr "这将会将您 Dotclear 1.2 的内容作为新内容导入到当前的博客：%s。"
-
-msgid "Please note that this process will empty your categories, blogroll, entries and comments on the current blog."
-msgstr "请注意这个过程将会清空您当前博客的分类目录、博客链接表、文章和评论。"
-
-msgid "Depending on the size of your blog, it could take a few minutes."
-msgstr "根据您博客的大小而不同，这将会花费一些时间。"
-
-msgid "General information"
-msgstr "一般信息"
-
-msgid "Import my blog now"
-msgstr "现在导入我的博客"
-
-msgid "We first need some information about your old Dotclear 1.2 installation."
-msgstr "我们首先需要关于您的 Dotclear 1.2 的一些信息。"
-
-msgid "Entries import options"
-msgstr "文章导入选项"
-
-msgid "Number of entries to import at once:"
-msgstr "一次导入的文章数目："
-
-msgid "Importing users"
-msgstr "导入用户"
-
-msgid "Importing categories"
-msgstr "导入分类目录"
-
-msgid "Importing blogroll"
-msgstr "导入博客链接"
-
-#, php-format
-msgid "Importing entries from %d to %d / %d"
-msgstr "从 %d 导入文章到 %d/%d"
-
-msgid "Please read carefully"
-msgstr "请仔细阅读"
-
-msgid "Every newly imported user has received a random password and will need to ask for a new one by following the \"I forgot my password\" link on the login page (Their registered email address has to be valid.)"
-msgstr "每个新导入的用户已接收了一个随即密码并且需要通过登录页面“我忘记了我的密码”的链接来获取一个新的（注册的邮箱地址必须有效）。"
-
-#, php-format
-msgid "Please note that Dotclear 2 has a new URL layout. You can avoid broken links by installing <a href=\"%s\">DC1 redirect</a> plugin and activate it in your blog configuration."
-msgstr "请注意 Dotclear 2 有一个新的 URL 布局。您可以通过安装 <a href=\"%s\">DC1 redirect</a> 插件并在博客配置里激活它来避免损坏链接。"
-
-msgid "next step"
-msgstr "下一步"
-
-msgid "Dotclear tables not found"
-msgstr "Dotclear 表没有找到"
-
-msgid "Feed import"
-msgstr "Feed 导入"
-
-msgid "Imports a feed as new entries."
-msgstr "将 feed 作为新文章导入。"
-
-msgid "Cannot retrieve feed URL."
-msgstr "无法检索 feed URL。"
-
-msgid "No items in feed."
-msgstr "feed 中没有条目。"
-
-msgid "Content successfully imported."
-msgstr "成功导入内容。"
-
-msgid "Import from a feed"
-msgstr "从 feed 中导入"
-
-#, php-format
-msgid "This will import a feed (RSS or Atom) a as new content in the current blog: %s."
-msgstr "这将会把一个 feed (RSS 或者 Atom)做为一个新内容导入当前博客：%s。"
-
-msgid "Feed URL:"
-msgstr "Feed URL："
-
-msgid "Send"
-msgstr "发送"
-
-msgid "Flat file import"
-msgstr "纯文本导入"
-
-msgid "Imports a blog or a full Dotclear installation from flat file."
-msgstr "从纯文本导入一个博客或者整个 Dotclear。"
-
-msgid "Single blog successfully imported."
-msgstr "成功导入单一博客。"
-
-msgid "Are you sure you want to import a full backup file?"
-msgstr "您确定您要导入一个完整的备份文件吗？"
-
-msgid "Import a single blog"
-msgstr "导入单一博客"
-
-#, php-format
-msgid "This will import a single blog backup as new content in the current blog: %s."
-msgstr "这将会把一个单一博客的备份作为新内容导入到当前博客：%s。"
-
-msgid "Upload a backup file"
-msgstr "上传一个备份文件"
-
-msgid "or pick up a local file in your public directory"
-msgstr "或者从您的 public 目录中选择一个本地文件"
-
-msgid "Import a full backup file"
-msgstr "导入一个完整的备份文件"
-
-msgid "Warning: This will reset all the content of your database, except users."
-msgstr "警告：这将会您的数据库中所有内容，除了用户。"
-
-msgid "WordPress import"
-msgstr "WordPress 导入"
-
-msgid "Import a WordPress installation into your current blog."
-msgstr "从 WordPress 导入您当前博客。"
-
-#, php-format
-msgid "This will import your WordPress content as new content in the current blog: %s."
-msgstr "这将会把您的 WordPress 内容作为新内容导入到当前博客：%s。"
-
-msgid "We first need some information about your old WordPress installation."
-msgstr "我们首先需要一些关于您以前 WordPress 的一些信息。"
-
-msgid "WordPress and Dotclear's handling of categories are quite different. You can assign several categories to a single post in WordPress. In the Dotclear world, we see it more like \"One category, several tags.\" Therefore Dotclear can only import one category per post and will chose the lowest numbered one. If you want to keep a trace of every category, you can import them as tags, with an optional prefix."
-msgstr "WordPress 和 Dotclear 处理分类目录的方式很不同。WorePress 中您可以为一篇文章指定多个分类目录。而在 Dotclear 的世界中，我们更倾向于“一个分类目录，多个标签”。因此，Dotclear 对每篇文章仅能导入一个分类目录并会选择数字最低的一个。如果您希望跟踪每一个分类目录，您可以将它们导入为带有可选前缀的标签。"
-
-msgid "On the other hand, in WordPress, a post can not be uncategorized, and a default installation has a first category labelised <i>\"Uncategorized\"</i>. If you did not change that category, you can just ignore it while importing your blog, as Dotclear allows you to actually keep your posts uncategorized."
-msgstr "在另一方面，WordPress 里，一篇文章无法不被分类，默认的安装将会有第一个分类目录名为“未分类”。如果您没有改变此分类目录，您可以在导入博客的时候忽略它，因为 Dotclear 可以确实保证您的文章不被分类。"
-
-msgid "Ignore the first category:"
-msgstr "忽略第一个分类："
-
-msgid "Import lowest numbered category on posts:"
-msgstr "导入文章的数字最低的分类目录："
-
-msgid "Import all categories as tags:"
-msgstr "将所有分类目录导入为标签："
-
-msgid "Prefix such tags with:"
-msgstr "为这个标签指定前缀："
-
-msgid "Content filters"
-msgstr "内容过滤器"
-
-msgid "You may want to process your post and/or comment content with the following filters."
-msgstr "您或许希望使用下列过滤器处理您的文章以及／或者评论内容。"
-
-msgid "Post content formatter:"
-msgstr "文章内容格式："
-
-msgid "Comment content formatter:"
-msgstr "评论内容格式："
-
-msgid "WordPress tables not found"
-msgstr "WordPress 表没有找到"
-
-msgid "No file to read."
-msgstr "没有文件要读取。"
-
-msgid "File is not a DotClear backup."
-msgstr "文件不是一个 Dotclear 备份。"
-
-msgid "File is not a single blog export."
-msgstr "文件不是一个单一博客的导出。"
-
-msgid "File is not a full export."
-msgstr "文件不是一个完整的导出。"
-
-msgid "The backup file does not appear to be well formed."
-msgstr ""
-
-msgid "Please wait..."
-msgstr "请稍等..."
-
-msgid "Import"
-msgstr "导入"
-
-msgid "Maintenance"
-msgstr "维护"
-
-msgid "Optimization successful."
-msgstr "优化成功。"
-
-msgid "Comments and trackback counted."
-msgstr "评论和 trackback 已计数。"
-
-msgid "Templates cache directory emptied."
-msgstr "模板缓存目录清空。"
-
-msgid "Logs deleted."
-msgstr ""
-
-#, php-format
-msgid "Indexing entry %d to %d."
-msgstr "索引文章 %d 到 %d。"
-
-msgid "next"
-msgstr "下一个"
-
-msgid "Entries index done."
-msgstr "文章索引完成。"
-
-msgid "Back"
-msgstr "返回"
-
-#, php-format
-msgid "Indexing comment %d to %d."
-msgstr "索引评论 %d 到 %d。"
-
-msgid "Comments index done."
-msgstr "评论索引完成。"
-
-msgid "Optimize database room"
-msgstr "优化数据库空间"
-
-msgid "Vacuum tables"
-msgstr "清理表"
-
-msgid "Counters"
-msgstr "计数"
-
-msgid "Reset comments and ping counters"
-msgstr "重置评论和 ping 计数。"
-
-msgid "Search engine index"
-msgstr "搜索引擎索引"
-
-msgid "This may take a very long time"
-msgstr "这可能需要很长时间"
-
-msgid "Index all posts"
-msgstr "索引所有文章"
-
-msgid "Index all comments"
-msgstr "索引所有评论"
-
-#, fuzzy
-msgid "Vacuum logs"
-msgstr "清理表"
-
-#, fuzzy
-msgid "Delete all logs"
-msgstr "删除所有垃圾评论"
-
-msgid "Empty templates cache directory"
-msgstr "清空模板缓存目录"
-
-msgid "Empty directory"
-msgstr "清空目录"
-
-msgid "New page"
-msgstr "新页面"
-
-#, fuzzy, php-format
-msgid "%d page"
-msgstr "编辑页面"
-
-#, fuzzy, php-format
-msgid "%d pages"
-msgstr "编辑页面"
-
-msgid "manage pages"
-msgstr "管理页面"
-
-msgid "Published on"
-msgstr "发布于"
-
-msgid "This page's comments feed"
-msgstr "此页面的评论 feed"
-
-msgid "You must provide a valid email address."
-msgstr "您必须提供一个有效的邮箱地址。"
-
-msgid "Page title"
-msgstr "页面标题"
-
-msgid "Page position"
-msgstr "页面位置"
-
-msgid "Publication date"
-msgstr "发布时间"
-
-msgid "No page"
-msgstr "没有页面"
-
-#, fuzzy
-msgid "select this page"
-msgstr "删除此标签"
-
-msgid "Are you sure you want to delete selected pages?"
-msgstr "您确定要删除选定的页面吗？"
-
-msgid "Selected pages action:"
-msgstr "选定的页面动作："
-
-msgid "This page does not exist."
-msgstr "此页面不存在。"
-
-msgid "Edit page"
-msgstr "编辑页面"
-
-msgid "next page"
-msgstr "下一个页面"
-
-msgid "previous page"
-msgstr "前一个页面"
-
-msgid "Are you sure you want to delete this page?"
-msgstr "您确定要删除此页面吗？"
-
-msgid "Page has been successfully updated."
-msgstr "成功更新页面。"
-
-msgid "Page has been successfully created."
-msgstr "成功创建页面。"
-
-msgid "View page"
-msgstr "查看页面"
-
-msgid "Preview page"
-msgstr "预览页面"
-
-msgid "Page status:"
-msgstr "页面状态："
-
-msgid "Page position:"
-msgstr "页面位置："
-
-msgid "Page lang:"
-msgstr "页面语言："
-
-msgid "Page password:"
-msgstr "页面密码："
-
-msgid "Warning: If you set the URL manually, it may conflict with another page."
-msgstr "警告：如果您手动设置 URL，它可能与其它页面冲突。"
-
-msgid "Add files to this page"
-msgstr "向此页面添加文件"
-
-msgid "Pings"
-msgstr "Pings"
-
-msgid "Pings configuration"
-msgstr "Pings 配置"
-
-msgid "Settings have been successfully updated."
-msgstr "成功更新设置。"
-
-msgid "Activate pings extension"
-msgstr "激活 pings 扩展"
-
-msgid "Service name:"
-msgstr "服务器名称："
-
-msgid "Service URI:"
-msgstr "服务器 URL："
-
-msgid "error"
-msgstr "错误"
-
-msgid "Test ping services"
-msgstr "测试 ping 服务器"
-
-msgid "Check all"
-msgstr ""
-
-msgid "Pings:"
-msgstr "Pings："
-
-msgid "Tags"
-msgstr "标签"
-
-msgid "Tags:"
-msgstr "标签："
-
-#, php-format
-msgid "Are you sure you want to remove this %s?"
-msgstr "您确定您要移除这个 %s 吗？"
-
-#, php-format
-msgid "Add a %s to this entry"
-msgstr "向这篇文章添加 %s"
-
-msgid "Choose from list"
-msgstr "从列表中选择"
-
-msgid "all"
-msgstr "所有"
-
-msgid "Tag"
-msgstr "标签"
-
-msgid "used in %e - frequency %p%"
-msgstr ""
-
-#, fuzzy
-msgid "entry"
-msgstr "中间"
-
-msgid "entries"
-msgstr "文章"
-
-msgid "Enter tags separated by coma"
-msgstr ""
-
-msgid "Add tags"
-msgstr "添加标签"
-
-msgid "Remove tags"
-msgstr "移除标签"
-
-msgid "Add tags to entries"
-msgstr "向文章添加标签"
-
-msgid "Tags to add:"
-msgstr "要添加的标签："
-
-msgid "Remove selected tags from entries"
-msgstr "从文章中移除选择的标签"
-
-msgid "No tags for selected entries"
-msgstr "所选文章没有标签"
-
-msgid "Following tags have been found in selected entries:"
-msgstr "所选文章中发现下列标签："
-
-msgid "short"
-msgstr ""
-
-msgid "extended"
-msgstr ""
-
-#, fuzzy
-msgid "Tags list format:"
-msgstr "要添加的标签："
-
-msgid "This tag's comments Atom feed"
-msgstr "此标签的评论 Atom feed"
-
-msgid "This tag's entries Atom feed"
-msgstr "此标签的文章 Atom feed"
-
-msgid "Limit (empty means no limit):"
-msgstr "限制(留空表示不限制)："
-
-msgid "Entries count"
-msgstr "文章计数"
-
-msgid "Tag name"
-msgstr "标签名称"
-
-msgid "All tags"
-msgstr "所有标签"
-
-msgid "Link to all tags:"
-msgstr ""
-
-msgid "Edit tag"
-msgstr "编辑标签"
-
-msgid "Tag has been successfully renamed"
-msgstr "成功重命名标签"
-
-msgid "Back to tags list"
-msgstr "返回到标签列表"
-
-msgid "Rename this tag:"
-msgstr "重命名此标签："
-
-msgid "Delete this tag"
-msgstr "删除此标签"
-
-msgid "Tag has been successfully removed"
-msgstr "成功移除标签"
-
-msgid "No tags on this blog."
-msgstr "此博客上没有标签"
-
-msgid "Theme Editor"
-msgstr "主题编辑器"
-
-msgid "No file"
-msgstr "没有文件"
-
-msgid "File does not exist."
-msgstr "文件不存在。"
-
-#, php-format
-msgid "File %s is not readable"
-msgstr "文件 %s 无法读取"
-
-#, php-format
-msgid "Unable to write file %s. Please check your theme files and folders permissions."
-msgstr "无法写入文件 %s。请检查您的主题文件和文件夹的权限。"
-
-msgid "Saving document..."
-msgstr "保存文件..."
-
-msgid "Document saved"
-msgstr "文件已保存"
-
-msgid "An error occurred:"
-msgstr "出现一个错误："
-
-#, php-format
-msgid "Your current theme on this blog is \"%s\"."
-msgstr "您此博客的当前主题是“%s”。"
-
-msgid "You can't edit default theme."
-msgstr "您不能修改默认主题。"
-
-msgid "Please select a file to edit."
-msgstr "请选择一个要编辑的文件。"
-
-msgid "File editor"
-msgstr "文件编辑器"
-
-#, php-format
-msgid "Editing file %s"
-msgstr "编辑文件 %s"
-
-msgid "This file is not writable. Please check your theme files permissions."
-msgstr "文件不可写。请检查您的主题文件的权限。"
-
-msgid "Templates files"
-msgstr "模板文件"
-
-msgid "CSS files"
-msgstr "CSS 文件"
-
-msgid "JavaScript files"
-msgstr "JavaScript 文件"
-
-#, fuzzy
-msgid "Preferences successfully updated"
-msgstr "成功更新页面。"
-
-#, fuzzy
-msgid "Preferences definition successfully updated"
-msgstr "成功更新设置定义"
-
-msgid "user preferences"
-msgstr ""
-
-#, fuzzy
-msgid "global preferences"
-msgstr "全局设置"
-
-msgid "Presentation widgets"
-msgstr "展示小工具"
-
-msgid "Search engine"
-msgstr "搜索引擎"
-
-msgid "Navigation links"
-msgstr "导航链接"
-
-msgid "Selected entries"
-msgstr "精选的文章"
-
-msgid "Best of me"
-msgstr "我最好的文章"
-
-msgid "Blog languages"
-msgstr "博客语言"
-
-msgid "With entries counts"
-msgstr "带有文章计数"
-
-msgid "Subscribe links"
-msgstr "订阅链接"
-
-msgid "Subscribe"
-msgstr "订阅"
-
-msgid "Feeds type:"
-msgstr "Feeds 类型："
-
-msgid "Feed reader"
-msgstr "Feed 读者"
-
-msgid "Somewhere else"
-msgstr "别的什么地方"
-
-msgid "Entries limit:"
-msgstr "文章限制："
-
-msgid "Text"
-msgstr "文本"
-
-msgid "Text:"
-msgstr "文本："
-
-msgid "Last entries"
-msgstr "最新文章"
-
-msgid "Uncategorized"
-msgstr "未分类"
-
-msgid "Tag:"
-msgstr "标签："
-
-msgid "Last comments"
-msgstr "最新评论"
-
-msgid "Comments limit:"
-msgstr "评论限制："
-
-msgid "Home"
-msgstr "主页"
-
-msgid "Archives"
-msgstr "归档"
-
-#, php-format
-msgid "This blog's entries %s feed"
-msgstr "此博客的文章 %d feed"
-
-#, php-format
-msgid "This blog's comments %s feed"
-msgstr "此博客的评论 %s feed"
-
-msgid "Entries feed"
-msgstr "文章 feed"
-
-msgid "Comments feed"
-msgstr "评论 feed"
-
-msgid "navigation"
-msgstr "导航"
-
-msgid "extra"
-msgstr "额外"
-
-msgid "Widgets"
-msgstr "小工具"
-
-msgid "Are you sure you want to reset sidebars?"
-msgstr "您确定要重置侧边栏吗？"
-
-msgid "Available widgets"
-msgstr "可用的小工具"
-
-msgid "Append to:"
-msgstr "追加到："
-
-msgid "add widgets to sidebars"
-msgstr "添加小工具和侧边栏"
-
-msgid "Navigation sidebar"
-msgstr "导航侧边栏"
-
-msgid "Extra sidebar"
-msgstr "额外的侧边栏"
-
-msgid "update sidebars"
-msgstr "更新侧边栏"
-
-msgid "reset sidebars"
-msgstr "重置侧边栏"
-
-msgid "Widget templates tags"
-msgstr "小工具模板标签"
-
-msgid "If you are allowed to edit your theme templates, you can directly add widgets as templates tags, with their own configuration."
-msgstr "如果您被允许编辑您的主题模板，您可以直接以模板标签方式添加小工具，并附加各自的配置。"
-
-msgid "To add a widget in your template, you need to write code like this:"
-msgstr "要在您的模板中添加小工具，您下需要这样写代码："
-
-msgid "Widget ID"
-msgstr "小工具 ID"
-
-msgid "Setting name"
-msgstr "设置名称"
-
-msgid "Setting value"
-msgstr "设置值"
-
-msgid "Here are the following available widgets for your blog:"
-msgstr "这里是您博客可用的小工具："
-
-msgid "Widget ID:"
-msgstr "小工具 ID："
-
-msgid "No setting for this widget"
-msgstr "这个小工具没有设置"
-
-msgid "Setting name:"
-msgstr "设置名称："
-
-msgid "No widget."
-msgstr "没有小工具。"
-
-msgid "order"
-msgstr "顺序"
-
-msgid "Remove widget"
-msgstr "移除小工具"
-
-#~ msgid "Blogroll"
-#~ msgstr "博客链接"
-
-#~ msgid "Save order"
-#~ msgstr "保存顺序"
-
-#~ msgid "External media"
-#~ msgstr "外部媒体"
-
-#~ msgid "External media selector"
-#~ msgstr "外部媒体选择器"
-
-#~ msgid "Supported media services"
-#~ msgstr "支持的媒体服务"
-
-#~ msgid "Please enter the URL of the page containing the video you want to include in your post."
-#~ msgstr "请输入您要包含到文章中的视频页面的 URL。"
-
-#~ msgid "Page URL:"
-#~ msgstr "页面 URL："
-
-#~ msgid "Media alignment"
-#~ msgstr "媒体对齐"
-
-#~ msgid "Media title"
-#~ msgstr "媒体标题"
-
-#~ msgid "Pages"
-#~ msgstr "页面"
-
-#~ msgid "Unsupported service"
-#~ msgstr "不支持的服务"
-
-#~ msgid "Invalid page URL"
-#~ msgstr "无效的页面 URL"
Index: ocales/zh-CN/public.po
===================================================================
--- locales/zh-CN/public.po	(revision 221)
+++ 	(revision )
@@ -1,244 +1,0 @@
-# SOME DESCRIPTIVE TITLE.
-# This file is put in the public domain.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Dotclear 2\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-10-13 05:22+0200\n"
-"PO-Revision-Date: 2010-01-16 19:15+0800\n"
-"Last-Translator: lainme <lainme993@gmail.com>\n"
-"Language-Team: LANGUAGE <LL@li.org>\n"
-"Language: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Chinese\n"
-"X-Poedit-Country: CHINA\n"
-
-msgid "To content"
-msgstr "内容"
-
-msgid "To menu"
-msgstr "菜单"
-
-msgid "To search"
-msgstr "搜索"
-
-msgid "By"
-msgstr "作者"
-
-msgid "by"
-msgstr "作者"
-
-msgid "on"
-msgstr "于"
-
-msgid "On"
-msgstr "于"
-
-msgid "Continue reading"
-msgstr "继续阅读"
-
-msgid "no comment"
-msgstr "没有评论"
-
-msgid "one comment"
-msgstr "一个评论"
-
-msgid "%d comments"
-msgstr "%d 个评论"
-
-msgid "no trackback"
-msgstr "没有 trackback"
-
-msgid "one trackback"
-msgstr "一个 trackback"
-
-msgid "%d trackbacks"
-msgstr "%d 个 trackback"
-
-msgid "no attachment"
-msgstr "没有附件"
-
-msgid "one attachment"
-msgstr "一个附件"
-
-msgid "%d attachments"
-msgstr "%d 个附件"
-
-msgid "previous entries"
-msgstr "前一篇文章"
-
-msgid "page"
-msgstr "页面"
-
-#, fuzzy
-msgid "of"
-msgstr "of"
-
-msgid "next entries"
-msgstr "下一篇文章"
-
-msgid "Search"
-msgstr "搜索"
-
-msgid "Your search for <em>%1$s</em> returned no result."
-msgstr "您搜索 <em>%1$s</em> 没有匹配结果。"
-
-msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> result."
-msgstr "您搜索 <em>%1$s</em> 返回 <strong>%2$s</strong> 个结果。"
-
-msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> results."
-msgstr "您搜索 <em>%1$s</em> 返回 <strong>%2$s</strong> 个结果。"
-
-msgid "Home"
-msgstr "主页"
-
-msgid "All keywords"
-msgstr "所有关键字"
-
-msgid "Best of me"
-msgstr "我最好的文章"
-
-msgid "Languages"
-msgstr "语言"
-
-msgid "Categories"
-msgstr "分类目录"
-
-msgid "Subcategories"
-msgstr "子分类目录"
-
-msgid "Archives"
-msgstr "归档"
-
-msgid "Links"
-msgstr "链接"
-
-msgid "Subscribe"
-msgstr "订阅"
-
-msgid "Entries feed"
-msgstr "文章 feed"
-
-msgid "Comments feed"
-msgstr "评论 feed"
-
-msgid "This blog's comments Atom feed"
-msgstr "此博客评论的 Atom feed"
-
-msgid "This category's entries Atom feed"
-msgstr "此分类目录文章的 Atom feed"
-
-msgid "This category's comments Atom feed"
-msgstr "此分类目录评论的 Atom feed"
-
-msgid "This post's comments feed"
-msgstr "这篇文章的评论 feed"
-
-msgid "This post's comments Atom feed"
-msgstr "这篇文章的评论 Atom feed"
-
-msgid "Attachments"
-msgstr "附件"
-
-msgid "Permalink"
-msgstr "永久链接"
-
-msgid "Comments"
-msgstr "评论"
-
-msgid "Your comment"
-msgstr "您的评论"
-
-msgid "Your comment has been published."
-msgstr "您的评论已发布。"
-
-msgid "Your comment has been submitted and will be reviewed for publication."
-msgstr "您的评论已提交并将被复审以发布。"
-
-msgid "Add a comment"
-msgstr "添加一个评论"
-
-msgid "Name or nickname"
-msgstr "姓名或昵称"
-
-msgid "Email address"
-msgstr "邮件地址"
-
-msgid "Website"
-msgstr "网站"
-
-msgid "optional"
-msgstr "可选的"
-
-msgid "Comment"
-msgstr "评论"
-
-msgid "Comments can be formatted using a simple wiki syntax."
-msgstr ""
-
-msgid "HTML code is displayed as text and web addresses are automatically converted."
-msgstr "HTML 代码以文本显示，网站地址会被自动转化。"
-
-msgid "Remember me on this blog"
-msgstr "在这个博客上记住我"
-
-msgid "preview"
-msgstr "预览"
-
-msgid "send"
-msgstr "发送"
-
-msgid "They posted on the same topic"
-msgstr "他／她们讨论同一个话题"
-
-msgid "Trackback URL"
-msgstr "Trackback URL"
-
-msgid "You must provide an author name"
-msgstr "您必须提供作者姓名"
-
-msgid "You must provide a comment"
-msgstr "您必须提供一个评论"
-
-msgid "Email address is not valid"
-msgstr "邮件地址无效"
-
-msgid "Document not found"
-msgstr "文件不存在"
-
-msgid "The document you are looking for does not exist."
-msgstr "您寻找的文件不存在。"
-
-msgid "Powered by %s"
-msgstr "Powered by %s"
-
-msgid "Subscribe to"
-msgstr "订阅到"
-
-msgid "What is an RSS feed?"
-msgstr "什么是 RSS feed？"
-
-msgid "RSS feed is a free blog summary. It provides content (either posts or comments) or summaries of content, together with links to the full versions, and other metadata. The last published items may then be read by your favorite RSS <a href=\"http://en.wikipedia.org/wiki/Aggregator\">aggregator</a>."
-msgstr "RSS feed 是一个免费的博客摘要。它提供内容（文章或者评论）或者内容的摘要，以及到完整版本的链接和其他元标记。最新发表的条目可以使用您喜欢的 RSS <a href=\"http://en.wikipedia.org/wiki/Aggregator\">聚合器</a> 来阅读。"
-
-msgid "Simply copy the following URL into your aggregator:"
-msgstr "仅需复制下列 URL 到您的聚合器："
-
-msgid "Password needed"
-msgstr "需要密码"
-
-msgid "You must give a password to access this area."
-msgstr "您必须提供密码以进入这一区域。"
-
-msgid "Password:"
-msgstr "密码："
-
-msgid "You must provide a valid email address."
-msgstr "您必须提供有效的邮件地址。"
-
-msgid "Read"
-msgstr "读取"
Index: locales/zh-cn/date.po
===================================================================
--- locales/zh-cn/date.po	(revision 253)
+++ locales/zh-cn/date.po	(revision 253)
@@ -0,0 +1,135 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dotclear 2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-04-15 16:27+0200\n"
+"PO-Revision-Date: 2010-01-16 15:23+0800\n"
+"Last-Translator: lainme <lainme993@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+msgid "%Y-%m-%d %H:%M"
+msgstr "%Y-%m-%d %H:%M"
+
+msgid "_Jan"
+msgstr "一月"
+
+msgid "_Feb"
+msgstr "二月"
+
+msgid "_Mar"
+msgstr "三月"
+
+msgid "_Apr"
+msgstr "四月"
+
+msgid "_May"
+msgstr "五月"
+
+msgid "_Jun"
+msgstr "六月"
+
+msgid "_Jul"
+msgstr "七月"
+
+msgid "_Aug"
+msgstr "八月"
+
+msgid "_Sep"
+msgstr "九月"
+
+msgid "_Oct"
+msgstr "十月"
+
+msgid "_Nov"
+msgstr "十一月"
+
+msgid "_Dec"
+msgstr "十二月"
+
+msgid "January"
+msgstr "一月"
+
+msgid "February"
+msgstr "二月"
+
+msgid "March"
+msgstr "三月"
+
+msgid "April"
+msgstr "四月"
+
+msgid "May"
+msgstr "五月"
+
+msgid "June"
+msgstr "六月"
+
+msgid "July"
+msgstr "七月"
+
+msgid "August"
+msgstr "八月"
+
+msgid "September"
+msgstr "九月"
+
+msgid "October"
+msgstr "十月"
+
+msgid "November"
+msgstr "十一月"
+
+msgid "December"
+msgstr "十二月"
+
+msgid "_Mon"
+msgstr "星期一"
+
+msgid "_Tue"
+msgstr "星期二"
+
+msgid "_Wed"
+msgstr "星期三"
+
+msgid "_Thu"
+msgstr "星期四"
+
+msgid "_Fri"
+msgstr "星期五"
+
+msgid "_Sat"
+msgstr "星期六"
+
+msgid "_Sun"
+msgstr "星期日"
+
+msgid "Monday"
+msgstr "星期一"
+
+msgid "Tuesday"
+msgstr "星期二"
+
+msgid "Wednesday"
+msgstr "星期三"
+
+msgid "Thursday"
+msgstr "星期四"
+
+msgid "Friday"
+msgstr "星期五"
+
+msgid "Saturday"
+msgstr "星期六"
+
+msgid "Sunday"
+msgstr "星期日"
Index: locales/zh-cn/help/blowupConfig.html
===================================================================
--- locales/zh-cn/help/blowupConfig.html	(revision 253)
+++ locales/zh-cn/help/blowupConfig.html	(revision 253)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>Blowup 主题配置</title>
+</head>
+
+<body>
+<p>修改 Blowup 主题配置允许您轻松定制自己的主题。要这样做，仅需填写配置字段或者选择一个预定义的样式。</p>
+
+<h3>颜色</h3>
+
+<p>当您需要填入一个颜色值时，您应该使用十六进制格式。比如：“#FF0000”会显示红色。您也可以使用每个颜色字段下面的颜色选择器。</p>
+<p>如果您没有灵感，尝试浏览下列网页：</p>
+<ul>
+ <li><a href="http://zh.wikipedia.org/wiki/颜色列表">颜色列表</a>(维基百科)</li>
+ <li><a href="http://kuler.adobe.com/">Adobe Kuler</a></li>
+ <li><a href="http://colorblender.com/">ColorBlender</a></li>
+ <li><a href="http://www.colorcombos.com/">ColorCombos</a></li>
+</ul>
+
+<h3>度量单位</h3>
+
+<p>当您需要指定一个大小，它必须有一个度量单位。例如：“1em”。如果您不把单位包含在内，像素将作为默认的度量单位。</p>
+<p>下列度量单位是可用的：</p>
+<ul>
+  <li>px</li>
+  <li>em</li>
+  <li>ex</li>
+  <li>pt</li>
+  <li>%</li>
+</ul>
+
+<h3>头部图片</h3>
+
+<p>您可以从列表中选择一个头部图片来取代默认的。</p>
+
+<p>当您在图片列表中选择“定制...”，您将可以上传自己的图片。<strong>图片必须是 JPG 或者 PNG 格式并且必须精确等于 800 像素宽。</strong>
+
+<p>如果您上传一个 JPG 图片，一个边框将会被添加。而 PNG 图片不会如此(透明特性也会被保留)。</p>
+
+<h3>预定义的样式</h3>
+
+<p>您可以在“预定义的样式”下拉列表中选择一个预定义的样式。一旦您选择了样式，您必须提交表格以应用更改。</p>
+
+<p>您接着可以根据自己的喜好和需要修改预定义样式。</p>
+
+<h3>配置导入／导出</h3>
+
+<p>在 Blowup 选项的最后，您可以显示一个叫做“配置导入／导出”的区域。这个文本区域包括您当前使用的配置。您可以复制它以和其他人分享。</p>
+
+<p>要应用(导入)一个配置，您仅需要将文本区域的内容替换为您想要的配置。不要忘记点击“应用代码”按钮。</p>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_blog_pref.html
===================================================================
--- locales/zh-cn/help/core_blog_pref.html	(revision 253)
+++ locales/zh-cn/help/core_blog_pref.html	(revision 253)
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>博客设置</title>
+</head>
+
+<body>
+
+<h3>博客详情</h3>
+<dl>
+  <dt>博客 ID</dt>
+  <dd>博客的独有 ID。必须有，仅有超级管理员可以修改。</dd>
+  
+  <dt>博客名称</dt>
+  <dd>博客的名称，必须有。</dd>
+  
+  <dt>博客 URL</dt>
+  <dd>博客的完整 URL。必须有，仅有超级管理员可以修改。</dd>
+  
+  <dt>博客状态</dt>
+  <dd>
+    <ul>
+      <li><strong>在线</strong>：博客对浏览者开放</li>
+      <li><strong>不在线</strong>：博客对浏览者关闭，但对作者开放。</li>
+      <li><strong>移除</strong>：博客对浏览者和作者都关闭。</li>
+    </ul>
+  </dd>
+  
+  <dt>博客描述</dt>
+  <dd>这里您可以放置任何希望的对您博客的描述。这是一个简单的文本，没有格式化。</dd>
+</dl>
+
+<h3>博客配置</h3>
+<dl>
+  <dt>博客编辑者姓名</dt>
+  <dd>此博客负责人的姓名。它可以是拥有者或者发布者，如果存在的话。</dd>
+  
+  <dt>版权声明</dt>
+  <dd>对于博客版权的声明。</dd>
+  
+  <dt>默认语言</dt>
+  <dd>博客界面的语言。如果该语言包可获得，界面将被翻译。如果不存在，界面将保持默认的英语。</dd>
+  
+  <dt>博客时区</dt>
+  <dd>定义评论和 trackback 所用的时区。</dd>
+  
+  <dt>日期格式</dt>
+  <dd>博客文章的日期格式。看下面日期和时间格式参考部分以了解细节。</dd>
+  
+  <dt>时间格式</dt>
+  <dd>博客文章的时间格式。看下面日期和时间格式参考部分以了解细节。</dd>
+  
+  <dt>每页显示..篇文章</dt>
+  <dd>这个数字将被用来限制文章在主页、每个分类目录和 RSS feed 第一页的数目。</dd>
+  
+  <dt>保持评论开放..天</dt>
+  <dd>文章发布后评论和 trackback 保持开放的天数。留空则评论将会一直开放。</dd>
+  
+  <dt>在文章和评论上显示表情</dt>
+  <dd>显示序列字符例如 :-) 或者 ;-) 为图片。</dd>
+  
+  <dt>接受评论</dt>
+  <dd>在博客上全局接受评论。比每篇文章的设置要优先。</dd>
+  
+  <dt>接受 trackbacks</dt>
+  <dd>在博客上全局接受 trackbacks。比每篇文章的设置要优先。</dd>
+  
+  <dt>审核评论和 trackbacks</dt>
+  <dd>有这个选项，评论和 trackbacks 将会在编辑者同意之后发布。</dd>
+  
+  <dt>在评论和 trackbacks 链接上添加 “nofollow” 关系</dt>
+  <dd>在评论和链接上添加一个属性，告诉搜索机器人不要跟随这些链接。这个反垃圾评论特性已经证明了它的价值。</dd>
+  
+  <dt>对评论使用 Wiki 语法</dt>
+  <dd>允许在评论中使用一个 wiki 语法的子集。</dd>
+</dl>
+
+<h3>格式参考</h3>
+<p>一些字段可以配置来格式化日期和时间以满足您的需要。这是一些参考：</p>
+
+<ul>
+  <li><strong>%a</strong>：缩写的星期(本地)。</li>
+  <li><strong>%A</strong>：完整的星期(本地)。</li>
+  <li><strong>%b</strong>：缩写的月份(本地)。</li>
+  <li><strong>%B</strong>：完整的月份(本地)。</li>
+  <li><strong>%c</strong>：默认的本地日期和时间显示。</li>
+  <li><strong>%C</strong>：世纪(年份除以 100，在 00 到 99 范围内)</li>
+  <li><strong>%d</strong>：数字表示的月份(从 01 到 31)</li>
+  <li><strong>%D</strong>：等于 %m/%d/%y</li>
+  <li><strong>%e</strong>：数字表示的月份(从 1 到 31)</li>
+  <li><strong>%g</strong>：等于 %G，2 个数字。</li>
+  <li><strong>%G</strong>：4 位数字的年份，依据星期数(参见 %V)。格式和值等于 %Y，除了如果星期数如果属于前年或者下一年则当前年份将被使用。</li>
+  <li><strong>%h</strong>：等于 %b</li>
+  <li><strong>%H</strong>：一天中数字表示的小时，24 小时模式(从 00 到 23)</li>
+  <li><strong>%I</strong>：一天中数字表示的小时，12 小时模式(从 01 到 12)</li>
+  <li><strong>%j</strong>：一年中的一天，数字表示(从 001 到 366)</li>
+  <li><strong>%m</strong>：月份，数字表示(从 1 到 12)</li>
+  <li><strong>%M</strong>：分钟，数字表示</li>
+  <li><strong>%n</strong>：换行符</li>
+  <li><strong>%p</strong>：依据绝对时间或者本地设置，“am”或者“pm”。</li>
+  <li><strong>%r</strong>：小时，a.m. 和 p.m. 格式</li>
+  <li><strong>%R</strong>：小时，24 小时格式</li>
+  <li><strong>%S</strong>：秒，数字表示</li>
+  <li><strong>%t</strong>：制表符</li>
+  <li><strong>%T</strong>：当前时间(等于 %H:%M:%S)</li>
+  <li><strong>%u</strong>：一星期中哪一天，从 1 到 7。(1 表示星期一)</li>
+  <li><strong>%U</strong>：星期数，一年中第一个星期天成为第一个星期的第一天。</li>
+  <li><strong>%V</strong>：ISO 8601:1988 定义的星期数，数字表示，从 01 到 53。第一个星期是当前年份第一个大于 4 天的星期，其星期一是第一天。(使用 %G 或者 %g 取得和与所考虑的时间戳相一致的年份。)</li>
+  <li><strong>%W</strong>：一年中星期的数目，一年里第一个星期一作为第一个星期的开始</li>
+  <li><strong>%w</strong>：星期中的一天，数字表示，0 表示星期日</li>
+  <li><strong>%x</strong>：日期首选格式，没有时间</li>
+  <li><strong>%X</strong>：时间首选格式，没有日期</li>
+  <li><strong>%y</strong>：年份，两个数字(从 00 到 99)</li>
+  <li><strong>%Y</strong>：年份，4 位数字</li>
+  <li><strong>%Z ou %z</strong>：时区，名字或者缩写</li>
+  <li><strong>%%</strong>：一个“%”字符</li>
+</ul>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_categories.html
===================================================================
--- locales/zh-cn/help/core_categories.html	(revision 253)
+++ locales/zh-cn/help/core_categories.html	(revision 253)
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>分类目录</title>
+</head>
+
+<body>
+<h3>分类目录列表</h3>
+<dl>
+  <dt>创建一个新分类目录</dt>
+  <dd>选择您想要的新分类目录名字然后点击保存使创建生效。要修改它，点击列表中它的名字。</dd>
+  
+  <dt>改变分类目录排序</dt>
+  <dd>要改变分类目录排序，使用箭头样子的图片拖拽分类目录并点击<strong>保存排序</strong>。如果您没有看到箭头，使用没个分类目录旁边的数字字段。</dd>
+</dl>
+
+<h3>修改一个分类目录</h3>
+<dl>
+  <dt>标题</dt>
+  <dd>选择您想要给您的分类目录的名字然后点击保存以使之生效。</dd>
+  
+  <dt>URL</dt>
+  <dd>DotClear 为每个分类目录创建一个默认的 url，使之可以通过类似下面的方式到达：<strong>http://monblog.tld/category/我的分类目录</strong>。您可以点击左边的小锁来修改它以满足您的需要。</dd>
+  
+  <dt>描述</dt>
+  <dd>描述区域中的内容将会在选择一个博客的分类目录时展示。您可以用任何类型的内容填写它(段落、列表等)。这个区域的格式化方法是 HTML。</dd>
+</dl>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_comments.html
===================================================================
--- locales/zh-cn/help/core_comments.html	(revision 253)
+++ locales/zh-cn/help/core_comments.html	(revision 253)
@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>评论</title>
+</head>
+
+<body>
+<h3>评论列表过滤器</h3>
+<dl>
+  <dt>类型：</dt>
+  <dd>无、评论或者 trackbacks。</dd>
+  
+  <dt>状态：</dt>
+  <dd><ul>
+    <li><strong>垃圾评论</strong>：</li>
+    <li><strong>待审核</strong>：</li>
+    <li><strong>未发布</strong>：不在线</li>
+    <li><strong>发布</strong>：在线</li>
+  </ul></dd>
+  
+  <dt>排序依据：</dt>
+  <dd>选择：日期、文章标题、作者或者状态，然后选择排序顺序。</dd>
+  
+  <dt>排序</dt>
+  <dd>选择列表按照升序还是降序排列。</dd>
+  
+  <dt>评论作者。</dt>
+  <dd>搜索对大小写不敏感。如果您仅想搜索部分名字，您可以使用 <strong>*</strong> 通配符。</dd>
+  
+  <dt>每页的评论数：</dt>
+  <dd>允许你你选择列表每页的评论数目。</dd>
+</dl>
+
+<h3>修改或者添加一个评论</h3>
+<dl>
+  <dt>作者：</dt>
+  <dd>作者姓名。这个字段是必须的。</dd>
+  
+  <dt>邮箱：</dt>
+  <dd>作者的邮箱地址。</dd>
+  
+  <dt>网站：</dt>
+  <dd>评论作者的博客或者网站 URL。</dd>
+  
+  <dt>状态：</dt>
+  <dd><ul>
+    <li><strong>垃圾评论</strong>：</li>
+    <li><strong>待审核</strong>：</li>
+    <li><strong>未发布</strong>：不在线</li>
+    <li><strong>发布</strong>：在线</li>
+  </ul></dd>
+  
+  <dt>评论：</dt>
+ <dd>评论的内容。这个区域是用 html 格式化。</dd>
+</dl>
+</body>
+</html>
Index: locales/zh-cn/help/core_media.html
===================================================================
--- locales/zh-cn/help/core_media.html	(revision 253)
+++ locales/zh-cn/help/core_media.html	(revision 253)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>媒体管理中心</title>
+</head>
+
+<body>
+
+<h3>媒体列表</h3>
+<p>媒体管理中心的主页显示所选博客的一个可获取文件(媒体)的列表。</p>
+
+<p>您可以点击文件夹中媒体的图标或者名称，或是任何子文件夹来显示它们。</p>
+
+<p>选择一个 MP3 音乐文件将显示一个播放器立即播放这个文件。您的浏览器必须安装 Flash 插件以使播放器工作。</p>
+
+<p>图片将会和一个缩略图一起显示，如果可能。</p>
+
+<h3>添加文件</h3>
+<dl>
+  <dt>选择一个文件</dt>
+  <dd>这里您可以选择一个您的本地文件并发送到您的博客。如果文件大于限制的最大大小，它将不会被发送。</dd>
+  
+  <dt>标题</dt>
+  <dd>您要发送的文件的可选标题。</dd>
+  
+  <dt>私有的</dt>
+  <dd>如果您想要这个文件私有，选择它。也就是仅能被拥有者取得而不能从博客中取得。</dd>
+</dl>
+
+<h3>新目录</h3>
+<p>这个表格允许您在当前显示的目录中创建一个新的子目录。仅需为它选择一个名称，就像在您自己计算机上那样做。</p>
+
+<h3>媒体详情</h3>
+<p>这个页面显示关于当前选择的文件的一系列信息，并允许您进行一些操作。</p>
+
+<dl>
+  <dt>文件名</dt>
+  <dd>改变当前文件的名称。</dd>
+  
+  <dt>文件标题</dt>
+  <dd>给文件一个标题或者改变当前的。</dd>
+  
+  <dt>文件日期</dt>
+  <dd>改变文件的日期。</dd>
+  
+  <dt>私有的</dt>
+  <dd>指定这个文件将在媒体中心对除了拥有者外的所有人隐藏。</dd>
+  
+  <dt>新目录</dt>
+  <dd>允许您移动文件到另一个目录。</dd>
+  
+  <dt>改变文件</dt>
+  <dd>使用这个表格，您可以替换文件而保持所有属性不变(名字，标题等)。同理，您必须遵循最大允许的文件大小。</dd>
+</dl>
+
+<h3>图片的特别处理</h3>
+<p>当您添加一个图片，根据它的大小，最多 4 个版本将可以使用：</p>
+<ul>
+  <li><strong>方块</strong>：一个 48x48 像素方形所略图。</li>
+  <li><strong>所略图</strong>：图片最大边缩小到 100 像素。</li>
+  <li><strong>小</strong>：最大边缩小到 240 像素。</li>
+  <li><strong>中</strong>：最大边缩小到 500 像素。</li>
+  <li><strong>原始</strong>：原始，没有改变的图片。</li>
+</ul>
+
+<h3>向文章中添加文件</h3>
+<p>您可以简单地向您的文章中附加一个文件。首先，创建一篇新文章并保存。然后点击“向这篇文章添加文件”来打开媒体管理中心。</p>
+
+<p>仅需点击 [+] 图表(附加这个文件到文章)。接着文件就会被附加到文章中。</p>
+
+<p>附加的文件将会在文章页面显示，作为一个列表显示在文章内容旁边。MP3 文件将会通过 Flash 播放器使用，因此可以轻松被浏览者听到。</p>
+
+<h3>播放和广播音乐文件</h3>
+<p>所有附加的文件都将会包含在您的 RSS feeds 里，可以轻松播放任何类型的文件。</p>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_post.html
===================================================================
--- locales/zh-cn/help/core_post.html	(revision 253)
+++ locales/zh-cn/help/core_post.html	(revision 253)
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>编辑一篇文章</title>
+</head>
+
+<body>
+
+<h3>编辑一篇文章</h3>
+
+<dl>
+  <dt>文章标题</dt>
+  <dd>输入文章标题。这个字段是必须的。</dd>
+  
+  <dt>摘录</dt>
+  <dd>这个字段的内容将会显示在文章列表展示页面，例如首页或者分类目录页面，并跟随一个“继续阅读”链接。同时它也在每个文章页面的开头可见。如果您留空，<em>内容</em>字段将在首页和其他文章列表页面显示。</dd>
+  
+  <dt>内容</dt>
+  <dd>您文章的内容。这个字段是必须的。</dd>
+  
+  <dt>注释</dt>
+  <dd>这个文本区域是个人使用，用于注释或者备忘。您在这里输入的内容将永不会显示在博客上。</dd>
+  
+  <dt>分类目录</dt>
+  <dd>您文章的分类目录。要创建一个新分类目录，请看“分类目录”部分。您可以通过选择空白行以使您的文章没有分类目录。</dd>
+  
+  <dt>文章状态</dt>
+  <dd>允许您选择您文章的状态：
+    <ul>
+      <li><strong>待审核：</strong>发布状态还没有决定。</li>
+      <li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
+      <li><strong>未发布：</strong>文章不在线。</li>
+      <li><strong>已发布：</strong>文章在线。</li>
+    </ul>
+  </dd>
+  
+  <dt>发布于</dt>
+  <dd>这里您可以改变文章的发布日期和时间。如果文章状态是<em>计划的</em>，它将在此日期和时间上线。</dd>
+  
+  <dt>文本格式</dt>
+  <dd>选择文章语法。Wiki 是一个简化的语法并将会转化到有效的  xhtml&nbsp;；除非您对于 html 有极好的理解，我们建议选择 wiki 语法。看 wiki 语法参考以获取更多信息。</dd>
+  
+  <dt>接受评论</dt>
+  <dd>选择这个选框以使您的访客能够评论文章。相应的全局设置可以在博客设置中找到。</dd>
+  
+  <dt>接受 trackbacks</dt>
+  <dd>trackback 是一种可以让您的文章的一部分成为另一个博客的评论。选择这个选框以允许其他人对您的文章进行 trackback。相应的全局设置可以在博客设置中找到。</dd>
+  
+  <dt>精选文章</dt>
+  <dd>精选文章将会在您的博客菜单中列出，在标题“我最好的文章”下面。</dd>
+  
+  <dt>文章密码</dt>
+  <dd>您可以为您的文章输入一个密码。一个密码保护的文章将不会显示在您的博客上，它仅会使您给予文章链接(看<em>查看文章</em>)和密码的人可见。</dd>
+  
+  <dt>具体的 URL</dt>
+  <dd>点击它的锁，您可以解锁这个字段并为您的文章选择另一个 URL。如果您准备使用的 URL 已经被另一篇文章使用，一个数字将会附加其上。</dd>
+  
+  <dt>文章语言</dt>
+  <dd>您文章的 2 个字符的语言代码。它默认是您的(作为一个用户)语言，但您也可以改变为任何您希望的语言代码，例如“en”或者”fr“。代码用于文章的显示。</dd>
+  
+  <dt>附件</dt>
+  <dd>附件是所有您添加到文章中的媒体。链接<em>向这篇文章添加文件</em>允许您向文章中附加其他文件。记得在点击这个链接前保存您的修改。更多信息参考媒体管理中心帮助。</dd>
+</dl>
+
+<h3>评论</h3>
+<dl>
+  <dt>评论列表</dt>
+  <dd>在<em>评论</em>标签，您可以读取并改变您文章评论的状态。如果您被博客管理员允许，您可以设置您的评论在线或者不在线，删除它们或者标记为垃圾评论。</dd>
+  
+  <dt>添加一个评论</dt>
+  <dd>在<em>添加一个评论</em>标签，您可以回复您文章中的一个评论而不离开您的博客后台。这里使用的语法是无限制的纯 xhtml。使用这个区域就好像您在编辑一个评论。</dd>
+</dl>
+
+<h3>Trackback</h3>
+<p>要进行一个 trackback，点击<em>Ping 博客</em>链接。如果您的文章状态不是<em>已发布</em>，您将不会看到这个链接。</p>
+
+<dl>
+  <dt>ping 的 URL</dt>
+  <dd>在这里粘贴您想要 ping 的 trackback URL。</dd>
+  
+  
+  <dt>发送摘录</dt>
+  <dd>这个字段默认是您的文章开始的少数段落。这是将要发送到您要 ping 的博客的内容，同时有一个到您博客的链接。您可以通过编辑这个字段修改摘录。</dd>
+  
+  
+  <dt>自动发现 ping URL</dt>
+  <dd>如果您的文章链接特别的文章，并且拥有这些文章的博客允许，这个工具将会为您发现 ping 的 URL。</dd>
+</dl>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_posts.html
===================================================================
--- locales/zh-cn/help/core_posts.html	(revision 253)
+++ locales/zh-cn/help/core_posts.html	(revision 253)
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>管理文章</title>
+</head>
+
+<body>
+
+<h3>文章列表的过滤器</h3>
+
+<dl>
+  <dt>作者</dt>
+  <dd>允许您依据作者过滤。</dd>
+  
+  <dt>分类目录</dt>
+  <dd>依据分类目录过滤。</dd>
+  
+  <dt>状态</dt>
+  <dd><ul>
+    <li><strong>待审核：</strong>发布状态还没有决定。</li>
+    <li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
+    <li><strong>未发布：</strong>文章不在线。</li>
+    <li><strong>已发布：</strong>文章在线。</li>
+  </ul></dd>
+  
+  <dt>精选的</dt>
+  <dd>仅有精选的文章，或者非精选的。</dd>
+  
+  <dt>月份</dt>
+  <dd>过滤到一个特定的月份和年份。</dd>
+  
+  <dt>语言</dt>
+  <dd>通过博客上使用的不同语言过滤。</dd>
+  
+  <dt>排序依据</dt>
+  <dd>定义列表依据，或是日期、标题、作者、状态或者精选状态。</dd>
+  
+  <dt>排序</dt>
+  <dd>选择列表是升序或者降序排序。</dd>
+  
+  <dt>每页文章数</dt>
+  <dd>结果页面每页显示的文章数目。</dd>
+</dl>
+
+<h3>已选择的文章的动作</h3>
+<p>如果您的用户权限允许，您可以对您在列表中选择的文章进行批量操作。</p>
+
+<ul>
+  <li><strong>发布</strong>：设置文章在线。</li>
+  <li><strong>未发布</strong>：设置文章不在线。</li>
+  <li><strong>计划</strong>：计划设置文章在它们的发布日期上限。</li>
+  <li><strong>标记为待审核</strong>：清除其他发布状态。</li>
+  <li><strong>改变分类目录</strong>：引导您去分类目录列表来为文章选择一个新的文类列表。</li>
+  <li><strong>改变作者</strong>：允许您通过输入新作者 ID 来改变文章作者。</li>
+  <li><strong>删除</strong>：删除文章(这个操作无法恢复)。</li>
+</ul>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_user_pref.html
===================================================================
--- locales/zh-cn/help/core_user_pref.html	(revision 253)
+++ locales/zh-cn/help/core_user_pref.html	(revision 253)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>用户偏好</title>
+</head>
+
+<body>
+
+<h3>用户偏好</h3>
+<dl>
+  <dt>名字，姓氏</dt>
+  <dd>如果显示的名字为空，则作者名字将会以在这里设置的姓氏显示。</dd>
+  
+  <dt>显示的名字</dt>
+  <dd>您可以在这里选择您的文章中应该如何显示您的名字。</dd>
+  
+  <dt>邮箱</dt>
+  <dd>送达新评论通知的地址。</dd>
+  
+  <dt>URL</dt>
+  <dd>作者的网站网址。如果设置，作者姓名将会链接到这个网址。</dd>
+  
+  <dt>喜好的格式</dt>
+  <dd>选择喜好的文章语法。Wiki 是一个简单的语法并会转换到有效的xhtml&nbsp;; 除非您对于 html 有很好的理解，我们建议您选择 wiki 语法。</dd>
+  
+  <dt>默认的文章状态</dt>
+  <dd>默认的文章状态可以设置为：
+    <ul>
+    	<li><strong>待审核：</strong>发布状态还没有决定。</li>
+    	<li><strong>计划的：</strong>文章将会在<em>发布于</em>字段指定的时间和日期上线。</li>
+    	<li><strong>未发布：</strong>文章不在线。</li>
+    	<li><strong>已发布：</strong>文章在线。</li>
+    </ul>
+  </dd>
+  
+  <dt>文章编辑区域高度</dt>
+  <dd>文章编辑区域的高度。默认是 24。</dd>
+  
+  <dt>用户语言</dt>
+  <dd>用户发布自己文章所用的语言。如果翻译存在，界面也会以这个语言显示。</dd>
+  
+  <dt>用户时区</dt>
+  <dd>这个选项将会定义文章发布的时间显示。</dd>
+  
+  <dt>激活所见即所得模式</dt>
+  <dd>允许对文章和描述区域使用所见即所得编辑器。</dd>
+</dl>
+
+<h3>改变您的密码</h3>
+<p>要改变您的密码，在<em>新密码</em>和<em>确认密码</em>两个字段中将密码输入两次。密码最小长度是 6 个字符。</p>
+<p>如果不提供新密码，则保持当前设置。</p>
+
+</body>
+</html>
Index: locales/zh-cn/help/core_wiki.html
===================================================================
--- locales/zh-cn/help/core_wiki.html	(revision 253)
+++ locales/zh-cn/help/core_wiki.html	(revision 253)
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>Wiki 语法参考</title>
+</head>
+
+<body>
+
+<h3>Wiki 语法参考</h3>
+
+<p>wiki 语法是一个用最少的标签来提高您的文本的方法，用以满足基本的要求(标题，段落，引用，列表...)</p>
+
+<dl>
+<dt>区块元素</dt>
+<dd>
+<ul>
+  <li>在两个相似区块中间留一个空行。</li>
+  <li><strong>段落</strong>：自由文本，如果有另一个段落跟随其后，则以空行结束。</li>
+  <li><strong>标题</strong>：<code>!!! 标题</code>，<code>!! 标题</code>或者 <code>! 标题</code>，允许您使用不同级别的标题。</li>
+  <li><strong>水平线</strong>：<code>----</code></li>
+  <li><strong>列表</strong>：每一行以 <code>*</code> 或者 <code>#</code> 开始。对应无序列表和有序列表。列表层叠通过下列方式混合列表标记实现：
+<pre>
+* 项目 1
+** 项目 1.1
+* 项目 2
+*# 项目 2.1
+...
+</pre>
+  </li>
+  <li><strong>预格式化文本</strong>：每行以一个空格开始。</li>
+  <li><strong>区块引用</strong>：每一行以分号(<code>&gt;</code>)开始。</li>
+</ul>
+</dd>
+
+<dt>格式化标签</dt>
+<dd>
+<ul>
+  <li><strong>强调</strong>：两个引号 <code>''文本''</code></li>
+  <li><strong>着重强调</strong>：两个下划线 <code>__text__</code></li>
+  <li><strong>新一行</strong>：<code>%%%</code></li>
+  <li><strong>下划线</strong>：两个加号 <code>++text++</code></li>
+  <li><strong>删除线</strong>：两个减号 <code>--text--</code></li>
+  <li><strong>链接</strong>： <code>[url]</code>，<code>[名称|url]</code>，<code>[名称|url|语言]</code> 或者 <code>[名称|url|语言|标题]</code></li>
+  <li><strong>图片</strong>：
+  	<code>((url|替代文本))</code>，
+    <code>((url|替代文本|位置))</code> 或者 
+    <code>((url|替代文本|位置|长的描述))</code>。
+    <br />位置可以是 L 或 G(左边)，R 或 D(右边)或者 C(中间)。</li>
+  <li><strong>锚</strong>：<code>~anchor~</code></li>
+  <li><strong>首字母缩写</strong>：<code>??缩写|标题??</code></li>
+  <li><strong>行内 HTML</strong>：两个反引号 <code>``html 代码``</code></li>
+  <li><strong>行内引用</strong>：<code>{{引用}}</code>，<code>{{引用|语言}}</code> 或者 <code>{{引用|语言|url}}</code></li>
+  <li><strong>代码</strong>：<code>@@代码@@</code></li>
+  <li><strong>脚标</strong>：<code>$$脚标$$</code></li>
+</ul>
+</dd>
+
+<dt>未格式化文本</dt>
+<dd>如果您不想要一个格式化字符被解析，在前面添加 <code>\</code>。这样：<code>\[括号中的文本不会成为链接\]</code>
+</dd>
+
+<dt>HTML 代码</dt>
+<dd>即使您选择了 wiki syntax，您有时会需要更强大的格式华，例如 HTML 语法。按下面的方法做：
+<pre>
+///html
+&lt;p style="color:red"&gt;红色的文字&lt;/p&gt;
+///
+</pre>
+</dd>
+</dl>
+
+
+</body>
+</html>
Index: locales/zh-cn/help/themeEditor.html
===================================================================
--- locales/zh-cn/help/themeEditor.html	(revision 253)
+++ locales/zh-cn/help/themeEditor.html	(revision 253)
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<html>
+<head>
+  <title>主题编辑器</title>
+</head>
+
+<body>
+<p>主题编辑器让您改变正在使用的主题的模板文件，样式表和 JavaScript 文件。</p>
+
+<p>文件列表被划分为三个部分&nbsp;：</p>
+<ul>
+  <li>模板文件：所有模板</li>
+  <li>CSS 文件：所有样式表</li>
+  <li>JavaScript 文件</li>
+</ul>
+
+<p>文件名前面的黄色图标表明这个文件是当前主题的一部分。黑色图标意味着这是默认主题的一部分。</p>
+
+<p>如果您修改一个属于默认主题的文件，它将会被复制到您正在使用的主题里面。</p>
+
+<p>要修改一个文件，点击它的名字以将它的内容显示在编辑区域。如果文件是可写的，您将可以通过点击“保存”来保存您的修改。</p>
+
+<p>修改会在保存后立刻应用，所以要小心。</p>
+
+<p>为了帮助修改您的模板，您可以参考<a href="http://doc.dotclear.net/2.0/resources/templates">模板标签列表</a>。</p>
+
+</body>
+</html>
Index: locales/zh-cn/main.po
===================================================================
--- locales/zh-cn/main.po	(revision 261)
+++ locales/zh-cn/main.po	(revision 261)
@@ -0,0 +1,2833 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dotclear 2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
+"PO-Revision-Date: 2010-01-16 19:07+0800\n"
+"Last-Translator: lainme <lainme993@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+msgid "Dotclear has been upgraded."
+msgstr "Dotclear 己被升级。"
+
+msgid "Password reset"
+msgstr "密码重置"
+
+msgid "Someone has requested to reset the password for the following site and username."
+msgstr "有人请求为下列站点和用户重置密码。"
+
+msgid "Username:"
+msgstr "用户名："
+
+msgid "To reset your password visit the following address, otherwise just ignore this email and nothing will happen."
+msgstr "要重置您的密码浏览下列网站，否则不要理会这个邮件则什么都不会发生。"
+
+#, php-format
+msgid "The e-mail was sent successfully to %s."
+msgstr "邮件成功发送到 %s。"
+
+msgid "Your new password"
+msgstr "您的新密码"
+
+msgid "Password:"
+msgstr "密码："
+
+msgid "Your new password is in your mailbox."
+msgstr "您的新密码在您的邮箱里。"
+
+msgid "Passwords don't match"
+msgstr "密码不匹配"
+
+msgid "You didn't change your password."
+msgstr "您没有改变您的密码。"
+
+msgid "You have to change your password before you can login."
+msgstr "在您能登录前，您必须改变您的密码。"
+
+msgid "In order to login, you have to change your password now."
+msgstr "您必须现在更改密码以便登录。"
+
+#, fuzzy
+msgid "Safe Mode can only be used for super administrators."
+msgstr "您不是超级管理员。"
+
+msgid "Wrong username or password"
+msgstr "错误的用户名或密码"
+
+msgid "Back to login screen"
+msgstr "返回到登录界面"
+
+msgid "Request a new password"
+msgstr "请求一个新密码"
+
+msgid "Email:"
+msgstr "邮箱："
+
+msgid "recover"
+msgstr "恢复"
+
+msgid "Change your password"
+msgstr "改变您的密码"
+
+msgid "New password:"
+msgstr "新密码："
+
+msgid "Confirm password:"
+msgstr "确认密码："
+
+msgid "change"
+msgstr "更改"
+
+msgid "Safe mode login"
+msgstr ""
+
+msgid "This mode allows you to login without activating any of your plugins. This may be useful to solve compatibility problems"
+msgstr ""
+
+msgid "Disable or delete any plugin suspected to cause trouble, then log out and log back in normally."
+msgstr ""
+
+msgid "Remember my ID on this computer"
+msgstr "在这台计算机上记住我的 ID"
+
+#, fuzzy
+msgid "log in"
+msgstr "博客名称"
+
+msgid "You must accept cookies in order to use the private area."
+msgstr "您必须接受 cookies 以使用私有区域。"
+
+msgid "Get back to normal authentication"
+msgstr ""
+
+msgid "Connection issue?"
+msgstr ""
+
+msgid "I forgot my password"
+msgstr "我忘记了我的密码"
+
+msgid "I want to log in in safe mode"
+msgstr ""
+
+msgid "New blog"
+msgstr "新博客"
+
+msgid "Blogs"
+msgstr "博客"
+
+msgid "Blog details"
+msgstr "博客详情"
+
+msgid "Blog ID:"
+msgstr "博客 ID："
+
+msgid "Required field"
+msgstr "必添字段"
+
+msgid "At least 2 characters using letters, numbers or symbols."
+msgstr "至少 2 个字符，使用字母、数字或符号。"
+
+msgid "Please note that changing your blog ID may require changes in your public index.php file."
+msgstr "请注意改变您的博客 ID 可能需要修改您的公共 index.php 文件。"
+
+msgid "Blog name:"
+msgstr "博客名称："
+
+msgid "Blog URL:"
+msgstr "博客 URL："
+
+msgid "Blog description:"
+msgstr "博客描述："
+
+msgid "Save"
+msgstr "保存"
+
+msgid "No such blog ID"
+msgstr "没有这样的博客 ID"
+
+msgid "Password verification failed"
+msgstr "密码验证失败"
+
+msgid "Delete a blog"
+msgstr "删除一个博客"
+
+msgid "Warning"
+msgstr "警告"
+
+#, php-format
+msgid "You are about to delete the blog %s. Every entry, comment and category will be deleted."
+msgstr "您准备删除博客 %s。每篇文章、评论和分类目录都将被删除。"
+
+msgid "Please give your password to confirm the blog deletion."
+msgstr "请提供您的密码以确认删除博客。"
+
+msgid "Your password:"
+msgstr "您的密码："
+
+msgid "Delete this blog"
+msgstr "删除这个博客"
+
+msgid "No given blog id."
+msgstr "没有这样的博客 ID。"
+
+msgid "No such blog."
+msgstr "没有这样的博客。"
+
+msgid "year/month/day/title"
+msgstr "年／月／日／标题"
+
+msgid "year/month/title"
+msgstr "年／月／标题"
+
+msgid "year/title"
+msgstr "年／标题"
+
+msgid "title"
+msgstr "标题"
+
+msgid "Title"
+msgstr "标题"
+
+msgid "Title, Date"
+msgstr "标题，日期"
+
+msgid "Title, Country, Date"
+msgstr "标题，国家，日期"
+
+msgid "Title, City, Country, Date"
+msgstr "标题，城市，国家，日期"
+
+msgid "I would like search engines and archivers to index and archive my blog's content."
+msgstr "我想要搜索引擎和 archivers 来索引和存档我的博客内容。"
+
+msgid "I would like search engines and archivers to index but not archive my blog's content."
+msgstr "我想要搜索引擎和 archivers 来索引但不要存档我的博客内容。"
+
+msgid "I would like to prevent search engines and archivers from indexing or archiving my blog's content."
+msgstr "我想要阻止搜索引擎和 archivers 来索引或者存档我的博客内容。"
+
+#, fuzzy
+msgid "That blog Id is already in use."
+msgstr "Dotclear 已被安装。"
+
+msgid "Invalid language code"
+msgstr "无效的语言代码"
+
+msgid "Blog settings"
+msgstr "博客设置"
+
+msgid "Warning: except for special configurations, it is generally advised to have a trailing \"/\" in your blog URL in PATH_INFO mode."
+msgstr ""
+
+msgid "Warning: except for special configurations, it is generally advised to have a trailing \"?\" in your blog URL in QUERY_STRING mode."
+msgstr ""
+
+msgid "Blog has been successfully created."
+msgstr "博客已被成功创建。"
+
+msgid "Blog has been successfully updated."
+msgstr "博客已被成功更新。"
+
+msgid "Parameters"
+msgstr "参数"
+
+msgid "URL scan method:"
+msgstr "URL 扫描方法："
+
+msgid "Blog status:"
+msgstr "博客状态："
+
+msgid "Blog configuration"
+msgstr "博客配置"
+
+msgid "Blog editor name:"
+msgstr "博客编辑者姓名："
+
+msgid "Default language:"
+msgstr "默认语言："
+
+msgid "Blog timezone:"
+msgstr "博客时区："
+
+msgid "Copyright notice:"
+msgstr "版权声明："
+
+msgid "New post URL format:"
+msgstr "新文章的 URL 格式："
+
+msgid "Enable XML/RPC interface"
+msgstr "激活 XML/RPC 接口"
+
+msgid "more information"
+msgstr "更多信息"
+
+msgid "Comments and trackbacks"
+msgstr "评论和 trackbacks"
+
+msgid "Accept comments"
+msgstr "接受评论"
+
+msgid "Moderate comments"
+msgstr "审核评论"
+
+#, php-format
+msgid "Leave comments open for %s days"
+msgstr "保持评论开放 %s 天"
+
+msgid "Leave blank to disable this feature."
+msgstr "留空以禁用该特性。"
+
+msgid "Wiki syntax for comments"
+msgstr "对评论使用Wiki语法"
+
+msgid "Accept trackbacks"
+msgstr "接受 trackbacks"
+
+msgid "Moderate trackbacks"
+msgstr "审核 trackbacks"
+
+#, php-format
+msgid "Leave trackbacks open for %s days"
+msgstr "保持 trackbacks 开放 %s 天"
+
+msgid "Add \"nofollow\" relation on comments and trackbacks links"
+msgstr "在评论和 trackbacks 链接上添加“nofollow”关系"
+
+msgid "Blog presentation"
+msgstr "博客展示"
+
+msgid "Date format:"
+msgstr "日期格式："
+
+msgid "Time format:"
+msgstr "时间格式："
+
+msgid "Display smilies on entries and comments"
+msgstr "在文章和评论上显示表情"
+
+#, php-format
+msgid "Display %s entries per page"
+msgstr "每页显示 %s 篇文章"
+
+#, php-format
+msgid "Display %s entries per feed"
+msgstr "每个 feed 显示 %s 篇文章"
+
+#, php-format
+msgid "Display %s comments per feed"
+msgstr "每个 feed 显示 %s 个评论"
+
+msgid "Truncate feeds"
+msgstr "截断 feeds"
+
+msgid "Media and images"
+msgstr "媒体和图片"
+
+msgid "Generated image sizes (in pixels)"
+msgstr "产生的图片大小(用像素)"
+
+msgid "Thumbnails:"
+msgstr "缩略图："
+
+msgid "Small:"
+msgstr "小："
+
+msgid "Medium:"
+msgstr "中："
+
+msgid "Inserted image title"
+msgstr "插入的图片标题"
+
+msgid "This defines image tag title when you insert it in a post from the media manager. It is retrieved from the picture's metadata."
+msgstr "当您从媒体中心将它插入一篇文章时，这会定义一个图片标签题目。它从图片的元数据中检索。"
+
+msgid "Search engines robots policy"
+msgstr "搜索引擎机器人规则"
+
+msgid "XML/RPC interface"
+msgstr "XML/RPC 接口"
+
+msgid "XML/RPC interface allows you to edit your blog with an external client."
+msgstr "XML/RPC 接口允许您使用外部客户端编辑您的博客。"
+
+msgid "XML/RPC interface is not active. Change settings to enable it."
+msgstr "XML/RPC 接口没有激活。更改设置以激活它。"
+
+msgid "XML/RPC interface is active. You should set the following parameters on your XML/RPC client:"
+msgstr "XML/RPC 接口已激活。您应该在您的 XML/RPC 客户端设置下列参数："
+
+msgid "Server URL:"
+msgstr "服务器 URL："
+
+msgid "Blogging system:"
+msgstr "博客系统："
+
+msgid "User name:"
+msgstr "用户名："
+
+msgid "your password"
+msgstr "您的密码"
+
+msgid "Users"
+msgstr "用户"
+
+msgid "Users on this blog"
+msgstr "这个博客上的用户"
+
+msgid "No users"
+msgstr "没有用户"
+
+msgid "change permissions"
+msgstr "改变权限"
+
+msgid "Super administrator"
+msgstr "超级管理员"
+
+msgid "You can't remove default theme."
+msgstr "您不能移除默认主题。"
+
+msgid "Theme does not exist."
+msgstr "主题不存在。"
+
+msgid "Unable to move uploaded file."
+msgstr "无法移动上传的文件。"
+
+msgid "An error occurred while downloading the file."
+msgstr "当下载这个文件时产生错误。"
+
+#, php-format
+msgid "by %s"
+msgstr "作者为 %s"
+
+#, php-format
+msgid "version %s"
+msgstr "版本 %s"
+
+#, php-format
+msgid "(built on \"%s\")"
+msgstr "(在“%s”生成)"
+
+#, php-format
+msgid "(requires \"%s\")"
+msgstr "(需要“%s”)"
+
+msgid "Stylesheet"
+msgstr "样式表"
+
+msgid "Theme configuration"
+msgstr "主题配置"
+
+msgid "Blog themes"
+msgstr "博客主题"
+
+msgid "Blog appearance"
+msgstr "博客外观"
+
+msgid "Theme has been successfully changed."
+msgstr "成功改变主题。"
+
+msgid "Theme has been successfully installed."
+msgstr "成功安装主题。"
+
+msgid "Theme has been successfully upgraded"
+msgstr "成功升级主题。"
+
+msgid "Theme has been successfully deleted."
+msgstr "成功删除主题。"
+
+#, php-format
+msgid "You can find additional themes for your blog on %s."
+msgstr "您可以在 %s 找到用于您博客的额外主题。"
+
+msgid "To install or upgrade a theme you generally just need to upload it in \"Install or upgrade a theme\" section."
+msgstr "要安装或者升级一个主题，您一般仅需要在“安装或升级一个主题”中上传它。"
+
+msgid "Themes"
+msgstr "主题"
+
+#, php-format
+msgid "You are currently using \"%s\""
+msgstr "您正在使用“%s”"
+
+msgid "use selected theme"
+msgstr "使用选中的主题"
+
+msgid "delete selected theme"
+msgstr "删除选中的主题"
+
+msgid "Install or upgrade a theme"
+msgstr "安装或升级一个主题"
+
+msgid "You can install themes by uploading or downloading zip files."
+msgstr "您可以通过上传或下载 zip 文件安装主题。"
+
+msgid "Upload a zip file"
+msgstr "上传一个 zip 文件"
+
+msgid "Theme zip file:"
+msgstr "主题 zip 文件："
+
+msgid "Upload theme"
+msgstr "上传主题"
+
+msgid "Download a zip file"
+msgstr "下载一个 zip 文件"
+
+msgid "Theme zip file URL:"
+msgstr "主题 zip 文件的 URL："
+
+msgid "Download theme"
+msgstr "下载主题"
+
+msgid "To enable this function, please give write access to your themes directory."
+msgstr "要激活这个功能，请赋予您的主题目录写权限。"
+
+msgid "back"
+msgstr "返回"
+
+msgid "Last update"
+msgstr "最后更新"
+
+msgid "Blog name"
+msgstr "博客名称"
+
+msgid "Blog ID"
+msgstr "博客 ID"
+
+msgid "Descending"
+msgstr "降序"
+
+msgid "Ascending"
+msgstr "升序"
+
+msgid "List of blogs"
+msgstr "博客列表"
+
+msgid "Blog has been successfully deleted."
+msgstr "博客已被成功删除。"
+
+msgid "Create a new blog"
+msgstr "创建一个新博客"
+
+msgid "Filters"
+msgstr "过滤器"
+
+msgid "Order by:"
+msgstr "排序依据："
+
+msgid "Sort:"
+msgstr "排序："
+
+msgid "Search:"
+msgstr "搜索："
+
+msgid "Blogs per page"
+msgstr "每页的博客数目"
+
+#, fuzzy
+msgid "Apply filters"
+msgstr "添加文件"
+
+msgid "No blog"
+msgstr "没有博客"
+
+msgid "Page(s)"
+msgstr "页数"
+
+msgid "Entries"
+msgstr "文章"
+
+msgid "Status"
+msgstr "状态"
+
+#, php-format
+msgid "Edit blog %s"
+msgstr "编辑博客 %s"
+
+msgid "edit"
+msgstr "编辑"
+
+#, php-format
+msgid "Switch to blog %s"
+msgstr "切换到博客 %s"
+
+msgid "This category does not exist."
+msgstr "这个分类目录不存在。"
+
+msgid "Categories"
+msgstr "分类目录"
+
+msgid "The category has been successfully created."
+msgstr "成功创建分类目录。"
+
+msgid "The category has been successfully removed."
+msgstr "成功移除分类目录。"
+
+msgid "Categories have been successfully reordered."
+msgstr "成功重新排序分类目录。"
+
+msgid "The category has been successfully moved."
+msgstr "成功移动分类目录。"
+
+msgid "No category yet."
+msgstr "还没有分类目录。"
+
+msgid "Categories list"
+msgstr "分类目录列表"
+
+#, php-format
+msgid "%d entries"
+msgstr "%d 篇文章"
+
+#, php-format
+msgid "%d entry"
+msgstr "%d 篇文章"
+
+msgid "total:"
+msgstr "总共："
+
+msgid "URL:"
+msgstr "URL："
+
+msgid "Add a new category"
+msgstr "添加一个新的分类目录"
+
+msgid "Title:"
+msgstr "标题："
+
+msgid "Parent:"
+msgstr "上层目录："
+
+msgid "Top level"
+msgstr "顶层"
+
+msgid "Remove a category"
+msgstr "移除一个分类目录"
+
+msgid "Choose a category to remove:"
+msgstr "选择要移除的分类目录："
+
+msgid "ok"
+msgstr "确定"
+
+msgid "Reorder categories"
+msgstr "重新排序分类目录"
+
+msgid "This will relocate all categories on the top level"
+msgstr "这将会把所有分类目录定位到顶层"
+
+msgid "Reorder"
+msgstr "重新排序"
+
+msgid "New category"
+msgstr "新分类目录"
+
+msgid "Category has been successfully updated."
+msgstr "成功更新分类目录。"
+
+msgid "Category information"
+msgstr "分类目录信息"
+
+msgid "Warning: If you set the URL manually, it may conflict with another category."
+msgstr "警告：如果您手动设置 URL，它可能与其他分类目录冲突。"
+
+msgid "Description:"
+msgstr "描述："
+
+msgid "Move this category"
+msgstr "移动这个分类目录"
+
+msgid "Category parent"
+msgstr "分类目录的上层目录"
+
+msgid "Category sibling"
+msgstr "分类目录的同层"
+
+msgid "Move current category"
+msgstr "移动当前的分类目录"
+
+msgid "after"
+msgstr "后于"
+
+msgid "before"
+msgstr "前于"
+
+#, fuzzy
+msgid "position: "
+msgstr "MP3 处理"
+
+msgid "Entry does not exist."
+msgstr "文章不存在。"
+
+msgid "No comment"
+msgstr "没有评论"
+
+msgid "You can't edit this comment."
+msgstr "您不能编辑这个评论。"
+
+msgid "Edit comment"
+msgstr "编辑评论"
+
+msgid "Comment has been successfully updated."
+msgstr "成功更新评论。"
+
+#, php-format
+msgid "Your comment on my blog %s"
+msgstr "您在我的博客 %s 上的评论"
+
+#, php-format
+msgid ""
+"Hi!\n"
+"\n"
+"You wrote a comment on:\n"
+"%s\n"
+"\n"
+"\n"
+msgstr ""
+"您好，\n"
+"\n"
+"您写了一则评论在：\n"
+"%s\n"
+"\n"
+"\n"
+
+msgid "Send an e-mail"
+msgstr "发送一封邮件"
+
+#, php-format
+msgid "Back to \"%s\""
+msgstr "返回到“%s”"
+
+msgid "IP address:"
+msgstr "IP 地址："
+
+msgid "Date:"
+msgstr "日期："
+
+msgid "Author:"
+msgstr "作者："
+
+msgid "Web site:"
+msgstr "网站："
+
+msgid "Status:"
+msgstr "状态："
+
+msgid "Comment:"
+msgstr "评论："
+
+msgid "Delete"
+msgstr "删除"
+
+msgid "comment"
+msgstr "评论"
+
+msgid "trackback"
+msgstr "trackback"
+
+msgid "Date"
+msgstr "日期"
+
+msgid "Entry title"
+msgstr "文章标题"
+
+msgid "Author"
+msgstr "作者"
+
+msgid "publish"
+msgstr "发布"
+
+msgid "unpublish"
+msgstr "未发布"
+
+msgid "mark as pending"
+msgstr "标记为待审核"
+
+msgid "mark as junk"
+msgstr "标记为垃圾评论"
+
+msgid "delete"
+msgstr "删除"
+
+msgid "Type:"
+msgstr "类型："
+
+msgid "Comments per page"
+msgstr "每页的评论数"
+
+msgid "Comment author:"
+msgstr "评论作者："
+
+msgid "You have one spam comments."
+msgstr "您有一个垃圾评论。"
+
+msgid "Show it."
+msgstr "显示它。"
+
+#, php-format
+msgid "You have %s spam comments."
+msgstr "您有 %s 个垃圾评论。"
+
+msgid "Show them."
+msgstr "显示它们。"
+
+msgid "Selected comments action:"
+msgstr "选择的评论动作："
+
+#, fuzzy
+msgid "action: "
+msgstr "动作"
+
+msgid "Comments"
+msgstr "评论"
+
+#, php-format
+msgid "%d comment"
+msgstr "%d 个评论"
+
+#, php-format
+msgid "%d comments"
+msgstr "%d 个评论"
+
+msgid "New entry"
+msgstr "新文章"
+
+#, fuzzy
+msgid "My preferences"
+msgstr "用户偏好"
+
+#, fuzzy
+msgid "Documentation and support"
+msgstr "文档"
+
+msgid "Latest news"
+msgstr "最新新闻"
+
+msgid "Dashboard"
+msgstr "控制板"
+
+msgid "Make this blog my default blog"
+msgstr "使这个博客成为我的默认博客"
+
+msgid "This blog is offline"
+msgstr "这个博客不在线"
+
+msgid "This blog is removed"
+msgstr "这个博客已移除"
+
+msgid "DC_ADMIN_URL is not defined, you should edit your configuration file."
+msgstr "DC_ADMIN_URL 没有定义，您需要编辑您的配置文件。"
+
+msgid "Following plugins have been installed:"
+msgstr "下列插件已被安装："
+
+msgid "Following plugins have not been installed:"
+msgstr "下列插件还没有安装："
+
+#, php-format
+msgid "Dotclear %s is available!"
+msgstr "Dotclear %s 可用！"
+
+msgid "Upgrade now"
+msgstr "现在升级"
+
+msgid "Remind me later"
+msgstr "稍后提醒我"
+
+msgid "information about this version"
+msgstr ""
+
+#, fuzzy
+msgid "Some plugins are installed twice:"
+msgstr "下列插件已被安装："
+
+msgid "Quick entry"
+msgstr "快速书写文章"
+
+msgid "Content:"
+msgstr "内容："
+
+msgid "Category:"
+msgstr "分类目录："
+
+msgid "save and publish"
+msgstr "保存并发布"
+
+#, php-format
+msgid "PHP version is %s (5.0 or earlier needed)."
+msgstr "PHP 版本是 %s (需要 5.0 或更早)。"
+
+msgid "Multibyte string module (mbstring) is not available."
+msgstr "多字节字符串模块(mbstring)不可用。"
+
+msgid "Iconv module is not available."
+msgstr "Iconv 模块不可用。"
+
+msgid "Output control functions are not available."
+msgstr "输出控制功能不可用。"
+
+msgid "SimpleXML module is not available."
+msgstr "SimpleXML 模块不可用。"
+
+msgid "DOM XML module is not available."
+msgstr "DOM XML 模块不可用。"
+
+msgid "PCRE engine does not support UTF-8 strings."
+msgstr "PCRE 引擎不支持 UTF-8 字符串。"
+
+msgid "SPL module is not available."
+msgstr "SPL 模块不可用。"
+
+#, php-format
+msgid "MySQL version is %s (4.1 or earlier needed)."
+msgstr "MySQL 版本是 %s (需要 4.1 或者更早)。"
+
+msgid "MySQL InnoDB engine is not available."
+msgstr "MySQL InnoDB 引擎不可用。"
+
+#, php-format
+msgid "PostgreSQL version is %s (8.0 or earlier needed)."
+msgstr "PostgreSQL 版本是 %s (需要 8.0 或者更早)。"
+
+msgid "Please set a master key (DC_MASTER_KEY) in configuration file."
+msgstr "请在配置文件中设置一个管理者钥匙(DC_MASTER_KEY)。"
+
+msgid "Dotclear is already installed."
+msgstr "Dotclear 已被安装。"
+
+msgid "Dotclear cannot be installed."
+msgstr "Dotclear 无法被安装。"
+
+msgid "No user ID given"
+msgstr "没有指定用户 ID"
+
+msgid "User ID must contain at least 2 characters using letters, numbers or symbols."
+msgstr "用户 ID 必须包含至少 2 个字符，使用字母、数字或者符号。"
+
+msgid "Invalid email address"
+msgstr "无效的邮箱地址"
+
+msgid "No password given"
+msgstr "没有指定密码"
+
+msgid "Password must contain at least 6 characters."
+msgstr "密码必须包含不少于 6 个字符。"
+
+msgid "My first blog"
+msgstr "我的第一个博客"
+
+msgid "%A, %B %e %Y"
+msgstr ""
+
+msgid "Welcome to Dotclear!"
+msgstr "欢迎来到 Dotclear！"
+
+msgid "This is your first entry. When you're ready to blog, log in to edit or delete it."
+msgstr "这是您的第一篇文章。当您准备写博客，登入修改或者删除它。"
+
+msgid "Dotclear Team"
+msgstr "Dotclear 团队"
+
+msgid ""
+"<p>This is a comment.</p>\n"
+"<p>To delete it, log in and view your blog's comments. Then you might remove or edit it.</p>"
+msgstr ""
+"<p>这是一个评论。</p>\n"
+"<p>要删除它，登入并查看您的博客评论。然后您可以移除或者修改它。</p>"
+
+#, fuzzy
+msgid "Pages"
+msgstr "页数"
+
+#, fuzzy
+msgid "Blogroll"
+msgstr "博客"
+
+#, fuzzy
+msgid "Dotclear Install"
+msgstr "Dotclear 安装"
+
+msgid "show"
+msgstr "显示"
+
+msgid "Dotclear installation"
+msgstr "Dotclear 安装"
+
+#, php-format
+msgid "Cache directory %s is not writable."
+msgstr "缓存目录 %s 不可写。"
+
+msgid "Errors:"
+msgstr "错误："
+
+msgid "Configuration file has been successfully created."
+msgstr "配置文件已被成功创建。"
+
+msgid "User information"
+msgstr "用户信息"
+
+msgid "Please provide the following information needed to create the first user."
+msgstr "请提供以下需要的信息来创建第一个用户。"
+
+msgid "First Name:"
+msgstr "名："
+
+msgid "Last Name:"
+msgstr "姓："
+
+msgid "Username and password"
+msgstr "用户名和密码"
+
+msgid "save"
+msgstr "保存"
+
+msgid "All done!"
+msgstr "一切完成！"
+
+msgid "Dotclear has been successfully installed. Here is some useful information you should keep."
+msgstr "Dotclear 已经成功安装。这是一些您应当保留的有用信息。"
+
+msgid "Your account"
+msgstr "您的帐户"
+
+msgid "Your blog"
+msgstr "您的博客"
+
+msgid "Blog address:"
+msgstr "博客地址："
+
+msgid "Administration interface:"
+msgstr "管理界面："
+
+msgid "Manage your blog now"
+msgstr "现在开始管理您的博客"
+
+msgid "Installation can not be completed"
+msgstr ""
+
+msgid "For the said reasons, Dotclear can not be installed. Please refer to <a href=\"http://dotclear.org/documentation/2.0/admin/install\">the documentation</a> to learn how to correct the problem."
+msgstr ""
+
+#, php-format
+msgid "File %s does not exist."
+msgstr "%s 文件不存在。"
+
+#, php-format
+msgid "Cannot write %s file."
+msgstr "无法写入 %s 文件。"
+
+msgid "Dotclear installation wizard"
+msgstr "Dotclear 安装向导"
+
+msgid "Welcome"
+msgstr ""
+
+msgid "To complete your Dotclear installation and start writing on your blog, we just need to know how to access your database and who you are. Just fill this two steps wizard with this information and we will be done."
+msgstr ""
+
+#, fuzzy
+msgid "Attention:"
+msgstr "动作"
+
+msgid "this wizard may not function on every host. If it does not work for you, please refer to <a href=\"http://dotclear.org/documentation/2.0/admin/install\">the documentation</a> to learn how to create the <strong>config.php</strong> file manually."
+msgstr ""
+
+msgid "System information"
+msgstr "系统信息"
+
+msgid "Please provide the following information needed to create your configuration file."
+msgstr "请提供以下需要的信息来创建您的配置文件。"
+
+msgid "Database type:"
+msgstr "数据库类型："
+
+msgid "Database Host Name:"
+msgstr "数据库主机名："
+
+msgid "Database Name:"
+msgstr "数据库名称："
+
+msgid "Database User Name:"
+msgstr "数据库用户名："
+
+msgid "Database Password:"
+msgstr "数据库密码："
+
+msgid "Database Tables Prefix:"
+msgstr "数据库表前缀："
+
+msgid "No such installed language"
+msgstr "没有这样的已安装的语言包"
+
+msgid "You can't remove English language."
+msgstr "您不能移除英语语言包。"
+
+msgid "Permissions to delete language denied."
+msgstr "删除语言包的权限被拒绝。"
+
+msgid "Invalid language file URL."
+msgstr "无效的语言包文件 URL。"
+
+msgid "Languages management"
+msgstr "语言包管理"
+
+msgid "Language has been successfully deleted."
+msgstr "成功删除语言包。"
+
+msgid "Language has been successfully installed."
+msgstr "成功安装语言包 。"
+
+msgid "Language has been successfully upgraded"
+msgstr "成功升级语言包"
+
+msgid "Here you can install, upgrade or remove languages for your Dotclear installation."
+msgstr "这里您可以为您安装的 Dotclear 安装、升级或者移除语言包。"
+
+#, php-format
+msgid "You can change your user language in your <a href=\"%1$s\">preferences</a> or change your blog's main language in your <a href=\"%2$s\">blog settings</a>."
+msgstr "您可以在<a href=\"%1$s\">偏好</a>里更改您的用户语言或者在<a href=\"%2$s\">博客设置</a>中改变您的博客的主体语言。"
+
+msgid "Installed languages"
+msgstr "安装的语言包"
+
+msgid "No additional language is installed."
+msgstr "没有安装额外的语言包。"
+
+msgid "Language"
+msgstr "语言"
+
+msgid "Action"
+msgstr "动作"
+
+msgid "Install or upgrade languages"
+msgstr "安装或者升级语言包"
+
+#, php-format
+msgid "You can install or remove a language by adding or removing the relevant directory in your %s folder."
+msgstr "您可以通过在 %s 文件夹中添加或这移除相关目录来安装或者删除一个语言包。"
+
+msgid "Available languages"
+msgstr "可用的语言包"
+
+#, php-format
+msgid "You can download and install a additional language directly from Dotclear.net. Proposed languages are based on your version: %s."
+msgstr "您可以直接从 Dotclear.net 下载并安装一个额外的语言包。建议的语言包基于您的版本：%s。"
+
+msgid "Language:"
+msgstr "语言："
+
+msgid "Install language"
+msgstr "安装语言包"
+
+msgid "You can install languages by uploading zip files."
+msgstr "您可以通过上传 zip 文件安装语言包。"
+
+msgid "Language zip file:"
+msgstr "语言包 zip 文件："
+
+msgid "Upload language"
+msgstr "上传语言包"
+
+msgid "Invalid language zip file."
+msgstr "无效的语言包 zip 文件。"
+
+msgid "The zip file does not appear to be a valid Dotclear language pack."
+msgstr "这个 zip 文件似乎不是可用的 Dotclear 语言包。"
+
+msgid "An error occurred during language upgrade."
+msgstr "语言包升级时出现错误。"
+
+msgid "Error:"
+msgstr "错误："
+
+msgid "By names, in ascending order"
+msgstr "按名称，升序"
+
+msgid "By names, in descending order"
+msgstr "按名称，降序"
+
+msgid "By dates, in ascending order"
+msgstr "按日期，升序"
+
+msgid "By dates, in descending order"
+msgstr "按日期，降序"
+
+msgid "Media manager"
+msgstr "媒体管理中心"
+
+msgid "confirm removal"
+msgstr "确认清除"
+
+#, php-format
+msgid "Are you sure you want to remove %s?"
+msgstr "您确定要移除 %s 吗？"
+
+msgid "cancel"
+msgstr "取消"
+
+msgid "yes"
+msgstr "是"
+
+msgid "Directory has been successfully created."
+msgstr "成功创建目录。"
+
+msgid "Files have been successfully uploaded."
+msgstr "成功上传文件。"
+
+msgid "File has been successfully removed."
+msgstr "成功移除文件。"
+
+msgid "Directory has been successfully removed."
+msgstr "成功移除目录。"
+
+msgid "Directory has been successfully rebuilt."
+msgstr "成功重建目录。"
+
+msgid "Zip file has been successfully extracted."
+msgstr "成功解压缩 zip 文件。"
+
+#, php-format
+msgid "Choose a file to attach to entry %s by clicking on %s."
+msgstr "选择一个文件附加到文章 %s，通过点击 %s。"
+
+msgid "Attach this file to entry"
+msgstr "附加这个文件到文章"
+
+#, php-format
+msgid "Choose a file to insert into entry by clicking on %s."
+msgstr "通过点击 %s 将选择的文件插入到文章。"
+
+msgid "No file."
+msgstr "没有文件。"
+
+msgid "Sort files:"
+msgstr "排序文件："
+
+msgid "Add files"
+msgstr "添加文件"
+
+msgid "Please take care to publish media that you own and that are not protected by copyright."
+msgstr "请小心发布您拥有的媒体文件，这不受到版权的保护。"
+
+msgid "Choose a file:"
+msgstr "选择一个文件："
+
+#, php-format
+msgid "Maximum size %s"
+msgstr "最大大小 %s"
+
+msgid "Private"
+msgstr "私有的"
+
+msgid "To send several files at the same time, you can activate the enhanced uploader in"
+msgstr ""
+
+msgid "send"
+msgstr "发送"
+
+msgid "New directory"
+msgstr "新目录"
+
+msgid "Directory Name:"
+msgstr "目录名称："
+
+msgid "Download this directory as a zip file"
+msgstr "以 zip 文件下载这个目录"
+
+msgid "open"
+msgstr "打开"
+
+msgid "Insert this file into entry"
+msgstr "插入这个文件到文章中"
+
+msgid "Not a valid file"
+msgstr "不是一个有效的文件"
+
+msgid "File has been successfully updated."
+msgstr "成功更新文件。"
+
+msgid "Thumbnails have been successfully updated."
+msgstr "成功更新缩略图。"
+
+msgid "Insert media item"
+msgstr "插入媒体条目"
+
+msgid "Image size:"
+msgstr "图片大小："
+
+msgid "original"
+msgstr "原始"
+
+msgid "Image alignment"
+msgstr "图片对齐"
+
+msgid "None"
+msgstr "无"
+
+msgid "Left"
+msgstr "左"
+
+msgid "Right"
+msgstr "右"
+
+msgid "Center"
+msgstr "中心"
+
+msgid "Image insertion"
+msgstr "图片插入"
+
+msgid "As a single image"
+msgstr "作为一个单独的图片"
+
+msgid "As a link to original image"
+msgstr "作为一个到原始图片的链接"
+
+msgid "MP3 disposition"
+msgstr "MP3 处理"
+
+msgid "Please note that you cannot insert mp3 files with visual editor."
+msgstr "请注意您无法通过可视编辑器插入 mp3 文件。"
+
+msgid "Please note that you cannot insert video files with visual editor."
+msgstr "请注意您无法通过可视编辑器插入视频文件。"
+
+msgid "Video size"
+msgstr "视频大小"
+
+msgid "Width:"
+msgstr "宽度："
+
+msgid "Height:"
+msgstr "高度："
+
+msgid "Video disposition"
+msgstr "视频处理"
+
+msgid "Media item will be inserted as a link."
+msgstr "媒体项目将会作为链接插入。"
+
+msgid "Cancel"
+msgstr "取消"
+
+msgid "Insert"
+msgstr "插入"
+
+msgid "Media details"
+msgstr "媒体详情"
+
+msgid "Available sizes:"
+msgstr "可用的大小："
+
+msgid "File owner:"
+msgstr "文件拥有者："
+
+msgid "File type:"
+msgstr "文件类型："
+
+msgid "File size:"
+msgstr "文件大小："
+
+msgid "File URL:"
+msgstr "文件 URL："
+
+msgid "Show entries containing this media"
+msgstr "显示包含这个媒体的文章"
+
+msgid "Entries containing this media"
+msgstr "包含这个媒体的文章"
+
+msgid "No entry seems contain this media."
+msgstr "似乎没有文章包含这个媒体。"
+
+msgid "Image details"
+msgstr "图片详情"
+
+msgid "No detail"
+msgstr "没有详情"
+
+msgid "Update thumbnails"
+msgstr "更新缩略图"
+
+msgid "This will create or update thumbnails for this image."
+msgstr "这将会创建或者更新此图片的缩略图。"
+
+msgid "update thumbnails"
+msgstr "更新缩略图"
+
+msgid "Extract in a new directory"
+msgstr "解压缩到一个新目录"
+
+msgid "Extract in current directory"
+msgstr "解压缩到当前目录"
+
+msgid "Extract archive"
+msgstr "解压缩"
+
+#, fuzzy
+msgid "This will extract archive in a new directory that should not exist yet."
+msgstr "这将会把压缩包解压到一个不存在的新目录。"
+
+msgid "This will extract archive in current directory and will overwrite existing files or directory."
+msgstr "这将会把压缩包解压缩到当前目录并会覆盖已存在的文件或者目录。"
+
+msgid "Extract mode:"
+msgstr "解压缩模式："
+
+msgid "extract"
+msgstr "解压缩"
+
+msgid "Change media properties"
+msgstr "更改媒体属性"
+
+msgid "File name:"
+msgstr "文件名："
+
+msgid "File title:"
+msgstr "文件标题："
+
+msgid "File date:"
+msgstr "文件日期："
+
+msgid "New directory:"
+msgstr "新目录："
+
+msgid "Change file"
+msgstr "改变文件"
+
+msgid "No blog or user given."
+msgstr "没有指定博客或用户。"
+
+msgid "permissions"
+msgstr "权限"
+
+msgid "Permissions"
+msgstr "权限"
+
+msgid "The permissions have been successfully updated."
+msgstr "成功更新权限。"
+
+#, php-format
+msgid "You are about to change permissions on the following blogs for users %s."
+msgstr "您将为用户 %s 改变在下列博客的权限。"
+
+msgid "choose a blog"
+msgstr "选择一个博客"
+
+msgid "Choose a blog"
+msgstr "选择一个博客"
+
+msgid "Entries per page"
+msgstr "每页文章数"
+
+#, php-format
+msgid "Choose one or more blogs to which you want to give permissions to users %s."
+msgstr "选择一个或者多个您想要赋予用户 %s 权限的博客。"
+
+msgid "set permissions"
+msgstr "设置权限"
+
+#, fuzzy
+msgid "select"
+msgstr "精选的"
+
+msgid "No content found on this plugin."
+msgstr "这个插件中没有找到内容。"
+
+msgid "Plugin not found"
+msgstr "未找到插件"
+
+msgid "The plugin you reached does not exist or does not have an admin page."
+msgstr "您到达的插件不存在或者没有管理页面。"
+
+msgid "No such plugin."
+msgstr "没有这样的插件。"
+
+msgid "You don't have permissions to delete this plugin."
+msgstr "您没有删除这个插件的权限。"
+
+msgid "You don't have permissions to deactivate this plugin."
+msgstr "您没有禁用这个插件的权限。"
+
+msgid "Plugins management"
+msgstr "插件管理"
+
+msgid "Plugin has been successfully deleted."
+msgstr "成功删除插件。"
+
+msgid "Plugin has been successfully installed."
+msgstr "成功安装插件。"
+
+msgid "Plugin has been successfully upgraded"
+msgstr "成功升级插件"
+
+msgid "Plugins add new functionalities to Dotclear. Here you can activate or deactivate installed plugins."
+msgstr "插件向 Dotclear 添加新功能。这里您可以激活或者禁用安装的插件。"
+
+#, php-format
+msgid "You can find additional plugins for your blog on %s."
+msgstr "您可以从 %s 找到用于您博客的额外插件。"
+
+msgid "To install or upgrade a plugin you generally just need to upload it in \"Install or upgrade a plugin\" section."
+msgstr "要安装或升级一个插件，您一般仅需要在“安装或升级一个插件”中上传它。"
+
+msgid "To install or upgrade a plugin you just need to extract it in your plugins directory."
+msgstr "要安装或升级一个插件，您仅需要将它解压缩到您的插件目录。"
+
+msgid "Plugins"
+msgstr "插件"
+
+msgid "Activated plugins"
+msgstr "激活的插件"
+
+msgid "Plugin"
+msgstr "插件"
+
+msgid "Version"
+msgstr "版本"
+
+msgid "Details"
+msgstr "详情"
+
+msgid "Deactivate"
+msgstr "禁用"
+
+msgid "Deactivated plugins"
+msgstr "禁用的插件"
+
+msgid "Activate"
+msgstr "激活"
+
+msgid "Install or upgrade a plugin"
+msgstr "安装或升级一个插件"
+
+msgid "You can install plugins by uploading or downloading zip files."
+msgstr "您可以通过上传或者下载 zip 文件安装插件。"
+
+msgid "Plugin zip file:"
+msgstr "插件 zip 文件："
+
+msgid "Upload plugin"
+msgstr "上传插件"
+
+msgid "Plugin zip file URL:"
+msgstr "插件 zip 文件的 URL："
+
+msgid "Download plugin"
+msgstr "下载插件"
+
+msgid "To enable this function, please give write access to your plugins directory."
+msgstr "要激活这个功能，请赋予您的插件目录写权限。"
+
+msgid "Add a link"
+msgstr "添加一个链接"
+
+msgid "Available"
+msgstr "可用"
+
+msgid "Most used"
+msgstr "最多使用"
+
+msgid "Link URL:"
+msgstr "链接 URL："
+
+#, fuzzy
+msgid "Link title:"
+msgstr "文件标题："
+
+msgid "Link language:"
+msgstr "链接语言："
+
+msgid "insert"
+msgstr "插入"
+
+msgid "Add a link to an entry"
+msgstr "向文章中添加一个链接"
+
+msgid "Search entry:"
+msgstr "搜索文章："
+
+msgid "This entry does not exist."
+msgstr "这篇文章不存在。"
+
+msgid "Edit entry"
+msgstr "编辑文章"
+
+msgid "next entry"
+msgstr "下一篇文章"
+
+msgid "previous entry"
+msgstr "前一篇文章"
+
+msgid "Entry has been successfully updated."
+msgstr "成功更新文章。"
+
+msgid "Entry has been successfully created."
+msgstr "成功创建文章。"
+
+msgid "File has been successfully attached."
+msgstr "成功附加文件。"
+
+msgid "Attachment has been successfully removed."
+msgstr "成功移除附件。"
+
+msgid "Comment has been successfully created."
+msgstr "成功创建评论。"
+
+msgid "Don't forget to validate your XHTML conversion by saving your post."
+msgstr "请不要忘了通过保存您的文章检验您的 XHTML 转换。"
+
+msgid "View entry"
+msgstr "查看文章"
+
+msgid "Preview entry"
+msgstr "预览文章"
+
+msgid "Entry status:"
+msgstr "文章状态："
+
+msgid "Published on:"
+msgstr "发布于："
+
+msgid "Text formating:"
+msgstr "文本格式："
+
+msgid "Convert to XHTML"
+msgstr "转换到 XHTML"
+
+msgid "Selected entry"
+msgstr "精选文章"
+
+msgid "Entry lang:"
+msgstr "文章语言："
+
+msgid "Entry password:"
+msgstr "文章密码："
+
+msgid "Basename:"
+msgstr "具体的 URL："
+
+msgid "Warning: If you set the URL manually, it may conflict with another entry."
+msgstr "警告：如果您手动设置 URL，它可能与其他文章冲突。"
+
+msgid "Attachments"
+msgstr "附件"
+
+msgid "remove"
+msgstr "移除"
+
+msgid "No attachment."
+msgstr "没有附件。"
+
+msgid "Add files to this entry"
+msgstr "向这篇文章添加文件"
+
+msgid "Excerpt:"
+msgstr "摘录："
+
+msgid "Notes:"
+msgstr "注释："
+
+msgid "Ping blogs"
+msgstr "Ping 博客"
+
+msgid "Trackbacks"
+msgstr "Trackbacks"
+
+msgid "No trackback"
+msgstr "没有 trackback"
+
+msgid "Add a comment"
+msgstr "添加一个评论"
+
+msgid "Name:"
+msgstr "名字："
+
+msgid "IP address"
+msgstr "IP 地址"
+
+msgid "published"
+msgstr "已发布"
+
+msgid "unpublished"
+msgstr "未发布"
+
+msgid "pending"
+msgstr "待审核"
+
+msgid "junk"
+msgstr "垃圾评论"
+
+#, fuzzy
+msgid "select this comment"
+msgstr "编辑这个评论"
+
+#, fuzzy
+msgid "select this trackback"
+msgstr "接受 trackbacks"
+
+msgid "Edit this comment"
+msgstr "编辑这个评论"
+
+msgid "This attachment does not exist"
+msgstr "这个附件不存在"
+
+msgid "Remove attachment"
+msgstr "移除附件"
+
+msgid "Attachment"
+msgstr "附件"
+
+msgid "Are you sure you want to remove this attachment?"
+msgstr "您确定要移除这个附件吗？"
+
+msgid "selected"
+msgstr "精选的"
+
+msgid "not selected"
+msgstr "非精选的"
+
+msgid "Category"
+msgstr "分类目录"
+
+msgid "Selected"
+msgstr "精选的"
+
+msgid "Publish"
+msgstr "发布"
+
+msgid "Unpublish"
+msgstr "未发布"
+
+msgid "Schedule"
+msgstr "计划"
+
+msgid "Mark as pending"
+msgstr "标记为待审核"
+
+msgid "Mark"
+msgstr "标记"
+
+msgid "Mark as selected"
+msgstr "标记为精选的"
+
+msgid "Mark as unselected"
+msgstr "标记为非精选的"
+
+msgid "Change"
+msgstr "改变"
+
+msgid "Change category"
+msgstr "改变分类目录"
+
+msgid "Change author"
+msgstr "改变作者"
+
+msgid "Selected:"
+msgstr "精选的："
+
+msgid "Month:"
+msgstr "月份："
+
+msgid "Lang:"
+msgstr "语言："
+
+msgid "Selected entries action:"
+msgstr "已选择的文章的动作："
+
+msgid "This user does not exist"
+msgstr "用户不存在"
+
+msgid "Change category for entries"
+msgstr "改变文章的分类目录"
+
+msgid "Change author for entries"
+msgstr "改变文章的作者"
+
+msgid "Author ID:"
+msgstr "作者 ID："
+
+msgid "If you want to change your email or password you must provide your current password."
+msgstr "如果您想要改变您的邮箱或者密码，您必须提供当前的密码。"
+
+msgid "Personal information has been successfully updated."
+msgstr "成功更新个人信息。"
+
+#, fuzzy
+msgid "Personal options has been successfully updated."
+msgstr "成功更新个人信息。"
+
+#, fuzzy
+msgid "Favorites have been successfully added."
+msgstr "成功上传文件。"
+
+#, fuzzy
+msgid "Favorites have been successfully updated."
+msgstr "成功更新文件。"
+
+#, fuzzy
+msgid "Favorites have been successfully removed."
+msgstr "成功移除文件。"
+
+#, fuzzy
+msgid "Default favorites have been successfully updated."
+msgstr "成功更新缩略图。"
+
+msgid "My profile"
+msgstr ""
+
+msgid "Display name:"
+msgstr "显示的名字："
+
+msgid "User language:"
+msgstr "用户语言："
+
+msgid "User timezone:"
+msgstr "用户时区："
+
+#, fuzzy
+msgid "My options"
+msgstr "搜索选项"
+
+msgid "Preferred format:"
+msgstr "喜好的格式："
+
+msgid "Default entry status:"
+msgstr "默认的文章状态："
+
+msgid "Entry edit field height:"
+msgstr "文章编辑区域高度："
+
+msgid "Enable WYSIWYG mode"
+msgstr "激活所见即所得模式"
+
+#, fuzzy
+msgid "Activate enhanced uploader in media manager"
+msgstr "激活增强的上传工具"
+
+msgid "Do not use standard favicon"
+msgstr ""
+
+msgid "This will be applied for all users"
+msgstr ""
+
+msgid "Accessibility options"
+msgstr ""
+
+msgid "Disable javascript powered drag and drop for ordering items"
+msgstr ""
+
+msgid "Numeric fields will allow to type the elements' ordering number."
+msgstr ""
+
+#, fuzzy
+msgid "Dashboard modules"
+msgstr "控制板"
+
+#, fuzzy
+msgid "Display documentation links"
+msgstr "文档"
+
+#, fuzzy
+msgid "Display Dotclear news"
+msgstr "更新 Dotclear"
+
+msgid "Display quick entry form"
+msgstr ""
+
+msgid "My favorites"
+msgstr ""
+
+#, php-format
+msgid "position of %s"
+msgstr ""
+
+#, fuzzy
+msgid "Save order"
+msgstr "重新排序"
+
+#, fuzzy
+msgid "Delete selected favorites"
+msgstr "删除选择的文件"
+
+#, fuzzy
+msgid "Are you sure you want to remove selected favorites?"
+msgstr "您确定您要重新排列所有分类目录吗？"
+
+msgid "If you are a super administrator, you may define this set of favorites to be used by default on all blogs of this installation:"
+msgstr ""
+
+msgid "Define as default favorites"
+msgstr ""
+
+msgid "Currently no personal favorites."
+msgstr ""
+
+msgid "Default favorites"
+msgstr ""
+
+msgid "Those favorites are displayed when My Favorites list is empty."
+msgstr ""
+
+#, fuzzy
+msgid "Available favorites"
+msgstr "可用的大小："
+
+msgid "Add to my favorites"
+msgstr ""
+
+msgid "Search"
+msgstr "搜索"
+
+msgid "Search options"
+msgstr "搜索选项"
+
+msgid "Query:"
+msgstr "查询："
+
+msgid "search entries"
+msgstr "搜索文章"
+
+msgid "search comments"
+msgstr "搜索评论"
+
+msgid "schedule"
+msgstr "计划"
+
+msgid "change category"
+msgstr "改变分类目录"
+
+msgid "change author"
+msgstr "改变作者"
+
+#, php-format
+msgid "%d entries found"
+msgstr "找到 %d 篇文章"
+
+#, php-format
+msgid "%d entry found"
+msgstr "找到 %d 篇文章"
+
+#, php-format
+msgid "%d comment found"
+msgstr "找到 %d 个评论"
+
+#, php-format
+msgid "%d comments found"
+msgstr "找到 %d 个评论"
+
+msgid "This entry does not exist or is not published"
+msgstr "这篇文章不存在或者没有发布"
+
+msgid "All pings sent."
+msgstr "所有的 ping 已发送。"
+
+msgid "Auto discover ping URLs"
+msgstr "自动发现 ping URL。"
+
+msgid "URLs to ping:"
+msgstr "ping 的 URL："
+
+msgid "Send excerpt:"
+msgstr "发送摘录："
+
+msgid "Previously sent pings"
+msgstr "之前发送的 ping"
+
+msgid "Dotclear update"
+msgstr "Dotclear 更新"
+
+#, php-format
+msgid "Unable to delete file %s"
+msgstr "无法删除文件 %s"
+
+#, php-format
+msgid "Downloaded Dotclear archive seems to be corrupted. Try <a %s>download it</a> again."
+msgstr "下载的 Dotclear 压缩包似乎损坏了。尝试再次<a %s>下载它</a>。"
+
+msgid "The following files of your Dotclear installation have been modified so we won't try to update your installation. Please try to <a href=\"http://dotclear.org/download\">update manually</a>."
+msgstr "您的 Dotclear 中下列文件已被修改，所以我们将不会尝试更新您的安装。请尝试<a href=\"http://dotclear.org/download\">手动更新</a>。"
+
+#, php-format
+msgid "The following files of your Dotclear installation are not readable. Please fix this or try to make a backup file named %s manually."
+msgstr "您的 Dotclear 中下列文件不可读取。请修正或者尝试手动创建一个名为 %s 的备份文件。"
+
+msgid "The following files of your Dotclear installation cannot be written. Please fix this or try to <a href=\"http://dotclear.org/download\">update manually</a>."
+msgstr "您的 Dotclear 中下列文件不可写。请修正或者尝试<a href=\"http://dotclear.org/download\">手动更新</a>。"
+
+msgid "No newer Dotclear version available."
+msgstr "没有可用的 Dotclear 新版本。"
+
+#, php-format
+msgid "Dotclear %s is available."
+msgstr "Dotclear %s 可用。"
+
+msgid "To upgrade your Dotclear installation simply click on the following button. A backup file of your current installation will be created in your root directory."
+msgstr "要升级您的 Dotclear，只需点击下列按钮。一个您现有安装的备份文件将在您的根目录生成。"
+
+msgid "Update Dotclear"
+msgstr "更新 Dotclear"
+
+msgid "Update backup files"
+msgstr "更新备份文件"
+
+msgid "The following files are backups of previously updates. You can revert your previous installation or delete theses files."
+msgstr "下列文件是您之前更新的备份。您可以恢复之前的安装或者删除这些文件。"
+
+msgid "Please note that reverting your Dotclear version may have some unwanted side-effects. Consider reverting only if you experience strong issues with this new version."
+msgstr "请注意恢复您的 Dotclear 版本可能产生一些不希望的副作用。仅在您使用新版本遇到重大问题的时候考虑恢复。"
+
+#, php-format
+msgid "You should not revert to version prior to last one (%s)."
+msgstr "您不能恢复到先于最后一个 (%s) 的版本。"
+
+msgid "Delete selected file"
+msgstr "删除选择的文件"
+
+msgid "Revert to selected file"
+msgstr "恢复到选择的文件"
+
+msgid "Congratulations, you're one click away from the end of the update."
+msgstr "恭喜，您距更新完成仅有一个点击的距离。"
+
+msgid "Finish the update."
+msgstr "完成更新。"
+
+msgid "new user"
+msgstr "新用户"
+
+#, php-format
+msgid "User \"%s\" already exists."
+msgstr "用户“%s”已经存在。"
+
+msgid "User has been successfully updated."
+msgstr "成功更新用户。"
+
+msgid "User has been successfully created."
+msgstr "成功创建用户。"
+
+msgid "Warning:"
+msgstr "警告："
+
+msgid "If you change your username, you will have to log in again."
+msgstr "如果您改变用户名，您必须重新登录。"
+
+#, fuzzy
+msgid "Password change required to connect"
+msgstr "连接需要改动密码"
+
+msgid "No permissions."
+msgstr "没有权限。"
+
+msgid "Add new permissions"
+msgstr "添加新权限"
+
+msgid "Username"
+msgstr "用户名"
+
+msgid "Last Name"
+msgstr "姓"
+
+msgid "First Name"
+msgstr "名"
+
+msgid "Display name"
+msgstr "显示的名字"
+
+msgid "Number of entries"
+msgstr "文章数目"
+
+msgid "Set permissions"
+msgstr "设置权限"
+
+msgid "users"
+msgstr "用户"
+
+msgid "User has been successfully removed."
+msgstr "成功移除用户。"
+
+msgid "Create a new user"
+msgstr "创建一个新用户"
+
+msgid "Users per page"
+msgstr "每页用户数目"
+
+msgid "Selected users action:"
+msgstr "选择的用户的动作："
+
+msgid "Blog:"
+msgstr "博客："
+
+msgid "Change blog"
+msgstr "改变博客"
+
+msgid "Blogs:"
+msgstr "博客："
+
+msgid "Go to site"
+msgstr ""
+
+msgid "new window"
+msgstr ""
+
+msgid "User:"
+msgstr "用户："
+
+msgid "Logout"
+msgstr "退出"
+
+msgid "Safe mode"
+msgstr ""
+
+msgid "You are in safe mode. All plugins have been temporarily disabled. Remind to log out then log in again normally to get back all functionalities"
+msgstr ""
+
+#, php-format
+msgid "Thank you for using %s."
+msgstr "感谢您使用 %s。"
+
+msgid "Help"
+msgstr "帮助"
+
+msgid "uncover"
+msgstr "显示"
+
+msgid "hide"
+msgstr "隐藏"
+
+msgid "help"
+msgstr "帮助"
+
+#, fuzzy
+msgid "no selection"
+msgstr "取消全部选择"
+
+msgid "select all"
+msgstr "选择全部"
+
+msgid "invert selection"
+msgstr "反选"
+
+msgid "view entry"
+msgstr "查看文章"
+
+#, fuzzy, php-format
+msgid "Are you sure you want to delete selected entries (%s)?"
+msgstr "您确定您要删除选定的文章吗？"
+
+msgid "Are you sure you want to delete this entry?"
+msgstr "您确定您要删除这篇文章吗？"
+
+#, fuzzy, php-format
+msgid "Are you sure you want to delete selected comments (%s)?"
+msgstr "您确定您要删除选定的评论吗？"
+
+msgid "Are you sure you want to delete this comment?"
+msgstr "您确定您要删除这个评论吗？"
+
+#, fuzzy
+msgid "Users with posts cannot be deleted."
+msgstr "有文章的用户无法被删除。"
+
+#, fuzzy, php-format
+msgid "Are you sure you want to delete selected users (%s)?"
+msgstr "您确定您要删除选定的用户吗？"
+
+#, php-format
+msgid "Are you sure you want to delete category \"%s\"?"
+msgstr "您确定您要删除分类目录“%s”吗？"
+
+msgid "Are you sure you want to reorder all categories?"
+msgstr "您确定您要重新排列所有分类目录吗？"
+
+#, php-format
+msgid "Are you sure you want to remove media \"%s\"?"
+msgstr "您确定您要移除媒体“%s”吗？"
+
+msgid "Are you sure you want to extract archive in current directory?"
+msgstr "您确定您要把压缩包解压到当前目录吗？"
+
+#, php-format
+msgid "Are you sure you want to remove attachment \"%s\"?"
+msgstr "您确定您要移除附件“%s”吗？"
+
+#, php-format
+msgid "Are you sure you want to delete \"%s\" language?"
+msgstr "您确定您要删除“%s”语言包吗？"
+
+#, php-format
+msgid "Are you sure you want to delete \"%s\" plugin?"
+msgstr "您确定您要删除“%s”插件吗？"
+
+msgid "Use this theme"
+msgstr "使用这个主题"
+
+msgid "Remove this theme"
+msgstr "移除这个主题"
+
+#, php-format
+msgid "Are you sure you want to delete \"%s\" theme?"
+msgstr "您确定您要删除“%s”主题吗？"
+
+msgid "Zip file content"
+msgstr "zip 文件内容"
+
+msgid "XHTML markup validator"
+msgstr "XHTML 标记检查器"
+
+msgid "XHTML content is valid."
+msgstr "XHTML 内容有效。"
+
+msgid "There are XHTML markup errors."
+msgstr "这是 XHTML 标记的错误。"
+
+msgid "You have unsaved changes. Switch post format will loose these changes. Proceed anyway?"
+msgstr ""
+
+msgid "Loading enhanced uploader, please wait."
+msgstr ""
+
+msgid "You have unsaved changes."
+msgstr "您有未保存的改动。"
+
+msgid "close"
+msgstr "关闭"
+
+msgid "now"
+msgstr "现在"
+
+msgid "visual"
+msgstr "可视"
+
+msgid "source"
+msgstr "源码"
+
+msgid "You can use the following shortcuts to format your text."
+msgstr "您可以使用下列缩写来格式化您的文本。"
+
+msgid "-- none --"
+msgstr "-- 无 --"
+
+msgid "-- block format --"
+msgstr "-- 区块格式 --"
+
+msgid "Paragraph"
+msgstr "段落"
+
+msgid "Level 1 header"
+msgstr "Level 1 标题"
+
+msgid "Level 2 header"
+msgstr "Level 2 标题"
+
+msgid "Level 3 header"
+msgstr "Level 3 标题"
+
+msgid "Level 4 header"
+msgstr "Level 4 标题"
+
+msgid "Level 5 header"
+msgstr "Level 5 标题"
+
+msgid "Level 6 header"
+msgstr "Level 6 标题"
+
+msgid "Strong emphasis"
+msgstr "着重强调"
+
+msgid "Emphasis"
+msgstr "强调"
+
+msgid "Inserted"
+msgstr "下划线"
+
+msgid "Deleted"
+msgstr "删除线"
+
+msgid "Inline quote"
+msgstr "行内引用"
+
+msgid "Code"
+msgstr "代码"
+
+msgid "Line break"
+msgstr "断行"
+
+msgid "Blockquote"
+msgstr "块引用"
+
+msgid "Preformated text"
+msgstr "预格式化文本"
+
+msgid "Unordered list"
+msgstr "无序列表"
+
+msgid "Ordered list"
+msgstr "有序列表"
+
+msgid "Link"
+msgstr "链接"
+
+msgid "URL?"
+msgstr "URL?"
+
+msgid "Language?"
+msgstr "语言?"
+
+msgid "External image"
+msgstr "外部图片"
+
+msgid "Media chooser"
+msgstr "媒体选择"
+
+msgid "Link to an entry"
+msgstr "链接到一篇文章"
+
+msgid "Activate enhanced uploader"
+msgstr "激活增强的上传工具"
+
+msgid "Disable enhanced uploader"
+msgstr "禁用增强的上传工具"
+
+msgid "File successfully uploaded."
+msgstr "成功上传文件。"
+
+msgid "Maximum file size allowed:"
+msgstr "允许的文件最大大小："
+
+msgid "Limit exceeded."
+msgstr "超出限制。"
+
+msgid "File size exceeds allowed limit."
+msgstr "文件大小超出允许的限制。"
+
+msgid "Canceled."
+msgstr "已取消。"
+
+msgid "HTTP Error:"
+msgstr "HTTP 错误："
+
+msgid "Choose file"
+msgstr "选择文件"
+
+msgid "Choose files"
+msgstr "选择文件"
+
+msgid "Clean"
+msgstr "清除"
+
+msgid "Upload"
+msgstr "上传"
+
+msgid "No file in queue."
+msgstr "队列中没有文件。"
+
+msgid "1 file in queue."
+msgstr "队列中有 1 个文件。"
+
+#, php-format
+msgid "%d files in queue."
+msgstr "队列中有 %d 个文件。"
+
+msgid "Queue error:"
+msgstr "队列错误："
+
+msgid "&#171;prev."
+msgstr "&#171;前一个。"
+
+msgid "next&#187;"
+msgstr "后一个&#187;"
+
+msgid "No entry"
+msgstr "没有文章"
+
+msgid "scheduled"
+msgstr "计划的"
+
+msgid "protected"
+msgstr "保护的"
+
+#, php-format
+msgid "%d attachment"
+msgstr "%d 个附件"
+
+#, php-format
+msgid "%d attachments"
+msgstr "%d 个附件"
+
+msgid "Type"
+msgstr "类型"
+
+msgid "No user"
+msgstr "没有用户"
+
+msgid "admin"
+msgstr ""
+
+#, fuzzy
+msgid "superadmin"
+msgstr "超级管理员"
+
+#, fuzzy
+msgid "Database error"
+msgstr "数据库类型："
+
+msgid "There seems to be no Session table in your database. Is Dotclear completly installed?"
+msgstr ""
+
+msgid "Languages"
+msgstr "语言"
+
+msgid "System"
+msgstr "系统"
+
+msgid "Blog"
+msgstr "博客"
+
+msgid "Updates"
+msgstr "更新"
+
+msgid "administrator"
+msgstr "管理员"
+
+msgid "manage their own entries and comments"
+msgstr "管理他们自己的文章和评论"
+
+msgid "publish entries and comments"
+msgstr "发布文章和评论"
+
+msgid "delete entries and comments"
+msgstr "删除文章和评论"
+
+msgid "manage all entries and comments"
+msgstr "管理所有文章和评论"
+
+msgid "manage categories"
+msgstr "管理分类目录"
+
+msgid "manage their own media items"
+msgstr "管理他们自己的媒体条目"
+
+msgid "manage all media items"
+msgstr "管理全部媒体条目"
+
+msgid "That user does not exist in the database."
+msgstr "用户在数据库中不存在。"
+
+#, fuzzy
+msgid "That key does not exist in the database."
+msgstr "key 在数据库中不存在。"
+
+msgid "You are not allowed to add categories"
+msgstr "您不被允许添加分类目录"
+
+msgid "You are not allowed to update categories"
+msgstr "您不被允许更新分类目录"
+
+msgid "You are not allowed to delete categories"
+msgstr "您不被允许删除分类目录"
+
+msgid "This category is not empty."
+msgstr "这个分类目录非空。"
+
+msgid "Category URL must be unique."
+msgstr "分类目录的 URL 必须无重复。"
+
+msgid "You must provide a category title"
+msgstr "您必须提供一个分类目录标题"
+
+msgid "You must provide a category URL"
+msgstr "您必须提供一个分类目录 URL"
+
+msgid "You are not allowed to create an entry"
+msgstr "您不被允许创建一篇文章"
+
+msgid "You are not allowed to update entries"
+msgstr "您不被允许更新文章"
+
+msgid "No such entry ID"
+msgstr "没有这样的文章 ID"
+
+msgid "You are not allowed to edit this entry"
+msgstr "您不被允许编辑这篇文章"
+
+msgid "You are not allowed to change this entry status"
+msgstr "您不被允许更改这篇文章的状态"
+
+msgid "You are not allowed to change this entry category"
+msgstr "您不被允许更改这篇文章的分类目录"
+
+msgid "You are not allowed to mark this entry as selected"
+msgstr "您不被允许标记这篇文章为精选的"
+
+msgid "You are not allowed to delete entries"
+msgstr "您不被允许删除文章"
+
+msgid "You are not allowed to delete this entry"
+msgstr "您不被允许删除这篇文章"
+
+msgid "No entry title"
+msgstr "没有文章标题"
+
+msgid "No entry content"
+msgstr "没有文章内容"
+
+msgid "Empty entry URL"
+msgstr "空的文章 URL"
+
+msgid "You are not allowed to update comments"
+msgstr "您不被允许更新评论"
+
+msgid "No such comment ID"
+msgstr "没有这样的评论 ID"
+
+msgid "You are not allowed to update this comment"
+msgstr "您不被允许更新这个评论"
+
+msgid "You are not allowed to change this comment's status"
+msgstr "您不被允许更改这个评论的状态"
+
+msgid "You are not allowed to delete comments"
+msgstr "您不被允许删除评论"
+
+msgid "You are not allowed to delete this comment"
+msgstr "您不被允许删除这个评论"
+
+msgid "You must provide a comment"
+msgstr "您必须提供一个评论"
+
+msgid "You must provide an author name"
+msgstr "您必需提供一个作者姓名"
+
+msgid "Email address is not valid."
+msgstr "邮箱地址无效。"
+
+msgid "online"
+msgstr "在线"
+
+msgid "offline"
+msgstr "不在线"
+
+msgid "removed"
+msgstr "已移除"
+
+msgid "You are not an administrator"
+msgstr "您不是管理员"
+
+msgid "Invalid user language code"
+msgstr "无效的用户语言代码"
+
+msgid "Blog ID must contain at least 2 characters using letters, numbers or symbols."
+msgstr "博客 ID 必须包含至少2个字符，使用字母、数字或符号。"
+
+msgid "No blog name"
+msgstr "没有博客名称"
+
+msgid "No blog URL"
+msgstr "没有博客 URL"
+
+#, fuzzy
+msgid "No log message"
+msgstr "没有博客名称"
+
+#, fuzzy
+msgid "unknown"
+msgstr "现在"
+
+msgid "No blog defined."
+msgstr "没有博客被定义。"
+
+#, php-format
+msgid "Directory %s does not exist."
+msgstr "目录 %s 不存在。"
+
+msgid "You are not a super administrator."
+msgstr "您不是超级管理员。"
+
+msgid "Permission denied."
+msgstr "权限被拒绝。"
+
+msgid "You are not the file owner."
+msgstr "您不是文件的所有者。"
+
+#, fuzzy
+msgid "This file is not allowed."
+msgstr "上传此文件是不允许的。"
+
+msgid "New file already exists."
+msgstr "新文件已经存在。"
+
+msgid "File does not exist in the database."
+msgstr "文件在数据库中不存在。"
+
+#, php-format
+msgid "Extract destination directory %s already exists."
+msgstr "解压缩目标目录 %s 已经存在。"
+
+msgid "Embedded Audio Player"
+msgstr ""
+
+msgid "Embedded Video Player"
+msgstr ""
+
+#, php-format
+msgid "%s: in [%s] and [%s]"
+msgstr ""
+
+msgid "Empty module zip file."
+msgstr "空的模块 zip 文件。"
+
+msgid "The zip file does not appear to be a valid Dotclear module."
+msgstr "这个 zip 文件似乎不是一个有效的 Dotclear 模块。"
+
+msgid "An error occurred during module deletion."
+msgstr "模块删除时出现错误。"
+
+#, php-format
+msgid "Unable to upgrade \"%s\". (same version)"
+msgstr "无法升级到“%s”。（版本相同）"
+
+msgid "Unable to read new _define.php file"
+msgstr "无法读取新的 _define.php。"
+
+msgid "No such module."
+msgstr "没有这样的模块。"
+
+msgid "Cannot remove module files"
+msgstr "无法移除模块文件"
+
+msgid "Cannot deactivate plugin."
+msgstr "无法禁用插件。"
+
+msgid "Cannot activate plugin."
+msgstr "无法激活插件。"
+
+#, fuzzy, php-format
+msgid "Invalid setting dcNamespace: %s"
+msgstr "无效的设置命名空间：%s"
+
+msgid "Unable to retrieve settings:"
+msgstr "无法检索设置："
+
+#, php-format
+msgid "%s is not a valid setting id"
+msgstr "%s 不是一个有效的设置 ID"
+
+msgid "No namespace specified"
+msgstr "没有指定命名空间"
+
+#, fuzzy
+msgid "Unable to retrieve workspaces:"
+msgstr "无法检索设置："
+
+#, fuzzy
+msgid "Unable to retrieve namespaces:"
+msgstr "无法检索设置："
+
+#, php-format
+msgid "Invalid setting namespace: %s"
+msgstr "无效的设置命名空间：%s"
+
+#, php-format
+msgid "%s has still been pinged"
+msgstr "%s 已经被 ping"
+
+msgid "Unable to ping URL"
+msgstr "无法 ping URL"
+
+#, php-format
+msgid "%s is not a ping URL"
+msgstr "%s 不是一个 ping URL"
+
+#, php-format
+msgid "%s, ping error:"
+msgstr "%s，ping 错误："
+
+msgid "Digests file not found."
+msgstr "摘要文件未找到。"
+
+msgid "No file to download"
+msgstr "没有要下载的文件"
+
+msgid "Root directory is not writable."
+msgstr "根目录不可写。"
+
+msgid "An error occurred while downloading archive."
+msgstr "下载压缩文件时产生错误。"
+
+msgid "Archive not found."
+msgstr "压缩文件未找到。"
+
+msgid "Unable to read current digests file."
+msgstr "无法读取现有的摘要文件。"
+
+#, fuzzy
+msgid "Downloaded file does not seem to be a valid archive."
+msgstr "下载的文件似乎不是一个有效的压缩文件。"
+
+msgid "Incomplete archive."
+msgstr "压缩文件不完整。"
+
+msgid "Unable to read digests file."
+msgstr "无法读取摘要文件。"
+
+msgid "Invalid digests file."
+msgstr "无效的摘要文件。"
+
+#, fuzzy, php-format
+msgid "Invalid dcWorkspace: %s"
+msgstr "无效的设置命名空间：%s"
+
+#, fuzzy
+msgid "Unable to retrieve prefs:"
+msgstr "无法检索设置："
+
+#, fuzzy, php-format
+msgid "%s is not a valid pref id"
+msgstr "%s 不是一个有效的设置 ID"
+
+#, fuzzy
+msgid "No workspace specified"
+msgstr "没有指定命名空间"
+
+msgid "SQLite Database Schema cannot be upgraded."
+msgstr "SQLite 数据库模式无法被升级。"
+
+msgid "Something went wrong with auto upgrade:"
+msgstr "自动升级时出现错误："
+
+msgid "Unable to open directory."
+msgstr "无法打开目录。"
+
+msgid "Unable to create directory."
+msgstr "无法创建目录。"
+
+msgid "File is not writable."
+msgstr "文件不可写。"
+
+msgid "Unable to open file."
+msgstr "无法打开文件。"
+
+msgid "Not an uploaded file."
+msgstr "不是一个上传的文件。"
+
+msgid "The uploaded file exceeds the maximum file size allowed."
+msgstr "上传的文件超过了最大允许的文件大小。"
+
+msgid "The uploaded file was only partially uploaded."
+msgstr "上传的文件仅被部分上传。"
+
+msgid "No file was uploaded."
+msgstr "没有文件被上传。"
+
+msgid "Missing a temporary folder."
+msgstr "忽略了一个临时文件夹。"
+
+msgid "Failed to write file to disk."
+msgstr "写入文件到磁盘失败。"
+
+#, php-format
+msgid "%s is not a directory."
+msgstr "%s 不是一个目录。"
+
+msgid "Uploading this file is not allowed."
+msgstr "上传此文件是不允许的。"
+
+#, fuzzy
+msgid "Destination directory is not in jail."
+msgstr "目标目录不在监禁中。"
+
+msgid "File already exists."
+msgstr "文件已存在。"
+
+msgid "Cannot write in this directory."
+msgstr "无法在这个目录写入。"
+
+msgid "An error occurred while writing the file."
+msgstr "写入文件时出现错误。"
+
+msgid "Source file does not exist."
+msgstr "源文件不存在。"
+
+#, fuzzy
+msgid "File is not in jail."
+msgstr "文件不再监禁中。"
+
+msgid "Destination directory is not writable."
+msgstr "目标目录不可写。"
+
+msgid "Unable to rename file."
+msgstr "无法重命名文件。"
+
+msgid "File cannot be removed."
+msgstr "文件无法被移除。"
+
+#, fuzzy
+msgid "Directory is not in jail."
+msgstr "目录不在监禁中。"
+
+msgid "Directory cannot be removed."
+msgstr "目录无法被移除。"
+
+msgid "Not enough memory to open image."
+msgstr "没有足够的空间打开图片。"
+
+#, php-format
+msgid "File %s is not compressed in the zip."
+msgstr "文件 %s 没有压缩到 zip 中。"
+
+#, php-format
+msgid "Trying to unzip a folder name %s"
+msgstr "尝试解压缩一个目录 %s"
+
+msgid "Unable to write destination file."
+msgstr "无法写入目标文件。"
+
+msgid "Unable to write in target directory, permission denied."
+msgstr "无法写入目标目录，权限被拒绝。"
+
+msgid "Not enough memory to open file."
+msgstr "没有足够空间打开文件。"
+
+msgid "File does not exist"
+msgstr "文件不存在"
+
+msgid "Cannot read file"
+msgstr "无法读取文件"
+
+msgid "Directory does not exist"
+msgstr "目录不存在"
+
+msgid "Cannot read directory"
+msgstr "无法读取目录"
+
+msgid "Unable to connect to database"
+msgstr ""
+
+#, php-format
+msgid "<p>This either means that the username and password information in your <strong>config.php</strong> file is incorrect or we can't contact the database server at \"<em>%s</em>\". This could mean your host's database server is down.</p> <ul><li>Are you sure you have the correct username and password?</li><li>Are you sure that you have typed the correct hostname?</li><li>Are you sure that the database server is running?</li></ul><p>If you're unsure what these terms mean you should probably contact your host. If you still need help you can always visit the <a href=\"http://forum.dotclear.net/\">Dotclear Support Forums</a>.</p>"
+msgstr ""
+
+msgid "The following error was encountered while trying to read the database:"
+msgstr ""
+
+#~ msgid "login"
+#~ msgstr "登录"
+
+#~ msgid "filter"
+#~ msgstr "过滤"
+
+#~ msgid "View site"
+#~ msgstr "浏览网站"
+
+#~ msgid "The file <strong>%s</strong> already exists. If you need to reset any of the configuration items in this file, please delete it first or you may <a href=\"%s\">continue to install</a>."
+#~ msgstr "<strong>%s</strong> 文件已经存在。如果您需要在这个文件中重新设置任何配置项目，请先删除它或者您可以<a href=\"%s\">继续安装</a>。"
Index: locales/zh-cn/plugins.po
===================================================================
--- locales/zh-cn/plugins.po	(revision 261)
+++ locales/zh-cn/plugins.po	(revision 261)
@@ -0,0 +1,1461 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dotclear 2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-05-13 19:36+0200\n"
+"PO-Revision-Date: 2010-01-16 19:14+0800\n"
+"Last-Translator: lainme <lainme993@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+msgid "no"
+msgstr "否"
+
+msgid "Configuration successfully updated"
+msgstr "成功更新配置"
+
+msgid "Settings definition successfully updated"
+msgstr "成功更新设置定义"
+
+msgid "blog settings"
+msgstr "博客设置"
+
+msgid "Value"
+msgstr "值"
+
+msgid "Description"
+msgstr "描述"
+
+msgid "global settings"
+msgstr "全局设置"
+
+msgid "Akismet spam filter"
+msgstr "Akismet 垃圾评论过滤"
+
+#, php-format
+msgid "Filtered by %s."
+msgstr "依据 %s 过滤。"
+
+msgid "Akismet API key:"
+msgstr "Akismet API key："
+
+msgid "API key verified"
+msgstr "API key 验证成功"
+
+msgid "API key not verified"
+msgstr "API key 验证失败"
+
+msgid "Get your own API key"
+msgstr "获取您自己的 API key"
+
+msgid "Antispam"
+msgstr "反垃圾评论"
+
+msgid "Delete junk comments older than"
+msgstr "删除垃圾评论早于"
+
+msgid "days"
+msgstr "天"
+
+msgid "IP Blacklist / Whitelist Filter"
+msgstr "IP 黑名单／白名单过滤"
+
+#, php-format
+msgid "Filtered by %1$s with rule %2$s."
+msgstr "根据规则 %2$s 被 %1$s 过滤。"
+
+msgid "IP address has been successfully added."
+msgstr "成功添加 IP 地址。"
+
+msgid "IP addresses have been successfully removed."
+msgstr "成功删除 IP 地址。"
+
+msgid "Blacklist"
+msgstr "黑名单"
+
+msgid "Whitelist"
+msgstr "白名单"
+
+msgid "Add an IP address"
+msgstr "添加一个 IP 地址"
+
+msgid "Global IP"
+msgstr "全球 IP"
+
+msgid "Add"
+msgstr "添加"
+
+msgid "No IP address in list."
+msgstr "列表中没有 IP 地址。"
+
+msgid "IP list"
+msgstr "IP 列表"
+
+msgid "Checks sender IP address against DNSBL servers"
+msgstr "从 DNSBL 服务器检查发送者 IP 地址"
+
+#, php-format
+msgid "Filtered by %1$s with server %2$s."
+msgstr "根据服务器 %2$s 被 %1$s 过滤。"
+
+msgid "IP Lookup servers"
+msgstr "IP 查询服务器"
+
+msgid "Add here a coma separated list of servers."
+msgstr "添加一个由逗号分隔的服务器列表。"
+
+msgid "Checks links in comments against surbl.org"
+msgstr "从 surbl.org 查询评论中的链接"
+
+msgid "Words Blacklist"
+msgstr "关键字黑名单"
+
+#, php-format
+msgid "Filtered by %1$s with word %2$s."
+msgstr "根据关键字 %2$s 被 %1$s 过滤。"
+
+msgid "Words have been successfully added."
+msgstr "成功添加关键字。"
+
+msgid "Word has been successfully added."
+msgstr "成功添加关键字。"
+
+msgid "Words have been successfully removed."
+msgstr "成功移除关键字。"
+
+msgid "Add a word"
+msgstr "添加一个关键字"
+
+msgid "Global word"
+msgstr "全局关键字"
+
+msgid "No word in list."
+msgstr "列表中没有关键字"
+
+msgid "List"
+msgstr "列表"
+
+msgid "Delete selected words"
+msgstr "删除选择的关键字"
+
+msgid "Create default wordlist"
+msgstr "创建默认的关键字列表"
+
+msgid "This word exists"
+msgstr "这个关键字已存在"
+
+msgid "No description"
+msgstr "没有描述"
+
+#, php-format
+msgid "Filtered by %1$s (%2$s)"
+msgstr "被 %1$s (%2$s) 过滤"
+
+msgid "Unknown filter."
+msgstr "未知的过滤。"
+
+msgid "This comment is a spam:"
+msgstr "这个评论是垃圾评论："
+
+#, php-format
+msgid "(including %d spam comment)"
+msgstr "(包括 %d 个垃圾评论)"
+
+#, php-format
+msgid "(including %d spam comments)"
+msgstr "(包括 %d 个垃圾评论)"
+
+msgid "Spam moderation"
+msgstr "垃圾评论审核"
+
+msgid "Spam"
+msgstr "垃圾评论"
+
+#, fuzzy
+msgid "Ham"
+msgstr "Ham"
+
+msgid "Filter does not exist."
+msgstr "过滤器不存在。"
+
+msgid "Filter has no user interface."
+msgstr "过滤器没有用户界面。"
+
+msgid "Return to filters"
+msgstr "返回到过滤器"
+
+#, php-format
+msgid "%s configuration"
+msgstr "%s 配置"
+
+msgid "Information"
+msgstr "信息"
+
+msgid "Spam comments have been successfully deleted."
+msgstr "成功删除垃圾评论。"
+
+msgid "Junk comments:"
+msgstr "垃圾评论："
+
+msgid "Published comments:"
+msgstr "发布的评论："
+
+msgid "Delete all spams"
+msgstr "删除所有垃圾评论"
+
+#, php-format
+msgid "All spam comments older than %s day(s) will be automatically deleted."
+msgstr "所有早于 %s 天的垃圾评论都会被自动删除。"
+
+msgid "Available spam filters"
+msgstr "可用的垃圾评论过滤器"
+
+msgid "Filters configuration has been successfully saved."
+msgstr "成功保存过滤器配置。"
+
+msgid "Order"
+msgstr "顺序"
+
+msgid "Active"
+msgstr "激活"
+
+msgid "Auto Del."
+msgstr "自动删除。"
+
+msgid "Filter name"
+msgstr "过滤器名称"
+
+msgid "Filter configuration"
+msgstr "过滤器配置"
+
+#, fuzzy
+msgid "position"
+msgstr "页面位置"
+
+msgid "Syndication"
+msgstr "同步"
+
+msgid "Junk comments RSS feed"
+msgstr "垃圾评论 RSS feed"
+
+msgid "Published comments RSS feed"
+msgstr "发表的评论 RSS feed"
+
+msgid "manage blogroll"
+msgstr "管理博客链接"
+
+msgid "Links"
+msgstr "链接"
+
+msgid "All categories"
+msgstr "所有分类目录"
+
+msgid "Home page only"
+msgstr "仅首页"
+
+msgid "You must provide a link title"
+msgstr "您必须提供一个链接标题"
+
+msgid "You must provide a link URL"
+msgstr "您必须提供一个链接 URL"
+
+msgid "You need to provide a XBEL or OPML file."
+msgstr "您必须提供一个 XBEL 或者 OPML 文件。"
+
+msgid "File is not in XML format."
+msgstr "文件不是 XML 格式。"
+
+msgid "No such link or title"
+msgstr "没有这样的链接或者标题"
+
+msgid "Return to blogroll"
+msgstr "返回到博客链接"
+
+msgid "Category has been successfully updated"
+msgstr "成功更新分类目录"
+
+msgid "Edit category"
+msgstr "编辑分类目录"
+
+msgid "Link has been successfully updated"
+msgstr "成功更新链接"
+
+msgid "Edit link"
+msgstr "编辑链接"
+
+msgid "XFN"
+msgstr "链接关系（XFN）"
+
+msgid "_xfn_Me"
+msgstr "我自己"
+
+msgid "_xfn_Another link for myself"
+msgstr "我的另一个连接"
+
+msgid "_xfn_Friendship"
+msgstr "友情"
+
+msgid "_xfn_Contact"
+msgstr "联系人"
+
+msgid "_xfn_Acquaintance"
+msgstr "熟人"
+
+msgid "_xfn_Friend"
+msgstr "朋友"
+
+msgid "_xfn_Physical"
+msgstr "接触"
+
+msgid "_xfn_Met"
+msgstr "新识"
+
+msgid "_xfn_Professional"
+msgstr "专家"
+
+msgid "_xfn_Co-worker"
+msgstr "合作者"
+
+msgid "_xfn_Colleague"
+msgstr "同事"
+
+msgid "_xfn_Geographical"
+msgstr "地理区域"
+
+msgid "_xfn_Co-resident"
+msgstr "同区域"
+
+msgid "_xfn_Neighbor"
+msgstr "邻居"
+
+msgid "_xfn_Family"
+msgstr "家人"
+
+msgid "_xfn_Child"
+msgstr "孩子"
+
+msgid "_xfn_Parent"
+msgstr "父母"
+
+msgid "_xfn_Sibling"
+msgstr "兄弟姐妹"
+
+msgid "_xfn_Spouse"
+msgstr "配偶"
+
+msgid "_xfn_Kin"
+msgstr "家族"
+
+msgid "_xfn_Romantic"
+msgstr "浪漫的"
+
+msgid "_xfn_Muse"
+msgstr "我的女神"
+
+msgid "_xfn_Crush"
+msgstr "迷恋的"
+
+msgid "_xfn_Date"
+msgstr "与我约会的"
+
+msgid "_xfn_Sweetheart"
+msgstr "甜心"
+
+msgid "Nothing to import"
+msgstr "没有要导入的"
+
+msgid "Import operation cancelled."
+msgstr "导入操作被取消。"
+
+msgid "Items order has been successfully updated"
+msgstr "成功更新项目顺序"
+
+msgid "Items have been successfully removed."
+msgstr "成功删除项目。"
+
+msgid "Link has been successfully created."
+msgstr "成功创建连接。"
+
+msgid "category has been successfully created."
+msgstr "成功创建分类目录。"
+
+msgid "links have been successfully imported."
+msgstr "成功导入链接。"
+
+msgid "URL"
+msgstr "URL"
+
+msgid "Lang"
+msgstr "语言"
+
+#, fuzzy
+msgid "select this link"
+msgstr "删除此标签"
+
+msgid "Delete selected links"
+msgstr "删除选定的链接"
+
+msgid "Are you sure you want to delete selected links?"
+msgstr "您确定您要删除选定的链接吗？"
+
+msgid "The link list is empty."
+msgstr ""
+
+msgid "Add a new link"
+msgstr "添加一个新链接"
+
+msgid "Add a category"
+msgstr "添加一个分类目录"
+
+msgid "Import links"
+msgstr "导入链接"
+
+msgid "OPML or XBEL File:"
+msgstr "OPML 或者 XBEL 文件："
+
+msgid "import"
+msgstr "导入"
+
+msgid "Light linear gradient"
+msgstr "浅的线性梯度"
+
+msgid "Medium linear gradient"
+msgstr "中等线性梯度"
+
+msgid "Dark linear gradient"
+msgstr "深的线性梯度"
+
+msgid "Solid color"
+msgstr "实色"
+
+msgid "Custom..."
+msgstr "定制..."
+
+msgid "Blowup configuration"
+msgstr "Blowup 配置"
+
+msgid "Predefined styles"
+msgstr "预定义的样式"
+
+msgid "Apply code"
+msgstr "应用代码"
+
+#, fuzzy
+msgid "Choose a predefined style"
+msgstr "预定义的样式"
+
+#, fuzzy
+msgid "For the following reasons, images cannot be created. You won't be able to change some background properties."
+msgstr "由于图片无法被创建，您将不能改变某些背景属性。"
+
+msgid "Theme configuration has been successfully updated."
+msgstr "成功更新主题配置。"
+
+msgid "General"
+msgstr "一般"
+
+msgid "Background color:"
+msgstr "背景颜色："
+
+msgid "Background color fill:"
+msgstr "背景颜色填充："
+
+msgid "Main text font:"
+msgstr "主体文字字体："
+
+msgid "Main text font size:"
+msgstr "主体文字大小："
+
+msgid "Main text color:"
+msgstr "主体文字颜色："
+
+msgid "Text line height:"
+msgstr "文本行高："
+
+msgid "Links color:"
+msgstr "链接颜色："
+
+msgid "Visited links color:"
+msgstr "浏览过的链接颜色："
+
+msgid "Focus links color:"
+msgstr "焦点链接颜色："
+
+msgid "Page top"
+msgstr "页面顶部"
+
+#, fuzzy
+msgid "Prelude color:"
+msgstr "Prelude 的颜色："
+
+msgid "Hide main title"
+msgstr "隐藏主标题"
+
+msgid "Main title font:"
+msgstr "主标题字体："
+
+msgid "Main title font size:"
+msgstr "主标题字体大小："
+
+msgid "Main title color:"
+msgstr "主标题颜色："
+
+msgid "Main title alignment:"
+msgstr "主标题对齐："
+
+msgid "center"
+msgstr "中间"
+
+msgid "left"
+msgstr "左"
+
+msgid "right"
+msgstr "右"
+
+msgid "Main title position (x:y)"
+msgstr "主标题位置(x:y)"
+
+msgid "Top image"
+msgstr "顶部图片"
+
+msgid "Choose \"Custom...\" to upload your own image."
+msgstr "选择“定制...”来上传您自己的图片。"
+
+msgid "Add your image:"
+msgstr "添加您的图片："
+
+#, php-format
+msgid "JPEG or PNG file, 800 pixels wide, maximum size %s"
+msgstr "JPEG 或者 PNG 文件，800 像素宽，最大大小 %s"
+
+msgid "Preview"
+msgstr "预览"
+
+msgid "Sidebar"
+msgstr "侧边栏"
+
+msgid "Sidebar position:"
+msgstr "侧边栏位置："
+
+msgid "Sidebar text font:"
+msgstr "侧边栏文字字体："
+
+msgid "Sidebar text font size:"
+msgstr "侧边栏文字字体大小："
+
+msgid "Sidebar text color:"
+msgstr "侧边栏文字颜色："
+
+msgid "Sidebar titles font:"
+msgstr "侧边栏标题字体："
+
+msgid "Sidebar titles font size:"
+msgstr "侧边栏标题字体大小："
+
+msgid "Sidebar titles color:"
+msgstr "侧边栏标题颜色："
+
+msgid "Sidebar 2nd level titles font:"
+msgstr "侧边栏第二层标题字体："
+
+msgid "Sidebar 2nd level titles font size:"
+msgstr "侧边栏第二层标题字体大小："
+
+msgid "Sidebar 2nd level titles color:"
+msgstr "侧边栏第二层标题颜色："
+
+msgid "Sidebar lines color:"
+msgstr "侧边栏水平线颜色："
+
+msgid "Sidebar links color:"
+msgstr "侧边栏链接颜色："
+
+msgid "Sidebar visited links color:"
+msgstr "侧边栏浏览过的链接颜色："
+
+msgid "Sidebar focus links color:"
+msgstr "侧边栏焦点链接颜色："
+
+msgid "Date title font:"
+msgstr "日期标题字体："
+
+msgid "Date title font size:"
+msgstr "日期标题字体大小："
+
+msgid "Date title color:"
+msgstr "日期标题颜色："
+
+msgid "Entry title font:"
+msgstr "文章标题字体："
+
+msgid "Entry title font size:"
+msgstr "文章标题字体大小："
+
+msgid "Entry title color:"
+msgstr "文章标题颜色："
+
+msgid "Comment background color:"
+msgstr "评论背景颜色："
+
+msgid "Comment text color:"
+msgstr "评论文字颜色："
+
+msgid "My comment background color:"
+msgstr "我的评论背景颜色："
+
+msgid "My comment text color:"
+msgstr "我的评论文字颜色："
+
+msgid "Footer"
+msgstr "足部"
+
+msgid "Footer font:"
+msgstr "足部字体："
+
+msgid "Footer font size:"
+msgstr "足部字体大小："
+
+msgid "Footer color:"
+msgstr "足部颜色："
+
+msgid "Footer links color:"
+msgstr "足部链接颜色："
+
+msgid "Footer background color:"
+msgstr "足部背景颜色："
+
+msgid "Configuration import / export"
+msgstr "配置导入／导出"
+
+msgid "You can share your configuration using the following code. To apply a configuration, paste the code, click on \"Apply code\" and save."
+msgstr "您可以使用如下代码分享您的配置。要应用一个配置 ，粘贴代码，点击“应用代码”并保存。"
+
+msgid "Copy this code:"
+msgstr ""
+
+msgid "default"
+msgstr "默认"
+
+msgid "At least one of the following functions is not available: imagecreatetruecolor, imagepng & imagecreatefrompng."
+msgstr ""
+
+#, fuzzy
+msgid "The 'public' directory does not exist."
+msgstr "此页面不存在。"
+
+#, php-format
+msgid "The '%s' directory cannot be modified."
+msgstr ""
+
+msgid "Unable to create images."
+msgstr "无法创建图片。"
+
+msgid "Invalid file type."
+msgstr "无效的文件格式。"
+
+msgid "Uploaded image is not 800 pixels wide."
+msgstr ""
+
+msgid "Unable to open image."
+msgstr "无法打开图片。"
+
+msgid "Checks trackback source for a link to the post"
+msgstr "检查文章链接的 trackback 源"
+
+msgid "Import/Export"
+msgstr "导入／导出"
+
+msgid "Flat file export"
+msgstr "纯文本导出"
+
+msgid "Exports a blog or a full Dotclear installation to flat file."
+msgstr "导出一个博客或者整个 Dotclear 到一个纯文本文件。"
+
+msgid "Export file not found."
+msgstr "导出文件没有找到。"
+
+msgid "Export a blog"
+msgstr "导出一个博客"
+
+#, php-format
+msgid "This will create an export of your current blog: %s"
+msgstr "这将会导出您当前博客：%s"
+
+msgid "Export"
+msgstr "导出"
+
+msgid "You may also want to download your media directory as a zip file"
+msgstr "您或许也希望将您的媒体目录作为 zip 文件下载"
+
+msgid "Export all content"
+msgstr "导出所有内容"
+
+msgid "Congratulation!"
+msgstr "恭喜！"
+
+msgid "Your blog has been successfully imported. Welcome on Dotclear 2!"
+msgstr "您的博客已被成功导入。欢迎来到 Dotclear 2！"
+
+msgid "Why don't you blog this now?"
+msgstr "为什么不立刻开始写博客呢？"
+
+msgid "or"
+msgstr "或者"
+
+msgid "visit your dashboard"
+msgstr "浏览您的控制板"
+
+msgid "Dotclear 1.2 import"
+msgstr "Dotclear 1.2 导入"
+
+msgid "Import a Dotclear 1.2 installation into your current blog."
+msgstr "从 Dotclear 1.2 导入到您现在的博客。"
+
+#, php-format
+msgid "This will import your Dotclear 1.2 content as new content in the current blog: %s."
+msgstr "这将会将您 Dotclear 1.2 的内容作为新内容导入到当前的博客：%s。"
+
+msgid "Please note that this process will empty your categories, blogroll, entries and comments on the current blog."
+msgstr "请注意这个过程将会清空您当前博客的分类目录、博客链接表、文章和评论。"
+
+msgid "Depending on the size of your blog, it could take a few minutes."
+msgstr "根据您博客的大小而不同，这将会花费一些时间。"
+
+msgid "General information"
+msgstr "一般信息"
+
+msgid "Import my blog now"
+msgstr "现在导入我的博客"
+
+msgid "We first need some information about your old Dotclear 1.2 installation."
+msgstr "我们首先需要关于您的 Dotclear 1.2 的一些信息。"
+
+msgid "Entries import options"
+msgstr "文章导入选项"
+
+msgid "Number of entries to import at once:"
+msgstr "一次导入的文章数目："
+
+msgid "Importing users"
+msgstr "导入用户"
+
+msgid "Importing categories"
+msgstr "导入分类目录"
+
+msgid "Importing blogroll"
+msgstr "导入博客链接"
+
+#, php-format
+msgid "Importing entries from %d to %d / %d"
+msgstr "从 %d 导入文章到 %d/%d"
+
+msgid "Please read carefully"
+msgstr "请仔细阅读"
+
+msgid "Every newly imported user has received a random password and will need to ask for a new one by following the \"I forgot my password\" link on the login page (Their registered email address has to be valid.)"
+msgstr "每个新导入的用户已接收了一个随即密码并且需要通过登录页面“我忘记了我的密码”的链接来获取一个新的（注册的邮箱地址必须有效）。"
+
+#, php-format
+msgid "Please note that Dotclear 2 has a new URL layout. You can avoid broken links by installing <a href=\"%s\">DC1 redirect</a> plugin and activate it in your blog configuration."
+msgstr "请注意 Dotclear 2 有一个新的 URL 布局。您可以通过安装 <a href=\"%s\">DC1 redirect</a> 插件并在博客配置里激活它来避免损坏链接。"
+
+msgid "next step"
+msgstr "下一步"
+
+msgid "Dotclear tables not found"
+msgstr "Dotclear 表没有找到"
+
+msgid "Feed import"
+msgstr "Feed 导入"
+
+msgid "Imports a feed as new entries."
+msgstr "将 feed 作为新文章导入。"
+
+msgid "Cannot retrieve feed URL."
+msgstr "无法检索 feed URL。"
+
+msgid "No items in feed."
+msgstr "feed 中没有条目。"
+
+msgid "Content successfully imported."
+msgstr "成功导入内容。"
+
+msgid "Import from a feed"
+msgstr "从 feed 中导入"
+
+#, php-format
+msgid "This will import a feed (RSS or Atom) a as new content in the current blog: %s."
+msgstr "这将会把一个 feed (RSS 或者 Atom)做为一个新内容导入当前博客：%s。"
+
+msgid "Feed URL:"
+msgstr "Feed URL："
+
+msgid "Send"
+msgstr "发送"
+
+msgid "Flat file import"
+msgstr "纯文本导入"
+
+msgid "Imports a blog or a full Dotclear installation from flat file."
+msgstr "从纯文本导入一个博客或者整个 Dotclear。"
+
+msgid "Single blog successfully imported."
+msgstr "成功导入单一博客。"
+
+msgid "Are you sure you want to import a full backup file?"
+msgstr "您确定您要导入一个完整的备份文件吗？"
+
+msgid "Import a single blog"
+msgstr "导入单一博客"
+
+#, php-format
+msgid "This will import a single blog backup as new content in the current blog: %s."
+msgstr "这将会把一个单一博客的备份作为新内容导入到当前博客：%s。"
+
+msgid "Upload a backup file"
+msgstr "上传一个备份文件"
+
+msgid "or pick up a local file in your public directory"
+msgstr "或者从您的 public 目录中选择一个本地文件"
+
+msgid "Import a full backup file"
+msgstr "导入一个完整的备份文件"
+
+msgid "Warning: This will reset all the content of your database, except users."
+msgstr "警告：这将会您的数据库中所有内容，除了用户。"
+
+msgid "WordPress import"
+msgstr "WordPress 导入"
+
+msgid "Import a WordPress installation into your current blog."
+msgstr "从 WordPress 导入您当前博客。"
+
+#, php-format
+msgid "This will import your WordPress content as new content in the current blog: %s."
+msgstr "这将会把您的 WordPress 内容作为新内容导入到当前博客：%s。"
+
+msgid "We first need some information about your old WordPress installation."
+msgstr "我们首先需要一些关于您以前 WordPress 的一些信息。"
+
+msgid "WordPress and Dotclear's handling of categories are quite different. You can assign several categories to a single post in WordPress. In the Dotclear world, we see it more like \"One category, several tags.\" Therefore Dotclear can only import one category per post and will chose the lowest numbered one. If you want to keep a trace of every category, you can import them as tags, with an optional prefix."
+msgstr "WordPress 和 Dotclear 处理分类目录的方式很不同。WorePress 中您可以为一篇文章指定多个分类目录。而在 Dotclear 的世界中，我们更倾向于“一个分类目录，多个标签”。因此，Dotclear 对每篇文章仅能导入一个分类目录并会选择数字最低的一个。如果您希望跟踪每一个分类目录，您可以将它们导入为带有可选前缀的标签。"
+
+msgid "On the other hand, in WordPress, a post can not be uncategorized, and a default installation has a first category labelised <i>\"Uncategorized\"</i>. If you did not change that category, you can just ignore it while importing your blog, as Dotclear allows you to actually keep your posts uncategorized."
+msgstr "在另一方面，WordPress 里，一篇文章无法不被分类，默认的安装将会有第一个分类目录名为“未分类”。如果您没有改变此分类目录，您可以在导入博客的时候忽略它，因为 Dotclear 可以确实保证您的文章不被分类。"
+
+msgid "Ignore the first category:"
+msgstr "忽略第一个分类："
+
+msgid "Import lowest numbered category on posts:"
+msgstr "导入文章的数字最低的分类目录："
+
+msgid "Import all categories as tags:"
+msgstr "将所有分类目录导入为标签："
+
+msgid "Prefix such tags with:"
+msgstr "为这个标签指定前缀："
+
+msgid "Content filters"
+msgstr "内容过滤器"
+
+msgid "You may want to process your post and/or comment content with the following filters."
+msgstr "您或许希望使用下列过滤器处理您的文章以及／或者评论内容。"
+
+msgid "Post content formatter:"
+msgstr "文章内容格式："
+
+msgid "Comment content formatter:"
+msgstr "评论内容格式："
+
+msgid "WordPress tables not found"
+msgstr "WordPress 表没有找到"
+
+msgid "No file to read."
+msgstr "没有文件要读取。"
+
+msgid "File is not a DotClear backup."
+msgstr "文件不是一个 Dotclear 备份。"
+
+msgid "File is not a single blog export."
+msgstr "文件不是一个单一博客的导出。"
+
+msgid "File is not a full export."
+msgstr "文件不是一个完整的导出。"
+
+msgid "The backup file does not appear to be well formed."
+msgstr ""
+
+msgid "Please wait..."
+msgstr "请稍等..."
+
+msgid "Import"
+msgstr "导入"
+
+msgid "Maintenance"
+msgstr "维护"
+
+msgid "Optimization successful."
+msgstr "优化成功。"
+
+msgid "Comments and trackback counted."
+msgstr "评论和 trackback 已计数。"
+
+msgid "Templates cache directory emptied."
+msgstr "模板缓存目录清空。"
+
+msgid "Logs deleted."
+msgstr ""
+
+#, php-format
+msgid "Indexing entry %d to %d."
+msgstr "索引文章 %d 到 %d。"
+
+msgid "next"
+msgstr "下一个"
+
+msgid "Entries index done."
+msgstr "文章索引完成。"
+
+msgid "Back"
+msgstr "返回"
+
+#, php-format
+msgid "Indexing comment %d to %d."
+msgstr "索引评论 %d 到 %d。"
+
+msgid "Comments index done."
+msgstr "评论索引完成。"
+
+msgid "Optimize database room"
+msgstr "优化数据库空间"
+
+msgid "Vacuum tables"
+msgstr "清理表"
+
+msgid "Counters"
+msgstr "计数"
+
+msgid "Reset comments and ping counters"
+msgstr "重置评论和 ping 计数。"
+
+msgid "Search engine index"
+msgstr "搜索引擎索引"
+
+msgid "This may take a very long time"
+msgstr "这可能需要很长时间"
+
+msgid "Index all posts"
+msgstr "索引所有文章"
+
+msgid "Index all comments"
+msgstr "索引所有评论"
+
+#, fuzzy
+msgid "Vacuum logs"
+msgstr "清理表"
+
+#, fuzzy
+msgid "Delete all logs"
+msgstr "删除所有垃圾评论"
+
+msgid "Empty templates cache directory"
+msgstr "清空模板缓存目录"
+
+msgid "Empty directory"
+msgstr "清空目录"
+
+msgid "New page"
+msgstr "新页面"
+
+#, fuzzy, php-format
+msgid "%d page"
+msgstr "编辑页面"
+
+#, fuzzy, php-format
+msgid "%d pages"
+msgstr "编辑页面"
+
+msgid "manage pages"
+msgstr "管理页面"
+
+msgid "Published on"
+msgstr "发布于"
+
+msgid "This page's comments feed"
+msgstr "此页面的评论 feed"
+
+msgid "You must provide a valid email address."
+msgstr "您必须提供一个有效的邮箱地址。"
+
+msgid "Page title"
+msgstr "页面标题"
+
+msgid "Page position"
+msgstr "页面位置"
+
+msgid "Publication date"
+msgstr "发布时间"
+
+msgid "No page"
+msgstr "没有页面"
+
+#, fuzzy
+msgid "select this page"
+msgstr "删除此标签"
+
+msgid "Are you sure you want to delete selected pages?"
+msgstr "您确定要删除选定的页面吗？"
+
+msgid "Selected pages action:"
+msgstr "选定的页面动作："
+
+msgid "This page does not exist."
+msgstr "此页面不存在。"
+
+msgid "Edit page"
+msgstr "编辑页面"
+
+msgid "next page"
+msgstr "下一个页面"
+
+msgid "previous page"
+msgstr "前一个页面"
+
+msgid "Are you sure you want to delete this page?"
+msgstr "您确定要删除此页面吗？"
+
+msgid "Page has been successfully updated."
+msgstr "成功更新页面。"
+
+msgid "Page has been successfully created."
+msgstr "成功创建页面。"
+
+msgid "View page"
+msgstr "查看页面"
+
+msgid "Preview page"
+msgstr "预览页面"
+
+msgid "Page status:"
+msgstr "页面状态："
+
+msgid "Page position:"
+msgstr "页面位置："
+
+msgid "Page lang:"
+msgstr "页面语言："
+
+msgid "Page password:"
+msgstr "页面密码："
+
+msgid "Warning: If you set the URL manually, it may conflict with another page."
+msgstr "警告：如果您手动设置 URL，它可能与其它页面冲突。"
+
+msgid "Add files to this page"
+msgstr "向此页面添加文件"
+
+msgid "Pings"
+msgstr "Pings"
+
+msgid "Pings configuration"
+msgstr "Pings 配置"
+
+msgid "Settings have been successfully updated."
+msgstr "成功更新设置。"
+
+msgid "Activate pings extension"
+msgstr "激活 pings 扩展"
+
+msgid "Service name:"
+msgstr "服务器名称："
+
+msgid "Service URI:"
+msgstr "服务器 URL："
+
+msgid "error"
+msgstr "错误"
+
+msgid "Test ping services"
+msgstr "测试 ping 服务器"
+
+msgid "Check all"
+msgstr ""
+
+msgid "Pings:"
+msgstr "Pings："
+
+msgid "Tags"
+msgstr "标签"
+
+msgid "Tags:"
+msgstr "标签："
+
+#, php-format
+msgid "Are you sure you want to remove this %s?"
+msgstr "您确定您要移除这个 %s 吗？"
+
+#, php-format
+msgid "Add a %s to this entry"
+msgstr "向这篇文章添加 %s"
+
+msgid "Choose from list"
+msgstr "从列表中选择"
+
+msgid "all"
+msgstr "所有"
+
+msgid "Tag"
+msgstr "标签"
+
+msgid "used in %e - frequency %p%"
+msgstr ""
+
+#, fuzzy
+msgid "entry"
+msgstr "中间"
+
+msgid "entries"
+msgstr "文章"
+
+msgid "Enter tags separated by coma"
+msgstr ""
+
+msgid "Add tags"
+msgstr "添加标签"
+
+msgid "Remove tags"
+msgstr "移除标签"
+
+msgid "Add tags to entries"
+msgstr "向文章添加标签"
+
+msgid "Tags to add:"
+msgstr "要添加的标签："
+
+msgid "Remove selected tags from entries"
+msgstr "从文章中移除选择的标签"
+
+msgid "No tags for selected entries"
+msgstr "所选文章没有标签"
+
+msgid "Following tags have been found in selected entries:"
+msgstr "所选文章中发现下列标签："
+
+msgid "short"
+msgstr ""
+
+msgid "extended"
+msgstr ""
+
+#, fuzzy
+msgid "Tags list format:"
+msgstr "要添加的标签："
+
+msgid "This tag's comments Atom feed"
+msgstr "此标签的评论 Atom feed"
+
+msgid "This tag's entries Atom feed"
+msgstr "此标签的文章 Atom feed"
+
+msgid "Limit (empty means no limit):"
+msgstr "限制(留空表示不限制)："
+
+msgid "Entries count"
+msgstr "文章计数"
+
+msgid "Tag name"
+msgstr "标签名称"
+
+msgid "All tags"
+msgstr "所有标签"
+
+msgid "Link to all tags:"
+msgstr ""
+
+msgid "Edit tag"
+msgstr "编辑标签"
+
+msgid "Tag has been successfully renamed"
+msgstr "成功重命名标签"
+
+msgid "Back to tags list"
+msgstr "返回到标签列表"
+
+msgid "Rename this tag:"
+msgstr "重命名此标签："
+
+msgid "Delete this tag"
+msgstr "删除此标签"
+
+msgid "Tag has been successfully removed"
+msgstr "成功移除标签"
+
+msgid "No tags on this blog."
+msgstr "此博客上没有标签"
+
+msgid "Theme Editor"
+msgstr "主题编辑器"
+
+msgid "No file"
+msgstr "没有文件"
+
+msgid "File does not exist."
+msgstr "文件不存在。"
+
+#, php-format
+msgid "File %s is not readable"
+msgstr "文件 %s 无法读取"
+
+#, php-format
+msgid "Unable to write file %s. Please check your theme files and folders permissions."
+msgstr "无法写入文件 %s。请检查您的主题文件和文件夹的权限。"
+
+msgid "Saving document..."
+msgstr "保存文件..."
+
+msgid "Document saved"
+msgstr "文件已保存"
+
+msgid "An error occurred:"
+msgstr "出现一个错误："
+
+#, php-format
+msgid "Your current theme on this blog is \"%s\"."
+msgstr "您此博客的当前主题是“%s”。"
+
+msgid "You can't edit default theme."
+msgstr "您不能修改默认主题。"
+
+msgid "Please select a file to edit."
+msgstr "请选择一个要编辑的文件。"
+
+msgid "File editor"
+msgstr "文件编辑器"
+
+#, php-format
+msgid "Editing file %s"
+msgstr "编辑文件 %s"
+
+msgid "This file is not writable. Please check your theme files permissions."
+msgstr "文件不可写。请检查您的主题文件的权限。"
+
+msgid "Templates files"
+msgstr "模板文件"
+
+msgid "CSS files"
+msgstr "CSS 文件"
+
+msgid "JavaScript files"
+msgstr "JavaScript 文件"
+
+#, fuzzy
+msgid "Preferences successfully updated"
+msgstr "成功更新页面。"
+
+#, fuzzy
+msgid "Preferences definition successfully updated"
+msgstr "成功更新设置定义"
+
+msgid "user preferences"
+msgstr ""
+
+#, fuzzy
+msgid "global preferences"
+msgstr "全局设置"
+
+msgid "Presentation widgets"
+msgstr "展示小工具"
+
+msgid "Search engine"
+msgstr "搜索引擎"
+
+msgid "Navigation links"
+msgstr "导航链接"
+
+msgid "Selected entries"
+msgstr "精选的文章"
+
+msgid "Best of me"
+msgstr "我最好的文章"
+
+msgid "Blog languages"
+msgstr "博客语言"
+
+msgid "With entries counts"
+msgstr "带有文章计数"
+
+msgid "Subscribe links"
+msgstr "订阅链接"
+
+msgid "Subscribe"
+msgstr "订阅"
+
+msgid "Feeds type:"
+msgstr "Feeds 类型："
+
+msgid "Feed reader"
+msgstr "Feed 读者"
+
+msgid "Somewhere else"
+msgstr "别的什么地方"
+
+msgid "Entries limit:"
+msgstr "文章限制："
+
+msgid "Text"
+msgstr "文本"
+
+msgid "Text:"
+msgstr "文本："
+
+msgid "Last entries"
+msgstr "最新文章"
+
+msgid "Uncategorized"
+msgstr "未分类"
+
+msgid "Tag:"
+msgstr "标签："
+
+msgid "Last comments"
+msgstr "最新评论"
+
+msgid "Comments limit:"
+msgstr "评论限制："
+
+msgid "Home"
+msgstr "主页"
+
+msgid "Archives"
+msgstr "归档"
+
+#, php-format
+msgid "This blog's entries %s feed"
+msgstr "此博客的文章 %d feed"
+
+#, php-format
+msgid "This blog's comments %s feed"
+msgstr "此博客的评论 %s feed"
+
+msgid "Entries feed"
+msgstr "文章 feed"
+
+msgid "Comments feed"
+msgstr "评论 feed"
+
+msgid "navigation"
+msgstr "导航"
+
+msgid "extra"
+msgstr "额外"
+
+msgid "Widgets"
+msgstr "小工具"
+
+msgid "Are you sure you want to reset sidebars?"
+msgstr "您确定要重置侧边栏吗？"
+
+msgid "Available widgets"
+msgstr "可用的小工具"
+
+msgid "Append to:"
+msgstr "追加到："
+
+msgid "add widgets to sidebars"
+msgstr "添加小工具和侧边栏"
+
+msgid "Navigation sidebar"
+msgstr "导航侧边栏"
+
+msgid "Extra sidebar"
+msgstr "额外的侧边栏"
+
+msgid "update sidebars"
+msgstr "更新侧边栏"
+
+msgid "reset sidebars"
+msgstr "重置侧边栏"
+
+msgid "Widget templates tags"
+msgstr "小工具模板标签"
+
+msgid "If you are allowed to edit your theme templates, you can directly add widgets as templates tags, with their own configuration."
+msgstr "如果您被允许编辑您的主题模板，您可以直接以模板标签方式添加小工具，并附加各自的配置。"
+
+msgid "To add a widget in your template, you need to write code like this:"
+msgstr "要在您的模板中添加小工具，您下需要这样写代码："
+
+msgid "Widget ID"
+msgstr "小工具 ID"
+
+msgid "Setting name"
+msgstr "设置名称"
+
+msgid "Setting value"
+msgstr "设置值"
+
+msgid "Here are the following available widgets for your blog:"
+msgstr "这里是您博客可用的小工具："
+
+msgid "Widget ID:"
+msgstr "小工具 ID："
+
+msgid "No setting for this widget"
+msgstr "这个小工具没有设置"
+
+msgid "Setting name:"
+msgstr "设置名称："
+
+msgid "No widget."
+msgstr "没有小工具。"
+
+msgid "order"
+msgstr "顺序"
+
+msgid "Remove widget"
+msgstr "移除小工具"
+
+#~ msgid "Blogroll"
+#~ msgstr "博客链接"
+
+#~ msgid "Save order"
+#~ msgstr "保存顺序"
+
+#~ msgid "External media"
+#~ msgstr "外部媒体"
+
+#~ msgid "External media selector"
+#~ msgstr "外部媒体选择器"
+
+#~ msgid "Supported media services"
+#~ msgstr "支持的媒体服务"
+
+#~ msgid "Please enter the URL of the page containing the video you want to include in your post."
+#~ msgstr "请输入您要包含到文章中的视频页面的 URL。"
+
+#~ msgid "Page URL:"
+#~ msgstr "页面 URL："
+
+#~ msgid "Media alignment"
+#~ msgstr "媒体对齐"
+
+#~ msgid "Media title"
+#~ msgstr "媒体标题"
+
+#~ msgid "Pages"
+#~ msgstr "页面"
+
+#~ msgid "Unsupported service"
+#~ msgstr "不支持的服务"
+
+#~ msgid "Invalid page URL"
+#~ msgstr "无效的页面 URL"
Index: locales/zh-cn/public.po
===================================================================
--- locales/zh-cn/public.po	(revision 253)
+++ locales/zh-cn/public.po	(revision 253)
@@ -0,0 +1,244 @@
+# SOME DESCRIPTIVE TITLE.
+# This file is put in the public domain.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Dotclear 2\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2008-10-13 05:22+0200\n"
+"PO-Revision-Date: 2010-01-16 19:15+0800\n"
+"Last-Translator: lainme <lainme993@gmail.com>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Chinese\n"
+"X-Poedit-Country: CHINA\n"
+
+msgid "To content"
+msgstr "内容"
+
+msgid "To menu"
+msgstr "菜单"
+
+msgid "To search"
+msgstr "搜索"
+
+msgid "By"
+msgstr "作者"
+
+msgid "by"
+msgstr "作者"
+
+msgid "on"
+msgstr "于"
+
+msgid "On"
+msgstr "于"
+
+msgid "Continue reading"
+msgstr "继续阅读"
+
+msgid "no comment"
+msgstr "没有评论"
+
+msgid "one comment"
+msgstr "一个评论"
+
+msgid "%d comments"
+msgstr "%d 个评论"
+
+msgid "no trackback"
+msgstr "没有 trackback"
+
+msgid "one trackback"
+msgstr "一个 trackback"
+
+msgid "%d trackbacks"
+msgstr "%d 个 trackback"
+
+msgid "no attachment"
+msgstr "没有附件"
+
+msgid "one attachment"
+msgstr "一个附件"
+
+msgid "%d attachments"
+msgstr "%d 个附件"
+
+msgid "previous entries"
+msgstr "前一篇文章"
+
+msgid "page"
+msgstr "页面"
+
+#, fuzzy
+msgid "of"
+msgstr "of"
+
+msgid "next entries"
+msgstr "下一篇文章"
+
+msgid "Search"
+msgstr "搜索"
+
+msgid "Your search for <em>%1$s</em> returned no result."
+msgstr "您搜索 <em>%1$s</em> 没有匹配结果。"
+
+msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> result."
+msgstr "您搜索 <em>%1$s</em> 返回 <strong>%2$s</strong> 个结果。"
+
+msgid "Your search for <em>%1$s</em> returned <strong>%2$s</strong> results."
+msgstr "您搜索 <em>%1$s</em> 返回 <strong>%2$s</strong> 个结果。"
+
+msgid "Home"
+msgstr "主页"
+
+msgid "All keywords"
+msgstr "所有关键字"
+
+msgid "Best of me"
+msgstr "我最好的文章"
+
+msgid "Languages"
+msgstr "语言"
+
+msgid "Categories"
+msgstr "分类目录"
+
+msgid "Subcategories"
+msgstr "子分类目录"
+
+msgid "Archives"
+msgstr "归档"
+
+msgid "Links"
+msgstr "链接"
+
+msgid "Subscribe"
+msgstr "订阅"
+
+msgid "Entries feed"
+msgstr "文章 feed"
+
+msgid "Comments feed"
+msgstr "评论 feed"
+
+msgid "This blog's comments Atom feed"
+msgstr "此博客评论的 Atom feed"
+
+msgid "This category's entries Atom feed"
+msgstr "此分类目录文章的 Atom feed"
+
+msgid "This category's comments Atom feed"
+msgstr "此分类目录评论的 Atom feed"
+
+msgid "This post's comments feed"
+msgstr "这篇文章的评论 feed"
+
+msgid "This post's comments Atom feed"
+msgstr "这篇文章的评论 Atom feed"
+
+msgid "Attachments"
+msgstr "附件"
+
+msgid "Permalink"
+msgstr "永久链接"
+
+msgid "Comments"
+msgstr "评论"
+
+msgid "Your comment"
+msgstr "您的评论"
+
+msgid "Your comment has been published."
+msgstr "您的评论已发布。"
+
+msgid "Your comment has been submitted and will be reviewed for publication."
+msgstr "您的评论已提交并将被复审以发布。"
+
+msgid "Add a comment"
+msgstr "添加一个评论"
+
+msgid "Name or nickname"
+msgstr "姓名或昵称"
+
+msgid "Email address"
+msgstr "邮件地址"
+
+msgid "Website"
+msgstr "网站"
+
+msgid "optional"
+msgstr "可选的"
+
+msgid "Comment"
+msgstr "评论"
+
+msgid "Comments can be formatted using a simple wiki syntax."
+msgstr ""
+
+msgid "HTML code is displayed as text and web addresses are automatically converted."
+msgstr "HTML 代码以文本显示，网站地址会被自动转化。"
+
+msgid "Remember me on this blog"
+msgstr "在这个博客上记住我"
+
+msgid "preview"
+msgstr "预览"
+
+msgid "send"
+msgstr "发送"
+
+msgid "They posted on the same topic"
+msgstr "他／她们讨论同一个话题"
+
+msgid "Trackback URL"
+msgstr "Trackback URL"
+
+msgid "You must provide an author name"
+msgstr "您必须提供作者姓名"
+
+msgid "You must provide a comment"
+msgstr "您必须提供一个评论"
+
+msgid "Email address is not valid"
+msgstr "邮件地址无效"
+
+msgid "Document not found"
+msgstr "文件不存在"
+
+msgid "The document you are looking for does not exist."
+msgstr "您寻找的文件不存在。"
+
+msgid "Powered by %s"
+msgstr "Powered by %s"
+
+msgid "Subscribe to"
+msgstr "订阅到"
+
+msgid "What is an RSS feed?"
+msgstr "什么是 RSS feed？"
+
+msgid "RSS feed is a free blog summary. It provides content (either posts or comments) or summaries of content, together with links to the full versions, and other metadata. The last published items may then be read by your favorite RSS <a href=\"http://en.wikipedia.org/wiki/Aggregator\">aggregator</a>."
+msgstr "RSS feed 是一个免费的博客摘要。它提供内容（文章或者评论）或者内容的摘要，以及到完整版本的链接和其他元标记。最新发表的条目可以使用您喜欢的 RSS <a href=\"http://en.wikipedia.org/wiki/Aggregator\">聚合器</a> 来阅读。"
+
+msgid "Simply copy the following URL into your aggregator:"
+msgstr "仅需复制下列 URL 到您的聚合器："
+
+msgid "Password needed"
+msgstr "需要密码"
+
+msgid "You must give a password to access this area."
+msgstr "您必须提供密码以进入这一区域。"
+
+msgid "Password:"
+msgstr "密码："
+
+msgid "You must provide a valid email address."
+msgstr "您必须提供有效的邮件地址。"
+
+msgid "Read"
+msgstr "读取"
Index: plugins/aboutConfig/_admin.php
===================================================================
--- plugins/aboutConfig/_admin.php	(revision 0)
+++ plugins/aboutConfig/_admin.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/aboutConfig/_define.php
===================================================================
--- plugins/aboutConfig/_define.php	(revision 0)
+++ plugins/aboutConfig/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,6 +16,5 @@
 	/* Description*/		"Manage every blog configuration directive",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'0.3',
-	/* Permissions */		null
+	/* Version */			'0.3'
 );
 ?>
Index: plugins/aboutConfig/index.php
===================================================================
--- plugins/aboutConfig/index.php	(revision 457)
+++ plugins/aboutConfig/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -77,5 +77,5 @@
 	'<tr>'.
 	'<td><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
-	'<th scope="row">'.$field.'</th>'.
+	'<td>'.$field.'</td>'.
 	'<td>'.$s['type'].'</td>'.
 	'<td>'.html::escapeHTML($s['label']).'</td>'.
@@ -102,19 +102,15 @@
 }
 ?>
-<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; about:config</h2>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title">about:config</span></h2>
 
 <div id="local" class="multi-part" title="<?php echo __('blog settings'); ?>">
 <form action="plugin.php" method="post">
 <table>
-<caption><?php echo __('Local blog settings list'); ?></caption>
-<thead>
 <tr>
-  <th scope="col" class="nowrap">Setting ID</th>
-  <th scope="col"><?php echo __('Value'); ?></th>
-  <th scope="col"><?php echo __('Type'); ?></th>
-  <th scope="col" class="maximal"><?php echo __('Description'); ?></th>
+  <th class="nowrap">Setting ID</th>
+  <th><?php echo __('Value'); ?></th>
+  <th><?php echo __('Type'); ?></th>
+  <th class="maximal"><?php echo __('Description'); ?></th>
 </tr>
-</thead>
-<tbody>
 <?php
 $settings = array();
@@ -131,5 +127,5 @@
 {
 	ksort($s);
-	echo '<tr><th scope="row" colspan="4" class="ns-name">namespace: <strong>'.$ns.'</strong></th></tr>';
+	echo '<tr><td colspan="4" class="ns-name">namespace: <strong>'.$ns.'</strong></td></tr>';
 	
 	foreach ($s as $k => $v)
@@ -139,5 +135,4 @@
 }
 ?>
-</tbody>
 </table>
 <p><input type="submit" value="<?php echo __('Save'); ?>" />
@@ -150,14 +145,10 @@
 <form action="plugin.php" method="post">
 <table>
-<caption><?php echo __('Global blog settings list'); ?></caption>
-<thead>
 <tr>
-  <th scope="col" class="nowrap">Setting ID</th>
-  <th scope="col"><?php echo __('Value'); ?></th>
-  <th scope="col"><?php echo __('Type'); ?></th>
-  <th scope="col" class="maximal"><?php echo __('Description'); ?></th>
+  <th class="nowrap">Setting ID</th>
+  <th><?php echo __('Value'); ?></th>
+  <th><?php echo __('Type'); ?></th>
+  <th class="maximal"><?php echo __('Description'); ?></th>
 </tr>
-</thead>
-<tbody>
 <?php
 $settings = array();
@@ -174,5 +165,5 @@
 {
 	ksort($s);
-	echo '<tr><th scope="row" colspan="4" class="ns-name">namespace: <strong>'.$ns.'</strong></th></tr>';
+	echo '<tr><td colspan="4" class="ns-name">namespace: <strong>'.$ns.'</strong></td></tr>';
 	
 	foreach ($s as $k => $v)
@@ -182,5 +173,4 @@
 }
 ?>
-</tbody>
 </table>
 <p><input type="submit" value="<?php echo __('Save'); ?>" />
Index: plugins/akismet/_define.php
===================================================================
--- plugins/akismet/_define.php	(revision 0)
+++ plugins/akismet/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.1',
-	/* Permissions */		'usage,contentadmin',
-	/* Priority */			200
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'priority' =>		200
+	)
 );
 ?>
Index: plugins/akismet/_prepend.php
===================================================================
--- plugins/akismet/_prepend.php	(revision 0)
+++ plugins/akismet/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/akismet/class.dc.filter.akismet.php
===================================================================
--- plugins/akismet/class.dc.filter.akismet.php	(revision 217)
+++ plugins/akismet/class.dc.filter.akismet.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/_admin.php
===================================================================
--- plugins/antispam/_admin.php	(revision 203)
+++ plugins/antispam/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -29,5 +29,5 @@
 function antispamDashboardFavs($core,$favs)
 {
-	$favs['antispam'] = new ArrayObject(array('antispam',__('Antispam'),'plugin.php?p=antispam',
+	$favs['antispam'] = new ArrayObject(array('antispam','Antispam','plugin.php?p=antispam',
 		'index.php?pf=antispam/icon.png','index.php?pf=antispam/icon-big.png',
 		'admin',null,null));
Index: plugins/antispam/_define.php
===================================================================
--- plugins/antispam/_define.php	(revision 0)
+++ plugins/antispam/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Alain Vagner",
 	/* Version */			'1.3.1',
-	/* Permissions */		'usage,contentadmin',
-	/* Priority */			10
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'priority' =>		10
+	)
 );
 ?>
Index: plugins/antispam/_install.php
===================================================================
--- plugins/antispam/_install.php	(revision 0)
+++ plugins/antispam/_install.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/_prepend.php
===================================================================
--- plugins/antispam/_prepend.php	(revision 0)
+++ plugins/antispam/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/_public.php
===================================================================
--- plugins/antispam/_public.php	(revision 0)
+++ plugins/antispam/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/filters/class.dc.filter.ip.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.ip.php	(revision 223)
+++ plugins/antispam/filters/class.dc.filter.ip.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -167,6 +167,6 @@
 
 				$res .=
-				'<p style="'.$p_style.'"><label class="classic">'.
-				form::checkbox(array('delip[]'),$rs->rule_id,false,'','',$disabled_ip, 'title="'.html::escapeHTML($pattern).'"').' '.
+				'<p style="'.$p_style.'"><label class="classic" for="'.$type.'-ip-'.$rs->rule_id.'">'.
+				form::checkbox(array('delip[]',$type.'-ip-'.$rs->rule_id),$rs->rule_id,false,'','',$disabled_ip).' '.
 				html::escapeHTML($pattern).
 				'</label></p>';
@@ -311,3 +311,2 @@
 }
 ?>
-
Index: plugins/antispam/filters/class.dc.filter.iplookup.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 223)
+++ plugins/antispam/filters/class.dc.filter.iplookup.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -84,7 +84,7 @@
 		'<form action="'.html::escapeURL($url).'" method="post">'.
 		'<fieldset><legend>' . __('IP Lookup servers') . '</legend>'.
-		'<p>'.'<label for="bls">'.__('Add here a coma separated list of servers.').'</label>'.
-		form::textarea('bls',40,3,html::escapeHTML($bls),'maximal').'</p>'.
-		'<p><input type="submit" value="'.__('Save').'" />'.
+		'<p><label for="bls">'.__('Add here a coma separated list of servers.').
+		form::textarea('bls',40,3,html::escapeHTML($bls),'maximal').
+		'<input type="submit" value="'.__('Save').'" /></label></p>'.
 		$this->core->formNonce().'</p>'.
 		'</fieldset>'.
@@ -119,3 +119,2 @@
 }
 ?>
-
Index: plugins/antispam/filters/class.dc.filter.linkslookup.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.linkslookup.php	(revision 0)
+++ plugins/antispam/filters/class.dc.filter.linkslookup.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/filters/class.dc.filter.words.php
===================================================================
--- plugins/antispam/filters/class.dc.filter.words.php	(revision 223)
+++ plugins/antispam/filters/class.dc.filter.words.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -156,6 +156,6 @@
 
 				$res .=
-				'<p style="'.$p_style.'"><label class="classic">'.
-				form::checkbox(array('swd[]'),$rs->rule_id,false,'','',$disabled_word, 'title="'.html::escapeHTML($rs->rule_content).'"').' '.
+				'<p style="'.$p_style.'"><label class="classic" for="word-'.$rs->rule_id.'">'.
+				form::checkbox(array('swd[]', 'word-'.$rs->rule_id),$rs->rule_id,false,'','',$disabled_word).' '.
 				html::escapeHTML($rs->rule_content).
 				'</label></p>';
@@ -356,3 +356,2 @@
 }
 ?>
-
Index: plugins/antispam/inc/class.dc.spamfilter.php
===================================================================
--- plugins/antispam/inc/class.dc.spamfilter.php	(revision 0)
+++ plugins/antispam/inc/class.dc.spamfilter.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/inc/class.dc.spamfilters.php
===================================================================
--- plugins/antispam/inc/class.dc.spamfilters.php	(revision 0)
+++ plugins/antispam/inc/class.dc.spamfilters.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/inc/lib.dc.antispam.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.php	(revision 203)
+++ plugins/antispam/inc/lib.dc.antispam.php	(revision 472)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -75,5 +75,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			$icons['comments'][0] .= '</a> <br /><a href="comments.php?status=-2">'.sprintf($str,$count);
+			$icons['comments'][0] .= '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
 		}
 	}
@@ -83,5 +83,5 @@
 		if (($count = self::countSpam($core)) > 0) {
 			$str = ($count > 1) ? __('(including %d spam comments)') : __('(including %d spam comment)');
-			return '</a> <br /><a href="comments.php?status=-2">'.sprintf($str,$count);
+			return '</a> <br /><a href="comments.php?status=-2"><span>'.sprintf($str,$count).'</span>';
 		} else {
 			return '';
Index: plugins/antispam/inc/lib.dc.antispam.url.php
===================================================================
--- plugins/antispam/inc/lib.dc.antispam.url.php	(revision 0)
+++ plugins/antispam/inc/lib.dc.antispam.url.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/antispam/index.php
===================================================================
--- plugins/antispam/index.php	(revision 457)
+++ plugins/antispam/index.php	(revision 505)
@@ -4,5 +4,5 @@
 # This file is part of Antispam, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -110,10 +110,9 @@
 <body>
 <?php
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.$page_name.'</h2>';
 
 if ($filter_gui !== false)
 {
-	echo '<p><a href="'.$p_url.'">'.__('Return to filters').'</a></p>';
-	printf('<h3>'.__('%s configuration').'</h3>',$filter->name);
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <a href="'.$p_url.'">'.$page_name.'</a>'.
+		' &rsaquo; <span class="page-title">'.sprintf(__('%s configuration'),$filter->name).'</span></h2>';
 
 	echo $filter_gui;
@@ -121,4 +120,6 @@
 else
 {
+	echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.$page_name.'</span></h2>';
+
 	# Information
 	$spam_count = dcAntispam::countSpam($core);
@@ -166,11 +167,10 @@
 	echo
 	'<table class="dragable">'.
-	'<caption>'.__('Antispan filters list').'</caption>'.
 	'<thead><tr>'.
-	'<th scope="col">'.__('Order').'</th>'.
-	'<th scope="col">'.__('Active').'</th>'.
-	'<th scope="col">'.__('Auto Del.').'</th>'.
-	'<th scope="col" class="nowrap">'.__('Filter name').'</th>'.
-	'<th scope="col" colspan="2">'.__('Description').'</th>'.
+	'<th>'.__('Order').'</th>'.
+	'<th>'.__('Active').'</th>'.
+	'<th>'.__('Auto Del.').'</th>'.
+	'<th class="nowrap">'.__('Filter name').'</th>'.
+	'<th colspan="2">'.__('Description').'</th>'.
 	'</tr></thead>'.
 	'<tbody id="filters-list" >';
@@ -192,5 +192,5 @@
 		'<td class="nowrap">'.form::checkbox(array('filters_active[]'),$fid,$f->active, '', '', false, 'title="'.__('Active').'"').'</td>'.
 		'<td class="nowrap">'.form::checkbox(array('filters_auto_del[]'),$fid,$f->auto_delete, '', '', false, 'title="'.__('Auto Del.').'"').'</td>'.
-		'<th scope="row" class="nowrap">'.$f->name.'</th>'.
+		'<td class="nowrap">'.$f->name.'</td>'.
 		'<td class="maximal">'.$f->description.'</td>'.
 		'<td class="status">'.$gui_link.'</td>'.
Index: plugins/attachments/_admin.php
===================================================================
--- plugins/attachments/_admin.php	(revision 416)
+++ plugins/attachments/_admin.php	(revision 416)
@@ -0,0 +1,75 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+if (!defined('DC_CONTEXT_ADMIN')) { return; }
+
+$core->addBehavior ('adminPostFormSidebar',array('attachmentAdmin','adminPostFormSidebar'));
+$core->addBehavior ('adminPostAfterForm',array('attachmentAdmin','adminPostAfterForm'));
+
+class attachmentAdmin
+{
+	public static function adminPostFormSidebar($post) 
+	{
+		if ($post !== null)
+		{
+			$core =& $GLOBALS['core'];
+			$post_media = $core->media->getPostMedia($post->post_id);
+			echo
+			'<h3 class="clear">'.__('Attachments').'</h3>';
+			foreach ($post_media as $f)
+			{
+				$ftitle = $f->media_title;
+				if (strlen($ftitle) > 18) {
+					$ftitle = substr($ftitle,0,16).'...';
+				}
+				echo
+				'<div class="media-item">'.
+				'<a class="media-icon" href="media_item.php?id='.$f->media_id.'">'.
+				'<img src="'.$f->media_icon.'" alt="" title="'.$f->basename.'" /></a>'.
+				'<ul>'.
+				'<li><a class="media-link" href="media_item.php?id='.$f->media_id.'"'.
+				'title="'.$f->basename.'">'.$ftitle.'</a></li>'.
+				'<li>'.$f->media_dtstr.'</li>'.
+				'<li>'.files::size($f->size).' - '.
+				'<a href="'.$f->file_url.'">'.__('open').'</a>'.'</li>'.
+				
+				'<li class="media-action"><a class="attachment-remove" id="attachment-'.$f->media_id.'" '.
+				'href="post_media.php?post_id='.$post->post_id.'&amp;media_id='.$f->media_id.'&amp;remove=1">'.
+				'<img src="images/check-off.png" alt="'.__('remove').'" /></a>'.
+				'</li>'.
+				
+				'</ul>'.
+				'</div>';
+			}
+			unset($f);
+			
+			if (empty($post_media)) {
+				echo '<p>'.__('No attachment.').'</p>';
+			} else {
+			}
+			echo '<p><a class="button" href="media.php?post_id='.$post->post_id.'">'.__('Add files to this entry').'</a></p>';
+		}
+	}
+	
+	public static function adminPostAfterForm($post) {
+		if ($post !== null)
+		{
+			$core =& $GLOBALS['core'];
+			echo
+				'<form action="post_media.php" id="attachment-remove-hide" method="post">'.
+				'<div>'.form::hidden(array('post_id'),$post->post_id).
+				form::hidden(array('media_id'),'').
+				form::hidden(array('remove'),1).
+				$core->formNonce().'</div></form>';
+		}
+	}
+}
+?>
Index: plugins/attachments/_define.php
===================================================================
--- plugins/attachments/_define.php	(revision 464)
+++ plugins/attachments/_define.php	(revision 464)
@@ -0,0 +1,24 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+if (!defined('DC_RC_PATH')) { return; }
+
+$this->registerModule(
+	/* Name */		"attachments",
+	/* Description*/	"Manage post attachments",
+	/* Author */		"Dotclear Team",
+	/* Version */		'1.0',
+	array(
+		'permissions' =>	'contentadmin,pages',
+		'priority' =>		999
+	)
+);
+?>
Index: plugins/attachments/_public.php
===================================================================
--- plugins/attachments/_public.php	(revision 464)
+++ plugins/attachments/_public.php	(revision 464)
@@ -0,0 +1,248 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
+# Licensed under the GPL version 2.0 license.
+# See LICENSE file or
+# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+#
+# -- END LICENSE BLOCK -----------------------------------------
+if (!defined('DC_RC_PATH')) { return; }
+
+# Attachments
+$core->tpl->addBlock('Attachments',array('attachmentTpl','Attachments'));
+$core->tpl->addBlock('AttachmentsHeader',array('attachmentTpl','AttachmentsHeader'));
+$core->tpl->addBlock('AttachmentsFooter',array('attachmentTpl','AttachmentsFooter'));
+$core->tpl->addValue('AttachmentMimeType',array('attachmentTpl','AttachmentMimeType'));
+$core->tpl->addValue('AttachmentType',array('attachmentTpl','AttachmentType'));
+$core->tpl->addValue('AttachmentFileName',array('attachmentTpl','AttachmentFileName'));
+$core->tpl->addValue('AttachmentSize',array('attachmentTpl','AttachmentSize'));
+$core->tpl->addValue('AttachmentTitle',array('attachmentTpl','AttachmentTitle'));
+$core->tpl->addValue('AttachmentThumbnailURL',array('attachmentTpl','AttachmentThumbnailURL'));
+$core->tpl->addValue('AttachmentURL',array('attachmentTpl','AttachmentURL'));
+$core->tpl->addValue('MediaURL',array('attachmentTpl','MediaURL'));
+$core->tpl->addBlock('AttachmentIf',array('attachmentTpl','AttachmentIf'));
+
+$core->tpl->addValue('EntryAttachmentCount',array('attachmentTpl','EntryAttachmentCount'));
+
+$core->addBehavior('tplIfConditions',array('attachmentBehavior','tplIfConditions'));
+
+class attachmentTpl {
+	
+	/*dtd
+	<!ELEMENT tpl:Attachments - - -- Post Attachments loop -->
+	*/
+	public static function Attachments($attr,$content)
+	{
+		$res =
+		"<?php\n".
+		'if ($_ctx->posts !== null && $core->media) {'."\n".
+			'$_ctx->attachments = new ArrayObject($core->media->getPostMedia($_ctx->posts->post_id));'."\n".
+		"?>\n".
+		
+		'<?php foreach ($_ctx->attachments as $attach_i => $attach_f) : '.
+		'$GLOBALS[\'attach_i\'] = $attach_i; $GLOBALS[\'attach_f\'] = $attach_f;'.
+		'$_ctx->file_url = $attach_f->file_url; ?>'.
+		$content.
+		'<?php endforeach; $_ctx->attachments = null; unset($attach_i,$attach_f,$_ctx->file_url); ?>'.
+		
+		"<?php } ?>\n";
+		
+		return $res;
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentsHeader - - -- First attachments result container -->
+	*/
+	public static function AttachmentsHeader($attr,$content)
+	{
+		return
+		"<?php if (\$attach_i == 0) : ?>".
+		$content.
+		"<?php endif; ?>";
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentsFooter - - -- Last attachments result container -->
+	*/
+	public static function AttachmentsFooter($attr,$content)
+	{
+		return
+		"<?php if (\$attach_i+1 == count(\$_ctx->attachments)) : ?>".
+		$content.
+		"<?php endif; ?>";
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentsIf - - -- Test on attachment fields -->
+	<!ATTLIST tpl:AttachmentIf
+	is_image	(0|1)	#IMPLIED	-- test if attachment is an image (value : 1) or not (value : 0)
+	has_thumb	(0|1)	#IMPLIED	-- test if attachment has a square thumnail (value : 1) or not (value : 0)
+	is_mp3	(0|1)	#IMPLIED	-- test if attachment is a mp3 file (value : 1) or not (value : 0)
+	is_flv	(0|1)	#IMPLIED	-- test if attachment is a flv file (value : 1) or not (value : 0)
+	>
+	*/
+	public static function AttachmentIf($attr,$content)
+	{
+		$if = array();
+		
+		$operator = isset($attr['operator']) ? $this->getOperator($attr['operator']) : '&&';
+		
+		if (isset($attr['is_image'])) {
+			$sign = (boolean) $attr['is_image'] ? '' : '!';
+			$if[] = $sign.'$attach_f->media_image';
+		}
+		
+		if (isset($attr['has_thumb'])) {
+			$sign = (boolean) $attr['has_thumb'] ? '' : '!';
+			$if[] = $sign.'isset($attach_f->media_thumb[\'sq\'])';
+		}
+		
+		if (isset($attr['is_mp3'])) {
+			$sign = (boolean) $attr['is_mp3'] ? '==' : '!=';
+			$if[] = '$attach_f->type '.$sign.' "audio/mpeg3"';
+		}
+		
+		if (isset($attr['is_flv'])) {
+			$sign = (boolean) $attr['is_flv'] ? '' : '!';
+			$if[] = $sign.
+				'($attach_f->type == "video/x-flv" || '.
+				'$attach_f->type == "video/mp4" || '.
+				'$attach_f->type == "video/x-m4v")';
+		}
+		
+		if (count($if) != 0) {
+			return '<?php if('.implode(' '.$operator.' ', (array) $if).') : ?>'.$content.'<?php endif; ?>';
+		} else {
+			return $content;
+		}
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentMimeType - O -- Attachment MIME Type -->
+	*/
+	public static function AttachmentMimeType($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$attach_f->type').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentType - O -- Attachment type -->
+	*/
+	public static function AttachmentType($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$attach_f->media_type').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentFileName - O -- Attachment file name -->
+	*/
+	public static function AttachmentFileName($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$attach_f->basename').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentSize - O -- Attachment size -->
+	<!ATTLIST tpl:AttachmentSize
+	full	CDATA	#IMPLIED	-- if set, size is rounded to a human-readable value (in KB, MB, GB, TB)
+	>
+	*/
+	public static function AttachmentSize($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		if (!empty($attr['full'])) {
+			return '<?php echo '.sprintf($f,'$attach_f->size').'; ?>';
+		}
+		return '<?php echo '.sprintf($f,'files::size($attach_f->size)').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentTitle - O -- Attachment title -->
+	*/
+	public static function AttachmentTitle($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$attach_f->media_title').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentThumbnailURL - O -- Attachment square thumbnail URL -->
+	*/
+	public static function AttachmentThumbnailURL($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return
+		'<?php '.
+		'if (isset($attach_f->media_thumb[\'sq\'])) {'.
+			'echo '.sprintf($f,'$attach_f->media_thumb[\'sq\']').';'.
+		'}'.
+		'?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:AttachmentURL - O -- Attachment URL -->
+	*/
+	public static function AttachmentURL($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$attach_f->file_url').'; ?>';
+	}
+	
+	public static function MediaURL($attr)
+	{
+		$f = $GLOBALS['core']->tpl->getFilters($attr);
+		return '<?php echo '.sprintf($f,'$_ctx->file_url').'; ?>';
+	}
+	
+	/*dtd
+	<!ELEMENT tpl:EntryAttachmentCount - O -- Number of attachments for entry -->
+	<!ATTLIST tpl:EntryAttachmentCount
+	none	CDATA	#IMPLIED	-- text to display for "no attachment" (default: no attachment)
+	one	CDATA	#IMPLIED	-- text to display for "one attachment" (default: one attachment)
+	more	CDATA	#IMPLIED	-- text to display for "more attachment" (default: %s attachment, %s is replaced by the number of attachments)
+	>
+	*/
+	public static function EntryAttachmentCount($attr)
+	{
+		$none = 'no attachment';
+		$one = 'one attachment';
+		$more = '%d attachments';
+		
+		if (isset($attr['none'])) {
+			$none = addslashes($attr['none']);
+		}
+		if (isset($attr['one'])) {
+			$one = addslashes($attr['one']);
+		}
+		if (isset($attr['more'])) {
+			$more = addslashes($attr['more']);
+		}
+		
+		return
+		"<?php if (\$_ctx->posts->countMedia() == 0) {\n".
+		"  printf(__('".$none."'),(integer) \$_ctx->posts->countMedia());\n".
+		"} elseif (\$_ctx->posts->countMedia() == 1) {\n".
+		"  printf(__('".$one."'),(integer) \$_ctx->posts->countMedia());\n".
+		"} else {\n".
+		"  printf(__('".$more."'),(integer) \$_ctx->posts->countMedia());\n".
+		"} ?>";
+	}
+}
+
+class attachmentBehavior
+{
+	public static function tplIfConditions($tag,$attr,$content,$if)
+	{
+		if ($tag == "EntryIf" && isset($attr['has_attachment'])) {
+			$sign = (boolean) $attr['has_attachment'] ? '' : '!';
+			$if[] = $sign.'$_ctx->posts->countMedia()';
+		}
+	}
+}
+?>
Index: plugins/blogroll/_admin.php
===================================================================
--- plugins/blogroll/_admin.php	(revision 3)
+++ plugins/blogroll/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -20,5 +20,5 @@
 function blogroll_dashboard_favs($core,$favs)
 {
-	$favs['blogroll'] = new ArrayObject(array('blogroll',__('Blogroll'),'plugin.php?p=blogroll',
+	$favs['blogroll'] = new ArrayObject(array('blogroll','Blogroll','plugin.php?p=blogroll',
 		'index.php?pf=blogroll/icon-small.png','index.php?pf=blogroll/icon.png',
 		'usage,contentadmin',null,null));
Index: plugins/blogroll/_define.php
===================================================================
--- plugins/blogroll/_define.php	(revision 0)
+++ plugins/blogroll/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,5 +17,7 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.2',
-	/* Permissions */		'blogroll'
+	array(
+		'permissions' =>	'blogroll'
+	)
 );
 ?>
Index: plugins/blogroll/_install.php
===================================================================
--- plugins/blogroll/_install.php	(revision 0)
+++ plugins/blogroll/_install.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/_prepend.php
===================================================================
--- plugins/blogroll/_prepend.php	(revision 0)
+++ plugins/blogroll/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/_public.php
===================================================================
--- plugins/blogroll/_public.php	(revision 0)
+++ plugins/blogroll/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/_widgets.php
===================================================================
--- plugins/blogroll/_widgets.php	(revision 0)
+++ plugins/blogroll/_widgets.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/class.dc.blogroll.php
===================================================================
--- plugins/blogroll/class.dc.blogroll.php	(revision 0)
+++ plugins/blogroll/class.dc.blogroll.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/class.dc.importblogroll.php
===================================================================
--- plugins/blogroll/class.dc.importblogroll.php	(revision 0)
+++ plugins/blogroll/class.dc.importblogroll.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/edit.php
===================================================================
--- plugins/blogroll/edit.php	(revision 217)
+++ plugins/blogroll/edit.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blogroll/index.php
===================================================================
--- plugins/blogroll/index.php	(revision 457)
+++ plugins/blogroll/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -215,5 +215,5 @@
 
 <body>
-<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; Blogroll</h2>
+<h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo; <span class="page-title">Blogroll</span></h2>
 
 <?php
@@ -242,11 +242,10 @@
 <form action="plugin.php" method="post" id="links-form">
 <table class="maximal dragable">
-<caption><?php echo __('Links list'); ?></caption>
 <thead>
 <tr>
-  <th scope="col" colspan="3"><?php echo __('Title'); ?></th>
-  <th scope="col"><?php echo __('Description'); ?></th>
-  <th scope="col"><?php echo __('URL'); ?></th>
-  <th scope="col"><?php echo __('Lang'); ?></th>
+  <th colspan="3"><?php echo __('Title'); ?></th>
+  <th><?php echo __('Description'); ?></th>
+  <th><?php echo __('URL'); ?></th>
+  <th><?php echo __('Lang'); ?></th>
 </tr>
 </thead>
@@ -266,12 +265,12 @@
 	{
 		echo
-		'<th scope="row" colspan="5"><strong><a href="'.$p_url.'&amp;edit=1&amp;id='.$rs->link_id.'">'.
-		html::escapeHTML($rs->link_desc).'</a></strong></th>';
+		'<td colspan="5"><strong><a href="'.$p_url.'&amp;edit=1&amp;id='.$rs->link_id.'">'.
+		html::escapeHTML($rs->link_desc).'</a></strong></td>';
 	}
 	else
 	{
 		echo
-		'<th scope="row"><a href="'.$p_url.'&amp;edit=1&amp;id='.$rs->link_id.'">'.
-		html::escapeHTML($rs->link_title).'</a></th>'.
+		'<td><a href="'.$p_url.'&amp;edit=1&amp;id='.$rs->link_id.'">'.
+		html::escapeHTML($rs->link_title).'</a></td>'.
 		'<td>'.html::escapeHTML($rs->link_desc).'</td>'.
 		'<td>'.html::escapeHTML($rs->link_href).'</td>'.
@@ -312,21 +311,21 @@
 '<fieldset class="two-cols"><legend>'.__('Add a new link').'</legend>'.
 '<p class="col"><label for="link_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
-form::field('link_title',30,255,$link_title,'',2).
+form::field('link_title',30,255,$link_title).
 '</label></p>'.
 
 '<p class="col"><label for="link_href" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('URL:').' '.
-form::field('link_href',30,255,$link_href,'',3).
+form::field('link_href',30,255,$link_href).
 '</label></p>'.
 
 '<p class="col"><label for="link_desc">'.__('Description:').' '.
-form::field('link_desc',30,255,$link_desc,'',4).
+form::field('link_desc',30,255,$link_desc).
 '</label></p>'.
 
 '<p class="col"><label for="link_lang">'.__('Language:').' '.
-form::field('link_lang',5,5,$link_lang,'',5).
+form::field('link_lang',5,5,$link_lang).
 '</label></p>'.
 '<p>'.form::hidden(array('p'),'blogroll').
 $core->formNonce().
-'<input type="submit" name="add_link" value="'.__('Save').'" tabindex="6" /></p>'.
+'<input type="submit" name="add_link" value="'.__('Save').'" /></p>'.
 '</fieldset>'.
 '</form>'.
@@ -338,8 +337,8 @@
 '<fieldset><legend>'.__('Add a new category').'</legend>'.
 '<p><label for="cat_title" class=" classic required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').' '.
-form::field('cat_title',30,255,$cat_title,'',7).'</label> '.
+form::field('cat_title',30,255,$cat_title).'</label> '.
 form::hidden(array('p'),'blogroll').
 $core->formNonce().
-'<input type="submit" name="add_cat" value="'.__('Save').'" tabindex="8" /></p>'.
+'<input type="submit" name="add_cat" value="'.__('Save').'" /></p>'.
 '</fieldset>'.
 '</form>'.
@@ -356,5 +355,5 @@
 	'<p>'.form::hidden(array('p'),'blogroll').
 	$core->formNonce().
-	'<input type="submit" name="import_links" value="'.__('import').'" tabindex="10" /></p>'.
+	'<input type="submit" name="import_links" value="'.__('import').'" /></p>'.
 	'</fieldset>'.
 	'</form>';
@@ -399,6 +398,6 @@
 		form::hidden(array('p'),'blogroll').
 		$core->formNonce().
-		'<input type="submit" name="cancel_import" value="'.__('cancel').'" tabindex="10" />&nbsp;'.
-		'<input type="submit" name="import_links_do" value="'.__('import').'" tabindex="11" /></p>'.
+		'<input type="submit" name="cancel_import" value="'.__('cancel').'" />&nbsp;'.
+		'<input type="submit" name="import_links_do" value="'.__('import').'" /></p>'.
 		'</div>';
 	}
Index: plugins/blowupConfig/_admin.php
===================================================================
--- plugins/blowupConfig/_admin.php	(revision 0)
+++ plugins/blowupConfig/_admin.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blowupConfig/_define.php
===================================================================
--- plugins/blowupConfig/_define.php	(revision 0)
+++ plugins/blowupConfig/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,5 +17,7 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.1',
-	/* Permissions */		'admin'
+	array(
+		'permissions' =>	'admin'
+	)
 );
 ?>
Index: plugins/blowupConfig/_install.php
===================================================================
--- plugins/blowupConfig/_install.php	(revision 175)
+++ plugins/blowupConfig/_install.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of blowupConfig, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blowupConfig/_public.php
===================================================================
--- plugins/blowupConfig/_public.php	(revision 0)
+++ plugins/blowupConfig/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 217)
+++ plugins/blowupConfig/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -218,5 +218,5 @@
 echo
 '<h2>'.html::escapeHTML($core->blog->name).
-' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; '.__('Blowup configuration').'</h2>'.
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Blowup configuration').'</span></h2>'.
 '<p><a class="back" href="blog_theme.php">'.__('back').'</a></p>';
 
Index: plugins/blowupConfig/lib/class.blowup.config.php
===================================================================
--- plugins/blowupConfig/lib/class.blowup.config.php	(revision 0)
+++ plugins/blowupConfig/lib/class.blowup.config.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/fairTrackbacks/_define.php
===================================================================
--- plugins/fairTrackbacks/_define.php	(revision 0)
+++ plugins/fairTrackbacks/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.1',
-	/* Permissions */		'usage,contentadmin',
-	/* Priority */			200
+	array(
+		'permissions' =>	'usage,contentadmin',
+		'priority' =>		200
+	)
 );
 ?>
Index: plugins/fairTrackbacks/_prepend.php
===================================================================
--- plugins/fairTrackbacks/_prepend.php	(revision 0)
+++ plugins/fairTrackbacks/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/fairTrackbacks/_public.php
===================================================================
--- plugins/fairTrackbacks/_public.php	(revision 0)
+++ plugins/fairTrackbacks/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/fairTrackbacks/class.dc.filter.fairtrackbacks.php
===================================================================
--- plugins/fairTrackbacks/class.dc.filter.fairtrackbacks.php	(revision 0)
+++ plugins/fairTrackbacks/class.dc.filter.fairtrackbacks.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/_admin.php
===================================================================
--- plugins/importExport/_admin.php	(revision 3)
+++ plugins/importExport/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -25,5 +25,5 @@
 function importExportDashboardFavs($core,$favs)
 {
-	$favs['importExport'] = new ArrayObject(array('importExport',__('Import/Export'),'plugin.php?p=importExport',
+	$favs['importExport'] = new ArrayObject(array('importExport','Import/Export','plugin.php?p=importExport',
 		'index.php?pf=importExport/icon.png','index.php?pf=importExport/icon-big.png',
 		'admin',null,null));
Index: plugins/importExport/_define.php
===================================================================
--- plugins/importExport/_define.php	(revision 0)
+++ plugins/importExport/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'2.4',
-	/* Permissions */		'admin',
-	/* Priority */			10
+	array(
+		'permissions' => 'admin',
+		'priority' => 10
+	)
 );
 ?>
Index: plugins/importExport/inc/class.dc.export.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.export.flat.php	(revision 125)
+++ plugins/importExport/inc/class.dc.export.flat.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -106,4 +106,5 @@
 				$exp->exportTable('setting');
 				$exp->exportTable('user');
+				$exp->exportTable('pref');
 				$exp->exportTable('permissions');
 				$exp->exportTable('post');
Index: plugins/importExport/inc/class.dc.ieModule.php
===================================================================
--- plugins/importExport/inc/class.dc.ieModule.php	(revision 0)
+++ plugins/importExport/inc/class.dc.ieModule.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/class.dc.import.dc1.php
===================================================================
--- plugins/importExport/inc/class.dc.import.dc1.php	(revision 82)
+++ plugins/importExport/inc/class.dc.import.dc1.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/class.dc.import.feed.php
===================================================================
--- plugins/importExport/inc/class.dc.import.feed.php	(revision 82)
+++ plugins/importExport/inc/class.dc.import.feed.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/class.dc.import.flat.php
===================================================================
--- plugins/importExport/inc/class.dc.import.flat.php	(revision 82)
+++ plugins/importExport/inc/class.dc.import.flat.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/class.dc.import.wp.php
===================================================================
--- plugins/importExport/inc/class.dc.import.wp.php	(revision 82)
+++ plugins/importExport/inc/class.dc.import.wp.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/flat/class.backupFile.php
===================================================================
--- plugins/importExport/inc/flat/class.backupFile.php	(revision 0)
+++ plugins/importExport/inc/flat/class.backupFile.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/flat/class.db.export.php
===================================================================
--- plugins/importExport/inc/flat/class.db.export.php	(revision 0)
+++ plugins/importExport/inc/flat/class.db.export.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/importExport/inc/flat/class.dc.import.php
===================================================================
--- plugins/importExport/inc/flat/class.dc.import.php	(revision 0)
+++ plugins/importExport/inc/flat/class.dc.import.php	(revision 298)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -84,4 +84,5 @@
 		$this->cur_setting     = $this->con->openCursor($this->prefix.'setting');
 		$this->cur_user        = $this->con->openCursor($this->prefix.'user');
+		$this->cur_pref        = $this->con->openCursor($this->prefix.'pref');
 		$this->cur_permissions = $this->con->openCursor($this->prefix.'permissions');
 		$this->cur_post        = $this->con->openCursor($this->prefix.'post');
@@ -253,4 +254,7 @@
 						$this->insertUser($line);
 						break;
+					case 'pref':
+						$this->insertPref($line);
+						break;
 					case 'permissions':
 						$this->insertPermissions($line);
@@ -363,4 +367,22 @@
 		
 		$this->cur_setting->insert();
+	}
+	
+	private function insertPref($pref)
+	{
+		if ($this->prefExists($pref->pref_ws,$pref->pref_id,$pref->user_id)) {
+			return;
+		}
+		
+		$this->cur_pref->clean();
+		
+		$this->cur_pref->pref_id    = (string) $pref->pref_id;
+		$this->cur_pref->user_id    = !$pref->user_id ? null : (string) $pref->user_id;
+		$this->cur_pref->pref_ws    = (string) $pref->pref_ws;
+		$this->cur_pref->pref_value = (string) $pref->pref_value;
+		$this->cur_pref->pref_type  = (string) $pref->pref_type;
+		$this->cur_pref->pref_label = (string) $pref->pref_label;
+		
+		$this->cur_pref->insert();
 	}
 	
@@ -733,4 +755,21 @@
 		$this->stack['users'][$user_id] = !$rs->isEmpty();
 		return $this->stack['users'][$user_id];
+	}
+	
+	private function prefExists($pref_ws,$pref_id,$user_id)
+	{
+		$strReq = 'SELECT pref_id,pref_ws,user_id '.
+				'FROM '.$this->prefix.'pref '.
+				"WHERE pref_id = '".$this->con->escape($pref_id)."' ".
+				"AND pref_ws = '".$this->con->escape($pref_ws)."' ";
+		if (!$user_id) {
+			$strReq .= "AND user_id IS NULL ";
+		} else {
+			$strReq .= "AND user_id = '".$this->con->escape($user_id)."' ";
+		}
+		
+		$rs = $this->con->select($strReq);
+		
+		return !$rs->isEmpty();
 	}
 	
Index: plugins/importExport/index.php
===================================================================
--- plugins/importExport/index.php	(revision 0)
+++ plugins/importExport/index.php	(revision 501)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -97,5 +97,5 @@
 {
 	echo '<h2><a href="'.$p_url.'">'.__('Import/Export').'</a>'.
-	' &rsaquo; '.html::escapeHTML($current_module->name).'</h2>';
+	' &rsaquo; <span class="page-title">'.html::escapeHTML($current_module->name).'</span></h2>';
 	
 	echo '<div id="ie-gui">';
@@ -105,5 +105,5 @@
 else
 {
-	echo '<h2>'.__('Import/Export').'</h2>';
+	echo '<h2 class="page-title">'.__('Import/Export').'</h2>';
 	echo '<h3>'.__('Import').'</h3>';
 	
Index: plugins/maintenance/_admin.php
===================================================================
--- plugins/maintenance/_admin.php	(revision 3)
+++ plugins/maintenance/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -20,5 +20,5 @@
 function maintenanceDashboardFavs($core,$favs)
 {
-	$favs['maintenance'] = new ArrayObject(array('maintenance',__('Maintenance'),'plugin.php?p=maintenance',
+	$favs['maintenance'] = new ArrayObject(array('maintenance','Maintenance','plugin.php?p=maintenance',
 		'index.php?pf=maintenance/icon.png','index.php?pf=maintenance/icon-big.png',
 		null,null,null));
Index: plugins/maintenance/_define.php
===================================================================
--- plugins/maintenance/_define.php	(revision 0)
+++ plugins/maintenance/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,6 +16,5 @@
 	/* Description*/		"Maintain your database",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'1.1',
-	/* Permissions */		null
+	/* Version */			'1.1'
 );
 ?>
Index: plugins/maintenance/index.php
===================================================================
--- plugins/maintenance/index.php	(revision 186)
+++ plugins/maintenance/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -69,5 +69,5 @@
 
 <body>
-<h2><?php echo __('Maintenance'); ?></h2>
+<h2 class="page-title"><?php echo __('Maintenance'); ?></h2>
 
 <?php
Index: plugins/pages/_admin.php
===================================================================
--- plugins/pages/_admin.php	(revision 130)
+++ plugins/pages/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -21,8 +21,8 @@
 function pages_dashboard_favs($core,$favs)
 {
-	$favs['pages'] = new ArrayObject(array('pages',__('Pages'),'plugin.php?p=pages',
+	$favs['pages'] = new ArrayObject(array('pages','Pages','plugin.php?p=pages',
 		'index.php?pf=pages/icon.png','index.php?pf=pages/icon-big.png',
 		'contentadmin,pages',null,null));
-	$favs['newpage'] = new ArrayObject(array('newpage',__('New page'),'plugin.php?p=pages&amp;act=page',
+	$favs['newpage'] = new ArrayObject(array('newpage','New page','plugin.php?p=pages&amp;act=page',
 		'index.php?pf=pages/icon-np.png','index.php?pf=pages/icon-np-big.png',
 		'contentadmin,pages',null,null));
Index: plugins/pages/_define.php
===================================================================
--- plugins/pages/_define.php	(revision 0)
+++ plugins/pages/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */		"Olivier Meunier",
 	/* Version */		'1.1.1',
-	/* Permissions */	'contentadmin,pages',
-	999
+	array(
+		'permissions' =>	'contentadmin,pages',
+		'priority' =>	999
+	)
 );
 ?>
Index: plugins/pages/_prepend.php
===================================================================
--- plugins/pages/_prepend.php	(revision 0)
+++ plugins/pages/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/pages/_public.php
===================================================================
--- plugins/pages/_public.php	(revision 82)
+++ plugins/pages/_public.php	(revision 306)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -33,7 +33,9 @@
 			$core->blog->withoutPassword(false);
 			
-			$params = new ArrayObject();
-			$params['post_type'] = 'page';
-			$params['post_url'] = $args;
+			$params = new ArrayObject(array(
+				'post_type' => 'page',
+				'post_url' => $args));
+			
+			$core->callBehavior('publicPagesBeforeGetPosts',$params,$args);
 			
 			$_ctx->posts = $core->blog->getPosts($params);
Index: plugins/pages/_widgets.php
===================================================================
--- plugins/pages/_widgets.php	(revision 0)
+++ plugins/pages/_widgets.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/pages/index.php
===================================================================
--- plugins/pages/index.php	(revision 0)
+++ plugins/pages/index.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/pages/list.php
===================================================================
--- plugins/pages/list.php	(revision 457)
+++ plugins/pages/list.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -15,19 +15,102 @@
 /* Pager class
 -------------------------------------------------------- */
-class adminPageList extends adminPostList
-{
-	public function setColumns()
+class adminPageList extends adminGenericList
+{
+	public function display($page,$nb_per_page,$enclose_block='')
 	{
-		$this->addColumn('title',__('Title'),array('adminPostList','getTitle'),' class="maximal"',false);
-		$this->addColumn('date',__('Date'),array('adminPostList','getDate'));
-		$this->addColumn('author',__('Author'),array('adminPostList','getAuthor'));
-		$this->addColumn('comment',__('Comments'),array('adminPostList','getComments'));
-		$this->addColumn('trackback',__('Trackbacks'),array('adminPostList','getTrackbacks'));
-		$this->addColumn('status',__('Status'),array('adminPostList','getStatus'));
+		if ($this->rs->isEmpty())
+		{
+			echo '<p><strong>'.__('No page').'</strong></p>';
+		}
+		else
+		{
+			$pager = new pager($page,$this->rs_count,$nb_per_page,10);
+			$pager->html_prev = $this->html_prev;
+			$pager->html_next = $this->html_next;
+			$pager->var_page = 'page';
+			
+			$html_block =
+			'<table class="clear"><tr>'.
+			'<th colspan="2">'.__('Title').'</th>'.
+			'<th>'.__('Date').'</th>'.
+			'<th>'.__('Author').'</th>'.
+			'<th>'.__('Comments').'</th>'.
+			'<th>'.__('Trackbacks').'</th>'.
+			'<th>'.__('Status').'</th>'.
+			'</tr>%s</table>';
+			
+			if ($enclose_block) {
+				$html_block = sprintf($enclose_block,$html_block);
+			}
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+			
+			$blocks = explode('%s',$html_block);
+			
+			echo $blocks[0];
+			
+			while ($this->rs->fetch())
+			{
+				echo $this->postLine();
+			}
+			
+			echo $blocks[1];
+			
+			echo '<p>'.__('Page(s)').' : '.$pager->getLinks().'</p>';
+		}
 	}
 	
-	protected function getDefaultCaption()
+	private function postLine()
 	{
-		return __('Pages list');
+		$img = '<img alt="%1$s" title="%1$s" src="images/%2$s" />';
+		switch ($this->rs->post_status) {
+			case 1:
+				$img_status = sprintf($img,__('published'),'check-on.png');
+				break;
+			case 0:
+				$img_status = sprintf($img,__('unpublished'),'check-off.png');
+				break;
+			case -1:
+				$img_status = sprintf($img,__('scheduled'),'scheduled.png');
+				break;
+			case -2:
+				$img_status = sprintf($img,__('pending'),'check-wrn.png');
+				break;
+		}
+		
+		$protected = '';
+		if ($this->rs->post_password) {
+			$protected = sprintf($img,__('protected'),'locker.png');
+		}
+		
+		$selected = '';
+		if ($this->rs->post_selected) {
+			$selected = sprintf($img,__('selected'),'selected.png');
+		}
+		
+		$attach = '';
+		$nb_media = $this->rs->countMedia();
+		if ($nb_media > 0) {
+			$attach_str = $nb_media == 1 ? __('%d attachment') : __('%d attachments');
+			$attach = sprintf($img,sprintf($attach_str,$nb_media),'attach.png');
+		}
+		
+		$res = '<tr class="line'.($this->rs->post_status != 1 ? ' offline' : '').'"'.
+		' id="p'.$this->rs->post_id.'">';
+		
+		$res .=
+		'<td class="nowrap">'.
+		form::checkbox(array('entries[]'),$this->rs->post_id,'','','',!$this->rs->isEditable(),'title="'.__('select this page').'"').'</td>'.
+		'<td class="maximal"><a href="'.$this->core->getPostAdminURL($this->rs->post_type,$this->rs->post_id).'">'.
+		html::escapeHTML($this->rs->post_title).'</a></td>'.
+		'<td class="nowrap">'.dt::dt2str(__('%Y-%m-%d %H:%M'),$this->rs->post_dt).'</td>'.
+		
+		'<td class="nowrap">'.$this->rs->user_id.'</td>'.
+		'<td class="nowrap">'.$this->rs->nb_comment.'</td>'.
+		'<td class="nowrap">'.$this->rs->nb_trackback.'</td>'.
+		'<td class="nowrap status">'.$img_status.' '.$selected.' '.$protected.' '.$attach.'</td>'.
+		'</tr>';
+		
+		return $res;
 	}
 }
@@ -93,5 +176,5 @@
 <body>
 <?php
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Pages').'</h2>'.
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Pages').'</span></h2>'.
 '<p class="top-add"><a class="button add" href="'.$p_url.'&amp;act=page">'.__('New page').'</a></p>';
 
Index: plugins/pages/locales/en/help/page.html
===================================================================
--- plugins/pages/locales/en/help/page.html	(revision 198)
+++ plugins/pages/locales/en/help/page.html	(revision 232)
@@ -71,10 +71,4 @@
   URL for your page. If the URL you're trying to use is already used by another
   page, a number will be added to it.</dd>
-  
-  <dt>Attachments</dt>
-  <dd>The attachments are all the medias you joined to the page. The link <em>add
-  file to this page</em> allows you to attach other files to the page. Remember
-  to save your changes before clicking on this link. For further information,
-  see the media manager help.</dd>
 </dl>
 
Index: plugins/pages/locales/fr/help/page.html
===================================================================
--- plugins/pages/locales/fr/help/page.html	(revision 198)
+++ plugins/pages/locales/fr/help/page.html	(revision 232)
@@ -13,5 +13,5 @@
   
   <dt>Extrait</dt>
-  <dd>Ce champ est optionel.</dd>
+  <dd>Ce champ est optionnel.</dd>
   
   <dt>Contenu</dt>
@@ -33,5 +33,5 @@
   </dd>
   
-  <dt>Publié le</dt>
+  <dt>Publiée le</dt>
   <dd>Permet de modifier la date et l'heure de publication de la page. Si vous avez
   choisi le statut <em>programmée</em> elle sera mise en ligne aux date et heure
@@ -77,10 +77,4 @@
   après avoir cliqué sur le petit verrou placé à sa droite. Si vous essayez
   d'utiliser une URL déjà existante, celle-ci se verra incrémentée d'un chiffre.</dd>
-  
-  <dt>Pièces jointes</dt>
-  <dd>Les pièces jointes sont tous les médias attachés à la page. Le lien
-  d'ajout d'une pièce jointe permet de choisir un fichier à ajouter à la page.
-  Pensez à sauvegarder votre page avant de choisir une pièce jointe. Consultez
-  l'aide du gestionnaire de média pour plus de détails.</dd>
 </dl>
 
Index: plugins/pages/page.php
===================================================================
--- plugins/pages/page.php	(revision 219)
+++ plugins/pages/page.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -320,5 +320,5 @@
 
 echo '<h2>'.html::escapeHTML($core->blog->name).
-' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; '.$page_title;
+' &rsaquo; <a href="'.$p_url.'">'.__('Pages').'</a> &rsaquo; <span class="page-title">'.$page_title.'</span>';
 
 if ($post_id && $post->post_status == 1) {
@@ -361,38 +361,76 @@
 	echo '<div class="multi-part" title="'.__('Edit page').'" id="edit-entry">';
 	echo '<form action="'.html::escapeURL($redir_url).'" method="post" id="entry-form">';
+
+	echo '<div id="entry-wrapper">';
+	echo '<div id="entry-content"><fieldset class="constrained">';
+	
+	echo
+	'<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
+	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal').
+	'</label></p>'.
+	
+	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
+	form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt)).
+	'</p>'.
+	
+	'<p class="area"><label class="required" '.
+	'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
+	form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content)).
+	'</p>';
+	
+	echo
+	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
+	form::textarea('post_notes',50,5,html::escapeHTML($post_notes)).
+	'</p>';
+
+	# --BEHAVIOR-- adminPageForm
+	$core->callBehavior('adminPageForm',isset($post) ? $post : null);
+	
+	echo
+	'<p>'.
+	($post_id ? form::hidden('id',$post_id) : '').
+	'<input type="submit" value="'.__('Save').' (s)" '.
+	'accesskey="s" name="save" /> '.
+	($can_delete ? '<input type="submit" class="delete" value="'.__('Delete').'" name="delete" />' : '').
+	$core->formNonce().
+	'</p>';
+	
+	echo '</fieldset></div>';		// End #entry-content
+	echo '</div>';		// End #entry-wrapper
+
 	echo '<div id="entry-sidebar">';
 	
 	echo
 	'<p><label for="post_status">'.__('Page status:').
-	form::combo('post_status',$status_combo,$post_status,'',3,!$can_publish).
+	form::combo('post_status',$status_combo,$post_status,'','',!$can_publish).
 	'</label></p>'.
 	
 	'<p><label for="post_dt">'.__('Published on:').
-	form::field('post_dt',16,16,$post_dt,'',3).'</label></p>'.
+	form::field('post_dt',16,16,$post_dt).'</label></p>'.
 	
 	'<p><label for="post_format">'.__('Text formating:').
-	form::combo('post_format',$formaters_combo,$post_format,'',3).
+	form::combo('post_format',$formaters_combo,$post_format).
 	($post_id && $post_format != 'xhtml' ? '<a href="'.html::escapeURL($redir_url).'&amp;id='.$post_id.'&amp;xconv=1">'.__('Convert to XHTML').'</a>' : '').
 	'</label></p>'.
 	
-	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment,'',3).' '.
+	'<p><label for="post_open_comment" class="classic">'.form::checkbox('post_open_comment',1,$post_open_comment).' '.
 	__('Accept comments').'</label></p>'.
-	'<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb,'',3).' '.
+	'<p><label for="post_open_tb" class="classic">'.form::checkbox('post_open_tb',1,$post_open_tb).' '.
 	__('Accept trackbacks').'</label></p>'.
 	
 	'<p><label for="post_position" class="classic">'.__('Page position:').' '.
-	form::field('post_position',3,3,(string) $post_position,'',3).
+	form::field('post_position',3,3,(string) $post_position).
 	'</label></p>'.
 	
 	'<p><label for="post_lang">'.__('Page lang:').
-	form::combo('post_lang',$lang_combo,$post_lang,'',5).'</label></p>'.
+	form::combo('post_lang',$lang_combo,$post_lang).'</label></p>'.
 	
 	'<p><label for="post_password">'.__('Page password:').
-	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal',3).
+	form::field('post_password',10,32,html::escapeHTML($post_password),'maximal').
 	'</label></p>'.
 	
 	'<div class="lockable">'.
 	'<p><label for="post_url">'.__('Basename:').
-	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal',3).
+	form::field('post_url',10,255,html::escapeHTML($post_url),'maximal').
 	'</label></p>'.
 	'<p class="form-note warn">'.
@@ -443,38 +481,4 @@
 	echo '</div>';		// End #entry-sidebar
 	
-	echo '<div id="entry-content"><fieldset class="constrained">';
-	
-	echo
-	'<p class="col"><label for="post_title" class="required"><abbr title="'.__('Required field').'">*</abbr> '.__('Title:').
-	form::field('post_title',20,255,html::escapeHTML($post_title),'maximal',2).
-	'</label></p>'.
-	
-	'<p class="area" id="excerpt-area"><label for="post_excerpt">'.__('Excerpt:').'</label> '.
-	form::textarea('post_excerpt',50,5,html::escapeHTML($post_excerpt),'',2).
-	'</p>'.
-	
-	'<p class="area"><label class="required" '.
-	'for="post_content"><abbr title="'.__('Required field').'">*</abbr> '.__('Content:').'</label> '.
-	form::textarea('post_content',50,$core->auth->getOption('edit_size'),html::escapeHTML($post_content),'',2).
-	'</p>';
-	
-	echo
-	'<p class="area" id="notes-area"><label for="post_notes">'.__('Notes:').'</label>'.
-	form::textarea('post_notes',50,5,html::escapeHTML($post_notes),'',2).
-	'</p>';
-
-	# --BEHAVIOR-- adminPageForm
-	$core->callBehavior('adminPageForm',isset($post) ? $post : null);
-	
-	echo
-	'<p>'.
-	($post_id ? form::hidden('id',$post_id) : '').
-	'<input type="submit" value="'.__('Save').' (s)" tabindex="4" '.
-	'accesskey="s" name="save" /> '.
-	($can_delete ? '<input type="submit" class="delete" value="'.__('Delete').'" name="delete" />' : '').
-	$core->formNonce().
-	'</p>';
-	
-	echo '</fieldset></div>';		// End #entry-content
 	echo '</form>';
 	echo '</div>';
Index: plugins/pings/_admin.php
===================================================================
--- plugins/pings/_admin.php	(revision 3)
+++ plugins/pings/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -41,5 +41,5 @@
 function pingDashboardFavs($core,$favs)
 {
-	$favs['pings'] = new ArrayObject(array('pings',__('Pings'),'plugin.php?p=pings',
+	$favs['pings'] = new ArrayObject(array('pings','Pings','plugin.php?p=pings',
 		'index.php?pf=pings/icon.png','index.php?pf=pings/icon-big.png',
 		null,null,null));
Index: plugins/pings/_define.php
===================================================================
--- plugins/pings/_define.php	(revision 0)
+++ plugins/pings/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,5 +17,7 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.1',
-	/* Permissions */		'usage,contentadmin'
+	array(
+		'permissions' =>	'usage,contentadmin'
+	)
 );
 ?>
Index: plugins/pings/index.php
===================================================================
--- plugins/pings/index.php	(revision 217)
+++ plugins/pings/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -51,5 +51,5 @@
 <body>
 <?php
-echo '<h2>'.__('Pings configuration').'</h2>';
+echo '<h2 class="page-title">'.__('Pings configuration').'</h2>';
 
 if (!empty($_GET['up'])) {
Index: plugins/pings/lib.pings.php
===================================================================
--- plugins/pings/lib.pings.php	(revision 120)
+++ plugins/pings/lib.pings.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/tags/_admin.php
===================================================================
--- plugins/tags/_admin.php	(revision 217)
+++ plugins/tags/_admin.php	(revision 501)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -45,5 +45,5 @@
 	public static function dashboardFavs($core,$favs)
 	{
-		$favs['tags'] = new ArrayObject(array('tags',__('Tags'),'plugin.php?p=tags&amp;m=tags',
+		$favs['tags'] = new ArrayObject(array('tags','Tags','plugin.php?p=tags&amp;m=tags',
 			'index.php?pf=tags/icon.png','index.php?pf=tags/icon-big.png',
 			'usage,contentadmin',null,null));
@@ -82,5 +82,5 @@
 		echo
 		'<h3><label for="post_tags">'.__('Tags:').'</label></h3>'.
-		'<div class="p" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal',3).'</div>';
+		'<div class="p" id="tags-edit">'.form::textarea('post_tags',20,3,$value,'maximal').'</div>';
 	}
 	
@@ -227,5 +227,5 @@
 		{
 			echo
-			'<h2>'.__('Add tags to entries').'</h2>'.
+			'<h2 class="page-title">'.__('Add tags to entries').'</h2>'.
 			'<form action="posts_actions.php" method="post">'.
 			'<div><label for="new_tags" class="area">'.__('Tags to add:').'</label> '.
@@ -257,5 +257,5 @@
 			}
 			
-			echo '<h2>'.__('Remove selected tags from entries').'</h2>';
+			echo '<h2 class="page-title">'.__('Remove selected tags from entries').'</h2>';
 			
 			if (empty($tags)) {
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 0)
+++ plugins/tags/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,5 +17,7 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'1.1',
-	/* Permissions */		'usage,contentadmin'
+	array(
+		'permissions' =>	'usage,contentadmin'
+	)
 );
 ?>
Index: plugins/tags/_prepend.php
===================================================================
--- plugins/tags/_prepend.php	(revision 0)
+++ plugins/tags/_prepend.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/tags/_public.php
===================================================================
--- plugins/tags/_public.php	(revision 0)
+++ plugins/tags/_public.php	(revision 413)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -44,4 +44,6 @@
 
 $core->addBehavior('templateBeforeBlock',array('behaviorsTags','templateBeforeBlock'));
+$core->addBehavior('tplSysIfConditions',array('behaviorsTags','tplSysIfConditions'));
+$core->addBehavior('publicBeforeDocument',array('behaviorsTags','addTplPath'));
 
 class behaviorsTags
@@ -70,4 +72,22 @@
 		}
 	}
+	
+	public static function tplIfConditions($tag, $attr,$content,$if)
+	{
+		if ($tag == 'Sys' && isset($attr['has_tag'])) {
+			$sign = '';
+			if (substr($attr['has_tag'],0,1) == '!') {
+				$sign = '!';
+				$attr['has_tag'] = substr($attr['has_tag'],1);
+			}
+			$if[] =  $sign."(\$core->tpl->tagExists('".addslashes($attr['has_tag'])."') )";
+		}
+	}
+	
+	public static function addTplPath($core)
+	{
+		$core->tpl->setPath($core->tpl->getPath(), dirname(__FILE__).'/default-templates');
+	}
+
 }
 
Index: plugins/tags/_widgets.php
===================================================================
--- plugins/tags/_widgets.php	(revision 0)
+++ plugins/tags/_widgets.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/tags/_xmlrpc.php
===================================================================
--- plugins/tags/_xmlrpc.php	(revision 0)
+++ plugins/tags/_xmlrpc.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/tags/default-templates/tag.html
===================================================================
--- plugins/tags/default-templates/tag.html	(revision 413)
+++ plugins/tags/default-templates/tag.html	(revision 413)
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <meta name="ROBOTS" content="{{tpl:BlogMetaRobots}}" />
+  
+  <title>{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf></title>
+  <meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
+  <meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
+  <meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
+  
+  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
+  <meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tag}} - {{tpl:TagID}} - {{tpl:BlogName encode_html="1"}}<tpl:PaginationIf start="0"> - {{tpl:lang page}} {{tpl:PaginationCurrent}}</tpl:PaginationIf>" />
+  <meta name="dc.language" content="{{tpl:BlogLanguage}}" />
+  <meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
+  <meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
+  <meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
+  <meta name="dc.type" content="text" />
+  <meta name="dc.format" content="text/html" />
+  
+  <link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
+  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
+  
+  <tpl:Entries no_content="1">
+    <tpl:EntriesHeader>
+      <tpl:Pagination>
+        <tpl:PaginationIf end="0">
+        <link rel="prev" title="{{tpl:lang previous entries}}" href="{{tpl:PaginationURL offset="1"}}" />
+        </tpl:PaginationIf>
+        
+        <tpl:PaginationIf start="0">
+        <link rel="next" title="{{tpl:lang next entries}}" href="{{tpl:PaginationURL offset="-1"}}" />
+        </tpl:PaginationIf>
+      </tpl:Pagination>
+    </tpl:EntriesHeader>
+    
+    <link rel="chapter" href="{{tpl:EntryURL}}" title="{{tpl:EntryTitle encode_html="1"}}" />
+  </tpl:Entries>
+  
+  <link rel="alternate" type="application/atom+xml" title="Atom 1.0" href="{{tpl:TagFeedURL type="atom"}}" />
+  <link rel="meta" type="application/xbel+xml" title="Blogroll" href="{{tpl:BlogrollXbelLink}}" />
+  
+  {{tpl:include src="_head.html"}}
+</head>
+
+<body class="dc-tag">
+<div id="page">
+{{tpl:include src="_top.html"}}
+
+<div id="wrapper">
+
+<div id="main">
+  <div id="content">
+  
+  <div id="content-info">
+    <h2>{{tpl:lang Tag}} - {{tpl:TagID}}</h2>
+    
+    <p><a type="application/atom+xml" href="{{tpl:TagFeedURL type="atom"}}"
+    title="{{tpl:lang This tag's entries Atom feed}}" class="feed">{{tpl:lang Entries feed}}</a>
+    
+    <tpl:SysIf operator="or" comments_active="1" pings_active="1">
+    - <a type="application/atom+xml" href="{{tpl:TagFeedURL type="atom"}}/comments"
+    title="{{tpl:lang This tag's comments Atom feed}}" class="feed">{{tpl:lang Comments feed}}</a>
+    </tpl:SysIf>
+    </p>
+  </div>
+  
+  <tpl:Entries>
+    <div id="p{{tpl:EntryID}}" class="post {{tpl:EntryIfOdd}} {{tpl:EntryIfFirst}}" lang="{{tpl:EntryLang}}" xml:lang="{{tpl:EntryLang}}">
+    <!-- # New day date -->
+    <tpl:DateHeader><p class="day-date">{{tpl:EntryDate}}</p></tpl:DateHeader>
+    
+    <h2 class="post-title"><a
+    href="{{tpl:EntryURL}}">{{tpl:EntryTitle encode_html="1"}}</a></h2>
+    
+    <p class="post-info">{{tpl:lang By}} {{tpl:EntryAuthorLink}}
+    {{tpl:lang on}} {{tpl:EntryDate}}, {{tpl:EntryTime}}
+    <tpl:EntryIf has_category="1">
+    - <a href="{{tpl:EntryCategoryURL}}">{{tpl:EntryCategory encode_html="1"}}</a>
+    </tpl:EntryIf>
+    </p>
+    
+    <tpl:EntryTags>
+    <tpl:TagsHeader><ul class="post-tags"></tpl:TagsHeader>
+    <li><a href="{{tpl:TagURL}}">{{tpl:TagID}}</a></li>
+    <tpl:TagsFooter></ul></tpl:TagsFooter>
+    </tpl:EntryTags>
+    
+    <!-- # --BEHAVIOR-- publicEntryBeforeContent -->
+    {{tpl:SysBehavior behavior="publicEntryBeforeContent"}}
+    
+    <!-- # Entry with an excerpt -->
+    <tpl:EntryIf extended="1">
+      <div class="post-content">{{tpl:EntryExcerpt}}</div>
+      <p class="read-it"><a href="{{tpl:EntryURL}}"
+      title="{{tpl:lang Continue reading}} {{tpl:EntryTitle encode_html="1"}}">{{tpl:lang Continue
+      reading}}</a>...</p>
+    </tpl:EntryIf>
+    
+    <!-- # Entry without excerpt -->
+    <tpl:EntryIf extended="0">
+      <div class="post-content">{{tpl:EntryContent}}</div>
+    </tpl:EntryIf>
+    
+    <!-- # --BEHAVIOR-- publicEntryAfterContent -->
+    {{tpl:SysBehavior behavior="publicEntryAfterContent"}}
+    
+    <!-- # Number of comments, trackbacks and attachments -->
+    <tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
+      <p class="post-info-co">
+    </tpl:EntryIf>
+    <tpl:EntryIf show_comments="1">
+      <a href="{{tpl:EntryURL}}#comments" class="comment_count">{{tpl:EntryCommentCount}}</a>
+    </tpl:EntryIf>
+    <tpl:EntryIf show_pings="1">
+      <a href="{{tpl:EntryURL}}#pings" class="ping_count">{{tpl:EntryPingCount}}</a></tpl:EntryIf>
+    <tpl:EntryIf has_attachment="1">
+      <a href="{{tpl:EntryURL}}#attachments" class="attach_count">{{tpl:EntryAttachmentCount}}</a></tpl:EntryIf>
+    <tpl:EntryIf operator="or" show_comments="1" show_pings="1" has_attachment="1">
+      </p>
+    </tpl:EntryIf>
+    </div>
+    
+    <tpl:EntriesFooter>
+      <tpl:Pagination>
+        <p class="pagination"><tpl:PaginationIf end="0"><a href="{{tpl:PaginationURL offset="+1"}}" class="prev">&#171;
+        {{tpl:lang previous entries}}</a> - </tpl:PaginationIf>
+        {{tpl:lang page}} {{tpl:PaginationCurrent}} {{tpl:lang of}} {{tpl:PaginationCounter}}
+        <tpl:PaginationIf start="0"> - <a href="{{tpl:PaginationURL offset="-1"}}" class="next">{{tpl:lang next entries}}
+        &#187;</a></tpl:PaginationIf></p>
+      </tpl:Pagination>
+    </tpl:EntriesFooter>
+  </tpl:Entries>
+  </div>
+</div> <!-- End #main -->
+
+<div id="sidebar">
+  <div id="blognav">
+    {{tpl:Widgets type="nav"}}
+  </div> <!-- End #blognav -->
+  
+  <div id="blogextra">
+    {{tpl:Widgets type="extra"}}
+  </div> <!-- End #blogextra -->
+</div>
+
+</div> <!-- End #wrapper -->
+
+{{tpl:include src="_footer.html"}}
+</div> <!-- End #page -->
+</body>
+</html>
Index: plugins/tags/default-templates/tags.html
===================================================================
--- plugins/tags/default-templates/tags.html	(revision 413)
+++ plugins/tags/default-templates/tags.html	(revision 413)
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="{{tpl:BlogLanguage}}" lang="{{tpl:BlogLanguage}}">
+<head>
+  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+  <meta name="ROBOTS" content="{{tpl:BlogMetaRobots robots="NOINDEX"}}" />
+  
+  <title>{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}</title>
+  <meta name="copyright" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
+  <meta name="author" content="{{tpl:BlogEditor encode_html="1"}}" />
+  <meta name="date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
+  
+  <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" />
+  <meta name="dc.title" lang="{{tpl:BlogLanguage}}" content="{{tpl:lang Tags}} - {{tpl:BlogName encode_html="1"}}" />
+  <meta name="dc.language" content="{{tpl:BlogLanguage}}" />
+  <meta name="dc.publisher" content="{{tpl:BlogEditor encode_html="1"}}" />
+  <meta name="dc.rights" content="{{tpl:BlogCopyrightNotice encode_html="1"}}" />
+  <meta name="dc.date" scheme="W3CDTF" content="{{tpl:BlogUpdateDate iso8601="1"}}" />
+  <meta name="dc.type" content="text" />
+  <meta name="dc.format" content="text/html" />
+  
+  <link rel="top" href="{{tpl:BlogURL}}" title="{{tpl:lang Home}}" />
+  <link rel="contents" href="{{tpl:BlogArchiveURL}}" title="{{tpl:lang Archives}}" />
+  
+  <link rel="meta" type="application/xbel+xml" title="Blogroll" href="{{tpl:BlogrollXbelLink}}" />
+  
+  {{tpl:include src="_head.html"}}
+</head>
+
+<body class="dc-tags">
+<div id="page">
+{{tpl:include src="_top.html"}}
+
+<div id="wrapper">
+
+<div id="main">
+  <div id="content">
+  
+  <div id="content-info">
+    <h2>{{tpl:lang Tags}}</h2>
+  </div>
+  
+  <div class="content-inner">  
+  <ul class="tags">
+    <tpl:Tags>
+      <li><a href="{{tpl:TagURL}}" class="tag{{tpl:TagRoundPercent}}">{{tpl:TagID}}</a></li>
+    </tpl:Tags>
+    </ul>
+  </div>
+  
+  </div>
+</div> <!-- End #main -->
+
+<div id="sidebar">
+  <div id="blognav">
+    {{tpl:Widgets type="nav"}}
+  </div> <!-- End #blognav -->
+  
+  <div id="blogextra">
+    {{tpl:Widgets type="extra"}}
+  </div> <!-- End #blogextra -->
+</div>
+
+</div> <!-- End #wrapper -->
+
+{{tpl:include src="_footer.html"}}
+</div> <!-- End #page -->
+</body>
+</html>
Index: plugins/tags/index.php
===================================================================
--- plugins/tags/index.php	(revision 0)
+++ plugins/tags/index.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/tags/tag_posts.php
===================================================================
--- plugins/tags/tag_posts.php	(revision 217)
+++ plugins/tags/tag_posts.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -110,5 +110,5 @@
 
 <h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
-<?php echo __('Edit tag'); ?></h2>
+<span class="page-title"><?php echo __('Edit tag'); ?></span></h2>
 
 <?php
Index: plugins/tags/tags.php
===================================================================
--- plugins/tags/tags.php	(revision 457)
+++ plugins/tags/tags.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -21,5 +21,5 @@
 <body>
 <h2><?php echo html::escapeHTML($core->blog->name); ?> &rsaquo;
-<?php echo __('Tags'); ?></h2>
+<span class="page-title"><?php echo __('Tags'); ?></span></h2>
 
 <?php
@@ -43,11 +43,11 @@
 			$col = 1;
 		}
-		$cols[$col] .= '<tr class="tagLetter"><th scope="row" colspan="2"><span>'.$letter.'</span></th></tr>';
+		$cols[$col] .= '<tr class="tagLetter"><td colspan="2"><span>'.$letter.'</span></td></tr>';
 	}
 	
 	$cols[$col] .=
 	'<tr class="line">'.
-		'<th scope="row" class="maximal"><a href="'.$p_url.
-		'&amp;m=tag_posts&amp;tag='.rawurlencode($tags->meta_id).'">'.$tags->meta_id.'</a></th>'.
+		'<td class="maximal"><a href="'.$p_url.
+		'&amp;m=tag_posts&amp;tag='.rawurlencode($tags->meta_id).'">'.$tags->meta_id.'</a></td>'.
 		'<td class="nowrap"><strong>'.$tags->count.'</strong> '.
 		(($tags->count==1) ? __('entry') : __('entries')).'</td>'.
@@ -57,8 +57,5 @@
 }
 
-$table =
-'<div class="col"><table class="tags"><caption>'.
-__('Tags list').
-'</caption><tbody>%s</tbody></table></div>';
+$table = '<div class="col"><table class="tags">%s</table></div>';
 
 if ($cols[0])
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 0)
+++ plugins/themeEditor/_admin.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/themeEditor/_define.php
===================================================================
--- plugins/themeEditor/_define.php	(revision 0)
+++ plugins/themeEditor/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,6 +16,5 @@
 	/* Description*/		"Theme Editor",
 	/* Author */			"Olivier Meunier",
-	/* Version */			'0.9',
-	/* Permissions */		null
+	/* Version */			'0.9'
 );
 ?>
Index: plugins/themeEditor/class.themeEditor.php
===================================================================
--- plugins/themeEditor/class.themeEditor.php	(revision 0)
+++ plugins/themeEditor/class.themeEditor.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/themeEditor/index.php
===================================================================
--- plugins/themeEditor/index.php	(revision 219)
+++ plugins/themeEditor/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -69,5 +69,5 @@
 <body>
 <?php echo '<h2>'.html::escapeHTML($core->blog->name).
-' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; '.__('Theme Editor').'</h2>'; ?>
+' &rsaquo; <a href="blog_theme.php">'.__('Blog appearance').'</a> &rsaquo; <span class="page-title">'.__('Theme Editor').'</span></h2>'; ?>
 
 <p><strong><?php echo sprintf(__('Your current theme on this blog is "%s".'),html::escapeHTML($T['name'])); ?></strong></p>
Index: plugins/userPref/_define.php
===================================================================
--- plugins/userPref/_define.php	(revision 3)
+++ plugins/userPref/_define.php	(revision 464)
@@ -16,6 +16,5 @@
 	/* Description*/		"Manage every user preference directive",
 	/* Author */			"Franck Paul",
-	/* Version */			'0.1',
-	/* Permissions */		null
+	/* Version */			'0.1'
 );
 ?>
Index: plugins/userPref/index.php
===================================================================
--- plugins/userPref/index.php	(revision 457)
+++ plugins/userPref/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -72,5 +72,5 @@
 	return
 	'<tr>'.
-	'<th scope="row"><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></th>'.
+	'<td><label for="s_'.$id.'">'.sprintf($slabel,html::escapeHTML($id)).'</label></td>'.
 	'<td>'.$field.'</td>'.
 	'<td>'.$s['type'].'</td>'.
@@ -84,5 +84,5 @@
   <?php echo dcPage::jsPageTabs($part); ?>
   <style type="text/css">
-  .ws-name { background: #ccc; color: #000; padding-top: 0.3em; padding-bottom: 0.3em; font-size: 1.1em; }
+  .ns-name { background: #ccc; color: #000; padding-top: 0.3em; padding-bottom: 0.3em; font-size: 1.1em; }
   </style>
 </head>
@@ -98,19 +98,15 @@
 }
 ?>
-<h2><?php echo html::escapeHTML($core->auth->userID()); ?> &rsaquo; user:preferences</h2>
+<h2><?php echo html::escapeHTML($core->auth->userID()); ?> &rsaquo; <span class="page-title">user:preferences</span></h2>
 
 <div id="local" class="multi-part" title="<?php echo __('user preferences'); ?>">
 <form action="plugin.php" method="post">
 <table>
-<caption><?php echo __('Local user preferences list'); ?></caption>
-<thead>
 <tr>
-  <th scope="col" class="nowrap">Pref ID</th>
-  <th scope="col"><?php echo __('Value'); ?></th>
-  <th scope="col"><?php echo __('Type'); ?></th>
-  <th scope="col" class="maximal"><?php echo __('Description'); ?></th>
+  <th class="nowrap">Pref ID</th>
+  <th><?php echo __('Value'); ?></th>
+  <th><?php echo __('Type'); ?></th>
+  <th class="maximal"><?php echo __('Description'); ?></th>
 </tr>
-</thead>
-<tbody>
 <?php
 $prefs = array();
@@ -127,5 +123,5 @@
 {
 	ksort($s);
-	echo '<tr><th scope="row" colspan="4" class="ws-name">workspace: <strong>'.$ws.'</strong></th></tr>';
+	echo '<tr><td colspan="4" class="ws-name">workspace: <strong>'.$ws.'</strong></td></tr>';
 	
 	foreach ($s as $k => $v)
@@ -135,5 +131,4 @@
 }
 ?>
-</tbody>
 </table>
 <p><input type="submit" value="<?php echo __('Save'); ?>" />
@@ -146,14 +141,10 @@
 <form action="plugin.php" method="post">
 <table>
-<caption><?php echo __('Global user preferences list'); ?></caption>
-<thead>
 <tr>
-  <th scope="col" class="nowrap">Pref ID</th>
-  <th scope="col"><?php echo __('Value'); ?></th>
-  <th scope="col"><?php echo __('Type'); ?></th>
-  <th scope="col" class="maximal"><?php echo __('Description'); ?></th>
+  <th class="nowrap">Pref ID</th>
+  <th><?php echo __('Value'); ?></th>
+  <th><?php echo __('Type'); ?></th>
+  <th class="maximal"><?php echo __('Description'); ?></th>
 </tr>
-</thead>
-<tbody>
 <?php
 $prefs = array();
@@ -170,5 +161,5 @@
 {
 	ksort($s);
-	echo '<tr><th scope="row" colspan="4" class="ws-name">workspace: <strong>'.$ws.'</strong></th></tr>';
+	echo '<tr><td colspan="4" class="ws-name">workspace: <strong>'.$ws.'</strong></td></tr>';
 	
 	foreach ($s as $k => $v)
@@ -178,5 +169,4 @@
 }
 ?>
-</tbody>
 </table>
 <p><input type="submit" value="<?php echo __('Save'); ?>" />
Index: plugins/widgets/_admin.php
===================================================================
--- plugins/widgets/_admin.php	(revision 159)
+++ plugins/widgets/_admin.php	(revision 324)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -16,5 +16,5 @@
 function widgets_dashboard_favs($core,$favs)
 {
-	$favs['widgets'] = new ArrayObject(array('widgets',__('Presentation widgets'),'plugin.php?p=widgets',
+	$favs['widgets'] = new ArrayObject(array('widgets','Presentation widgets','plugin.php?p=widgets',
 		'index.php?pf=widgets/icon.png','index.php?pf=widgets/icon-big.png',
 		'admin',null,null));
Index: plugins/widgets/_default_widgets.php
===================================================================
--- plugins/widgets/_default_widgets.php	(revision 0)
+++ plugins/widgets/_default_widgets.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -58,5 +58,5 @@
 $categories = array('' => '', __('Uncategorized') => 'null');
 while ($rs->fetch()) {
-	$categories[str_repeat('&nbsp;&nbsp;',$rs->level-1).'&bull; '.html::escapeHTML($rs->cat_title)] = $rs->cat_id;
+	$categories[str_repeat('&nbsp;&nbsp;',$rs->level-1).($rs->level-1 == 0 ? '' : '&bull; ').html::escapeHTML($rs->cat_title)] = $rs->cat_id;
 }
 $__widgets->lastposts->setting('category',__('Category:'),'','combo',$categories);
Index: plugins/widgets/_define.php
===================================================================
--- plugins/widgets/_define.php	(revision 0)
+++ plugins/widgets/_define.php	(revision 464)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -17,6 +17,8 @@
 	/* Author */			"Olivier Meunier",
 	/* Version */			'2',
-	/* Permissions */		'admin',
-	/* Priority */			1000000000
+	array(
+		'permissions' =>	'admin',
+		'priority' =>		1000000000
+	)
 );
 ?>
Index: plugins/widgets/_install.php
===================================================================
--- plugins/widgets/_install.php	(revision 175)
+++ plugins/widgets/_install.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of widgets, a plugin for Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/widgets/_public.php
===================================================================
--- plugins/widgets/_public.php	(revision 0)
+++ plugins/widgets/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/widgets/_widgets_functions.php
===================================================================
--- plugins/widgets/_widgets_functions.php	(revision 75)
+++ plugins/widgets/_widgets_functions.php	(revision 475)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -94,5 +94,5 @@
 			$rs->cat_url.'">'.
 			html::escapeHTML($rs->cat_title).'</a>'.
-			($w->postcount ? ' ('.$rs->nb_post.')' : '');
+			($w->postcount ? ' <span>('.$rs->nb_post.')</span>' : '');
 			
 			
Index: plugins/widgets/class.widgets.php
===================================================================
--- plugins/widgets/class.widgets.php	(revision 117)
+++ plugins/widgets/class.widgets.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 183)
+++ plugins/widgets/index.php	(revision 500)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
@@ -163,5 +163,5 @@
 <body>
 <?php
-echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; '.__('Widgets').'</h2>';
+echo '<h2>'.html::escapeHTML($core->blog->name).' &rsaquo; <span class="page-title">'.__('Widgets').'</span></h2>';
 
 # All widgets
Index: themes/blueSilence/_define.php
===================================================================
--- themes/blueSilence/_define.php	(revision 134)
+++ themes/blueSilence/_define.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/customCSS/_config.php
===================================================================
--- themes/customCSS/_config.php	(revision 0)
+++ themes/customCSS/_config.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/customCSS/_define.php
===================================================================
--- themes/customCSS/_define.php	(revision 0)
+++ themes/customCSS/_define.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/customCSS/_public.php
===================================================================
--- themes/customCSS/_public.php	(revision 0)
+++ themes/customCSS/_public.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/default/_define.php
===================================================================
--- themes/default/_define.php	(revision 134)
+++ themes/default/_define.php	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/default/print.css
===================================================================
--- themes/default/print.css	(revision 0)
+++ themes/default/print.css	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
Index: themes/default/style.css
===================================================================
--- themes/default/style.css	(revision 0)
+++ themes/default/style.css	(revision 270)
@@ -4,5 +4,5 @@
 # This file is part of Dotclear 2.
 #
-# Copyright (c) 2003-2010 Olivier Meunier & Association Dotclear
+# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
 # Licensed under the GPL version 2.0 license.
 # See LICENSE file or
