You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by sn...@apache.org on 2006/10/08 21:54:16 UTC

svn commit: r454197 [7/29] - in /incubator/roller/trunk/web: WEB-INF/classes/ roller-ui/authoring/editors/ roller-ui/authoring/editors/xinha/ roller-ui/authoring/editors/xinha/conf/ roller-ui/authoring/editors/xinha/contrib/ roller-ui/authoring/editors...

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/CharacterMap/popups/select_character.html
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/CharacterMap/popups/select_character.html?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/CharacterMap/popups/select_character.html (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/CharacterMap/popups/select_character.html Sun Oct  8 12:53:13 2006
@@ -0,0 +1,183 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+<html>
+<head>
+<title>Insert special character</title>
+<link rel="stylesheet" type="text/css" href="../CharacterMap.css" />
+<script type="text/javascript" src="../../../popups/popup.js"></script>
+<link rel="stylesheet" type="text/css" href="../../../popups/popup.css" />
+<script type="text/javascript">
+// HTMLSource based on HTMLArea XTD 1.5 modified by Holger Hees
+// Original Author - Bernhard Pfeifer novocaine@gmx.net
+HTMLArea = window.opener.HTMLArea;
+function Init() // run on page load
+{
+  __dlg_translate('CharacterMap');
+  __dlg_init();
+  window.resizeTo(480, 300);
+  var character = ''; // set default input to empty
+  View( null, character );
+  document.getElementById("cancel").focus();
+}
+var oldView = null;
+function View( td, character ) // preview character
+{
+  if (oldView)
+    HTMLArea._removeClass(oldView, 'character-hilite');
+  if (td) {
+    oldView = td;
+    HTMLArea._addClass(oldView, 'character-hilite');
+  }
+}
+function Set( string ) // return character
+{
+  var character = string;
+  __dlg_close( character );
+}
+function onCancel() // cancel selection
+{
+  __dlg_close( null );
+  return false;
+}
+
+</script>
+</head>
+<body class="dialog popup" onload="Init();">
+<table border="0" cellspacing="1" cellpadding="0" width="100%">
+<tr>
+<td class="character" onmouseover="View(this,'&amp;Yuml;')" onclick="Set('&Yuml;')">&Yuml;</td>
+<td class="character" onmouseover="View(this,'&amp;scaron;')" onclick="Set('&scaron;')">&scaron;</td>
+<td class="character" onmouseover="View(this,'&amp;#064;')" onclick="Set('&#064;')">@</td>
+<td class="character" onmouseover="View(this,'&amp;quot;')" onclick="Set('&quot;')">&quot;</td>
+<td class="character" onmouseover="View(this,'&amp;iexcl;')" onclick="Set('&iexcl;')">&iexcl;</td>
+<td class="character" onmouseover="View(this,'&amp;cent;')" onclick="Set('&cent;')">&cent;</td>
+<td class="character" onmouseover="View(this,'&amp;pound;')" onclick="Set('&pound;')">&pound;</td>
+<td class="character" onmouseover="View(this,'&amp;curren;')" onclick="Set('&curren;')">&curren;</td>
+<td class="character" onmouseover="View(this,'&amp;yen;')" onclick="Set('&yen;')">&yen;</td>
+<td class="character" onmouseover="View(this,'&amp;brvbar;')" onclick="Set('&brvbar;')">&brvbar;</td>
+<td class="character" onmouseover="View(this,'&amp;sect;')" onclick="Set('&sect;')">&sect;</td>
+<td class="character" onmouseover="View(this,'&amp;uml;')" onclick="Set('&uml;')">&uml;</td>
+<td class="character" onmouseover="View(this,'&amp;copy;')" onclick="Set('&copy;')">&copy;</td>
+<td class="character" onmouseover="View(this,'&amp;ordf;')" onclick="Set('&ordf;')">&ordf;</td>
+<td class="character" onmouseover="View(this,'&amp;laquo;')" onclick="Set('&laquo;')">&laquo;</td>
+<td class="character" onmouseover="View(this,'&amp;not;')" onclick="Set('&not;')">&not;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;macr;')" onclick="Set('&macr;')">&macr;</td>
+<td class="character" onmouseover="View(this,'&amp;deg;')" onclick="Set('&deg;')">&deg;</td>
+<td class="character" onmouseover="View(this,'&amp;plusmn;')" onclick="Set('&plusmn;')">&plusmn;</td>
+<td class="character" onmouseover="View(this,'&amp;sup2;')" onclick="Set('&sup2;')">&sup2;</td>
+<td class="character" onmouseover="View(this,'&amp;sup3;')" onclick="Set('&sup3;')">&sup3;</td>
+<td class="character" onmouseover="View(this,'&amp;acute;')" onclick="Set('&acute;')">&acute;</td>
+<td class="character" onmouseover="View(this,'&amp;micro;')" onclick="Set('&micro;')">&micro;</td>
+<td class="character" onmouseover="View(this,'&amp;para;')" onclick="Set('&para;')">&para;</td>
+<td class="character" onmouseover="View(this,'&amp;middot;')" onclick="Set('&middot;')">&middot;</td>
+<td class="character" onmouseover="View(this,'&amp;cedil;')" onclick="Set('&cedil;')">&cedil;</td>
+<td class="character" onmouseover="View(this,'&amp;sup1;')" onclick="Set('&sup1;')">&sup1;</td>
+<td class="character" onmouseover="View(this,'&amp;ordm;')" onclick="Set('&ordm;')">&ordm;</td>
+<td class="character" onmouseover="View(this,'&amp;raquo;')" onclick="Set('&raquo;')">&raquo;</td>
+<td class="character" onmouseover="View(this,'&amp;frac14;')" onclick="Set('&frac14;')">&frac14;</td>
+<td class="character" onmouseover="View(this,'&amp;frac12;')" onclick="Set('&frac12;')">&frac12;</td>
+<td class="character" onmouseover="View(this,'&amp;frac34;')" onclick="Set('&frac34;')">&frac34;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;iquest;')" onclick="Set('&iquest;')">&iquest;</td>
+<td class="character" onmouseover="View(this,'&amp;times;')" onclick="Set('&times;')">&times;</td>
+<td class="character" onmouseover="View(this,'&amp;Oslash;')" onclick="Set('&Oslash;')">&Oslash;</td>
+<td class="character" onmouseover="View(this,'&amp;divide;')" onclick="Set('&divide;')">&divide;</td>
+<td class="character" onmouseover="View(this,'&amp;oslash;')" onclick="Set('&oslash;')">&oslash;</td>
+<td class="character" onmouseover="View(this,'&amp;fnof;')" onclick="Set('&fnof;')">&fnof;</td>
+<td class="character" onmouseover="View(this,'&amp;circ;')" onclick="Set('&circ;')">&circ;</td>
+<td class="character" onmouseover="View(this,'&amp;tilde;')" onclick="Set('&tilde;')">&tilde;</td>
+<td class="character" onmouseover="View(this,'&amp;ndash;')" onclick="Set('&ndash;')">&ndash;</td>
+<td class="character" onmouseover="View(this,'&amp;mdash;')" onclick="Set('&mdash;')">&mdash;</td>
+<td class="character" onmouseover="View(this,'&amp;lsquo;')" onclick="Set('&lsquo;')">&lsquo;</td>
+<td class="character" onmouseover="View(this,'&amp;rsquo;')" onclick="Set('&rsquo;')">&rsquo;</td>
+<td class="character" onmouseover="View(this,'&amp;sbquo;')" onclick="Set('&sbquo;')">&sbquo;</td>
+<td class="character" onmouseover="View(this,'&amp;ldquo;')" onclick="Set('&ldquo;')">&ldquo;</td>
+<td class="character" onmouseover="View(this,'&amp;rdquo;')" onclick="Set('&rdquo;')">&rdquo;</td>
+<td class="character" onmouseover="View(this,'&amp;bdquo;')" onclick="Set('&bdquo;')">&bdquo;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;dagger;')" onclick="Set('&dagger;')">&dagger;</td>
+<td class="character" onmouseover="View(this,'&amp;Dagger;')" onclick="Set('&Dagger;')">&Dagger;</td>
+<td class="character" onmouseover="View(this,'&amp;bull;')" onclick="Set('&bull;')">&bull;</td>
+<td class="character" onmouseover="View(this,'&amp;hellip;')" onclick="Set('&hellip;')">&hellip;</td>
+<td class="character" onmouseover="View(this,'&amp;permil;')" onclick="Set('&permil;')">&permil;</td>
+<td class="character" onmouseover="View(this,'&amp;lsaquo;')" onclick="Set('&lsaquo;')">&lsaquo;</td>
+<td class="character" onmouseover="View(this,'&amp;rsaquo;')" onclick="Set('&rsaquo;')">&rsaquo;</td>
+<td class="character" onmouseover="View(this,'&amp;euro;')" onclick="Set('&euro;')">&euro;</td>
+<td class="character" onmouseover="View(this,'&amp;trade;')" onclick="Set('&trade;')">&trade;</td>
+<td class="character" onmouseover="View(this,'&amp;Agrave;')" onclick="Set('&Agrave;')">&Agrave;</td>
+<td class="character" onmouseover="View(this,'&amp;Aacute;')" onclick="Set('&Aacute;')">&Aacute;</td>
+<td class="character" onmouseover="View(this,'&amp;Acirc;')" onclick="Set('&Acirc;')">&Acirc;</td>
+<td class="character" onmouseover="View(this,'&amp;Atilde;')" onclick="Set('&Atilde;')">&Atilde;</td>
+<td class="character" onmouseover="View(this,'&amp;Auml;')" onclick="Set('&Auml;')">&Auml;</td>
+<td class="character" onmouseover="View(this,'&amp;Aring;')" onclick="Set('&Aring;')">&Aring;</td>
+<td class="character" onmouseover="View(this,'&amp;AElig;')" onclick="Set('&AElig;')">&AElig;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;Ccedil;')" onclick="Set('&Ccedil;')">&Ccedil;</td>
+<td class="character" onmouseover="View(this,'&amp;Egrave;')" onclick="Set('&Egrave;')">&Egrave;</td>
+<td class="character" onmouseover="View(this,'&amp;Eacute;')" onclick="Set('&Eacute;')">&Eacute;</td>
+<td class="character" onmouseover="View(this,'&amp;Ecirc;')" onclick="Set('&Ecirc;')">&Ecirc;</td>
+<td class="character" onmouseover="View(this,'&amp;Euml;')" onclick="Set('&Euml;')">&Euml;</td>
+<td class="character" onmouseover="View(this,'&amp;Igrave;')" onclick="Set('&Igrave;')">&Igrave;</td>
+<td class="character" onmouseover="View(this,'&amp;Iacute;')" onclick="Set('&Iacute;')">&Iacute;</td>
+<td class="character" onmouseover="View(this,'&amp;Icirc;')" onclick="Set('&Icirc;')">&Icirc;</td>
+<td class="character" onmouseover="View(this,'&amp;Iuml;')" onclick="Set('&Iuml;')">&Iuml;</td>
+<td class="character" onmouseover="View(this,'&amp;ETH;')" onclick="Set('&ETH;')">&ETH;</td>
+<td class="character" onmouseover="View(this,'&amp;Ntilde;')" onclick="Set('&Ntilde;')">&Ntilde;</td>
+<td class="character" onmouseover="View(this,'&amp;Ograve;')" onclick="Set('&Ograve;')">&Ograve;</td>
+<td class="character" onmouseover="View(this,'&amp;Oacute;')" onclick="Set('&Oacute;')">&Oacute;</td>
+<td class="character" onmouseover="View(this,'&amp;Ocirc;')" onclick="Set('&Ocirc;')">&Ocirc;</td>
+<td class="character" onmouseover="View(this,'&amp;Otilde;')" onclick="Set('&Otilde;')">&Otilde;</td>
+<td class="character" onmouseover="View(this,'&amp;Ouml;')" onclick="Set('&Ouml;')">&Ouml;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;reg;')" onclick="Set('&reg;')">&reg;</td>
+<td class="character" onmouseover="View(this,'&amp;times;')" onclick="Set('&times;')">&times;</td>
+<td class="character" onmouseover="View(this,'&amp;Ugrave;')" onclick="Set('&Ugrave;')">&Ugrave;</td>
+<td class="character" onmouseover="View(this,'&amp;Uacute;')" onclick="Set('&Uacute;')">&Uacute;</td>
+<td class="character" onmouseover="View(this,'&amp;Ucirc;')" onclick="Set('&Ucirc;')">&Ucirc;</td>
+<td class="character" onmouseover="View(this,'&amp;Uuml;')" onclick="Set('&Uuml;')">&Uuml;</td>
+<td class="character" onmouseover="View(this,'&amp;Yacute;')" onclick="Set('&Yacute;')">&Yacute;</td>
+<td class="character" onmouseover="View(this,'&amp;THORN;')" onclick="Set('&THORN;')">&THORN;</td>
+<td class="character" onmouseover="View(this,'&amp;szlig;')" onclick="Set('&szlig;')">&szlig;</td>
+<td class="character" onmouseover="View(this,'&amp;agrave;')" onclick="Set('&agrave;')">&agrave;</td>
+<td class="character" onmouseover="View(this,'&amp;aacute;')" onclick="Set('&aacute;')">&aacute;</td>
+<td class="character" onmouseover="View(this,'&amp;acirc;')" onclick="Set('&acirc;')">&acirc;</td>
+<td class="character" onmouseover="View(this,'&amp;atilde;')" onclick="Set('&atilde;')">&atilde;</td>
+<td class="character" onmouseover="View(this,'&amp;auml;')" onclick="Set('&auml;')">&auml;</td>
+<td class="character" onmouseover="View(this,'&amp;aring;')" onclick="Set('&aring;')">&aring;</td>
+<td class="character" onmouseover="View(this,'&amp;aelig;')" onclick="Set('&aelig;')">&aelig;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;ccedil;')" onclick="Set('&ccedil;')">&ccedil;</td>
+<td class="character" onmouseover="View(this,'&amp;egrave;')" onclick="Set('&egrave;')">&egrave;</td>
+<td class="character" onmouseover="View(this,'&amp;eacute;')" onclick="Set('&eacute;')">&eacute;</td>
+<td class="character" onmouseover="View(this,'&amp;ecirc;')" onclick="Set('&ecirc;')">&ecirc;</td>
+<td class="character" onmouseover="View(this,'&amp;euml;')" onclick="Set('&euml;')">&euml;</td>
+<td class="character" onmouseover="View(this,'&amp;igrave;')" onclick="Set('&igrave;')">&igrave;</td>
+<td class="character" onmouseover="View(this,'&amp;iacute;')" onclick="Set('&iacute;')">&iacute;</td>
+<td class="character" onmouseover="View(this,'&amp;icirc;')" onclick="Set('&icirc;')">&icirc;</td>
+<td class="character" onmouseover="View(this,'&amp;iuml;')" onclick="Set('&iuml;')">&iuml;</td>
+<td class="character" onmouseover="View(this,'&amp;eth;')" onclick="Set('&eth;')">&eth;</td>
+<td class="character" onmouseover="View(this,'&amp;ntilde;')" onclick="Set('&ntilde;')">&ntilde;</td>
+<td class="character" onmouseover="View(this,'&amp;ograve;')" onclick="Set('&ograve;')">&ograve;</td>
+<td class="character" onmouseover="View(this,'&amp;oacute;')" onclick="Set('&oacute;')">&oacute;</td>
+<td class="character" onmouseover="View(this,'&amp;ocirc;')" onclick="Set('&ocirc;')">&ocirc;</td>
+<td class="character" onmouseover="View(this,'&amp;otilde;')" onclick="Set('&otilde;')">&otilde;</td>
+<td class="character" onmouseover="View(this,'&amp;ouml;')" onclick="Set('&ouml;')">&ouml;</td>
+</tr><tr>
+<td class="character" onmouseover="View(this,'&amp;divide;')" onclick="Set('&divide;')">&divide;</td>
+<td class="character" onmouseover="View(this,'&amp;oslash;')" onclick="Set('&oslash;')">&oslash;</td>
+<td class="character" onmouseover="View(this,'&amp;ugrave;')" onclick="Set('&ugrave;')">&ugrave;</td>
+<td class="character" onmouseover="View(this,'&amp;uacute;')" onclick="Set('&uacute;')">&uacute;</td>
+<td class="character" onmouseover="View(this,'&amp;ucirc;')" onclick="Set('&ucirc;')">&ucirc;</td>
+<td class="character" onmouseover="View(this,'&amp;uuml;')" onclick="Set('&uuml;')">&uuml;</td>
+<td class="character" onmouseover="View(this,'&amp;yacute;')" onclick="Set('&yacute;')">&yacute;</td>
+<td class="character" onmouseover="View(this,'&amp;thorn;')" onclick="Set('&thorn;')">&thorn;</td>
+<td class="character" onmouseover="View(this,'&amp;yuml;')" onclick="Set('&yuml;')">&yuml;</td>
+<td class="character" onmouseover="View(this,'&amp;OElig;')" onclick="Set('&OElig;')">&OElig;</td>
+<td class="character" onmouseover="View(this,'&amp;oelig;')" onclick="Set('&oelig;')">&oelig;</td>
+<td class="character" onmouseover="View(this,'&amp;Scaron;')" onclick="Set('&Scaron;')">&Scaron;</td>
+<td class="character" colspan="4">&nbsp;</td>
+</tr>
+</table><br>
+<form action="#"><button type="button" id="cancel" name="cancel" onclick="return onCancel();">Cancel</button></form>
+</body>
+</html>
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/clientside-spellcheck.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,62 @@
+// IE Spell Implementation for XINHA
+//Client-side spell check plugin
+//This implements the API for ieSpell, which is owned by Red Egg Software 
+//For more info about ieSpell, go to http://www.iespell.com/index.htm
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+
+
+function ClientsideSpellcheck(editor) {
+  this.editor = editor;
+
+  var cfg = editor.config;
+  var bl = ClientsideSpellcheck.btnList;
+  var self = this;
+
+  // see if we can find the mode switch button, insert this before that
+  var id = "clientsidespellcheck";
+  
+  
+  cfg.registerButton(id, this._lc("Spell Check using ieSpell"), editor.imgURL("clientside-spellcheck.gif", "ClientsideSpellcheck"), false,
+             function(editor, id) {
+               // dispatch button press event
+               self.buttonPress(editor, id);
+             });
+
+  if(HTMLArea.is_ie) {
+    cfg.addToolbarElement("clientsidespellcheck", "print", 1);
+}
+
+}
+
+ClientsideSpellcheck._pluginInfo = {
+  name          : "ClientsideSpellcheck",
+  version       : "1.0",
+  developer     : "Michael Harris",
+  developer_url : "http://www.jonesinternational.edu",
+  c_owner       : "Red Egg Software",
+  sponsor       : "Jones International University",
+  sponsor_url   : "http://www.jonesinternational.edu",
+  license       : "htmlArea"
+};
+
+
+ClientsideSpellcheck.prototype._lc = function(string) {
+  return HTMLArea._lc(string, 'ClientsideSpellcheck');
+};
+
+ClientsideSpellcheck.prototype.buttonPress = function(editor) {
+
+	try {
+		var tmpis = new ActiveXObject("ieSpell.ieSpellExtension");
+		tmpis.CheckAllLinkedDocuments(document);
+	}
+	catch(exception) {
+ 		if(exception.number==-2146827859) {
+			if (confirm(this.lc("ieSpell not detected.  Click Ok to go to download page.")))
+				window.open("http://www.iespell.com/download.php","DownLoad");
+		} else {
+			alert(this.lc("ieSpell can only be used in Internet Explorer"));
+		}
+	}
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/clientside-spellcheck.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/img/he-spell-check.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/de.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/de.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/de.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/de.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,8 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de
+{
+  "Spell Check using ieSpell": "Englische Rechtschreibkontrolle mit ieSpell",
+  "ieSpell can only be used in Internet Explorer": "ieSpell kann nur mit dem Internet Explorer benutzt werden",
+  "ieSpell not detected.  Click Ok to go to download page.": "ieSpell wurde nicht gefunden. Drücken sie Ok um ieSpeck herunter zu laden."
+};

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/nb.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/nb.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/nb.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ClientsideSpellcheck/lang/nb.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,3 @@
+// Dummy file
+
+{};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/1.pl
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/1.pl?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/1.pl (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/1.pl Sun Oct  8 12:53:13 2006
@@ -0,0 +1,38 @@
+#! /usr/bin/perl -w
+
+use strict;
+
+my $file = 'context-menu.js';
+my $outfile = $file.'-i18n';
+my $langfile = 'en.js';
+
+open FILE, "<$file";
+#open OUTFILE, ">$outfile";
+#open LANGFILE, ">$langfile";
+my %texts = ();
+while (<FILE>) {
+    if (/"(.*?)"/) {
+        my $inline = $_;
+        chomp $inline;
+        my $key = $1;
+        my $val = $1;
+        print "Key: [$key]: ";
+        my $line = <STDIN>;
+        if (defined $line) {
+            chomp $line;
+            if ($line =~ /(\S+)/) {
+                $key = $1;
+                print "-- using $key\n";
+            }
+            $texts{$val} = $key;
+        } else {
+            print " -- skipped...\n";
+        }
+    }
+}
+#close LANGFILE;
+#close OUTFILE;
+close FILE;
+
+print "\n\n\n";
+print '"', join("\"\n\"", sort keys %texts), '"', "\n";

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/1.pl
------------------------------------------------------------------------------
    svn:executable = *

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/context-menu.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/context-menu.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/context-menu.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/context-menu.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,471 @@
+// Context Menu Plugin for HTMLArea-3.0
+// Sponsored by www.americanbible.org
+// Implementation by Mihai Bazon, http://dynarch.com/mishoo/
+//
+// (c) dynarch.com 2003.
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+//
+// $Id: context-menu.js 559 2006-08-25 16:52:10Z ray $
+
+HTMLArea.loadStyle("menu.css", "ContextMenu");
+
+function ContextMenu(editor) {
+	this.editor = editor;
+}
+
+ContextMenu._pluginInfo = {
+	name          : "ContextMenu",
+	version       : "1.0",
+	developer     : "Mihai Bazon",
+	developer_url : "http://dynarch.com/mishoo/",
+	c_owner       : "dynarch.com",
+	sponsor       : "American Bible Society",
+	sponsor_url   : "http://www.americanbible.org",
+	license       : "htmlArea"
+};
+
+ContextMenu.prototype.onGenerate = function() {
+	var self = this;
+	var doc = this.editordoc = this.editor._iframe.contentWindow.document;
+	HTMLArea._addEvents(doc, ["contextmenu"],
+			    function (event) {
+				    return self.popupMenu(HTMLArea.is_ie ? self.editor._iframe.contentWindow.event : event);
+			    });
+	this.currentMenu = null;
+};
+
+ContextMenu.prototype.getContextMenu = function(target) {
+	var self = this;
+	var editor = this.editor;
+	var config = editor.config;
+	var menu = [];
+	var tbo = this.editor.plugins.TableOperations;
+	if (tbo) tbo = tbo.instance;
+
+	var selection = editor.hasSelectedText();
+	if (!HTMLArea.is_gecko) {
+		if (selection) {
+			menu.push([ HTMLArea._lc("Cut", "ContextMenu"), function() { editor.execCommand("cut"); }, null, config.btnList["cut"][1] ],
+				  [ HTMLArea._lc("Copy", "ContextMenu"), function() { editor.execCommand("copy"); }, null, config.btnList["copy"][1] ]);
+			menu.push([ HTMLArea._lc("Paste", "ContextMenu"), function() { editor.execCommand("paste"); }, null, config.btnList["paste"][1] ]);
+		}
+	}
+	var currentTarget = target;
+	var elmenus = [];
+
+	var link = null;
+	var table = null;
+	var tr = null;
+	var td = null;
+	var img = null;
+
+	function tableOperation(opcode) {
+		tbo.buttonPress(editor, opcode);
+	}
+
+	function insertPara(after) {
+		var el = currentTarget;
+		var par = el.parentNode;
+		var p = editor._doc.createElement("p");
+		p.appendChild(editor._doc.createElement("br"));
+		par.insertBefore(p, after ? el.nextSibling : el);
+		var sel = editor._getSelection();
+		var range = editor._createRange(sel);
+		if (!HTMLArea.is_ie) {
+			sel.removeAllRanges();
+			range.selectNodeContents(p);
+			range.collapse(true);
+			sel.addRange(range);
+		} else {
+			range.moveToElementText(p);
+			range.collapse(true);
+			range.select();
+		}
+	}
+
+	for (; target; target = target.parentNode) {
+		var tag = target.tagName;
+		if (!tag)
+			continue;
+		tag = tag.toLowerCase();
+		switch (tag) {
+		    case "img":
+			img = target;
+			elmenus.push(null,
+				     [ HTMLArea._lc("_Image Properties...", "ContextMenu"),
+				       function() {
+					       editor._insertImage(img);
+				       },
+				       HTMLArea._lc("Show the image properties dialog", "ContextMenu"),
+				       config.btnList["insertimage"][1] ]
+				);
+			break;
+		    case "a":
+			link = target;
+			elmenus.push(null,
+				     [ HTMLArea._lc("_Modify Link...", "ContextMenu"),
+               function() { editor.config.btnList['createlink'][3](editor); },
+				       HTMLArea._lc("Current URL is", "ContextMenu") + ': ' + link.href,
+				       config.btnList["createlink"][1] ],
+
+				     [ HTMLArea._lc("Chec_k Link...", "ContextMenu"),
+				       function() { window.open(link.href); },
+				       HTMLArea._lc("Opens this link in a new window", "ContextMenu") ],
+
+				     [ HTMLArea._lc("_Remove Link...", "ContextMenu"),
+				       function() {
+					       if (confirm(HTMLArea._lc("Please confirm that you want to unlink this element.", "ContextMenu") + "\n" +
+							   HTMLArea._lc("Link points to:", "ContextMenu") + " " + link.href)) {
+						       while (link.firstChild)
+							       link.parentNode.insertBefore(link.firstChild, link);
+						       link.parentNode.removeChild(link);
+					       }
+				       },
+				       HTMLArea._lc("Unlink the current element", "ContextMenu") ]
+				);
+			break;
+		    case "td":
+			td = target;
+			if (!tbo) break;
+			elmenus.push(null,
+				     [ HTMLArea._lc("C_ell Properties...", "ContextMenu"),
+				       function() { tableOperation("TO-cell-prop"); },
+				       HTMLArea._lc("Show the Table Cell Properties dialog", "ContextMenu"),
+				       config.btnList["TO-cell-prop"][1] ],
+
+             [ HTMLArea._lc("Insert Cell After", "ContextMenu"),
+				       function() { tableOperation("TO-cell-insert-after"); },
+				       HTMLArea._lc("Insert Cell After", "ContextMenu"),
+				       config.btnList["TO-cell-insert-after"][1] ],
+
+             [ HTMLArea._lc("Insert Cell Before", "ContextMenu"),
+				       function() { tableOperation("TO-cell-insert-before"); },
+				       HTMLArea._lc("Insert Cell After", "ContextMenu"),
+				       config.btnList["TO-cell-insert-before"][1] ],
+
+             [ HTMLArea._lc("Delete Cell", "ContextMenu"),
+				       function() { tableOperation("TO-cell-delete"); },
+				       HTMLArea._lc("Delete Cell", "ContextMenu"),
+				       config.btnList["TO-cell-delete"][1] ],
+
+             [ HTMLArea._lc("Merge Cells", "ContextMenu"),
+				       function() { tableOperation("TO-cell-merge"); },
+				       HTMLArea._lc("Merge Cells", "ContextMenu"),
+				       config.btnList["TO-cell-merge"][1] ]
+				);
+			break;
+		    case "tr":
+			tr = target;
+			if (!tbo) break;
+			elmenus.push(null,
+				     [ HTMLArea._lc("Ro_w Properties...", "ContextMenu"),
+				       function() { tableOperation("TO-row-prop"); },
+				       HTMLArea._lc("Show the Table Row Properties dialog", "ContextMenu"),
+				       config.btnList["TO-row-prop"][1] ],
+
+				     [ HTMLArea._lc("I_nsert Row Before", "ContextMenu"),
+				       function() { tableOperation("TO-row-insert-above"); },
+				       HTMLArea._lc("Insert a new row before the current one", "ContextMenu"),
+				       config.btnList["TO-row-insert-above"][1] ],
+
+				     [ HTMLArea._lc("In_sert Row After", "ContextMenu"),
+				       function() { tableOperation("TO-row-insert-under"); },
+				       HTMLArea._lc("Insert a new row after the current one", "ContextMenu"),
+				       config.btnList["TO-row-insert-under"][1] ],
+
+				     [ HTMLArea._lc("_Delete Row", "ContextMenu"),
+				       function() { tableOperation("TO-row-delete"); },
+				       HTMLArea._lc("Delete the current row", "ContextMenu"),
+				       config.btnList["TO-row-delete"][1] ]
+				);
+			break;
+		    case "table":
+			table = target;
+			if (!tbo) break;
+			elmenus.push(null,
+				     [ HTMLArea._lc("_Table Properties...", "ContextMenu"),
+				       function() { tableOperation("TO-table-prop"); },
+				       HTMLArea._lc("Show the Table Properties dialog", "ContextMenu"),
+				       config.btnList["TO-table-prop"][1] ],
+
+				     [ HTMLArea._lc("Insert _Column Before", "ContextMenu"),
+				       function() { tableOperation("TO-col-insert-before"); },
+				       HTMLArea._lc("Insert a new column before the current one", "ContextMenu"),
+				       config.btnList["TO-col-insert-before"][1] ],
+
+				     [ HTMLArea._lc("Insert C_olumn After", "ContextMenu"),
+				       function() { tableOperation("TO-col-insert-after"); },
+				       HTMLArea._lc("Insert a new column after the current one", "ContextMenu"),
+				       config.btnList["TO-col-insert-after"][1] ],
+
+				     [ HTMLArea._lc("De_lete Column", "ContextMenu"),
+				       function() { tableOperation("TO-col-delete"); },
+				       HTMLArea._lc("Delete the current column", "ContextMenu"),
+				       config.btnList["TO-col-delete"][1] ]
+				);
+			break;
+		    case "body":
+			elmenus.push(null,
+				     [ HTMLArea._lc("Justify Left", "ContextMenu"),
+				       function() { editor.execCommand("justifyleft"); }, null,
+				       config.btnList["justifyleft"][1] ],
+				     [ HTMLArea._lc("Justify Center", "ContextMenu"),
+				       function() { editor.execCommand("justifycenter"); }, null,
+				       config.btnList["justifycenter"][1] ],
+				     [ HTMLArea._lc("Justify Right", "ContextMenu"),
+				       function() { editor.execCommand("justifyright"); }, null,
+				       config.btnList["justifyright"][1] ],
+				     [ HTMLArea._lc("Justify Full", "ContextMenu"),
+				       function() { editor.execCommand("justifyfull"); }, null,
+				       config.btnList["justifyfull"][1] ]
+				);
+			break;
+		}
+	}
+
+	if (selection && !link)
+		menu.push(null, [ HTMLArea._lc("Make lin_k...", "ContextMenu"),
+           function() { editor.config.btnList['createlink'][3](editor); },
+				  HTMLArea._lc("Create a link", "ContextMenu"),
+				  config.btnList["createlink"][1] ]);
+
+	for (var i = 0; i < elmenus.length; ++i)
+		menu.push(elmenus[i]);
+
+	if (!/html|body/i.test(currentTarget.tagName))
+		menu.push(null,
+			  [ HTMLArea._lc({string: "Remove the $elem Element...", replace: {elem: "&lt;" + currentTarget.tagName + "&gt;"}}, "ContextMenu"),
+			    function() {
+				    if (confirm(HTMLArea._lc("Please confirm that you want to remove this element:", "ContextMenu") + " " +
+						currentTarget.tagName)) {
+					    var el = currentTarget;
+					    var p = el.parentNode;
+					    p.removeChild(el);
+					    if (HTMLArea.is_gecko) {
+						    if (p.tagName.toLowerCase() == "td" && !p.hasChildNodes())
+							    p.appendChild(editor._doc.createElement("br"));
+						    editor.forceRedraw();
+						    editor.focusEditor();
+						    editor.updateToolbar();
+						    if (table) {
+							    var save_collapse = table.style.borderCollapse;
+							    table.style.borderCollapse = "collapse";
+							    table.style.borderCollapse = "separate";
+							    table.style.borderCollapse = save_collapse;
+						    }
+					    }
+				    }
+			    },
+			    HTMLArea._lc("Remove this node from the document", "ContextMenu") ],
+			  [ HTMLArea._lc("Insert paragraph before", "ContextMenu"),
+			    function() { insertPara(false); },
+			    HTMLArea._lc("Insert a paragraph before the current node", "ContextMenu") ],
+			  [ HTMLArea._lc("Insert paragraph after", "ContextMenu"),
+			    function() { insertPara(true); },
+			    HTMLArea._lc("Insert a paragraph after the current node", "ContextMenu") ]
+			  );
+	if (!menu[0]) menu.shift(); //If the menu begins with a separator, remove it for cosmetical reasons
+	return menu;
+};
+
+ContextMenu.prototype.popupMenu = function(ev) {
+	var self = this;
+	if (this.currentMenu)
+		this.currentMenu.parentNode.removeChild(this.currentMenu);
+	function getPos(el) {
+		var r = { x: el.offsetLeft, y: el.offsetTop };
+		if (el.offsetParent) {
+			var tmp = getPos(el.offsetParent);
+			r.x += tmp.x;
+			r.y += tmp.y;
+		}
+		return r;
+	}
+	function documentClick(ev) {
+		ev || (ev = window.event);
+		if (!self.currentMenu) {
+			alert(HTMLArea._lc("How did you get here? (Please report!)", "ContextMenu"));
+			return false;
+		}
+		var el = HTMLArea.is_ie ? ev.srcElement : ev.target;
+		for (; el != null && el != self.currentMenu; el = el.parentNode);
+		if (el == null)
+			self.closeMenu();
+		//HTMLArea._stopEvent(ev);
+		//return false;
+	}
+	var keys = [];
+	function keyPress(ev) {
+		ev || (ev = window.event);
+		HTMLArea._stopEvent(ev);
+		if (ev.keyCode == 27) {
+			self.closeMenu();
+			return false;
+		}
+		var key = String.fromCharCode(HTMLArea.is_ie ? ev.keyCode : ev.charCode).toLowerCase();
+		for (var i = keys.length; --i >= 0;) {
+			var k = keys[i];
+			if (k[0].toLowerCase() == key)
+				k[1].__msh.activate();
+		}
+	}
+	self.closeMenu = function() {
+		self.currentMenu.parentNode.removeChild(self.currentMenu);
+		self.currentMenu = null;
+		HTMLArea._removeEvent(document, "mousedown", documentClick);
+		HTMLArea._removeEvent(self.editordoc, "mousedown", documentClick);
+		if (keys.length > 0)
+			HTMLArea._removeEvent(self.editordoc, "keypress", keyPress);
+		if (HTMLArea.is_ie)
+			self.iePopup.hide();
+	}
+	var target = HTMLArea.is_ie ? ev.srcElement : ev.target;
+     var ifpos = getPos(self.editor._htmlArea);//_iframe);
+	var x = ev.clientX + ifpos.x;
+	var y = ev.clientY + ifpos.y;
+
+	var div;
+	var doc;
+	if (!HTMLArea.is_ie) {
+		doc = document;
+	} else {
+		// IE stinks
+		var popup = this.iePopup = window.createPopup();
+		doc = popup.document;
+		doc.open();
+		doc.write("<html><head><style type='text/css'>@import url(" + _editor_url + "plugins/ContextMenu/menu.css); html, body { padding: 0px; margin: 0px; overflow: hidden; border: 0px; }</style></head><body unselectable='yes'></body></html>");
+		doc.close();
+	}
+	div = doc.createElement("div");
+	if (HTMLArea.is_ie)
+		div.unselectable = "on";
+	div.oncontextmenu = function() { return false; };
+	div.className = "htmlarea-context-menu";
+	if (!HTMLArea.is_ie)
+		div.style.left = div.style.top = "0px";
+	doc.body.appendChild(div);
+
+	var table = doc.createElement("table");
+	div.appendChild(table);
+	table.cellSpacing = 0;
+	table.cellPadding = 0;
+	var parent = doc.createElement("tbody");
+	table.appendChild(parent);
+
+	var options = this.getContextMenu(target);
+	for (var i = 0; i < options.length; ++i) {
+		var option = options[i];
+		var item = doc.createElement("tr");
+		parent.appendChild(item);
+		if (HTMLArea.is_ie)
+			item.unselectable = "on";
+		else item.onmousedown = function(ev) {
+			HTMLArea._stopEvent(ev);
+			return false;
+		};
+		if (!option) {
+			item.className = "separator";
+			var td = doc.createElement("td");
+			td.className = "icon";
+			var IE_IS_A_FUCKING_SHIT = '>';
+			if (HTMLArea.is_ie) {
+				td.unselectable = "on";
+				IE_IS_A_FUCKING_SHIT = " unselectable='on' style='height=1px'>&nbsp;";
+			}
+			td.innerHTML = "<div" + IE_IS_A_FUCKING_SHIT + "</div>";
+			var td1 = td.cloneNode(true);
+			td1.className = "label";
+			item.appendChild(td);
+			item.appendChild(td1);
+		} else {
+			var label = option[0];
+			item.className = "item";
+			item.__msh = {
+				item: item,
+				label: label,
+				action: option[1],
+				tooltip: option[2] || null,
+				icon: option[3] || null,
+				activate: function() {
+					self.closeMenu();
+					self.editor.focusEditor();
+					this.action();
+				}
+			};
+			label = label.replace(/_([a-zA-Z0-9])/, "<u>$1</u>");
+			if (label != option[0])
+				keys.push([ RegExp.$1, item ]);
+			label = label.replace(/__/, "_");
+			var td1 = doc.createElement("td");
+			if (HTMLArea.is_ie)
+				td1.unselectable = "on";
+			item.appendChild(td1);
+			td1.className = "icon";
+			if (item.__msh.icon)
+      {
+        var t = HTMLArea.makeBtnImg(item.__msh.icon, doc);
+        td1.appendChild(t);
+        // td1.innerHTML = "<img align='middle' src='" + item.__msh.icon + "' />";
+      }
+      var td2 = doc.createElement("td");
+			if (HTMLArea.is_ie)
+				td2.unselectable = "on";
+			item.appendChild(td2);
+			td2.className = "label";
+			td2.innerHTML = label;
+			item.onmouseover = function() {
+				this.className += " hover";
+				self.editor._statusBarTree.innerHTML = this.__msh.tooltip || '&nbsp;';
+			};
+			item.onmouseout = function() { this.className = "item"; };
+			item.oncontextmenu = function(ev) {
+				this.__msh.activate();
+				if (!HTMLArea.is_ie)
+					HTMLArea._stopEvent(ev);
+				return false;
+			};
+			item.onmouseup = function(ev) {
+				var timeStamp = (new Date()).getTime();
+				if (timeStamp - self.timeStamp > 500)
+					this.__msh.activate();
+				if (!HTMLArea.is_ie)
+					HTMLArea._stopEvent(ev);
+				return false;
+			};
+			//if (typeof option[2] == "string")
+			//item.title = option[2];
+		}
+	}
+
+	if (!HTMLArea.is_ie) {
+    /* FIXME: I think this is to stop the popup from running off the bottom of the screen?
+		var dx = x + div.offsetWidth - window.innerWidth + 4;
+		var dy = y + div.offsetHeight - window.innerHeight + 4;
+    // alert('dy= (' + y + '+' + div.offsetHeight + '-' + window.innerHeight + ' + 4 ) = ' + dy);
+		if (dx > 0) x -= dx;
+		if (dy > 0) y -= dy;
+    */
+		div.style.left = x + "px";
+		div.style.top = y + "px";
+	} else {
+    // To get the size we need to display the popup with some width/height
+    // then we can get the actual size of the div and redisplay the popup at the
+    // correct dimensions.
+    this.iePopup.show(ev.screenX, ev.screenY, 300,50);
+		var w = div.offsetWidth;
+		var h = div.offsetHeight;
+		this.iePopup.show(ev.screenX, ev.screenY, w, h);
+	}
+
+	this.currentMenu = div;
+	this.timeStamp = (new Date()).getTime();
+
+	HTMLArea._addEvent(document, "mousedown", documentClick);
+	HTMLArea._addEvent(this.editordoc, "mousedown", documentClick);
+	if (keys.length > 0)
+		HTMLArea._addEvent(this.editordoc, "keypress", keyPress);
+
+	HTMLArea._stopEvent(ev);
+	return false;
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/de.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/de.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/de.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/de.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Raimund Meyer xinha@ray-of-light.org
+{
+  "Cut": "Ausschneiden",
+  "Copy": "Kopieren",
+  "Paste": "Einfügen",
+  "_Image Properties...": "Eigenschaften",
+  "Show the image properties dialog": "Fenster für die Bildoptionen anzeigen",
+  "_Modify Link...": "Link ändern",
+  "Current URL is": "Aktuelle URL ist",
+  "Chec_k Link...": "Link testen",
+  "Opens this link in a new window": "Diesen Link in neuem Fenster öffnen",
+  "_Remove Link...": "Link entfernen",
+  "Please confirm that you want to unlink this element.": "Wollen sie diesen Link wirklich entfernen?",
+  "Link points to:": "Link zeigt auf:",
+  "Unlink the current element": "Link auf Element entfernen",
+  "C_ell Properties...": "Zellenoptionen",
+  "Show the Table Cell Properties dialog": "Zellenoptionen anzeigen",
+  "Ro_w Properties...": "Zeilenoptionen",
+  "Show the Table Row Properties dialog": "Zeilenoptionen anzeigen",
+  "I_nsert Row Before": "Zeile einfügen vor Position",
+  "Insert a new row before the current one": "Zeile einfügen vor der aktuellen Position",
+  "In_sert Row After": "Zeile einügen nach Position",
+  "Insert a new row after the current one": "Zeile einfügen nach der aktuellen Position",
+  "_Delete Row": "Zeile löschen",
+  "Delete the current row": "Zeile löschen",
+  "_Table Properties...": "Tabellenoptionen",
+  "Show the Table Properties dialog": "Tabellenoptionen anzeigen",
+  "Insert _Column Before": "Spalte einfügen vor Position",
+  "Insert a new column before the current one": "Spalte einfügen vor der aktuellen Position",
+  "Insert C_olumn After": "Spalte einfügen nach Position",
+  "Insert a new column after the current one": "Spalte einfügen nach der aktuellen Position",
+  "De_lete Column": "Spalte löschen",
+  "Delete the current column": "Spalte löschen",
+  "Justify Left": "Linksbündig",
+  "Justify Center": "Zentriert",
+  "Justify Right": "Rechtsbündig",
+  "Justify Full": "Blocksatz",
+  "Make lin_k...": "Link erstellen",
+  "Create a link": "Link erstellen",
+  "Remove the $elem Element...": "Element $elem entfernen...",
+  "Please confirm that you want to remove this element:": "Wollen sie dieses Element wirklich entfernen?",
+  "Remove this node from the document": "Dieses Element aus dem Dokument entfernen",
+  "Insert paragraph before": "Absatz einfügen vor Position",
+  "Insert a paragraph before the current node": "Absatz einfügen vor der aktuellen Position",
+  "Insert paragraph after": "Absatz einfügen hinter Position",
+  "Insert a paragraph after the current node": "Absatz einfügen hinter der aktuellen Position",
+  "How did you get here? (Please report!)": "Wie sind Sie denn hier hin gekommen? (Please report!)"
+};

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/el.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/el.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/el.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/el.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "el", ENCODING: UTF-8
+// Author: Dimitris Glezos, dimitris@glezos.com
+{
+  "Cut": "ΑποκοπΞ�",
+  "Copy": "ΑντιγραφΞ�",
+  "Paste": "Ξ•Ο€ΞΉΞΊΟŒΞ»Ξ»Ξ·ΟƒΞ·",
+  "_Image Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ•ΞΉΞΊΟŒΞ½Ξ±Ο‚...",
+  "_Modify Link...": "Ξ�ροποποίηση συνδέσμου...",
+  "Chec_k Link...": "ΞˆΞ»Ξ΅Ξ³Ο‡ΞΏΟ‚ συνδέσμων...",
+  "_Remove Link...": "ΔιαγραφΞ� συνδέσμου...",
+  "C_ell Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ κΡλιού...",
+  "Ro_w Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ γραμμΞ�Ο‚...",
+  "I_nsert Row Before": "ΕισαγωγΞ� γραμμΞ�Ο‚ πριν",
+  "In_sert Row After": "ΕισαγωγΞ� γραμμΞ�Ο‚ μΡτά",
+  "_Delete Row": "ΔιαγραφΞ� γραμμΞ�Ο‚",
+  "_Table Properties...": "Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ πίνακα...",
+  "Insert _Column Before": "ΕισαγωγΞ� στΞ�λης πριν",
+  "Insert C_olumn After": "ΕισαγωγΞ� στΞ�λης μΡτά",
+  "De_lete Column": "ΔιαγραφΞ� στΞ�λης",
+  "Justify Left": "Στοίχηση ΑριστΡρά",
+  "Justify Center": "Στοίχηση ΞšΞ­Ξ½Ο„ΟΞΏ",
+  "Justify Right": "Στοίχηση ΔΡξιά",
+  "Justify Full": "Ξ Ξ»Ξ�ρης Στοίχηση",
+  "Make lin_k...": "Δημιουργία συνδέσμου...",
+  "Remove the $elem Element...": "ΑφαίρΡση $elem στοιχΡίου...",
+  "Please confirm that you want to remove this element:": "ΕίστΡ Ξ²Ξ­Ξ²Ξ±ΞΉΞΏΟ‚ πως θέλΡτΡ Ξ½Ξ± αφαιρέσΡτΡ το στοιχΡίο ",
+  "Remove this node from the document": "ΑφαίρΡση αυτού του ΞΊΟŒΞΌΞ²ΞΏΟ… Ξ±Ο€ΟŒ το έγγραφο",
+  "How did you get here? (Please report!)": "Ξ ΟŽΟ‚ Ξ�ρθατΡ μέχρι Ρδώ; (ΠαρακαλούμΡ αναφέρΡτΡ το!)",
+  "Show the image properties dialog": "Εμφάνιση Ξ΄ΞΉΞ±Ξ»ΟŒΞ³ΞΏΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ΅ΞΉΞΊΟŒΞ½Ξ±Ο‚",
+  "Modify URL": "Ξ�ροποποίηση URL",
+  "Current URL is": "Ξ�ΞΏ τρέχων URL Ρίναι",
+  "Opens this link in a new window": "ΑνοίγΡι Ξ±Ο…Ο„ΟŒ τον σύνδΡσμο σΡ Ξ­Ξ½Ξ± Ξ½Ξ­ΞΏ παράθυρο",
+  "Please confirm that you want to unlink this element.": "ΕίστΡ Ξ²Ξ­Ξ²Ξ±ΞΉΞΏΟ‚ πως θέλΡτΡ Ξ½Ξ± αφαιρέσΡτΡ τον σύνδΡσμο Ξ±Ο€ΟŒ Ξ±Ο…Ο„ΟŒ το στοιχΡίο:",
+  "Link points to:": "Ο σύνδΡμος οδηγΡί Ρδώ:",
+  "Unlink the current element": "ΑφαίρΡση συνδέσμου Ξ±Ο€ΟŒ το Ο€Ξ±ΟΟŽΞ½ στοιχΡίο",
+  "Show the Table Cell Properties dialog": "Εμφάνιση Ξ΄ΞΉΞ±Ξ»ΟŒΞ³ΞΏΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ κΡλιού Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+  "Show the Table Row Properties dialog": "Εμφάνιση Ξ΄ΞΉΞ±Ξ»ΟŒΞ³ΞΏΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ γραμμΞ�Ο‚ Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+  "Insert a new row before the current one": "ΕισαγωγΞ� ΞΌΞΉΞ±Ο‚ Ξ½Ξ­Ξ±Ο‚ γραμμΞ�Ο‚ πριν την ΡπιλΡγμένη",
+  "Insert a new row after the current one": "ΕισαγωγΞ� ΞΌΞΉΞ±Ο‚ Ξ½Ξ­Ξ±Ο‚ γραμμΞ�Ο‚ μΡτά την ΡπιλΡγμένη",
+  "Delete the current row": "ΔιαγραφΞ� ΡπιλΡγμένης γραμμΞ�Ο‚",
+  "Show the Table Properties dialog": "Εμφάνιση Ξ΄ΞΉΞ±Ξ»ΟŒΞ³ΞΏΟ… ΞΌΞ΅ τις Ξ™Ξ΄ΞΉΟŒΟ„Ξ·Ο„Ξ΅Ο‚ Ξ Ξ―Ξ½Ξ±ΞΊΞ±",
+  "Insert a new column before the current one": "ΕισαγωγΞ� Ξ½Ξ­Ξ±Ο‚ στΞ�λης πριν την ΡπιλΡγμένη",
+  "Insert a new column after the current one": "ΕισαγωγΞ� Ξ½Ξ­Ξ±Ο‚ στΞ�λης μΡτά την ΡπιλΡγμένη",
+  "Delete the current column": "ΔιαγραφΞ� ΡπιλΡγμένης στΞ�λης",
+  "Create a link": "Δημιουργία συνδέσμου"
+};

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/fr.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/fr.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/fr.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/fr.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+  "Cut": "Couper",
+  "Copy": "Copier",
+  "Paste": "Coller",
+  "_Image Properties...": "_Propriétés de l'image...",
+  "_Modify Link...": "_Modifier le lien...",
+  "Chec_k Link...": "_Vérifier le lien...",
+  "_Remove Link...": "_Supprimer le lien...",
+  "C_ell Properties...": "P_ropriétés de la cellule...",
+  "Ro_w Properties...": "Pr_opriétés de la rangée...",
+  "I_nsert Row Before": "Insérer une rangée a_vant",
+  "In_sert Row After": "Insér_er une rangée après",
+  "_Delete Row": "Suppr_imer une rangée",
+  "_Table Properties...": "Proprié_tés de la table...",
+  "Insert _Column Before": "I_nsérer une colonne avant",
+  "Insert C_olumn After": "Insérer une colonne après",
+  "De_lete Column": "_Supprimer la colonne",
+  "Justify Left": "Aligner à gauche",
+  "Justify Center": "Aligner au centre",
+  "Justify Right": "Aligner à droite",
+  "Justify Full": "Justifier",
+  "Make lin_k...": "Convertir en lien...",
+  "Remove the $elem Element...": "Supprimer Élément $elem...",
+  "Insert paragraph before": "Insérer un paragraphe avant",
+  "Insert paragraph after": "Insérer un paragraphe après",
+  "Please confirm that you want to remove this element:": "Confirmer la suppression de cet élément:",
+  "Remove this node from the document": "Supprimer ce noeud du document",
+  "How did you get here? (Please report!)": "Comment êtes-vous arrivé ici ? (Reportez le bug SVP !)",
+  "Show the image properties dialog": "Afficher le dialogue des propriétés d'image",
+  "Modify URL": "Modifier l'URL",
+  "Current URL is": "L'URL courante est",
+  "Opens this link in a new window": "Ouvrir ce lien dans une nouvelle fenêtre",
+  "Please confirm that you want to unlink this element.": "Voulez-vous vraiment enlever le lien présent sur cet élément.",
+  "Link points to:": "Le lien pointe sur:",
+  "Unlink the current element": "Enlever le lien sur cet élément",
+  "Show the Table Cell Properties dialog": "Afficher la boite de propriété des cellules",
+  "Show the Table Row Properties dialog": "Afficher la boite de propriété des rangées",
+  "Insert a new row before the current one": "Insérer une nouvelle rangée avant celle-ci",
+  "Insert a new row after the current one": "Insérer une nouvelle rangée après celle-ci",
+  "Delete the current row": "Supprimer la rangée courante",
+  "Show the Table Properties dialog": "Afficher la boite de propriété de tableau",
+  "Insert a new column before the current one": "Insérer une nouvelle rangée avant celle-ci",
+  "Insert a new column after the current one": "Insérer une nouvelle colonne après celle-ci",
+  "Delete the current column": "Supprimer cette colonne",
+  "Create a link": "Créer un lien",
+  "Insert a paragraph before the current node": "Insérer un paragraphe avant le noeud courant",
+  "Insert a paragraph after the current node": "Insérer un paragraphe après le noeud courant"
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/he.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/he.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/he.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/he.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "he", ENCODING: UTF-8
+// Author: Liron Newman, http://www.eesh.net, <plastish at ultinet dot org>
+{
+  "Cut": "גזור",
+  "Copy": "העתק",
+  "Paste": "הדבק",
+  "_Image Properties...": "_מאפייני תמונה...",
+  "_Modify Link...": "_שנה קישור...",
+  "Chec_k Link...": "בדו_ק קישור...",
+  "_Remove Link...": "_הסר קישור...",
+  "C_ell Properties...": "מאפייני ת_א...",
+  "Ro_w Properties...": "מאפייני _טור...",
+  "I_nsert Row Before": "ה_כנס שורה לפני",
+  "In_sert Row After": "הכנ_ס שורה אחרי",
+  "_Delete Row": "_מחק שורה",
+  "_Table Properties...": "מאפייני ט_בלה...",
+  "Insert _Column Before": "הכנס _טור לפני",
+  "Insert C_olumn After": "הכנס ט_ור אחרי",
+  "De_lete Column": "מח_ק טור",
+  "Justify Left": "ישור לשמאל",
+  "Justify Center": "ישור למרכז",
+  "Justify Right": "ישור לימין",
+  "Justify Full": "ישור לשורה מלאה",
+  "Make lin_k...": "צור קי_שור...",
+  "Remove the $elem Element...": "הסר את אלמנט ה- $elem...",
+  "Please confirm that you want to remove this element:": "אנא אשר שברצונך להסיר את האלמנט הזה:",
+  "Remove this node from the document": "הסרה של node זה מהמסמך",
+  "How did you get here? (Please report!)": "איך הגעת הנה? (אנא דווח!)",
+  "Show the image properties dialog": "מציג את חלון הדו-שיח של מאפייני תמונה",
+  "Modify URL": "שינוי URL",
+  "Current URL is": "URL נוכחי הוא",
+  "Opens this link in a new window": "פתיחת קישור זה בחלון חדש",
+  "Please confirm that you want to unlink this element.": "אנא אשר שאתה רוצה לנתק את אלמנט זה.",
+  "Link points to:": "הקישור מצביע אל:",
+  "Unlink the current element": "ניתוק את האלמנט הנוכחי",
+  "Show the Table Cell Properties dialog": "מציג את חלון הדו-שיח של מאפייני תא בטבלה",
+  "Show the Table Row Properties dialog": "מציג את חלון הדו-שיח של מאפייני שורה בטבלה",
+  "Insert a new row before the current one": "הוספת שורה חדשה לפני הנוכחית",
+  "Insert a new row after the current one": "הוספת שורה חדשה אחרי הנוכחית",
+  "Delete the current row": "מחיקת את השורה הנוכחית",
+  "Show the Table Properties dialog": "מציג את חלון הדו-שיח של מאפייני טבלה",
+  "Insert a new column before the current one": "הוספת טור חדש לפני הנוכחי",
+  "Insert a new column after the current one": "הוספת טור חדש אחרי הנוכחי",
+  "Delete the current column": "מחיקת את הטור הנוכחי",
+  "Create a link": "יצירת קישור"
+};

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nb.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nb.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nb.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nb.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,53 @@
+// I18N constants
+// LANG: "no", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+// Used key commands
+// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w   : English
+//       H B j      R m    F       v       : Norwegian
+{
+  "Cut": "Klipp ut",
+  "Copy": "Kopier",
+  "Paste": "Lim inn",
+  "_Image Properties...": "_Bildeegenskaper...",
+  "Show the image properties dialog": "Vis bildeegenskaper",
+  "_Modify Link...": "_Rediger Link...",
+  "Current URL is": "Gjeldende URL er",
+  "Chec_k Link...": "Sje_kk Link...",
+  "Opens this link in a new window": "Åpner denne link i nytt vindu",
+  "_Remove Link...": "_Fjerne Link...",
+  "Please confirm that you want to unlink this element.": "Vennligst bekreft at du ønsker å fjerne link på elementet",
+  "Link points to:": "Link peker til:",
+  "Unlink the current element": "Fjerne link på gjeldende element",
+  "C_ell Properties...": "C_elleegenskaper...",
+  "Show the Table Cell Properties dialog": "Vis egenskaper for celle",
+  "Ro_w Properties...": "Rad Egenskaper... (_w)",
+  "Show the Table Row Properties dialog": "Vis egenskaper for rad",
+  "I_nsert Row Before": "Sett I_nn rad før",
+  "Insert a new row before the current one": "Sett inn ny rad før gjeldende",
+  "In_sert Row After": "_Sett inn rad etter",
+  "Insert a new row after the current one": "Sett inn ny rad etter gjeldende",
+  "_Delete Row": "Slett rad (_d)",
+  "Delete the current row": "Slett gjeldende rad",
+  "_Table Properties...": "_Tabellegenskaper...",
+  "Show the Table Properties dialog": "Vis egenskaper for tabellen",
+  "Insert _Column Before": "Sett inn kolonne etter (_c)",
+  "Insert a new column before the current one": "Sett inn kolonne før gjeldende",
+  "Insert C_olumn After": "Sett inn k_olonne etter",
+  "Insert a new column after the current one": "Sett inn kolonne etter gjeldende",
+  "De_lete Column": "S_lett kolonne",
+  "Delete the current column": "Slett gjeldende kolonne",
+  "Justify Left": "_Venstrejuster",
+  "Justify Center": "_Midtjuster",
+  "Justify Right": "_Høyrejuster",
+  "Justify Full": "Blokk_juster",
+  "Make lin_k...": "Lag len_ke...",
+  "Create a link": "Lag ny link",
+  "Remove the $elem Element...": "Fjerne $elem elementet...",
+  "Please confirm that you want to remove this element:": "Vennligst bekreft at du ønsker å fjerne elementet:",
+  "Remove this node from the document": "Fjerne denne node fra dokumentet",
+  "Insert paragraph before": "Sett inn paragraf før",
+  "Insert a paragraph before the current node": "Sett inn paragraf før gjeldende node",
+  "Insert paragraph after": "Sett inn paragraf etter",
+  "Insert a paragraph after the current node": "Sett inn paragraf etter gjeldende node",
+  "How did you get here? (Please report!)": "Hva skjedde? (Vennligst beskriv)"
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nl.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nl.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nl.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/nl.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,47 @@
+// I18N constants
+// LANG: "nl", ENCODING: UTF-8
+// Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl
+{
+  "Cut": "Knippen",
+  "Copy": "Kopiëren",
+  "Paste": "Plakken",
+  "_Image Properties...": "Eigenschappen afbeelding...",
+  "_Modify Link...": "Hyperlin_k aanpassen...",
+  "Chec_k Link...": "Controleer hyperlin_k...",
+  "_Remove Link...": "Ve_rwijder hyperlink...",
+  "C_ell Properties...": "C_eleigenschappen...",
+  "Ro_w Properties...": "Rijeigenscha_ppen...",
+  "I_nsert Row Before": "Rij invoegen boven",
+  "In_sert Row After": "Rij invoegen onder",
+  "_Delete Row": "Rij _verwijderen",
+  "_Table Properties...": "_Tabeleigenschappen...",
+  "Insert _Column Before": "Kolom invoegen voor",
+  "Insert C_olumn After": "Kolom invoegen na",
+  "De_lete Column": "Kolom verwijderen",
+  "Justify Left": "Links uitlijnen",
+  "Justify Center": "Centreren",
+  "Justify Right": "Rechts uitlijnen",
+  "Justify Full": "Uitvullen",
+  "Make lin_k...": "Maak hyperlin_k...",
+  "Remove the $elem Element...": "Verwijder het $elem element...",
+  "Please confirm that you want to remove this element:": "Is het werkelijk de bedoeling dit element te verwijderen:",
+  "Remove this node from the document": "Verwijder dit punt van het document",
+  "How did you get here? (Please report!)": "Hoe kwam je hier? (A.U.B. doorgeven!)",
+  "Show the image properties dialog": "Laat het afbeeldingseigenschappen dialog zien",
+  "Modify URL": "Aanpassen URL",
+  "Current URL is": "Huidig URL is",
+  "Opens this link in a new window": "Opend deze hyperlink in een nieuw venster",
+  "Please confirm that you want to unlink this element.": "Is het werkelijk de bedoeling dit element te unlinken.",
+  "Link points to:": "Hyperlink verwijst naar:",
+  "Unlink the current element": "Unlink het huidige element",
+  "Show the Table Cell Properties dialog": "Laat de tabel celeigenschappen dialog zien",
+  "Show the Table Row Properties dialog": "Laat de tabel rijeigenschappen dialog zien",
+  "Insert a new row before the current one": "Voeg een nieuwe rij in boven de huidige",
+  "Insert a new row after the current one": "Voeg een nieuwe rij in onder de huidige",
+  "Delete the current row": "Verwijder de huidige rij",
+  "Show the Table Properties dialog": "Laat de tabel eigenschappen dialog zien",
+  "Insert a new column before the current one": "Voeg een nieuwe kolom in voor de huidige",
+  "Insert a new column after the current one": "Voeg een nieuwe kolom in na de huidige",
+  "Delete the current column": "Verwijder de huidige kolom",
+  "Create a link": "Maak een hyperlink"
+};

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/no.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/no.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/no.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/no.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,53 @@
+// I18N constants
+// LANG: "no", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+// Used key commands
+// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w   : English
+//       H B j      R m    F       v       : Norwegian
+{
+  "Cut": "Klipp ut",
+  "Copy": "Kopier",
+  "Paste": "Lim inn",
+  "_Image Properties...": "_Bildeegenskaper...",
+  "Show the image properties dialog": "Vis bildeegenskaper",
+  "_Modify Link...": "_Rediger Link...",
+  "Current URL is": "Gjeldende URL er",
+  "Chec_k Link...": "Sje_kk Link...",
+  "Opens this link in a new window": "Åpner denne link i nytt vindu",
+  "_Remove Link...": "_Fjerne Link...",
+  "Please confirm that you want to unlink this element.": "Vennligst bekreft at du ønsker å fjerne link på elementet",
+  "Link points to:": "Link peker til:",
+  "Unlink the current element": "Fjerne link på gjeldende element",
+  "C_ell Properties...": "C_elleegenskaper...",
+  "Show the Table Cell Properties dialog": "Vis egenskaper for celle",
+  "Ro_w Properties...": "Rad Egenskaper... (_w)",
+  "Show the Table Row Properties dialog": "Vis egenskaper for rad",
+  "I_nsert Row Before": "Sett I_nn rad før",
+  "Insert a new row before the current one": "Sett inn ny rad før gjeldende",
+  "In_sert Row After": "_Sett inn rad etter",
+  "Insert a new row after the current one": "Sett inn ny rad etter gjeldende",
+  "_Delete Row": "Slett rad (_d)",
+  "Delete the current row": "Slett gjeldende rad",
+  "_Table Properties...": "_Tabellegenskaper...",
+  "Show the Table Properties dialog": "Vis egenskaper for tabellen",
+  "Insert _Column Before": "Sett inn kolonne etter (_c)",
+  "Insert a new column before the current one": "Sett inn kolonne før gjeldende",
+  "Insert C_olumn After": "Sett inn k_olonne etter",
+  "Insert a new column after the current one": "Sett inn kolonne etter gjeldende",
+  "De_lete Column": "S_lett kolonne",
+  "Delete the current column": "Slett gjeldende kolonne",
+  "Justify Left": "_Venstrejuster",
+  "Justify Center": "_Midtjuster",
+  "Justify Right": "_Høyrejuster",
+  "Justify Full": "Blokk_juster",
+  "Make lin_k...": "Lag len_ke...",
+  "Create a link": "Lag ny link",
+  "Remove the $elem Element...": "Fjerne $elem elementet...",
+  "Please confirm that you want to remove this element:": "Vennligst bekreft at du ønsker å fjerne elementet:",
+  "Remove this node from the document": "Fjerne denne node fra dokumentet",
+  "Insert paragraph before": "Sett inn paragraf før",
+  "Insert a paragraph before the current node": "Sett inn paragraf før gjeldende node",
+  "Insert paragraph after": "Sett inn paragraf etter",
+  "Insert a paragraph after the current node": "Sett inn paragraf etter gjeldende node",
+  "How did you get here? (Please report!)": "Hva skjedde? (Vennligst beskriv)"
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/pl.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/pl.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/pl.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/pl.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,50 @@
+// I18N constants
+// LANG: "pl", ENCODING: UTF-8
+// translated: Krzysztof Kotowicz, http://www.eskot.krakow.pl/portfolio/, koto@webworkers.pl
+{
+  "Cut": "Wytnij",
+  "Copy": "Kopiuj",
+  "Paste": "Wklej",
+  "_Image Properties...": "Właściwości obrazka",
+  "Show the image properties dialog": "Pokaż okienko właściwości obrazka",  
+  "_Modify Link...": "Zmień odnośnik",
+  "Current URL is": "Bieżący URL odnośnika",
+  "Chec_k Link...": "Sprawdź odnośnik",
+  "Opens this link in a new window": "Otwiera ten odnośnik w nowym oknie",
+  "_Remove Link...": "Usuń odnośnik",
+  "Please confirm that you want to unlink this element.": "Na pewno chcesz usunąć odnośnik?",
+  "Link points to:": "Odnośnik wskazuje na:",
+  "Unlink the current element": "Usuń odnośnik z zaznaczonego elementu",
+  "C_ell Properties...": "Właściwości komórki",
+  "Show the Table Cell Properties dialog": "Pokaż okno właściwości komórki",
+  "Ro_w Properties...": "Właściwości wiersza",
+  "Show the Table Row Properties dialog": "Pokaż okno właściwości wiersza",
+  "I_nsert Row Before": "Wstaw wiersz przed",
+  "Insert a new row before the current one": "Wstaw nowy wiersz przed bieżącym",
+  "In_sert Row After": "Wstaw wiersz po",
+  "Insert a new row after the current one": "Wstaw nowy wiersz po bieżącym",
+  "_Delete Row": "Usuń wiersz",
+  "Delete the current row": "Usuń bieżący wiersz",
+  "_Table Properties...": "Właściwości tabeli",
+  "Show the Table Properties dialog": "Pokaż okienko właściwości tabeli",
+  "Insert _Column Before": "Wstaw kolumnę przed",
+  "Insert a new column before the current one": "Wstaw nową kolumnę przed bieżącą",
+  "Insert C_olumn After": "Wstaw kolumnę po",
+  "Insert a new column after the current one": "Wstaw nową kolumnę po bieżącej",
+  "De_lete Column": "Usuń kolumnę",
+  "Delete the current column": "Usuwa bieżącą kolumnę",
+  "Justify Left": "Wyrównaj do lewej",
+  "Justify Center": "Wycentruj",
+  "Justify Right": "Wyrównaj do prawej",
+  "Justify Full": "Wyjustuj",
+  "Make lin_k...": "Utwórz odnośnik",
+  "Create a link": "Utwórz odnośnik",
+  "Remove the $elem Element...": "Usuń $elem...",
+  "Please confirm that you want to remove this element:": "Na pewno chcesz usunąć ten element?",
+  "Remove this node from the document": "Usuń ten element z dokumentu",
+  "Insert paragraph before": "Wstaw akapit przed",
+  "Insert a paragraph before the current node": "Wstaw akapit przed bieżącym elementem",
+  "Insert paragraph after": "Wstaw akapit po",
+  "Insert a paragraph after the current node": "Wstaw akapit po bieżącym elemencie",
+  "How did you get here? (Please report!)": "Jak tu trafiłeś (Proszę, podaj okoliczności!)"
+}

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/sv.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/sv.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/sv.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/lang/sv.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,54 @@
+// I18N constants
+// LANG: "sv", ENCODING: UTF-8
+// Swedish version for rev. 477 (Mar 2006) by Thomas Loo <tl...@saltstorm.net>
+
+// TODO: Proper keybindings
+// C,D,e, ,I, ,k,k,l,M, ,n,o,R, ,s,T, ,w   : English
+//       H B j      R m    F       v       : Swedish
+{
+  "Cut": "Klipp ut",
+  "Copy": "Kopiera",
+  "Paste": "Klistra in",
+  "_Image Properties...": "_Bildegenskaper...",
+  "Show the image properties dialog": "Visa bildegenskaper",
+  "_Modify Link...": "_Redigera Länk...",
+  "Current URL is": "Aktuellt URL är",
+  "Chec_k Link...": "Kontrollera länk...",
+  "Opens this link in a new window": "Öppna länk i nytt fönster",
+  "_Remove Link...": "_Ta bort länk...",
+  "Please confirm that you want to unlink this element.": "Bekräfta borttagning av länk",
+  "Link points to:": "Länken pekar mot:",
+  "Unlink the current element": "Ta bort länk kopplad till elementet",
+  "C_ell Properties...": "C_ellegenskaper...",
+  "Show the Table Cell Properties dialog": "Visa egenskaper for cellen",
+  "Ro_w Properties...": "Radegenskaper... (_w)",
+  "Show the Table Row Properties dialog": "Visa egenskaper för rad",
+  "I_nsert Row Before": "I_nfoga rad före",
+  "Insert a new row before the current one": "Infoga ny rad före aktuell",
+  "In_sert Row After": "Infoga rad efter aktuell rad",
+  "Insert a new row after the current one": "Infoga ny rad efter aktuell",
+  "_Delete Row": "Radera rad (_d)",
+  "Delete the current row": "T bort aktuell rad",
+  "_Table Properties...": "_Tabellegenskaper...",
+  "Show the Table Properties dialog": "Visa tabellegenskaper",
+  "Insert _Column Before": "Infoga kolumn efter (_c)",
+  "Insert a new column before the current one": "Infoga kolumn före aktuell",
+  "Insert C_olumn After": "Infoga k_olumn efter",
+  "Insert a new column after the current one": "Infoga kolumn efter aktuell",
+  "De_lete Column": "_Radera kolumn",
+  "Delete the current column": "Radera aktuell kolumn",
+  "Justify Left": "_Vänsterjustera",
+  "Justify Center": "_Centerjustera",
+  "Justify Right": "_Högerjustera",
+  "Justify Full": "Block_justera",
+  "Make lin_k...": "Skapa län_k...",
+  "Create a link": "SKapa ny länk",
+  "Remove the $elem Element...": "Radera elementet $elem...",
+  "Please confirm that you want to remove this element:": "Bekräfta borttagning av element:",
+  "Remove this node from the document": "Radera nod från dokumentet",
+  "Insert paragraph before": "Infoga paragraf före",
+  "Insert a paragraph before the current node": "Infoga paragraf före aktuell nod",
+  "Insert paragraph after": "Infoga paragraf efter",
+  "Insert a paragraph after the current node": "Infoga paragraf efter aktuell nod",
+  "How did you get here? (Please report!)": "Hur hamnade du här? (Beskriv förloppet)"
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/menu.css
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/menu.css?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/menu.css (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/ContextMenu/menu.css Sun Oct  8 12:53:13 2006
@@ -0,0 +1,67 @@
+/* styles for the ContextMenu /HTMLArea */
+/* The ContextMenu plugin is (c) dynarch.com 2003. */
+/* Distributed under the same terms as HTMLArea itself */
+
+div.htmlarea-context-menu {
+  position: absolute;
+  border: 1px solid #aca899;
+  padding: 2px;
+  background-color: #fff;
+  color: #000;
+  cursor: default;
+  z-index: 1000;
+}
+
+div.htmlarea-context-menu table {
+  font: 11px tahoma,verdana,sans-serif;
+  border-collapse: collapse;
+}
+
+div.htmlarea-context-menu tr.item td.icon img {
+/* taken care of by xinha.makeBtnImg() */
+/* width: 18px; */
+/* height: 18px; */
+}
+
+div.htmlarea-context-menu tr.item td.icon {
+  padding: 0px 3px;
+  width: 18px;
+  height: 18px;
+  background-color: #cdf;
+}
+
+div.htmlarea-context-menu tr.item td.label {
+  padding: 1px 10px 1px 3px;
+}
+
+div.htmlarea-context-menu tr.separator td {
+  padding: 2px 0px;
+}
+
+div.htmlarea-context-menu tr.separator td div {
+  border-top: 1px solid #aca899;
+  overflow: hidden;
+  position: relative;
+}
+
+div.htmlarea-context-menu tr.separator td.icon {
+  background-color: #cdf;
+}
+
+div.htmlarea-context-menu tr.separator td.icon div {
+/*  margin-left: 3px; */
+  border-color: #fff;
+}
+
+div.htmlarea-context-menu tr.separator td.label div {
+  margin-right: 3px;
+}
+
+div.htmlarea-context-menu tr.item.hover {
+  background-color: #316ac5;
+  color: #fff;
+}
+
+div.htmlarea-context-menu tr.item.hover td.icon {
+  background-color: #619af5;
+}

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.css
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.css?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.css (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.css Sun Oct  8 12:53:13 2006
@@ -0,0 +1,21 @@
+dl { border: 1px dotted #800000; }
+dt {
+  width: 18px;
+  height: 18px;
+  background-image: url(img/ed_dt.gif);
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: 19px;
+  display: block;
+  color: #800000;
+}
+dd {
+  width: 18px;
+  height: 18px;
+  background-image: url(img/ed_dd.gif);
+  background-repeat: no-repeat;
+  background-position: left top;
+  padding-left: 19px;
+  display: block;
+  color: #800000;
+}
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/definition-list.js Sun Oct  8 12:53:13 2006
@@ -0,0 +1,99 @@
+// DefinitionList plugin for HTMLArea
+// Distributed under the same terms as HTMLArea itself.
+// This notice MUST stay intact for use (see license.txt).
+
+
+function DefinitionList(editor) {
+  this.editor = editor;
+  var cfg = editor.config;
+  var bl = DefinitionList.btnList;
+  var self = this;
+  // register the toolbar buttons provided by this plugin
+  var toolbar = ["linebreak"];
+  for (var i = 0; i < bl.length; ++i) {
+    var btn = bl[i];
+    if (!btn) {
+      toolbar.push("separator");
+    } else {
+      var id = btn[0];
+      cfg.registerButton(id, HTMLArea._lc(btn[1]), editor.imgURL("ed_" + btn[0] + ".gif", "DefinitionList"), false,
+             function(editor, id) {
+               // dispatch button press event
+               self.buttonPress(editor, id);
+             });
+      toolbar.push(id);
+    }
+  }
+  // add a new line in the toolbar
+  cfg.toolbar.push(toolbar);
+}
+
+DefinitionList._pluginInfo = {
+  name          : "DefinitionList",
+  version       : "1.0",
+  developer     : "Udo Schmal",
+  developer_url : "",
+  c_owner       : "Udo Schmal",
+  license       : "htmlArea"
+};
+
+// the list of buttons added by this plugin
+DefinitionList.btnList = [
+  ["dl", "definition list"],
+  ["dt", "definition term"],
+  ["dd", "definition description"]
+  ];
+
+DefinitionList.prototype._lc = function(string) {
+  return HTMLArea._lc(string, 'DefinitionList');
+};
+
+DefinitionList.prototype.onGenerate = function() {
+  var style_id = "DefinitionList-style"
+  var style = this.editor._doc.getElementById(style_id);
+  if (style == null) {
+    style = this.editor._doc.createElement("link");
+    style.id = style_id;
+    style.rel = 'stylesheet';
+    style.href = _editor_url + 'plugins/DefinitionList/definition-list.css';
+    this.editor._doc.getElementsByTagName("HEAD")[0].appendChild(style);
+  }
+};
+
+DefinitionList.prototype.buttonPress = function(editor,button_id) {
+  if (button_id=='dl') { //definition list
+    var pe = editor.getParentElement();
+    while (pe.parentNode.tagName.toLowerCase() != 'body') {
+      pe = pe.parentNode;
+    }
+    var dx = editor._doc.createElement(button_id);
+    dx.innerHTML = '&nbsp;';
+    if(pe.parentNode.lastChild==pe) {
+      pe.parentNode.appendChild(dx);
+    }else{
+      pe.parentNode.insertBefore(dx,pe.nextSibling);
+    }
+  } else if ((button_id=='dt')||(button_id=='dd')) { //definition term or description
+    var pe = editor.getParentElement();
+    while (pe && (pe.nodeType == 1) && (pe.tagName.toLowerCase() != 'body')) {
+      if(pe.tagName.toLowerCase() == 'dl') {
+        var dx = editor._doc.createElement(button_id);
+        dx.innerHTML = '&nbsp;';
+        pe.appendChild(dx);
+        break;
+      }else if((pe.tagName.toLowerCase() == 'dt')||(pe.tagName.toLowerCase() == 'dd')){
+        var dx = editor._doc.createElement(button_id)
+        dx.innerHTML = '&nbsp;';
+        if(pe.parentNode.lastChild==pe) {
+        pe.parentNode.appendChild(dx);
+        }else{
+          pe.parentNode.insertBefore(dx,pe.nextSibling);
+        }
+        break;
+      }
+      pe = pe.parentNode;
+    }
+    if(pe.tagName.toLowerCase() == 'body')
+  alert('You can insert a definition term or description only in a definition list!');
+  }
+};
\ No newline at end of file

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dd.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dd.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dd.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dl.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dl.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dl.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream

Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dt.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dt.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.

Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/DefinitionList/img/ed_dt.gif
------------------------------------------------------------------------------
    svn:mime-type = application/octet-stream