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 [26/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/editor...
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/Stylist/stylist.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/Stylist/stylist.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/Stylist/stylist.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/Stylist/stylist.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,542 @@
+/**
+ * Add an empty css_style to Config object's prototype
+ * the format is { '.className' : 'Description' }
+ */
+
+HTMLArea.Config.prototype.css_style = { };
+
+/**
+ * This method loads an external stylesheet and uses it in the stylist
+ */
+HTMLArea.Config.prototype.stylistLoadStylesheet = function(url, altnames)
+{
+ if(!altnames) altnames = { };
+ var newStyles = HTMLArea.ripStylesFromCSSFile(url);
+ for(var i in newStyles)
+ {
+ if(altnames[i])
+ {
+ this.css_style[i] = altnames[i];
+ }
+ else
+ {
+ this.css_style[i] = newStyles[i];
+ }
+ }
+ this.pageStyleSheets[this.pageStyleSheets.length] = url;
+};
+
+/**
+ * This method takes raw style definitions and uses them in the stylist
+ */
+HTMLArea.Config.prototype.stylistLoadStyles = function(styles, altnames)
+{
+ if(!altnames) altnames = { };
+ var newStyles = HTMLArea.ripStylesFromCSSString(styles);
+ for(var i in newStyles)
+ {
+ if(altnames[i])
+ {
+ this.css_style[i] = altnames[i];
+ }
+ else
+ {
+ this.css_style[i] = newStyles[i];
+ }
+ }
+ this.pageStyle += styles;
+};
+
+
+
+/**
+ * Fill the stylist panel with styles that may be applied to the current selection. Styles
+ * are supplied in the css_style property of the HTMLArea.Config object, which is in the format
+ * { '.className' : 'Description' }
+ * classes that are defined on a specific tag (eg 'a.email_link') are only shown in the panel
+ * when an element of that type is selected.
+ * classes that are defined with selectors/psuedoclasses (eg 'a.email_link:hover') are never
+ * shown (if you have an 'a.email_link' without the pseudoclass it will be shown of course)
+ * multiple classes (eg 'a.email_link.staff_member') are shown as a single class, and applied
+ * to the element as multiple classes (class="email_link staff_member")
+ * you may click a class name in the stylist panel to add it, and click again to remove it
+ * you may add multiple classes to any element
+ * spans will be added where no single _and_entire_ element is selected
+ */
+HTMLArea.prototype._fillStylist = function()
+{
+ if(!this._stylist) return false;
+ this._stylist.innerHTML = '<h1>'+HTMLArea._lc('Styles', 'Stylist')+'</h1>';
+
+ var may_apply = true;
+ var sel = this._getSelection();
+
+ // What is applied
+ // var applied = this._getAncestorsClassNames(this._getSelection());
+
+ // Get an active element
+ var active_elem = this._activeElement(sel);
+
+ for(var x in this.config.css_style)
+ {
+ var tag = null;
+ var className = x.trim();
+ var applicable = true;
+ var apply_to = active_elem;
+
+ if(applicable && /[^a-zA-Z0-9_.-]/.test(className))
+ {
+ applicable = false; // Only basic classes are accepted, no selectors, etc.. presumed
+ // that if you have a.foo:visited you'll also have a.foo
+ // alert('complex');
+ }
+
+ if(className.indexOf('.') < 0)
+ {
+ // No class name, just redefines a tag
+ applicable = false;
+ }
+
+ if(applicable && (className.indexOf('.') > 0))
+ {
+ // requires specific html tag
+ tag = className.substring(0, className.indexOf('.')).toLowerCase();
+ className = className.substring(className.indexOf('.'), className.length);
+
+ // To apply we must have an ancestor tag that is the right type
+ if(active_elem != null && active_elem.tagName.toLowerCase() == tag)
+ {
+ applicable = true;
+ apply_to = active_elem;
+ }
+ else
+ {
+ if(this._getFirstAncestor(this._getSelection(), [tag]) != null)
+ {
+ applicable = true;
+ apply_to = this._getFirstAncestor(this._getSelection(), [tag]);
+ }
+ else
+ {
+ // alert (this._getFirstAncestor(this._getSelection(), tag));
+ // If we don't have an ancestor, but it's a div/span/p/hx stle, we can make one
+ if(( tag == 'div' || tag == 'span' || tag == 'p'
+ || (tag.substr(0,1) == 'h' && tag.length == 2 && tag != 'hr')))
+ {
+ if(!this._selectionEmpty(this._getSelection()))
+ {
+ applicable = true;
+ apply_to = 'new';
+ }
+ else
+ {
+ // See if we can get a paragraph or header that can be converted
+ apply_to = this._getFirstAncestor(sel, ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'h7']);
+ if(apply_to != null)
+ {
+ applicable = true;
+ }
+ }
+ }
+ else
+ {
+ applicable = false;
+ }
+ }
+ }
+ }
+
+ if(applicable)
+ {
+ // Remove the first .
+ className = className.substring(className.indexOf('.'), className.length);
+
+ // Replace any futher ones with spaces (for multiple class definitions)
+ className = className.replace('.', ' ');
+
+ if(apply_to == null)
+ {
+ if(this._selectionEmpty(this._getSelection()))
+ {
+ // Get the previous element and apply to that
+ apply_to = this._getFirstAncestor(this._getSelection(), null);
+ }
+ else
+ {
+ apply_to = 'new';
+ tag = 'span';
+ }
+ }
+ }
+
+ var applied = (this._ancestorsWithClasses(sel, tag, className).length > 0 ? true : false);
+ var applied_to = this._ancestorsWithClasses(sel, tag, className);
+
+ if(applicable)
+ {
+ var anch = document.createElement('a');
+ anch._stylist_className = className.trim();
+ anch._stylist_applied = applied;
+ anch._stylist_appliedTo = applied_to;
+ anch._stylist_applyTo = apply_to;
+ anch._stylist_applyTag = tag;
+
+ anch.innerHTML = this.config.css_style[x];
+ anch.href = 'javascript:void(0)';
+ var editor = this;
+ anch.onclick = function()
+ {
+ if(this._stylist_applied == true)
+ {
+ editor._stylistRemoveClasses(this._stylist_className, this._stylist_appliedTo);
+ }
+ else
+ {
+ editor._stylistAddClasses(this._stylist_applyTo, this._stylist_applyTag, this._stylist_className);
+ }
+ return false;
+ }
+
+ anch.style.display = 'block';
+ anch.style.paddingLeft = '3px';
+ anch.style.paddingTop = '1px';
+ anch.style.paddingBottom = '1px';
+ anch.style.textDecoration = 'none';
+
+ if(applied)
+ {
+ anch.style.background = 'Highlight';
+ anch.style.color = 'HighlightText';
+ }
+
+ this._stylist.appendChild(anch);
+ }
+ }
+};
+
+
+/**
+ * Add the given classes (space seperated list) to the currently selected element
+ * (will add a span if none selected)
+ */
+HTMLArea.prototype._stylistAddClasses = function(el, tag, classes)
+ {
+ if(el == 'new')
+ {
+ this.insertHTML('<' + tag + ' class="' + classes + '">' + this.getSelectedHTML() + '</' + tag + '>');
+ }
+ else
+ {
+ if(tag != null && el.tagName.toLowerCase() != tag)
+ {
+ // Have to change the tag!
+ var new_el = this.switchElementTag(el, tag);
+
+ if(typeof el._stylist_usedToBe != 'undefined')
+ {
+ new_el._stylist_usedToBe = el._stylist_usedToBe;
+ new_el._stylist_usedToBe[new_el._stylist_usedToBe.length] = {'tagName' : el.tagName, 'className' : el.getAttribute('class')};
+ }
+ else
+ {
+ new_el._stylist_usedToBe = [{'tagName' : el.tagName, 'className' : el.getAttribute('class')}];
+ }
+
+ HTMLArea.addClasses(new_el, classes);
+ }
+ else
+ {
+ HTMLArea._addClasses(el, classes);
+ }
+ }
+ this.focusEditor();
+ this.updateToolbar();
+ };
+
+/**
+ * Remove the given classes (space seperated list) from the given elements (array of elements)
+ */
+HTMLArea.prototype._stylistRemoveClasses = function(classes, from)
+ {
+ for(var x = 0; x < from.length; x++)
+ {
+ this._stylistRemoveClassesFull(from[x], classes);
+ }
+ this.focusEditor();
+ this.updateToolbar();
+ };
+
+HTMLArea.prototype._stylistRemoveClassesFull = function(el, classes)
+{
+ if(el != null)
+ {
+ var thiers = el.className.trim().split(' ');
+ var new_thiers = [ ];
+ var ours = classes.split(' ');
+ for(var x = 0; x < thiers.length; x++)
+ {
+ var exists = false;
+ for(var i = 0; exists == false && i < ours.length; i++)
+ {
+ if(ours[i] == thiers[x])
+ {
+ exists = true;
+ }
+ }
+ if(exists == false)
+ {
+ new_thiers[new_thiers.length] = thiers[x];
+ }
+ }
+
+ if(new_thiers.length == 0 && el._stylist_usedToBe && el._stylist_usedToBe.length > 0 && el._stylist_usedToBe[el._stylist_usedToBe.length - 1].className != null)
+ {
+ // Revert back to what we were IF the classes are identical
+ var last_el = el._stylist_usedToBe[el._stylist_usedToBe.length - 1];
+ var last_classes = HTMLArea.arrayFilter(last_el.className.trim().split(' '), function(c) { if (c == null || c.trim() == '') { return false;} return true; });
+
+ if(
+ (new_thiers.length == 0)
+ ||
+ (
+ HTMLArea.arrayContainsArray(new_thiers, last_classes)
+ && HTMLArea.arrayContainsArray(last_classes, new_thiers)
+ )
+ )
+ {
+ el = this.switchElementTag(el, last_el.tagName);
+ new_thiers = last_classes;
+ }
+ else
+ {
+ // We can't rely on the remembered tags any more
+ el._stylist_usedToBe = [ ];
+ }
+ }
+
+ if( new_thiers.length > 0
+ || el.tagName.toLowerCase() != 'span'
+ || (el.id && el.id != '')
+ )
+ {
+ el.className = new_thiers.join(' ').trim();
+ }
+ else
+ {
+ // Must be a span with no classes and no id, so we can splice it out
+ var prnt = el.parentNode;
+ var childs = el.childNodes;
+ for(var x = 0; x < childs.length; x++)
+ {
+ prnt.insertBefore(childs[x], el);
+ }
+ prnt.removeChild(el);
+ }
+ }
+};
+
+/**
+ * Change the tag of an element
+ */
+HTMLArea.prototype.switchElementTag = function(el, tag)
+{
+ var prnt = el.parentNode;
+ var new_el = this._doc.createElement(tag);
+
+ if(HTMLArea.is_ie || el.hasAttribute('id')) new_el.setAttribute('id', el.getAttribute('id'));
+ if(HTMLArea.is_ie || el.hasAttribute('style')) new_el.setAttribute('style', el.getAttribute('style'));
+
+ var childs = el.childNodes;
+ for(var x = 0; x < childs.length; x++)
+ {
+ new_el.appendChild(childs[x].cloneNode(true));
+ }
+
+ prnt.insertBefore(new_el, el);
+ new_el._stylist_usedToBe = [el.tagName];
+ prnt.removeChild(el);
+ this.selectNodeContents(new_el);
+ return new_el;
+};
+
+HTMLArea.prototype._getAncestorsClassNames = function(sel)
+{
+ // Scan upwards to find a block level element that we can change or apply to
+ var prnt = this._activeElement(sel);
+ if(prnt == null)
+ {
+ prnt = (HTMLArea.is_ie ? this._createRange(sel).parentElement() : this._createRange(sel).commonAncestorContainer);
+ }
+
+ var classNames = [ ];
+ while(prnt)
+ {
+ if(prnt.nodeType == 1)
+ {
+ var classes = prnt.className.trim().split(' ');
+ for(var x = 0; x < classes.length; x++)
+ {
+ classNames[classNames.length] = classes[x];
+ }
+
+ if(prnt.tagName.toLowerCase() == 'body') break;
+ if(prnt.tagName.toLowerCase() == 'table' ) break;
+ }
+ prnt = prnt.parentNode;
+ }
+
+ return classNames;
+};
+
+HTMLArea.prototype._ancestorsWithClasses = function(sel, tag, classes)
+{
+ var ancestors = [ ];
+ var prnt = this._activeElement(sel);
+ if(prnt == null)
+ {
+ try
+ {
+ prnt = (HTMLArea.is_ie ? this._createRange(sel).parentElement() : this._createRange(sel).commonAncestorContainer);
+ }
+ catch(e)
+ {
+ return ancestors;
+ }
+ }
+ var search_classes = classes.trim().split(' ');
+
+ while(prnt)
+ {
+ if(prnt.nodeType == 1)
+ {
+ if(tag == null || prnt.tagName.toLowerCase() == tag)
+ {
+ var classes = prnt.className.trim().split(' ');
+ var found_all = true;
+ for(var i = 0; i < search_classes.length; i++)
+ {
+ var found_class = false;
+ for(var x = 0; x < classes.length; x++)
+ {
+ if(search_classes[i] == classes[x])
+ {
+ found_class = true;
+ break;
+ }
+ }
+
+ if(!found_class)
+ {
+ found_all = false;
+ break;
+ }
+ }
+
+ if(found_all) ancestors[ancestors.length] = prnt;
+ }
+ if(prnt.tagName.toLowerCase() == 'body') break;
+ if(prnt.tagName.toLowerCase() == 'table' ) break;
+ }
+ prnt = prnt.parentNode;
+ }
+
+ return ancestors;
+};
+
+
+HTMLArea.ripStylesFromCSSFile = function(URL)
+{
+ var css = HTMLArea._geturlcontent(URL);
+ return HTMLArea.ripStylesFromCSSString(css);
+};
+
+HTMLArea.ripStylesFromCSSString = function(css)
+{
+ // We are only interested in the selectors, the rules are not important
+ // so we'll drop out all coments and rules
+ RE_comment = /\/\*(.|\r|\n)*?\*\//g;
+ RE_rule = /\{(.|\r|\n)*?\}/g;
+ css = css.replace(RE_comment, '');
+ css = css.replace(RE_rule, ',');
+
+ // And split on commas
+ css = css.split(',');
+
+ // And add those into our structure
+ var selectors = { };
+ for(var x = 0; x < css.length; x++)
+ {
+ if(css[x].trim())
+ {
+ selectors[css[x].trim()] = css[x].trim();
+ }
+ }
+
+
+ return selectors;
+};
+
+// Make our right side panel and insert appropriatly
+function Stylist(editor, args)
+{
+ this.editor = editor;
+ editor._stylist = null; // This needs to be changes to be Stylist::_stylist sometime
+ editor._stylist = editor.addPanel('right');
+ HTMLArea.addClass(editor._stylist, 'stylist');
+
+ var stylist = this;
+ editor.notifyOn('modechange',
+ function(e,args)
+ {
+ switch(args.mode)
+ {
+ case 'text':
+ {
+ editor.hidePanel(editor._stylist);
+ break;
+ }
+ case 'wysiwyg':
+ {
+ editor.showPanel(editor._stylist);
+ break;
+ }
+ }
+ }
+ );
+}
+
+Stylist._pluginInfo =
+{
+ name : "Stylist",
+ version : "1.0",
+ developer: "James Sleeman",
+ developer_url: "http://www.gogo.co.nz/",
+ c_owner : "Gogo Internet Services",
+ license : "htmlArea",
+ sponsor : "Gogo Internet Services",
+ sponsor_url : "http://www.gogo.co.nz/"
+};
+
+Stylist.prototype.onGenerate = function()
+{
+ var editor = this.editor;
+ if(typeof editor.config.css_style == 'undefined' || HTMLArea.objectProperties(editor.config.css_style).length == 0)
+ {
+ editor.removePanel(editor._stylist);
+ editor._stylist = null;
+ }
+};
+
+Stylist.prototype.onUpdateToolbar = function()
+{
+ if(this.editor._stylist)
+ {
+ if(this._timeoutID)
+ {
+ window.clearTimeout(this._timeoutID);
+ }
+
+ var e = this.editor;
+ this._timeoutID = window.setTimeout(function() { e._fillStylist(); }, 250);
+ }
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/dialog.html
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/dialog.html?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/dialog.html (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/dialog.html Sun Oct 8 12:53:13 2006
@@ -0,0 +1,9 @@
+<h1 id="[h1]"><l10n>Clean up HTML</l10n></h1>
+<div style="margin-left: 10px;">
+ <l10n>Please select from the following cleaning options...</l10n>
+ <!--filters-->
+ <div style="margin-top: 10px;">
+ <input type="button" id="[ok]" value="_(OK)" />
+ <input type="button" id="[cancel]" value="_(CANCEL)" />
+ </div>
+</div>
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/paragraph.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/paragraph.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/paragraph.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/paragraph.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,6 @@
+function(html) {
+ html = html.replace(/<\s*p[^>]*>/gi, '');
+ html = html.replace(/<\/\s*p\s*>/gi, '');
+ html = html.trim();
+ return html;
+}
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/word.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/word.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/word.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/filters/word.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,53 @@
+function(html) {
+ // Remove HTML comments
+ html = html.replace(/<!--[\w\s\d@{}:.;,'"%!#_=&|?~()[*+\/\-\]]*-->/gi, "" );
+ html = html.replace(/<!--[^\0]*-->/gi, '');
+ // Remove all HTML tags
+ html = html.replace(/<\/?\s*HTML[^>]*>/gi, "" );
+ // Remove all BODY tags
+ html = html.replace(/<\/?\s*BODY[^>]*>/gi, "" );
+ // Remove all META tags
+ html = html.replace(/<\/?\s*META[^>]*>/gi, "" );
+ // Remove all SPAN tags
+ html = html.replace(/<\/?\s*SPAN[^>]*>/gi, "" );
+ // Remove all FONT tags
+ html = html.replace(/<\/?\s*FONT[^>]*>/gi, "");
+ // Remove all IFRAME tags.
+ html = html.replace(/<\/?\s*IFRAME[^>]*>/gi, "");
+ // Remove all STYLE tags & content
+ html = html.replace(/<\/?\s*STYLE[^>]*>(.|[\n\r\t])*<\/\s*STYLE\s*>/gi, "" );
+ // Remove all TITLE tags & content
+ html = html.replace(/<\s*TITLE[^>]*>(.|[\n\r\t])*<\/\s*TITLE\s*>/gi, "" );
+ // Remove javascript
+ html = html.replace(/<\s*SCRIPT[^>]*>[^\0]*<\/\s*SCRIPT\s*>/gi, "");
+ // Remove all HEAD tags & content
+ html = html.replace(/<\s*HEAD[^>]*>(.|[\n\r\t])*<\/\s*HEAD\s*>/gi, "" );
+ // Remove Class attributes
+ html = html.replace(/<\s*(\w[^>]*) class=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+ // Remove Style attributes
+ html = html.replace(/<\s*(\w[^>]*) style="([^"]*)"([^>]*)/gi, "<$1$3") ;
+ // Remove Lang attributes
+ html = html.replace(/<\s*(\w[^>]*) lang=([^ |>]*)([^>]*)/gi, "<$1$3") ;
+ // Remove XML elements and declarations
+ html = html.replace(/<\\?\?xml[^>]*>/gi, "") ;
+ // Remove Tags with XML namespace declarations: <o:p></o:p>
+ html = html.replace(/<\/?\w+:[^>]*>/gi, "") ;
+ // Replace the
+ html = html.replace(/ /, " " );
+
+ // Transform <p><br /></p> to <br>
+ //html = html.replace(/<\s*p[^>]*>\s*<\s*br\s*\/>\s*<\/\s*p[^>]*>/gi, "<br>");
+ html = html.replace(/<\s*p[^>]*><\s*br\s*\/?>\s*<\/\s*p[^>]*>/gi, "<br>");
+
+ // Remove <P>
+ html = html.replace(/<\s*p[^>]*>/gi, "");
+
+ // Replace </p> with <br>
+ html = html.replace(/<\/\s*p[^>]*>/gi, "<br>");
+
+ // Remove any <br> at the end
+ html = html.replace(/(\s*<br>\s*)*$/, "");
+
+ html = html.trim();
+ return html;
+}
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/img/ed_superclean.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/img/ed_superclean.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/img/ed_superclean.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/de.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/de.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/de.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/de.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,17 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Raimund Meyer xinha@ray-of-light.org
+{
+ "Clean up HTML": "HTML säubern",
+ "Please select from the following cleaning options...": "Bitte Optionen auswählen...",
+ "General tidy up and correction of some problems.": "Allgemeines aufräumen und Korrektur einiger Probleme.",
+ "Clean bad HTML from Microsoft Word": "Schlechtes HTML aus Microsoft Word aufräumen",
+ "Remove custom typefaces (font \"styles\").": "Schriftarten entfernen (font face).",
+ "Remove custom font sizes.": "SchriftgröÃen entfernen (font size).",
+ "Remove custom text colors.": "Schriftfarben entfernen (font color).",
+ "Remove lang attributes.": "Sprachattribute entfernen.",
+ "Go": "Go",
+ "Cancel": "Abbrechen",
+ "Tidy failed. Check your HTML for syntax errors.": "Säubern fehlgeschlagen. Ãberprüfen Sie Ihren Code auf Fehler.",
+ "You don't have anything to tidy!": "Es gibt nichts zu säubern...!"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/fr.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/fr.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/fr.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/fr.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,16 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Clean up HTML": "Nettoyer le code HTML",
+ "Please select from the following cleaning options...": "Veuillez sélectionner une option de nettoyage.",
+ "General tidy up and correction of some problems.": "Nettoyage générique et correction des problèmes mineurs.",
+ "Clean bad HTML from Microsoft Word": "Nettoyer les balises HTML de Microsoft Word",
+ "Remove custom typefaces (font \"styles\").": "Supprimer les polices personalisées (font \"styles\").",
+ "Remove custom font sizes.": "Supprimer les tailles de polices personnalisées.",
+ "Remove custom text colors.": "Supprimer les couleurs de texte personalisées.",
+ "Remove lang attributes.": "Supprimer les attributs de langue.",
+ "Go": "Commencer",
+ "Cancel": "Annuler",
+ "Tidy failed. Check your HTML for syntax errors.": "Tidy a échoué. Vérifier la syntaxe HTML.",
+ "You don't have anything to tidy!": "Rien à transmettre à tidy !"
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/nb.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/nb.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/nb.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/nb.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,17 @@
+// I18N constants
+// LANG: "nb", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Clean up HTML": "Vask HTML kode",
+ "Please select from the following cleaning options...": "Vennligst velg blandt de forskjellige mulighetene å vaske/ rydde i HTML koden",
+ "General tidy up and correction of some problems.": "Generell opprydding i HTML koden samt korrigering av typiske feil",
+ "Clean bad HTML from Microsoft Word": "Vask HTML kode for feil og problemer etter Microsoft Word",
+ "Remove custom typefaces (font \"styles\").": "Fjerne egendefinerte skrifttyper (font face)",
+ "Remove custom font sizes.": "Fjerne egendefinerte skriftstørrelser (font size)",
+ "Remove custom text colors.": "Fjerne egendefinerte skriftfarger (font color)",
+ "Remove lang attributes.": "Fjerne lang-attributter.",
+ "Go": "Utfør",
+ "Cancel": "Avbryt",
+ "Tidy failed. Check your HTML for syntax errors.": "Tidy (Programmet som retter HTML koden) feilet. Vennligst se over HTML koden for feil.",
+ "You don't have anything to tidy!": "Det finnes ingen HTML kode å vaske!"
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/no.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/no.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/no.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/lang/no.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,17 @@
+// I18N constants
+// LANG: "no", ENCODING: UTF-8
+// translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com
+{
+ "Clean up HTML": "Vask HTML kode",
+ "Please select from the following cleaning options...": "Vennligst velg blandt de forskjellige mulighetene å vaske/ rydde i HTML koden",
+ "General tidy up and correction of some problems.": "Generell opprydding i HTML koden samt korrigering av typiske feil",
+ "Clean bad HTML from Microsoft Word": "Vask HTML kode for feil og problemer etter Microsoft Word",
+ "Remove custom typefaces (font \"styles\").": "Fjerne egendefinerte skrifttyper (font face)",
+ "Remove custom font sizes.": "Fjerne egendefinerte skriftstørrelser (font size)",
+ "Remove custom text colors.": "Fjerne egendefinerte skriftfarger (font color)",
+ "Remove lang attributes.": "Fjerne lang-attributter.",
+ "Go": "Utfør",
+ "Cancel": "Avbryt",
+ "Tidy failed. Check your HTML for syntax errors.": "Tidy (Programmet som retter HTML koden) feilet. Vennligst se over HTML koden for feil.",
+ "You don't have anything to tidy!": "Det finnes ingen HTML kode å vaske!"
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/super-clean.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/super-clean.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/super-clean.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/super-clean.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,322 @@
+// Make our right side panel and insert appropriatly
+function SuperClean(editor, args)
+{
+ this.editor = editor;
+ var superclean = this;
+ editor._superclean_on = false;
+ editor.config.registerButton('superclean', this._lc("Clean up HTML"), editor.imgURL('ed_superclean.gif', 'SuperClean'), true, function(e, objname, obj) { superclean._superClean(null, obj); });
+
+ // See if we can find 'killword' and replace it with superclean
+ editor.config.addToolbarElement("superclean", "killword", 0);
+}
+
+SuperClean._pluginInfo =
+{
+ name : "SuperClean",
+ version : "1.0",
+ developer: "James Sleeman, Niko Sams",
+ developer_url: "http://www.gogo.co.nz/",
+ c_owner : "Gogo Internet Services",
+ license : "htmlArea",
+ sponsor : "Gogo Internet Services",
+ sponsor_url : "http://www.gogo.co.nz/"
+};
+
+SuperClean.prototype._lc = function(string) {
+ return HTMLArea._lc(string, 'SuperClean');
+};
+
+/** superClean combines HTMLTidy, Word Cleaning and font stripping into a single function
+ * it works a bit differently in how it asks for parameters */
+
+SuperClean.prototype._superClean = function(opts, obj)
+{
+ var superclean = this;
+
+ // Do the clean if we got options
+ var doOK = function()
+ {
+ var opts = superclean._dialog.hide();
+ var editor = superclean.editor;
+
+ if(opts.word_clean) editor._wordClean();
+ var D = editor.getInnerHTML();
+
+ for(var filter in editor.config.SuperClean.filters)
+ {
+ if(filter=='tidy' || filter=='word_clean') continue;
+ if(opts[filter])
+ {
+ D = SuperClean.filterFunctions[filter](D, editor);
+ }
+ }
+
+ D = D.replace(/(style|class)="\s*"/gi, '');
+ D = D.replace(/<(font|span)\s*>/gi, '');
+
+ editor.setHTML(D);
+
+ if(opts.tidy)
+ {
+ HTMLArea._postback(editor.config.SuperClean.tidy_handler, {'content' : editor.getInnerHTML()},
+ function(javascriptResponse) { eval(javascriptResponse) });
+ }
+ return true;
+ }
+
+ if(this.editor.config.SuperClean.show_dialog)
+ {
+ var inputs = {};
+ this._dialog.show(inputs, doOK);
+ }
+ else
+ {
+ var editor = this.editor;
+ var html = editor.getInnerHTML();
+ for(var filter in editor.config.SuperClean.filters)
+ {
+ if(filter=='tidy') continue; //call tidy last
+ html = SuperClean.filterFunctions[filter](html, editor);
+ }
+
+ html = html.replace(/(style|class)="\s*"/gi, '');
+ html = html.replace(/<(font|span)\s*>/gi, '');
+
+ editor.setHTML(html);
+
+ if(editor.config.SuperClean.filters.tidy)
+ {
+ SuperClean.filterFunctions.tidy(html, editor);
+ }
+ }
+};
+
+HTMLArea.Config.prototype.SuperClean =
+{
+ // set to the URL of a handler for html tidy, this handler
+ // (see tidy.php for an example) must that a single post variable
+ // "content" which contains the HTML to tidy, and return javascript like
+ // editor.setHTML('<strong>Tidied Html</strong>')
+ // it's called through XMLHTTPRequest
+ 'tidy_handler': _editor_url + 'plugins/SuperClean/tidy.php',
+
+ //avaliable filters (these are built-in filters)
+ // You can either use
+ // 'filter_name' : "Label/Description String"
+ // or 'filter_name' : {label: "Label", checked: true/false, filterFunction: function(html) { ... return html;} }
+ // filterFunction in the second format above is optional.
+
+ 'filters': { 'tidy': HTMLArea._lc('General tidy up and correction of some problems.', 'SuperClean'),
+ 'word_clean': HTMLArea._lc('Clean bad HTML from Microsoft Word', 'SuperClean'),
+ 'remove_faces': HTMLArea._lc('Remove custom typefaces (font "styles").', 'SuperClean'),
+ 'remove_sizes': HTMLArea._lc('Remove custom font sizes.', 'SuperClean'),
+ 'remove_colors': HTMLArea._lc('Remove custom text colors.', 'SuperClean'),
+ 'remove_lang': HTMLArea._lc('Remove lang attributes.', 'SuperClean'),
+ 'remove_fancy_quotes': {label:HTMLArea._lc('Replace directional quote marks with non-directional quote marks.', 'SuperClean'), checked:false}
+ //additional custom filters (defined in plugins/SuperClean/filters/word.js)
+ //'paragraph': 'remove paragraphs'},
+ //'word': 'exteded Word-Filter' },
+ },
+ //if false all filters are applied, if true a dialog asks what filters should be used
+ 'show_dialog': true
+};
+
+SuperClean.filterFunctions = { };
+SuperClean.filterFunctions.remove_colors = function(D)
+{
+ D = D.replace(/color="?[^" >]*"?/gi, '');
+ // { (stops jedit's fold breaking)
+ D = D.replace(/([^-])color:[^;}"']+;?/gi, '$1');
+ return(D);
+};
+SuperClean.filterFunctions.remove_sizes = function(D)
+{
+ D = D.replace(/size="?[^" >]*"?/gi, '');
+ // { (stops jedit's fold breaking)
+ D = D.replace(/font-size:[^;}"']+;?/gi, '');
+ return(D);
+};
+SuperClean.filterFunctions.remove_faces = function(D)
+{
+ D = D.replace(/face="?[^" >]*"?/gi, '');
+ // { (stops jedit's fold breaking)
+ D = D.replace(/font-family:[^;}"']+;?/gi, '');
+ return(D);
+};
+SuperClean.filterFunctions.remove_lang = function(D)
+{
+ D = D.replace(/lang="?[^" >]*"?/gi, '');
+ return(D);
+};
+SuperClean.filterFunctions.word_clean = function(html, editor)
+{
+ editor.setHTML(html);
+ editor._wordClean();
+ return editor.getInnerHTML();
+};
+
+SuperClean.filterFunctions.remove_fancy_quotes = function(D)
+{
+ D = D.replace(new RegExp(String.fromCharCode(8216),"g"),"'");
+ D = D.replace(new RegExp(String.fromCharCode(8217),"g"),"'");
+ D = D.replace(new RegExp(String.fromCharCode(8218),"g"),"'");
+ D = D.replace(new RegExp(String.fromCharCode(8219),"g"),"'");
+ D = D.replace(new RegExp(String.fromCharCode(8220),"g"),"\"");
+ D = D.replace(new RegExp(String.fromCharCode(8221),"g"),"\"");
+ D = D.replace(new RegExp(String.fromCharCode(8222),"g"),"\"");
+ D = D.replace(new RegExp(String.fromCharCode(8223),"g"),"\"");
+ return D;
+};
+
+SuperClean.filterFunctions.tidy = function(html, editor)
+{
+ HTMLArea._postback(editor.config.SuperClean.tidy_handler, {'content' : html},
+ function(javascriptResponse) { eval(javascriptResponse) });
+};
+
+
+
+SuperClean.prototype.onGenerate = function()
+{
+ if(this.editor.config.SuperClean.show_dialog && !this._dialog)
+ {
+ this._dialog = new SuperClean.Dialog(this);
+ }
+ if(this.editor.config.tidy_handler)
+ {
+ //for backwards compatibility
+ this.editor.config.SuperClean.tidy_handler = this.editor.config.tidy_handler;
+ this.editor.config.tidy_handler = null;
+ }
+ if(!this.editor.config.SuperClean.tidy_handler && this.editor.config.filters.tidy) {
+ //unset tidy-filter if no tidy_handler
+ this.editor.config.filters.tidy = null;
+ }
+
+ var sc = this;
+ //load the filter-functions
+ for(var filter in this.editor.config.SuperClean.filters)
+ {
+ if(!SuperClean.filterFunctions[filter])
+ {
+ var filtDetail = this.editor.config.SuperClean.filters[filter];
+ if(typeof filtDetail.filterFunction != 'undefined')
+ {
+ SuperClean.filterFunctions[filter] = filterFunction;
+ }
+ else
+ {
+ HTMLArea._getback(_editor_url + 'plugins/SuperClean/filters/'+filter+'.js',
+ function(func) {
+ eval('SuperClean.filterFunctions.'+filter+'='+func+';');
+ sc.onGenerate();
+ });
+ }
+ return;
+ }
+ }
+};
+// Inline Dialog for SuperClean
+
+
+SuperClean.Dialog = function (SuperClean)
+{
+ var lDialog = this;
+ this.Dialog_nxtid = 0;
+ this.SuperClean = SuperClean;
+ this.id = { }; // This will be filled below with a replace, nifty
+
+ this.ready = false;
+ this.files = false;
+ this.html = false;
+ this.dialog = false;
+
+ // load the dTree script
+ this._prepareDialog();
+
+};
+
+SuperClean.Dialog.prototype._prepareDialog = function()
+{
+ var lDialog = this;
+ var SuperClean = this.SuperClean;
+
+ if(this.html == false)
+ {
+ HTMLArea._getback(_editor_url + 'plugins/SuperClean/dialog.html', function(txt) { lDialog.html = txt; lDialog._prepareDialog(); });
+ return;
+ }
+
+ var htmlFilters = "";
+ for(var filter in this.SuperClean.editor.config.SuperClean.filters)
+ {
+ htmlFilters += " <div>\n";
+ var filtDetail = this.SuperClean.editor.config.SuperClean.filters[filter];
+ if(typeof filtDetail.label == 'undefined')
+ {
+ htmlFilters += " <input type=\"checkbox\" name=\"["+filter+"]\" id=\"["+filter+"]\" checked />\n";
+ htmlFilters += " <label for=\"["+filter+"]\">"+this.SuperClean.editor.config.SuperClean.filters[filter]+"</label>\n";
+ }
+ else
+ {
+ htmlFilters += " <input type=\"checkbox\" name=\"["+filter+"]\" id=\"["+filter+"]\" " + (filtDetail.checked ? "checked" : "") + " />\n";
+ htmlFilters += " <label for=\"["+filter+"]\">"+filtDetail.label+"</label>\n";
+ }
+ htmlFilters += " </div>\n";
+ }
+ this.html = this.html.replace('<!--filters-->', htmlFilters);
+
+ var html = this.html;
+
+ // Now we have everything we need, so we can build the dialog.
+ var dialog = this.dialog = new HTMLArea.Dialog(SuperClean.editor, this.html, 'SuperClean');
+
+ this.ready = true;
+};
+
+SuperClean.Dialog.prototype._lc = SuperClean.prototype._lc;
+
+SuperClean.Dialog.prototype.show = function(inputs, ok, cancel)
+{
+ if(!this.ready)
+ {
+ var lDialog = this;
+ window.setTimeout(function() {lDialog.show(inputs,ok,cancel);},100);
+ return;
+ }
+
+ // Connect the OK and Cancel buttons
+ var dialog = this.dialog;
+ var lDialog = this;
+ if(ok)
+ {
+ this.dialog.getElementById('ok').onclick = ok;
+ }
+ else
+ {
+ this.dialog.getElementById('ok').onclick = function() {lDialog.hide();};
+ }
+
+ if(cancel)
+ {
+ this.dialog.getElementById('cancel').onclick = cancel;
+ }
+ else
+ {
+ this.dialog.getElementById('cancel').onclick = function() { lDialog.hide()};
+ }
+
+ // Show the dialog
+ this.SuperClean.editor.disableToolbar(['fullscreen','SuperClean']);
+
+ this.dialog.show(inputs);
+
+ // Init the sizes
+ this.dialog.onresize();
+};
+
+SuperClean.Dialog.prototype.hide = function()
+{
+ this.SuperClean.editor.enableToolbar();
+ return this.dialog.hide();
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/tidy.php
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/tidy.php?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/tidy.php (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/SuperClean/tidy.php Sun Oct 8 12:53:13 2006
@@ -0,0 +1,179 @@
+<?php
+ /** This PHP file is intended for use with XMLHTTPRequest from an HTMLArea
+ * it requrns javascript to set the htmlarea html with tidied html that is
+ * submitted in a $_POST parameter called 'content'
+ */
+
+ if(get_magic_quotes_gpc())
+ {
+ // trigger_error('Magic Quotes GPC is on, cleaning GPC.', E_USER_NOTICE);
+ $to_clean = array(&$_GET, &$_POST, &$_REQUEST, &$_COOKIE);
+ while(count($to_clean))
+ {
+ $cleaning =& $to_clean[array_pop(array_keys($to_clean))];
+ unset($to_clean[array_pop(array_keys($to_clean))]);
+ foreach(array_keys($cleaning) as $k)
+ {
+ if(is_array($cleaning[$k]))
+ {
+ $to_clean[] =& $cleaning[$k];
+ }
+ else
+ {
+ $cleaning[$k] = stripslashes($cleaning[$k]);
+ }
+ }
+ }
+ }
+
+ header('Content-Type: text/javascript; charset=utf-8');
+
+ /** Function to POST some data to a URL */
+ function PostIt($DataStream, $URL)
+ {
+
+// Strip http:// from the URL if present
+ $URL = ereg_replace("^http://", "", $URL);
+
+// Separate into Host and URI
+ $Host = substr($URL, 0, strpos($URL, "/"));
+ $URI = strstr($URL, "/");
+
+// Form up the request body
+ $ReqBody = "";
+ while (list($key, $val) = each($DataStream)) {
+ if ($ReqBody) $ReqBody.= "&";
+ $ReqBody.= $key."=".urlencode($val);
+ }
+ $ContentLength = strlen($ReqBody);
+
+// Generate the request header
+ $ReqHeader =
+ "POST $URI HTTP/1.0\n".
+ "Host: $Host\n".
+ "User-Agent: PostIt\n".
+ "Content-Type: application/x-www-form-urlencoded\n".
+ "Content-Length: $ContentLength\n\n".
+ "$ReqBody\n";
+
+// echo $ReqHeader;
+
+
+// Open the connection to the host
+ $socket = fsockopen($Host, 80, &$errno, &$errstr);
+ if (!$socket) {
+ $result = "($errno) $errstr";
+ return $Result;
+ }
+
+ fputs($socket, $ReqHeader);
+
+ $result = '';
+ while(!feof($socket))
+ {
+ $result .= fgets($socket);
+ }
+ return $result;
+ }
+
+
+ function js_encode($string)
+ {
+ static $strings = "\\,\",',%,&,<,>,{,},@,\n,\r";
+
+ if(!is_array($strings))
+ {
+ $tr = array();
+ foreach(explode(',', $strings) as $chr)
+ {
+ $tr[$chr] = sprintf('\x%02X', ord($chr));
+ }
+ $strings = $tr;
+ }
+
+ return strtr($string, $strings);
+ }
+
+ // Any errors would screq up our javascript
+ error_reporting(E_NONE);
+ ini_set('display_errors', false);
+
+ if(trim(@$_REQUEST['content']))
+ {
+ // PHP's urldecode doesn't understand %uHHHH for unicode
+ $_REQUEST['content'] = preg_replace('/%u([a-f0-9]{4,4})/ei', 'utf8_chr(0x$1)', $_REQUEST['content']);
+ function utf8_chr($num)
+ {
+ if($num<128)return chr($num);
+ if($num<1024)return chr(($num>>6)+192).chr(($num&63)+128);
+ if($num<32768)return chr(($num>>12)+224).chr((($num>>6)&63)+128).chr(($num&63)+128);
+ if($num<2097152)return chr(($num>>18)+240).chr((($num>>12)&63)+128).chr((($num>>6)&63)+128) .chr(($num&63)+128);
+ return '';
+ }
+ ob_start();
+ passthru("echo " . escapeshellarg($_REQUEST['content']) . " | tidy -q -i -u -wrap 9999 -utf8 -bare -asxhtml 2>/dev/null", $result);
+ $content = ob_get_contents();
+ ob_end_clean();
+
+ if(!strlen($content))
+ {
+ // Tidy on the local machine failed, try a post
+ $res_1
+ = PostIt(
+ array
+ (
+ '_function' => 'tidy',
+ '_html' => $_REQUEST['content'],
+ 'char-encoding' => 'utf8',
+ '_output' => 'warn',
+ 'indent' => 'auto',
+ 'wrap' => 9999,
+ 'break-before-br' => 'y',
+ 'bare' => 'n',
+ 'word-2000' => 'n',
+ 'drop-empty-paras' => 'y',
+ 'drop-font-tags' => 'n',
+
+ ),
+ 'http://infohound.net/tidy/tidy.pl');
+
+ if(preg_match('/<a href="([^"]+)" title="Save the tidied HTML/', $res_1, $m))
+ {
+ $tgt = strtr($m[1], array_flip(get_html_translation_table(HTML_ENTITIES)));
+ $content = implode('', file('http://infohound.net/tidy/' . $tgt));
+ }
+ }
+
+ if(strlen($content) && ! preg_match('/<\/body>/i', $_REQUEST['content']))
+ {
+ if( preg_match('/<body[^>]*>(.*)<\/body>/is', $content, $matches) )
+ {
+ $content = $matches[1];
+ }
+ }
+ elseif(!strlen($content))
+ {
+ $content = $_REQUEST['content'];
+ }
+
+ if($content)
+ {
+ ?>
+ editor.setHTML('<?php echo js_encode($content) ?>');
+ <?php
+ }
+ else
+ {
+ ?>
+ alert(this._lc('Tidy failed. Check your HTML for syntax errors.'));
+ <?php
+ }
+ }
+ else
+ {
+ ?>
+ alert(this._lc("You don't have anything to tidy!"));
+ <?php
+ }
+
+?>
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-delete.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-delete.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-delete.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-after.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-after.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-after.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-before.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-before.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-insert-before.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-merge.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-merge.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-merge.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-prop.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-prop.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-prop.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-split.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-split.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/cell-split.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-delete.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-delete.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-delete.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-after.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-after.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-after.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-before.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-before.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-insert-before.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-split.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-split.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/col-split.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-delete.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-delete.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-delete.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-above.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-above.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-above.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-under.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-under.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-insert-under.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-prop.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-prop.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-prop.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-split.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-split.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/row-split.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/table-prop.gif
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/table-prop.gif?view=auto&rev=454197
==============================================================================
Binary file - no diff available.
Propchange: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/img/table-prop.gif
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/cz.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/cz.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/cz.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/cz.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,79 @@
+// I18N constants
+// LANG: "cz", ENCODING: UTF-8
+// Author: Jiri Löw, <ji...@jirilow.com>
+{
+ "Align": "ZarovnánÃ",
+ "All four sides": "VÅ¡echny ÄtyÅi strany",
+ "Background": "PozadÃ",
+ "Baseline": "Základnà linka",
+ "Border": "Obrys",
+ "Borders": "Obrysy",
+ "Bottom": "Dolů",
+ "Style [CSS]": "Kaskádové styly (CSS)",
+ "Caption": "Titulek",
+ "Cell Properties": "Vlastnosti buÅky",
+ "Center": "Na stÅed",
+ "Char": "Znak",
+ "Collapsed borders": "StlaÄené okraje",
+ "Color": "Barva",
+ "Description": "Popis",
+ "FG Color": "Barva popÅedÃ",
+ "Float": "ObtékánÃ",
+ "Frames": "RámeÄky",
+ "Height": "Výška",
+ "How many columns would you like to merge?": "Kolik sloupců si pÅejete spojit?",
+ "How many rows would you like to merge?": "Kolik Åádků si pÅejete spojit?",
+ "Image URL": "Adresa obrázku",
+ "Justify": "Do stran",
+ "Layout": "RozloženÃ",
+ "Left": "Vlevo",
+ "Margin": "Okraj",
+ "Middle": "Na stÅed",
+ "No rules": "Žádné Äáry",
+ "No sides": "Žádné strany",
+ "None": "Žádné",
+ "Padding": "OdsazovánÃ",
+ "Please click into some cell": "ProsÃm kliknÄte do nÄkteré buÅky",
+ "Right": "Vpravo",
+ "Row Properties": "Vlastnosti Åádku",
+ "Rules will appear between all rows and columns": "Äáry mezi vÅ¡emi Åádky i sloupci",
+ "Rules will appear between columns only": "Äáry pouze mezi sloupci",
+ "Rules will appear between rows only": "Äáry pouze mezi Åádky",
+ "Rules": "Äáry",
+ "Spacing and padding": "Mezery a odsazovánÃ",
+ "Spacing": "Mezery",
+ "Summary": "ShrnutÃ",
+ "Delete cell": "Smazat buÅku",
+ "Insert cell after": "Vložit buÅku za",
+ "Insert cell before": "Vložit buÅku pÅed",
+ "Merge cells": "Spojit buÅky",
+ "Cell properties": "Vlastnosti buÅky",
+ "Split cell": "RozdÄlit buÅku",
+ "Delete column": "Smazat sloupec",
+ "Insert column after": "Vložit sloupec za",
+ "Insert column before": "Vložit sloupec pÅed",
+ "Split column": "RozdÄlit sloupec",
+ "Delete row": "Smazat Åádek",
+ "Insert row before": "Smazat Åádek nad",
+ "Insert row after": "Smazat Åádek pod",
+ "Row properties": "Vlastnosti Åádku",
+ "Split row": "RozdÄlit Åádek",
+ "Table properties": "Vlastnosti tabulky",
+ "Table Properties": "Vlastnosti tabulky",
+ "Text align": "Zarovnánà textu",
+ "The bottom side only": "Pouze spodnà strana",
+ "The left-hand side only": "Pouze levá strana",
+ "The right and left sides only": "Pouze levá a pravá strana",
+ "The right-hand side only": "Pouze pravá strana",
+ "The top and bottom sides only": "Pouze hornà a dolnà strana",
+ "The top side only": "Pouze hornà strana",
+ "Top": "Nahoru",
+ "Unset color": "Zrušit barvu",
+ "Vertical align": "Svislé zarovnánÃ",
+ "Width": "Å ÃÅka",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "HTMLArea zbabÄle odmÃtá smazat poslednà buÅku v Åádku.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "HTMLArea zbabÄle odmÃtá smazat poslednà sloupec v tabulce.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "HTMLArea zbabÄle odmÃtá smazat poslednà Åádek v tabulce.",
+ "percent": "procent",
+ "pixels": "pixelů"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/da.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/da.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/da.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/da.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,79 @@
+// I18N constants
+// LANG: "da", ENCODING: UTF-8
+// Author: Steen Sønderup, <st...@soenderup.com>
+{
+ "Align": "Placer",
+ "All four sides": "Alle fire sider",
+ "Background": "Baggrund",
+ "Baseline": "Bundlinie",
+ "Border": "Kant",
+ "Borders": "Kanter",
+ "Bottom": "Bund",
+ "Style [CSS]": "Stil [CSS]",
+ "Caption": "Titel",
+ "Cell Properties": "Celle egenskaber",
+ "Center": "Centrer",
+ "Char": "Plads",
+ "Collapsed borders": "Sammensmelt rammer",
+ "Color": "Farve",
+ "Description": "Beskrivelse",
+ "FG Color": "Font farve",
+ "Float": "Justering",
+ "Frames": "Udvendig",
+ "Height": "Højde",
+ "How many columns would you like to merge?": "Hvor mange kollonner vil du samle?",
+ "How many rows would you like to merge?": "Hvor mange rækker vil du samle?",
+ "Image URL": "Billede URL",
+ "Justify": "Lige margener",
+ "Layout": "Opsætning",
+ "Left": "Venstre",
+ "Margin": "Margen",
+ "Middle": "Centrer",
+ "No rules": "Ingen rammer",
+ "No sides": "Ingen sider",
+ "None": "Ingen",
+ "Padding": "Margen",
+ "Please click into some cell": "Klik på en celle",
+ "Right": "Højre",
+ "Row Properties": "Række egenskaber",
+ "Rules will appear between all rows and columns": "Rammer mellem rækker og kolonner",
+ "Rules will appear between columns only": "Kun rammer mellem kolonner",
+ "Rules will appear between rows only": "Kun rammer mellem rækker",
+ "Rules": "Invendig",
+ "Spacing and padding": "Afstand og margen",
+ "Spacing": "Afstand",
+ "Summary": "Beskrivelse",
+ "Delete cell": "Slet celle",
+ "Insert cell after": "Indsæt celle efter",
+ "Insert cell before": "Indsæt celle før",
+ "Merge cells": "Sammensæt celler",
+ "Cell properties": "Celle egenskaber",
+ "Split cell": "Opdel celle",
+ "Delete column": "Slet kollonne",
+ "Insert column after": "Indsæt kolonne efter",
+ "Insert column before": "Indsæt kolonne før",
+ "Split column": "Opdel kolonne",
+ "Delete row": "Slet række",
+ "Insert row before": "Indsæt række før",
+ "Insert row after": "Indsæt række efter",
+ "Row properties": "Række egenskaber",
+ "Split row": "Opdel række",
+ "Table properties": "Tabel egenskaber",
+ "Table Properties": "Tabel egenskaber",
+ "Text align": "Tekst",
+ "The bottom side only": "Kun i bunden",
+ "The left-hand side only": "Kun i højre side",
+ "The right and left sides only": "Kun i siderne",
+ "The right-hand side only": "Kun i venstre side",
+ "The top and bottom sides only": "Kun i top og bund",
+ "The top side only": "Kun i toppen",
+ "Top": "Top",
+ "Unset color": "Farve ikke valgt",
+ "Vertical align": "Vertikal placering",
+ "Width": "Bredde",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "Du kan ikke slette den sidste celle i en række.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "Du kan ikke slette den sidste kolonne i en tabel.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "Du kan ikke slette den sidste række i en tabel.",
+ "percent": "procent",
+ "pixels": "pixel"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/de.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/de.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/de.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/de.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,81 @@
+// I18N constants
+// LANG: "de", ENCODING: UTF-8
+// translated: Raimund Meyer xinha@ray-of-light.org
+{
+ "Align": "Ausrichtung",
+ "All four sides": "Alle 4 Seiten",
+ "Background": "Hintergrund",
+ "Baseline": "Grundlinie",
+ "Border": "Rahmen",
+ "Borders": "Rahmen",
+ "Bottom": "Unten",
+ "Style [CSS]": "Style [CSS]",
+ "Caption": "Ãberschrift",
+ "Cell Properties": "Zellenoptionen",
+ "Center": "Zentriert",
+ "Char": "Zeichen",
+ "Collapsed borders": "Rahmen fallen zusammen",
+ "Color": "Farbe",
+ "Description": "Beschreibung",
+ "FG Color": "Vordergrundfarbe",
+ "Float": "Float",
+ "Frames": "Rahmen",
+ "Height": "Höhe",
+ "How many columns would you like to merge?": "Wieviele Spalten wollen Sie verbinden?",
+ "How many rows would you like to merge?": "Wieviele Zeilen wollen Sie verbinden?",
+ "Image URL": "Bild-URL",
+ "Justify": "Blocksatz",
+ "Layout": "Layout",
+ "Left": "Links",
+ "Margin": "Rand",
+ "Middle": "Mitte",
+ "No rules": "Keine Gitterlinien",
+ "No sides": "Keine Ränder",
+ "None": "Keine",
+ "Padding": "Innenabstand",
+ "Please click into some cell": "Bitte eine Zelle auswählen",
+ "Right": "Rechts",
+ "Row Properties": "Zeilenoptionen",
+ "Rules will appear between all rows and columns": "Linien zwischen Zeilen und Spalten",
+ "Rules will appear between columns only": "Linien zwischen Spalten",
+ "Rules will appear between rows only": "Linien zwischen Zeilen",
+ "Rules": "Linien",
+ "Spacing and padding": "Abstände",
+ "Spacing": "Abstand",
+ "Summary": "Zusammenfassung",
+ "Delete cell": "Zelle löschen",
+ "Insert cell after": "Zelle einfügen nach",
+ "Insert cell before": "Zelle einfügen vor",
+ "Merge cells": "Zellen zusammenfügen",
+ "Cell properties": "Zellenoptionen",
+ "Split cell": "Zellen teilen",
+ "Delete column": "Spalte löschen",
+ "Insert column after": "Spalte einfügen nach",
+ "Insert column before": "Spalte einfügen vor",
+ "Split column": "Spalte teilen",
+ "Delete row": "Reihe loeschen",
+ "Insert row before": "Reihe einfügen vor",
+ "Insert row after": "Reihe einfügen nach",
+ "Row properties": "Reiheneinstellungen",
+ "Split row": "Reihen aufteilen",
+ "Table properties": "Tabellenoptionen",
+ "Table Properties": "Tabellenoptionen",
+ "Text align": "Textausrichtung",
+ "The bottom side only": "Nur untere Seite",
+ "The left-hand side only": "Nur linke Seite",
+ "The right and left sides only": "Nur linke und rechte Seite",
+ "The right-hand side only": "Nur rechte Seite",
+ "The top and bottom sides only": "Nur obere und untere Seite",
+ "The top side only": "Nur obere Seite",
+ "Top": "Oben",
+ "Unset color": "Farbe entfernen",
+ "Vertical align": "Vertikale Ausrichtung",
+ "Width": "Breite",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "Letzte Zelle in dieser Zeile kann nicht gelöscht werden",
+ "HTMLArea cowardly refuses to delete the last column in table.": "Letzte Spalte in dieser Tabelle kann nicht gelöscht werden",
+ "HTMLArea cowardly refuses to delete the last row in table.": "Letzte Reihe in dieser Tabelle kann nicht gelöscht werden",
+ "percent": "%",
+ "pixels": "Pixel",
+ "OK": "OK",
+ "Cancel": "Abbrechen"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/el.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/el.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/el.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/el.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,79 @@
+// I18N constants
+// LANG: "el", ENCODING: UTF-8
+// Author: Dimitris Glezos, dimitris@glezos.com
+{
+ "Align": "ΣÏοίÏηÏη",
+ "All four sides": "Îαι οι 4 ÏλεÏ
ÏÎÏ",
+ "Background": "ΦÏνÏο",
+ "Baseline": "Baseline",
+ "Border": "ΠεÏίγÏαμμα",
+ "Borders": "ΠεÏιγÏάμμαÏα",
+ "Bottom": "ÎάÏÏ Î¼ÎÏοÏ",
+ "Style [CSS]": "ΣÏÏ
λ [CSS]",
+ "Caption": "ÎεζάνÏα",
+ "Cell Properties": "ÎδιÏÏηÏÎµÏ ÎελιοÏ",
+ "Center": "ÎÎνÏÏο",
+ "Char": "ΧαÏακÏήÏαÏ",
+ "Collapsed borders": "ΣÏ
μÏÏÏ
γμÎνα ÏεÏιγÏάμμαÏα",
+ "Color": "ΧÏÏμα",
+ "Description": "ΠεÏιγÏαÏή",
+ "FG Color": "ΧÏÏμα ανÏικειμÎνÏν",
+ "Float": "Float",
+ "Frames": "Frames",
+ "Height": "ÎÏοÏ",
+ "How many columns would you like to merge?": "Î ÏÏÎµÏ ÏÏÎ®Î»ÎµÏ Î¸ÎλεÏε να ενÏÏεÏε;",
+ "How many rows would you like to merge?": "Î ÏÏÎµÏ Î³ÏαμμÎÏ Î¸ÎλεÏε να ενÏÏεÏε;",
+ "Image URL": "URL εικÏναÏ",
+ "Justify": "ΠλήÏÎ·Ï ÏÏοίÏηÏη",
+ "Layout": "ÎιάÏαξη",
+ "Left": "ÎÏιÏÏεÏά",
+ "Margin": "ΠεÏιθÏÏιο",
+ "Middle": "ÎÎνÏÏο",
+ "No rules": "ΧÏÏÎ¯Ï ÎÏαμμÎÏ",
+ "No sides": "No sides",
+ "None": "ΤίÏοÏα",
+ "Padding": "ÎÏοÏή",
+ "Please click into some cell": "ÎάνÏε κλικ μÎÏα Ïε κάÏοιο κελί",
+ "Right": "Îεξιά",
+ "Row Properties": "ÎδιÏÏηÏÎµÏ ÎÏαμμήÏ",
+ "Rules will appear between all rows and columns": "ÎÏαμμÎÏ Î¸Î± εμÏανίζονÏαι μεÏÎ±Î¾Ï ÏλÏν ÏÏν γÏαμμÏν και ÏÏηλÏν",
+ "Rules will appear between columns only": "ÎÏαμμÎÏ Î¸Î± εμÏανίζονÏαι μÏνο μεÏÎ±Î¾Ï ÏÏηλÏν",
+ "Rules will appear between rows only": "ÎÏαμμÎÏ Î¸Î± εμÏανίζονÏαι μÏνο μεÏÎ±Î¾Ï Î³ÏαμμÏν",
+ "Rules": "ÎÏαμμÎÏ",
+ "Spacing and padding": "ÎÏοÏÏάÏÎµÎ¹Ï ÎºÎ±Î¹ εÏοÏÎÏ",
+ "Spacing": "ÎÏοÏÏάÏειÏ",
+ "Summary": "ΣÏνοÏη",
+ "Delete cell": "ÎιαγÏαÏή κελιοÏ",
+ "Insert cell after": "ÎιÏαγÏγή ÎºÎµÎ»Î¹Î¿Ï Î¼ÎµÏά",
+ "Insert cell before": "ÎιÏαγÏγή ÎºÎµÎ»Î¹Î¿Ï ÏÏιν",
+ "Merge cells": "ΣÏ
γÏÏνεÏ
Ïη κελιÏν",
+ "Cell properties": "ÎδιÏÏηÏÎµÏ ÎºÎµÎ»Î¹Î¿Ï",
+ "Split cell": "ÎιαίÏεÏη κελιοÏ",
+ "Delete column": "ÎιαγÏαÏή ÏÏήληÏ",
+ "Insert column after": "ÎιÏαγÏγή ÏÏÎ®Î»Î·Ï Î¼ÎµÏά",
+ "Insert column before": "ÎιÏαγÏγή ÏÏÎ®Î»Î·Ï ÏÏιν",
+ "Split column": "ÎιαίÏεÏη ÏÏήληÏ",
+ "Delete row": "ÎιαγÏαÏή γÏαμμήÏ",
+ "Insert row before": "ÎιÏαγÏγή γÏÎ±Î¼Î¼Î®Ï Î¼ÎµÏά",
+ "Insert row after": "ÎιÏαγÏγή γÏÎ±Î¼Î¼Î®Ï ÏÏιν",
+ "Row properties": "ÎδιÏÏηÏÎµÏ Î³ÏαμμήÏ",
+ "Split row": "ÎιαίÏεÏη γÏαμμήÏ",
+ "Table properties": "ÎδιÏÏηÏÎµÏ Ïίνακα",
+ "Table Properties": "ÎδιÏÏηÏÎµÏ Ïίνακα",
+ "Text align": "ΣÏοίÏηÏη κειμÎνοÏ
",
+ "The bottom side only": "ΠκάÏÏ ÏλεÏ
Ïά μÏνο",
+ "The left-hand side only": "ΠαÏιÏÏεÏή ÏλεÏ
Ïά μÏνο",
+ "The right and left sides only": "Îι δεξιÎÏ ÎºÎ±Î¹ αÏιÏÏεÏÎÏ ÏλεÏ
ÏÎÏ Î¼Ïνο",
+ "The right-hand side only": "Πδεξιά ÏλεÏ
Ïά μÏνο",
+ "The top and bottom sides only": "Îι ÏÎ¬Î½Ï ÎºÎ±Î¹ κάÏÏ ÏλεÏ
ÏÎÏ Î¼Ïνο",
+ "The top side only": "Î ÏÎ¬Î½Ï ÏλεÏ
Ïά μÏνο",
+ "Top": "ΠάνÏ",
+ "Unset color": "ÎναίÏεÏη ÏÏÏμαÏοÏ",
+ "Vertical align": "ÎαÏακÏÏÏ
Ïη ÏÏοίÏηÏη",
+ "Width": "ΠλάÏοÏ",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "Îεν μÏοÏεί να διαγÏαÏεί Ïο ÏελεÏ
Ïαίο κελί Ïε μια γÏαμμή.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "Îεν μÏοÏεί να διαγÏαÏεί η ÏελεÏ
Ïαία ÏÏήλη Ïε Îνα Ïίνακα.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "Îεν μÏοÏεί να διαγÏαÏεί η ÏελεÏ
Ïαία γÏαμμή Ïε Îνα Ïίνακα.",
+ "percent": "ÏÎ¿Î¹Ï ÎµÎºÎ±ÏÏν",
+ "pixels": "pixels"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fi.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fi.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fi.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fi.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,68 @@
+// I18N constants
+// LANG: "fi", ENCODING: UTF-8
+{
+ "Align": "Kohdistus",
+ "All four sides": "Kaikki neljä sivua",
+ "Background": "Tausta",
+ "Baseline": "Takaraja",
+ "Border": "Reuna",
+ "Borders": "Reunat",
+ "Bottom": "Alle",
+ "Style [CSS]": "Tyyli [CSS]",
+ "Caption": "Otsikko",
+ "Cell Properties": "Solun asetukset",
+ "Center": "Keskelle",
+ "Char": "Merkki",
+ "Collapsed borders": "Luhistetut reunat",
+ "Color": "Väri",
+ "Description": "Kuvaus",
+ "FG Color": "FG Väri",
+ "Frames": "Kehykset",
+ "Image URL": "Kuvan osoite",
+ "Layout": "Sommittelu",
+ "Left": "Vasen",
+ "Margin": "Marginaali",
+ "Middle": "Keskelle",
+ "No rules": "Ei viivoja",
+ "No sides": "Ei sivuja",
+ "Padding": "Palstantäyte",
+ "Right": "Oikea",
+ "Row Properties": "Rivin asetukset",
+ "Rules will appear between all rows and columns": "Viivat jokaisen rivin ja sarakkeen välillä",
+ "Rules will appear between columns only": "Viivat ainoastaan sarakkeiden välillä",
+ "Rules will appear between rows only": "Viivat ainoastaan rivien välillä",
+ "Rules": "Viivat",
+ "Spacing": "Palstatila",
+ "Summary": "Yhteenveto",
+ "Delete cell": "Poista solu",
+ "Insert cell after": "Lisää solu perään",
+ "Insert cell before": "Lisää solu ennen",
+ "Merge cells": "Yhdistä solut",
+ "Cell properties": "Solun asetukset",
+ "Split cell": "Jaa solu",
+ "Delete column": "Poista sarake",
+ "Insert column after": "Lisää sarake perään",
+ "Insert column before": "Lisää sarake ennen",
+ "Split column": "Jaa sarake",
+ "Delete row": "Poista rivi",
+ "Insert row before": "Lisää rivi yläpuolelle",
+ "Insert row after": "Lisää rivi alapuolelle",
+ "Row properties": "Rivin asetukset",
+ "Split row": "Jaa rivi",
+ "Table properties": "Taulukon asetukset",
+ "Top": "Ylös",
+ "Table Properties": "Taulukon asetukset",
+ "The bottom side only": "Ainoastaan alapuolelle",
+ "The left-hand side only": "Ainoastaan vasenreuna",
+ "The right and left sides only": "Oikea- ja vasenreuna",
+ "The right-hand side only": "Ainoastaan oikeareuna",
+ "The top and bottom sides only": "Ylä- ja alapuoli.",
+ "The top side only": "Ainoastaan yläpuoli",
+ "Vertical align": "Vertikaali kohdistus",
+ "Width": "Leveys",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "Ei voida poistaa viimeistä solua rivistä.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "Ei voida poistaa viimeistä saraketta taulusta.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "Ei voida poistaa viimeistä riviä taulusta.",
+ "percent": "prosenttia",
+ "pixels": "pikseliä"
+};
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fr.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fr.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fr.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/fr.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,78 @@
+// I18N constants
+// LANG: "fr", ENCODING: UTF-8
+{
+ "Align": "Aligner",
+ "All four sides": "Quatre cotés",
+ "Background": "Arrière plan",
+ "Baseline": "Ligne de base",
+ "Border": "Bordure",
+ "Borders": "Bordures",
+ "Bottom": "Bas",
+ "Style [CSS]": "Style [CSS]",
+ "Caption": "Ãtiquette",
+ "Cell Properties": "Propriétés de cellule",
+ "Center": "Centre",
+ "Char": "Charactère",
+ "Collapsed borders": "Bordure effondrés",
+ "Color": "Couleur",
+ "Description": "Description",
+ "FG Color": "Couleur de face",
+ "Float": "Flotteur",
+ "Frames": "Vues",
+ "Height": "Largeur",
+ "How many columns would you like to merge?": "Combien de colonnes voulez-vous fusionner?",
+ "How many rows would you like to merge?": "Combien de rangées voulez-vous fusionner?",
+ "Image URL": "URL pour l'image",
+ "Justify": "Justifié",
+ "Layout": "Arrangement",
+ "Left": "Gauche",
+ "Margin": "Marge",
+ "Middle": "Milieu",
+ "No rules": "Aucune règle",
+ "No sides": "Aucun côté",
+ "None": "Aucun",
+ "Padding": "Remplissage",
+ "Please click into some cell": "Cliquer sur une cellule",
+ "Right": "Droit",
+ "Row Properties": "Propriétés de rangée",
+ "Rules will appear between all rows and columns": "Règles entre les rangées et les cellules",
+ "Rules will appear between columns only": "Règles entre les colonnes seulement",
+ "Rules will appear between rows only": "Règles entre les rangées seulement",
+ "Rules": "Les règles",
+ "Spacing and padding": "Espacement et remplissage",
+ "Spacing": "Espacement",
+ "Summary": "Sommaire",
+ "Delete cell": "Supprimer une cellule",
+ "Insert cell after": "Insérer une cellule après",
+ "Insert cell before": "Insérer une cellule avant",
+ "Merge cells": "Fusionner les cellules",
+ "Cell properties": "Cell properties",
+ "Split cell": "Diviser la cellule",
+ "Delete column": "Supprimer la colonne",
+ "Insert column after": "Insérer une colonne après",
+ "Insert column before": "Insérer une colonne avant",
+ "Split column": "Diviser une colonne",
+ "Delete row": "Supprimer une rangée",
+ "Insert row before": "Insérer une rangée avant",
+ "Insert row after": "Insérer une rangée après",
+ "Row properties": "Propriétés de rangée",
+ "Split row": "Diviser la rangée",
+ "Table properties": "Propriétés de table",
+ "Table Properties": "Propriétés de table",
+ "Text align": "Alignement",
+ "The bottom side only": "Côté du bas seulement",
+ "The left-hand side only": "Côté gauche seulement",
+ "The right and left sides only": "Côté gauche et droit seulement",
+ "The right-hand side only": "Côté droit seulement",
+ "The top and bottom sides only": "Côté haut et bas seulement",
+ "The top side only": "Côté haut seulement",
+ "Top": "Haut",
+ "Unset color": "Enlever la couleur",
+ "Vertical align": "Vertical",
+ "Width": "Longeur",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "Il est impossible de supprimer la dernière cellule de la rangée.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "Il est impossible de supprimer la dernière colonne de la table.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "Il est impossible de supprimer la dernière rangée de la table",
+ "percent": "%",
+ "pixels": "pixels"
+};
\ No newline at end of file
Added: incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/he.js
URL: http://svn.apache.org/viewvc/incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/he.js?view=auto&rev=454197
==============================================================================
--- incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/he.js (added)
+++ incubator/roller/trunk/web/roller-ui/authoring/editors/xinha/plugins/TableOperations/lang/he.js Sun Oct 8 12:53:13 2006
@@ -0,0 +1,79 @@
+// I18N constants
+// LANG: "he", ENCODING: UTF-8
+// Author: Liron Newman, http://www.eesh.net, <plastish at ultinet dot org>
+{
+ "Align": "×ש×ר",
+ "All four sides": "×× ×ר×עת ×צ××××",
+ "Background": "רקע",
+ "Baseline": "×§× ×ס×ס",
+ "Border": "××××",
+ "Borders": "×××××ת",
+ "Bottom": "ת×ת××",
+ "Style [CSS]": "ס×× ×× [CSS]",
+ "Caption": "××תרת",
+ "Cell Properties": "××פ××× × ×ª×",
+ "Center": "×ר××",
+ "Char": "ת×",
+ "Collapsed borders": "×××××ת ×§×רס××",
+ "Color": "צ××¢",
+ "Description": "ת×××ר",
+ "FG Color": "צ××¢ ×§××××",
+ "Float": "×ר××£",
+ "Frames": "×ס×ר×ת",
+ "Height": "××××",
+ "How many columns would you like to merge?": "××× ××ר×× ×רצ×× × ××××?",
+ "How many rows would you like to merge?": "××× ×©×ר×ת ×רצ×× × ××××?",
+ "Image URL": "URL ×ת××× ×",
+ "Justify": "×ש×ר",
+ "Layout": "פר×ס×",
+ "Left": "ש×××",
+ "Margin": "ש×××××",
+ "Middle": "××צע",
+ "No rules": "××× ×§××××",
+ "No sides": "××× ×¦××××",
+ "None": "×××",
+ "Padding": "ר×××× ×ש×××××",
+ "Please click into some cell": "×× × ×××¥ ×¢× ×ª× ××ש××",
+ "Right": "××××",
+ "Row Properties": "××פ××× × ×©×ר×",
+ "Rules will appear between all rows and columns": "×§×××× ××פ××¢× ××× ×× ×ש×ר×ת ××××ר××",
+ "Rules will appear between columns only": "×§×××× ××פ××¢× ××× ××ר×× ××××",
+ "Rules will appear between rows only": "×§×××× ××פ××¢× ××× ×©×ר×ת ××××",
+ "Rules": "×§××××",
+ "Spacing and padding": "ר×××× ×ש×××××",
+ "Spacing": "ר××××",
+ "Summary": "ס××××",
+ "Delete cell": "×××§ ת×",
+ "Insert cell after": "××× ×¡ ×ª× ××ר×",
+ "Insert cell before": "××× ×¡ ×ª× ××¤× ×",
+ "Merge cells": "××× ×ª×××",
+ "Cell properties": "××פ××× × ×ª×",
+ "Split cell": "×¤×¦× ×ª×",
+ "Delete column": "×××§ ××ר",
+ "Insert column after": "××× ×¡ ××ר ××ר×",
+ "Insert column before": "××× ×¡ ××ר ××¤× ×",
+ "Split column": "×¤×¦× ××ר",
+ "Delete row": "×××§ ש×ר×",
+ "Insert row before": "××× ×¡ ש××¨× ××¤× ×",
+ "Insert row after": "××× ×¡ ש××¨× ××ר×",
+ "Row properties": "××פ××× × ×©×ר×",
+ "Split row": "×¤×¦× ×©×ר×",
+ "Table properties": "××פ××× × ××××",
+ "Table Properties": "××פ××× × ××××",
+ "Text align": "×ש×ר ×קס×",
+ "The bottom side only": "××¦× ×ת×ת×× ××××",
+ "The left-hand side only": "××¦× ×ש×××× ××××",
+ "The right and left sides only": "×צ×××× ×××× × ××ש×××× ××××",
+ "The right-hand side only": "××¦× ×××× × ××××",
+ "The top and bottom sides only": "×צ×××× ××¢×××× ××ת×ת×× ××××",
+ "The top side only": "××¦× ××¢×××× ××××",
+ "Top": "×¢××××",
+ "Unset color": "צ××¢ ×× × ××ר",
+ "Vertical align": "××ש×ר ×× ××",
+ "Width": "ר×××",
+ "HTMLArea cowardly refuses to delete the last cell in row.": "HTMLArea ××¡×¨× ×פ××× ×ת ×××××§ ×ת ××ª× ×××ר×× ×ש×ר×.",
+ "HTMLArea cowardly refuses to delete the last column in table.": "HTMLArea ××¡×¨× ×פ××× ×ת ×××××§ ×ת ×××ר ×××ר×× ×××××.",
+ "HTMLArea cowardly refuses to delete the last row in table.": "HTMLArea ××¡×¨× ×פ××× ×ת ×××××§ ×ת ×ש××¨× ×××ר×× × ×××××.",
+ "percent": "××××",
+ "pixels": "פ×קס×××"
+};