Index: .hgsubstate
===================================================================
--- .hgsubstate	(revision 3322)
+++ .hgsubstate	(revision 3351)
@@ -1,1 +1,1 @@
-19853ae41c45fd219679e2b3a5281c76e0b0d690 inc/libs/clearbricks
+76a26334ed34e15e59020cd2b4b94d57f6fa4739 inc/libs/clearbricks
Index: admin/auth.php
===================================================================
--- admin/auth.php	(revision 3352)
+++ admin/auth.php	(revision 3275)
@@ -29,9 +29,5 @@
 }
 
-if (defined('DC_ADMIN_URL')) {
-	$page_url = DC_ADMIN_URL.$core->adminurl->get('admin.auth');
-} else {
-	$page_url = http::getHost().$_SERVER['REQUEST_URI'];
-}
+$page_url = http::getHost().$_SERVER['REQUEST_URI'];
 
 $change_pwd = $core->auth->allowPassChange() && isset($_POST['new_pwd']) && isset($_POST['new_pwd_c']) && isset($_POST['login_data']);
Index: admin/blog_pref.php
===================================================================
--- admin/blog_pref.php	(revision 3270)
+++ admin/blog_pref.php	(revision 3330)
@@ -313,4 +313,9 @@
 
 $desc_editor = $core->auth->getOption('editor');
+$rte_flag = true;
+$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags) && in_array('blog_descr',$rte_flags)) {
+	$rte_flag = $rte_flags['blog_descr'];
+}
 
 dcPage::open(__('Blog settings'),
@@ -324,7 +329,6 @@
 	"</script>".
 	dcPage::jsConfirmClose('blog-form').
-	$core->callBehavior('adminPostEditor',$desc_editor['xhtml'],'blog_desc',array('#blog_desc'),'xhtml').
+	($rte_flag ? $core->callBehavior('adminPostEditor',$desc_editor['xhtml'],'blog_desc',array('#blog_desc'),'xhtml') : '').
 	dcPage::jsLoad('js/_blog_pref.js').
-
 
 	# --BEHAVIOR-- adminBlogPreferencesHeaders
Index: admin/categories.php
===================================================================
--- admin/categories.php	(revision 3210)
+++ admin/categories.php	(revision 3340)
@@ -47,5 +47,5 @@
 		$mov_cat = (int) $_POST['mov_cat'][$cat_id];
 
-		$mov_cat = $mov_cat ? $mov_cat : null;
+		$mov_cat = $mov_cat ?: null;
 		if ($mov_cat !== null) {
 			$c = $core->blog->getCategory($mov_cat);
Index: admin/category.php
===================================================================
--- admin/category.php	(revision 3209)
+++ admin/category.php	(revision 3330)
@@ -175,9 +175,14 @@
 
 $category_editor = $core->auth->getOption('editor');
+$rte_flag = true;
+$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags) && in_array('cat_descr',$rte_flags)) {
+	$rte_flag = $rte_flags['cat_descr'];
+}
 
 dcPage::open($title,
 	dcPage::jsConfirmClose('category-form').
 	dcPage::jsLoad('js/_category.js').
-	$core->callBehavior('adminPostEditor',$category_editor['xhtml'],'category',array('#cat_desc'),'xhtml'),
+	($rte_flag ? $core->callBehavior('adminPostEditor',$category_editor['xhtml'],'category',array('#cat_desc'),'xhtml') : ''),
 	dcPage::breadcrumb($elements)
 );
Index: admin/comments.php
===================================================================
--- admin/comments.php	(revision 3263)
+++ admin/comments.php	(revision 3342)
@@ -43,4 +43,5 @@
 __('Date') => 'comment_dt',
 __('Entry title') => 'post_title',
+__('Entry date') => 'post_dt',
 __('Author') => 'comment_author',
 __('Status') => 'comment_status'
Index: admin/csp_report.php
===================================================================
--- admin/csp_report.php	(revision 3293)
+++ admin/csp_report.php	(revision 3324)
@@ -8,6 +8,8 @@
 header('X-Content-Type-Options: "nosniff"');
 
+require dirname(__FILE__).'/../inc/admin/prepend.php';
+
 // Specify log file
-define('LOGFILE',dirname(__FILE__).'/csp_report.txt');
+define('LOGFILE',path::real(DC_TPL_CACHE).'/csp_report.txt');
 
 // Get the raw POST data
Index: admin/install/index.php
===================================================================
--- admin/install/index.php	(revision 3303)
+++ admin/install/index.php	(revision 3326)
@@ -172,4 +172,5 @@
 		# CSP directive (admin part)
 		$blog_settings->system->put('csp_admin_on',true,'boolean','Send CSP header (admin)',true,true);
+		$blog_settings->system->put('csp_admin_report_only',false,'boolean','CSP Report only violations (admin)',true,true);
 		$blog_settings->system->put('csp_admin_default',"'self'",'string','CSP default-src directive',true,true);
 		$blog_settings->system->put('csp_admin_script',"'self' 'unsafe-inline' 'unsafe-eval'",'string','CSP script-src directive',true,true);
Index: admin/js/common.js
===================================================================
--- admin/js/common.js	(revision 3294)
+++ admin/js/common.js	(revision 3332)
@@ -604,6 +604,7 @@
         });
 
-        $('#gototop').click(function() {
+        $('#gototop').click(function(e) {
             $('body,html').animate({scrollTop:0},800);
+            e.preventDefault();
         });
 });
Index: admin/js/jquery/jquery.pageTabs.js
===================================================================
--- admin/js/jquery/jquery.pageTabs.js	(revision 2479)
+++ admin/js/jquery/jquery.pageTabs.js	(revision 3333)
@@ -1,5 +1,5 @@
 (function($) {
 	'use strict';
-    
+
 	$.pageTabs = function(start_tab, opts) {
 		var defaults = {
@@ -10,8 +10,9 @@
 			idTabPrefix: 'part-tabs-'
 		};
-		
+
 		$.pageTabs.options = $.extend({}, defaults, opts);
 		var active_tab = start_tab || '';
 		var hash = $.pageTabs.getLocationHash();
+		var subhash = $.pageTabs.getLocationSubhash();
 
 		if (hash !== undefined && hash) {
@@ -23,5 +24,5 @@
 
 		createTabs();
-		
+
 		$('ul li', '.'+$.pageTabs.options.containerClass).click(function(e) {
 			if ($(this).hasClass($.pageTabs.options.activeClass)) {
@@ -40,5 +41,5 @@
 				part_to_activate.addClass('loaded');
 			}
-			
+
 			part_to_activate.tabload();
 		});
@@ -49,11 +50,16 @@
 
 		$.pageTabs.clickTab(active_tab);
-		
+
+		if (subhash !== undefined) {
+			// Tab displayed, now scroll to the sub-part if defined in original document.location (#tab.sub-part)
+			document.getElementById(subhash).scrollIntoView();
+		}
+
 		return this;
 	};
-	
+
 	var createTabs = function createTabs() {
 		var lis = [], li_class = '';
-		
+
 		$('.'+$.pageTabs.options.contentClass).each(function() {
 			$(this).hide();
@@ -62,9 +68,9 @@
 			$(this).attr('id', $.pageTabs.options.partPrefix + $(this).attr('id')).prop('title','');
 		});
-		
+
 		$('<div class="'+$.pageTabs.options.containerClass+'"><ul>'+lis.join('')+'</ul></div>')
 			.insertBefore($('.'+$.pageTabs.options.contentClass).get(0));
 	};
-	
+
 	var getHash = function getHash(href) {
 		var href = href || '';
@@ -72,5 +78,5 @@
 		return href.replace(/.*#/, '');
 	};
-	
+
 	$.pageTabs.clickTab = function(tab) {
 		if (tab=='') {
@@ -96,5 +102,12 @@
 
 	$.pageTabs.getLocationHash = function() {
-		return getHash(document.location.hash);
+		// Return the URL hash (without subhash — #hash[.subhash])
+		var h = getHash(document.location.hash).split('.');
+		return h[0];
+	};
+	$.pageTabs.getLocationSubhash = function() {
+		// Return the URL subhash if present (without hash — #hash[.subhash])
+		var sh = getHash(document.location.hash).split('.');
+		return sh[1];
 	};
 })(jQuery);
Index: admin/media.php
===================================================================
--- admin/media.php	(revision 3295)
+++ admin/media.php	(revision 3340)
@@ -35,5 +35,5 @@
 
 $page = !empty($_GET['page']) ? max(1,(integer) $_GET['page']) : 1;
-$nb_per_page = ((integer) $core->auth->user_prefs->interface->media_by_page ? (integer) $core->auth->user_prefs->interface->media_by_page : 30);
+$nb_per_page = ((integer) $core->auth->user_prefs->interface->media_by_page ?: 30);
 
 # We are on home not comming from media manager
@@ -75,8 +75,14 @@
 $file_mode = !empty($_SESSION['media_file_mode']) ? $_SESSION['media_file_mode'] : 'grid';
 
-if (!empty($_GET['file_sort']) && in_array($_GET['file_sort'],$sort_combo)) {
-	$_SESSION['media_file_sort'] = $_GET['file_sort'];
-}
-$file_sort = !empty($_SESSION['media_file_sort']) ? $_SESSION['media_file_sort'] : null;
+$file_sort = null;
+if (!empty($_GET['file_sort'])) {
+	$file_sort = $_SESSION['media_file_sort'] = $_GET['file_sort'];
+	setcookie('dc_media_sort',json_encode($file_sort));
+} elseif (isset($_COOKIE['dc_media_sort'])) {
+	$file_sort = json_decode($_COOKIE['dc_media_sort']);
+} elseif (!empty($_SESSION['media_file_sort'])) {
+	$file_sort = $_SESSION['media_file_sort'];
+}
+$file_sort =  in_array($file_sort,$sort_combo) ? $file_sort : null;
 
 $nb_per_page = !empty($_SESSION['nb_per_page']) ? (integer)$_SESSION['nb_per_page'] : $nb_per_page;
@@ -155,5 +161,5 @@
 			$zip->addDirectory($core->media->root.'/'.$d,'',true);
 
-			header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ? $d : 'media').'.zip');
+			header('Content-Disposition: attachment;filename='.date('Y-m-d').'-'.$core->blog->id.'-'.($d ?: 'media').'.zip');
 			header('Content-Type: application/x-zip');
 			$zip->write();
Index: admin/media_item.php
===================================================================
--- admin/media_item.php	(revision 3167)
+++ admin/media_item.php	(revision 3353)
@@ -185,5 +185,5 @@
 
 # Function to get image title based on meta
-function dcGetImageTitle($file,$pattern,$dto_first=false,$no_date_alone=false)
+$get_img_title = function ($file,$pattern,$dto_first=false,$no_date_alone=false)
 {
 	$res = array();
@@ -225,5 +225,5 @@
 	}
 	return implode($sep,$res);
-}
+};
 
 /* DISPLAY Main page
@@ -307,5 +307,5 @@
 	{
 		$media_type = 'image';
-		$media_desc = dcGetImageTitle($file,
+		$media_desc = $get_img_title($file,
 			$core->blog->settings->system->media_img_title_pattern,
 			$core->blog->settings->system->media_img_use_dto_first,
@@ -376,5 +376,5 @@
 	{
 		$media_type = 'image';
-		$media_desc = dcGetImageTitle($file,
+		$media_desc = $get_img_title($file,
 			$core->blog->settings->system->media_img_title_pattern,
 			$core->blog->settings->system->media_img_use_dto_first,
Index: admin/plugin.php
===================================================================
--- admin/plugin.php	(revision 2708)
+++ admin/plugin.php	(revision 3333)
@@ -78,4 +78,11 @@
 	call_user_func($open_f,$p_title,$p_head);
 	echo $p_content;
+	if (!$popup) {
+		// Add direct links to plugin settings if any
+		$settings = adminModulesList::getSettingsUrls($core,$p,true,false);
+		if (!empty($settings)) {
+			echo '<hr class="clear"/><p class="right modules">'.implode(' - ',$settings).'</p>';
+		}
+	}
 	call_user_func($close_f);
 }
Index: admin/post.php
===================================================================
--- admin/post.php	(revision 3209)
+++ admin/post.php	(revision 3340)
@@ -272,5 +272,5 @@
 
 	$cur->post_title = $post_title;
-	$cur->cat_id = ($cat_id ? $cat_id : null);
+	$cur->cat_id = ($cat_id ?: null);
 	$cur->post_dt = $post_dt ? date('Y-m-d H:i:00',strtotime($post_dt)) : '';
 	$cur->post_format = $post_format;
Index: admin/preferences.php
===================================================================
--- admin/preferences.php	(revision 3265)
+++ admin/preferences.php	(revision 3340)
@@ -47,5 +47,5 @@
 $user_ui_iconset = @$core->auth->user_prefs->interface->iconset;
 $user_ui_nofavmenu = $core->auth->user_prefs->interface->nofavmenu;
-$user_ui_media_by_page = ($core->auth->user_prefs->interface->media_by_page ? $core->auth->user_prefs->interface->media_by_page : 30);
+$user_ui_media_by_page = ($core->auth->user_prefs->interface->media_by_page ?: 30);
 $user_ui_media_nb_last_dirs = $core->auth->user_prefs->interface->media_nb_last_dirs;
 
@@ -98,4 +98,21 @@
 # Language codes
 $lang_combo = dcAdminCombos::getAdminLangsCombo();
+
+# Get 3rd parts xhtml editor flags
+$rte = array(
+	'blog_descr' => array(true,__('Blog description (in blog parameters)')),
+	'cat_descr' => array(true,__('Category description'))
+);
+$rte = new ArrayObject($rte);
+$core->callBehavior('adminRteFlags',$core,$rte);
+# Load user settings
+$rte_flags = @$core->auth->user_prefs->interface->rte_flags;
+if (is_array($rte_flags)) {
+	foreach ($rte_flags as $fk => $fv) {
+		if (isset($rte[$fk])) {
+			$rte[$fk][0] = $fv;
+		}
+	}
+}
 
 # Get default colums (admin lists)
@@ -233,4 +250,11 @@
 		}
 		$core->auth->user_prefs->interface->put('cols',$cu,'array');
+
+		# Update user xhtml editor flags
+		$rf = array();
+		foreach ($rte as $rk => $rv) {
+			$rf[$rk] = isset($_POST['rte_flags']) && in_array($rk,$_POST['rte_flags'],true) ? true : false;
+		}
+		$core->auth->user_prefs->interface->put('rte_flags',$rf,'array');
 
 		# Update user
@@ -466,5 +490,5 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Interface').'</h4>'.
+'<h4 id="user_options_interface">'.__('Interface').'</h4>'.
 
 '<p><label for="user_ui_enhanceduploader" class="classic">'.
@@ -500,12 +524,16 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Optional columns displayed in lists').'</h4>';
+'<h4 id="user_options_columns">'.__('Optional columns displayed in lists').'</h4>';
+$odd = true;
 foreach ($cols as $col_type => $col_list) {
+	echo '<div class="two-boxes '.($odd ? 'odd' : 'even').'">';
 	echo '<h5>'.$col_list[0].'</h5>';
 	foreach ($col_list[1] as $col_name => $col_data) {
 		echo
-		'<p><label for="cols_'.$col_type.'-"'.$col_name.'" class="classic">'.
+		'<p><label for="cols_'.$col_type.'-'.$col_name.'" class="classic">'.
 		form::checkbox(array('cols_'.$col_type.'[]','cols_'.$col_type.'-'.$col_name),$col_name,$col_data[0]).$col_data[1].'</label>';
 	}
+	echo '</div>';
+	$odd = !$odd;
 }
 echo '</div>';
@@ -513,6 +541,7 @@
 echo
 '<div class="fieldset">'.
-'<h4>'.__('Edition').'</h4>';
-
+'<h4 id="user_options_edition">'.__('Edition').'</h4>';
+
+echo '<div class="two-boxes odd">';
 foreach ($format_by_editors as $format => $editors) {
 	echo
@@ -544,4 +573,15 @@
 
 '</div>';
+
+echo '<div class="two-boxes even">';
+echo '<h5>'.__('Use xhtml editor for:').'</h5>';
+foreach ($rte as $rk => $rv) {
+	echo
+		'<p><label for="rte_'.$rk.'" class="classic">'.
+		form::checkbox(array('rte_flags[]','rte_'.$rk),$rk,$rv[0]).$rv[1].'</label>';
+}
+echo '</div>';
+
+echo '</div>';	// fieldset
 
 echo
Index: inc/admin/lib.dc.page.php
===================================================================
--- inc/admin/lib.dc.page.php	(revision 3319)
+++ inc/admin/lib.dc.page.php	(revision 3340)
@@ -106,8 +106,8 @@
 			// Get directives from settings if exist, else set defaults
 			$csp = new ArrayObject(array());
-			$csp['default-src'] = $core->blog->settings->system->csp_admin_default ? $core->blog->settings->system->csp_admin_default : "'self'";
-			$csp['script-src'] = $core->blog->settings->system->csp_admin_script ? $core->blog->settings->system->csp_admin_script : "'self' 'unsafe-inline' 'unsafe-eval'";
-			$csp['style-src'] = $core->blog->settings->system->csp_admin_style ? $core->blog->settings->system->csp_admin_style : "'self' 'unsafe-inline'";
-			$csp['img-src'] = $core->blog->settings->system->csp_admin_img ? $core->blog->settings->system->csp_admin_img : "'self' data: media.dotaddict.org";
+			$csp['default-src'] = $core->blog->settings->system->csp_admin_default ?: "'self'";
+			$csp['script-src'] = $core->blog->settings->system->csp_admin_script ?: "'self' 'unsafe-inline' 'unsafe-eval'";
+			$csp['style-src'] = $core->blog->settings->system->csp_admin_style ?: "'self' 'unsafe-inline'";
+			$csp['img-src'] = $core->blog->settings->system->csp_admin_img ?: "'self' data: media.dotaddict.org";
 
 			# Cope with blog post preview (via public URL in iframe)
@@ -137,5 +137,6 @@
 					$directives[] = "report-uri ".DC_ADMIN_URL."csp_report.php";
 				}
-				$headers['csp'] = "Content-Security-Policy: ".implode(" ; ",$directives);
+				$report_only = ($core->blog->settings->system->csp_admin_report_only) ? '-Report-Only' : '';
+				$headers['csp'] = "Content-Security-Policy".$report_only.": ".implode(" ; ",$directives);
 			}
 		}
@@ -297,5 +298,5 @@
 	{
 		global $core;
-		$tag = (isset($n['divtag'])&& $n['divtag'])?'div':'p';
+		$tag = (isset($n['divtag']) && $n['divtag']) ? 'div' : 'p';
 		$ts = '';
 		if (!isset($n['with_ts']) || ($n['with_ts'] == true)) {
@@ -441,7 +442,7 @@
 	{
 		global $core;
-		$with_home_link = isset($options['home_link'])?$options['home_link']:true;
-		$hl = isset($options['hl'])?$options['hl']:true;
-		$hl_pos = isset($options['hl_pos'])?$options['hl_pos']:-1;
+		$with_home_link = isset($options['home_link']) ? $options['home_link'] : true;
+		$hl = isset($options['hl']) ? $options['hl'] : true;
+		$hl_pos = isset($options['hl_pos']) ? $options['hl_pos'] : -1;
 		// First item of array elements should be blog's name, System or Plugins
 		$res = '<h2>'.($with_home_link ?
@@ -1053,4 +1054,5 @@
 					}
 				}
+				sort($themes);
 			}
 		}
Index: inc/admin/lib.moduleslist.php
===================================================================
--- inc/admin/lib.moduleslist.php	(revision 3327)
+++ inc/admin/lib.moduleslist.php	(revision 3338)
@@ -466,5 +466,7 @@
 				'sshot' 			=> '',
 				'score'				=> 0,
-				'type' 				=> null
+				'type' 				=> null,
+				'require'			=> array(),
+				'settings'			=> array()
 			),
 			# Module's values
@@ -744,5 +746,5 @@
 					if (!empty($more)) {
 						echo
-						'<li>'.implode(' - ', $more).'</li>';
+						'<li>'.implode(' - ',$more).'</li>';
 					}
 
@@ -752,12 +754,17 @@
 
 				$config = !empty($module['root']) && file_exists(path::real($module['root'].'/_config.php'));
-
-				if ($config || !empty($module['section']) || !empty($module['tags'])) {
+				$index = !empty($module['root']) && file_exists(path::real($module['root'].'/index.php'));
+
+				if ($config || $index || !empty($module['section']) || !empty($module['tags']) || !empty($module['settings'])) {
 					echo
 					'<div><ul class="mod-more">';
 
-					if ($config) {
-						echo
-						'<li><a class="module-config" href="'.$this->getURL('module='.$id.'&amp;conf=1').'">'.__('Configure plugin').'</a></li>';
+					if ($index && $module['enabled']) {
+						echo '<li><a href="'.$this->core->adminurl->get('admin.plugin.'.$id).'">'.__('Manage plugin').'</a></li>';
+					}
+
+					$settings = $this->getSettingsUrls($this->core,$id);
+					if (!empty($settings) && $module['enabled']) {
+						echo '<li>'.implode(' - ',$settings).'</li>';
 					}
 
@@ -806,4 +813,78 @@
 
 		return $this;
+	}
+
+	/**
+	 * Get settings URLs if any
+	 *
+	 * @param object $core
+	 * @param string $id module ID
+	 * @param boolean $check check permission
+	 * @param boolean $self include self URL (→ plugin index.php URL)
+	 * @return Array of settings URLs
+	 */
+	public static function getSettingsUrls($core,$id,$check=false,$self=true)
+	{
+		$st = array();
+
+		$config = !empty($core->plugins->moduleRoot($id)) &&
+			file_exists(path::real($core->plugins->moduleRoot($id).'/_config.php'));
+		$settings = $core->plugins->moduleInfo($id,'settings');
+		if ($config || !empty($settings)) {
+			if ($config) {
+				if (!$check ||
+					$core->auth->isSuperAdmin() ||
+					$core->auth->check($core->plugins->moduleInfo($id,'permissions'),$core->blog->id))
+				{
+					$params = array('module' => $id,'conf' => '1');
+					if (!$core->plugins->moduleInfo($id,'standalone_config') && !$self) {
+						$params['redir'] = $core->adminurl->get('admin.plugin.'.$id);
+					}
+					$st[] = '<a class="module-config" href="'.
+						$core->adminurl->get('admin.plugins',$params).
+						'">'.__('Configure plugin').'</a>';
+				}
+			}
+			if (is_array($settings)) {
+				foreach ($settings as $sk => $sv) {
+					switch ($sk) {
+						case 'blog':
+							if (!$check ||
+								$core->auth->isSuperAdmin() ||
+								$core->auth->check('admin',$core->blog->id))
+							{
+								$st[] = '<a class="module-config" href="'.
+									$core->adminurl->get('admin.blog.pref').$sv.
+									'">'.__('Plugin settings (in blog parameters)').'</a>';
+							}
+							break;
+						case 'pref':
+							if (!$check ||
+								$core->auth->isSuperAdmin() ||
+								$core->auth->check('usage,contentadmin',$core->blog->id))
+							{
+								$st[] = '<a class="module-config" href="'.
+									$core->adminurl->get('admin.user.preferences').$sv.
+									'">'.__('Plugin settings (in user preferences)').'</a>';
+							}
+							break;
+						case 'self':
+							if ($self) {
+								if (!$check ||
+									$core->auth->isSuperAdmin() ||
+									$core->auth->check($core->plugins->moduleInfo($id,'permissions'),$core->blog->id))
+								{
+									$st[] = '<a class="module-config" href="'.
+										$core->adminurl->get('admin.plugin.'.$id).$sv.
+										'">'.__('Plugin settings').'</a>';
+								}
+							}
+							break;
+					}
+				}
+			}
+		}
+
+		return $st;
 	}
 
Index: inc/admin/lib.themeconfig.php
===================================================================
--- inc/admin/lib.themeconfig.php	(revision 2660)
+++ inc/admin/lib.themeconfig.php	(revision 3340)
@@ -71,5 +71,5 @@
 
 		// Eval font size in em (assume base font size in pixels equal to 16)
-		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$size,$m)) {
+		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex|rem)?$/',$size,$m)) {
 			if (empty($m[2])) {
 				$m[2] = 'em';
@@ -144,5 +144,5 @@
 	public static function adjustFontSize($s)
 	{
-		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$s,$m)) {
+		if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex|rem)?$/',$s,$m)) {
 			if (empty($m[2])) {
 				$m[2] = 'em';
Index: inc/admin/prepend.php
===================================================================
--- inc/admin/prepend.php	(revision 3262)
+++ inc/admin/prepend.php	(revision 3334)
@@ -64,5 +64,5 @@
 }
 
-function addMenuItem($section,$desc,$adminurl,$icon,$perm)
+function addMenuItem($section,$desc,$adminurl,$icon,$perm,$pinned=false)
 {
 	global $core,$_menu;
@@ -70,5 +70,5 @@
 	$url = $core->adminurl->get($adminurl);
 	$_menu[$section]->prependItem($desc,$url,$icon,
-		preg_match('/'.preg_quote($url).'(\?.*)?$/',$_SERVER['REQUEST_URI']),$perm,null,null,true);
+		preg_match('/'.preg_quote($url).'(\?.*)?$/',$_SERVER['REQUEST_URI']),$perm,null,null,$pinned);
 }
 
