Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html	(revision 6076)
+++ /CKEditor/trunk/CHANGES.html	(revision 6077)
@@ -36,4 +36,17 @@
 	</h1>
 	<h3>
+			CKEditor 3.5 (SVN)</h3>
+	<p>
+			New features:</p>
+	<ul>
+		<li></li>
+	</ul>
+	<p>
+			Fixed issues:</p>
+	<ul>
+		<li><a href="http://dev.ckeditor.com/ticket/6419">#6419</a> : IE: List creation by merging problem.</li>
+		<li><a href="http://dev.ckeditor.com/ticket/5599">#5599</a> : Labels for special characters need to be resourced.</li>
+	</ul>
+	<h3>
 			CKEditor 3.4.3 (SVN)</h3>
 	<p>
@@ -51,5 +64,4 @@
 		<li><a href="http://dev.ckeditor.com/ticket/6656">#6656</a> : Panelbutton's buttons became active when clicking on source.</li>
 		<li><a href="http://dev.ckeditor.com/ticket/5404">#5404</a> : Whitespaces (NBSP) were incorrectly added into empty table cells and list items.</li>
-		<li><a href="http://dev.ckeditor.com/ticket/6419">#6419</a> : IE: List creation by merging problem.</li>
 	</ul>
 	<h3>
Index: /CKEditor/trunk/_source/plugins/specialchar/dialogs/specialchar.js
===================================================================
--- /CKEditor/trunk/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6076)
+++ /CKEditor/trunk/_source/plugins/specialchar/dialogs/specialchar.js	(revision 6077)
@@ -223,46 +223,9 @@
 		buttons : [ CKEDITOR.dialog.cancelButton ],
 		charColumns : 17,
-		chars :
-			[
-				'!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
-				'0','1','2','3','4','5','6','7','8','9',':',';',
-				'&lt;','=','&gt;','?','@',
-				'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
-				'P','Q','R','S','T','U','V','W','X','Y','Z',
-				'[',']','^','_','`',
-				'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
-				'q','r','s','t','u','v','w','x','y','z',
-				'{','|','}','~','&euro;(EURO SIGN)','&lsquo;(LEFT SINGLE QUOTATION MARK)','&rsquo;(RIGHT SINGLE QUOTATION MARK)','&ldquo;(LEFT DOUBLE QUOTATION MARK)',
-				'&rdquo;(RIGHT DOUBLE QUOTATION MARK)','&ndash;(EN DASH)','&mdash;(EM DASH)','&iexcl;(INVERTED EXCLAMATION MARK)','&cent;(CENT SIGN)','&pound;(POUND SIGN)',
-				'&curren;(CURRENCY SIGN)','&yen;(YEN SIGN)','&brvbar;(BROKEN BAR)','&sect;(SECTION SIGN)','&uml;(DIAERESIS)','&copy;(COPYRIGHT SIGN)','&ordf;(FEMININE ORDINAL INDICATOR)',
-				'&laquo;(LEFT-POINTING DOUBLE ANGLE QUOTATION MARK)','&not;(NOT SIGN)','&reg;(REGISTERED SIGN)','&macr;(MACRON)','&deg;(DEGREE SIGN)','&plusmn;(PLUS-MINUS SIGN)','&sup2;(SUPERSCRIPT TWO)',
-				'&sup3;(SUPERSCRIPT THREE)','&acute;(ACUTE ACCENT)','&micro;(MICRO SIGN)','&para;(PILCROW SIGN)','&middot;(MIDDLE DOT)','&cedil;(CEDILLA)',
-				'&sup1;(SUPERSCRIPT ONE)','&ordm;(MASCULINE ORDINAL INDICATOR)','&raquo;(RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK)','&frac14;(VULGAR FRACTION ONE QUARTER)','&frac12;(VULGAR FRACTION ONE HALF)','&frac34;(VULGAR FRACTION THREE QUARTERS)',
-				'&iquest;(INVERTED QUESTION MARK)','&Agrave;(LATIN CAPITAL LETTER A WITH GRAVE)','&Aacute;(LATIN CAPITAL LETTER A WITH ACUTE)','&Acirc;(LATIN CAPITAL LETTER A WITH CIRCUMFLEX)','&Atilde;(LATIN CAPITAL LETTER A WITH TILDE)','&Auml;(LATIN CAPITAL LETTER A WITH DIAERESIS)',
-				'&Aring;(LATIN CAPITAL LETTER A WITH RING ABOVE)','&AElig;(LATIN CAPITAL LETTER AE)','&Ccedil;(LATIN CAPITAL LETTER C WITH CEDILLA)','&Egrave;(LATIN CAPITAL LETTER E WITH GRAVE)','&Eacute;(LATIN CAPITAL LETTER E WITH ACUTE)','&Ecirc;(LATIN CAPITAL LETTER E WITH CIRCUMFLEX)',
-				'&Euml;(LATIN CAPITAL LETTER E WITH DIAERESIS)','&Igrave;(LATIN CAPITAL LETTER I WITH GRAVE)','&Iacute;(LATIN CAPITAL LETTER I WITH ACUTE)','&Icirc;(LATIN CAPITAL LETTER I WITH CIRCUMFLEX)','&Iuml;(LATIN CAPITAL LETTER I WITH DIAERESIS)','&ETH;(LATIN CAPITAL LETTER ETH)',
-				'&Ntilde;(LATIN CAPITAL LETTER N WITH TILDE)','&Ograve;(LATIN CAPITAL LETTER O WITH GRAVE)','&Oacute;(LATIN CAPITAL LETTER O WITH ACUTE)','&Ocirc;(LATIN CAPITAL LETTER O WITH CIRCUMFLEX)','&Otilde;(LATIN CAPITAL LETTER O WITH TILDE)','&Ouml;(LATIN CAPITAL LETTER O WITH DIAERESIS)',
-				'&times;(MULTIPLICATION SIGN)','&Oslash;(LATIN CAPITAL LETTER O WITH STROKE)','&Ugrave;(LATIN CAPITAL LETTER U WITH GRAVE)','&Uacute;(LATIN CAPITAL LETTER U WITH ACUTE)','&Ucirc;(LATIN CAPITAL LETTER U WITH CIRCUMFLEX)','&Uuml;(LATIN CAPITAL LETTER U WITH DIAERESIS)',
-				'&Yacute;(LATIN CAPITAL LETTER Y WITH ACUTE)','&THORN;(LATIN CAPITAL LETTER THORN)','&szlig;(LATIN SMALL LETTER SHARP S)','&agrave;(LATIN SMALL LETTER A WITH GRAVE)','&aacute;(LATIN SMALL LETTER A WITH ACUTE)','&acirc;(LATIN SMALL LETTER A WITH CIRCUMFLEX)',
-				'&atilde;(LATIN SMALL LETTER A WITH TILDE)','&auml;(LATIN SMALL LETTER A WITH DIAERESIS)','&aring;(LATIN SMALL LETTER A WITH RING ABOVE)','&aelig;(LATIN SMALL LETTER AE)','&ccedil;(LATIN SMALL LETTER C WITH CEDILLA)','&egrave;(LATIN SMALL LETTER E WITH GRAVE)',
-				'&eacute;(LATIN SMALL LETTER E WITH ACUTE)','&ecirc;(LATIN SMALL LETTER E WITH CIRCUMFLEX)','&euml;(LATIN SMALL LETTER E WITH DIAERESIS)','&igrave;(LATIN SMALL LETTER I WITH GRAVE)','&iacute;(LATIN SMALL LETTER I WITH ACUTE)','&icirc;(LATIN SMALL LETTER I WITH CIRCUMFLEX)',
-				'&iuml;(LATIN SMALL LETTER I WITH DIAERESIS)','&eth;(LATIN SMALL LETTER ETH)','&ntilde;(LATIN SMALL LETTER N WITH TILDE)','&ograve;(LATIN SMALL LETTER O WITH GRAVE)','&oacute;(LATIN SMALL LETTER O WITH ACUTE)','&ocirc;(LATIN SMALL LETTER O WITH CIRCUMFLEX)',
-				'&otilde;(LATIN SMALL LETTER O WITH TILDE)','&ouml;(LATIN SMALL LETTER O WITH DIAERESIS)',
-				'&divide;(DIVISION SIGN)','&oslash;(LATIN SMALL LETTER O WITH STROKE)',
-				'&ugrave;(LATIN SMALL LETTER U WITH GRAVE)','&uacute;(LATIN SMALL LETTER U WITH ACUTE)',
-				'&ucirc;(LATIN SMALL LETTER U WITH CIRCUMFLEX)','&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)',
-				'&uuml;(LATIN SMALL LETTER U WITH DIAERESIS)','&yacute;(LATIN SMALL LETTER Y WITH ACUTE)','&thorn;(LATIN SMALL LETTER THORN)','&yuml;(LATIN SMALL LETTER Y WITH DIAERESIS)',
-				'&OElig;(LATIN CAPITAL LIGATURE OE)',
-				'&oelig;(LATIN SMALL LIGATURE OE)','&#372;(LATIN CAPITAL LETTER W WITH CIRCUMFLEX)',
-				'&#374(LATIN CAPITAL LETTER Y WITH CIRCUMFLEX)','&#373(LATIN SMALL LETTER W WITH CIRCUMFLEX)',
-				'&#375;(LATIN SMALL LETTER Y WITH CIRCUMFLEX)','&sbquo;(SINGLE LOW-9 QUOTATION MARK)',
-				'&#8219;(SINGLE HIGH-REVERSED-9 QUOTATION MARK)','&bdquo;(DOUBLE LOW-9 QUOTATION MARK)','&hellip;(HORIZONTAL ELLIPSIS)',
-				'&trade;(TRADE MARK SIGN)','&#9658;(BLACK RIGHT-POINTING POINTER)','&bull;(BULLET)',
-				'&rarr;(RIGHTWARDS ARROW)','&rArr;(RIGHTWARDS DOUBLE ARROW)','&hArr;(LEFT RIGHT DOUBLE ARROW)','&diams;(BLACK DIAMOND SUIT)','&asymp;(ALMOST EQUAL TO)'
-			],
 		onLoad :  function()
 		{
 			var columns = this.definition.charColumns,
-				chars = this.definition.chars;
+				extraChars = editor.config.extraSpecialChars,
+				chars = editor.config.specialChars;
 
 			var charsTableLabel =  CKEDITOR.tools.getNextId() + '_specialchar_table_label';
@@ -285,12 +248,17 @@
 					{
 						charDesc = '';
-						character = character.replace( /\((.*?)\)/, function( match, desc )
-							{
-								charDesc = desc;
-								return '';
-							} );
-
-						// Use character in case description unavailable.
-						charDesc = charDesc || character;
+						
+						if ( character instanceof Array )
+						{
+							charDesc = character[ 1 ];
+							character = character[ 0 ];
+						}
+						else
+						{
+							var _tmpName = character.toLowerCase().replace( '&', '' ).replace( ';', '' ).replace( '#', '' );
+
+							// Use character in case description unavailable.
+							charDesc = lang[ _tmpName ] || character;
+						}
 
 						var charLabelId =  'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber();
Index: /CKEditor/trunk/_source/plugins/specialchar/lang/en.js
===================================================================
--- /CKEditor/trunk/_source/plugins/specialchar/lang/en.js	(revision 6077)
+++ /CKEditor/trunk/_source/plugins/specialchar/lang/en.js	(revision 6077)
@@ -0,0 +1,89 @@
+
+CKEDITOR.plugins.setLang( 'specialchar', 'en',
+{
+	euro: "EURO SIGN",
+	lsquo: "LEFT SINGLE QUOTATION MARK",
+	rsquo: "RIGHT SINGLE QUOTATION MARK",
+	ldquo: "LEFT DOUBLE QUOTATION MARK",
+	rdquo: "RIGHT DOUBLE QUOTATION MARK",
+	ndash: "EN DASH",
+	mdash: "EM DASH",
+	iexcl: "INVERTED EXCLAMATION MARK",
+	cent: "CENT SIGN",
+	pound: "POUND SIGN",
+	curren: "CURRENCY SIGN",
+	yen: "YEN SIGN",
+	brvbar: "BROKEN BAR",
+	sect: "SECTION SIGN",
+	uml: "DIAERESIS",
+	copy: "COPYRIGHT SIGN",
+	ordf: "FEMININE ORDINAL INDICATOR",
+	laquo: "LEFT-POINTING DOUBLE ANGLE QUOTATION MARK",
+	not: "NOT SIGN",
+	reg: "REGISTERED SIGN",
+	macr: "MACRON",
+	deg: "DEGREE SIGN",
+	sup2: "SUPERSCRIPT TWO",
+	sup3: "SUPERSCRIPT THREE",
+	acute: "ACUTE ACCENT",
+	micro: "MICRO SIGN",
+	para: "PILCROW SIGN",
+	middot: "MIDDLE DOT",
+	cedil: "CEDILLA",
+	sup1: "SUPERSCRIPT ONE",
+	ordm: "MASCULINE ORDINAL INDICATOR",
+	frac14: "VULGAR FRACTION ONE QUARTER",
+	frac12: "VULGAR FRACTION ONE HALF",
+	frac34: "VULGAR FRACTION THREE QUARTERS",
+	iquest: "INVERTED QUESTION MARK",
+	agrave: "LATIN SMALL LETTER A WITH GRAVE",
+	aacute: "LATIN SMALL LETTER A WITH ACUTE",
+	acirc: "LATIN SMALL LETTER A WITH CIRCUMFLEX",
+	atilde: "LATIN SMALL LETTER A WITH TILDE",
+	auml: "LATIN SMALL LETTER A WITH DIAERESIS",
+	aring: "LATIN SMALL LETTER A WITH RING ABOVE",
+	aelig: "LATIN SMALL LETTER AE",
+	ccedil: "LATIN SMALL LETTER C WITH CEDILLA",
+	egrave: "LATIN SMALL LETTER E WITH GRAVE",
+	eacute: "LATIN SMALL LETTER E WITH ACUTE",
+	ecirc: "LATIN SMALL LETTER E WITH CIRCUMFLEX",
+	euml: "LATIN SMALL LETTER E WITH DIAERESIS",
+	igrave: "LATIN SMALL LETTER I WITH GRAVE",
+	iacute: "LATIN SMALL LETTER I WITH ACUTE",
+	icirc: "LATIN SMALL LETTER I WITH CIRCUMFLEX",
+	iuml: "LATIN SMALL LETTER I WITH DIAERESIS",
+	eth: "LATIN SMALL LETTER ETH",
+	ntilde: "LATIN SMALL LETTER N WITH TILDE",
+	ograve: "LATIN SMALL LETTER O WITH GRAVE",
+	oacute: "LATIN SMALL LETTER O WITH ACUTE",
+	ocirc: "LATIN SMALL LETTER O WITH CIRCUMFLEX",
+	otilde: "LATIN SMALL LETTER O WITH TILDE",
+	ouml: "LATIN SMALL LETTER O WITH DIAERESIS",
+	times: "MULTIPLICATION SIGN",
+	oslash: "LATIN SMALL LETTER O WITH STROKE",
+	ugrave: "LATIN SMALL LETTER U WITH GRAVE",
+	uacute: "LATIN SMALL LETTER U WITH ACUTE",
+	ucirc: "LATIN SMALL LETTER U WITH CIRCUMFLEX",
+	uuml: "LATIN SMALL LETTER U WITH DIAERESIS",
+	yacute: "LATIN SMALL LETTER Y WITH ACUTE",
+	thorn: "LATIN SMALL LETTER THORN",
+	szlig: "LATIN SMALL LETTER SHARP S",
+	divide: "DIVISION SIGN",
+	yuml: "LATIN SMALL LETTER Y WITH DIAERESIS",
+	oelig: "LATIN SMALL LIGATURE OE",
+	'372': "LATIN CAPITAL LETTER W WITH CIRCUMFLEX",
+	'374': "LATIN CAPITAL LETTER Y WITH CIRCUMFLEX",
+	'373': "LATIN SMALL LETTER W WITH CIRCUMFLEX",
+	'375': "LATIN SMALL LETTER Y WITH CIRCUMFLEX",
+	8219: "SINGLE HIGH-REVERSED-9 QUOTATION MARK",
+	bdquo: "DOUBLE LOW-9 QUOTATION MARK",
+	hellip: "HORIZONTAL ELLIPSIS",
+	trade: "TRADE MARK SIGN",
+	'9658': "BLACK RIGHT-POINTING POINTER",
+	bull: "BULLET",
+	rarr: "RIGHTWARDS DOUBLE ARROW",
+	harr: "LEFT RIGHT DOUBLE ARROW",
+	diams: "BLACK DIAMOND SUIT",
+	asymp: "ALMOST EQUAL TO",
+	sbquo: 'SINGLE LOW-9 QUOTATION MARK'
+});
Index: /CKEditor/trunk/_source/plugins/specialchar/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/specialchar/plugin.js	(revision 6076)
+++ /CKEditor/trunk/_source/plugins/specialchar/plugin.js	(revision 6077)
@@ -10,13 +10,33 @@
 CKEDITOR.plugins.add( 'specialchar',
 {
+	// List of available localizations.
+	availableLangs : { en:1 },
+	
 	init : function( editor )
 	{
-		var pluginName = 'specialchar';
+		var pluginName = 'specialchar',
+			plugin = this;
 
 		// Register the dialog.
 		CKEDITOR.dialog.add( pluginName, this.path + 'dialogs/specialchar.js' );
 
-		// Register the command.
-		editor.addCommand( pluginName, new CKEDITOR.dialogCommand( pluginName ) );
+		editor.addCommand( pluginName,
+			{
+				exec : function()
+				{
+					var langCode = editor.langCode;
+					langCode = plugin.availableLangs[ langCode ] ? langCode : 'en';
+
+					CKEDITOR.scriptLoader.load(
+							CKEDITOR.getUrl( plugin.path + 'lang/' + langCode + '.js' ),
+							function()
+							{
+								CKEDITOR.tools.extend( editor.lang.specialChar, plugin.lang[ langCode ] );
+								editor.openDialog( pluginName );
+							});
+				},
+				modes : { wysiwyg:1 },
+				canUndo : false
+			});
 
 		// Register the toolbar button.
@@ -28,2 +48,23 @@
 	}
 } );
+
+/**
+  * The list of special characters visible in Special Character dialog.
+  * @type Array
+  * @example
+  * config.specialChars = [ '&quot;', '&rsquo;', [ '&custom;', 'Custom label' ] ];
+  * config.specialChars = config.specialChars.concat( [ '&quot;', [ '&rsquo;', 'Custom label' ] ] );
+  */
+CKEDITOR.config.specialChars = 
+	[
+		'!','&quot;','#','$','%','&amp;',"'",'(',')','*','+','-','.','/',
+		'0','1','2','3','4','5','6','7','8','9',':',';',
+		'&lt;','=','&gt;','?','@',
+		'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O',
+		'P','Q','R','S','T','U','V','W','X','Y','Z',
+		'[',']','^','_','`',
+		'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p',
+		'q','r','s','t','u','v','w','x','y','z',
+		'{','|','}','~',
+		"&euro;", "&lsquo;", "&rsquo;", "&ldquo;", "&rdquo;", "&ndash;", "&mdash;", "&iexcl;", "&cent;", "&pound;", "&curren;", "&yen;", "&brvbar;", "&sect;", "&uml;", "&copy;", "&ordf;", "&laquo;", "&not;", "&reg;", "&macr;", "&deg;", "&", "&sup2;", "&sup3;", "&acute;", "&micro;", "&para;", "&middot;", "&cedil;", "&sup1;", "&ordm;", "&", "&frac14;", "&frac12;", "&frac34;", "&iquest;", "&Agrave;", "&Aacute;", "&Acirc;", "&Atilde;", "&Auml;", "&Aring;", "&AElig;", "&Ccedil;", "&Egrave;", "&Eacute;", "&Ecirc;", "&Euml;", "&Igrave;", "&Iacute;", "&Icirc;", "&Iuml;", "&ETH;", "&Ntilde;", "&Ograve;", "&Oacute;", "&Ocirc;", "&Otilde;", "&Ouml;", "&times;", "&Oslash;", "&Ugrave;", "&Uacute;", "&Ucirc;", "&Uuml;", "&Yacute;", "&THORN;", "&szlig;", "&agrave;", "&aacute;", "&acirc;", "&atilde;", "&auml;", "&aring;", "&aelig;", "&ccedil;", "&egrave;", "&eacute;", "&ecirc;", "&euml;", "&igrave;", "&iacute;", "&icirc;", "&iuml;", "&eth;", "&ntilde;", "&ograve;", "&oacute;", "&ocirc;", "&otilde;", "&ouml;", "&divide;", "&oslash;", "&ugrave;", "&uacute;", "&ucirc;", "&uuml;", "&uuml;", "&yacute;", "&thorn;", "&yuml;", "&OElig;", "&oelig;", "&#372;", "&#374", "&#373", "&#375;", "&sbquo;", "&#8219;", "&bdquo;", "&hellip;", "&trade;", "&#9658;", "&bull;", "&rarr;", "&rArr;", "&hArr;", "&diams;", "&asymp;"
+	];