@@ -278,5 +278,5 @@
 		$core->auth->check('usage,contentadmin',$core->blog->id));
 	addMenuItem('Blog',__('New entry'),'admin.post','images/menu/edit.png',
-		$core->auth->check('usage,contentadmin',$core->blog->id));
+		$core->auth->check('usage,contentadmin',$core->blog->id),true);
 
 	addMenuItem('System',__('Update'),'admin.update','images/menu/update.png',
Index: inc/core/class.dc.auth.php
===================================================================
--- inc/core/class.dc.auth.php	(revision 3298)
+++ inc/core/class.dc.auth.php	(revision 3340)
@@ -217,5 +217,5 @@
 		# Check here for user and IP address
 		$this->checkUser($_SESSION['sess_user_id']);
-		$uid = $uid ? $uid : http::browserUID(DC_MASTER_KEY);
+		$uid = $uid ?: http::browserUID(DC_MASTER_KEY);
 
 		$user_can_log = $this->userID() !== null && $uid == $_SESSION['sess_browser_uid'];
Index: inc/core/class.dc.blog.php
===================================================================
--- inc/core/class.dc.blog.php	(revision 3263)
+++ inc/core/class.dc.blog.php	(revision 3340)
@@ -1506,5 +1506,5 @@
 		$cur = $this->con->openCursor($this->prefix.'post');
 
-		$cur->cat_id = ($cat_id ? $cat_id : null);
+		$cur->cat_id = ($cat_id ?: null);
 		$cur->post_upddt = date('Y-m-d H:i:s');
 
@@ -1530,5 +1530,5 @@
 		$cur = $this->con->openCursor($this->prefix.'post');
 
-		$cur->cat_id = ($new_cat_id ? $new_cat_id : null);
+		$cur->cat_id = ($new_cat_id ?: null);
 		$cur->post_upddt = date('Y-m-d H:i:s');
 
Index: inc/core/class.dc.media.php
===================================================================
--- inc/core/class.dc.media.php	(revision 3299)
+++ inc/core/class.dc.media.php	(revision 3340)
@@ -393,5 +393,5 @@
 		}
 
-		$media_dir = $this->relpwd ? $this->relpwd : '.';
+		$media_dir = $this->relpwd ?: '.';
 
 		$strReq =
@@ -660,5 +660,5 @@
 	protected function rebuildDB($pwd)
 	{
-		$media_dir = $pwd ? $pwd : '.';
+		$media_dir = $pwd ?: '.';
 
 		$strReq =
@@ -919,5 +919,5 @@
 	public function getDBDirs()
 	{
-		$media_dir = $this->relpwd ? $this->relpwd : '.';
+		$media_dir = $this->relpwd ?: '.';
 
 		$strReq =
Index: inc/core/class.dc.modules.php
===================================================================
--- inc/core/class.dc.modules.php	(revision 3135)
+++ inc/core/class.dc.modules.php	(revision 3333)
@@ -283,5 +283,5 @@
 	(currently available keys : permissions, priority, type)
 	*/
-	public function registerModule($name,$desc,$author,$version, $properties = array())
+	public function registerModule($name,$desc,$author,$version,$properties = array())
 	{
 		if ($this->disabled_mode) {
@@ -320,5 +320,6 @@
 				'type' => null,
 				'enabled' => true,
-				'requires' => array()
+				'requires' => array(),
+				'settings' => array()
 			), $properties
 		);
Index: inc/core/class.dc.trackback.php
===================================================================
--- inc/core/class.dc.trackback.php	(revision 2674)
+++ inc/core/class.dc.trackback.php	(revision 3340)
@@ -171,5 +171,5 @@
 		$comment =
 		"<!-- TB -->\n".
-		'<p><strong>'.($title ? $title : $blog_name)."</strong></p>\n".
+		'<p><strong>'.($title ?: $blog_name)."</strong></p>\n".
 		'<p>'.$excerpt.'</p>';
 
Index: inc/core/class.dc.update.php
===================================================================
--- inc/core/class.dc.update.php	(revision 2566)
+++ inc/core/class.dc.update.php	(revision 3350)
@@ -104,14 +104,35 @@
 		{
 			$path = '';
-			$client = netHttp::initClient($this->url,$path);
-			if ($client !== false) {
-				$client->setTimeout(4);
-				$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
-				$client->get($path);
-
-				$this->readVersion($client->getContent());
-			}
-		}
-		catch (Exception $e) {}
+			$status = 0;
+
+			$http_get = function ($http_url) use (&$status,$path) {
+				$client = netHttp::initClient($http_url,$path);
+				if ($client !== false) {
+					$client->setTimeout(4);
+					$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
+					$client->get($path);
+					$status = (int) $client->getStatus();
+				}
+				return $client;
+			};
+
+			$client = $http_get($this->url);
+			if ($status >= 400) {
+				// If original URL uses HTTPS, try with HTTP
+				$url_parts = parse_url($client->getRequestURL());
+				if (isset($url_parts['scheme']) && $url_parts['scheme'] == 'https') {
+					// Replace https by http in url
+					$this->url = preg_replace('/^https(?=:\/\/)/i','http',$this->url);
+					$client = $http_get($this->url);
+				}
+			}
+			if (!$status || $status >= 400) {
+				throw new Exception();
+			}
+			$this->readVersion($client->getContent());
+		}
+		catch (Exception $e) {
+			return;
+		}
 
 		# Create cache
@@ -202,13 +223,32 @@
 		try
 		{
-			$client = netHttp::initClient($url,$path);
-			$client->setTimeout(4);
-			$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
-			$client->useGzip(false);
-			$client->setPersistReferers(false);
-			$client->setOutput($dest);
-			$client->get($path);
-
-			if ($client->getStatus() != 200) {
+			$path = '';
+			$status = 0;
+
+			$http_get = function ($http_url) use (&$status,$dest,$path) {
+				$client = netHttp::initClient($http_url,$path);
+				if ($client !== false) {
+					$client->setTimeout(4);
+					$client->setUserAgent($_SERVER['HTTP_USER_AGENT']);
+					$client->useGzip(false);
+					$client->setPersistReferers(false);
+					$client->setOutput($dest);
+					$client->get($path);
+					$status = (int) $client->getStatus();
+				}
+				return $client;
+			};
+
+			$client = $http_get($url);
+			if ($status >= 400) {
+				// If original URL uses HTTPS, try with HTTP
+				$url_parts = parse_url($client->getRequestURL());
+				if (isset($url_parts['scheme']) && $url_parts['scheme'] == 'https') {
+					// Replace https by http in url
+					$url = preg_replace('/^https(?=:\/\/)/i','http',$url);
+					$client = $http_get($url);
+				}
+			}
+			if ($status != 200) {
 				@unlink($dest);
 				throw new Exception();
Index: inc/dbschema/upgrade.php
===================================================================
--- inc/dbschema/upgrade.php	(revision 3314)
+++ inc/dbschema/upgrade.php	(revision 3326)
@@ -540,5 +540,5 @@
 		}
 
-		if (version_compare($version,'2.10','<='))
+		if (version_compare($version,'2.10','<'))
 		{
 			@unlink(DC_ROOT.'/'.'admin/js/jsUpload/vendor/jquery.ui.widget.js');
@@ -590,4 +590,17 @@
 		}
 
+		if (version_compare($version,'2.11','<'))
+		{
+			// Remove the CSP report file from it's old place
+			@unlink(DC_ROOT.'/admin/csp_report.txt');
+
+			# Some new settings should be initialized, prepare db queries
+			$strReq = 'INSERT INTO '.$core->prefix.'setting'.
+					' (setting_id,setting_ns,setting_value,setting_type,setting_label)'.
+					' VALUES(\'%s\',\'system\',\'%s\',\'%s\',\'%s\')';
+			$core->con->execute(
+				sprintf($strReq,'csp_admin_report_only',false,'boolean','CSP Report only violations (admin)'));
+		}
+
 		$core->setVersion('core',DC_VERSION);
 		$core->blogDefaults();
Index: inc/prepend.php
===================================================================
--- inc/prepend.php	(revision 3316)
+++ inc/prepend.php	(revision 3347)
@@ -142,5 +142,5 @@
 # Constants
 define('DC_ROOT',path::real(dirname(__FILE__).'/..'));
-define('DC_VERSION','2.10.2');
+define('DC_VERSION','2.11-dev');
 define('DC_DIGESTS',dirname(__FILE__).'/digests');
 define('DC_L10N_ROOT',dirname(__FILE__).'/../locales');
Index: inc/public/default-templates/dotty/_entry-content.html
===================================================================
--- inc/public/default-templates/dotty/_entry-content.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-content.html	(revision 3331)
@@ -6,5 +6,5 @@
 			<p class="post-info">
 				<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-				<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>. </span>
+				<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>. </span>
 				<span class="post-permalink"><a href="{{tpl:EntryURL}}">{{tpl:lang Permalink}}</a></span>
 				<tpl:EntryIf has_category="1">
Index: inc/public/default-templates/dotty/_entry-full.html
===================================================================
--- inc/public/default-templates/dotty/_entry-full.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-full.html	(revision 3331)
@@ -25,5 +25,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>.</span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>.</span>
 			<tpl:EntryIf has_category="1">
 			<span class="post-cat"><tpl:EntryCategoriesBreadcrumb><a
Index: inc/public/default-templates/dotty/_entry-short.html
===================================================================
--- inc/public/default-templates/dotty/_entry-short.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-short.html	(revision 3331)
@@ -44,5 +44,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>.</span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>.</span>
 			<tpl:EntryIf has_category="1">
 			<span class="post-cat"><tpl:EntryCategoriesBreadcrumb><a
Index: inc/public/default-templates/dotty/_entry-title.html
===================================================================
--- inc/public/default-templates/dotty/_entry-title.html	(revision 3289)
+++ inc/public/default-templates/dotty/_entry-title.html	(revision 3331)
@@ -19,5 +19,5 @@
 		<p class="post-info">
 			<span class="post-author">{{tpl:lang By}} {{tpl:EntryAuthorLink}}, </span>
-			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}" pubdate>{{tpl:EntryDate}}</time>. </span>
+			<span class="post-date"><time datetime="{{tpl:EntryDate iso8601="1"}}">{{tpl:EntryDate}}</time>. </span>
 			<tpl:EntryIf has_category="1">
 				<tpl:EntryCategoriesBreadcrumb>
Index: locales/fr/main.po
===================================================================
--- locales/fr/main.po	(revision 3275)
+++ locales/fr/main.po	(revision 3342)
@@ -908,4 +908,7 @@
 msgstr "Titre de l'entrée"
 
+msgid "Entry date"
+msgstr "Date de l'entrée"
+
 msgid "Author"
 msgstr "Auteur"
@@ -2228,4 +2231,13 @@
 msgstr "Afficher la barre d'outil des éditeurs en bas de la zone de saisie (si possible)"
 
+msgid "Use xhtml editor for:"
+msgstr "Utiliser l'éditeur xhtml pour :"
+
+msgid "Blog description (in blog parameters)"
+msgstr "La description du blog (paramètres du blog)"
+
+msgid "Category description"
+msgstr "La description des catégories"
+
 msgid "Other options"
 msgstr "Autres options"
@@ -2967,6 +2979,18 @@
 msgstr "Plugin de la distribution officielle"
 
+msgid "Manage plugin"
+msgstr "Gérer le plugin"
+
 msgid "Configure plugin"
 msgstr "Configurer le plugin"
+
+msgid "Plugin settings (in blog parameters)"
+msgstr "Réglages du plugin (paramètres du blog)"
+
+msgid "Plugin settings (in user preferences)"
+msgstr "Réglages du plugin (mes préférences)"
+
+msgid "Plugin settings"
+msgstr "Réglages du plugin"
 
 msgid "No plugins matched your search."
Index: locales/fr/plugins.po
===================================================================
--- locales/fr/plugins.po	(revision 3272)
+++ locales/fr/plugins.po	(revision 3330)
@@ -1300,4 +1300,16 @@
 msgstr "La suppression du répertoire du cache des templates peut se révéler nécessaire lors de modifications dans les fichiers .html ou .css d'un thème (voire lors d'un changement de thème ou de mise à jour de plugin). Attention : chez certains hébergeurs (Free par exemple), le cache du répertoire des templates ne peut pas être vidé grâce à l'extension Maintenance, il faut supprimer le répertoire <strong>cbtpl</strong> situé dans le répertoire cache (dotclear/cache par défaut) avec un logiciel FTP."
 
+msgid "Delete the Content-Security-Policy report file"
+msgstr "Supprimer le rapport de violation des Content-Security-Policy"
+
+msgid "Content-Security-Policy report file has been deleted."
+msgstr "Le rapport de violation des Content-Security-Policy a été supprimé."
+
+msgid "Failed to delete the Content-Security-Policy report file."
+msgstr "Impossible de supprimer le rapport de violation des Content-Security-Policy."
+
+msgid "Remove the Content-Security-Policy report file."
+msgstr "Supprime le rapport de violation des Content-Security-Policy."
+
 msgid "Count again comments and trackbacks"
 msgstr "Recompter les commentaires et rétroliens"
@@ -2428,2 +2440,5 @@
 msgid "Search:"
 msgstr "Recherche :"
+
+msgid "Widget's textareas"
+msgstr "Les zones de texte multilignes des widgets"
Index: locales/fr/public.po
===================================================================
--- locales/fr/public.po	(revision 3272)
+++ locales/fr/public.po	(revision 3321)
@@ -265,2 +265,11 @@
 msgid "By tag"
 msgstr "Par tag"
+
+msgid "Blog menu"
+msgstr "Menu"
+
+msgid "Etra menu"
+msgstr "Extra"
+
+msgid "Blog info"
+msgstr "Informations"
Index: plugins/antispam/_admin.php
===================================================================
--- plugins/antispam/_admin.php	(revision 2849)
+++ plugins/antispam/_admin.php	(revision 3333)
@@ -91,5 +91,5 @@
 		$ttl = $settings->antispam->antispam_moderation_ttl;
 		echo
-		'<div class="fieldset"><h4>Antispam</h4>'.
+		'<div class="fieldset"><h4 id="antispam_params">Antispam</h4>'.
 		'<p><label for="antispam_moderation_ttl" class="classic">'.__('Delete junk comments older than').' '.
 		form::field('antispam_moderation_ttl', 3, 3, $ttl).
Index: plugins/antispam/_define.php
===================================================================
--- plugins/antispam/_define.php	(revision 2566)
+++ plugins/antispam/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'priority' =>		10
+		'priority' =>		10,
+		'settings'	=>		array(
+								'self' => '',
+								'blog' => '#params.antispam_params'
+							)
 	)
 );
Index: plugins/blowupConfig/index.php
===================================================================
--- plugins/blowupConfig/index.php	(revision 2849)
+++ plugins/blowupConfig/index.php	(revision 3340)
@@ -318,5 +318,5 @@
 	'<h5 class="pretty-title">'.__('Top image').'</h5>'.
 	'<p class="field"><label for="top_image">'.__('Top image').'</label> '.
-	form::combo('top_image',$top_images,($blowup_user['top_image'] ? $blowup_user['top_image'] : 'default')).'</p>'.
+	form::combo('top_image',$top_images,($blowup_user['top_image'] ?: 'default')).'</p>'.
 	'<p>'.__('Choose "Custom..." to upload your own image.').'</p>'.
 
Index: plugins/breadcrumb/_admin.php
===================================================================
--- plugins/breadcrumb/_admin.php	(revision 3009)
+++ plugins/breadcrumb/_admin.php	(revision 3333)
@@ -25,5 +25,5 @@
 		$settings->addNameSpace('breadcrumb');
 		echo
-		'<div class="fieldset"><h4>'.__('Breadcrumb').'</h4>'.
+		'<div class="fieldset"><h4 id="breadcrumb_params">'.__('Breadcrumb').'</h4>'.
 		'<p><label class="classic">'.
 		form::checkbox('breadcrumb_enabled','1',$settings->breadcrumb->breadcrumb_enabled).
Index: plugins/breadcrumb/_define.php
===================================================================
--- plugins/breadcrumb/_define.php	(revision 3085)
+++ plugins/breadcrumb/_define.php	(revision 3333)
@@ -20,5 +20,8 @@
 	array(
 		/* Permissions */	'permissions' =>	'usage,contentadmin',
-		/* Type */			'type' =>			'plugin'
+		/* Type */			'type' =>			'plugin',
+		'settings'	=>		array(
+								'blog' => '#params.breadcrumb_params'
+							)
 	)
 );
Index: plugins/dcCKEditor/_define.php
===================================================================
--- plugins/dcCKEditor/_define.php	(revision 3090)
+++ plugins/dcCKEditor/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '',
+								'pref' => '#user-options.user_options_edition'
+							)
 	)
 );
Index: plugins/dcCKEditor/js/ckeditor/CHANGES.md
===================================================================
--- plugins/dcCKEditor/js/ckeditor/CHANGES.md	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/CHANGES.md	(revision 3339)
@@ -2,20 +2,27 @@
 ====================
 
-## CKEditor 4.6
-
-New Features:
-
-* [#12541](http://dev.ckeditor.com/ticket/12541): Added the [Upload File](http://ckeditor.com/addon/uploadfile) plugin.
-* [#13794](http://dev.ckeditor.com/ticket/13794): [Upload Image](http://ckeditor.com/addon/uploadimage) Use `uploaded.width/height` if set.
-* [#13829](http://dev.ckeditor.com/ticket/13829): Fixed: No class in [Widget](http://ckeditor.com/addon/widget) wrapper that would identify the widget type.
-* [#14449](http://dev.ckeditor.com/ticket/14449): Introduced the [Balloon Panel](http://ckeditor.com/addon/balloonpanel) plugin.
-* [#12077](https://dev.ckeditor.com/ticket/12077): Added support for the HTML5 `download` attribute in link (`<a>`) elements. Thanks to [sbusse](https://github.com/sbusse)!
-* [#13518](http://dev.ckeditor.com/ticket/13518): Introduced [`additionalRequestParameters`](http://docs.ckeditor.com/#!/api/CKEDITOR.fileTools.uploadWidgetDefinition-property-additionalRequestParameters) property.
-
-Fixed Issues:
-
-* [#14672](http://dev.ckeditor.com/ticket/14672): Fixed: Balloonpanel not blurred on close.
-* [#13828](http://dev.ckeditor.com/ticket/13828): Fixed: Widget classes should be added to wrapper rather than widget element.
-* [#13519](http://dev.ckeditor.com/ticket/13519): Response should be more flexible.
+## CKEditor 4.5.11
+
+**Security Updates:**
+
+* [Severity: minor] Fixed the target="_blank" vulnerability reported by James Gaskell.
+
+	Issue summary: If a victim had access to a spoofed version of ckeditor.com via HTTP (e.g. due to DNS spoofing, using a hacked public network or mailicious hotspot), then when using a link to the ckeditor.com website it was possible for the attacker to change the current URL of the opening page, even if the opening page was protected with SSL.
+
+  An upgrade is recommended.
+
+New Features:
+
+* [#14747](http://dev.ckeditor.com/ticket/14747): The [Enhanced Image](http://ckeditor.com/addon/image2) caption now supports the link `target` attribute.
+* [#7154](http://dev.ckeditor.com/ticket/7154): Added support for the "Display Text" field to the [Link](http://ckeditor.com/addon/link) dialog. Thanks to [Ryan Guill](https://github.com/ryanguill)!
+
+Fixed Issues:
+
+* [#13362](http://dev.ckeditor.com/ticket/13362): [Blink, WebKit] Fixed: Active widget element is not cached when it is losing focus and it is inside an editable element.
+* [#13755](http://dev.ckeditor.com/ticket/13755): [Edge] Fixed: Pasting images does not work.
+* [#13548](http://dev.ckeditor.com/ticket/13548): [IE] Fixed: Clicking the [elements path](http://ckeditor.com/addon/elementspath) disables Cut and Copy icons.
+* [#13812](http://dev.ckeditor.com/ticket/13812): Fixed: When aborting file upload the placeholder for image is left.
+* [#14659](http://dev.ckeditor.com/ticket/14659): [Blink] Fixed: Content scrolled to the top after closing the dialog in a [`<div>`-based editor](http://ckeditor.com/addon/divarea).
+* [#14825](http://dev.ckeditor.com/ticket/14825): [Edge] Fixed: Focusing the editor causes unwanted scrolling due to dropped support for the `setActive` method.
 
 ## CKEditor 4.5.10
@@ -23,11 +30,13 @@
 Fixed Issues:
 
-* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for image and placeholder widgets.
-* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting widget.
+* [#10750](http://dev.ckeditor.com/ticket/10750): Fixed: The editor does not escape the `font-style` family property correctly, removing quotes and whitespace from font names.
+* [#14413](http://dev.ckeditor.com/ticket/14413): Fixed: The [Auto Grow](http://ckeditor.com/addon/autogrow) plugin with the [`config.autoGrow_onStartup`](http://docs.ckeditor.com/#!/api/CKEDITOR.config-cfg-autoGrow_onStartup) option set to `true` does not work properly for an editor that is not visible.
+* [#14451](http://dev.ckeditor.com/ticket/14451): Fixed: Numeric element ID not escaped properly. Thanks to [Jakub Chalupa](https://github.com/chaluja7)!
+* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14539](https://dev.ckeditor.com/ticket/14539): Fixed: JAWS reads "selected Blank" instead of "selected <widget name>" when selecting a widget.
+* [#14701](http://dev.ckeditor.com/ticket/14701): Fixed: More precise labels for [Enhanced Image](http://ckeditor.com/addon/image2) and [Placeholder](http://ckeditor.com/addon/placeholder) widgets.
 * [#14667](http://dev.ckeditor.com/ticket/14667): [IE] Fixed: Removing background color from selected text removes background color from the whole paragraph.
-* [#14252](http://dev.ckeditor.com/ticket/14252): Fixed: Styles dropdown doesn't always reflect the current style of the text line in Internet Explorer.
-* [#13929](http://dev.ckeditor.com/ticket/13929): Fixed: Errors in console on IE11 with compatibility mode in manual test for [#13867](http://dev.ckeditor.com/ticket/13867).
-* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` not used in browsers it could have been when loading scripts dynamically.
-* [#14590](http://dev.ckeditor.com/ticket/14590): Fixed: Additional line break appearing after inline elements when switching modes. Thanks to [dpidcock](https://github.com/dpidcock)!
+* [#14252](http://dev.ckeditor.com/ticket/14252): [IE] Fixed: Styles drop-down list does not always reflect the current style of the text line.
+* [#14275](http://dev.ckeditor.com/ticket/14275): [IE9+] Fixed: `onerror` and `onload` events are not used in browsers it could have been used when loading scripts dynamically.
 
 ## CKEditor 4.5.9
@@ -44,4 +53,5 @@
 * [#13886](http://dev.ckeditor.com/ticket/13886): Fixed: Invalid handling of the [`CKEDITOR.style`](http://docs.ckeditor.com/#!/api/CKEDITOR.style) instance with the `styles` property by [`CKEDITOR.filter`](http://docs.ckeditor.com/#!/api/CKEDITOR.filter).
 * [#14535](http://dev.ckeditor.com/ticket/14535): Fixed: CSS syntax corrections. Thanks to [mdjdenormandie](https://github.com/mdjdenormandie)!
+* [#14312](http://dev.ckeditor.com/ticket/14312): [IE] Fixed: Artifact is visible after pasting any text.
 
 ## CKEditor 4.5.8
Index: plugins/dcCKEditor/js/ckeditor/ckeditor.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/ckeditor.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/ckeditor.js	(revision 3339)
@@ -47,5 +47,5 @@
 			// for each release and generated by the releaser.
 			// (Base 36 value of each component of YYMMDDHH - 4 chars total - e.g. 87bm == 08071122)
-			timestamp: 'G6IA',
+			timestamp: 'G889',
 
 			/**
@@ -54,5 +54,5 @@
 			 *		alert( CKEDITOR.version ); // e.g. 'CKEditor 3.4.1'
 			 */
-			version: '4.6.0',
+			version: '4.5.11',
 
 			/**
@@ -2327,8 +2327,8 @@
 
 		/**
-		 * Normalizes hexadecimal notation so that color string is always 6 characters long and lowercased.
-		 *
-		 * @param {String} styleText The style data (or just a string containing HEX colors) to be converted.
-		 * @returns {String} The style data with HEX colors normalized.
+		 * Normalizes hexadecimal notation so that the color string is always 6 characters long and lowercase.
+		 *
+		 * @param {String} styleText The style data (or just a string containing hex colors) to be converted.
+		 * @returns {String} The style data with hex colors normalized.
 		 */
 		normalizeHex: function( styleText ) {
@@ -2374,8 +2374,7 @@
 				if ( normalize ) {
 					name = name.toLowerCase();
-					// Normalize font-family property, ignore quotes and being case insensitive. (#7322)
-					// http://www.w3.org/TR/css3-fonts/#font-family-the-font-family-property
+					// Drop extra whitespacing from font-family.
 					if ( name == 'font-family' )
-						value = value.toLowerCase().replace( /["']/g, '' ).replace( /\s*,\s*/g, ',' );
+						value = value.replace( /\s*,\s*/g, ',' );
 					value = CKEDITOR.tools.trim( value );
 				}
@@ -2720,4 +2719,30 @@
 
 			return token;
+		},
+
+		/**
+		 * Returns an escaped CSS selector. `CSS.escape()` is used if defined, leading digit is escaped otherwise.
+		 *
+		 * @since 4.5.10
+		 * @param {String} selector A CSS selector to escape.
+		 * @returns {String} An escaped selector.
+		 */
+		escapeCss: function( selector ) {
+			// Invalid input.
+			if ( !selector ) {
+				return '';
+			}
+
+			// CSS.escape() can be used.
+			if ( window.CSS && CSS.escape ) {
+				return CSS.escape( selector );
+			}
+
+			// Simple leading digit escape.
+			if ( !isNaN( parseInt( selector.charAt( 0 ), 10 ) ) ) {
+				return '\\3' + selector.charAt( 0 ) + ' ' + selector.substring( 1, selector.length );
+			}
+
+			return selector;
 		}
 	};
@@ -6441,5 +6466,6 @@
 				quirks = doc.$.compatMode == 'BackCompat';
 
-			if ( document.documentElement.getBoundingClientRect ) {
+			if ( document.documentElement.getBoundingClientRect &&
+				( CKEDITOR.env.ie ? CKEDITOR.env.version !== 8 : true ) ) {
 				var box = this.$.getBoundingClientRect(),
 					$doc = doc.$,
@@ -6625,4 +6651,14 @@
 			}
 
+			// [WebKit] Reset stored scrollTop value to not break scrollIntoView() method flow.
+			// Scrolling breaks when range.select() is used right after element.scrollIntoView(). (#14659)
+			if ( CKEDITOR.env.webkit ) {
+				var editor = this.getEditor( false );
+
+				if ( editor ) {
+					editor._.previousScrollTop = null;
+				}
+			}
+
 			var win = parent.getWindow();
 
@@ -6904,9 +6940,16 @@
 		 *		alert( element.getEditor().name ); // 'editor1'
 		 *
+		 * By default this method considers only original DOM elements upon which the editor
+		 * was created. Setting `optimized` parameter to `false` will consider editor editable
+		 * and its children.
+		 *
+		 * @param {Boolean} [optimized=true] If set to `false` it will scan every editor editable.
 		 * @returns {CKEDITOR.editor} An editor instance or null if nothing has been found.
 		 */
-		getEditor: function() {
+		getEditor: function( optimized ) {
 			var instances = CKEDITOR.instances,
-				name, instance;
+				name, instance, editable;
+
+			optimized = optimized || optimized === undefined;
 
 			for ( name in instances ) {
@@ -6915,4 +6958,12 @@
 				if ( instance.element.equals( this ) && instance.elementMode != CKEDITOR.ELEMENT_MODE_APPENDTO )
 					return instance;
+
+				if ( !optimized ) {
+					editable = instance.editable();
+
+					if ( editable.equals( this ) || editable.contains( this ) ) {
+						return instance;
+					}
+				}
 			}
 
@@ -7037,5 +7088,6 @@
 
 	function getContextualizedSelector( element, selector ) {
-		return '#' + element.$.id + ' ' + selector.split( /,\s*/ ).join( ', #' + element.$.id + ' ' );
+		var id = CKEDITOR.tools.escapeCss( element.$.id );
+		return '#' + id + ' ' + selector.split( /,\s*/ ).join( ', #' + id + ' ' );
 	}
 
@@ -9024,5 +9076,6 @@
 		 * Expands the range so that partial units are completely contained.
 		 *
-		 * @param unit {Number} The unit type to expand with.
+		 * @param {Number} unit The unit type to expand with. Use one of following values: {@link CKEDITOR#ENLARGE_BLOCK_CONTENTS},
+		 * {@link CKEDITOR#ENLARGE_ELEMENT}, {@link CKEDITOR#ENLARGE_INLINE}, {@link CKEDITOR#ENLARGE_LIST_ITEM_CONTENTS}.
 		 * @param {Boolean} [excludeBrs=false] Whether include line-breaks when expanding.
 		 */
@@ -10592,4 +10645,51 @@
 		_setEndContainer: function( endContainer ) {
 			this.endContainer = endContainer;
+		},
+
+		/**
+		 * Looks for elements matching the `query` selector within a range.
+		 * 
+		 * @since 4.5.11
+		 * @private
+		 * @param {String} query
+		 * @param {Boolean} [includeNonEditables=false] Whether elements with `contenteditable` set to `false` should
+		 * be included.
+		 * @returns {CKEDITOR.dom.element[]}
+		 */
+		_find: function( query, includeNonEditables ) {
+			var ancestor = this.getCommonAncestor(),
+				boundaries = this.getBoundaryNodes(),
+				// Contrary to CKEDITOR.dom.element#find we're returning array, that's because NodeList is immutable, and we need
+				// to do some filtering in returned list.
+				ret = [],
+				curItem,
+				i,
+				initialMatches,
+				isStartGood,
+				isEndGood;
+
+			if ( ancestor && ancestor.find ) {
+				initialMatches = ancestor.find( query );
+
+				for ( i = 0; i < initialMatches.count(); i++ ) {
+					curItem = initialMatches.getItem( i );
+
+					// Using isReadOnly() method to filterout non editables. It checks isContentEditable including all browser quirks.
+					if ( !includeNonEditables && curItem.isReadOnly() ) {
+						continue;
+					}
+
+					// It's not enough to get elements from common ancestor, because it migth contain too many matches.
+					// We need to ensure that returned items are between boundary points.
+					isStartGood = ( curItem.getPosition( boundaries.startNode ) & CKEDITOR.POSITION_FOLLOWING ) || boundaries.startNode.equals( curItem );
+					isEndGood = ( curItem.getPosition( boundaries.endNode ) & ( CKEDITOR.POSITION_PRECEDING + CKEDITOR.POSITION_IS_CONTAINED ) );
+
+					if ( isStartGood && isEndGood ) {
+						ret.push( curItem );
+					}
+				}
+			}
+
+			return ret;
 		}
 	};
@@ -15117,8 +15217,6 @@
 
 					if ( callback ) {
-
-						// The onload or onerror event does not fire in IE8.
-						if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 ) {
-
+						// The onload or onerror event does not fire in IE8 and IE9 Quirks Mode (#14849).
+						if ( CKEDITOR.env.ie && ( CKEDITOR.env.version <= 8 || CKEDITOR.env.ie9Compat ) ) {
 							script.$.onreadystatechange = function() {
 								if ( script.$.readyState == 'loaded' || script.$.readyState == 'complete' ) {
@@ -22135,8 +22233,19 @@
 				}
 
-				// [IE] Use instead "setActive" method to focus the editable if it belongs to
-				// the host page document, to avoid bringing an unexpected scroll.
+				// [Edge] Starting from EdgeHTML 14.14393, it does not support `setActive`. We need to use focus which
+				// causes unexpected scroll. Store scrollTop value so it can be restored after focusing editor.
+				// Scroll only happens if the editor is focused for the first time. (#14825)
+				if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 && !this.hasFocus && this.getDocument().equals( CKEDITOR.document ) ) {
+					this.editor._.previousScrollTop = this.$.scrollTop;
+				}
+
+				// [IE] Use instead "setActive" method to focus the editable if it belongs to the host page document,
+				// to avoid bringing an unexpected scroll.
 				try {
-					this.$[ CKEDITOR.env.ie && this.getDocument().equals( CKEDITOR.document ) ? 'setActive' : 'focus' ]();
+					if ( CKEDITOR.env.ie && !( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) && this.getDocument().equals( CKEDITOR.document ) ) {
+						this.$.setActive();
+					} else {
+						this.$.focus();
+					}
 				} catch ( e ) {
 					// IE throws unspecified error when focusing editable after closing dialog opened on nested editable.
@@ -22926,4 +23035,28 @@
 				}, null, null, -1 );
 
+				if ( CKEDITOR.env.webkit ) {
+					// [WebKit] Save scrollTop value so it can be used when restoring locked selection. (#14659)
+					this.on( 'scroll', function() {
+						editor._.previousScrollTop = editor.editable().$.scrollTop;
+					}, null, null, -1 );
+				}
+
+				// [Edge] This is the other part of the workaround for Edge which restores saved
+				// scrollTop value and removes listener which is not needed anymore. (#14825)
+				if ( CKEDITOR.env.edge && CKEDITOR.env.version > 14 ) {
+
+					var fixScrollOnFocus = function() {
+						var editable = editor.editable();
+
+						if ( editor._.previousScrollTop != null && editable.getDocument().equals( CKEDITOR.document ) ) {
+							editable.$.scrollTop = editor._.previousScrollTop;
+							editor._.previousScrollTop = null;
+							this.removeListener( 'scroll', fixScrollOnFocus );
+						}
+					};
+
+					this.on( 'scroll', fixScrollOnFocus );
+				}
+
 				// Register to focus manager.
 				editor.focusManager.add( this );
@@ -25231,4 +25364,10 @@
 
 ( function() {
+	var isMSSelection = typeof window.getSelection != 'function',
+		nextRev = 1,
+		// #13816
+		fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
+		fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
+
 	// #### checkSelectionChange : START
 
@@ -25268,6 +25407,8 @@
 		var currentPath = this.elementPath();
 		if ( !currentPath.compare( this._.selectionPreviousPath ) ) {
+			// Handle case when dialog inserts new element but parent block and path (so also focus context) does not change. (#13362)
+			var sameBlockParent = this._.selectionPreviousPath && this._.selectionPreviousPath.blockLimit.equals( currentPath.blockLimit );
 			// Cache the active element, which we'll eventually lose on Webkit.
-			if ( CKEDITOR.env.webkit )
+			if ( CKEDITOR.env.webkit && !sameBlockParent )
 				this._.previousActive = this.document.getActive();
 
@@ -25463,5 +25604,5 @@
 	function hideSelection( editor, ariaLabel ) {
 		var content = ariaLabel || '&nbsp;',
-			style = CKEDITOR.env.ie ? 'display:none' : 'position:fixed;top:0;left:-1000px',
+			style = CKEDITOR.env.ie && CKEDITOR.env.version < 14 ? 'display:none' : 'position:fixed;top:0;left:-1000px',
 			hiddenEl = CKEDITOR.dom.element.createFromHtml(
 				'<div data-cke-hidden-sel="1" data-cke-temp="1" style="' + style + '">' + content + '</div>',
@@ -25767,6 +25908,14 @@
 				// to nested editable (or the opposite). Unlock selection all, but restore only when it was locked
 				// for the same active element, what will e.g. mean restoring after displaying dialog.
-				if ( restoreSel && CKEDITOR.env.webkit )
+				if ( restoreSel && CKEDITOR.env.webkit ) {
 					restoreSel = editor._.previousActive && editor._.previousActive.equals( doc.getActive() );
+
+					// On Webkit when editor uses divarea, native focus causes editable viewport to scroll
+					// to the top (when there is no active selection inside while focusing) so the scroll
+					// position should be restored after focusing back editable area. (#14659)
+					if ( restoreSel && editor._.previousScrollTop != null && editor._.previousScrollTop != editable.$.scrollTop ) {
+						editable.$.scrollTop = editor._.previousScrollTop;
+					}
+				}
 
 				editor.unlockSelection( restoreSel );
@@ -25838,4 +25987,7 @@
 				if ( doc.$.compatMode != 'BackCompat' ) {
 					if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat ) {
+						var textRng,
+							startRng;
+
 						html.on( 'mousedown', function( evt ) {
 							evt = evt.data;
@@ -25880,9 +26032,9 @@
 									evt.$.x < html.$.clientWidth ) {
 								// Start to build the text range.
-								var textRng = body.$.createTextRange();
+								textRng = body.$.createTextRange();
 								moveRangeToPoint( textRng, evt.$.clientX, evt.$.clientY );
 
 								// Records the dragging start of the above text range.
-								var startRng = textRng.duplicate();
+								startRng = textRng.duplicate();
 
 								html.on( 'mousemove', onHover );
@@ -26266,7 +26418,4 @@
 	 */
 	CKEDITOR.SELECTION_ELEMENT = 3;
-
-	var isMSSelection = typeof window.getSelection != 'function',
-		nextRev = 1;
 
 	/**
@@ -26370,8 +26519,4 @@
 			a: 1, input: 1, form: 1, select: 1, textarea: 1, button: 1, fieldset: 1, thead: 1, tfoot: 1 };
 
-	// #13816
-	var fillingCharSequence = CKEDITOR.tools.repeat( '\u200b', 7 ),
-		fillingCharSequenceRegExp = new RegExp( fillingCharSequence + '( )?', 'g' );
-
 	CKEDITOR.tools.extend( CKEDITOR.dom.selection, {
 		_removeFillingCharSequenceString: removeFillingCharSequenceString,
@@ -27182,5 +27327,5 @@
 		 *
 		 * @param {CKEDITOR.dom.element} element The element to be "selected".
-		 * @param {String} [ariaLabel] String to be used for screen reader to describe the selection.
+		 * @param {String} [ariaLabel] A string to be used by the screen reader to describe the selection.
 		 */
 		fake: function( element, ariaLabel ) {
@@ -29214,5 +29359,11 @@
 	// @param {Object/String} source
 	// @param {Object/String} target
+	// @returns {Boolean}
 	function compareCssText( source, target ) {
+		function filter( string, propertyName ) {
+			// In case of font-families we'll skip quotes. (#10750)
+			return propertyName.toLowerCase() == 'font-family' ? string.replace( /["']/g, '' ) : string;
+		}
+
 		if ( typeof source == 'string' )
 			source = CKEDITOR.tools.parseCssText( source );
@@ -29221,6 +29372,13 @@
 
 		for ( var name in source ) {
-			if ( !( name in target && ( target[ name ] == source[ name ] || source[ name ] == 'inherit' || target[ name ] == 'inherit' ) ) )
+			if ( !( name in target ) ) {
 				return false;
+			}
+
+			if ( !( filter( target[ name ], name ) == filter( source[ name ], name ) ||
+				source[ name ] == 'inherit' ||
+				target[ name ] == 'inherit' ) ) {
+				return false;
+			}
 		}
 		return true;
@@ -38354,5 +38512,6 @@
 		initPasteDataTransfer: function( evt, sourceEditor ) {
 			if ( !this.isCustomCopyCutSupported ) {
-				return new this.dataTransfer( null, sourceEditor );
+				// Edge does not support custom copy/cut, but it have some useful data in the clipboardData (#13755).
+				return new this.dataTransfer( ( CKEDITOR.env.edge && evt && evt.data.$ && evt.data.$.clipboardData ) || null, sourceEditor );
 			} else if ( evt && evt.data && evt.data.$ ) {
 				var dataTransfer = new this.dataTransfer( evt.data.$.clipboardData, sourceEditor );
@@ -38671,6 +38830,9 @@
 				this._.files = [];
 
-				for ( i = 0; i < this.$.files.length; i++ ) {
-					this._.files.push( this.$.files[ i ] );
+				// Edge have empty files property with no length (#13755).
+				if ( this.$.files && this.$.files.length ) {
+					for ( i = 0; i < this.$.files.length; i++ ) {
+						this._.files.push( this.$.files[ i ] );
+					}
 				}
 
@@ -41284,11 +41446,20 @@
 
 		function onClick( elementIndex ) {
-			var element = elementsPath.list[ elementIndex ];
+			var element = elementsPath.list[ elementIndex ],
+				selection;
+
 			if ( element.equals( editor.editable() ) || element.getAttribute( 'contenteditable' ) == 'true' ) {
 				var range = editor.createRange();
 				range.selectNodeContents( element );
-				range.select();
+
+				selection = range.select();
 			} else {
-				editor.getSelection().selectElement( element );
+				selection = editor.getSelection();
+				selection.selectElement( element );
+			}
+
+			// Explicitly fire selectionChange when clicking on an element path button. (#13548)
+			if ( CKEDITOR.env.ie ) {
+				editor.fire( 'selectionChange', { selection: selection, path: new CKEDITOR.dom.elementPath( element ) } );
 			}
 
@@ -45494,5 +45665,5 @@
 
 			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'advanced' ) )
-				allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type,download]{*}(*)' );
+				allowed = allowed.replace( ']', ',accesskey,charset,dir,id,lang,name,rel,tabindex,title,type]{*}(*)' );
 			if ( CKEDITOR.dialog.isTabEnabled( editor, 'link', 'target' ) )
 				allowed = allowed.replace( ']', ',target,onclick]' );
@@ -45969,9 +46140,4 @@
 				}
 
-				var download = element.getAttribute( 'download' );
-				if ( download !== null ) {
-					retval.download = true;
-				}
-
 				var advanced = {};
 
@@ -46113,9 +46279,4 @@
 			}
 
-			// Force download attribute.
-			if ( data.download ) {
-				set.download = '';
-			}
-
 			// Advanced attributes.
 			if ( data.advanced ) {
@@ -46139,6 +46300,5 @@
 				onclick: 1,
 				'data-cke-pa-onclick': 1,
-				'data-cke-saved-name': 1,
-				'download': 1
+				'data-cke-saved-name': 1
 			};
 
@@ -46154,4 +46314,34 @@
 				removed: CKEDITOR.tools.objectKeys( removed )
 			};
+		},
+
+		
+		/**
+		 * Determines whether an element should have a "Display Text" field in the Link dialog.
+		 *
+		 * @since 4.5.11 
+		 * @param {CKEDITOR.dom.element/null} element Selected element, `null` if none selected or if a ranged selection
+		 * is made.
+		 * @param {CKEDITOR.editor} editor The editor instance for which the check is performed.
+		 * @returns {Boolean}
+		 */
+		showDisplayTextForElement: function( element, editor ) {
+			var undesiredElements = {
+				img: 1,
+				table: 1,
+				tbody: 1,
+				thead: 1,
+				tfoot: 1,
+				input: 1,
+				select: 1,
+				textarea: 1
+			};
+
+			// Widget duck typing, we don't want to show display text for widgets.
+			if ( editor.widgets && editor.widgets.focused ) {
+				return false;
+			}
+
+			return !element || !element.getName || !element.is( undesiredElements );
 		}
 	};
@@ -47391,8 +47581,8 @@
 
 		/**
-		 * Adds one or more items from the specified definition array to the editor context menu.
+		 * Adds one or more items from the specified definition object to the editor context menu.
 		 *
 		 * @method
-		 * @param {Array} definitions List of definitions for each menu item as if {@link #addMenuItem} is called.
+		 * @param {Object} definitions Object where keys are used as itemName and corresponding values as definition for a {@link #addMenuItem} call.
 		 * @member CKEDITOR.editor
 		 */
@@ -54959,4 +55149,6 @@
 
 ( function() {
+	var framedWysiwyg;
+
 	CKEDITOR.plugins.add( 'wysiwygarea', {
 		init: function( editor ) {
@@ -55239,8 +55431,11 @@
 			// 2. On keyup remove all elements that were not marked
 			// as non-superfluous (which means they must have had appeared in the meantime).
+			// Also we should preserve all temporary elements inserted by editor – otherwise we'd likely
+			// leak fake selection's content into editable due to removing hidden selection container (#14831).
 			editable.attachListener( editable, 'keyup', function() {
 				var elements = doc.getElementsByTag( tagName );
 				if ( lockRetain ) {
-					if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) ) {
+					if ( elements.count() == 1 && !elements.getItem( 0 ).getCustomData( 'retain' ) &&
+						!elements.getItem( 0 ).hasAttribute( 'data-cke-temp' ) ) {
 						elements.getItem( 0 ).remove( 1 );
 					}
@@ -55251,5 +55446,5 @@
 	}
 
-	var framedWysiwyg = CKEDITOR.tools.createClass( {
+	framedWysiwyg = CKEDITOR.tools.createClass( {
 		$: function() {
 			this.base.apply( this, arguments );
Index: plugins/dcCKEditor/js/ckeditor/lang/af.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/af.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/af.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Karakterstel van geskakelde bron',
     	cssClasses : 'CSS klasse',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posadres',
     	emailBody : 'Berig-inhoud',
Index: plugins/dcCKEditor/js/ckeditor/lang/ar.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ar.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ar.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ترميز المادة المطلوبة',
     	cssClasses : 'فئات التنسيق',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'البريد الإلكتروني',
     	emailBody : 'محتوى الرسالة',
Index: plugins/dcCKEditor/js/ckeditor/lang/bg.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bg.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bg.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Тип на свързания ресурс',
     	cssClasses : 'Класове за CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mail aдрес',
     	emailBody : 'Съдържание',
Index: plugins/dcCKEditor/js/ckeditor/lang/bn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'লিংক রিসোর্স ক্যারেক্টর সেট',
     	cssClasses : 'স্টাইল-শীট ক্লাস',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ইমেইল ঠিকানা',
     	emailBody : 'মেসেজের দেহ',
Index: plugins/dcCKEditor/js/ckeditor/lang/bs.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/bs.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/bs.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Klase CSS stilova',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Adresa',
     	emailBody : 'Poruka',
Index: plugins/dcCKEditor/js/ckeditor/lang/ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Conjunt de caràcters font enllaçat',
     	cssClasses : 'Classes del full d\'estil',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Adreça de correu electrònic',
     	emailBody : 'Cos del missatge',
Index: plugins/dcCKEditor/js/ckeditor/lang/cs.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/cs.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/cs.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Přiřazená znaková sada',
     	cssClasses : 'Třída stylu',
-    	download : 'Force Download',
+    	displayText : 'Zobrazit text',
     	emailAddress : 'E-mailová adresa',
     	emailBody : 'Tělo zprávy',
Index: plugins/dcCKEditor/js/ckeditor/lang/cy.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/cy.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/cy.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Set Nodau\'r Adnodd Cysylltiedig',
     	cssClasses : 'Dosbarthiadau Dalen Arddull',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Cyfeiriad E-Bost',
     	emailBody : 'Corff y Neges',
Index: plugins/dcCKEditor/js/ckeditor/lang/da.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/da.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/da.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Tegnsæt',
     	cssClasses : 'Typografiark',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mailadresse',
     	emailBody : 'Besked',
Index: plugins/dcCKEditor/js/ckeditor/lang/de-ch.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/de-ch.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/de-ch.js	(revision 3339)
@@ -205,4 +205,5 @@
     	charset : 'Verknüpfter Ressourcenzeichensatz',
     	cssClasses : 'Formatvorlagenklasse',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail-Adresse',
     	emailBody : 'Nachrichtentext',
@@ -247,6 +248,5 @@
     	type : 'Link-Typ',
     	unlink : 'Link entfernen',
-    	upload : 'Hochladen',
-    	download : 'Force Download'
+    	upload : 'Hochladen'
     },
     justify : 
Index: plugins/dcCKEditor/js/ckeditor/lang/de.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/de.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/de.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Verknüpfter Ressourcenzeichensatz',
     	cssClasses : 'Formatvorlagenklasse',
-    	download : 'Download erzwingen',
+    	displayText : 'Anzeigetext',
     	emailAddress : 'E-Mail-Adresse',
     	emailBody : 'Nachrichtentext',
Index: plugins/dcCKEditor/js/ckeditor/lang/el.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/el.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/el.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Κωδικοποίηση Χαρακτήρων Προσαρτημένης Πηγής',
     	cssClasses : 'Κλάσεις Φύλλων Στυλ',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Διεύθυνση E-mail',
     	emailBody : 'Κείμενο Μηνύματος',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-au.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-au.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-au.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en-gb.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en-gb.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en-gb.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/en.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/en.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/en.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/eo.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/eo.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/eo.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Signaro de la Ligita Rimedo',
     	cssClasses : 'Klasoj de Stilfolioj',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Retpoŝto',
     	emailBody : 'Mesaĝa korpo',
Index: plugins/dcCKEditor/js/ckeditor/lang/es.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/es.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/es.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Fuente de caracteres vinculado',
     	cssClasses : 'Clases de hojas de estilo',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Dirección de E-Mail',
     	emailBody : 'Cuerpo del Mensaje',
Index: plugins/dcCKEditor/js/ckeditor/lang/et.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/et.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/et.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lingitud ressursi märgistik',
     	cssClasses : 'Stiilistiku klassid',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posti aadress',
     	emailBody : 'Sõnumi tekst',
Index: plugins/dcCKEditor/js/ckeditor/lang/eu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/eu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/eu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Estekatutako baliabide karaktere-jokoa',
     	cssClasses : 'Estilo-orriko klaseak',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-posta helbidea',
     	emailBody : 'Mezuaren gorputza',
Index: plugins/dcCKEditor/js/ckeditor/lang/fa.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fa.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fa.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'نویسه\u200bگان منبع پیوند شده',
     	cssClasses : 'کلاس\u200bهای شیوه\u200bنامه(Stylesheet)',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'نشانی پست الکترونیکی',
     	emailBody : 'متن پیام',
Index: plugins/dcCKEditor/js/ckeditor/lang/fi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linkitetty kirjaimisto',
     	cssClasses : 'Tyyliluokat',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Sähköpostiosoite',
     	emailBody : 'Viesti',
Index: plugins/dcCKEditor/js/ckeditor/lang/fo.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fo.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fo.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Atknýtt teknsett',
     	cssClasses : 'Typografi klassar',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Teldupost-adressa',
     	emailBody : 'Breyðtekstur',
Index: plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fr-ca.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Encodage de la cible',
     	cssClasses : 'Classes CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Courriel',
     	emailBody : 'Corps du message',
Index: plugins/dcCKEditor/js/ckeditor/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/fr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/fr.js	(revision 3339)
@@ -17,5 +17,5 @@
     		document : 'Document',
     		clipboard : 'Presse-papier/Défaire',
-    		editing : 'Editer',
+    		editing : 'Édition',
     		forms : 'Formulaires',
     		basicstyles : 'Styles de base',
@@ -27,5 +27,5 @@
     		tools : 'Outils'
     	},
-    	toolbars : 'Barre d\'outils de l\'éditeur'
+    	toolbars : 'Barres d\'outils de l\'éditeur'
     },
     templates : 
@@ -35,5 +35,5 @@
     	insertOption : 'Remplacer le contenu actuel',
     	options : 'Options des modèles',
-    	selectPromptMsg : 'Veuillez sélectionner le modèle pour l\'ouvrir dans l\'éditeur',
+    	selectPromptMsg : 'Veuillez sélectionner le modèle à ouvrir dans l\'éditeur',
     	title : 'Contenu des modèles'
     },
@@ -49,33 +49,33 @@
     		deleteCell : 'Supprimer les cellules',
     		merge : 'Fusionner les cellules',
-    		mergeRight : 'Fusionner à droite',
-    		mergeDown : 'Fusionner en bas',
-    		splitHorizontal : 'Fractionner horizontalement',
-    		splitVertical : 'Fractionner verticalement',
+    		mergeRight : 'Fusionner vers la droite',
+    		mergeDown : 'Fusionner vers le bas',
+    		splitHorizontal : 'Scinder la cellule horizontalement',
+    		splitVertical : 'Scinder la cellule verticalement',
     		title : 'Propriétés de la cellule',
     		cellType : 'Type de cellule',
-    		rowSpan : 'Fusion de lignes',
-    		colSpan : 'Fusion de colonnes',
+    		rowSpan : 'Lignes occupées',
+    		colSpan : 'Colonnes occupées',
     		wordWrap : 'Césure',
-    		hAlign : 'Alignement Horizontal',
-    		vAlign : 'Alignement Vertical',
-    		alignBaseline : 'Bas du texte',
+    		hAlign : 'Alignement horizontal',
+    		vAlign : 'Alignement vertical',
+    		alignBaseline : 'Ligne de base',
     		bgColor : 'Couleur d\'arrière-plan',
-    		borderColor : 'Couleur de Bordure',
+    		borderColor : 'Couleur de bordure',
     		data : 'Données',
-    		header : 'Entête',
+    		header : 'En-tête',
     		yes : 'Oui',
     		no : 'Non',
-    		invalidWidth : 'La Largeur de Cellule doit être un nombre.',
-    		invalidHeight : 'La Hauteur de Cellule doit être un nombre.',
-    		invalidRowSpan : 'La fusion de lignes doit être un nombre entier.',
-    		invalidColSpan : 'La fusion de colonnes doit être un nombre entier.',
-    		chooseColor : 'Choisissez'
+    		invalidWidth : 'La largeur de la cellule doit être un nombre.',
+    		invalidHeight : 'La hauteur de la cellule doit être un nombre.',
+    		invalidRowSpan : 'Le nombre de colonnes occupées doit être un nombre entier.',
+    		invalidColSpan : 'Le nombre de colonnes occupées doit être un nombre entier.',
+    		chooseColor : 'Choisir'
     	},
     	cellPad : 'Marge interne des cellules',
-    	cellSpace : 'Espacement des cellules',
+    	cellSpace : 'Espacement entre les cellules',
     	column : 
     	{
-    		menu : 'Colonnes',
+    		menu : 'Colonne',
     		insertBefore : 'Insérer une colonne avant',
     		insertAfter : 'Insérer une colonne après',
@@ -84,12 +84,12 @@
     	columns : 'Colonnes',
     	deleteTable : 'Supprimer le tableau',
-    	headers : 'En-Têtes',
+    	headers : 'En-têtes',
     	headersBoth : 'Les deux',
     	headersColumn : 'Première colonne',
-    	headersNone : 'Aucunes',
+    	headersNone : 'Aucun',
     	headersRow : 'Première ligne',
     	invalidBorder : 'La taille de la bordure doit être un nombre.',
-    	invalidCellPadding : 'La marge intérieure des cellules doit être un nombre positif.',
-    	invalidCellSpacing : 'L\'espacement des cellules doit être un nombre positif.',
+    	invalidCellPadding : 'La marge interne des cellules doit être un nombre positif.',
+    	invalidCellSpacing : 'L\'espacement entre les cellules doit être un nombre positif.',
     	invalidCols : 'Le nombre de colonnes doit être supérieur à 0.',
     	invalidHeight : 'La hauteur du tableau doit être un nombre.',
@@ -108,5 +108,5 @@
     	title : 'Propriétés du tableau',
     	toolbar : 'Tableau',
-    	widthPc : '% pourcents',
+    	widthPc : 'pour cent',
     	widthPx : 'pixels',
     	widthUnit : 'unité de largeur'
@@ -115,6 +115,6 @@
     {
     	label : 'Styles',
-    	panelTitle : 'Styles de mise en page',
-    	panelTitle1 : 'Styles de blocs',
+    	panelTitle : 'Styles de mise en forme',
+    	panelTitle1 : 'Styles de bloc',
     	panelTitle2 : 'Styles en ligne',
     	panelTitle3 : 'Styles d\'objet'
@@ -123,5 +123,5 @@
     {
     	options : 'Options des caractères spéciaux',
-    	title : 'Sélectionnez un caractère',
+    	title : 'Sélectionner un caractère',
     	toolbar : 'Insérer un caractère spécial'
     },
@@ -140,11 +140,11 @@
     pastetext : 
     {
-    	button : 'Coller comme texte sans mise en forme',
-    	title : 'Coller comme texte sans mise en forme'
+    	button : 'Coller comme texte brut',
+    	title : 'Coller comme texte brut'
     },
     pastefromword : 
     {
-    	confirmCleanup : 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?',
-    	error : 'Il n\'a pas été possible de nettoyer les données collées à la suite d\'une erreur interne.',
+    	confirmCleanup : 'Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller ?',
+    	error : 'Les données collées n\'ont pas pu être nettoyées à cause d\'une erreur interne',
     	title : 'Coller depuis Word',
     	toolbar : 'Coller depuis Word'
@@ -153,9 +153,9 @@
     {
     	maximize : 'Agrandir',
-    	minimize : 'Minimiser'
+    	minimize : 'Réduire'
     },
     magicline : 
     {
-    	title : 'Insérez un paragraphe ici'
+    	title : 'Insérer un paragraphe ici'
     },
     liststyle : 
@@ -168,21 +168,21 @@
     	disc : 'Disque',
     	georgian : 'Numération géorgienne (an, ban, gan, etc.)',
-    	lowerAlpha : 'Alphabétique minuscules (a, b, c, d, e, etc.)',
-    	lowerGreek : 'Grec minuscule (alpha, beta, gamma, etc.)',
-    	lowerRoman : 'Nombres romains minuscules (i, ii, iii, iv, v, etc.)',
+    	lowerAlpha : 'Lettres minuscules (a, b, c, d, e, etc.)',
+    	lowerGreek : 'Grec minuscule (alpha, bêta, gamma, etc.)',
+    	lowerRoman : 'Chiffres romains minuscules (i, ii, iii, iv, v, etc.)',
     	none : 'Aucun',
-    	notset : '<Non défini>',
+    	notset : '<indéfini>',
     	numberedTitle : 'Propriétés de la liste numérotée',
     	square : 'Carré',
     	start : 'Début',
     	type : 'Type',
-    	upperAlpha : 'Alphabétique majuscules (A, B, C, D, E, etc.)',
-    	upperRoman : 'Nombres romains majuscules (I, II, III, IV, V, etc.)',
+    	upperAlpha : 'Lettres majuscules (A, B, C, D, E, etc.)',
+    	upperRoman : 'Chiffres romains majuscules (I, II, III, IV, V, etc.)',
     	validateStartNumber : 'Le premier élément de la liste doit être un nombre entier.'
     },
     list : 
     {
-    	bulletedlist : 'Insérer/Supprimer la liste à puces',
-    	numberedlist : 'Insérer/Supprimer la liste numérotée'
+    	bulletedlist : 'Insérer/Supprimer une liste à puces',
+    	numberedlist : 'Insérer/Supprimer une liste numérotée'
     },
     link : 
@@ -190,10 +190,10 @@
     	acccessKey : 'Touche d\'accessibilité',
     	advanced : 'Avancé',
-    	advisoryContentType : 'Type de contenu (ex: text/html)',
-    	advisoryTitle : 'Description (title)',
+    	advisoryContentType : 'Type de contenu (indicatif)',
+    	advisoryTitle : 'Infobulle',
     	anchor : 
     	{
     		toolbar : 'Ancre',
-    		menu : 'Editer l\'ancre',
+    		menu : 'Modifier l\'ancre',
     		title : 'Propriétés de l\'ancre',
     		name : 'Nom de l\'ancre',
@@ -203,50 +203,50 @@
     	anchorId : 'Par ID d\'élément',
     	anchorName : 'Par nom d\'ancre',
-    	charset : 'Charset de la cible',
-    	cssClasses : 'Classe CSS',
-    	download : 'Force Download',
-    	emailAddress : 'Adresse E-Mail',
+    	charset : 'Encodage de la ressource liée',
+    	cssClasses : 'Classes de style',
+    	displayText : 'Display Text',
+    	emailAddress : 'Adresse électronique',
     	emailBody : 'Corps du message',
     	emailSubject : 'Sujet du message',
-    	id : 'Id',
-    	info : 'Infos sur le lien',
+    	id : 'ID',
+    	info : 'Informations sur le lien',
     	langCode : 'Code de langue',
     	langDir : 'Sens d\'écriture',
     	langDirLTR : 'Gauche à droite',
-    	langDirRTL : 'Droite à gauche',
-    	menu : 'Editer le lien',
+    	langDirRTL : 'Droite à gauche (RTL)',
+    	menu : 'Modifier le lien',
     	name : 'Nom',
     	noAnchors : '(Aucune ancre disponible dans ce document)',
-    	noEmail : 'Veuillez entrer l\'adresse e-mail',
-    	noUrl : 'Veuillez entrer l\'adresse du lien',
+    	noEmail : 'Veuillez entrer l\'adresse électronique',
+    	noUrl : 'Veuillez entrer l\'URL du lien',
     	other : '<autre>',
     	popupDependent : 'Dépendante (Netscape)',
-    	popupFeatures : 'Options de la fenêtre popup',
+    	popupFeatures : 'Caractéristiques de la fenêtre surgissante',
     	popupFullScreen : 'Plein écran (IE)',
-    	popupLeft : 'Position gauche',
+    	popupLeft : 'À gauche',
     	popupLocationBar : 'Barre d\'adresse',
     	popupMenuBar : 'Barre de menu',
     	popupResizable : 'Redimensionnable',
     	popupScrollBars : 'Barres de défilement',
-    	popupStatusBar : 'Barre de status',
+    	popupStatusBar : 'Barre d\'état',
     	popupToolbar : 'Barre d\'outils',
-    	popupTop : 'Position haute',
+    	popupTop : 'En haut',
     	rel : 'Relation',
-    	selectAnchor : 'Sélectionner l\'ancre',
+    	selectAnchor : 'Sélectionner une ancre',
     	styles : 'Style',
-    	tabIndex : 'Index de tabulation',
+    	tabIndex : 'Indice de tabulation',
     	target : 'Cible',
     	targetFrame : '<cadre>',
-    	targetFrameName : 'Nom du Cadre destination',
-    	targetPopup : '<fenêtre popup>',
-    	targetPopupName : 'Nom de la fenêtre popup',
+    	targetFrameName : 'Nom du cadre affecté',
+    	targetPopup : '<fenêtre surgissante>',
+    	targetPopupName : 'Nom de la fenêtre surgissante',
     	title : 'Lien',
     	toAnchor : 'Ancre',
-    	toEmail : 'E-mail',
+    	toEmail : 'Courriel',
     	toUrl : 'URL',
     	toolbar : 'Lien',
     	type : 'Type de lien',
     	unlink : 'Supprimer le lien',
-    	upload : 'Envoyer'
+    	upload : 'Téléverser'
     },
     justify : 
@@ -259,28 +259,28 @@
     indent : 
     {
-    	indent : 'Augmenter le retrait (tabulation)',
-    	outdent : 'Diminuer le retrait (tabulation)'
+    	indent : 'Augmenter le retrait',
+    	outdent : 'Diminuer le retrait'
     },
     image : 
     {
-    	alt : 'Texte de remplacement',
+    	alt : 'Texte alternatif',
     	border : 'Bordure',
     	btnUpload : 'Envoyer sur le serveur',
-    	button2Img : 'Voulez-vous transformer le bouton image sélectionné en simple image?',
+    	button2Img : 'Voulez-vous transformer le bouton avec image sélectionné en simple image ?',
     	hSpace : 'Espacement horizontal',
-    	img2Button : 'Voulez-vous transformer l\'image en bouton image?',
+    	img2Button : 'Voulez-vous transformer l\'image sélectionnée en bouton avec image ?',
     	infoTab : 'Informations sur l\'image',
     	linkTab : 'Lien',
     	lockRatio : 'Conserver les proportions',
     	menu : 'Propriétés de l\'image',
-    	resetSize : 'Taille d\'origine',
+    	resetSize : 'Réinitialiser la taille',
     	title : 'Propriétés de l\'image',
-    	titleButton : 'Propriétés du bouton image',
-    	upload : 'Envoyer',
-    	urlMissing : 'L\'adresse source de l\'image est manquante.',
+    	titleButton : 'Propriétés du bouton avec image',
+    	upload : 'Téléverser',
+    	urlMissing : 'L\'URL source de l\'image est manquante.',
     	vSpace : 'Espacement vertical',
-    	validateBorder : 'Bordure doit être un entier.',
-    	validateHSpace : 'HSpace doit être un entier.',
-    	validateVSpace : 'VSpace doit être un entier.'
+    	validateBorder : 'La bordure doit être un nombre entier.',
+    	validateHSpace : 'L\'espacement horizontal doit être un nombre entier.',
+    	validateVSpace : 'L\'espacement vertical doit être un nombre entier.'
     },
     horizontalrule : 
@@ -293,5 +293,5 @@
     	panelTitle : 'Format de paragraphe',
     	tag_address : 'Adresse',
-    	tag_div : 'Normal (DIV)',
+    	tag_div : 'Division',
     	tag_h1 : 'Titre 1',
     	tag_h2 : 'Titre 2',
@@ -301,5 +301,5 @@
     	tag_h6 : 'Titre 6',
     	tag_p : 'Normal',
-    	tag_pre : 'Formaté'
+    	tag_pre : 'Préformaté'
     },
     fakeobjects : 
@@ -307,19 +307,19 @@
     	anchor : 'Ancre',
     	flash : 'Animation Flash',
-    	hiddenfield : 'Champ caché',
-    	iframe : 'IFrame',
+    	hiddenfield : 'Champ invisible',
+    	iframe : 'Cadre de contenu incorporé',
     	unknown : 'Objet inconnu'
     },
     elementspath : 
     {
-    	eleLabel : 'Elements path',
-    	eleTitle : '%1 éléments'
+    	eleLabel : 'Chemin des éléments',
+    	eleTitle : 'Élément %1'
     },
     div : 
     {
-    	IdInputLabel : 'Id',
-    	advisoryTitleInputLabel : 'Advisory Title',
-    	cssClassInputLabel : 'Classe CSS',
-    	edit : 'Éditer la DIV',
+    	IdInputLabel : 'ID',
+    	advisoryTitleInputLabel : 'Infobulle',
+    	cssClassInputLabel : 'Classes de style',
+    	edit : 'Modifier la division',
     	inlineStyleInputLabel : 'Style en ligne',
     	langDirLTRLabel : 'Gauche à droite (LTR)',
@@ -327,8 +327,8 @@
     	langDirRTLLabel : 'Droite à gauche (RTL)',
     	languageCodeInputLabel : 'Code de langue',
-    	remove : 'Enlever la DIV',
+    	remove : 'Enlever la division',
     	styleSelectLabel : 'Style',
-    	title : 'Créer un container DIV',
-    	toolbar : 'Créer un container DIV'
+    	title : 'Créer une division',
+    	toolbar : 'Créer une division'
     },
     contextmenu : 
@@ -339,11 +339,11 @@
     {
     	auto : 'Automatique',
-    	bgColorTitle : 'Couleur d\'arrière plan',
+    	bgColorTitle : 'Couleur d\'arrière-plan',
     	colors : 
     	{
     		'000' : 'Noir',
     		'800000' : 'Marron',
-    		'8B4513' : 'Brun moyen',
-    		'2F4F4F' : 'Vert sombre',
+    		'8B4513' : 'Brun de selle',
+    		'2F4F4F' : 'Gris sombre d\'ardoise',
     		'008080' : 'Canard',
     		'000080' : 'Bleu marine',
@@ -356,5 +356,5 @@
     		'40E0D0' : 'Turquoise',
     		'0000CD' : 'Bleu royal',
-    		'800080' : 'Pourpre',
+    		'800080' : 'Violet',
     		'808080' : 'Gris',
     		F00 : 'Rouge',
@@ -365,6 +365,6 @@
     		'00F' : 'Bleu',
     		EE82EE : 'Violet',
-    		A9A9A9 : 'Gris moyen',
-    		FFA07A : 'Saumon',
+    		A9A9A9 : 'Gris tamisé',
+    		FFA07A : 'Saumon clair',
     		FFA500 : 'Orange',
     		FFFF00 : 'Jaune',
@@ -374,8 +374,8 @@
     		DDA0DD : 'Prune',
     		D3D3D3 : 'Gris clair',
-    		FFF0F5 : 'Fard Lavande',
+    		FFF0F5 : 'Fard lavande',
     		FAEBD7 : 'Blanc antique',
     		FFFFE0 : 'Jaune clair',
-    		F0FFF0 : 'Honeydew',
+    		F0FFF0 : 'Vert rosée',
     		F0FFFF : 'Azur',
     		F0F8FF : 'Bleu Alice',
@@ -385,16 +385,16 @@
     	more : 'Plus de couleurs...',
     	panelTitle : 'Couleurs',
-    	textColorTitle : 'Couleur de texte'
+    	textColorTitle : 'Couleur du texte'
     },
     clipboard : 
     {
     	copy : 'Copier',
-    	copyError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement des opérations de copie. Veuillez utiliser le raccourci clavier (Ctrl/Cmd+C).',
+    	copyError : 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Copier ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+C).',
     	cut : 'Couper',
-    	cutError : 'Les paramètres de sécurité de votre navigateur ne permettent pas à l\'éditeur d\'exécuter automatiquement l\'opération "couper". Veuillez utiliser le raccourci clavier (Ctrl/Cmd+X).',
+    	cutError : 'Les paramètres de sécurité de votre navigateur n\'autorisent pas l\'éditeur à exécuter automatiquement l\'opération « Couper ». Veuillez utiliser le raccourci clavier à cet effet (Ctrl/Cmd+X).',
     	paste : 'Coller',
     	pasteArea : 'Coller la zone',
     	pasteMsg : 'Veuillez coller le texte dans la zone suivante en utilisant le raccourci clavier (<strong>Ctrl/Cmd+V</strong>) et cliquez sur OK.',
-    	securityMsg : 'A cause des paramètres de sécurité de votre navigateur, l\'éditeur n\'est pas en mesure d\'accéder directement à vos données contenues dans le presse-papier. Vous devriez réessayer de coller les données dans la fenêtre.',
+    	securityMsg : 'Les paramètres de sécurité de votre navigateur empêchent l\'éditeur d\'accéder directement aux données du presse-papier. Vous devez les coller à nouveau dans cette fenêtre.',
     	title : 'Coller'
     },
@@ -420,18 +420,18 @@
     	copy : 'Copyright &copy; $1. Tous droits réservés.',
     	dlgTitle : 'À propos de CKEditor',
-    	help : 'Consulter $1 pour l\'aide.',
-    	moreInfo : 'Pour les informations de licence, veuillez visiter notre site web:',
+    	help : 'Consulter $1 pour obtenir de l\'aide.',
+    	moreInfo : 'Pour les informations de licence, veuillez visiter notre site web :',
     	title : 'À propos de CKEditor',
-    	userGuide : 'Guide de l\'utilisateur CKEditor en anglais'
-    },
-    editor : 'Éditeur de Texte Enrichi',
+    	userGuide : 'Guide de l\'utilisateur CKEditor (en anglais)'
+    },
+    editor : 'Éditeur de texte enrichi',
     editorPanel : 'Tableau de bord de l\'éditeur de texte enrichi',
     common : 
     {
-    	editorHelp : 'Appuyez sur ALT-0 pour l\'aide',
-    	browseServer : 'Explorer le serveur',
+    	editorHelp : 'Utilisez le raccourci Alt-0 pour obtenir de l\'aide',
+    	browseServer : 'Parcourir le serveur',
     	url : 'URL',
     	protocol : 'Protocole',
-    	upload : 'Télécharger',
+    	upload : 'Téléverser',
     	uploadSubmit : 'Envoyer sur le serveur',
     	image : 'Image',
@@ -439,13 +439,13 @@
     	form : 'Formulaire',
     	checkbox : 'Case à cocher',
-    	radio : 'Bouton Radio',
+    	radio : 'Bouton radio',
     	textField : 'Champ texte',
     	textarea : 'Zone de texte',
-    	hiddenField : 'Champ caché',
+    	hiddenField : 'Champ invisible',
     	button : 'Bouton',
     	select : 'Liste déroulante',
-    	imageButton : 'Bouton image',
-    	notSet : '<non défini>',
-    	id : 'Id',
+    	imageButton : 'Bouton avec image',
+    	notSet : '<indéfini>',
+    	id : 'ID',
     	name : 'Nom',
     	langDir : 'Sens d\'écriture',
@@ -453,7 +453,7 @@
     	langDirRtl : 'Droite à gauche (RTL)',
     	langCode : 'Code de langue',
-    	longDescr : 'URL de description longue (longdesc => malvoyant)',
-    	cssClass : 'Classe CSS',
-    	advisoryTitle : 'Description (title)',
+    	longDescr : 'URL de description longue',
+    	cssClass : 'Classes de style',
+    	advisoryTitle : 'Infobulle',
     	cssStyle : 'Style',
     	ok : 'OK',
@@ -461,18 +461,18 @@
     	close : 'Fermer',
     	preview : 'Aperçu',
-    	resize : 'Déplacer pour modifier la taille',
+    	resize : 'Redimensionner',
     	generalTab : 'Général',
     	advancedTab : 'Avancé',
     	validateNumberFailed : 'Cette valeur n\'est pas un nombre.',
-    	confirmNewPage : 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page?',
-    	confirmCancel : 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer?',
+    	confirmNewPage : 'Les changements non sauvegardés seront perdus. Êtes-vous sûr de vouloir charger une nouvelle page ?',
+    	confirmCancel : 'Certaines options ont été modifiées. Êtes-vous sûr de vouloir fermer ?',
     	options : 'Options',
-    	target : 'Cible (Target)',
+    	target : 'Cible',
     	targetNew : 'Nouvelle fenêtre (_blank)',
     	targetTop : 'Fenêtre supérieure (_top)',
     	targetSelf : 'Même fenêtre (_self)',
     	targetParent : 'Fenêtre parent (_parent)',
-    	langDirLTR : 'Gauche à Droite (LTR)',
-    	langDirRTL : 'Droite à Gauche (RTL)',
+    	langDirLTR : 'Gauche à droite (LTR)',
+    	langDirRTL : 'Droite à gauche (RTL)',
     	styles : 'Style',
     	cssClasses : 'Classes de style',
@@ -482,5 +482,5 @@
     	alignLeft : 'Gauche',
     	alignRight : 'Droite',
-    	alignCenter : 'Centré',
+    	alignCenter : 'Centrer',
     	alignJustify : 'Justifier',
     	alignTop : 'Haut',
@@ -488,11 +488,11 @@
     	alignBottom : 'Bas',
     	alignNone : 'Aucun',
-    	invalidValue : 'Valeur incorrecte.',
+    	invalidValue : 'Valeur invalide.',
     	invalidHeight : 'La hauteur doit être un nombre.',
     	invalidWidth : 'La largeur doit être un nombre.',
-    	invalidCssLength : 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
-    	invalidHtmlLength : 'La valeur spécifiée pour le champ "%1" doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
-    	invalidInlineStyle : 'La valeur spécifiée pour le style inline doit être composée d\'un ou plusieurs couples de valeur au format "nom : valeur", separés par des points-virgules.',
+    	invalidCssLength : 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
+    	invalidHtmlLength : 'La valeur spécifiée pour le champ « %1 » doit être un nombre positif avec ou sans unité de mesure HTML valide (px ou %).',
+    	invalidInlineStyle : 'La valeur spécifiée pour le style en ligne doit être composée d\'un ou plusieurs couples au format « nom : valeur », séparés par des points-virgules.',
     	cssLengthTooltip : 'Entrer un nombre pour une valeur en pixels ou un nombre avec une unité de mesure CSS valide (px, %, in, cm, mm, em, ex, pt, ou pc).',
-    	unavailable : '%1<span class="cke_accessibility">, Indisponible</span>'
+    	unavailable : '%1<span class="cke_accessibility">, indisponible</span>'
     } }; 
Index: plugins/dcCKEditor/js/ckeditor/lang/gl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/gl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/gl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Codificación do recurso ligado',
     	cssClasses : 'Clases da folla de estilos',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Enderezo de correo',
     	emailBody : 'Corpo da mensaxe',
Index: plugins/dcCKEditor/js/ckeditor/lang/gu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/gu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/gu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'લિંક રિસૉર્સ કૅરિક્ટર સેટ',
     	cssClasses : 'સ્ટાઇલ-શીટ ક્લાસ',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ઈ-મેલ સરનામું',
     	emailBody : 'સંદેશ',
Index: plugins/dcCKEditor/js/ckeditor/lang/he.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/he.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/he.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'קידוד המשאב המקושר',
     	cssClasses : 'גיליונות עיצוב קבוצות',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'כתובת הדוא"ל',
     	emailBody : 'גוף ההודעה',
Index: plugins/dcCKEditor/js/ckeditor/lang/hi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'लिंक रिसोर्स करॅक्टर सॅट',
     	cssClasses : 'स्टाइल-शीट क्लास',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ई-मेल पता',
     	emailBody : 'संदेश',
Index: plugins/dcCKEditor/js/ckeditor/lang/hr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Kodna stranica povezanih resursa',
     	cssClasses : 'Stylesheet klase',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail adresa',
     	emailBody : 'Sadržaj poruke',
Index: plugins/dcCKEditor/js/ckeditor/lang/hu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/hu.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/hu.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Hivatkozott tartalom kódlapja',
     	cssClasses : 'Stíluskészlet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail cím',
     	emailBody : 'Üzenet',
Index: plugins/dcCKEditor/js/ckeditor/lang/id.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/id.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/id.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Kelas Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Alamat E-mail',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/is.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/is.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/is.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Táknróf',
     	cssClasses : 'Stílsniðsflokkur',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Netfang',
     	emailBody : 'Meginmál',
Index: plugins/dcCKEditor/js/ckeditor/lang/it.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/it.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/it.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Set di caretteri della risorsa collegata',
     	cssClasses : 'Nome classe CSS',
-    	download : 'Force Download',
+    	displayText : 'Mostra testo',
     	emailAddress : 'Indirizzo E-Mail',
     	emailBody : 'Corpo del messaggio',
Index: plugins/dcCKEditor/js/ckeditor/lang/ja.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ja.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ja.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'リンク先のcharset',
     	cssClasses : 'スタイルシートクラス',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail アドレス',
     	emailBody : '本文',
Index: plugins/dcCKEditor/js/ckeditor/lang/ka.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ka.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ka.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'კოდირება',
     	cssClasses : 'CSS კლასი',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ელფოსტის მისამართები',
     	emailBody : 'წერილის ტექსტი',
Index: plugins/dcCKEditor/js/ckeditor/lang/km.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/km.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/km.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'លេខកូតអក្សររបស់ឈ្នាប់',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'អាសយដ្ឋាន\u200bអ៊ីមែល',
     	emailBody : 'តួ\u200bអត្ថបទ',
Index: plugins/dcCKEditor/js/ckeditor/lang/ko.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ko.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ko.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '링크된 자료 문자열 인코딩',
     	cssClasses : '스타일시트 클래스',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '이메일 주소',
     	emailBody : '메시지 내용',
Index: plugins/dcCKEditor/js/ckeditor/lang/ku.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ku.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ku.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'بەستەری سەرچاوەی نووسە',
     	cssClasses : 'شێوازی چینی پەڕه',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ناونیشانی ئیمەیل',
     	emailBody : 'ناوەڕۆکی نامە',
Index: plugins/dcCKEditor/js/ckeditor/lang/lt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/lt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/lt.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Susietų išteklių simbolių lentelė',
     	cssClasses : 'Stilių lentelės klasės',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'El.pašto adresas',
     	emailBody : 'Žinutės turinys',
Index: plugins/dcCKEditor/js/ckeditor/lang/lv.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/lv.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/lv.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Pievienotā resursa kodējums',
     	cssClasses : 'Stilu saraksta klases',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-pasta adrese',
     	emailBody : 'Ziņas saturs',
Index: plugins/dcCKEditor/js/ckeditor/lang/mk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/mk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/mk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet Classes',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/mn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/mn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/mn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Тэмдэгт оноох нөөцөд холбогдсон',
     	cssClasses : 'Stylesheet классууд',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Э-шуудангийн хаяг',
     	emailBody : 'Зурвасны их бие',
Index: plugins/dcCKEditor/js/ckeditor/lang/ms.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ms.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ms.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Kelas-kelas Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Alamat E-Mail',
     	emailBody : 'Isi Kandungan Mesej',
Index: plugins/dcCKEditor/js/ckeditor/lang/nb.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/nb.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/nb.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lenket tegnsett',
     	cssClasses : 'Stilarkklasser',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadresse',
     	emailBody : 'Melding',
Index: plugins/dcCKEditor/js/ckeditor/lang/nl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/nl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/nl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Karakterset van gelinkte bron',
     	cssClasses : 'Stylesheet-klassen',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-mailadres',
     	emailBody : 'Inhoud bericht',
Index: plugins/dcCKEditor/js/ckeditor/lang/no.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/no.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/no.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Lenket tegnsett',
     	cssClasses : 'Stilarkklasser',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadresse',
     	emailBody : 'Melding',
Index: plugins/dcCKEditor/js/ckeditor/lang/pl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pl.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Kodowanie znaków obiektu docelowego',
     	cssClasses : 'Nazwa klasy CSS',
-    	download : 'Force Download',
+    	displayText : 'Wyświetlany tekst',
     	emailAddress : 'Adres e-mail',
     	emailBody : 'Treść',
Index: plugins/dcCKEditor/js/ckeditor/lang/pt-br.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pt-br.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pt-br.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Charset do Link',
     	cssClasses : 'Classe de CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Endereço E-Mail',
     	emailBody : 'Corpo da Mensagem',
Index: plugins/dcCKEditor/js/ckeditor/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/pt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/pt.js	(revision 3339)
@@ -19,5 +19,5 @@
     		editing : 'Edição',
     		forms : 'Formulários',
-    		basicstyles : 'Estilos Básicos',
+    		basicstyles : 'Estilos básicos',
     		paragraph : 'Parágrafo',
     		links : 'Hiperligações',
@@ -27,14 +27,14 @@
     		tools : 'Ferramentas'
     	},
-    	toolbars : 'Editor de Barras de Ferramentas'
+    	toolbars : 'Editor de barras de ferramentas'
     },
     templates : 
     {
-    	button : 'Modelos',
-    	emptyListMsg : '(Sem modelos definidos)',
+    	button : 'Temas',
+    	emptyListMsg : '(Sem temas definidos)',
     	insertOption : 'Substituir conteúdos atuais',
     	options : 'Opções do modelo',
-    	selectPromptMsg : 'Por favor, selecione o modelo para abrir no editor',
-    	title : 'Conteúdo dos Modelos'
+    	selectPromptMsg : 'Por favor, selecione o modelo a abrir no editor',
+    	title : 'Conteúdo dos modelos'
     },
     table : 
@@ -47,7 +47,7 @@
     		insertBefore : 'Inserir célula antes',
     		insertAfter : 'Inserir célula depois',
-    		deleteCell : 'Apagar Células',
-    		merge : 'Unir Células',
-    		mergeRight : 'Unir à Direita',
+    		deleteCell : 'Apagar células',
+    		merge : 'Unir células',
+    		mergeRight : 'Unir à direita',
     		mergeDown : 'Fundir abaixo',
     		splitHorizontal : 'Dividir célula horizontalmente',
@@ -55,12 +55,12 @@
     		title : 'Propriedades da célula',
     		cellType : 'Tipo de célula',
-    		rowSpan : 'Filas na Célula',
-    		colSpan : 'Colunas na Célula',
+    		rowSpan : 'Linhas na célula',
+    		colSpan : 'Colunas na célula',
     		wordWrap : 'Moldar texto',
-    		hAlign : 'Alinhamento Horizontal',
-    		vAlign : 'Alinhamento Vertical',
+    		hAlign : 'Alinhamento horizontal',
+    		vAlign : 'Alinhamento vertical',
     		alignBaseline : 'Base',
-    		bgColor : 'Cor de Fundo',
-    		borderColor : 'Cor da Margem',
+    		bgColor : 'Cor de fundo',
+    		borderColor : 'Cor da margem',
     		data : 'Dados',
     		header : 'Cabeçalho',
@@ -70,5 +70,5 @@
     		invalidHeight : 'A altura da célula deve ser um número.',
     		invalidRowSpan : 'As filas da célula deve ter um número inteiro.',
-    		invalidColSpan : 'As colunas da célula deve ter um número inteiro.',
+    		invalidColSpan : 'As colunas da célula devem ter um número inteiro.',
     		chooseColor : 'Escolher'
     	},
@@ -78,5 +78,5 @@
     	{
     		menu : 'Coluna',
-    		insertBefore : 'Inserir Coluna Antes',
+    		insertBefore : 'Inserir coluna antes',
     		insertAfter : 'Inserir coluna depois',
     		deleteColumn : 'Apagar colunas'
@@ -96,5 +96,5 @@
     	invalidRows : 'O número de linhas tem de ser maior que 0.',
     	invalidWidth : 'A largura da tabela tem de ser um número.',
-    	menu : 'Propriedades da Tabela',
+    	menu : 'Propriedades da tabela',
     	row : 
     	{
@@ -105,9 +105,9 @@
     	},
     	rows : 'Linhas',
-    	summary : 'Sumário',
-    	title : 'Propriedades da Tabela',
+    	summary : 'Resumo',
+    	title : 'Propriedades da tabela',
     	toolbar : 'Tabela',
     	widthPc : 'percentagem',
-    	widthPx : 'pontos',
+    	widthPx : 'pixéis',
     	widthUnit : 'unidade da largura'
     },
@@ -132,5 +132,5 @@
     removeformat : 
     {
-    	toolbar : 'Eliminar Formato'
+    	toolbar : 'Limpar formatação'
     },
     print : 
@@ -140,6 +140,6 @@
     pastetext : 
     {
-    	button : 'Colar como Texto Simples',
-    	title : 'Colar como Texto Simples'
+    	button : 'Colar como texto simples',
+    	title : 'Colar como texto simples'
     },
     pastefromword : 
@@ -162,13 +162,13 @@
     {
     	armenian : 'Numeração armênia',
-    	bulletedTitle : 'Bulleted List Properties',
+    	bulletedTitle : 'Propriedades da lista não numerada',
     	circle : 'Círculo',
     	decimal : 'Decimal (1, 2, 3, etc.)',
-    	decimalLeadingZero : 'Decimal leading zero (01, 02, 03, etc.)',
+    	decimalLeadingZero : 'Zero decimal à esquerda (01, 02, 03, etc.)',
     	disc : 'Disco',
-    	georgian : 'Georgian numbering (an, ban, gan, etc.)',
-    	lowerAlpha : 'Lower Alpha (a, b, c, d, e, etc.)',
-    	lowerGreek : 'Lower Greek (alpha, beta, gamma, etc.)',
-    	lowerRoman : 'Lower Roman (i, ii, iii, iv, v, etc.)',
+    	georgian : 'Numeração georgiana (an, ban, gan, etc.)',
+    	lowerAlpha : 'Minúsculas (a, b, c, d, e, etc.)',
+    	lowerGreek : 'Grego em minúsculas (alpha, beta, gamma, etc.)',
+    	lowerRoman : 'Romano em minúsculas (i, ii, iii, iv, v, etc.)',
     	none : 'Nenhum',
     	notset : '<not set>',
@@ -177,7 +177,7 @@
     	start : 'Iniciar',
     	type : 'Tipo',
-    	upperAlpha : 'Upper Alpha (A, B, C, D, E, etc.)',
-    	upperRoman : 'Upper Roman (I, II, III, IV, V, etc.)',
-    	validateStartNumber : 'List start number must be a whole number.'
+    	upperAlpha : 'Maiúsculas (A, B, C, D, E, etc.)',
+    	upperRoman : 'Romanos em maiúscula (I, II, III, IV, V, etc.)',
+    	validateStartNumber : 'A lista tem iniciar por um número inteiro'
     },
     list : 
@@ -188,64 +188,64 @@
     link : 
     {
-    	acccessKey : 'Chave de Acesso',
+    	acccessKey : 'Chave de acesso',
     	advanced : 'Avançado',
-    	advisoryContentType : 'Tipo de Conteúdo',
+    	advisoryContentType : 'Tipo de conteúdo',
     	advisoryTitle : 'Título',
     	anchor : 
     	{
-    		toolbar : ' Inserir/Editar Âncora',
-    		menu : 'Propriedades da Âncora',
-    		title : 'Propriedades da Âncora',
-    		name : 'Nome da Âncora',
+    		toolbar : ' Inserir/Editar âncora',
+    		menu : 'Propriedades da âncora',
+    		title : 'Propriedades da âncora',
+    		name : 'Nome da âncora',
     		errorName : 'Por favor, introduza o nome da âncora',
-    		remove : 'Remove Anchor'
-    	},
-    	anchorId : 'Por ID de elemento',
+    		remove : 'Remover âncora'
+    	},
+    	anchorId : 'Por ID do elemento',
     	anchorName : 'Por Nome de Referência',
     	charset : 'Fonte de caracteres vinculado',
-    	cssClasses : 'Classes de Estilo de Folhas Classes',
-    	download : 'Force Download',
-    	emailAddress : 'Endereço de E-Mail',
-    	emailBody : 'Corpo da Mensagem',
-    	emailSubject : 'Título de Mensagem',
+    	cssClasses : 'Classes de Estilo',
+    	displayText : 'Display Text',
+    	emailAddress : 'Endereço de email',
+    	emailBody : 'Corpo da mensagem',
+    	emailSubject : 'Título de mensagem',
     	id : 'ID',
-    	info : 'Informação de Hiperligação',
-    	langCode : 'Orientação de idioma',
+    	info : 'Informação da hiperligação',
+    	langCode : 'Código de idioma',
     	langDir : 'Orientação de idioma',
-    	langDirLTR : 'Esquerda à Direita (LTR)',
-    	langDirRTL : 'Direita a Esquerda (RTL)',
-    	menu : 'Editar Hiperligação',
+    	langDirLTR : 'Esquerda para a Direita (EPD)',
+    	langDirRTL : 'Direita para a Esquerda (DPE)',
+    	menu : 'Editar hiperligação',
     	name : 'Nome',
-    	noAnchors : '(Não há referências disponíveis no documento)',
-    	noEmail : 'Por favor introduza o endereço de e-mail',
-    	noUrl : 'Por favor introduza a hiperligação URL',
+    	noAnchors : '(Não existem âncoras no documento)',
+    	noEmail : 'Por favor, escreva o endereço de email',
+    	noUrl : 'Por favor, introduza o endereço URL',
     	other : '<outro>',
     	popupDependent : 'Dependente (Netscape)',
-    	popupFeatures : 'Características de Janela de Popup',
-    	popupFullScreen : 'Janela Completa (IE)',
-    	popupLeft : 'Posição Esquerda',
+    	popupFeatures : 'Características de janela flutuante',
+    	popupFullScreen : 'Janela completa (IE)',
+    	popupLeft : 'Posição esquerda',
     	popupLocationBar : 'Barra de localização',
-    	popupMenuBar : 'Barra de Menu',
+    	popupMenuBar : 'Barra de menu',
     	popupResizable : 'Redimensionável',
     	popupScrollBars : 'Barras de deslocamento',
-    	popupStatusBar : 'Barra de Estado',
+    	popupStatusBar : 'Barra de estado',
     	popupToolbar : 'Barra de ferramentas',
-    	popupTop : 'Posição Direita',
+    	popupTop : 'Posição topo',
     	rel : 'Relação',
-    	selectAnchor : 'Seleccionar una referência',
+    	selectAnchor : 'Selecionar âncora',
     	styles : 'Estilo',
     	tabIndex : 'Índice de tabulação',
     	target : 'Alvo',
     	targetFrame : '<frame>',
-    	targetFrameName : 'Nome do Frame Destino',
+    	targetFrameName : 'Nome da janela de destino',
     	targetPopup : '<janela de popup>',
-    	targetPopupName : 'Nome da Janela de Popup',
+    	targetPopupName : 'Nome da janela flutuante',
     	title : 'Hiperligação',
-    	toAnchor : 'Referência a esta página',
+    	toAnchor : 'Ligar a âncora no texto',
     	toEmail : 'Email',
     	toUrl : 'URL',
-    	toolbar : 'Inserir/Editar Hiperligação',
-    	type : 'Tipo de Hiperligação',
-    	unlink : 'Eliminar Hiperligação',
+    	toolbar : 'Hiperligação',
+    	type : 'Tipo de hiperligação',
+    	unlink : 'Eliminar hiperligação',
     	upload : 'Carregar'
     },
@@ -253,5 +253,5 @@
     {
     	block : 'Justificado',
-    	center : 'Alinhar ao Centro',
+    	center : 'Alinhar ao centro',
     	left : 'Alinhar à esquerda',
     	right : 'Alinhar à direita'
@@ -259,25 +259,25 @@
     indent : 
     {
-    	indent : 'Aumentar Avanço',
-    	outdent : 'Diminuir Avanço'
+    	indent : 'Aumentar avanço',
+    	outdent : 'Diminuir avanço'
     },
     image : 
     {
-    	alt : 'Texto Alternativo',
+    	alt : 'Texto alternativo',
     	border : 'Limite',
     	btnUpload : 'Enviar para o servidor',
     	button2Img : 'Deseja transformar o botão com imagem selecionado em uma imagem?',
-    	hSpace : 'Esp.Horiz',
+    	hSpace : 'Esp. Horiz',
     	img2Button : 'Deseja transformar a imagem selecionada em um botão com imagem?',
-    	infoTab : 'Informação da Imagem',
+    	infoTab : 'Informação da imagem',
     	linkTab : 'Hiperligação',
     	lockRatio : 'Proporcional',
     	menu : 'Propriedades da Imagem',
-    	resetSize : 'Tamanho Original',
-    	title : 'Propriedades da Imagem',
-    	titleButton : 'Propriedades do Botão de imagens',
+    	resetSize : 'Tamanho original',
+    	title : 'Propriedades da imagem',
+    	titleButton : 'Propriedades do botão de imagem',
     	upload : 'Carregar',
     	urlMissing : 'O URL da fonte da imagem está em falta.',
-    	vSpace : 'Esp.Vert',
+    	vSpace : 'Esp. Vert',
     	validateBorder : 'A borda tem de ser um numero.',
     	validateHSpace : 'HSpace tem de ser um numero.',
@@ -286,5 +286,5 @@
     horizontalrule : 
     {
-    	toolbar : 'Inserir Linha Horizontal'
+    	toolbar : 'Inserir linha horizontal'
     },
     format : 
@@ -305,9 +305,9 @@
     fakeobjects : 
     {
-    	anchor : ' Inserir/Editar Âncora',
+    	anchor : ' Inserir/Editar âncora',
     	flash : 'Animação Flash',
     	hiddenfield : 'Campo oculto',
     	iframe : 'IFrame',
-    	unknown : 'Objeto Desconhecido'
+    	unknown : 'Objeto desconhecido'
     },
     elementspath : 
@@ -323,7 +323,7 @@
     	edit : 'Editar Div',
     	inlineStyleInputLabel : 'Estilho em Linha',
-    	langDirLTRLabel : 'Esquerda à Direita (LTR)',
+    	langDirLTRLabel : 'Esquerda para a direita (EPD)',
     	langDirLabel : 'Orientação de idioma',
-    	langDirRTLLabel : 'Direita a Esquerda (RTL)',
+    	langDirRTLLabel : 'Direita para a Esquerda (DPE)',
     	languageCodeInputLabel : 'Codigo do Idioma',
     	remove : 'Remover Div',
@@ -339,46 +339,46 @@
     {
     	auto : 'Automático',
-    	bgColorTitle : 'Cor de Fundo',
+    	bgColorTitle : 'Cor de fundo',
     	colors : 
     	{
     		'000' : 'Black',
-    		'800000' : 'Maroon',
+    		'800000' : 'Castanho',
     		'8B4513' : 'Saddle Brown',
     		'2F4F4F' : 'Dark Slate Gray',
     		'008080' : 'Teal',
-    		'000080' : 'Navy',
+    		'000080' : 'Azul naval',
     		'4B0082' : 'Indigo',
-    		'696969' : 'Dark Gray',
-    		B22222 : 'Fire Brick',
-    		A52A2A : 'Brown',
-    		DAA520 : 'Golden Rod',
-    		'006400' : 'Dark Green',
-    		'40E0D0' : 'Turquoise',
-    		'0000CD' : 'Medium Blue',
+    		'696969' : 'Cinza escuro',
+    		B22222 : 'Vermelho tijolo',
+    		A52A2A : 'Castanho',
+    		DAA520 : 'Dourado (daa520)',
+    		'006400' : 'Verde escuro (006400)',
+    		'40E0D0' : 'Turquesa',
+    		'0000CD' : 'Azul médio (0000cd)',
     		'800080' : 'Purple',
-    		'808080' : 'Gray',
-    		F00 : 'Red',
-    		FF8C00 : 'Dark Orange',
-    		FFD700 : 'Gold',
-    		'008000' : 'Green',
-    		'0FF' : 'Cyan',
-    		'00F' : 'Blue',
-    		EE82EE : 'Violet',
-    		A9A9A9 : 'Dim Gray',
-    		FFA07A : 'Light Salmon',
-    		FFA500 : 'Orange',
-    		FFFF00 : 'Yellow',
-    		'00FF00' : 'Lime',
-    		AFEEEE : 'Pale Turquoise',
+    		'808080' : 'Cinza',
+    		F00 : 'Vermelho',
+    		FF8C00 : 'Laranja escuro',
+    		FFD700 : 'Dourado',
+    		'008000' : 'Verde',
+    		'0FF' : 'Ciano',
+    		'00F' : 'Azul',
+    		EE82EE : 'Violeta',
+    		A9A9A9 : 'Cinza fosco',
+    		FFA07A : 'Salmão claro',
+    		FFA500 : 'Laranja',
+    		FFFF00 : 'Amarelo',
+    		'00FF00' : 'Limão (Verde espectro)',
+    		AFEEEE : 'Turquesa pálida (afeeee)',
     		ADD8E6 : 'Light Blue',
-    		DDA0DD : 'Plum',
+    		DDA0DD : 'Ameixa',
     		D3D3D3 : 'Cinza claro',
-    		FFF0F5 : 'Lavender Blush',
+    		FFF0F5 : 'Lavanda avermelhada',
     		FAEBD7 : 'Branco velho',
     		FFFFE0 : 'Amarelo claro',
-    		F0FFF0 : 'Honeydew',
-    		F0FFFF : 'Azure',
-    		F0F8FF : 'Alice Blue',
-    		E6E6FA : 'Lavender',
+    		F0FFF0 : 'Maná (f0fff0)',
+    		F0FFFF : 'Azul celeste',
+    		F0F8FF : 'Azul Alice (f0f8ff)',
+    		E6E6FA : 'Lavanda',
     		FFF : 'Branco'
     	},
@@ -395,5 +395,5 @@
     	paste : 'Colar',
     	pasteArea : 'Colar área',
-    	pasteMsg : 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e prima <STRONG>OK</STRONG>.',
+    	pasteMsg : 'Por favor, cole dentro da seguinte caixa usando o teclado (<STRONG>Ctrl/Cmd+V</STRONG>) e carregue em <STRONG>OK</STRONG>.',
     	securityMsg : 'Devido ás definições de segurança do teu browser, o editor não pode aceder ao clipboard diretamente. É necessário que voltes a colar as informações nesta janela.',
     	title : 'Colar'
@@ -413,5 +413,5 @@
     	strike : 'Rasurado',
     	subscript : 'Superior à linha',
-    	superscript : 'Inferior à Linha',
+    	superscript : 'Superior à linha',
     	underline : 'Sublinhado'
     },
@@ -423,5 +423,5 @@
     	moreInfo : 'Para informação sobre licenciamento visite o nosso sítio web:',
     	title : 'Sobre o CKEditor',
-    	userGuide : 'CKEditor - Guia do Utilizador'
+    	userGuide : 'CKEditor - Guia do utilizador'
     },
     editor : 'Editor de texto enriquecido',
@@ -433,27 +433,27 @@
     	url : 'URL',
     	protocol : 'Protocolo',
-    	upload : 'Enviar',
+    	upload : 'Carregar',
     	uploadSubmit : 'Enviar para o servidor',
     	image : 'Imagem',
     	flash : 'Flash',
     	form : 'Formulário',
-    	checkbox : 'Caixa de Seleção',
+    	checkbox : 'Caixa de verificação',
     	radio : 'Botão',
-    	textField : 'Campo do Texto',
-    	textarea : 'Área do Texto',
+    	textField : 'Campo de texto',
+    	textarea : 'Área de texto',
     	hiddenField : 'Campo oculto',
     	button : 'Botão',
-    	select : 'Campo da Seleção',
-    	imageButton : 'Botão da Imagem',
+    	select : 'Campo de seleção',
+    	imageButton : 'Botão da imagem',
     	notSet : '<Não definido>',
-    	id : 'Id.',
+    	id : 'ID',
     	name : 'Nome',
-    	langDir : 'Direção do Idioma',
+    	langDir : 'Direção do idioma',
     	langDirLtr : 'Esquerda para a Direita (EPD)',
     	langDirRtl : 'Direita para a Esquerda (DPE)',
-    	langCode : 'Código do Idioma',
-    	longDescr : 'Descrição Completa do URL',
-    	cssClass : 'Classes de Estilo das Folhas',
-    	advisoryTitle : 'Título Consultivo',
+    	langCode : 'Código do idioma',
+    	longDescr : 'Descrição completa do URL',
+    	cssClass : 'Classes de estilo das folhas',
+    	advisoryTitle : 'Título consultivo',
     	cssStyle : 'Estilo',
     	ok : 'CONFIRMAR',
@@ -469,8 +469,8 @@
     	options : 'Opções',
     	target : 'Destino',
-    	targetNew : 'Nova Janela (_blank)',
-    	targetTop : 'Janela Superior (_top)',
-    	targetSelf : 'Mesma Janela (_self)',
-    	targetParent : 'Janela Parente (_parent)',
+    	targetNew : 'Nova janela (_blank)',
+    	targetTop : 'Janela superior (_top)',
+    	targetSelf : 'Mesma janela (_self)',
+    	targetParent : 'Janela dependente (_parent)',
     	langDirLTR : 'Esquerda para a Direita (EPD)',
     	langDirRTL : 'Direita para a Esquerda (DPE)',
Index: plugins/dcCKEditor/js/ckeditor/lang/ro.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ro.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ro.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Setul de caractere al resursei legate',
     	cssClasses : 'Clasele cu stilul paginii (CSS)',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Adresă de e-mail',
     	emailBody : 'Opțiuni Meniu Contextual',
Index: plugins/dcCKEditor/js/ckeditor/lang/ru.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ru.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ru.js	(revision 3339)
@@ -51,6 +51,6 @@
     		mergeRight : 'Объединить с правой',
     		mergeDown : 'Объединить с нижней',
-    		splitHorizontal : 'Разделить ячейку по горизонтали',
-    		splitVertical : 'Разделить ячейку по вертикали',
+    		splitHorizontal : 'Разделить ячейку по вертикали',
+    		splitVertical : 'Разделить ячейку по горизонтали',
     		title : 'Свойства ячейки',
     		cellType : 'Тип ячейки',
@@ -205,5 +205,5 @@
     	charset : 'Кодировка ресурса',
     	cssClasses : 'Классы CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Email адрес',
     	emailBody : 'Текст сообщения',
Index: plugins/dcCKEditor/js/ckeditor/lang/si.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/si.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/si.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'විලාසපත්‍ර පන්තිය',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail Address',
     	emailBody : 'Message Body',
Index: plugins/dcCKEditor/js/ckeditor/lang/sk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Priradená znaková sada',
     	cssClasses : 'Triedy štýlu',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mailová adresa',
     	emailBody : 'Telo správy',
Index: plugins/dcCKEditor/js/ckeditor/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sl.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sl.js	(revision 3339)
@@ -6,26 +6,26 @@
     undo : 
     {
-    	redo : 'Ponovi',
+    	redo : 'Uveljavi',
     	undo : 'Razveljavi'
     },
     toolbar : 
     {
-    	toolbarCollapse : 'Skrči Orodno Vrstico',
-    	toolbarExpand : 'Razširi Orodno Vrstico',
+    	toolbarCollapse : 'Skrči orodno vrstico',
+    	toolbarExpand : 'Razširi orodno vrstico',
     	toolbarGroups : 
     	{
-    		document : 'Document',
-    		clipboard : 'Clipboard/Undo',
-    		editing : 'Editing',
-    		forms : 'Forms',
-    		basicstyles : 'Basic Styles',
-    		paragraph : 'Paragraph',
-    		links : 'Links',
-    		insert : 'Insert',
-    		styles : 'Styles',
-    		colors : 'Colors',
-    		tools : 'Tools'
-    	},
-    	toolbars : 'Urejevalnik orodne vrstice'
+    		document : 'Dokument',
+    		clipboard : 'Odložišče/Razveljavi',
+    		editing : 'Urejanje',
+    		forms : 'Obrazci',
+    		basicstyles : 'Osnovni slogi',
+    		paragraph : 'Odstavek',
+    		links : 'Povezave',
+    		insert : 'Vstavi',
+    		styles : 'Slogi',
+    		colors : 'Barve',
+    		tools : 'Orodja'
+    	},
+    	toolbars : 'Orodne vrstice urejevalnika'
     },
     templates : 
@@ -41,5 +41,5 @@
     {
     	border : 'Velikost obrobe',
-    	caption : 'Naslov',
+    	caption : 'Napis',
     	cell : 
     	{
@@ -50,5 +50,5 @@
     		merge : 'Združi celice',
     		mergeRight : 'Združi desno',
-    		mergeDown : 'Druži navzdol',
+    		mergeDown : 'Združi navzdol',
     		splitHorizontal : 'Razdeli celico vodoravno',
     		splitVertical : 'Razdeli celico navpično',
@@ -73,5 +73,5 @@
     		chooseColor : 'Izberi'
     	},
-    	cellPad : 'Polnilo med celicami',
+    	cellPad : 'Odmik znotraj celic',
     	cellSpace : 'Razmik med celicami',
     	column : 
@@ -90,6 +90,6 @@
     	headersRow : 'Prva vrstica',
     	invalidBorder : 'Širina obrobe mora biti število.',
-    	invalidCellPadding : 'Zamik celic mora biti število',
-    	invalidCellSpacing : 'Razmik med celicami mora biti število.',
+    	invalidCellPadding : 'Odmik znotraj celic mora biti pozitivno število.',
+    	invalidCellSpacing : 'Razmik med celicami mora biti pozitivno število.',
     	invalidCols : 'Število stolpcev mora biti večje od 0.',
     	invalidHeight : 'Višina tabele mora biti število.',
@@ -108,5 +108,5 @@
     	title : 'Lastnosti tabele',
     	toolbar : 'Tabela',
-    	widthPc : 'procentov',
+    	widthPc : 'odstotkov',
     	widthPx : 'pik',
     	widthUnit : 'enota širine'
@@ -122,6 +122,6 @@
     specialchar : 
     {
-    	options : 'Možnosti Posebnega Znaka',
-    	title : 'Izberi Posebni Znak',
+    	options : 'Možnosti posebnih znakov',
+    	title : 'Izberi posebni znak',
     	toolbar : 'Vstavi posebni znak'
     },
@@ -145,5 +145,5 @@
     pastefromword : 
     {
-    	confirmCleanup : 'Besedilo, ki ga želite prilepiti je kopirano iz Word-a. Ali ga želite očistiti, preden ga prilepite?',
+    	confirmCleanup : 'Besedilo, ki ga želite prilepiti, je kopirano iz Worda. Ali ga želite očistiti, preden ga prilepite?',
     	error : 'Ni bilo mogoče očistiti prilepljenih podatkov zaradi notranje napake',
     	title : 'Prilepi iz Worda',
@@ -183,33 +183,33 @@
     list : 
     {
-    	bulletedlist : 'Označen seznam',
-    	numberedlist : 'Oštevilčen seznam'
+    	bulletedlist : 'Vstavi/odstrani neoštevilčen seznam',
+    	numberedlist : 'Vstavi/odstrani oštevilčen seznam'
     },
     link : 
     {
-    	acccessKey : 'Dostopno Geslo',
+    	acccessKey : 'Tipka za dostop',
     	advanced : 'Napredno',
-    	advisoryContentType : 'Predlagani tip vsebine (content-type)',
+    	advisoryContentType : 'Predlagana vrsta vsebine',
     	advisoryTitle : 'Predlagani naslov',
     	anchor : 
     	{
-    		toolbar : 'Vstavi/uredi zaznamek',
-    		menu : 'Lastnosti zaznamka',
-    		title : 'Lastnosti zaznamka',
-    		name : 'Ime zaznamka',
-    		errorName : 'Prosim vnesite ime zaznamka',
-    		remove : 'Remove Anchor'
+    		toolbar : 'Sidro',
+    		menu : 'Uredi sidro',
+    		title : 'Lastnosti sidra',
+    		name : 'Ime sidra',
+    		errorName : 'Prosimo, vnesite ime sidra',
+    		remove : 'Odstrani sidro'
     	},
     	anchorId : 'Po ID-ju elementa',
-    	anchorName : 'Po imenu zaznamka',
-    	charset : 'Kodna tabela povezanega vira',
-    	cssClasses : 'Razred stilne predloge',
-    	download : 'Force Download',
-    	emailAddress : 'Elektronski naslov',
-    	emailBody : 'Vsebina sporočila',
-    	emailSubject : 'Predmet sporočila',
+    	anchorName : 'Po imenu sidra',
+    	charset : 'Nabor znakov povezanega vira',
+    	cssClasses : 'Razredi slogovne predloge',
+    	displayText : 'Display Text',
+    	emailAddress : 'E-poštni naslov',
+    	emailBody : 'Telo sporočila',
+    	emailSubject : 'Zadeva sporočila',
     	id : 'Id',
     	info : 'Podatki o povezavi',
-    	langCode : 'Smer jezika',
+    	langCode : 'Koda jezika',
     	langDir : 'Smer jezika',
     	langDirLTR : 'Od leve proti desni (LTR)',
@@ -217,11 +217,11 @@
     	menu : 'Uredi povezavo',
     	name : 'Ime',
-    	noAnchors : '(V tem dokumentu ni zaznamkov)',
-    	noEmail : 'Vnesite elektronski naslov',
+    	noAnchors : '(V tem dokumentu ni sider)',
+    	noEmail : 'Vnesite e-poštni naslov',
     	noUrl : 'Vnesite URL povezave',
-    	other : '<drug>',
+    	other : '<drugo>',
     	popupDependent : 'Podokno (Netscape)',
     	popupFeatures : 'Značilnosti pojavnega okna',
-    	popupFullScreen : 'Celozaslonska slika (IE)',
+    	popupFullScreen : 'Celozaslonsko (IE)',
     	popupLeft : 'Lega levo',
     	popupLocationBar : 'Naslovna vrstica',
@@ -233,5 +233,5 @@
     	popupTop : 'Lega na vrhu',
     	rel : 'Odnos',
-    	selectAnchor : 'Izberi zaznamek',
+    	selectAnchor : 'Izberite sidro',
     	styles : 'Slog',
     	tabIndex : 'Številka tabulatorja',
@@ -242,11 +242,11 @@
     	targetPopupName : 'Ime pojavnega okna',
     	title : 'Povezava',
-    	toAnchor : 'Zaznamek na tej strani',
-    	toEmail : 'Elektronski naslov',
+    	toAnchor : 'Sidro na tej strani',
+    	toEmail : 'E-pošta',
     	toUrl : 'URL',
     	toolbar : 'Vstavi/uredi povezavo',
     	type : 'Vrsta povezave',
     	unlink : 'Odstrani povezavo',
-    	upload : 'Prenesi'
+    	upload : 'Naloži'
     },
     justify : 
@@ -267,7 +267,7 @@
     	border : 'Obroba',
     	btnUpload : 'Pošlji na strežnik',
-    	button2Img : 'Želiš pretvoriti izbrani gumb s sliko v preprosto sliko?',
-    	hSpace : 'Vodoravni razmik',
-    	img2Button : 'Želiš pretvoriti izbrano sliko v gumb s sliko?',
+    	button2Img : 'Želite pretvoriti izbrani gumb s sliko v preprosto sliko?',
+    	hSpace : 'Vodoravni odmik',
+    	img2Button : 'Želite pretvoriti izbrano sliko v gumb s sliko?',
     	infoTab : 'Podatki o sliki',
     	linkTab : 'Povezava',
@@ -277,9 +277,9 @@
     	title : 'Lastnosti slike',
     	titleButton : 'Lastnosti gumba s sliko',
-    	upload : 'Pošlji',
-    	urlMissing : 'Manjka vir (URL) slike.',
-    	vSpace : 'Navpični razmik',
+    	upload : 'Naloži',
+    	urlMissing : 'Manjka URL vira slike.',
+    	vSpace : 'Navpični odmik',
     	validateBorder : 'Meja mora biti celo število.',
-    	validateHSpace : 'HSpace mora biti celo število.',
+    	validateHSpace : 'Vodoravni odmik mora biti celo število.',
     	validateVSpace : 'VSpace mora biti celo število.'
     },
@@ -291,5 +291,5 @@
     {
     	label : 'Oblika',
-    	panelTitle : 'Oblika',
+    	panelTitle : 'Oblika odstavka',
     	tag_address : 'Napis',
     	tag_div : 'Navaden (DIV)',
@@ -306,5 +306,5 @@
     {
     	anchor : 'Sidro',
-    	flash : 'Flash animacija',
+    	flash : 'Animacija flash',
     	hiddenfield : 'Skrito polje',
     	iframe : 'IFrame',
@@ -314,5 +314,5 @@
     {
     	eleLabel : 'Pot elementov',
-    	eleTitle : '%1 element'
+    	eleTitle : 'Element %1'
     },
     div : 
@@ -320,19 +320,19 @@
     	IdInputLabel : 'Id',
     	advisoryTitleInputLabel : 'Predlagani naslov',
-    	cssClassInputLabel : 'Razred stilne predloge',
-    	edit : 'Uredi Div',
-    	inlineStyleInputLabel : 'Inline Slog',
+    	cssClassInputLabel : 'Razredi slogovne predloge',
+    	edit : 'Uredi div',
+    	inlineStyleInputLabel : 'Slog v vrstici',
     	langDirLTRLabel : 'Od leve proti desni (LTR)',
     	langDirLabel : 'Smer jezika',
     	langDirRTLLabel : 'Od desne proti levi (RTL)',
-    	languageCodeInputLabel : 'Koda Jezika',
-    	remove : 'Odstrani Div',
+    	languageCodeInputLabel : 'Koda jezika',
+    	remove : 'Odstrani div',
     	styleSelectLabel : 'Slog',
-    	title : 'Ustvari Div Posodo',
-    	toolbar : 'Ustvari Div Posodo'
+    	title : 'Ustvari vsebnik div',
+    	toolbar : 'Ustvari vsebnik div'
     },
     contextmenu : 
     {
-    	options : 'Možnosti Kontekstnega Menija'
+    	options : 'Možnosti kontekstnega menija'
     },
     colorbutton : 
@@ -342,5 +342,5 @@
     	colors : 
     	{
-    		'000' : 'Black',
+    		'000' : 'Črna',
     		'800000' : 'Maroon',
     		'8B4513' : 'Saddle Brown',
@@ -351,38 +351,38 @@
     		'696969' : 'Dark Gray',
     		B22222 : 'Fire Brick',
-    		A52A2A : 'Brown',
+    		A52A2A : 'Rjava',
     		DAA520 : 'Golden Rod',
-    		'006400' : 'Dark Green',
-    		'40E0D0' : 'Turquoise',
-    		'0000CD' : 'Medium Blue',
-    		'800080' : 'Purple',
-    		'808080' : 'Gray',
-    		F00 : 'Red',
-    		FF8C00 : 'Dark Orange',
-    		FFD700 : 'Gold',
-    		'008000' : 'Green',
-    		'0FF' : 'Cyan',
-    		'00F' : 'Blue',
-    		EE82EE : 'Violet',
+    		'006400' : 'Temno zelena',
+    		'40E0D0' : 'Turkizna',
+    		'0000CD' : 'Srednje modra',
+    		'800080' : 'Škrlatna',
+    		'808080' : 'Siva',
+    		F00 : 'Rdeča',
+    		FF8C00 : 'Temno oranžna',
+    		FFD700 : 'Zlata',
+    		'008000' : 'Zelena',
+    		'0FF' : 'Sinja',
+    		'00F' : 'Modra',
+    		EE82EE : 'Vijolična',
     		A9A9A9 : 'Dim Gray',
     		FFA07A : 'Light Salmon',
-    		FFA500 : 'Orange',
-    		FFFF00 : 'Yellow',
+    		FFA500 : 'Oranžna',
+    		FFFF00 : 'Rumena',
     		'00FF00' : 'Lime',
     		AFEEEE : 'Pale Turquoise',
-    		ADD8E6 : 'Light Blue',
+    		ADD8E6 : 'Svetlo modra',
     		DDA0DD : 'Plum',
-    		D3D3D3 : 'Light Grey',
+    		D3D3D3 : 'Svetlo siva',
     		FFF0F5 : 'Lavender Blush',
     		FAEBD7 : 'Antique White',
-    		FFFFE0 : 'Light Yellow',
+    		FFFFE0 : 'Svetlo rumena',
     		F0FFF0 : 'Honeydew',
     		F0FFFF : 'Azure',
     		F0F8FF : 'Alice Blue',
     		E6E6FA : 'Lavender',
-    		FFF : 'White'
-    	},
-    	more : 'Več barv...',
-    	panelTitle : 'Colors',
+    		FFF : 'Bela'
+    	},
+    	more : 'Več barv ...',
+    	panelTitle : 'Barve',
     	textColorTitle : 'Barva besedila'
     },
@@ -394,6 +394,6 @@
     	cutError : 'Varnostne nastavitve brskalnika ne dopuščajo samodejnega izrezovanja. Uporabite kombinacijo tipk na tipkovnici (Ctrl/Cmd+X).',
     	paste : 'Prilepi',
-    	pasteArea : 'Prilepi Prostor',
-    	pasteMsg : 'Prosim prilepite v sleči okvir s pomočjo tipkovnice (<STRONG>Ctrl/Cmd+V</STRONG>) in pritisnite <STRONG>V redu</STRONG>.',
+    	pasteArea : 'Prilepi območje',
+    	pasteMsg : 'Prosimo, prilepite v sleči okvir s pomočjo tipkovnice (<strong>Ctrl/Cmd+V</strong>) in pritisnite V redu.',
     	securityMsg : 'Zaradi varnostnih nastavitev vašega brskalnika urejevalnik ne more neposredno dostopati do odložišča. Vsebino odložišča ponovno prilepite v to okno.',
     	title : 'Prilepi'
@@ -420,11 +420,11 @@
     	copy : 'Copyright &copy; $1. Vse pravice pridržane.',
     	dlgTitle : 'O programu CKEditor',
-    	help : 'Preverite $1 za pomoč.',
-    	moreInfo : 'Za informacijo o licenci prosim obiščite našo spletno stran:',
+    	help : 'Oglejte si $1 za pomoč.',
+    	moreInfo : 'Za informacije o licenciranju prosimo obiščite našo spletno stran:',
     	title : 'O programu CKEditor',
-    	userGuide : 'CKEditor Navodila za Uporabo'
-    },
-    editor : 'Bogat Urejevalnik Besedila',
-    editorPanel : 'Rich Text Editor plošča',
+    	userGuide : 'Uporabniški vodnik CKEditor'
+    },
+    editor : 'Urejevalnik obogatenega besedila',
+    editorPanel : 'Plošča urejevalnika obogatenega besedila',
     common : 
     {
@@ -440,10 +440,10 @@
     	checkbox : 'Potrditveno polje',
     	radio : 'Izbirno polje',
-    	textField : 'Vnosno polje',
-    	textarea : 'Vnosno območje',
+    	textField : 'Besedilno polje',
+    	textarea : 'Besedilno območje',
     	hiddenField : 'Skrito polje',
     	button : 'Gumb',
-    	select : 'Spustno Polje',
-    	imageButton : 'Slikovni Gumb',
+    	select : 'Spustno polje',
+    	imageButton : 'Slikovni gumb',
     	notSet : '<ni določen>',
     	id : 'Id',
@@ -452,7 +452,7 @@
     	langDirLtr : 'Od leve proti desni (LTR)',
     	langDirRtl : 'Od desne proti levi (RTL)',
-    	langCode : 'Koda Jezika',
+    	langCode : 'Koda jezika',
     	longDescr : 'Dolg opis URL-ja',
-    	cssClass : 'Razred stilne predloge',
+    	cssClass : 'Razredi slogovne predloge',
     	advisoryTitle : 'Predlagani naslov',
     	cssStyle : 'Slog',
@@ -464,17 +464,17 @@
     	generalTab : 'Splošno',
     	advancedTab : 'Napredno',
-    	validateNumberFailed : 'Ta vrednost ni število.',
-    	confirmNewPage : 'Vse neshranjene spremembe te vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
-    	confirmCancel : 'Nekaj možnosti je bilo spremenjenih. Ali res želite zapreti okno?',
+    	validateNumberFailed : 'Vrednost ni število.',
+    	confirmNewPage : 'Vse neshranjene spremembe vsebine bodo izgubljene. Ali res želite naložiti novo stran?',
+    	confirmCancel : 'Spremenili ste nekaj možnosti. Ali res želite zapreti okno?',
     	options : 'Možnosti',
     	target : 'Cilj',
-    	targetNew : 'Novo Okno (_blank)',
-    	targetTop : 'Vrhovno Okno (_top)',
-    	targetSelf : 'Enako Okno (_self)',
-    	targetParent : 'Matično Okno (_parent)',
+    	targetNew : 'Novo okno (_blank)',
+    	targetTop : 'Vrhovno okno (_top)',
+    	targetSelf : 'Isto okno (_self)',
+    	targetParent : 'Starševsko okno (_parent)',
     	langDirLTR : 'Od leve proti desni (LTR)',
     	langDirRTL : 'Od desne proti levi (RTL)',
     	styles : 'Slog',
-    	cssClasses : 'Razred stilne predloge',
+    	cssClasses : 'Razredi slogovne predloge',
     	width : 'Širina',
     	height : 'Višina',
@@ -491,8 +491,8 @@
     	invalidHeight : 'Višina mora biti število.',
     	invalidWidth : 'Širina mora biti število.',
-    	invalidCssLength : 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne CSS enote za merjenje (px, %, in, cm, mm, em, ex, pt, ali pc).',
-    	invalidHtmlLength : 'Vrednost določena za "%1" polje mora biti pozitivna številka z ali brez veljavne HTML enote za merjenje (px ali %).',
-    	invalidInlineStyle : 'Vrednost določena za inline slog mora biti sestavljena iz ene ali več tork (tuples) z obliko "ime : vrednost", ločenih z podpičji.',
-    	cssLengthTooltip : 'Vnesite številko za vrednost v slikovnih pikah (pixels) ali številko z veljavno CSS enoto (px, %, in, cm, mm, em, ex, pt, ali pc).',
+    	invalidCssLength : 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne CSS-enote za merjenje (px, %, in, cm, mm, em, ex, pt ali pc).',
+    	invalidHtmlLength : 'Vrednost, določena za polje »%1«, mora biti pozitivno število z ali brez veljavne HTML-enote za merjenje (px ali %).',
+    	invalidInlineStyle : 'Vrednost, določena za slog v vrstici, mora biti sestavljena iz ene ali več dvojic oblike »ime : vrednost«, ločenih s podpičji.',
+    	cssLengthTooltip : 'Vnesite število za vrednost v slikovnih pikah ali število z veljavno CSS-enoto (px, %, in, cm, mm, em, ex, pt ali pc).',
     	unavailable : '%1<span class="cke_accessibility">, nedosegljiv</span>'
     } }; 
Index: plugins/dcCKEditor/js/ckeditor/lang/sq.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sq.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sq.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Seti i Karaktereve të Burimeve të Nëdlidhura',
     	cssClasses : 'Klasa stili CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Posta Elektronike',
     	emailBody : 'Trupi i Porosisë',
Index: plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sr-latn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet klase',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Mail adresa',
     	emailBody : 'Sadržaj poruke',
Index: plugins/dcCKEditor/js/ckeditor/lang/sr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Stylesheet класе',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Адреса електронске поште',
     	emailBody : 'Садржај поруке',
Index: plugins/dcCKEditor/js/ckeditor/lang/sv.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/sv.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/sv.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Teckenuppställning',
     	cssClasses : 'Stilmall',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-postadress',
     	emailBody : 'Innehåll',
Index: plugins/dcCKEditor/js/ckeditor/lang/th.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/th.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/th.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ลิงค์เชื่อมโยงไปยังชุดตัวอักษร',
     	cssClasses : 'คลาสของไฟล์กำหนดลักษณะการแสดงผล',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'อีเมล์ (E-Mail)',
     	emailBody : 'ข้อความ',
Index: plugins/dcCKEditor/js/ckeditor/lang/tr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/tr.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/tr.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Bağlı Kaynak Karakter Gurubu',
     	cssClasses : 'Biçem Sayfası Sınıfları',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'E-Posta Adresi',
     	emailBody : 'İleti Gövdesi',
Index: plugins/dcCKEditor/js/ckeditor/lang/tt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/tt.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/tt.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Linked Resource Charset',
     	cssClasses : 'Стильләр класслары',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Электрон почта адресы',
     	emailBody : 'Хат эчтәлеге',
Index: plugins/dcCKEditor/js/ckeditor/lang/ug.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/ug.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/ug.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'ھەرپ كودلىنىشى',
     	cssClasses : 'ئۇسلۇب خىلى ئاتى',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'ئادرېس',
     	emailBody : 'مەزمۇن',
Index: plugins/dcCKEditor/js/ckeditor/lang/uk.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/uk.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/uk.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Кодування',
     	cssClasses : 'Клас CSS',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Адреса ел. пошти',
     	emailBody : 'Тіло повідомлення',
Index: plugins/dcCKEditor/js/ckeditor/lang/vi.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/vi.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/vi.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : 'Bảng mã của tài nguyên được liên kết đến',
     	cssClasses : 'Lớp Stylesheet',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : 'Thư điện tử',
     	emailBody : 'Nội dung thông điệp',
Index: plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/zh-cn.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '字符编码',
     	cssClasses : '样式类名称',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '地址',
     	emailBody : '内容',
Index: plugins/dcCKEditor/js/ckeditor/lang/zh.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/lang/zh.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/lang/zh.js	(revision 3339)
@@ -205,5 +205,5 @@
     	charset : '連結資源的字元集',
     	cssClasses : '樣式表類別',
-    	download : 'Force Download',
+    	displayText : 'Display Text',
     	emailAddress : '電子郵件地址',
     	emailBody : '郵件本文',
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/es.js	(revision 3339)
@@ -19,5 +19,5 @@
 			name: 'Editor de diálogo',
 			legend:
-				'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING
+				'Dentro del diálogo, presione TAB para navegar a los siguientes elementos de diálogo, presione SHIFT+TAB para moverse a los anteriores elementos de diálogo, presione ENTER para enviar el diálogo, presiona ESC para cancelar el diálogo. Cuando el diálogo tiene multiples pestañas, la lista de pestañas puede ser abarcada con ALT + F10 or con TAB como parte del orden de pestañas del diálogo. ECon la pestaña enfocada, puede moverse a la siguiente o anterior pestaña con las FLECHAS IZQUIRDA y DERECHA respectivamente.'
 		},
 
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/fr.js	(revision 3339)
@@ -6,5 +6,5 @@
 CKEDITOR.plugins.setLang( 'a11yhelp', 'fr', {
 	title: 'Instructions d\'accessibilité',
-	contents: 'Contenu de l\'aide. Pour fermer ce dialogue, appuyez sur la touche ÉCHAP (Echappement).',
+	contents: 'Contenu de l\'aide. Pour fermer cette fenêtre, appuyez sur la touche Échap.',
 	legend: [
 		{
@@ -13,26 +13,26 @@
 			{
 			name: 'Barre d\'outils de l\'éditeur',
-			legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers les groupes suivant ou précédent de la barre d\'outil avec les touches MAJ et MAJ+TAB. Se déplacer vers les boutons suivant ou précédent de la barre d\'outils avec les touches FLÈCHE DROITE et FLÈCHE GAUCHE. Appuyer sur la barre d\'espace ou la touche ENTRÉE pour activer le bouton de barre d\'outils.'
+			legend: 'Appuyer sur ${toolbarFocus} pour accéder à la barre d\'outils. Se déplacer vers le groupe suivant ou précédent de la barre d\'outils avec les touches Tab et Maj+Tab. Se déplacer vers le bouton suivant ou précédent de la barre d\'outils avec les touches Flèche droite et Flèche gauche. Appuyer sur la barre d\'espace ou la touche Entrée pour activer le bouton de barre d\'outils.'
 		},
 
 			{
-			name: 'Dialogue de l\'éditeur',
+			name: 'Fenêtre de l\'éditeur',
 			legend:
-				'Dans un dialogue, appuyer sur TAB pour aller à l\'élément suivant du dialogue, appuyer sur MAJ+TAB pour aller à l\'élément précédent du dialogue, appuyer sur ECHAP pour annuler le dialogue. Quand un dialogue a de multiples onglets, on peut accéder à la liste des onglets avec ALT+F10 ou avec TAB. Dans la liste des onglets, se déplacer vers le suivant ou le précédent avec les FLECHES DROITE et GAUCHE respectivement.'
+				'Dans une boîte de dialogue, appuyer sur Tab pour passer à l\'élément suivant, appuyer sur Maj+Tab pour passer à l\'élément précédent, appuyer sur Entrée pour valider, appuyer sur Échap pour annuler. Quand une boîte de dialogue possède des onglets, la liste peut être atteinte avec Alt+F10 ou avec Tab. Dans la liste des onglets, se déplacer vers le suivant et le précédent avec les touches Flèche droite et Flèche gauche respectivement.'
 		},
 
 			{
 			name: 'Menu contextuel de l\'éditeur',
-			legend: 'Appuyer sur ${contextMenu} ou entrer le RACCOURCI CLAVIER pour ouvrir le menu contextuel. Puis se déplacer vers l\'option suivante du menu avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'option précédente avec les touches  MAJ+TAB ou FLÈCHE HAUT. appuyer sur la BARRE D\'ESPACE ou la touche ENTRÉE pour sélectionner l\'option du menu. Oovrir le sous-menu de l\'option courante avec la BARRE D\'ESPACE ou les touches ENTRÉE ou FLÈCHE DROITE. Revenir à l\'élément de menu parent avec les touches ÉCHAP ou FLÈCHE GAUCHE. Fermer le menu contextuel avec ÉCHAP.'
+			legend: 'Appuyer sur ${contextMenu} ou sur la touche Menu pour ouvrir le menu contextuel. Se déplacer ensuite vers l\'option suivante du menu avec les touches Tab ou Flèche bas. Se déplacer vers l\'option précédente avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou la touche Entrée pour sélectionner l\'option du menu. Appuyer sur la barre d\'espace, la touche Entrée ou Flèche droite pour ouvrir le sous-menu de l\'option sélectionnée. Revenir à l\'élément de menu parent avec la touche Échap ou Flèche gauche. Fermer le menu contextuel avec Échap.'
 		},
 
 			{
 			name: 'Zone de liste de l\'éditeur',
-			legend: 'Dans la liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches TAB ou FLÈCHE BAS. Se déplacer vers l\'élément précédent de la liste avec les touches MAJ+TAB ou FLÈCHE HAUT. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'option dans la liste. Appuyer sur ÉCHAP pour fermer le menu déroulant.'
+			legend: 'Dans une liste en menu déroulant, se déplacer vers l\'élément suivant de la liste avec les touches Tab ou Flèche bas. Se déplacer vers l\'élément précédent de la liste avec les touches Maj+Tab ou Flèche haut. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'option dans la liste. Appuyer sur Échap pour fermer le menu déroulant.'
 		},
 
 			{
-			name: 'Barre d\'emplacement des éléments de l\'éditeur',
-			legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre d\'emplacement des éléments de l\'éditeur. Se déplacer vers le bouton d\'élément suivant avec les touches TAB ou FLÈCHE DROITE. Se déplacer vers le bouton d\'élément précédent avec les touches MAJ+TAB ou FLÈCHE GAUCHE. Appuyer sur la BARRE D\'ESPACE ou sur ENTRÉE pour sélectionner l\'élément dans l\'éditeur.'
+			name: 'Barre du chemin d\'éléments de l\'éditeur',
+			legend: 'Appuyer sur ${elementsPathFocus} pour naviguer vers la barre du fil d\'Ariane des éléments. Se déplacer vers le bouton de l\'élément suivant avec les touches Tab ou Flèche droite. Se déplacer vers le bouton précédent avec les touches Maj+Tab ou Flèche gauche. Appuyer sur la barre d\'espace ou sur Entrée pour sélectionner l\'élément dans l\'éditeur.'
 		}
 		]
@@ -46,5 +46,5 @@
 		},
 			{
-			name: 'Refaire la commande',
+			name: 'Commande restaurer',
 			legend: 'Appuyer sur ${redo}'
 		},
@@ -70,13 +70,13 @@
 		},
 			{
-			name: 'Accéder à la précédente commande d\'espace de mise au point',
-			legend: 'Appuyez sur ${accessPreviousSpace} pour accéder à l\'espace hors d\'atteinte le plus proche avant le caret, par exemple: deux éléments HR adjacents. Répétez la combinaison de touches pour atteindre les espaces de mise au point distants.'
+			name: 'Commande d\'accès à l\'élément sélectionnable précédent',
+			legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche avant le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables précédents.'
 		},
 			{
-			name: 'Accès à la prochaine commande de l\'espace de mise au point',
-			legend: 'Appuyez sur ${accessNextSpace} pour accéder au plus proche espace de mise au point hors d\'atteinte après le caret, par exemple: deux éléments HR adjacents. répétez la combinaison de touches pour atteindre les espace de mise au point distants.'
+			name: 'Commande d\'accès à l\'élément sélectionnable suivant',
+			legend: 'Appuyer sur ${accessNextSpace} pour accéder à l\'élément sélectionnable inatteignable le plus proche après le curseur, par exemple : deux lignes horizontales adjacentes. Répéter la combinaison de touches pour atteindre les éléments sélectionnables suivants.'
 		},
 			{
-			name: ' Aide Accessibilité',
+			name: ' Aide sur l\'accessibilité',
 			legend: 'Appuyer sur ${a11yHelp}'
 		}
@@ -94,29 +94,29 @@
 	escape: 'Échap',
 	pageUp: 'Page supérieure',
-	pageDown: 'Page inférieure',
+	pageDown: 'Page suivante',
 	end: 'Fin',
-	home: 'Retour',
+	home: 'Origine',
 	leftArrow: 'Flèche gauche',
-	upArrow: 'Flèche haute',
+	upArrow: 'Flèche haut',
 	rightArrow: 'Flèche droite',
 	downArrow: 'Flèche basse',
-	insert: 'Insertion',
+	insert: 'Inser',
 	'delete': 'Supprimer',
 	leftWindowKey: 'Touche Windows gauche',
 	rightWindowKey: 'Touche Windows droite',
-	selectKey: 'Touche menu',
-	numpad0: 'Pavé numérique 0',
-	numpad1: 'Pavé numérique 1',
-	numpad2: 'Pavé numérique 2',
-	numpad3: 'Pavé numérique 3',
-	numpad4: 'Pavé numérique 4',
-	numpad5: 'Pavé numérique 5',
-	numpad6: 'Pavé numérique 6',
-	numpad7: 'Pavé numérique 7',
+	selectKey: 'Touche Sélectionner',
+	numpad0: '0 du pavé numérique',
+	numpad1: '1 du pavé numérique',
+	numpad2: '2 du pavé numérique',
+	numpad3: '3 du pavé numérique',
+	numpad4: '4 du pavé numérique',
+	numpad5: '5 du pavé numérique',
+	numpad6: '6 du pavé numérique',
+	numpad7: '7 du pavé numérique',
 	numpad8: 'Pavé numérique 8',
-	numpad9: 'Pavé numérique 9',
+	numpad9: '9 du pavé numérique',
 	multiply: 'Multiplier',
-	add: 'Addition',
-	subtract: 'Soustraire',
+	add: 'Plus',
+	subtract: 'Moins',
 	decimalPoint: 'Point décimal',
 	divide: 'Diviser',
@@ -133,7 +133,7 @@
 	f11: 'F11',
 	f12: 'F12',
-	numLock: 'Verrouillage numérique',
-	scrollLock: 'Arrêt défilement',
-	semiColon: 'Point virgule',
+	numLock: 'Verr. Num.',
+	scrollLock: 'Arrêt défil.',
+	semiColon: 'Point-virgule',
 	equalSign: 'Signe égal',
 	comma: 'Virgule',
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/pt.js	(revision 3339)
@@ -13,9 +13,9 @@
 			{
 			name: 'Barra de ferramentas do editor',
-			legend: 'Clique em ${toolbarFocus} para navegar para a barra de ferramentas. Vá para o grupo da barra de ferramentas anterior e seguinte com TAB e SHIFT+TAB. Vá para o botão da barra de ferramentas anterior com a SETA DIREITA ou ESQUERDA. Pressione ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'
+			legend: 'Clique em ${toolbarFocus} para navegar na barra de ferramentas. Para navegar entre o grupo da barra de ferramentas anterior e seguinte use TAB e SHIFT+TAB. Para navegar entre o botão da barra de ferramentas seguinte e anterior use a SETA DIREITA ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para ativar o botão da barra de ferramentas.'
 		},
 
 			{
-			name: 'Janela do Editor',
+			name: 'Janela do editor',
 			legend:
 				'Inside a dialog, press TAB to navigate to the next dialog element, press SHIFT+TAB to move to the previous dialog element, press ENTER to submit the dialog, press ESC to cancel the dialog. When a dialog has multiple tabs, the tab list can be reached either with ALT+F10 or with TAB as part of the dialog tabbing order. With tab list focused, move to the next and previous tab with RIGHT and LEFT ARROW, respectively.'  // MISSING
@@ -23,5 +23,5 @@
 
 			{
-			name: 'Menu de Contexto do Editor',
+			name: 'Menu de contexto do editor',
 			legend: 'Clique em ${contextMenu} ou TECLA APLICAÇÃO para abrir o menu de contexto. Depois vá para a opção do menu seguinte com TAB ou SETA PARA BAIXO. Vá para a opção anterior com  SHIFT+TAB ou SETA PARA CIMA. Pressione ESPAÇO ou ENTER para selecionar a opção do menu.  Abra o submenu da opção atual com ESPAÇO, ENTER ou SETA DIREITA. GVá para o item do menu parente  com ESC ou SETA ESQUERDA. Feche o menu de contexto com ESC.'
 		},
@@ -29,10 +29,10 @@
 			{
 			name: 'Editor de caixa em lista',
-			legend: 'Dentro da caixa da lista, vá para o itemda lista seguinte com TAB ou SETA PARA BAIXO. Move Vá parao item da lista anterior com SHIFT+TAB ou SETA PARA BAIXO. Pressione ESPAÇO ou ENTER para selecionar a opção da lista. Pressione ESC para fechar a caisa da lista.'
+			legend: 'Dentro de uma lista, para navegar para o item seguinte da lista use TAB ou SETA PARA BAIXO. Para o item anterior da lista use SHIFT+TAB ou SETA PARA BAIXO. Carregue em ESPAÇO ou ENTER para selecionar a opção lista. Carregue em ESC para fechar a caixa da lista.'
 		},
 
 			{
-			name: 'Caminho Barra Elemento Editor',
-			legend: 'Clique em ${elementsPathFocus} para navegar para a barra do caminho dos elementos. Vá para o botão do elemento seguinte com TAB ou SETA DIREITA. Vá para o botão anterior com SHIFT+TAB ou SETA ESQUERDA. Pressione ESPAÇO ou ENTER para selecionar o elemento no editor.'
+			name: 'Editor da barra de caminho dos elementos',
+			legend: 'Clique em ${elementsPathFocus} para navegar na barra de caminho dos elementos. Para o botão do elemento seguinte use TAB ou SETA DIREITA. para o botão anterior use SHIFT+TAB ou SETA ESQUERDA. Carregue em ESPAÇO ou ENTER para selecionar o elemento no editor.'
 		}
 		]
@@ -42,33 +42,33 @@
 		items: [
 			{
-			name: 'Comando de Anular',
+			name: 'Comando de anular',
 			legend: 'Carregar ${undo}'
 		},
 			{
-			name: 'Comando de Refazer',
-			legend: 'Pressione ${redo}'
+			name: 'Comando de refazer',
+			legend: 'Clique ${redo}'
 		},
 			{
-			name: 'Comando de Negrito',
+			name: 'Comando de negrito',
 			legend: 'Pressione ${bold}'
 		},
 			{
-			name: 'Comando de Itálico',
+			name: 'Comando de itálico',
 			legend: 'Pressione ${italic}'
 		},
 			{
-			name: 'Comando de Sublinhado',
+			name: 'Comando de sublinhado',
 			legend: 'Pressione ${underline}'
 		},
 			{
-			name: 'Comando de Hiperligação',
+			name: 'Comando de hiperligação',
 			legend: 'Pressione ${link}'
 		},
 			{
-			name: 'Comando de Ocultar Barra de Ferramentas',
+			name: 'Comando de ocultar barra de ferramentas',
 			legend: 'Pressione ${toolbarCollapse}'
 		},
 			{
-			name: 'Acesso comando do espaço focus anterior',
+			name: 'Aceder ao comando espaço de foco anterior',
 			legend: 'Clique em ${accessPreviousSpace} para aceder ao espaço do focos inalcançável mais perto antes do sinal de omissão, por exemplo: dois elementos HR adjacentes. Repetir a combinação da chave para alcançar os espaços dos focos distantes.'
 		},
@@ -120,5 +120,5 @@
 	subtract: 'Subtrair',
 	decimalPoint: 'Decimal Point', // MISSING
-	divide: 'Divide', // MISSING
+	divide: 'Separar',
 	f1: 'F1',
 	f2: 'F2',
@@ -138,6 +138,6 @@
 	equalSign: 'Equal Sign', // MISSING
 	comma: 'Vírgula',
-	dash: 'Dash', // MISSING
-	period: 'Period', // MISSING
+	dash: 'Cardinal',
+	period: 'Ponto',
 	forwardSlash: 'Forward Slash', // MISSING
 	graveAccent: 'Acento grave',
@@ -145,4 +145,4 @@
 	backSlash: 'Backslash', // MISSING
 	closeBracket: 'Close Bracket', // MISSING
-	singleQuote: 'Single Quote' // MISSING
+	singleQuote: 'Plica'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/a11yhelp/dialogs/lang/sl.js	(revision 3339)
@@ -5,6 +5,6 @@
 
 CKEDITOR.plugins.setLang( 'a11yhelp', 'sl', {
-	title: 'Navodila Dostopnosti',
-	contents: 'Vsebina Pomoči. Če želite zapreti to pogovorno okno pritisnite ESC.',
+	title: 'Navodila za dostopnost',
+	contents: 'Vsebina pomoči. Če želite zapreti pogovorno okno, pritisnite ESC.',
 	legend: [
 		{
@@ -12,5 +12,5 @@
 		items: [
 			{
-			name: 'Urejevalna Orodna Vrstica',
+			name: 'Orodna vrstica urejevalnika',
 			legend: 'Pritisnite ${toolbarFocus} za pomik v orodno vrstico. Z TAB in SHIFT+TAB se pomikate na naslednjo in prejšnjo skupino orodne vrstice. Z DESNO PUŠČICO ali LEVO PUŠČICO se pomikate na naslednji in prejšnji gumb orodne vrstice. Pritisnite SPACE ali ENTER, da aktivirate gumb orodne vrstice.'
 		},
@@ -23,5 +23,5 @@
 
 			{
-			name: 'Urejevalni Kontekstni Meni',
+			name: 'Kontekstni meni urejevalnika',
 			legend: 'Pritisnite ${contextMenu} ali APPLICATION KEY, da odprete kontekstni meni. Nato se premaknite na naslednjo možnost menija s tipko TAB ali PUŠČICA DOL. Premakniti se na prejšnjo možnost z SHIFT + TAB ali PUŠČICA GOR. Pritisnite SPACE ali ENTER za izbiro možnosti menija. Odprite podmeni trenutne možnosti menija s tipko SPACE ali ENTER ali DESNA PUŠČICA. Vrnite se na matični element menija s tipko ESC ali LEVA PUŠČICA. Zaprite kontekstni meni z ESC.'
 		},
@@ -78,5 +78,5 @@
 		},
 			{
-			name: 'Pomoč Dostopnosti',
+			name: 'Pomoč dostopnosti',
 			legend: 'Pritisnite ${a11yHelp}'
 		}
@@ -97,12 +97,12 @@
 	end: 'End',
 	home: 'Home',
-	leftArrow: 'Levo puščica',
-	upArrow: 'Gor puščica',
-	rightArrow: 'Desno puščica',
-	downArrow: 'Dol puščica',
+	leftArrow: 'Puščica levo',
+	upArrow: 'Puščica gor',
+	rightArrow: 'Puščica desno',
+	downArrow: 'Puščica dol',
 	insert: 'Insert',
 	'delete': 'Delete',
-	leftWindowKey: 'Leva Windows tipka',
-	rightWindowKey: 'Desna Windows tipka',
+	leftWindowKey: 'Leva tipka Windows',
+	rightWindowKey: 'Desna tipka Windows',
 	selectKey: 'Select tipka',
 	numpad0: 'Numpad 0',
@@ -136,5 +136,5 @@
 	scrollLock: 'Scroll Lock',
 	semiColon: 'Podpičje',
-	equalSign: 'enačaj',
+	equalSign: 'Enačaj',
 	comma: 'Vejica',
 	dash: 'Vezaj',
@@ -144,5 +144,5 @@
 	openBracket: 'Oklepaj',
 	backSlash: 'Leva poševnica',
-	closeBracket: 'Oklepaj',
+	closeBracket: 'Zaklepaj',
 	singleQuote: 'Opuščaj'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/about/dialogs/about.js	(revision 3339)
@@ -53,15 +53,15 @@
 						'<p>' +
 							'CKEditor ' + CKEDITOR.version + ' (revision ' + CKEDITOR.revision + ')<br>' +
-							'<a target="_blank" href="http://ckeditor.com/">http://ckeditor.com</a>' +
+							'<a target="_blank" rel="noopener noreferrer" href="http://ckeditor.com/">http://ckeditor.com</a>' +
 						'</p>' +
 						'<p>' +
-							lang.help.replace( '$1', '<a target="_blank" href="http://docs.ckeditor.com/user">' + lang.userGuide + '</a>' ) +
+							lang.help.replace( '$1', '<a target="_blank" rel="noopener noreferrer" href="http://docs.ckeditor.com/user">' + lang.userGuide + '</a>' ) +
 						'</p>' +
 						'<p>' +
 							lang.moreInfo + '<br>' +
-							'<a target="_blank" href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a>' +
+							'<a target="_blank" rel="noopener noreferrer" href="http://ckeditor.com/about/license">http://ckeditor.com/about/license</a>' +
 						'</p>' +
 						'<p>' +
-							lang.copy.replace( '$1', '<a target="_blank" href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
+							lang.copy.replace( '$1', '<a target="_blank" rel="noopener noreferrer" href="http://cksource.com/">CKSource</a> - Frederico Knabben' ) +
 						'</p>' +
 						'</div>'
Index: plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js	(revision 3271)
+++ plugins/dcCKEditor/js/ckeditor/plugins/link/dialogs/link.js	(revision 3339)
@@ -8,5 +8,6 @@
 ( function() {
 	CKEDITOR.dialog.add( 'link', function( editor ) {
-		var plugin = CKEDITOR.plugins.link;
+		var plugin = CKEDITOR.plugins.link,
+			initialLinkText;
 
 		// Handles the event when the "Target" selection box is changed.
@@ -111,5 +112,5 @@
 			title: linkLang.title,
 			minWidth: 350,
-			minHeight: 240,
+			minHeight: 230,
 			contents: [ {
 				id: 'info',
@@ -117,4 +118,21 @@
 				title: linkLang.info,
 				elements: [ {
+					type: 'text',
+					id: 'linkDisplayText',
+					label: linkLang.displayText,
+					setup: function() {
+						this.enable();
+
+						this.setValue( editor.getSelection().getSelectedText() );
+
+						// Keep inner text so that it can be compared in commit function. By obtaining value from getData()
+						// we get value stripped from new line chars which is important when comparing the value later on.
+						initialLinkText = this.getValue();
+					},
+					commit: function( data ) {
+						data.linkText = this.isEnabled() ? this.getValue() : '';
+					}
+				},
+				{
 					id: 'linkType',
 					type: 'select',
@@ -777,23 +795,4 @@
 							commit: commitAdvParams
 						} ]
-					},
-					{
-						type: 'hbox',
-						widths: [ '45%', '55%' ],
-						children: [ {
-							type: 'checkbox',
-							id: 'download',
-							requiredContent: 'a[download]',
-							label: linkLang.download,
-							setup: function( data ) {
-								if ( data.download !== undefined )
-									this.setValue( 'checked', 'checked' );
-							},
-							commit: function( data ) {
-								if ( this.getValue() ) {
-									data.download = this.getValue();
-								}
-							}
-						} ]
 					} ]
 				} ]
@@ -802,4 +801,6 @@
 				var editor = this.getParentEditor(),
 					selection = editor.getSelection(),
+					selectedElement = selection.getSelectedElement(),
+					displayTextField = this.getContentElement( 'info', 'linkDisplayText' ).getElement().getParent().getParent(),
 					element = null;
 
@@ -808,8 +809,17 @@
 					// Don't change selection if some element is already selected.
 					// For example - don't destroy fake selection.
-					if ( !selection.getSelectedElement() )
+					if ( !selectedElement ) {
 						selection.selectElement( element );
+						selectedElement = element;
+					}
 				} else {
 					element = null;
+				}
+
+				// Here we'll decide whether or not we want to show Display Text field.
+				if ( plugin.showDisplayTextForElement( selectedElement, editor ) ) {
+					displayTextField.show();
+				} else {
+					displayTextField.hide();
 				}
 
@@ -828,16 +838,37 @@
 
 				var selection = editor.getSelection(),
-					attributes = plugin.getLinkAttributes( editor, data );
+					attributes = plugin.getLinkAttributes( editor, data ),
+					bm,
+					nestedLinks;
 
 				if ( !this._.selectedElement ) {
-					var range = selection.getRanges()[ 0 ];
+					var range = selection.getRanges()[ 0 ],
+						text;
 
 					// Use link URL as text with a collapsed cursor.
 					if ( range.collapsed ) {
 						// Short mailto link text view (#5736).
-						var text = new CKEDITOR.dom.text( data.type == 'email' ?
-							data.email.address : attributes.set[ 'data-cke-saved-href' ], editor.document );
+						text = new CKEDITOR.dom.text( data.linkText || ( data.type == 'email' ?
+							data.email.address : attributes.set[ 'data-cke-saved-href' ] ), editor.document );
 						range.insertNode( text );
 						range.selectNodeContents( text );
+					} else if ( initialLinkText !== data.linkText ) {
+						text = new CKEDITOR.dom.text( data.linkText, editor.document );
+
+						// Shrink range to preserve block element.
+						range.shrink( CKEDITOR.SHRINK_TEXT );
+
+						// Use extractHtmlFromRange to remove markup within the selection. Also this method is a little
+						// smarter than range#deleteContents as it plays better e.g. with table cells.
+						editor.editable().extractHtmlFromRange( range );
+
+						range.insertNode( text );
+					}
+
+					// Editable links nested within current range should be removed, so that the link is applied to whole selection.
+					nestedLinks = range._find( 'a' );
+
+					for	( var i = 0; i < nestedLinks.length; i++ ) {
+						nestedLinks[ i ].remove( true );
 					}
 
@@ -855,15 +886,21 @@
 					var element = this._.selectedElement,
 						href = element.data( 'cke-saved-href' ),
-						textView = element.getHtml();
+						textView = element.getHtml(),
+						newText;
 
 					element.setAttributes( attributes.set );
 					element.removeAttributes( attributes.removed );
 
-					// Update text view when user changes protocol (#4612).
-					if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
+					if ( data.linkText && initialLinkText != data.linkText ) {
+						// Display text has been changed.
+						newText = data.linkText;
+					} else if ( href == textView || data.type == 'email' && textView.indexOf( '@' ) != -1 ) {
+						// Update text view when user changes protocol (#4612).
 						// Short mailto link text view (#5736).
-						element.setHtml( data.type == 'email' ?
-							data.email.address : attributes.set[ 'data-cke-saved-href' ] );
-
+						newText = data.type == 'email' ? data.email.address : attributes.set[ 'data-cke-saved-href' ];
+					}
+
+					if ( newText ) {
+						element.setText( newText );
 						// We changed the content, so need to select it again.
 						selection.selectElement( element );
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/eu.js	(revision 3339)
@@ -14,11 +14,11 @@
 	iexcl: 'Inverted exclamation mark', // MISSING
 	cent: 'Cent sign', // MISSING
-	pound: 'Pound sign', // MISSING
+	pound: 'Libera zeinua',
 	curren: 'Currency sign', // MISSING
-	yen: 'Yen sign', // MISSING
+	yen: 'Yen zeinua',
 	brvbar: 'Broken bar', // MISSING
 	sect: 'Section sign', // MISSING
-	uml: 'Diaeresis', // MISSING
-	copy: 'Copyright sign', // MISSING
+	uml: 'Dieresia',
+	copy: 'Copyright zeinua',
 	ordf: 'Feminine ordinal indicator', // MISSING
 	laquo: 'Left-pointing double angle quotation mark', // MISSING
@@ -64,5 +64,5 @@
 	Otilde: 'Latin capital letter O with tilde', // MISSING
 	Ouml: 'Latin capital letter O with diaeresis', // MISSING
-	times: 'Multiplication sign', // MISSING
+	times: 'Bider zeinua',
 	Oslash: 'Latin capital letter O with stroke', // MISSING
 	Ugrave: 'Latin capital letter U with grave accent', // MISSING
@@ -117,5 +117,5 @@
 	trade: 'Trade mark sign', // MISSING
 	'9658': 'Black right-pointing pointer', // MISSING
-	bull: 'Bullet', // MISSING
+	bull: 'Buleta',
 	rarr: 'Rightwards arrow', // MISSING
 	rArr: 'Rightwards double arrow', // MISSING
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/fr.js	(revision 3339)
@@ -5,18 +5,18 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'fr', {
-	euro: 'Symbole Euro',
+	euro: 'Symbole euro',
 	lsquo: 'Guillemet simple ouvrant',
 	rsquo: 'Guillemet simple fermant',
 	ldquo: 'Guillemet double ouvrant',
 	rdquo: 'Guillemet double fermant',
-	ndash: 'Tiret haut',
+	ndash: 'Tiret demi-cadratin',
 	mdash: 'Tiret cadratin',
 	iexcl: 'Point d\'exclamation inversé',
-	cent: 'Symbole Cent',
-	pound: 'Symbole Livre Sterling',
+	cent: 'Symbole cent',
+	pound: 'Symbole Livre sterling',
 	curren: 'Symbole monétaire',
-	yen: 'Symbole Yen',
+	yen: 'Symbole yen',
 	brvbar: 'Barre verticale scindée',
-	sect: 'Section',
+	sect: 'Signe de section',
 	uml: 'Tréma',
 	copy: 'Symbole Copyright',
@@ -24,12 +24,12 @@
 	laquo: 'Guillemet français ouvrant',
 	not: 'Crochet de négation',
-	reg: 'Marque déposée',
+	reg: 'Symbole de marque déposée',
 	macr: 'Macron',
-	deg: 'Degré',
+	deg: 'Symbole degré',
 	sup2: 'Exposant 2',
 	sup3: 'Exposant 3',
 	acute: 'Accent aigu',
-	micro: 'Omicron',
-	para: 'Paragraphe',
+	micro: 'Symbole micro',
+	para: 'Symbole pied-de-mouche',
 	middot: 'Point médian',
 	cedil: 'Cédille',
@@ -37,83 +37,83 @@
 	ordm: 'Indicateur ordinal masculin',
 	raquo: 'Guillemet français fermant',
-	frac14: 'Un quart',
-	frac12: 'Un demi',
-	frac34: 'Trois quarts',
+	frac14: 'Fraction un quart',
+	frac12: 'Fraction un demi',
+	frac34: 'Fraction trois quarts',
 	iquest: 'Point d\'interrogation inversé',
-	Agrave: 'A majuscule accent grave',
-	Aacute: 'A majuscule accent aigu',
-	Acirc: 'A majuscule accent circonflexe',
-	Atilde: 'A majuscule avec caron',
-	Auml: 'A majuscule tréma',
-	Aring: 'A majuscule avec un rond au-dessus',
-	AElig: 'Æ majuscule ligaturés',
-	Ccedil: 'C majuscule cédille',
-	Egrave: 'E majuscule accent grave',
-	Eacute: 'E majuscule accent aigu',
-	Ecirc: 'E majuscule accent circonflexe',
-	Euml: 'E majuscule tréma',
-	Igrave: 'I majuscule accent grave',
-	Iacute: 'I majuscule accent aigu',
-	Icirc: 'I majuscule accent circonflexe',
-	Iuml: 'I majuscule tréma',
+	Agrave: 'A accent grave majuscule',
+	Aacute: 'A accent aigu majuscule',
+	Acirc: 'A accent circonflexe majuscule',
+	Atilde: 'A caron majuscule',
+	Auml: 'A tréma majuscule',
+	Aring: 'A rond majuscule',
+	AElig: 'Ligature Æ majuscule',
+	Ccedil: 'C cédille majuscule',
+	Egrave: 'E accent grave majuscule',
+	Eacute: 'E accent aigu majuscule',
+	Ecirc: 'E accent circonflexe majuscule',
+	Euml: 'E tréma majuscule',
+	Igrave: 'I accent grave majuscule',
+	Iacute: 'I accent aigu majuscule',
+	Icirc: 'I accent circonflexe majuscule',
+	Iuml: 'I tréma majuscule',
 	ETH: 'Lettre majuscule islandaise ED',
-	Ntilde: 'N majuscule avec caron',
-	Ograve: 'O majuscule accent grave',
-	Oacute: 'O majuscule accent aigu',
-	Ocirc: 'O majuscule accent circonflexe',
-	Otilde: 'O majuscule avec caron',
-	Ouml: 'O majuscule tréma',
-	times: 'Multiplication',
-	Oslash: 'O majuscule barré',
-	Ugrave: 'U majuscule accent grave',
-	Uacute: 'U majuscule accent aigu',
-	Ucirc: 'U majuscule accent circonflexe',
-	Uuml: 'U majuscule tréma',
-	Yacute: 'Y majuscule accent aigu',
-	THORN: 'Lettre islandaise Thorn majuscule',
-	szlig: 'Lettre minuscule allemande s dur',
-	agrave: 'a minuscule accent grave',
-	aacute: 'a minuscule accent aigu',
-	acirc: 'a minuscule accent circonflexe',
-	atilde: 'a minuscule avec caron',
-	auml: 'a minuscule tréma',
-	aring: 'a minuscule avec un rond au-dessus',
-	aelig: 'æ minuscule ligaturés',
-	ccedil: 'c minuscule cédille',
-	egrave: 'e minuscule accent grave',
-	eacute: 'e minuscule accent aigu',
-	ecirc: 'e minuscule accent circonflexe',
-	euml: 'e minuscule tréma',
-	igrave: 'i minuscule accent grave',
-	iacute: 'i minuscule accent aigu',
-	icirc: 'i minuscule accent circonflexe',
+	Ntilde: 'N caron majuscule',
+	Ograve: 'O accent grave majuscule',
+	Oacute: 'O accent aigu majuscule',
+	Ocirc: 'O accent circonflexe majuscule',
+	Otilde: 'O caron majuscule',
+	Ouml: 'O tréma majuscule',
+	times: 'Symbole de multiplication',
+	Oslash: 'O barré majuscule',
+	Ugrave: 'U accent grave majuscule',
+	Uacute: 'U accent aigu majuscule',
+	Ucirc: 'U accent circonflexe majuscule',
+	Uuml: 'U tréma majuscule',
+	Yacute: 'Y accent aigu majuscule',
+	THORN: 'Lettre islandaise thorn majuscule',
+	szlig: 'Lettre minuscule allemande S dur',
+	agrave: 'A accent grave minuscule',
+	aacute: 'A accent aigu minuscule',
+	acirc: 'A accent circonflexe minuscule',
+	atilde: 'A tilde minuscule',
+	auml: 'A tréma minuscule',
+	aring: 'A rond minuscule',
+	aelig: 'Ligature Æ minuscule',
+	ccedil: 'C cédille minuscule',
+	egrave: 'E accent grave minuscule',
+	eacute: 'E accent aigu minuscule',
+	ecirc: 'E accent circonflexe minuscule',
+	euml: 'E tréma minuscule',
+	igrave: 'I accent grave minuscule',
+	iacute: 'I accent aigu minuscule',
+	icirc: 'I accent circonflexe minuscule',
 	iuml: 'i minuscule tréma',
 	eth: 'Lettre minuscule islandaise ED',
-	ntilde: 'n minuscule avec caron',
-	ograve: 'o minuscule accent grave',
-	oacute: 'o minuscule accent aigu',
-	ocirc: 'o minuscule accent circonflexe',
-	otilde: 'o minuscule avec caron',
-	ouml: 'o minuscule tréma',
-	divide: 'Division',
-	oslash: 'o minuscule barré',
-	ugrave: 'u minuscule accent grave',
-	uacute: 'u minuscule accent aigu',
-	ucirc: 'u minuscule accent circonflexe',
-	uuml: 'u minuscule tréma',
-	yacute: 'y minuscule accent aigu',
+	ntilde: 'N caron minuscule',
+	ograve: 'O minuscule accent grave',
+	oacute: 'O accent aigu minuscule',
+	ocirc: 'O accent circonflexe minuscule',
+	otilde: 'O tilde minuscule',
+	ouml: 'O tréma minuscule',
+	divide: 'Symbole de division',
+	oslash: 'O barré minuscule',
+	ugrave: 'U accent grave minuscule',
+	uacute: 'U accent aigu minuscule',
+	ucirc: 'U accent circonflexe minuscule',
+	uuml: 'U tréma minuscule',
+	yacute: 'Y accent aigu minuscule',
 	thorn: 'Lettre islandaise thorn minuscule',
-	yuml: 'y minuscule tréma',
-	OElig: 'ligature majuscule latine Œ',
-	oelig: 'ligature minuscule latine œ',
-	'372': 'W majuscule accent circonflexe',
-	'374': 'Y majuscule accent circonflexe',
-	'373': 'w minuscule accent circonflexe',
-	'375': 'y minuscule accent circonflexe',
-	sbquo: 'Guillemet simple fermant (anglais)',
+	yuml: 'Y tréma minuscule',
+	OElig: 'Ligature Œ majuscule',
+	oelig: 'Ligature Œ minuscule',
+	'372': 'W accent circonflexe majuscule',
+	'374': 'Y accent circonflexe majuscule',
+	'373': 'W accent circonflexe minuscule',
+	'375': 'Y accent circonflexe minuscule',
+	sbquo: 'Guillemet simple fermant inférieur',
 	'8219': 'Guillemet-virgule supérieur culbuté',
 	bdquo: 'Guillemet-virgule double inférieur',
 	hellip: 'Points de suspension',
-	trade: 'Marque commerciale (trade mark)',
+	trade: 'Symbole de marque commerciale',
 	'9658': 'Flèche noire pointant vers la droite',
 	bull: 'Gros point médian',
@@ -121,5 +121,5 @@
 	rArr: 'Double flèche vers la droite',
 	hArr: 'Double flèche vers la gauche',
-	diams: 'Carreau noir',
-	asymp: 'Presque égal'
+	diams: 'Losange noir',
+	asymp: 'Environ égal'
 } );
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/it.js	(revision 3339)
@@ -47,5 +47,5 @@
 	Auml: 'Lettera maiuscola latina A con dieresi',
 	Aring: 'Lettera maiuscola latina A con anello sopra',
-	AElig: 'Lettera maiuscola latina AE',
+	AElig: 'Lettera maiuscola latina Æ',
 	Ccedil: 'Lettera maiuscola latina C con cediglia',
 	Egrave: 'Lettera maiuscola latina E con accento grave',
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/pt.js	(revision 3339)
@@ -5,36 +5,36 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'pt', {
-	euro: 'Símbolo do Euro',
+	euro: 'Símbolo de Euro',
 	lsquo: 'Aspa esquerda simples',
 	rsquo: 'Aspa direita simples',
 	ldquo: 'Aspa esquerda dupla',
 	rdquo: 'Aspa direita dupla',
-	ndash: 'Travessão Simples',
-	mdash: 'Travessão Longo',
+	ndash: 'Travessão simples',
+	mdash: 'Travessão longo',
 	iexcl: 'Ponto de exclamação invertido',
-	cent: 'Símbolo do Cêntimo',
-	pound: 'Símbolo da Libra',
+	cent: 'Símbolo de cêntimo',
+	pound: 'Símbolo de Libra',
 	curren: 'Símbolo de Moeda',
-	yen: 'Símbolo do Iene',
+	yen: 'Símbolo de Iene',
 	brvbar: 'Barra quebrada',
-	sect: 'Símbolo de Secção',
+	sect: 'Símbolo de secção',
 	uml: 'Trema',
-	copy: 'Símbolo dos Direitos de Autor',
+	copy: 'Símbolo de direitos de autor',
 	ordf: 'Indicador ordinal feminino',
 	laquo: 'Aspa esquerda ângulo duplo',
-	not: 'Não Símbolo',
-	reg: 'Símbolo de Registado',
+	not: 'Não símbolo',
+	reg: 'Símbolo de registado',
 	macr: 'Mácron',
-	deg: 'Símbolo de Grau',
+	deg: 'Símbolo de graus',
 	sup2: 'Expoente 2',
 	sup3: 'Expoente 3',
 	acute: 'Acento agudo',
-	micro: 'Símbolo de Micro',
-	para: 'Símbolo de Parágrafo',
-	middot: 'Ponto do Meio',
+	micro: 'Símbolo de micro',
+	para: 'Símbolo de parágrafo',
+	middot: 'Ponto do meio',
 	cedil: 'Cedilha',
 	sup1: 'Expoente 1',
 	ordm: 'Indicador ordinal masculino',
-	raquo: 'Aspas ângulo duplo pra Direita',
+	raquo: 'Aspas ângulo duplo para a direita',
 	frac14: 'Fração vulgar 1/4',
 	frac12: 'Fração vulgar 1/2',
@@ -112,8 +112,8 @@
 	'375': 'Letra minúscula latina y com circunflexo',
 	sbquo: 'Aspa Simples inferior-9',
-	'8219': 'Aspa Simples superior invertida-9',
+	'8219': 'Aspa simples superior invertida-9',
 	bdquo: 'Aspa duplas inferior-9',
-	hellip: 'Elipse Horizontal ',
-	trade: 'Símbolo de Marca Registada',
+	hellip: 'Elipse horizontal ',
+	trade: 'Símbolo de marca registada',
 	'9658': 'Ponteiro preto direito',
 	bull: 'Marca',
Index: plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js
===================================================================
--- plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js	(revision 3175)
+++ plugins/dcCKEditor/js/ckeditor/plugins/specialchar/dialogs/lang/sl.js	(revision 3339)
@@ -5,32 +5,32 @@
 
 CKEDITOR.plugins.setLang( 'specialchar', 'sl', {
-	euro: 'Evro znak',
+	euro: 'Znak za evro',
 	lsquo: 'Levi enojni narekovaj',
 	rsquo: 'Desni enojni narekovaj',
 	ldquo: 'Levi dvojni narekovaj',
 	rdquo: 'Desni dvojni narekovaj',
-	ndash: 'En pomišljaj',
-	mdash: 'Em pomišljaj',
+	ndash: 'Pomišljaj',
+	mdash: 'Dolgi pomišljaj',
 	iexcl: 'Obrnjen klicaj',
-	cent: 'Cent znak',
-	pound: 'Funt znak',
+	cent: 'Znak za cent',
+	pound: 'Znak za funt',
 	curren: 'Znak valute',
-	yen: 'Jen znak',
+	yen: 'Znak za jen',
 	brvbar: 'Zlomljena črta',
-	sect: 'Znak oddelka',
-	uml: 'Diaeresis',
+	sect: 'Znak za člen',
+	uml: 'Diereza',
 	copy: 'Znak avtorskih pravic',
 	ordf: 'Ženski zaporedni kazalnik',
-	laquo: 'Levi obrnjen dvojni kotni narekovaj',
-	not: 'Ne znak',
+	laquo: 'Levi dvojni lomljeni narekovaj',
+	not: 'Znak za ne',
 	reg: 'Registrirani znak',
-	macr: 'Macron',
-	deg: 'Znak stopinj',
+	macr: 'Nadčrtano',
+	deg: 'Znak za stopinje',
 	sup2: 'Nadpisano dva',
 	sup3: 'Nadpisano tri',
 	acute: 'Ostrivec',
-	micro: 'Mikro znak',
-	para: 'Pilcrow znak',
-	middot: 'Sredinska pika',
+	micro: 'Znak za mikro',
+	para: 'Znak za odstavek',
+	middot: 'Usredinjena pika',
 	cedil: 'Cedilla',
 	sup1: 'Nadpisano ena',
Index: plugins/dcLegacyEditor/_define.php
===================================================================
--- plugins/dcLegacyEditor/_define.php	(revision 3258)
+++ plugins/dcLegacyEditor/_define.php	(revision 3333)
@@ -19,5 +19,9 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '',
+								'pref' => '#user-options.user_options_edition'
+							)
 	)
 );
Index: plugins/importExport/inc/class.dc.import.feed.php
===================================================================
--- plugins/importExport/inc/class.dc.import.feed.php	(revision 3269)
+++ plugins/importExport/inc/class.dc.import.feed.php	(revision 3340)
@@ -144,6 +144,6 @@
 			$cur->clean();
 			$cur->user_id = $this->core->auth->userID();
-			$cur->post_content = $item->content ? $item->content : $item->description;
-			$cur->post_title = $item->title ? $item->title : text::cutString(html::clean($cur->post_content),60);
+			$cur->post_content = $item->content ?: $item->description;
+			$cur->post_title = $item->title ?: text::cutString(html::clean($cur->post_content),60);
 			$cur->post_format = 'xhtml';
 			$cur->post_status = -2;
Index: plugins/importExport/inc/class.dc.import.wp.php
===================================================================
--- plugins/importExport/inc/class.dc.import.wp.php	(revision 2566)
+++ plugins/importExport/inc/class.dc.import.wp.php	(revision 3340)
@@ -658,5 +658,5 @@
 		}
 		$cur->post_type         = $rs->post_type;
-		$cur->post_password     = $rs->post_password ? $rs->post_password : NULL;
+		$cur->post_password     = $rs->post_password ?: NULL;
 		$cur->post_open_comment = $rs->comment_status == 'open' ? 1 : 0;
 		$cur->post_open_tb      = $rs->ping_status == 'open' ? 1 : 0;
Index: plugins/maintenance/_admin.php
===================================================================
--- plugins/maintenance/_admin.php	(revision 2849)
+++ plugins/maintenance/_admin.php	(revision 3340)
@@ -61,4 +61,5 @@
 
 		->addTask('dcMaintenanceCache')
+		->addTask('dcMaintenanceCSP')
 		->addTask('dcMaintenanceIndexposts')
 		->addTask('dcMaintenanceIndexcomments')
@@ -276,5 +277,5 @@
 				}
 				if (!empty($res_task)) {
-					$desc = $group_obj->description ? $group_obj->description : $group_obj->summary;
+					$desc = $group_obj->description ?: $group_obj->summary;
 
 					$res_group .=
@@ -285,5 +286,5 @@
 			}
 			if (!empty($res_group)) {
-				$desc = $tab_obj->description ? $tab_obj->description : $tab_obj->summary;
+				$desc = $tab_obj->description ?: $tab_obj->summary;
 
 				$res_tab .=
Index: plugins/maintenance/_define.php
===================================================================
--- plugins/maintenance/_define.php	(revision 2257)
+++ plugins/maintenance/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'admin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => '#settings'
+							)
 	)
 
Index: plugins/maintenance/_prepend.php
===================================================================
--- plugins/maintenance/_prepend.php	(revision 2095)
+++ plugins/maintenance/_prepend.php	(revision 3324)
@@ -19,4 +19,5 @@
 
 $__autoload['dcMaintenanceCache'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.cache.php';
+$__autoload['dcMaintenanceCSP'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.csp.php';
 $__autoload['dcMaintenanceCountcomments'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.countcomments.php';
 $__autoload['dcMaintenanceIndexcomments'] = dirname(__FILE__).'/inc/tasks/class.dc.maintenance.indexcomments.php';
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php	(revision 3324)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.csp.php	(revision 3324)
@@ -0,0 +1,36 @@
+<?php
+# -- BEGIN LICENSE BLOCK ---------------------------------------
+#
+# This file is part of Dotclear 2.
+#
+# Copyright (c) 2003-2013 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 dcMaintenanceCSP extends dcMaintenanceTask
+{
+	protected $group = 'purge';
+
+	protected function init()
+	{
+		$this->task 		= __('Delete the Content-Security-Policy report file');
+		$this->success 		= __('Content-Security-Policy report file has been deleted.');
+		$this->error 		= __('Failed to delete the Content-Security-Policy report file.');
+
+		$this->description = __("Remove the Content-Security-Policy report file.");
+	}
+
+	public function execute()
+	{
+		$csp_file = path::real(DC_TPL_CACHE).'/csp_report.txt';
+		if (file_exists($csp_file)) {
+			unlink($csp_file);
+		}
+
+		return true;
+	}
+}
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php	(revision 2566)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.indexcomments.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->core->indexAllComments($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php	(revision 2044)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.indexposts.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->core->indexAllPosts($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php
===================================================================
--- plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php	(revision 2044)
+++ plugins/maintenance/inc/tasks/class.dc.maintenance.synchpostsmeta.php	(revision 3340)
@@ -35,5 +35,5 @@
 		$this->code = $this->synchronizeAllPostsmeta($this->code, $this->limit);
 
-		return $this->code ? $this->code : true;
+		return $this->code ?: true;
 	}
 
Index: plugins/pings/_define.php
===================================================================
--- plugins/pings/_define.php	(revision 2566)
+++ plugins/pings/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'usage,contentadmin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => ''
+							)
 	)
 );
Index: plugins/simpleMenu/_define.php
===================================================================
--- plugins/simpleMenu/_define.php	(revision 2773)
+++ plugins/simpleMenu/_define.php	(revision 3333)
@@ -19,5 +19,8 @@
 	array(
 		'permissions' =>	'admin',
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'self' => ''
+							)
 	)
 );
Index: plugins/tags/_define.php
===================================================================
--- plugins/tags/_define.php	(revision 2924)
+++ plugins/tags/_define.php	(revision 3333)
@@ -20,5 +20,8 @@
 		'permissions' =>	'usage,contentadmin',
 		'priority' =>		1001,	// Must be higher than dcLegacyEditor/dcCKEditor priority (ie 1000)
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'pref' => '#user-options.tags_prefs'
+							)
 	)
 );
Index: plugins/tags/inc/tags.behaviors.php
===================================================================
--- plugins/tags/inc/tags.behaviors.php	(revision 3024)
+++ plugins/tags/inc/tags.behaviors.php	(revision 3333)
@@ -363,7 +363,8 @@
 
 		echo
+		'<div class="fieldset"><h5 id="tags_prefs">'.__('Tags').'</h5>'.
 		'<p><label for="user_tag_list_format" class="classic">'.__('Tags list format:').'</label> '.
 		form::combo('user_tag_list_format',$combo,$value).
-		'</p>';
+		'</p></div>';
 	}
 
Index: plugins/themeEditor/_admin.php
===================================================================
--- plugins/themeEditor/_admin.php	(revision 3257)
+++ plugins/themeEditor/_admin.php	(revision 3333)
@@ -60,5 +60,5 @@
 		echo
 			'<div class="fieldset two-cols clearfix">'.
-			'<h5>'.__('Syntax highlighting').'</h5>';
+			'<h5 id="themeEditor_prefs">'.__('Syntax highlighting').'</h5>';
 		echo
 			'<div class="col">'.
Index: plugins/themeEditor/_define.php
===================================================================
--- plugins/themeEditor/_define.php	(revision 3251)
+++ plugins/themeEditor/_define.php	(revision 3333)
@@ -18,5 +18,8 @@
 	/* Version */			'1.3',
 	array(
-		'type'		=>		'plugin'
+		'type'		=>		'plugin',
+		'settings'	=>		array(
+								'pref' => '#user-options.themeEditor_prefs'
+							)
 	)
 );
Index: plugins/widgets/_admin.php
===================================================================
--- plugins/widgets/_admin.php	(revision 2849)
+++ plugins/widgets/_admin.php	(revision 3330)
@@ -12,15 +12,6 @@
 if (!defined('DC_CONTEXT_ADMIN')) { return; }
 
-$core->addBehavior('adminDashboardFavorites','widgets_dashboard_favorites');
-
-function widgets_dashboard_favorites($core,$favs)
-{
-	$favs->register('widgets', array(
-		'title' => __('Presentation widgets'),
-		'url' => $core->adminurl->get('admin.plugin.widgets'),
-		'small-icon' => dcPage::getPF('widgets/icon.png'),
-		'large-icon' => dcPage::getPF('widgets/icon-big.png'),
-	));
-}
+$core->addBehavior('adminDashboardFavorites',array('widgetsBehaviors','widgets_dashboard_favorites'));
+$core->addBehavior('adminRteFlags',array('widgetsBehaviors','adminRteFlags'));
 
 $_menu['Blog']->addItem(__('Presentation widgets'),
@@ -29,2 +20,20 @@
 		preg_match('/'.preg_quote($core->adminurl->get('admin.plugin.widgets')).'(&.*)?$/',$_SERVER['REQUEST_URI']),
 		$core->auth->check('admin',$core->blog->id));
+
+class widgetsBehaviors
+{
+	public static function widgets_dashboard_favorites($core,$favs)
+	{
+		$favs->register('widgets', array(
+			'title' => __('Presentation widgets'),
+			'url' => $core->adminurl->get('admin.plugin.widgets'),
+			'small-icon' => dcPage::getPF('widgets/icon.png'),
+			'large-icon' => dcPage::getPF('widgets/icon-big.png'),
+		));
+	}
+
+	public static function adminRteFlags($core,$rte)
+	{
+		$rte['widgets_text'] = array(true,__('Widget\'s textareas'));
+	}
+}
Index: plugins/widgets/_define.php
===================================================================
--- plugins/widgets/_define.php	(revision 2778)
+++ plugins/widgets/_define.php	(revision 3330)
@@ -16,5 +16,5 @@
 	/* Description*/		"Widgets for your blog sidebars",
 	/* Author */			"Olivier Meunier & Dotclear Team",
-	/* Version */			'3.3',
+	/* Version */			'3.4',
 	array(
 		'permissions' =>	'admin',
Index: plugins/widgets/index.php
===================================================================
--- plugins/widgets/index.php	(revision 3223)
+++ plugins/widgets/index.php	(revision 3330)
@@ -236,5 +236,12 @@
   <?php
   		$widget_editor = $core->auth->getOption('editor');
-  		echo $core->callBehavior('adminPostEditor',$widget_editor['xhtml'],'widget',array('#sidebarsWidgets textarea'),'xhtml');
+		$rte_flag = true;
+		$rte_flags  = @$core->auth->user_prefs->interface->rte_flags;
+		if (is_array($rte_flags) && in_array('widgets_text',$rte_flags)) {
+			$rte_flag = $rte_flags['widgets_text'];
+		}
+		if ($rte_flag) {
+	  		echo $core->callBehavior('adminPostEditor',$widget_editor['xhtml'],'widget',array('#sidebarsWidgets textarea'),'xhtml');
+		}
   ?>
   <?php echo(dcPage::jsConfirmClose('sidebarsWidgets')); ?>
Index: themes/berlin/tpl/user_footer.html
===================================================================
--- themes/berlin/tpl/user_footer.html	(revision 2786)
+++ themes/berlin/tpl/user_footer.html	(revision 3332)
@@ -33,6 +33,7 @@
             });
 
-            $('#gotop').click(function() {
+            $('#gotop').click(function(e) {
                 $('body,html').animate({scrollTop:0},800);
+                e.preventDefault();
             });
 });
