diff --git a/xinha/contrib/lc_parse_strings.php b/xinha/contrib/lc_parse_strings.php index 22e3a96..86ae914 100755 --- a/xinha/contrib/lc_parse_strings.php +++ b/xinha/contrib/lc_parse_strings.php @@ -92,17 +92,20 @@ foreach($plugins as $pluginDir) { $fp = fopen($file, "r"); $data = ""; - while(!feof($fp)) { - $data .= fread($fp, 1024); - } - preg_match_all('#_lc\("([^"]+)"|_lc\(\'([^\']+)\'#', $data, $m); - foreach($m[1] as $i) { - if(trim(strip_tags($i))=="") continue; - $ret[] = $i; - } - foreach($m[2] as $i) { - if(trim(strip_tags($i))=="") continue; - $ret[] = $i; + if($fp) { + echo "$file open...
"; + while(!feof($fp)) { + $data .= fread($fp, 1024); + } + preg_match_all('#_lc\("([^"]+)"|_lc\(\'([^\']+)\'#', $data, $m); + foreach($m[1] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } + foreach($m[2] as $i) { + if(trim(strip_tags($i))=="") continue; + $ret[] = $i; + } } } @@ -258,4 +261,4 @@ function getFiles($rootdirpath, $eregi_match='') { -?> \ No newline at end of file +?> diff --git a/xinha/dialog.js b/xinha/dialog.js index 09c000e..b6e7b20 100644 --- a/xinha/dialog.js +++ b/xinha/dialog.js @@ -19,7 +19,7 @@ function Dialog(url, action, init) { init = window; // pass this window object by default } Dialog._geckoOpenModal(url, action, init); -}; +} Dialog._parentEvent = function(ev) { setTimeout( function() { if (Dialog._modal && !Dialog._modal.closed) { Dialog._modal.focus() } }, 50); @@ -50,13 +50,13 @@ Dialog._geckoOpenModal = function(url, action, init) { HTMLArea._addEvent(w, "click", Dialog._parentEvent); HTMLArea._addEvent(w, "mousedown", Dialog._parentEvent); HTMLArea._addEvent(w, "focus", Dialog._parentEvent); - }; + } // release the captured events function relwin(w) { HTMLArea._removeEvent(w, "click", Dialog._parentEvent); HTMLArea._removeEvent(w, "mousedown", Dialog._parentEvent); HTMLArea._removeEvent(w, "focus", Dialog._parentEvent); - }; + } capwin(window); // capture other frames, note the exception trapping, this is because // we are not permitted to add events to frames outside of the current @@ -73,4 +73,4 @@ Dialog._geckoOpenModal = function(url, action, init) { Dialog._modal = null; }; Dialog._modal.focus(); -}; +}; \ No newline at end of file diff --git a/xinha/examples/Extended.html b/xinha/examples/Extended.html new file mode 100644 index 0000000..24e671c --- /dev/null +++ b/xinha/examples/Extended.html @@ -0,0 +1,220 @@ + + + + Settings + + + + + + + + +
Settings
+
+
Editor width:
+ +

+

Editor height:
+ +

+

Size includes bars
+ +

+

Status Bar
+ +

+

Mozilla Parameter Handler:
+ +
+
Undo steps:
+ +

+

Base href:
+ +

+

Strip base href
+ +

+

Strip self named anchors
+ +

+

only 7bit printables in URLs
+ +

+

7bit Clean
+ +

+

kill Word on paste
+ +

+

flow toolbars
+ +

+ +

+
+
CharacterMap mode :
+ +
+

+ +

+
+
ListType mode :
+ +
+

+ +

+ + +
+
+ + \ No newline at end of file diff --git a/xinha/examples/custom.css b/xinha/examples/custom.css index 14f59ba..b77dca1 100644 --- a/xinha/examples/custom.css +++ b/xinha/examples/custom.css @@ -4,7 +4,7 @@ -- @TODO Make this CSS more useful. -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/examples/custom.css $ - -- $LastChangedDate: 2005-02-19 17:10:03 +1300 (Sat, 19 Feb 2005) $ + -- $LastChangedDate: 2005-02-18 23:10:03 -0500 (Fri, 18 Feb 2005) $ -- $LastChangedRevision: 14 $ -- $LastChangedBy: gogo $ --------------------------------------------------------------------------*/ diff --git a/xinha/examples/dynamic.css b/xinha/examples/dynamic.css index bc14b8f..8d77bb6 100644 --- a/xinha/examples/dynamic.css +++ b/xinha/examples/dynamic.css @@ -4,7 +4,7 @@ -- @TODO Make this CSS more useful. -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/examples/dynamic.css $ - -- $LastChangedDate: 2005-02-19 17:10:03 +1300 (Sat, 19 Feb 2005) $ + -- $LastChangedDate: 2005-02-18 23:10:03 -0500 (Fri, 18 Feb 2005) $ -- $LastChangedRevision: 14 $ -- $LastChangedBy: gogo $ --------------------------------------------------------------------------*/ diff --git a/xinha/examples/ext_example-body.html b/xinha/examples/ext_example-body.html new file mode 100644 index 0000000..0a155c8 --- /dev/null +++ b/xinha/examples/ext_example-body.html @@ -0,0 +1,200 @@ + + + + + + + + Example of Xinha + + + + + + + + + + + +
+
+ + +
+ + + diff --git a/xinha/examples/ext_example-dest.php b/xinha/examples/ext_example-dest.php new file mode 100644 index 0000000..5a226e4 --- /dev/null +++ b/xinha/examples/ext_example-dest.php @@ -0,0 +1,23 @@ + + + + Example of Xinha + + + +$value){ + if(substr($key,0,10) == 'myTextarea') { + echo '

'.$key.'(source):

'.$value.'
'; + echo '

'.$key.'(preview):

'.$value; + } + } +?> + + diff --git a/xinha/examples/ext_example-menu.php b/xinha/examples/ext_example-menu.php new file mode 100644 index 0000000..b81fd01 --- /dev/null +++ b/xinha/examples/ext_example-menu.php @@ -0,0 +1,326 @@ + + + + + + + + Example of Xinha + + + + + + +
+

Xinha Example

+
+ Settings + + + + + + + + + + + + + + + + + + +
+ +
+
+ Plugins +
+read())) //not a dot file or directory + { if(substr($entry,0,1) != '.') + { echo ''; + } + } + $d->close(); +?> +
+
+
+ + + +
+ + + + diff --git a/xinha/examples/ext_example.html b/xinha/examples/ext_example.html new file mode 100644 index 0000000..f334e73 --- /dev/null +++ b/xinha/examples/ext_example.html @@ -0,0 +1,16 @@ + + + + + + + + + diff --git a/xinha/examples/full_example-body.html b/xinha/examples/full_example-body.html index dd0e523..589c20a 100644 --- a/xinha/examples/full_example-body.html +++ b/xinha/examples/full_example-body.html @@ -11,7 +11,7 @@ -- use of the file as a boilerplate. -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/examples/full_example-body.html $ - -- $LastChangedDate: 2005-07-28 02:43:19 +1200 (Thu, 28 Jul 2005) $ + -- $LastChangedDate: 2005-07-27 10:43:19 -0400 (Wed, 27 Jul 2005) $ -- $LastChangedRevision: 287 $ -- $LastChangedBy: gocher $ ---------------------------------------------------------------------------> diff --git a/xinha/examples/full_example-menu.html b/xinha/examples/full_example-menu.html index d652105..9efce77 100644 --- a/xinha/examples/full_example-menu.html +++ b/xinha/examples/full_example-menu.html @@ -1,4 +1,4 @@ - + diff --git a/xinha/examples/full_example.js b/xinha/examples/full_example.js index 27bcfdf..751a744 100644 --- a/xinha/examples/full_example.js +++ b/xinha/examples/full_example.js @@ -5,17 +5,18 @@ -- from full_example-body.html. -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/examples/full_example.js $ - -- $LastChangedDate: 2005-09-15 00:09:22 +1200 (Thu, 15 Sep 2005) $ - -- $LastChangedRevision: 318 $ - -- $LastChangedBy: mokhet $ + -- $LastChangedDate: 2005-10-29 12:28:08 -0400 (Sat, 29 Oct 2005) $ + -- $LastChangedRevision: 416 $ + -- $LastChangedBy: gogo $ --------------------------------------------------------------------------*/ var num = 1; if(window.parent && window.parent != window) { var f = window.parent.menu.document.forms[0]; - _editor_lang = f.lang.value; - _editor_skin = f.skin.value; + _editor_lang = f.lang[f.lang.selectedIndex].value; + _editor_skin = f.skin[f.skin.selectedIndex].value; + num = parseInt(f.num.value); if(isNaN(num)) { @@ -102,6 +103,10 @@ config.CharacterMap.mode = f.elements['CharacterMapMode'].options[f.elements['CharacterMapMode'].selectedIndex].value; } } + + if(typeof Filter != 'undefined') { + xinha_config.Filters = ["Word", "Paragraph"] + } return config; } diff --git a/xinha/examples/stylist.css b/xinha/examples/stylist.css index d330628..7a5b158 100644 --- a/xinha/examples/stylist.css +++ b/xinha/examples/stylist.css @@ -3,7 +3,7 @@ -- when the Stylist plugin is included in an auto-generated example. -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/examples/stylist.css $ - -- $LastChangedDate: 2005-07-19 18:23:58 +1200 (Tue, 19 Jul 2005) $ + -- $LastChangedDate: 2005-07-19 02:23:58 -0400 (Tue, 19 Jul 2005) $ -- $LastChangedRevision: 277 $ -- $LastChangedBy: gogo $ --------------------------------------------------------------------------*/ diff --git a/xinha/htmlarea.css b/xinha/htmlarea.css index e2df14f..4414878 100644 --- a/xinha/htmlarea.css +++ b/xinha/htmlarea.css @@ -102,7 +102,7 @@ } -/* Hidden DIV popup dialogs (PopupDiv) */ +/* popup dialogs */ .dialog { color: ButtonText; @@ -172,11 +172,6 @@ .dialog legend { font-weight: bold; } .dialog fieldset table { margin: 2px 0px; } -.popupdiv { - border: 2px solid; - border-color: ButtonHighlight ButtonShadow ButtonShadow ButtonHighlight; -} - .popupwin { padding: 0px; margin: 0px; diff --git a/xinha/htmlarea.js b/xinha/htmlarea.js index f8590b3..be379bd 100644 --- a/xinha/htmlarea.js +++ b/xinha/htmlarea.js @@ -27,19 +27,19 @@ -- included in the top 10 lines of the file (see the embedded edit mode) -- -- $HeadURL: http://svn.xinha.python-hosting.com/trunk/htmlarea.js $ - -- $LastChangedDate: 2005-09-14 19:13:33 +1200 (Wed, 14 Sep 2005) $ - -- $LastChangedRevision: 316 $ - -- $LastChangedBy: niko $ + -- $LastChangedDate: 2005-11-07 03:36:41 -0500 (Mon, 07 Nov 2005) $ + -- $LastChangedRevision: 421 $ + -- $LastChangedBy: gocher $ --------------------------------------------------------------------------*/ HTMLArea.version = { 'Release' : 'Trunk', 'Head' : '$HeadURL: http://svn.xinha.python-hosting.com/trunk/htmlarea.js $'.replace(/^[^:]*: (.*) \$$/, '$1'), - 'Date' : '$LastChangedDate: 2005-09-14 19:13:33 +1200 (Wed, 14 Sep 2005) $'.replace(/^[^:]*: ([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\) \$/, '$4 $2 $3'), - 'Revision' : '$LastChangedRevision: 316 $'.replace(/^[^:]*: (.*) \$$/, '$1'), - 'RevisionBy': '$LastChangedBy: niko $'.replace(/^[^:]*: (.*) \$$/, '$1') -} + 'Date' : '$LastChangedDate: 2005-11-07 03:36:41 -0500 (Mon, 07 Nov 2005) $'.replace(/^[^:]*: ([0-9-]*) ([0-9:]*) ([+0-9]*) \((.*)\) \$/, '$4 $2 $3'), + 'Revision' : '$LastChangedRevision: 421 $'.replace(/^[^:]*: (.*) \$$/, '$1'), + 'RevisionBy': '$LastChangedBy: gocher $'.replace(/^[^:]*: (.*) \$$/, '$1') +}; if (typeof _editor_url == "string") { // Leave exactly one backslash at the end of _editor_url @@ -95,9 +95,9 @@ function HTMLArea(textarea, config) // Before we modify anything, get the initial textarea size this._initial_ta_size = { - w: textarea.style.width ? textarea.style.width : (textarea.offsetWidth + 'px'), - h: textarea.style.height ? textarea.style.height : (textarea.offsetHeight + 'px') - } + w: textarea.style.width ? textarea.style.width : (textarea.offsetWidth ? (textarea.offsetWidth + 'px') : (textarea.cols+'em')), + h: textarea.style.height ? textarea.style.height : (textarea.offsetHeight ? (textarea.offsetHeight + 'px') : (textarea.rows+'em')) + }; this._editMode = "wysiwyg"; this.plugins = {}; @@ -144,6 +144,7 @@ function HTMLArea(textarea, config) for(var i in panels) { + if (!panels[i].container) continue; // prevent iterating over wrong type panels[i].div = panels[i].container; // legacy panels[i].container.className = 'panels ' + i; HTMLArea.freeLater(panels[i], 'container'); @@ -151,7 +152,7 @@ function HTMLArea(textarea, config) } HTMLArea.freeLater(this, '_textArea'); } -}; +} HTMLArea.onload = function(){}; HTMLArea.init = function() { @@ -203,7 +204,7 @@ HTMLArea.Config = function () { right: '200px', top: '100px', // Height bottom: '100px' - } + }; // enable creation of a status bar? this.statusBar = true; @@ -278,7 +279,6 @@ HTMLArea.Config = function () { // URL-s this.imgURL = "images/"; this.popupURL = "popups/"; - this.helpURL = _editor_url + "reference.html"; // remove tags (these have to be a regexp, or null if this functionality is not desired) this.htmlRemoveTags = null; @@ -315,8 +315,9 @@ HTMLArea.Config = function () { ["linebreak","separator","justifyleft","justifycenter","justifyright","justifyfull"], ["separator","insertorderedlist","insertunorderedlist","outdent","indent"], ["separator","inserthorizontalrule","createlink","insertimage","inserttable"], - ["separator","undo","redo","selectall"], (HTMLArea.is_gecko ? [] : ["cut","copy","paste","overwrite","saveas"]), - ["separator","killword","removeformat","toggleborders","lefttoright", "righttoleft","separator","htmlmode","about"] + ["separator","undo","redo","selectall","print"], (HTMLArea.is_gecko ? [] : ["cut","copy","paste","overwrite","saveas"]), + ["separator","killword","clearfonts","removeformat","toggleborders","splitblock","lefttoright", "righttoleft"], + ["separator","htmlmode","showhelp","about"] ]; @@ -370,7 +371,8 @@ HTMLArea.Config = function () { "insert_image": "insert_image.html", "insert_table": "insert_table.html", "select_color": "select_color.html", - "about": "about.html" + "about": "about.html", + "help": "editor_help.html" }; @@ -433,7 +435,7 @@ HTMLArea.Config = function () { htmlmode: [ "Toggle HTML Source", ["ed_buttons_main.gif",7,0], true, function(e) {e.execCommand("htmlmode");} ], toggleborders: [ "Toggle Borders", ["ed_buttons_main.gif",7,2], false, function(e) { e._toggleBorders() } ], - print: [ "Print document", ["ed_buttons_main.gif",8,1], false, function(e) {e._iframe.contentWindow.print();} ], + print: [ "Print document", ["ed_buttons_main.gif",8,1], false, function(e) {if (HTMLArea.is_gecko) {e._iframe.contentWindow.print();} else {e.focusEditor(); print();}} ], saveas: [ "Save as", "ed_saveas.gif", false, function(e) {e.execCommand("saveas",false,"noname.htm");} ], about: [ "About this editor", ["ed_buttons_main.gif",8,2], true, function(e) {e.execCommand("about");} ], showhelp: [ "Help using editor", ["ed_buttons_main.gif",9,2], true, function(e) {e.execCommand("showhelp");} ], @@ -444,7 +446,7 @@ HTMLArea.Config = function () { overwrite: [ "Insert/Overwrite", "ed_overwrite.gif", false, function(e) {e.execCommand("overwrite");} ], wordclean: [ "MS Word Cleaner", ["ed_buttons_main.gif",5,3], false, function(e) {e._wordClean();} ], - clearfonts: [ "Clear Inline Font Specifications", ["ed_buttons_main.gif",5,4], false, function(e) {e._clearFonts();} ], + clearfonts: [ "Clear Inline Font Specifications", ["ed_buttons_main.gif",5,4], true, function(e) {e._clearFonts();} ], removeformat: [ "Remove formatting", ["ed_buttons_main.gif",4,4], false, function(e) {e.execCommand("removeformat");} ], killword: [ "Clear MSOffice tags", ["ed_buttons_main.gif",4,3], false, function(e) {e.execCommand("killword");} ] @@ -475,7 +477,8 @@ HTMLArea.Config = function () { // initialize tooltips from the I18N module and generate correct image path for (var i in this.btnList) { var btn = this.btnList[i]; - if(typeof btn[1] != 'string') + if (typeof btn != 'object') continue; // prevent iterating over wrong type + if (typeof btn[1] != 'string') { btn[1][0] = _editor_url + this.imgURL + btn[1][0]; } @@ -536,7 +539,7 @@ HTMLArea.prototype.registerPanel = function(side, object) { object.drawPanelIn(panel); } -} +}; /** The following helper function registers a dropdown box with the editor * configuration. You still have to add it to the toolbar, same as with the @@ -695,7 +698,7 @@ HTMLArea.Config.prototype.addToolbarElement = function(id, where, position) { } } } -} +}; /** Helper function: replace all TEXTAREA-s in the document with HTMLArea-s. */ HTMLArea.replaceAll = function(config) { @@ -731,16 +734,16 @@ HTMLArea.prototype._createToolbar = function () { this._htmlArea.appendChild(toolbar); return toolbar; -} +}; HTMLArea.prototype._setConfig = function(config) { this.config = config; -} +}; HTMLArea.prototype._addToolbar = function() { this._createToolbar1(this, this._toolbar, this._toolbarObjects); -} +}; // separate from previous createToolBar to allow dynamic change of toolbar HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { @@ -788,7 +791,7 @@ HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { tb_body.appendChild(tb_row); table.className = 'toolbarRow'; // meh, kinda. - }; // END of function: newLine + } // END of function: newLine // init first line newLine(); @@ -820,7 +823,7 @@ HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { } this[id] = newval; } - }; // END of function: setButtonStatus + } // END of function: setButtonStatus // this function will handle creation of combo boxes. Receives as // parameter the name of a button as defined in the toolBar config. @@ -880,6 +883,7 @@ HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { tb_objects[txt] = obj; for (var i in options) { + if (typeof(options[i]) != 'string') continue; // prevent iterating over wrong type var op = document.createElement("option"); op.innerHTML = HTMLArea._lc(i); op.value = options[i]; @@ -890,7 +894,7 @@ HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { }); } return el; - }; // END of function: createSelect + } // END of function: createSelect // appends a new button to toolbar function createButton(txt) { @@ -1005,14 +1009,14 @@ HTMLArea.prototype._createToolbar1 = function (editor, toolbar, tb_objects) { img.style.top = '0px'; img.style.left = '0px'; } - } + }; } else if (!el) { el = createSelect(txt); } return el; - }; + } var first = true; for (var i = 0; i < this.config.toolbar.length; ++i) { @@ -1136,7 +1140,7 @@ HTMLArea.makeBtnImg = function(imgDef, doc) } i_contain.appendChild(img); return i_contain; -} +}; HTMLArea.prototype._createStatusBar = function() { var statusbar = document.createElement("div"); @@ -1276,7 +1280,7 @@ HTMLArea.prototype.generate = function () 'sb_row' :document.createElement('tr'), 'sb_cell' :document.createElement('td') // status bar - } + }; HTMLArea.freeLater(this._framework); @@ -1436,13 +1440,13 @@ HTMLArea.prototype.generate = function () case 'toolbar': { - width = this._toolBar.offsetWidth; + width = this._toolBar.offsetWidth + 'px'; } break; default : { - width = this.config.width; + width = /[^0-9]/.test(this.config.width) ? this.config.width : this.config.width + 'px'; } break; } @@ -1457,7 +1461,7 @@ HTMLArea.prototype.generate = function () default : { - height = this.config.height; + height = /[^0-9]/.test(this.config.height) ? this.config.height : this.config.height + 'px'; } break; } @@ -1467,7 +1471,7 @@ HTMLArea.prototype.generate = function () HTMLArea.addDom0Event(window, 'resize', function(e) { editor.sizeEditor(); }); this.notifyOn('panel_change',function(){editor.sizeEditor();}); - } + }; /** * Size the editor to a specific size, or just refresh the size (when window resizes for example) @@ -1649,7 +1653,7 @@ HTMLArea.prototype.generate = function () this._textArea.style.width = this._iframe.style.width; this.notifyOf('resize', {width:this._htmlArea.offsetWidth, height:this._htmlArea.offsetHeight}); - } + }; HTMLArea.prototype.addPanel = function(side) { @@ -1666,7 +1670,7 @@ HTMLArea.prototype.generate = function () this.notifyOf('panel_change', {'action':'add','panel':div}); return div; - } + }; HTMLArea.prototype.removePanel = function(panel) { @@ -1681,7 +1685,7 @@ HTMLArea.prototype.generate = function () } this._panels[panel.side].panels = clean; this.notifyOf('panel_change', {'action':'remove','panel':panel}); - } + }; HTMLArea.prototype.hidePanel = function(panel) { @@ -1690,7 +1694,7 @@ HTMLArea.prototype.generate = function () panel.style.display = 'none'; this.notifyOf('panel_change', {'action':'hide','panel':panel}); } - } + }; HTMLArea.prototype.showPanel = function(panel) { @@ -1699,7 +1703,7 @@ HTMLArea.prototype.generate = function () panel.style.display = ''; this.notifyOf('panel_change', {'action':'show','panel':panel}); } - } + }; HTMLArea.prototype.hidePanels = function(sides) { @@ -1718,7 +1722,7 @@ HTMLArea.prototype.generate = function () } } this.notifyOf('panel_change', {'action':'multi_hide','sides':sides}); - } + }; HTMLArea.prototype.showPanels = function(sides) { @@ -1737,7 +1741,7 @@ HTMLArea.prototype.generate = function () } } this.notifyOf('panel_change', {'action':'multi_show','sides':sides}); - } + }; HTMLArea.objectProperties = function(obj) { @@ -1747,7 +1751,7 @@ HTMLArea.prototype.generate = function () props[props.length] = x; } return props; - } + }; /* * EDITOR ACTIVATION NOTES: @@ -1765,7 +1769,7 @@ HTMLArea.prototype.generate = function () { return false; } - } + }; HTMLArea._someEditorHasBeenActivated = false; HTMLArea._currentlyActiveEditor = false; @@ -1807,7 +1811,7 @@ HTMLArea.prototype.generate = function () var editor = this; this.enableToolbar(); - } + }; HTMLArea.prototype.deactivateEditor = function() { @@ -1833,7 +1837,7 @@ HTMLArea.prototype.generate = function () } HTMLArea._currentlyActiveEditor = false; - } + }; HTMLArea.prototype.initIframe = function() { @@ -1880,7 +1884,7 @@ HTMLArea.prototype.generate = function () + ".htmtableborders, .htmtableborders td, .htmtableborders th {border : 1px dashed lightgrey ! important;} \n" + "\n"; html += "\n"; @@ -1913,33 +1917,23 @@ HTMLArea.prototype.generate = function () doc.write(html); doc.close(); - // if we have multiple editors some bug in Mozilla makes some lose editing ability - HTMLArea._addEvents - ( - doc, - ["mousedown"], - function() { editor.activateEditor(); return true; } - ); - - - // intercept some events; for updating the toolbar & keyboard handlers - HTMLArea._addEvents - (doc, ["keydown", "keypress", "mousedown", "mouseup", "drag"], - function (event) { - return editor._editorEvent(HTMLArea.is_ie ? editor._iframe.contentWindow.event : event); - }); - - // check if any plugins have registered refresh handlers - for (var i in editor.plugins) { - var plugin = editor.plugins[i].instance; - HTMLArea.refreshPlugin(plugin); - } - - // specific editor initialization - if(typeof editor._onGenerate == "function") { - editor._onGenerate(); - } + this.setEditorEvents(); + }; + +/** Delay a function until the document is ready for operations. See ticket:547 */ +HTMLArea.prototype.whenDocReady = function(doFunction) +{ + var editor = this; + + if(!this._doc.body) + { + setTimeout(function() {editor.whenDocReady(doFunction)}, 50); } + else + { + doFunction(); + } +} // Switches editor mode; parameter can be "textmode" or "wysiwyg". If no // parameter was passed this function toggles between modes. @@ -1996,7 +1990,7 @@ HTMLArea.prototype.setMode = function(mode) { for (var i in this.plugins) { var plugin = this.plugins[i].instance; - if (typeof plugin.onMode == "function") plugin.onMode(mode); + if (plugin && typeof plugin.onMode == "function") plugin.onMode(mode); } }; @@ -2022,10 +2016,45 @@ HTMLArea.prototype.setFullHTML = function(html) { this._doc.write(html); this._doc.close(); if(reac) this.activateEditor(); + this.setEditorEvents(); return true; } }; +HTMLArea.prototype.setEditorEvents = function() { + var editor=this; + var doc=this._doc; + editor.whenDocReady( + function() { + // if we have multiple editors some bug in Mozilla makes some lose editing ability + HTMLArea._addEvents + ( + doc, + ["mousedown"], + function() { editor.activateEditor(); return true; } + ); + + // intercept some events; for updating the toolbar & keyboard handlers + HTMLArea._addEvents + (doc, ["keydown", "keypress", "mousedown", "mouseup", "drag"], + function (event) { + return editor._editorEvent(HTMLArea.is_ie ? editor._iframe.contentWindow.event : event); + }); + + // check if any plugins have registered refresh handlers + for (var i in editor.plugins) { + var plugin = editor.plugins[i].instance; + HTMLArea.refreshPlugin(plugin); + }; + + // specific editor initialization + if(typeof editor._onGenerate == "function") { + editor._onGenerate(); + } + } + ); +}; + /*************************************************** * Category: PLUGINS ***************************************************/ @@ -2168,13 +2197,13 @@ HTMLArea.loadPlugins = function(plugins, callbackIfNotReady) setTimeout(function() { if(HTMLArea.loadPlugins(plugins, callbackIfNotReady)) callbackIfNotReady(); }, 150); } return retVal; -} +}; // refresh plugin by calling onGenerate or onGenerateOnce method. HTMLArea.refreshPlugin = function(plugin) { - if (typeof plugin.onGenerate == "function") + if (plugin && typeof plugin.onGenerate == "function") plugin.onGenerate(); - if (typeof plugin.onGenerateOnce == "function") { + if (plugin && typeof plugin.onGenerateOnce == "function") { plugin.onGenerateOnce(); plugin.onGenerateOnce = null; } @@ -2210,7 +2239,7 @@ HTMLArea.prototype.debugTree = function() { for (; --indent >= 0;) ta.value += " "; ta.value += str + "\n"; - }; + } function _dt(root, level) { var tag = root.tagName.toLowerCase(), i; var ns = HTMLArea.is_ie ? root.scopeName : root.prefix; @@ -2218,7 +2247,7 @@ HTMLArea.prototype.debugTree = function() { for (i = root.firstChild; i; i = i.nextSibling) if (i.nodeType == 1) _dt(i, level + 2); - }; + } _dt(this._doc.body, 0); document.body.appendChild(ta); }; @@ -2260,7 +2289,7 @@ HTMLArea.prototype._wordClean = function() { txt += "Final document length: " + editor._doc.body.innerHTML.length + "\n"; txt += "Clean-up took " + (((new Date()).getTime() - stats.T) / 1000) + " seconds"; alert(txt); - }; + } function clearClass(node) { var newc = node.className.replace(/(^|\s)mso.*?(\s|$)/ig, ' '); if (newc != node.className) { @@ -2270,7 +2299,7 @@ HTMLArea.prototype._wordClean = function() { ++stats.mso_class; } } - }; + } function clearStyle(node) { var declarations = node.style.cssText.split(/\s*;\s*/); for (var i = declarations.length; --i >= 0;) @@ -2280,7 +2309,7 @@ HTMLArea.prototype._wordClean = function() { declarations.splice(i, 1); } node.style.cssText = declarations.join("; "); - }; + } function stripTag(el) { if (HTMLArea.is_ie) el.outerHTML = HTMLArea.htmlEncode(el.innerText); @@ -2290,14 +2319,14 @@ HTMLArea.prototype._wordClean = function() { HTMLArea.removeFromParent(el); } ++stats.mso_xmlel; - }; + } function checkEmpty(el) { if (/^(a|span|b|strong|i|em|font)$/i.test(el.tagName) && !el.firstChild) { HTMLArea.removeFromParent(el); ++stats.empty_tags; } - }; + } function parseTree(root) { var tag = root.tagName.toLowerCase(), i, next; if ((HTMLArea.is_ie && root.scopeName != 'HTML') || (!HTMLArea.is_ie && /:/.test(tag))) { @@ -2313,7 +2342,7 @@ HTMLArea.prototype._wordClean = function() { } } return true; - }; + } parseTree(this._doc.body); // showStats(); // this.debugTree(); @@ -2326,19 +2355,19 @@ HTMLArea.prototype._wordClean = function() { HTMLArea.prototype._clearFonts = function() { var D = this.getInnerHTML(); - if(confirm('Would you like to clear font typefaces?')) + if(confirm(HTMLArea._lc("Would you like to clear font typefaces?"))) { D = D.replace(/face="[^"]*"/gi, ''); D = D.replace(/font-family:[^;}"']+;?/gi, ''); } - if(confirm('Would you like to clear font sizes?')) + if(confirm(HTMLArea._lc("Would you like to clear font sizes?"))) { D = D.replace(/size="[^"]*"/gi, ''); D = D.replace(/font-size:[^;}"']+;?/gi, ''); } - if(confirm('Would you like to clear font colours?')) + if(confirm(HTMLArea._lc("Would you like to clear font colours?"))) { D = D.replace(/color="[^"]*"/gi, ''); D = D.replace(/([^-])color:[^;}"']+;?/gi, '$1'); @@ -2348,12 +2377,12 @@ HTMLArea.prototype._clearFonts = function() { D = D.replace(/<(font|span)\s*>/gi, ''); this.setHTML(D); this.updateToolbar(); -} +}; HTMLArea.prototype._splitBlock = function() { - this._doc.execCommand('formatblock', false, '
'); -} + this._doc.execCommand('formatblock', false, 'div'); +}; HTMLArea.prototype.forceRedraw = function() { this._doc.body.style.visibility = "hidden"; @@ -2438,14 +2467,15 @@ HTMLArea.prototype.disableToolbar = function(except) { continue; } + if (typeof(btn.state) != 'function') continue; // prevent iterating over wrong type btn.state("enabled", false); } -} +}; HTMLArea.prototype.enableToolbar = function() { this.updateToolbar(); -} +}; if(!Array.prototype.contains) { @@ -2458,7 +2488,7 @@ if(!Array.prototype.contains) } return false; - } + }; } if(!Array.prototype.indexOf) @@ -2472,7 +2502,7 @@ if(!Array.prototype.indexOf) } return null; - } + }; } @@ -2533,6 +2563,7 @@ HTMLArea.prototype.updateToolbar = function(noStatus) { var btn = this._toolbarObjects[i]; var cmd = i; var inContext = true; + if (typeof(btn.state) != 'function') continue; // prevent iterating over wrong type if (btn.context && !text) { inContext = false; var context = btn.context; @@ -2614,7 +2645,10 @@ HTMLArea.prototype.updateToolbar = function(noStatus) { var blocks = [ ]; for(var i in this.config['formatblock']) { - blocks[blocks.length] = this.config['formatblock'][i]; + if (typeof(this.config['formatblock'][i]) == 'string') // prevent iterating over wrong type + { + blocks[blocks.length] = this.config['formatblock'][i]; + } } var deepestAncestor = this._getFirstAncestor(this._getSelection(), blocks); @@ -2718,12 +2752,12 @@ HTMLArea.prototype.updateToolbar = function(noStatus) { // check if any plugins have registered refresh handlers for (var i in this.plugins) { var plugin = this.plugins[i].instance; - if (typeof plugin.onUpdateToolbar == "function") + if (plugin && typeof plugin.onUpdateToolbar == "function") plugin.onUpdateToolbar(); } -} +}; /** Returns a node after which we can insert other nodes, in the current * selection. The selection is removed. It splits a text node, if needed. @@ -2782,7 +2816,19 @@ HTMLArea.prototype.getParentElement = function(sel) { var range = this._createRange(sel); if (HTMLArea.is_ie) { switch (sel.type) { - case "Text": + case "Text": + // try to circumvent a bug in IE: + // the parent returned is not always the real parent element + var parent = range.parentElement(); + while (true) + { + var TestRange = range.duplicate(); + TestRange.moveToElementText(parent); + if (TestRange.inRange(range)) break; + if ((parent.nodeType != 1) || (parent.tagName.toLowerCase() == 'body')) break; + parent = parent.parentElement; + } + return parent; case "None": // It seems that even for selection of type "None", // there _is_ a parent element and it's value is not @@ -2863,7 +2909,7 @@ HTMLArea.prototype._getFirstAncestor = function(sel, types) } return null; -} +}; /** * Returns the selected element, if any. That is, @@ -2941,7 +2987,7 @@ HTMLArea.prototype._activeElement = function(sel) } return null; } -} +}; HTMLArea.prototype._selectionEmpty = function(sel) @@ -2958,7 +3004,7 @@ HTMLArea.prototype._selectionEmpty = function(sel) } return true; -} +}; HTMLArea.prototype._getAncestorBlock = function(sel) { @@ -3004,7 +3050,7 @@ HTMLArea.prototype._getAncestorBlock = function(sel) } return null; -} +}; HTMLArea.prototype._createImplicitBlock = function(type) { @@ -3025,7 +3071,7 @@ HTMLArea.prototype._createImplicitBlock = function(type) // Expand UP // Expand DN -} +}; HTMLArea.prototype._formatBlock = function(block_format) { @@ -3125,7 +3171,7 @@ HTMLArea.prototype._formatBlock = function(block_format) } } -} +}; // Selects the contents inside the given node HTMLArea.prototype.selectNodeContents = function(node, pos) { @@ -3171,6 +3217,7 @@ HTMLArea.prototype.selectNodeContents = function(node, pos) { HTMLArea.prototype.insertHTML = function(html) { var sel = this._getSelection(); var range = this._createRange(sel); + this.focusEditor(); if (HTMLArea.is_ie) { range.pasteHTML(html); } else { @@ -3222,10 +3269,8 @@ HTMLArea.prototype._createLink = function(link) { if (typeof link == "undefined") { link = this.getParentElement(); if (link) { - if (/^img$/i.test(link.tagName)) + while (link && !/^a$/i.test(link.tagName)) link = link.parentNode; - if (!/^a$/i.test(link.tagName)) - link = null; } } if (!link) { @@ -3324,18 +3369,20 @@ HTMLArea.prototype._insertImage = function(image) { return false; } var img = image; - if (!img) { - var sel = editor._getSelection(); - var range = editor._createRange(sel); - editor._doc.execCommand("insertimage", false, param.f_url); + if (!img) { if (HTMLArea.is_ie) { + var sel = editor._getSelection(); + var range = editor._createRange(sel); + editor._doc.execCommand("insertimage", false, param.f_url); img = range.parentElement(); // wonder if this works... if (img.tagName.toLowerCase() != "img") { img = img.previousSibling; } } else { - img = range.startContainer.previousSibling; + img = document.createElement('img'); + img.src = param.f_url; + editor.insertNodeAtSelection(img); if (!img.tagName) { // if the cursor is at the beginning of the document img = range.startContainer.firstChild; @@ -3398,8 +3445,8 @@ HTMLArea.prototype._insertTable = function() { if (cellwidth) td.style.width = cellwidth + "%"; tr.appendChild(td); - // Mozilla likes to see something inside the cell. - (HTMLArea.is_gecko) && td.appendChild(doc.createElement("br")); + // Browsers like to see something inside the cell ( ). + td.appendChild(doc.createTextNode('\u00a0')); } } if (HTMLArea.is_ie) { @@ -3426,7 +3473,7 @@ HTMLArea.prototype._comboSelected = function(el, txt) { case "fontsize": this.execCommand(txt, false, value); break; case "formatblock": // (HTMLArea.is_ie) && (value = "<" + value + ">"); - value = "<" + value + ">" + if(!HTMLArea.is_gecko || value !== 'blockquote') { value = "<" + value + ">";} this.execCommand(txt, false, value); break; default: @@ -3472,7 +3519,7 @@ HTMLArea.prototype.execCommand = function(cmdID, UI, param) { case "inserttable": this._insertTable(); break; case "insertimage": this._insertImage(); break; case "about" : this._popupDialog(editor.config.URIs["about"], null, this); break; - case "showhelp" : window.open(this.config.helpURL, "ha_help"); break; + case "showhelp" : this._popupDialog(editor.config.URIs["help"], null, this); break; case "killword": this._wordClean(); break; @@ -3537,7 +3584,7 @@ HTMLArea.prototype._editorEvent = function(ev) { for (var i in editor.plugins) { var plugin = editor.plugins[i].instance; - if (typeof plugin.onKeyPress == "function") + if (plugin && typeof plugin.onKeyPress == "function") if (plugin.onKeyPress(ev)) return false; } @@ -3641,7 +3688,7 @@ HTMLArea.prototype._editorEvent = function(ev) { editor._unlinkOnUndo = true; return a; - } + }; switch(ev.which) { @@ -4064,7 +4111,7 @@ HTMLArea.prototype.scrollToElement = function(e) } this._iframe.contentWindow.scrollTo(left, top); } -} +}; // retrieve the HTML HTMLArea.prototype.getHTML = function() { @@ -4130,7 +4177,7 @@ HTMLArea.prototype.outwardHtml = function(html) } return html; -} +}; HTMLArea.prototype.inwardHtml = function(html) { @@ -4138,9 +4185,12 @@ HTMLArea.prototype.inwardHtml = function(html) // mozilla, this is the 21st century calling! if (HTMLArea.is_gecko) { html = html.replace(/<(\/?)strong(\s|>|\/)/ig, "<$1b$2"); - html = html.replace(/<(\/?)em(\s|>|\/)/ig, "<$1i$2"); - html = html.replace(/<(\/?)strike(\s|>|\/)/ig, "<$1del$2"); + html = html.replace(/<(\/?)em(\s|>|\/)/ig, "<$1i$2"); } + + // Both IE and Gecko use strike instead of del (#523) + html = html.replace(/<(\/?)del(\s|>|\/)/ig, "<$1strike$2"); + // replace window.open to that any clicks won't open a popup in designMode html = html.replace("onclick=\"window.open(", "onclick=\"try{if(document.designMode && document.designMode == 'on') return false;}catch(e){} window.open("); @@ -4154,7 +4204,7 @@ HTMLArea.prototype.inwardHtml = function(html) html = this.fixRelativeLinks(html); return html; -} +}; HTMLArea.prototype.outwardSpecialReplacements = function(html) { @@ -4162,13 +4212,14 @@ HTMLArea.prototype.outwardSpecialReplacements = function(html) { var from = this.config.specialReplacements[i]; var to = i; + if (typeof(from.replace) != 'function' || typeof(to.replace) != 'function') continue; // prevent iterating over wrong type // alert('out : ' + from + '=>' + to); var reg = new RegExp(from.replace(HTMLArea.RE_Specials, '\\$1'), 'g'); html = html.replace(reg, to.replace(/\$/g, '$$$$')); //html = html.replace(from, to); } return html; -} +}; HTMLArea.prototype.inwardSpecialReplacements = function(html) { @@ -4177,6 +4228,8 @@ HTMLArea.prototype.inwardSpecialReplacements = function(html) { var from = i; var to = this.config.specialReplacements[i]; + + if (typeof(from.replace) != 'function' || typeof(to.replace) != 'function') continue; // prevent iterating over wrong type // alert('in : ' + from + '=>' + to); // // html = html.replace(reg, to); @@ -4185,7 +4238,7 @@ HTMLArea.prototype.inwardSpecialReplacements = function(html) html = html.replace(reg, to.replace(/\$/g, '$$$$')); // IE uses doubled dollar signs to escape backrefs, also beware that IE also implements $& $_ and $' like perl. } return html; -} +}; HTMLArea.prototype.fixRelativeLinks = function(html) @@ -4224,7 +4277,7 @@ HTMLArea.prototype.fixRelativeLinks = function(html) } return html; -} +}; // retrieve the HTML (fastest version, but uses innerHTML) HTMLArea.prototype.getInnerHTML = function() { @@ -4279,12 +4332,12 @@ HTMLArea.cloneObject = function(obj) { var newObj = new Object; // check for array objects - if (obj.constructor.toString().indexOf("function Array(") == 1) { + if (obj.constructor.toString().match( /\s*function Array\(/ )) { newObj = obj.constructor(); } // check for function objects (as usual, IE is fucked up) - if (obj.constructor.toString().indexOf("function Function(") == 1) { + if (obj.constructor.toString().match( /\s*function Function\(/ )) { newObj = obj; // just copy reference to it } else for (var n in obj) { var node = obj[n]; @@ -4355,16 +4408,23 @@ HTMLArea.flushEvents = function() var e = null; while(e = HTMLArea._eventFlushers.pop()) { - if(e.length == 3) + try { - HTMLArea._removeEvent(e[0], e[1], e[2]); - x++; + if(e.length == 3) + { + HTMLArea._removeEvent(e[0], e[1], e[2]); + x++; + } + else if (e.length == 2) + { + e[0]['on' + e[1]] = null; + e[0]._xinha_dom0Events[e[1]] = null; + x++; + } } - else if (e.length == 2) + catch(e) { - e[0]['on' + e[1]] = null; - e[0]._xinha_dom0Events[e[1]] = null; - x++; + // Do Nothing } } @@ -4388,7 +4448,7 @@ HTMLArea.flushEvents = function() */ // alert('Flushed ' + x + ' events.'); -} +}; HTMLArea._addEvent = function(el, evname, func) { if (HTMLArea.is_ie) { @@ -4421,8 +4481,10 @@ HTMLArea._removeEvents = function(el, evs, func) { HTMLArea._stopEvent = function(ev) { if (HTMLArea.is_ie) { - ev.cancelBubble = true; - ev.returnValue = false; + try{ + ev.cancelBubble = true; + ev.returnValue = false; + } catch(e){} } else { ev.preventDefault(); ev.stopPropagation(); @@ -4449,7 +4511,7 @@ HTMLArea.addDom0Event = function(el, ev, fn) { HTMLArea._prepareForDom0Events(el, ev); el._xinha_dom0Events[ev].unshift(fn); -} +}; /** @@ -4462,7 +4524,7 @@ HTMLArea.prependDom0Event = function(el, ev, fn) { HTMLArea._prepareForDom0Events(el, ev); el._xinha_dom0Events[ev].push(fn); -} +}; /** * Prepares an element to receive more than one DOM-0 event handler @@ -4507,11 +4569,11 @@ HTMLArea._prepareForDom0Events = function(el, ev) el._xinha_tempEventHandler = null; } return allOK; - } + }; HTMLArea._eventFlushers.push([el, ev]); } -} +}; HTMLArea.prototype.notifyOn = function(ev, fn) { @@ -4522,7 +4584,7 @@ HTMLArea.prototype.notifyOn = function(ev, fn) } this._notifyListeners[ev].push(fn); -} +}; HTMLArea.prototype.notifyOf = function(ev, args) { @@ -4535,7 +4597,7 @@ HTMLArea.prototype.notifyOf = function(ev, args) this._notifyListeners[ev][i](ev, args); } } -} +}; HTMLArea._removeClass = function(el, className) { @@ -4582,9 +4644,13 @@ HTMLArea._paraContainerTags = " body td th caption fieldset div"; HTMLArea.isParaContainer = function(el) { return el && el.nodeType == 1 && (HTMLArea._paraContainerTags.indexOf(" " + el.tagName.toLowerCase() + " ") != -1); -} +}; + +// These are all the tags for which the end tag is not optional or +// forbidden, taken from the list at: +// http://www.w3.org/TR/REC-html40/index/elements.html +HTMLArea._closingTags = " a abbr acronym address applet b bdo big blockquote button caption center cite code del dfn dir div dl em fieldset font form frameset h1 h2 h3 h4 h5 h6 i iframe ins kbd label legend map menu noframes noscript object ol optgroup pre q s samp script select small span strike strong style sub sup table textarea title tt u ul var "; -HTMLArea._closingTags = " head script style div span tr td tbody table em strong b i strike code cite dfn abbr acronym font a title textarea select form "; HTMLArea.needsClosingTag = function(el) { return el && el.nodeType == 1 && (HTMLArea._closingTags.indexOf(" " + el.tagName.toLowerCase() + " ") != -1); }; @@ -4614,7 +4680,7 @@ HTMLArea.getHTML = function(root, outputRoot, editor){ alert(HTMLArea._lc('Your Document is not well formed. Check JavaScript console for details.')); return editor._iframe.contentWindow.document.body.innerHTML; } -} +}; HTMLArea.getHTMLWrapper = function(root, outputRoot, editor, indent) { var html = ""; @@ -4819,7 +4885,7 @@ HTMLArea._colorToRgb = function(v) { // returns the hex representation of one byte (2 digits) function hex(d) { return (d < 16) ? ("0" + d.toString(16)) : d.toString(16); - }; + } if (typeof v == "number") { // we're talking to IE here @@ -4937,7 +5003,7 @@ HTMLArea.prototype._toggleBorders = function() } } return true; -} +}; HTMLArea.addClasses = function(el, classes) @@ -4963,7 +5029,7 @@ HTMLArea.addClasses = function(el, classes) } el.className = thiers.join(' ').trim(); } - } + }; HTMLArea.removeClasses = function(el, classes) { @@ -4987,7 +5053,7 @@ HTMLArea.removeClasses = function(el, classes) } } return new_classes.join(' '); -} +}; /** Alias these for convenience */ HTMLArea.addClass = HTMLArea._addClass; @@ -5042,7 +5108,7 @@ HTMLArea._postback = function(url, data, handler) ); //alert(content); req.send(content); -} +}; HTMLArea._getback = function(url, handler) { @@ -5074,7 +5140,7 @@ HTMLArea._getback = function(url, handler) req.onreadystatechange = callBack; req.open('GET', url, true); req.send(null); -} +}; HTMLArea._geturlcontent = function(url) { @@ -5100,7 +5166,7 @@ HTMLArea._geturlcontent = function(url) return ''; } -} +}; /** * Unless somebody already has, make a little function to debug things @@ -5140,7 +5206,7 @@ HTMLArea.arrayContainsArray = function(a1, a2) } } return all_found; -} +}; HTMLArea.arrayFilter = function(a1, filterfn) { @@ -5152,13 +5218,13 @@ HTMLArea.arrayFilter = function(a1, filterfn) } return new_a; -} +}; HTMLArea.uniq_count = 0; HTMLArea.uniq = function(prefix) { return prefix + HTMLArea.uniq_count++; -} +}; /** New language handling functions **/ @@ -5200,7 +5266,7 @@ HTMLArea._loadlang = function(context) } return lang; -} +}; /** Return a localised string. * @param string English language string @@ -5240,6 +5306,10 @@ HTMLArea._lc = function(string, context, replace) { key = string.key; } + else if(typeof string == 'object' && string.string) + { + key = string.string; + } else { key = string; @@ -5281,7 +5351,7 @@ HTMLArea._lc = function(string, context, replace) } return ret; -} +}; HTMLArea.hasDisplayedChildren = function(el) { @@ -5297,7 +5367,7 @@ HTMLArea.hasDisplayedChildren = function(el) } } return false; -} +}; HTMLArea._loadback = function(src, callback) @@ -5324,7 +5394,7 @@ HTMLArea.collectionToArray = function(collection) array.push(collection.item(i)); } return array; -} +}; if(!Array.prototype.append) { @@ -5335,7 +5405,7 @@ if(!Array.prototype.append) this.push(a[i]); } return this; - } + }; } HTMLArea.makeEditors = function(editor_names, default_config, plugin_names) @@ -5353,7 +5423,7 @@ HTMLArea.makeEditors = function(editor_names, default_config, plugin_names) editors[editor_names[x]] = editor; } return editors; -} +}; HTMLArea.startEditors = function(editors) { @@ -5361,7 +5431,7 @@ HTMLArea.startEditors = function(editors) { if(editors[i].generate) editors[i].generate(); } -} +}; HTMLArea.prototype.registerPlugins = function(plugin_names) { if(plugin_names) @@ -5371,7 +5441,7 @@ HTMLArea.prototype.registerPlugins = function(plugin_names) { this.registerPlugin(eval(plugin_names[i])); } } -} +}; /** Utility function to base64_encode some arbitrary data, uses the builtin btoa() if it exists (Moz) */ @@ -5404,7 +5474,7 @@ HTMLArea.base64_encode = function(input) } while (i < input.length); return output; -} +}; /** Utility function to base64_decode some arbitrary data, uses the builtin atob() if it exists (Moz) */ @@ -5440,7 +5510,7 @@ HTMLArea.base64_decode =function(input) } while (i < input.length); return output; -} +}; HTMLArea.removeFromParent = function(el) { @@ -5448,7 +5518,7 @@ HTMLArea.removeFromParent = function(el) var pN = el.parentNode; pN.removeChild(el); return el; -} +}; HTMLArea.hasParentNode = function(el) { @@ -5464,7 +5534,7 @@ HTMLArea.hasParentNode = function(el) } return false; -} +}; HTMLArea.getOuterHTML = function(element) { @@ -5476,13 +5546,13 @@ HTMLArea.getOuterHTML = function(element) { return (new XMLSerializer()).serializeToString(element); } -} +}; HTMLArea.toFree = [ ]; HTMLArea.freeLater = function(obj,prop) { HTMLArea.toFree.push({o:obj,p:prop}); -} +}; HTMLArea.free = function(obj, prop) { @@ -5495,9 +5565,9 @@ HTMLArea.free = function(obj, prop) } else if (obj) { - obj[prop] = null; + try{ obj[prop] = null; } catch(e){ } } -} +}; /** IE's Garbage Collector is broken very badly. We will do our best to * do it's job for it, but we can't be perfect. @@ -5511,7 +5581,7 @@ HTMLArea.collectGarbageForIE = function() if(!HTMLArea.toFree[x].o) alert("What is " + x + ' ' + HTMLArea.toFree[x].o); HTMLArea.free(HTMLArea.toFree[x].o, HTMLArea.toFree[x].p); } -} +}; HTMLArea.init(); HTMLArea.addDom0Event(window,'unload',HTMLArea.collectGarbageForIE); \ No newline at end of file diff --git a/xinha/inline-dialog.js b/xinha/inline-dialog.js index 9efd444..0562ed3 100644 --- a/xinha/inline-dialog.js +++ b/xinha/inline-dialog.js @@ -24,14 +24,14 @@ HTMLArea.Dialog = function(editor, html, localizer) this._lc = function(string) { return HTMLArea._lc(string,localizer); - } + }; } else { this._lc = function(string) { return string; - } + }; } html = html.replace(/\[([a-z0-9_]+)\]/ig, @@ -70,12 +70,12 @@ HTMLArea.Dialog = function(editor, html, localizer) dialog.onresize(); } ); -} +}; HTMLArea.Dialog.prototype.onresize = function() { return true; -} +}; HTMLArea.Dialog.prototype.show = function(values) { @@ -94,7 +94,7 @@ HTMLArea.Dialog.prototype.show = function(values) this.editor._textArea.style.display = 'none'; this.editor._iframe.style.visibility = 'hidden'; this.rootElem.style.display = ''; -} +}; HTMLArea.Dialog.prototype.hide = function() { @@ -110,7 +110,7 @@ HTMLArea.Dialog.prototype.hide = function() } this.editor.updateToolbar(); return this.getValues(); -} +}; HTMLArea.Dialog.prototype.toggle = function() { @@ -122,7 +122,7 @@ HTMLArea.Dialog.prototype.toggle = function() { this.hide(); } -} +}; HTMLArea.Dialog.prototype.setValues = function(values) { @@ -207,7 +207,7 @@ HTMLArea.Dialog.prototype.setValues = function(values) } } } -} +}; HTMLArea.Dialog.prototype.getValues = function() { @@ -314,14 +314,14 @@ HTMLArea.Dialog.prototype.getValues = function() values[this.r_id[i.name]] = v; } return values; -} +}; HTMLArea.Dialog.prototype.getElementById = function(id) { return this.document.getElementById(this.id[id] ? this.id[id] : id); -} +}; HTMLArea.Dialog.prototype.getElementsByName = function(name) { return this.document.getElementsByName(this.id[name] ? this.id[name] : name); -} +}; \ No newline at end of file diff --git a/xinha/lang/de.js b/xinha/lang/de.js index 434d7d2..4bf0eed 100644 --- a/xinha/lang/de.js +++ b/xinha/lang/de.js @@ -1,138 +1,148 @@ // I18N constants - // LANG: "de", ENCODING: UTF-8 - { - "Bold": "Fett", - "Italic": "Kursiv", - "Underline": "Unterstrichen", - "Strikethrough": "Durchgestrichen", - "Subscript": "Tiefgestellt", - "Superscript": "Hochgestellt", - "Justify Left": "Linksbündig", - "Justify Center": "Zentriert", - "Justify Right": "Rechtsbündig", - "Justify Full": "Blocksatz", - "Ordered List": "Nummerierte Liste", - "Bulleted List": "Aufzählungsliste", - "Decrease Indent": "Einzug verkleinern", - "Increase Indent": "Einzug vergrößern", - "Font Color": "Schriftfarbe", - "Background Color": "Hindergrundfarbe", - "Horizontal Rule": "Horizontale Linie", - "Insert Web Link": "Hyperlink einfügen", - "Insert/Modify Image": "Bild einfügen/verändern", - "Insert Table": "Tabelle einfügen", - "Toggle HTML Source": "HTML Quelltext ein/ausschalten", - "Enlarge Editor": "Editor vergrößern", - "About this editor": "Über diesen Editor", - "Help using editor": "Hilfe", - "Current style": "Derzeitiger Stil", - "Undoes your last action": "Rückgängig", - "Redoes your last action": "Wiederholen", - "Cut selection": "Ausschneiden", - "Copy selection": "Kopieren", - "Paste from clipboard": "Einfügen aus der Zwischenablage", - "Direction left to right": "Textrichtung von Links nach Rechts", - "Direction right to left": "Textrichtung von Rechts nach Links", - "Remove formatting": "Formatierung entfernen", - "Select all": "Alles markieren", - "Print document": "Dokument ausdrucken", - "Clear MSOffice tags": "MSOffice filter", - "Clear Inline Font Specifications": "Zeichensatz Formatierungen entfernen", - "Split Block": "Block teilen", - "Toggle Borders": "Tabellenränder ein/ausblenden", - "Save as": "speichern unter", - "Insert/Overwrite": "Einfügen/Überschreiben", - "— format —": "— Format —", - "Heading 1": "Überschrift 1", - "Heading 2": "Überschrift 2", - "Heading 3": "Überschrift 3", - "Heading 4": "Überschrift 4", - "Heading 5": "Überschrift 5", - "Heading 6": "Überschrift 6", - "Normal": "Normal (Absatz)", - "Address": "Adresse", - "Formatted": "Formatiert", - - //dialogs - "OK": "OK", - "Cancel": "Abbrechen", - "Path": "Pfad", - "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sie sind im Text-Modus. Benutzen Sie den [<>] Button, um in den visuellen Modus (WYSIWIG) zu gelangen.", - "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Aus Sicherheitsgründen dürfen Skripte normalerweise nicht auf Ausschneiden/Kopieren/Einfügen zugreifen. Bitte klicken Sie OK um die technische Erläuterung auf mozilla.org zu öffnen, in der erklärt wird, wie einem Skript Zugriff gewährt werden kann.", - - "You need to select some text before create a link": "Sie müssen einen Text markieren, um einen Link zu erstellen", - "Your Document is not well formed. Check JavaScript console for details.": "Ihr Dokument ist in keinem sauberen Format. Benutzen Sie die Javascript Console für weitere Informationen.", + "Bold": "Fett", + "Italic": "Kursiv", + "Underline": "Unterstrichen", + "Strikethrough": "Durchgestrichen", + "Subscript": "Tiefgestellt", + "Superscript": "Hochgestellt", + "Justify Left": "Linksbündig", + "Justify Center": "Zentriert", + "Justify Right": "Rechtsbündig", + "Justify Full": "Blocksatz", + "Ordered List": "Nummerierte Liste", + "Bulleted List": "Aufzählungsliste", + "Decrease Indent": "Einzug verkleinern", + "Increase Indent": "Einzug vergrößern", + "Font Color": "Schriftfarbe", + "Background Color": "Hindergrundfarbe", + "Horizontal Rule": "Horizontale Linie", + "Insert Web Link": "Hyperlink einfügen", + "Insert/Modify Image": "Bild einfügen/verändern", + "Insert Table": "Tabelle einfügen", + "Toggle HTML Source": "HTML Quelltext ein/ausschalten", + "Enlarge Editor": "Editor vergrößern", + "About this editor": "Über diesen Editor", + "Help using editor": "Hilfe", + "Current style": "Derzeitiger Stil", + "Undoes your last action": "Rückgängig", + "Redoes your last action": "Wiederholen", + "Cut selection": "Ausschneiden", + "Copy selection": "Kopieren", + "Paste from clipboard": "Einfügen aus der Zwischenablage", + "Direction left to right": "Textrichtung von Links nach Rechts", + "Direction right to left": "Textrichtung von Rechts nach Links", + "Remove formatting": "Formatierung entfernen", + "Select all": "Alles markieren", + "Print document": "Dokument ausdrucken", + "Clear MSOffice tags": "MSOffice filter", + "Clear Inline Font Specifications": "Zeichensatz Formatierungen entfernen", + "Would you like to clear font typefaces?": "Wollen Sie Zeichensatztypen entfernen", + "Would you like to clear font sizes?": "Wollen Sie Zeichensatzgrößen entfernen", + "Would you like to clear font colours?": "Wollen sie Zeichensatzfarben entfernen", + "Split Block": "Block teilen", + "Toggle Borders": "Tabellenränder ein/ausblenden", + "Save as": "speichern unter", + "Insert/Overwrite": "Einfügen/Überschreiben", + "— format —": "— Format —", + "Heading 1": "Überschrift 1", + "Heading 2": "Überschrift 2", + "Heading 3": "Überschrift 3", + "Heading 4": "Überschrift 4", + "Heading 5": "Überschrift 5", + "Heading 6": "Überschrift 6", + "Normal": "Normal (Absatz)", + "Address": "Adresse", + "Formatted": "Formatiert", - "Alignment:": "Ausrichtung:", - "Not set": "nicht eingestellt", - "Left": "links", - "Right": "rechts", - "Texttop": "oben bündig", - "Absmiddle": "mittig", - "Baseline": "Grundlinie", - "Absbottom": "unten bündig", - "Bottom": "unten", - "Middle": "zentriert", - "Top": "oben", + //dialogs + "OK": "OK", + "Cancel": "Abbrechen", + "Path": "Pfad", + "You are in TEXT MODE. Use the [<>] button to switch back to WYSIWYG.": "Sie sind im Text-Modus. Benutzen Sie den [<>] Button, um in den visuellen Modus (WYSIWIG) zu gelangen.", + "The Paste button does not work in Mozilla based web browsers (technical security reasons). Press CTRL-V on your keyboard to paste directly.": "Aus Sicherheitsgründen dürfen Skripte normalerweise nicht auf Ausschneiden/Kopieren/Einfügen zugreifen. Bitte klicken Sie OK um die technische Erläuterung auf mozilla.org zu öffnen, in der erklärt wird, wie einem Skript Zugriff gewährt werden kann.", - "Layout": "Layout", - "Spacing": "Abstand", - "Horizontal:": "horizontal:", - "Horizontal padding": "horizontaler Inhaltsabstand", - "Vertical:": "vertikal:", - "Vertical padding": "vertikaler Inhaltsabstand", - "Border thickness:": "Randstärke:", - "Leave empty for no border": "leer lassen für keinen Rand", + "You need to select some text before create a link": "Sie müssen einen Text markieren, um einen Link zu erstellen", + "Your Document is not well formed. Check JavaScript console for details.": "Ihr Dokument ist in keinem sauberen Format. Benutzen Sie die Javascript Console für weitere Informationen.", - //Insert Link - "Insert/Modify Link": "Verknüpfung hinzufügen/ändern", - "None (use implicit)": "k.A. (implizit)", - "New window (_blank)": "Neues Fenster (_blank)", - "Same frame (_self)": "Selber Rahmen (_self)", - "Top frame (_top)": "Oberster Rahmen (_top)", - "Other": "Anderes", - "Target:": "Ziel:", - "Title (tooltip):": "Titel (Tooltip):", - "URL:": "URL:", - "You must enter the URL where this link points to": "Sie müssen eine Ziel-URL angeben für die Verknüpfung angeben", + "Alignment:": "Ausrichtung:", + "Not set": "nicht eingestellt", + "Left": "links", + "Right": "rechts", + "Texttop": "oben bündig", + "Absmiddle": "mittig", + "Baseline": "Grundlinie", + "Absbottom": "unten bündig", + "Bottom": "unten", + "Middle": "zentriert", + "Top": "oben", - // Insert Table - "Insert Table": "Table einfügen", - "Rows:": "Zeilen:", - "Number of rows": "Zeilenanzahl", - "Cols:": "Spalten:", - "Number of columns": "Spaltenanzahl", - "Width:": "Breite:", - "Width of the table": "Tabellenbreite", - "Percent": "Prozent", - "Pixels": "Pixel", - "Em": "Geviert", - "Width unit": "Größeneinheit", - "Fixed width columns": "Spalten mit fester Breite", - "Positioning of this table": "Positionierung der Tabelle", - "Cell spacing:": "Zellenabstand:", - "Space between adjacent cells": "Raum zwischen angrenzenden Zellen", - "Cell padding:": "Innenabstand:", - "Space between content and border in cell": "Raum zwischen Inhalt und Rand der Zelle", - "You must enter a number of rows": "Bitte geben Sie die Anzahl der Zeilen an", - "You must enter a number of columns": "Bitte geben Sie die Anzahl der Spalten an", + "Layout": "Layout", + "Spacing": "Abstand", + "Horizontal:": "horizontal:", + "Horizontal padding": "horizontaler Inhaltsabstand", + "Vertical:": "vertikal:", + "Vertical padding": "vertikaler Inhaltsabstand", + "Border thickness:": "Randstärke:", + "Leave empty for no border": "leer lassen für keinen Rand", - // Insert Image - "Insert Image": "Bild einfügen", - "Image URL:": "Bild URL:", - "Enter the image URL here": "Bitte geben sie hier die Bild URL ein", - "Preview": "Voransicht", - "Preview the image in a new window": "Voransicht des Bildes in einem neuen Fenster", - "Alternate text:": "Alternativer Text:", - "For browsers that don't support images": "für Browser, die keine Bilder unterstützen", - "Positioning of this image": "Positionierung dieses Bildes", - "Image Preview:": "Bild Voransicht:", - "You must enter the URL": "Bitte geben Sie die URL ein", + //Insert Link + "Insert/Modify Link": "Verknüpfung hinzufügen/ändern", + "None (use implicit)": "k.A. (implizit)", + "New window (_blank)": "Neues Fenster (_blank)", + "Same frame (_self)": "Selber Rahmen (_self)", + "Top frame (_top)": "Oberster Rahmen (_top)", + "Other": "Anderes", + "Target:": "Ziel:", + "Title (tooltip):": "Titel (Tooltip):", + "URL:": "URL:", + "You must enter the URL where this link points to": "Sie müssen eine Ziel-URL angeben für die Verknüpfung angeben", - "button_bold": "de/bold.gif", - "button_italic": "de/italic.gif", - "button_underline": "de/underline.gif" - -} \ No newline at end of file + // Insert Table + "Insert Table": "Table einfügen", + "Rows:": "Zeilen:", + "Number of rows": "Zeilenanzahl", + "Cols:": "Spalten:", + "Number of columns": "Spaltenanzahl", + "Width:": "Breite:", + "Width of the table": "Tabellenbreite", + "Percent": "Prozent", + "Pixels": "Pixel", + "Em": "Geviert", + "Width unit": "Größeneinheit", + "Fixed width columns": "Spalten mit fester Breite", + "Positioning of this table": "Positionierung der Tabelle", + "Cell spacing:": "Zellenabstand:", + "Space between adjacent cells": "Raum zwischen angrenzenden Zellen", + "Cell padding:": "Innenabstand:", + "Space between content and border in cell": "Raum zwischen Inhalt und Rand der Zelle", + "You must enter a number of rows": "Bitte geben Sie die Anzahl der Zeilen an", + "You must enter a number of columns": "Bitte geben Sie die Anzahl der Spalten an", + + // Insert Image + "Insert Image": "Bild einfügen", + "Image URL:": "Bild URL:", + "Enter the image URL here": "Bitte geben sie hier die Bild URL ein", + "Preview": "Voransicht", + "Preview the image in a new window": "Voransicht des Bildes in einem neuen Fenster", + "Alternate text:": "Alternativer Text:", + "For browsers that don't support images": "für Browser, die keine Bilder unterstützen", + "Positioning of this image": "Positionierung dieses Bildes", + "Image Preview:": "Bild Voransicht:", + "You must enter the URL": "Bitte geben Sie die URL ein", + + "button_bold": "de/bold.gif", + "button_italic": "de/italic.gif", + "button_underline": "de/underline.gif", + + // Editor Help + "Keyboard shortcuts": "Tastaturkürzel", + "The editor provides the following key combinations:": "Der Editor unterstützt die folgenden kombinationen:", + "new paragraph": "Neuer Absatz(Paragraph)", + "insert linebreak": "Harter Umbruch einfügen", + "Set format to paragraph": "Setze Formatierung auf Absatz", + "Clean content pasted from Word": "Von Word eingefügter Text bereinigen", + "Headings": "Überschrift Typ 1 bis 6", + "Close": "Schließen" +}; \ No newline at end of file diff --git a/xinha/lang/fr.js b/xinha/lang/fr.js index 3faec8b..5185795 100644 --- a/xinha/lang/fr.js +++ b/xinha/lang/fr.js @@ -90,9 +90,10 @@ "Top frame (_top)": "Frame principale (_top)", "Other": "Autre", "Target:": "Cible", - "Title (tooltip):": "Text alternatif", + "Title (tooltip):": "Texte alternatif", "URL:": "URL:", "You must enter the URL where this link points to": "Vous devez entrer l'URL de ce lien", + "You need to select some text before creating a link": "Vous devez sélectionner du texte avant de créer un lien", // Insert Table "Insert Table": "Insérer un tableau", @@ -126,4 +127,4 @@ "Positioning of this image": "Position de l'image", "Image Preview:": "Prévisualisation", "You must enter the URL": "Vous devez entrer l'URL" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/lang/no.js b/xinha/lang/no.js index 8f7a905..fd7df35 100644 --- a/xinha/lang/no.js +++ b/xinha/lang/no.js @@ -57,5 +57,13 @@ "Title (tooltip):": "Tittel (tooltip):", "Top frame (_top)": "Toppramme (_top)", "URL:": "Adresse:", - "You must enter the URL where this link points to": "Du må skrive inn en adresse som denne lenken skal peke til" -} + "You must enter the URL where this link points to": "Du må skrive inn en adresse som denne lenken skal peke til", + "Clear Inline Font Specifications": "Fjerne inline font spesifikasjoner", + "Would you like to clear font typefaces?": "Ønsker du å fjerne skrifttyper", + "Would you like to clear font sizes?": "Ønsker du å fjerne skrift størrelser", + "Would you like to clear font colours?": "Ønsker du å fjerne farger på skriften", + "Print document": "Skriv ut dokumentet", + "Split Block": "Seperasjonsblokk", + "Toggle Borders": "Skru av/på hjelpelinjer på tabeller", + "Select all": "Merk alt" +}; diff --git a/xinha/panel-dialog.js b/xinha/panel-dialog.js index a3c98d7..38738b0 100644 --- a/xinha/panel-dialog.js +++ b/xinha/panel-dialog.js @@ -17,14 +17,14 @@ HTMLArea.PanelDialog = function(editor, side, html, localizer) this._lc = function(string) { return HTMLArea._lc(string,localizer); - } + }; } else { this._lc = function(string) { return string; - } + }; } html = html.replace(/\[([a-z0-9_]+)\]/ig, @@ -50,18 +50,18 @@ HTMLArea.PanelDialog = function(editor, side, html, localizer) ); this.rootElem.innerHTML = html; -} +}; HTMLArea.PanelDialog.prototype.show = function(values) { this.editor.showPanel(this.rootElem); -} +}; HTMLArea.PanelDialog.prototype.hide = function() { this.editor.hidePanel(this.rootElem); return this.getValues(); -} +}; HTMLArea.PanelDialog.prototype.onresize = HTMLArea.Dialog.prototype.onresize; @@ -73,4 +73,4 @@ HTMLArea.PanelDialog.prototype.getValues = HTMLArea.Dialog.prototype.getValues; HTMLArea.PanelDialog.prototype.getElementById = HTMLArea.Dialog.prototype.getElementById; -HTMLArea.PanelDialog.prototype.getElementsByName = HTMLArea.Dialog.prototype.getElementsByName; +HTMLArea.PanelDialog.prototype.getElementsByName = HTMLArea.Dialog.prototype.getElementsByName; \ No newline at end of file diff --git a/xinha/plugins/CSS/css.js b/xinha/plugins/CSS/css.js index 673818b..0a48e52 100644 --- a/xinha/plugins/CSS/css.js +++ b/xinha/plugins/CSS/css.js @@ -70,7 +70,7 @@ function CSS(editor, params) { cfg.registerDropdown(css_class); cfg.addToolbarElement(["T[" + combo.label + "]", id, "separator"] , "formatblock", -1); } -}; +} CSS._pluginInfo = { name : "CSS", @@ -146,4 +146,4 @@ CSS.prototype.updateValue = function(editor, obj) { } } select.selectedIndex = 0; -}; +}; \ No newline at end of file diff --git a/xinha/plugins/CharCounter/char-counter.js b/xinha/plugins/CharCounter/char-counter.js index 8ad8ea4..99b0427 100644 --- a/xinha/plugins/CharCounter/char-counter.js +++ b/xinha/plugins/CharCounter/char-counter.js @@ -5,7 +5,7 @@ function CharCounter(editor) { this.editor = editor; -}; +} CharCounter._pluginInfo = { name : "CharCounter", @@ -24,10 +24,11 @@ CharCounter.prototype._lc = function(string) { CharCounter.prototype.onGenerate = function() { - var self = this; + var self = this; + if (this.charCount==null) { var charCount = document.createElement("span"); charCount.style.padding = "2px 5px"; - if(HTMLArea.is_ie) { + if(HTMLArea.is_ie) { charCount.style.styleFloat = "right"; } else { charCount.style.cssFloat = "right"; @@ -46,11 +47,12 @@ CharCounter.prototype.onGenerate = function() { this.editor._statusBar.appendChild(charCount); this.editor._statusBar.appendChild(brk); this.charCount = charCount; + } }; CharCounter.prototype.onUpdateToolbar = function() { this.updateCharCount(); -} +}; CharCounter.prototype.onMode = function (mode) { @@ -67,7 +69,7 @@ CharCounter.prototype.onMode = function (mode) alert("Mode <" + mode + "> not defined!"); return false; } -} +}; CharCounter.prototype.updateCharCount = function(ev) { editor = this.editor; @@ -84,4 +86,4 @@ CharCounter.prototype.updateCharCount = function(ev) { // this.charCount.innerHTML = this._lc("Words") + ": " + words + " | " + this._lc("Chars") + ": " + contents.length; this.charCount.innerHTML = this._lc("Chars") + ": " + contents.length; return(contents.length); -} +}; \ No newline at end of file diff --git a/xinha/plugins/CharCounter/lang/de.js b/xinha/plugins/CharCounter/lang/de.js index d135503..1852565 100644 --- a/xinha/plugins/CharCounter/lang/de.js +++ b/xinha/plugins/CharCounter/lang/de.js @@ -1,12 +1,6 @@ // I18N constants - // LANG: "de", ENCODING: UTF-8 -// Author: Udo Schmal, -// -// (c) Udo Schmal & L.N.Schaffrath NeueMedien 2004 -// Distributed under the same terms as HTMLArea itself. -// This notice MUST stay intact for use (see license.txt). - +// Author: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de { "Chars": "Zeichen" -} +}; diff --git a/xinha/plugins/CharCounter/lang/fr.js b/xinha/plugins/CharCounter/lang/fr.js index f445052..b4dff91 100644 --- a/xinha/plugins/CharCounter/lang/fr.js +++ b/xinha/plugins/CharCounter/lang/fr.js @@ -2,4 +2,4 @@ // LANG: "fr", ENCODING: UTF-8 { "Chars": "Caractères" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/CharCounter/lang/no.js b/xinha/plugins/CharCounter/lang/no.js index f752b68..5234e08 100644 --- a/xinha/plugins/CharCounter/lang/no.js +++ b/xinha/plugins/CharCounter/lang/no.js @@ -1,7 +1,6 @@ // I18N constants // LANG: "no", ENCODING: UTF-8 // translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com - { "Chars": "Tegn" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/CharacterMap/character-map.js b/xinha/plugins/CharacterMap/character-map.js index d6dbf52..4217104 100644 --- a/xinha/plugins/CharacterMap/character-map.js +++ b/xinha/plugins/CharacterMap/character-map.js @@ -53,13 +53,13 @@ function CharacterMap( editor ) editor.hidePanel( editor._CharacterMap ); } -}; +} // configuration mode : panel or popup HTMLArea.Config.prototype.CharacterMap = { 'mode': 'popup' // configuration mode : panel or popup -} +}; CharacterMap._pluginInfo = { diff --git a/xinha/plugins/CharacterMap/lang/de.js b/xinha/plugins/CharacterMap/lang/de.js index 2e097a1..0624817 100644 --- a/xinha/plugins/CharacterMap/lang/de.js +++ b/xinha/plugins/CharacterMap/lang/de.js @@ -1,13 +1,10 @@ // I18N constants - // LANG: "de", ENCODING: UTF-8 // Sponsored by http://www.systemconcept.de // Author: Holger Hees, -// // (c) systemconcept.de 2004 // Distributed under the same terms as HTMLArea itself. // This notice MUST stay intact for use (see license.txt). - { "Insert special character": "Sonderzeichen einfügen", "Cancel": "Abbrechen" diff --git a/xinha/plugins/CharacterMap/lang/fr.js b/xinha/plugins/CharacterMap/lang/fr.js index 05c4a5f..9ac8940 100644 --- a/xinha/plugins/CharacterMap/lang/fr.js +++ b/xinha/plugins/CharacterMap/lang/fr.js @@ -1,18 +1,6 @@ // I18N constants - // LANG: "fr", ENCODING: UTF-8 -// Author: Laurent Vilday, mokhet@mokhet.com - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Insert special character": "Insérer caractère spécial", "Cancel": "Annuler" -} +}; \ No newline at end of file diff --git a/xinha/plugins/CharacterMap/lang/it.js b/xinha/plugins/CharacterMap/lang/it.js index 383680c..2b3e1a0 100644 --- a/xinha/plugins/CharacterMap/lang/it.js +++ b/xinha/plugins/CharacterMap/lang/it.js @@ -1,10 +1,6 @@ // I18N constants - // LANG: "it", ENCODING: UTF-8 -// Distributed under the same terms as HTMLArea itself. -// This notice MUST stay intact for use (see license.txt). - { - "Insert special character" : "Inserisca il carattere speciale", - "Cancel" : "Annullamento" -} + "Insert special character": "Inserisca il carattere speciale", + "Cancel": "Annullamento" +}; diff --git a/xinha/plugins/CharacterMap/lang/nl.js b/xinha/plugins/CharacterMap/lang/nl.js index 755470a..477446d 100644 --- a/xinha/plugins/CharacterMap/lang/nl.js +++ b/xinha/plugins/CharacterMap/lang/nl.js @@ -1,14 +1,11 @@ // I18N constants - // LANG: "nl", ENCODING: UTF-8 // Sponsored by http://www.systemconcept.de // Author: Holger Hees, -// // (c) systemconcept.de 2004 // Distributed under the same terms as HTMLArea itself. // This notice MUST stay intact for use (see license.txt). - { "Insert special character": "Speciaal character invoegen", "Cancel": "Annuleer" -} +}; diff --git a/xinha/plugins/CharacterMap/lang/no.js b/xinha/plugins/CharacterMap/lang/no.js index 6ee8566..dd5da1f 100644 --- a/xinha/plugins/CharacterMap/lang/no.js +++ b/xinha/plugins/CharacterMap/lang/no.js @@ -1,8 +1,7 @@ // I18N constants // LANG: "no", ENCODING: UTF-8 // translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com - { "Insert special character": "Sett inn tegn", "Cancel": "Avbryt" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/CharacterMap/popups/select_character.html b/xinha/plugins/CharacterMap/popups/select_character.html index 5f13c74..ae40bf9 100644 --- a/xinha/plugins/CharacterMap/popups/select_character.html +++ b/xinha/plugins/CharacterMap/popups/select_character.html @@ -37,7 +37,7 @@ function onCancel() // cancel selection { __dlg_close( null ); return false; -}; +} diff --git a/xinha/plugins/ContextMenu/context-menu.js b/xinha/plugins/ContextMenu/context-menu.js index 2ccbbf0..01a6653 100644 --- a/xinha/plugins/ContextMenu/context-menu.js +++ b/xinha/plugins/ContextMenu/context-menu.js @@ -12,7 +12,7 @@ HTMLArea.loadStyle("menu.css", "ContextMenu"); function ContextMenu(editor) { this.editor = editor; -}; +} ContextMenu._pluginInfo = { name : "ContextMenu", @@ -60,7 +60,7 @@ ContextMenu.prototype.getContextMenu = function(target) { function tableOperation(opcode) { tbo.buttonPress(editor, opcode); - }; + } function insertPara(after) { var el = currentTarget; @@ -80,7 +80,7 @@ ContextMenu.prototype.getContextMenu = function(target) { range.collapse(true); range.select(); } - }; + } for (; target; target = target.parentNode) { var tag = target.tagName; @@ -258,7 +258,7 @@ ContextMenu.prototype.popupMenu = function(ev) { r.y += tmp.y; } return r; - }; + } function documentClick(ev) { ev || (ev = window.event); if (!self.currentMenu) { @@ -271,7 +271,7 @@ ContextMenu.prototype.popupMenu = function(ev) { self.closeMenu(); //HTMLArea._stopEvent(ev); //return false; - }; + } var keys = []; function keyPress(ev) { ev || (ev = window.event); @@ -286,7 +286,7 @@ ContextMenu.prototype.popupMenu = function(ev) { if (k[0].toLowerCase() == key) k[1].__msh.activate(); } - }; + } self.closeMenu = function() { self.currentMenu.parentNode.removeChild(self.currentMenu); self.currentMenu = null; @@ -296,7 +296,7 @@ ContextMenu.prototype.popupMenu = function(ev) { 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; @@ -445,4 +445,4 @@ ContextMenu.prototype.popupMenu = function(ev) { HTMLArea._stopEvent(ev); return false; -}; +}; \ No newline at end of file diff --git a/xinha/plugins/ContextMenu/lang/de.js b/xinha/plugins/ContextMenu/lang/de.js index 9fef91d..065d1d4 100644 --- a/xinha/plugins/ContextMenu/lang/de.js +++ b/xinha/plugins/ContextMenu/lang/de.js @@ -1,16 +1,12 @@ // 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", + "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", @@ -51,4 +47,4 @@ "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!)" -} +}; diff --git a/xinha/plugins/ContextMenu/lang/el.js b/xinha/plugins/ContextMenu/lang/el.js index b099704..905b3a6 100644 --- a/xinha/plugins/ContextMenu/lang/el.js +++ b/xinha/plugins/ContextMenu/lang/el.js @@ -1,8 +1,6 @@ // I18N constants - // LANG: "el", ENCODING: UTF-8 // Author: Dimitris Glezos, dimitris@glezos.com - { "Cut": "ΑποκοπΞ�", "Copy": "ΑντιγραφΞ�", @@ -46,4 +44,4 @@ "Insert a new column after the current one": "ΕισαγωγΞ� Ξ½Ξ­Ξ±Ο‚ στΞ�λης μΡτά την ΡπιλΡγμένη", "Delete the current column": "ΔιαγραφΞ� ΡπιλΡγμένης στΞ�λης", "Create a link": "Δημιουργία συνδέσμου" -} +}; diff --git a/xinha/plugins/ContextMenu/lang/fr.js b/xinha/plugins/ContextMenu/lang/fr.js index 3136855..10b4fc2 100644 --- a/xinha/plugins/ContextMenu/lang/fr.js +++ b/xinha/plugins/ContextMenu/lang/fr.js @@ -47,4 +47,4 @@ "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 +}; \ No newline at end of file diff --git a/xinha/plugins/ContextMenu/lang/he.js b/xinha/plugins/ContextMenu/lang/he.js index 5d880d7..4e3b05a 100644 --- a/xinha/plugins/ContextMenu/lang/he.js +++ b/xinha/plugins/ContextMenu/lang/he.js @@ -1,17 +1,6 @@ // I18N constants - // LANG: "he", ENCODING: UTF-8 // Author: Liron Newman, http://www.eesh.net, - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Cut": "גזור", "Copy": "העתק", @@ -55,4 +44,4 @@ "Insert a new column after the current one": "הוספת טור חדש אחרי הנוכחי", "Delete the current column": "מחיקת את הטור הנוכחי", "Create a link": "יצירת קישור" -} +}; diff --git a/xinha/plugins/ContextMenu/lang/nl.js b/xinha/plugins/ContextMenu/lang/nl.js index b457993..78ebf97 100644 --- a/xinha/plugins/ContextMenu/lang/nl.js +++ b/xinha/plugins/ContextMenu/lang/nl.js @@ -1,17 +1,6 @@ // I18N constants - // LANG: "nl", ENCODING: UTF-8 // Author: Michel Weegeerink (info@mmc-shop.nl), http://mmc-shop.nl - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Cut": "Knippen", "Copy": "Kopiëren", @@ -55,4 +44,4 @@ "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" -} +}; diff --git a/xinha/plugins/ContextMenu/lang/no.js b/xinha/plugins/ContextMenu/lang/no.js index 386537b..21cded5 100644 --- a/xinha/plugins/ContextMenu/lang/no.js +++ b/xinha/plugins/ContextMenu/lang/no.js @@ -1,11 +1,9 @@ // 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", @@ -52,4 +50,4 @@ "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 +}; \ No newline at end of file diff --git a/xinha/plugins/ContextMenu/lang/pl.js b/xinha/plugins/ContextMenu/lang/pl.js index 882150a..42220a1 100644 --- a/xinha/plugins/ContextMenu/lang/pl.js +++ b/xinha/plugins/ContextMenu/lang/pl.js @@ -39,8 +39,7 @@ "Justify Full": "Wyjustuj", "Make lin_k...": "Utwórz odnośnik", "Create a link": "Utwórz odnośnik", - "Remove the": "Usuń", - "Element...": "element...", + "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", diff --git a/xinha/plugins/DoubleClick/double-click.js b/xinha/plugins/DoubleClick/double-click.js index 8ba9426..e7e2a01 100644 --- a/xinha/plugins/DoubleClick/double-click.js +++ b/xinha/plugins/DoubleClick/double-click.js @@ -48,7 +48,7 @@ function DoubleClick(editor) { img: [ function(e) {e.execCommand("insertimage");} ], td: [ function(e) {e.execCommand("inserttable");} ] }; -}; +} DoubleClick.prototype.onGenerate = function() { var self = this; @@ -67,4 +67,4 @@ DoubleClick.prototype.onDoubleClick = function(ev) { if (this.editor.dblClickList[tagName] != undefined) { this.editor.dblClickList[tagName][0](this.editor, target); } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/DynamicCSS/dynamiccss.js b/xinha/plugins/DynamicCSS/dynamiccss.js index 43c2c45..4f9ab36 100644 --- a/xinha/plugins/DynamicCSS/dynamiccss.js +++ b/xinha/plugins/DynamicCSS/dynamiccss.js @@ -25,7 +25,7 @@ function DynamicCSS(editor, args) { }; cfg.registerDropdown(css_class); cfg.addToolbarElement(["T[CSS]", "DynamicCSS-class", "separator"] , "formatblock", -1); -}; +} DynamicCSS.parseStyleSheet=function(editor){ iframe = editor._iframe.contentWindow.document; @@ -65,7 +65,7 @@ DynamicCSS.parseStyleSheet=function(editor){ } } DynamicCSS.cssArray=cssArray; -} +}; DynamicCSS.applyCSSRule=function(cssRules,cssArray){ for(rule in cssRules){ @@ -106,7 +106,7 @@ DynamicCSS.applyCSSRule=function(cssRules,cssArray){ } } return cssArray; -} +}; DynamicCSS._pluginInfo = { name : "DynamicCSS", @@ -121,7 +121,7 @@ DynamicCSS._pluginInfo = { DynamicCSS.prototype._lc = function(string) { return HTMLArea._lc(string, 'DynamicCSS'); -} +}; DynamicCSS.prototype.onSelect = function(editor, obj) { var tbobj = editor._toolbarObjects[obj.id]; @@ -164,7 +164,7 @@ DynamicCSS.prototype.reparseTimer = function(editor, obj, instance) { },DynamicCSS.parseCount*1000); DynamicCSS.parseCount=DynamicCSS.parseCount*2; } -} +}; DynamicCSS.prototype.updateValue = function(editor, obj) { cssArray=DynamicCSS.cssArray; @@ -234,4 +234,4 @@ DynamicCSS.prototype.updateValue = function(editor, obj) { if(select.length>1) select.disabled=false; else select.disabled=true; } -}; +}; \ No newline at end of file diff --git a/xinha/plugins/DynamicCSS/lang/de.js b/xinha/plugins/DynamicCSS/lang/de.js index b051902..5419e8d 100644 --- a/xinha/plugins/DynamicCSS/lang/de.js +++ b/xinha/plugins/DynamicCSS/lang/de.js @@ -1,15 +1,12 @@ // I18N constants - // LANG: "de", ENCODING: UTF-8 // Sponsored by http://www.systemconcept.de // Author: Holger Hees, -// // (c) systemconcept.de 2004 // Distributed under the same terms as HTMLArea itself. // This notice MUST stay intact for use (see license.txt). - { "Default": "Standard", "Undefined": "Nicht definiert", "Choose stylesheet": "Wählen Sie einen StyleSheet aus" -} +}; diff --git a/xinha/plugins/DynamicCSS/lang/fr.js b/xinha/plugins/DynamicCSS/lang/fr.js index 45c5e91..a82ca2a 100644 --- a/xinha/plugins/DynamicCSS/lang/fr.js +++ b/xinha/plugins/DynamicCSS/lang/fr.js @@ -1,15 +1,7 @@ // I18N constants - // LANG: "fr", ENCODING: UTF-8 -// Sponsored by http://www.ebdata.com -// Author: Cédric Guillemette, -// -// (c) www.ebdata.com 2004 -// Distributed under the same terms as HTMLArea itself. -// This notice MUST stay intact for use (see license.txt). - { "Default": "Défaut", "Undefined": "Non défini", "Choose stylesheet": "Choisir feuille de style" -} +}; \ No newline at end of file diff --git a/xinha/plugins/DynamicCSS/lang/nl.js b/xinha/plugins/DynamicCSS/lang/nl.js index 9091343..ead62eb 100644 --- a/xinha/plugins/DynamicCSS/lang/nl.js +++ b/xinha/plugins/DynamicCSS/lang/nl.js @@ -1,15 +1,12 @@ // I18N constants - // LANG: "nl", ENCODING: UTF-8 // Sponsored by http://www.systemconcept.de // Author: Holger Hees, -// // (c) systemconcept.de 2004 // Distributed under the same terms as HTMLArea itself. // This notice MUST stay intact for use (see license.txt). - { "Default": "Default", "Undefined": "Ungedefinieerd", "Choose stylesheet": "Kies stylesheet" -} +}; diff --git a/xinha/plugins/DynamicCSS/lang/no.js b/xinha/plugins/DynamicCSS/lang/no.js index 68f8352..3ea3665 100644 --- a/xinha/plugins/DynamicCSS/lang/no.js +++ b/xinha/plugins/DynamicCSS/lang/no.js @@ -1,9 +1,8 @@ // I18N constants // LANG: "no", ENCODING: UTF-8 // translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com - { "Default": "Standard", "Undefined": "Udefinert", "Choose stylesheet": "Velg stilsett" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/EnterParagraphs/enter-paragraphs.js b/xinha/plugins/EnterParagraphs/enter-paragraphs.js index 00df1ff..4d0f9ba 100644 --- a/xinha/plugins/EnterParagraphs/enter-paragraphs.js +++ b/xinha/plugins/EnterParagraphs/enter-paragraphs.js @@ -113,7 +113,7 @@ function EnterParagraphs(editor) this.onKeyPress = this.__onKeyPress; } - }; // end of constructor. + } // end of constructor. // ------------------------------------------------------------------ @@ -1084,4 +1084,4 @@ EnterParagraphs.prototype.handleEnter = function(ev) }; // end of handleEnter() -// END +// END \ No newline at end of file diff --git a/xinha/plugins/FindReplace/find-replace.js b/xinha/plugins/FindReplace/find-replace.js index 51e60d7..7757e47 100644 --- a/xinha/plugins/FindReplace/find-replace.js +++ b/xinha/plugins/FindReplace/find-replace.js @@ -13,7 +13,7 @@ cfg.registerButton("FR-findreplace", this._lc("Find and Replace"), editor.imgURL("ed_find.gif", "FindReplace"), false, function(editor) { self.buttonPress(editor); }); cfg.addToolbarElement(["FR-findreplace","separator"], ["formatblock","fontsize","fontname"], -1); -}; +} FindReplace.prototype.buttonPress = function(editor) { FindReplace.editor = editor; @@ -39,4 +39,4 @@ FindReplace._pluginInfo = { FindReplace.prototype._lc = function(string) { return HTMLArea._lc(string, 'FindReplace'); -} +}; \ No newline at end of file diff --git a/xinha/plugins/FindReplace/fr_engine.js b/xinha/plugins/FindReplace/fr_engine.js index d190dcc..4d9c9e7 100644 --- a/xinha/plugins/FindReplace/fr_engine.js +++ b/xinha/plugins/FindReplace/fr_engine.js @@ -49,7 +49,7 @@ var ihtml = editor._doc.body.innerHTML; } spanWalker(params['fr_pattern'],params['fr_replacement'],params['fr_replaceall']); -}; +} function spanWalker(pattern,replacement,replaceall) { var foundtrue = false; @@ -95,7 +95,7 @@ clearMarks(); } else { message += '"'+pattern+'" '+_lc("not found"); } alert(message+'.'); } -}; +} function clearDoc() { var doc = editor._doc.body.innerHTML; @@ -107,9 +107,9 @@ fr_spans = new Array(); matches = 0; replaces = 0; disab("fr_hiliteall,fr_clear",true); -}; +} -function clearMarks() { +function clearMarks() { var getall = editor._doc.body.getElementsByTagName("span"); for (var i = 0; i < getall.length; i++) { var elm = getall[i]; @@ -120,7 +120,7 @@ var getall = editor._doc.body.getElementsByTagName("span"); objStyle.fontWeight = ""; } } -}; +} function hiliteAll() { var getall = editor._doc.body.getElementsByTagName("span"); @@ -133,17 +133,17 @@ var getall = editor._doc.body.getElementsByTagName("span"); objStyle.fontWeight = "bold"; } } -}; +} function resetContents() { if(buffer == null) return; var transp = editor._doc.body.innerHTML; editor._doc.body.innerHTML = buffer; buffer = transp; -}; +} function disab(elms,toset) { var names = elms.split(/[,; ]+/); for(var i = 0; i < names.length; i++) document.getElementById(names[i]).disabled = toset; -}; +} \ No newline at end of file diff --git a/xinha/plugins/FindReplace/lang/de.js b/xinha/plugins/FindReplace/lang/de.js index 6acfbc6..2c775b9 100644 --- a/xinha/plugins/FindReplace/lang/de.js +++ b/xinha/plugins/FindReplace/lang/de.js @@ -1,38 +1,27 @@ // I18N constants - // LANG: "de", ENCODING: UTF-8 -// translated: gocher / udo.schmal@t-online.de - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - +// translated: Udo Schmal (gocher), http://www.schaffrath-neuemedien.de/, udo.schmal@t-online.de { // messages - "Substitute this occurrence?": "Treffer ersetzen?", + "Substitute this occurrence?": "Treffer ersetzen?", "Enter the text you want to find": "Geben Sie einen Text ein den Sie finden möchten", - "Inform a replacement word": "Geben sie einen Text zum ersetzen ein", - "found items": "alle Treffer", - "replaced items": "ersetzte Treffer", - "found item": "Treffer", - "replaced item": "ersetzter Treffer", - "not found": "kein Teffer", + "Inform a replacement word": "Geben sie einen Text zum ersetzen ein", + "found items": "alle Treffer", + "replaced items": "ersetzte Treffer", + "found item": "Treffer", + "replaced item": "ersetzter Treffer", + "not found": "kein Teffer", // window - "Find and Replace": "Suchen und ersetzen", - "Search for:": "Suchen nach:", - "Replace with:": "Ersetzen durch:", - "Options": "Optionen", - "Whole words only": "Ganze Wörter", - "Case sensitive search": "Groß-/Kleinschreibung", - "Substitute all occurrences": "alle Treffer ersetzen", - "Clear": "Nächstes ersetzen", - "Highlight": "Hervorheben", - "Undo": "Rückgängig", - "Next": "Nächster", - "Done": "Fertig" -} \ No newline at end of file + "Find and Replace": "Suchen und ersetzen", + "Search for:": "Suchen nach:", + "Replace with:": "Ersetzen durch:", + "Options": "Optionen", + "Whole words only": "Ganze Wörter", + "Case sensitive search": "Groß-/Kleinschreibung", + "Substitute all occurrences": "alle Treffer ersetzen", + "Clear": "Nächstes ersetzen", + "Highlight": "Hervorheben", + "Undo": "Rückgängig", + "Next": "Nächster", + "Done": "Fertig" +}; \ No newline at end of file diff --git a/xinha/plugins/FindReplace/lang/fr.js b/xinha/plugins/FindReplace/lang/fr.js index f161c99..4869e76 100644 --- a/xinha/plugins/FindReplace/lang/fr.js +++ b/xinha/plugins/FindReplace/lang/fr.js @@ -2,25 +2,25 @@ // LANG: "fr", ENCODING: UTF-8 { // messages - "Substitute this occurrence?": "Remplacer cette occurrence ?", + "Substitute this occurrence?": "Remplacer cette occurrence ?", "Enter the text you want to find": "Texte à trouver", - "Inform a replacement word": "Geben sie einen Text zum ersetzen ein", - "found items": "éléments trouvés", - "replaced items": "éléments remplacés", - "found item": "élément trouvé", - "replaced item": "élément remplacé", - "not found": "non trouvé", + "Inform a replacement word": "Indiquez un mot de remplacement", + "found items": "éléments trouvés", + "replaced items": "éléments remplacés", + "found item": "élément trouvé", + "replaced item": "élément remplacé", + "not found": "non trouvé", // window - "Find and Replace": "Chercher et Remplacer", - "Search for:": "Chercher", - "Replace with:": "Remplacer par", - "Options": "Options", - "Whole words only": "Mots entiers seulement", - "Case sensitive search": "Recherche sensible à la casse", - "Substitute all occurrences": "Remplacer toutes les occurences", - "Clear": "Effacer", - "Highlight": "Surligner", - "Undo": "Annuler", - "Next": "Suivant", - "Done": "Fin" -} \ No newline at end of file + "Find and Replace": "Chercher et Remplacer", + "Search for:": "Chercher", + "Replace with:": "Remplacer par", + "Options": "Options", + "Whole words only": "Mots entiers seulement", + "Case sensitive search": "Recherche sensible à la casse", + "Substitute all occurrences": "Remplacer toutes les occurences", + "Clear": "Effacer", + "Highlight": "Surligner", + "Undo": "Annuler", + "Next": "Suivant", + "Done": "Fin" +}; \ No newline at end of file diff --git a/xinha/plugins/FindReplace/lang/no.js b/xinha/plugins/FindReplace/lang/no.js index d2fd2b5..b059a28 100644 --- a/xinha/plugins/FindReplace/lang/no.js +++ b/xinha/plugins/FindReplace/lang/no.js @@ -1,28 +1,27 @@ // I18N constants // LANG: "no", ENCODING: UTF-8 // translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com - { // messages - "Substitute this occurrence?": "Vennligst bekreft at du vil erstatte?", + "Substitute this occurrence?": "Vennligst bekreft at du vil erstatte?", "Enter the text you want to find": "Skriv inn teksten du ønsker å finne", - "Inform a replacement word": "Vennligst skriv inn et erstattningsord / settning", - "found items": "forekomster funnet i søket", - "replaced items": "forekomster erstattet", - "found item": "Treff", - "replaced item": "erstattet treff", - "not found": "ikke funnet", + "Inform a replacement word": "Vennligst skriv inn et erstatningsord / setning", + "found items": "forekomster funnet i søket", + "replaced items": "forekomster erstattet", + "found item": "Treff", + "replaced item": "erstattet treff", + "not found": "ikke funnet", // window - "Find and Replace": "Søk og erstatt", - "Search for:": "Søk etter:", - "Replace with:": "Erstatt med:", - "Options": "Valg", - "Whole words only": "Bare hele ord", - "Case sensitive search": "Skille mellom store og små bokstaver", - "Substitute all occurrences": "Erstatt alle treff", - "Clear": "Tøm", - "Highlight": "Uthev", - "Undo": "Tilbake", - "Next": "Neste", - "Done": "Ferdig" -} \ No newline at end of file + "Find and Replace": "Søk og erstatt", + "Search for:": "Søk etter:", + "Replace with:": "Erstatt med:", + "Options": "Valg", + "Whole words only": "Bare hele ord", + "Case sensitive search": "Skille mellom store og små bokstaver", + "Substitute all occurrences": "Erstatt alle treff", + "Clear": "Tøm", + "Highlight": "Uthev", + "Undo": "Tilbake", + "Next": "Neste", + "Done": "Ferdig" +}; \ No newline at end of file diff --git a/xinha/plugins/FindReplace/lang/pl.js b/xinha/plugins/FindReplace/lang/pl.js index ee06549..bc446c7 100644 --- a/xinha/plugins/FindReplace/lang/pl.js +++ b/xinha/plugins/FindReplace/lang/pl.js @@ -1,38 +1,27 @@ -/ I18N constants - +// I18N constants // LANG: "pl", ENCODING: UTF-8 // translated: Krzysztof Kotowicz, koto1sa@o2.pl, http://www.eskot.krakow.pl/portfolio - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { // messages - "Substitute this occurrence?": "Zamienić to wystąpienie?", + "Substitute this occurrence?": "Zamienić to wystąpienie?", "Enter the text you want to find": "Podaj tekst, jaki chcesz wyszukać", - "Inform a replacement word": "Podaj tekst do zamiany", - "found items": "znalezionych", - "replaced items": "zamienionych", - "found item": "znaleziony", - "replaced item": "zamieniony", - "not found": "nie znaleziony", + "Inform a replacement word": "Podaj tekst do zamiany", + "found items": "znalezionych", + "replaced items": "zamienionych", + "found item": "znaleziony", + "replaced item": "zamieniony", + "not found": "nie znaleziony", // window - "Find and Replace": "Znajdź i zamień", - "Search for:": "Szukaj:", - "Replace with:": "Zamień na:", - "Options": "Opcje", - "Whole words only": "Całe słowa", - "Case sensitive search": "Wg wielkości liter", - "Substitute all occurrences": "Zamień wszystkie wystąpienia", - "Clear": "Wyczyść", - "Highlight": "Podświetl", - "Undo": "Cofnij", - "Next": "Następny", - "Done": "Gotowe" -} \ No newline at end of file + "Find and Replace": "Znajdź i zamień", + "Search for:": "Szukaj:", + "Replace with:": "Zamień na:", + "Options": "Opcje", + "Whole words only": "Całe słowa", + "Case sensitive search": "Wg wielkości liter", + "Substitute all occurrences": "Zamień wszystkie wystąpienia", + "Clear": "Wyczyść", + "Highlight": "Podświetl", + "Undo": "Cofnij", + "Next": "Następny", + "Done": "Gotowe" +}; \ No newline at end of file diff --git a/xinha/plugins/FindReplace/lang/pt_br.js b/xinha/plugins/FindReplace/lang/pt_br.js index f32471b..017332f 100644 --- a/xinha/plugins/FindReplace/lang/pt_br.js +++ b/xinha/plugins/FindReplace/lang/pt_br.js @@ -1,35 +1,27 @@ -/*---------------------------------------*\ - Find and Replace Plugin for HTMLArea-3.0 - - by Cau guanabara (independent developer) - e-mail: caugb@ibest.com.br - - * Feito no Brasil * -\*---------------------------------------*/ - -// I18N {pt-br) for FindReplace plugin - +// I18N constants +// LANG: "pt-br" +// Author: Cau guanabara (independent developer), caugb@ibest.com.br { // mensagens - "Substitute this occurrence?": "Substituir?", - "Enter the text you want to find": "Digite um termo para a busca", - "Inform a replacement word": "Informe um termo para a substituição", - "found items": "itens localizados", - "replaced items": "itens substituídos", - "found item": "item localizado", - "replaced item": "item substituído", - "not found": "não encontrado", - // janela - "Find and Replace": "Localizar e Substituir", - "Search for:": "Localizar:", - "Replace with:": "Substituir por:", - "Options": "Opções", - "Whole words only": "Apenas palavras inteiras", - "Case sensitive search": "Diferenciar caixa alta/baixa", - "Substitute all occurrences": "Substituir todas", - "Highlight": "Remarcar", - "Clear": "Limpar", - "Undo": "Desfazer", - "Next": "Próxima", - "Done": "Concluído" + "Substitute this occurrence?": "Substituir?", + "Enter the text you want to find": "Digite um termo para a busca", + "Inform a replacement word": "Informe um termo para a substituição", + "found items": "itens localizados", + "replaced items": "itens substituídos", + "found item": "item localizado", + "replaced item": "item substituído", + "not found": "não encontrado", + // janela + "Find and Replace": "Localizar e Substituir", + "Search for:": "Localizar:", + "Replace with:": "Substituir por:", + "Options": "Opções", + "Whole words only": "Apenas palavras inteiras", + "Case sensitive search": "Diferenciar caixa alta/baixa", + "Substitute all occurrences": "Substituir todas", + "Highlight": "Remarcar", + "Clear": "Limpar", + "Undo": "Desfazer", + "Next": "Próxima", + "Done": "Concluído" }; diff --git a/xinha/plugins/FindReplace/popups/find_replace.html b/xinha/plugins/FindReplace/popups/find_replace.html index 84f87f3..3903521 100644 --- a/xinha/plugins/FindReplace/popups/find_replace.html +++ b/xinha/plugins/FindReplace/popups/find_replace.html @@ -40,13 +40,13 @@ var params = window.dialogArguments; } document.body.onkeypress = __dlg_key_press; -}; +} function onCancel() { clearDoc(); __dlg_close(null); return false; -}; +} function onOK() { var required = {'fr_pattern' : _lc("Enter the text you want to find")}; @@ -66,7 +66,7 @@ function onOK() { } execSearch(param); return false; -}; +} function __dlg_key_press(ev) { ev || (ev = window.event); @@ -81,7 +81,7 @@ ev || (ev = window.event); return false; } return true; -}; +} @@ -159,4 +159,4 @@ letter-spacing: 2px;
- + \ No newline at end of file diff --git a/xinha/plugins/Forms/forms.js b/xinha/plugins/Forms/forms.js index 069b2c0..977abab 100644 --- a/xinha/plugins/Forms/forms.js +++ b/xinha/plugins/Forms/forms.js @@ -26,7 +26,7 @@ function Forms(editor) { } // add a new line in the toolbar cfg.toolbar.push(toolbar); -}; +} Forms._pluginInfo = { name : "Forms", @@ -65,7 +65,7 @@ Forms.btnList = [ Forms.prototype._lc = function(string) { return HTMLArea._lc(string, 'Forms'); -} +}; Forms.prototype.onGenerate = function() { var style_id = "Form-style" @@ -77,7 +77,7 @@ Forms.prototype.onGenerate = function() { style.href = _editor_url + 'plugins/Forms/forms.css'; this.editor._doc.getElementsByTagName("HEAD")[0].appendChild(style); } -} +}; Forms.prototype.buttonPress = function(editor,button_id, node) { function optionValues(text,value) { @@ -173,7 +173,7 @@ Forms.prototype.buttonPress = function(editor,button_id, node) { var a_options = new Array(); for (var i=0; i<=node.options.length-1; i++) { a_options[i] = new optionValues(node.options[i].text, node.options[i].value); - }; + } outparam.f_options = a_options; break; case "text": @@ -267,7 +267,7 @@ Forms.prototype.buttonPress = function(editor,button_id, node) { outparam.f_for = ""; outparam.f_text = ""; outparam.f_legend = ""; - }; + } editor._popupDialog("plugin://Forms/" + tagName + ".html", function(param) { if (param) { if(param["f_cols"]) @@ -351,4 +351,4 @@ Forms.prototype.buttonPress = function(editor,button_id, node) { } }, outparam); } -}; +}; \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/fieldset.html b/xinha/plugins/Forms/popups/fieldset.html index a691701..fd155f4 100644 --- a/xinha/plugins/Forms/popups/fieldset.html +++ b/xinha/plugins/Forms/popups/fieldset.html @@ -13,7 +13,7 @@ function Init() { var param = window.dialogArguments; document.getElementById("f_text").value = param["f_text"]; document.getElementById("f_text").focus(); -}; +} function onOK() { // pass data back to the calling window @@ -21,12 +21,12 @@ function onOK() { param["f_text"] = document.getElementById("f_text").value; __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -43,4 +43,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/form.html b/xinha/plugins/Forms/popups/form.html index 43377e3..4609f5b 100644 --- a/xinha/plugins/Forms/popups/form.html +++ b/xinha/plugins/Forms/popups/form.html @@ -18,7 +18,7 @@ function Init() { document.getElementById(fields[i]).value = param[fields[i]]; } document.getElementById("f_name").focus(); -}; +} function onOK() { var required = { @@ -39,12 +39,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -87,4 +87,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/input.html b/xinha/plugins/Forms/popups/input.html index 67c8886..3221f78 100644 --- a/xinha/plugins/Forms/popups/input.html +++ b/xinha/plugins/Forms/popups/input.html @@ -72,7 +72,7 @@ function Init() { } window.resizeTo(320,height); document.getElementById("f_name").focus(); -}; +} function onOK() { var el = document.getElementById("f_name"); @@ -99,12 +99,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -176,4 +176,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/label.html b/xinha/plugins/Forms/popups/label.html index 61a10dd..f54df02 100644 --- a/xinha/plugins/Forms/popups/label.html +++ b/xinha/plugins/Forms/popups/label.html @@ -17,7 +17,7 @@ function Init() { document.getElementById(fields[i]).value = param[fields[i]]; } document.getElementById("f_text").focus(); -}; +} function onOK() { // pass data back to the calling window @@ -28,12 +28,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -56,4 +56,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/select.html b/xinha/plugins/Forms/popups/select.html index 9034d3e..c5a8fc9 100644 --- a/xinha/plugins/Forms/popups/select.html +++ b/xinha/plugins/Forms/popups/select.html @@ -28,7 +28,7 @@ function Init() { document.getElementById("f_select").options[i] = new Option(param.f_options[i].text, param.f_options[i].value); } document.getElementById("f_name").focus(); -}; +} function onOK() { var el = document.getElementById("f_name"); @@ -64,12 +64,12 @@ function onOK() { param["f_options"] = optionNodes; __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} //functions to build select options list @@ -206,4 +206,4 @@ function swapOptions(obj,i,j) { - + \ No newline at end of file diff --git a/xinha/plugins/Forms/popups/textarea.html b/xinha/plugins/Forms/popups/textarea.html index 90c88ad..ad12555 100644 --- a/xinha/plugins/Forms/popups/textarea.html +++ b/xinha/plugins/Forms/popups/textarea.html @@ -24,7 +24,7 @@ function Init() { } } document.getElementById("f_name").focus(); -}; +} function onOK() { var el = document.getElementById("f_name"); @@ -50,12 +50,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -110,4 +110,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/plugins/FullPage/full-page.js b/xinha/plugins/FullPage/full-page.js index f3dd6ca..2e4392a 100644 --- a/xinha/plugins/FullPage/full-page.js +++ b/xinha/plugins/FullPage/full-page.js @@ -26,7 +26,7 @@ function FullPage(editor) { // add a new line in the toolbar cfg.addToolbarElement(["separator","FP-docprop"],"separator",-1); -}; +} FullPage._pluginInfo = { name : "FullPage", @@ -41,7 +41,7 @@ FullPage._pluginInfo = { FullPage.prototype._lc = function(string) { return HTMLArea._lc(string, 'FullPage'); -} +}; FullPage.prototype.buttonPress = function(editor, id) { var self = this; @@ -69,9 +69,9 @@ FullPage.prototype.buttonPress = function(editor, id) { if (/content-type/i.test(meta.httpEquiv)) { r = /^text\/html; *charset=(.*)$/i.exec(meta.content); charset = r[1]; - } else if (/keywords/i.test(meta.name)) { + } else if ((/keywords/i.test(meta.name)) || (/keywords/i.test(meta.id))) { keywords = meta.content; - } else if (/description/i.test(meta.name)) { + } else if ((/description/i.test(meta.name)) || (/description/i.test(meta.id))) { description = meta.content; } } @@ -123,9 +123,9 @@ FullPage.prototype.setDocProp = function(params) { r = /^text\/html; *charset=(.*)$/i.exec(meta.content); charset = r[1]; charset_meta = meta; - } else if (/keywords/i.test(meta.name)) { + } else if ((/keywords/i.test(meta.name)) || (/keywords/i.test(meta.id))) { keywords = meta; - } else if (/description/i.test(meta.name)) { + } else if ((/description/i.test(meta.name)) || (/description/i.test(meta.id))) { description = meta; } } @@ -134,15 +134,16 @@ FullPage.prototype.setDocProp = function(params) { link.rel = alt ? "alternate stylesheet" : "stylesheet"; head.appendChild(link); return link; - }; + } function createMeta(httpEquiv, name, content) { var meta = doc.createElement("meta"); if (httpEquiv!="") meta.httpEquiv = httpEquiv; if (name!="") meta.name = name; + if (name!="") meta.id = name; meta.content = content; head.appendChild(meta); return meta; - }; + } if (!style1 && params.f_base_style) style1 = createLink(false); @@ -205,4 +206,4 @@ FullPage.prototype.setDocProp = function(params) { break; } } -}; +}; \ No newline at end of file diff --git a/xinha/plugins/FullPage/lang/de.js b/xinha/plugins/FullPage/lang/de.js index 1df6e79..55f2ede 100644 --- a/xinha/plugins/FullPage/lang/de.js +++ b/xinha/plugins/FullPage/lang/de.js @@ -1,17 +1,6 @@ // I18N for the FullPage plugin - // LANG: "de", ENCODING: UTF-8 // Author: Holger Hees, http://www.systemconcept.de - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Alternate style-sheet:": "Alternativer Stylesheet:", "Background color:": "Hintergrundfarbe:", @@ -22,8 +11,8 @@ "OK": "OK", "Primary style-sheet:": "Stylesheet:", "Text color:": "Textfarbe:", - "Character set:": "Zeichensatz", - "Description:": "Beschreibung", - "Keywords:": "Schlüsselworte", - "UTF-8 (recommended)": "UTF-8 (empfohlen)" + "Character set:": "Zeichensatz", + "Description:": "Beschreibung", + "Keywords:": "Schlüsselworte", + "UTF-8 (recommended)": "UTF-8 (empfohlen)" } diff --git a/xinha/plugins/FullPage/lang/fr.js b/xinha/plugins/FullPage/lang/fr.js index e3aead2..b19a0a0 100644 --- a/xinha/plugins/FullPage/lang/fr.js +++ b/xinha/plugins/FullPage/lang/fr.js @@ -14,4 +14,4 @@ "Description:": "Description", "Keywords:": "Mots clés", "UTF-8 (recommended)": "UTF-8 (recommandé)" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/FullPage/lang/he.js b/xinha/plugins/FullPage/lang/he.js index 72ad3bb..cdd1ae2 100644 --- a/xinha/plugins/FullPage/lang/he.js +++ b/xinha/plugins/FullPage/lang/he.js @@ -1,17 +1,6 @@ // I18N for the FullPage plugin - // LANG: "he", ENCODING: UTF-8 // Author: Liron Newman, http://www.eesh.net, - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Alternate style-sheet:": "גיליון סגנון אחר:", "Background color:": "צבע רקע:", @@ -22,4 +11,4 @@ "OK": "אישור", "Primary style-sheet:": "גיליון סגנון ראשי:", "Text color:": "צבע טקסט:" -} +}; diff --git a/xinha/plugins/FullPage/lang/nl.js b/xinha/plugins/FullPage/lang/nl.js index a68e26a..5c27857 100644 --- a/xinha/plugins/FullPage/lang/nl.js +++ b/xinha/plugins/FullPage/lang/nl.js @@ -1,24 +1,13 @@ // I18N for the FullPage plugin - // LANG: "nl", ENCODING: UTF-8 - -// FOR TRANSLATORS: -// Nederlands: MadMiner basura@sitter.nl [2/2005] -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { - "Alternate style-sheet:": "Wisselen van style-sheet:", - "Background color:": "Achtergrondkleur:", - "Cancel": "Annuleren", - "DOCTYPE:": "DOCTYPE:", - "Document properties": "Documenteigenschappen", - "Document title:": "Documenttitel:", - "OK": "OK", - "Primary style-sheet:": "Primaire style-sheet:", - "Text color:": "Tekstkleur:" -} \ No newline at end of file + "Alternate style-sheet:": "Wisselen van style-sheet:", + "Background color:": "Achtergrondkleur:", + "Cancel": "Annuleren", + "DOCTYPE:": "DOCTYPE:", + "Document properties": "Documenteigenschappen", + "Document title:": "Documenttitel:", + "OK": "OK", + "Primary style-sheet:": "Primaire style-sheet:", + "Text color:": "Tekstkleur:" +}; \ No newline at end of file diff --git a/xinha/plugins/FullPage/lang/no.js b/xinha/plugins/FullPage/lang/no.js index 0c5ecf3..11eb5e1 100644 --- a/xinha/plugins/FullPage/lang/no.js +++ b/xinha/plugins/FullPage/lang/no.js @@ -1,15 +1,17 @@ // I18N constants // LANG: "no", ENCODING: UTF-8 // translated: Kim Steinhaug, http://www.steinhaug.com/, kim@steinhaug.com - { "Alternate style-sheet:": "Alternativt stilsett:", "Background color:": "Bakgrunnsfarge:", "Cancel": "Avbryt", "DOCTYPE:": "DOCTYPE:", + "Keywords:": "Nøkkelord", + "Description:": "Beskrivelse", + "Character set:": "Tegnsett", "Document properties": "Egenskaper for dokument", "Document title:": "Tittel på dokument:", "OK": "OK", "Primary style-sheet:": "Stilsett:", "Text color:": "Tekstfarge:" -} \ No newline at end of file +}; \ No newline at end of file diff --git a/xinha/plugins/FullPage/lang/pl.js b/xinha/plugins/FullPage/lang/pl.js index dde716d..3c5188e 100644 --- a/xinha/plugins/FullPage/lang/pl.js +++ b/xinha/plugins/FullPage/lang/pl.js @@ -1,17 +1,6 @@ // I18N for the FullPage plugin - // LANG: "pl", ENCODING: UTF-8 // translated: Krzysztof Kotowicz, koto1sa@o2.pl, http://www.eskot.krakow.pl/portfolio - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Alternate style-sheet:": "Alternatywny arkusz stylów:", "Background color:": "Kolor tła:", @@ -26,4 +15,4 @@ "Description:": "Opis", "Keywords:": "Słowa kluczowe", "UTF-8 (recommended)": "UTF-8 (zalecany)" -} +}; diff --git a/xinha/plugins/FullPage/lang/ro.js b/xinha/plugins/FullPage/lang/ro.js index e83be24..540f0eb 100644 --- a/xinha/plugins/FullPage/lang/ro.js +++ b/xinha/plugins/FullPage/lang/ro.js @@ -1,17 +1,6 @@ // I18N for the FullPage plugin - // LANG: "en", ENCODING: UTF-8 // Author: Mihai Bazon, http://dynarch.com/mishoo - -// FOR TRANSLATORS: -// -// 1. PLEASE PUT YOUR CONTACT INFO IN THE ABOVE LINE -// (at least a valid email address) -// -// 2. PLEASE TRY TO USE UTF-8 FOR ENCODING; -// (if this is not possible, please include a comment -// that states what encoding is necessary.) - { "Alternate style-sheet:": "Template CSS alternativ:", "Background color:": "Culoare de fundal:", @@ -22,4 +11,4 @@ "OK": "Acceptă", "Primary style-sheet:": "Template CSS principal:", "Text color:": "Culoare text:" -} +}; diff --git a/xinha/plugins/FullPage/popups/docprop.html b/xinha/plugins/FullPage/popups/docprop.html index 4e8ae47..0756a32 100644 --- a/xinha/plugins/FullPage/popups/docprop.html +++ b/xinha/plugins/FullPage/popups/docprop.html @@ -44,7 +44,7 @@ function Init() { document.getElementById("f_title").focus(); document.getElementById("f_title").select(); -}; +} function onOK() { var required = { @@ -65,12 +65,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} - - + + -

Editor Help

- -Todo... + + + + +
Xinha Help
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Keyboard shortcuts
+ The editor provides the following key combinations: +
ENTERnew paragraph(<P>)
SHIFT-ENTERinsert linebreak(<BR>)
CTRL-ASelect all
CTRL-BBold
CTRL-IItalic
CTRL-UUnderline
CTRL-SStrikethrough
CTRL-LJustify Left
CTRL-EJustify Center
CTRL-RJustify Right
CTRL-JJustify Full
CTRL-ZUndoes your last action
CTRL-YRedoes your last action
CTRL-NSet format to paragraph
CTRL-0 (zero)Clean content pasted from Word
CTRL-1 .. CTRL-6Headings (<h1> .. <h6>)
CTRL-XCut selection
CTRL-CCopy selection
CTRL-VPaste from clipboard
+
+ +
\ No newline at end of file diff --git a/xinha/popups/insert_image.html b/xinha/popups/insert_image.html index ea19643..3043e43 100644 --- a/xinha/popups/insert_image.html +++ b/xinha/popups/insert_image.html @@ -13,7 +13,7 @@ window.resizeTo(400, 100); HTMLArea = window.opener.HTMLArea; function i18n(str) { return (HTMLArea._lc(str, 'HTMLArea')); -}; +} function Init() { __dlg_translate('HTMLArea'); @@ -32,7 +32,7 @@ function Init() { window.ipreview.location.replace(param.f_url); } document.getElementById("f_url").focus(); -}; +} function onOK() { var required = { @@ -57,12 +57,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} function onPreview() { var f_url = document.getElementById("f_url"); @@ -74,7 +74,7 @@ function onPreview() { } window.ipreview.location.replace(url); return false; -}; +} diff --git a/xinha/popups/insert_table.html b/xinha/popups/insert_table.html index 4332712..ef3c2f3 100644 --- a/xinha/popups/insert_table.html +++ b/xinha/popups/insert_table.html @@ -13,7 +13,7 @@ window.resizeTo(400, 100); HTMLArea = window.opener.HTMLArea; function i18n(str) { return (HTMLArea._lc(str, 'HTMLArea')); -}; +} function Init() { HTMLArea = window.opener.HTMLArea; // load the HTMLArea plugin and lang file @@ -25,7 +25,7 @@ function Init() { document.getElementById("f_align").selectedIndex = 1; document.getElementById("f_align").selectedIndex = 0; document.getElementById("f_rows").focus(); -}; +} function onOK() { var required = { @@ -50,12 +50,12 @@ function onOK() { } __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} diff --git a/xinha/popups/link.html b/xinha/popups/link.html index aba4651..6cd9340 100644 --- a/xinha/popups/link.html +++ b/xinha/popups/link.html @@ -12,7 +12,7 @@ HTMLArea = window.opener.HTMLArea; function i18n(str) { return (HTMLArea._lc(str, 'HTMLArea')); -}; +} function onTargetChanged() { var f = document.getElementById("f_other_target"); @@ -21,7 +21,7 @@ function onTargetChanged() { f.select(); f.focus(); } else f.style.visibility = "hidden"; -}; +} function Init() { __dlg_translate('HTMLArea'); @@ -63,7 +63,7 @@ function Init() { target_select.onchange = onTargetChanged; document.getElementById("f_href").focus(); document.getElementById("f_href").select(); -}; +} function onOK() { var required = { @@ -91,12 +91,12 @@ function onOK() { param.f_target = document.getElementById("f_other_target").value; __dlg_close(param); return false; -}; +} function onCancel() { __dlg_close(null); return false; -}; +} @@ -133,4 +133,4 @@ function onCancel() { - + \ No newline at end of file diff --git a/xinha/popups/popup.js b/xinha/popups/popup.js index 61db241..38e388c 100644 --- a/xinha/popups/popup.js +++ b/xinha/popups/popup.js @@ -20,7 +20,7 @@ function getAbsolutePos(el) { r.y += tmp.y; } return r; -}; +} function comboSelectValue(c, val) { var ops = c.getElementsByTagName("option"); @@ -29,11 +29,11 @@ function comboSelectValue(c, val) { op.selected = (op.value == val); } c.value = val; -}; +} function __dlg_onclose() { opener.Dialog._return(null); -}; +} function __dlg_init(bottom) { if(window.opener._editor_skin != "") { @@ -82,7 +82,7 @@ function __dlg_init(bottom) { window.moveTo(x, y); } HTMLArea.addDom0Event(document.body, 'keypress', __dlg_close_on_esc); -}; +} function __dlg_translate(context) { var types = ["input", "select", "legend", "span", "option", "td", "button", "div", "label"]; @@ -103,13 +103,13 @@ function __dlg_translate(context) { } } document.title = HTMLArea._lc(document.title, context); -}; +} // closes the dialog and passes the return info upper. function __dlg_close(val) { opener.Dialog._return(val); window.close(); -}; +} function __dlg_close_on_esc(ev) { ev || (ev = window.event); @@ -118,4 +118,4 @@ function __dlg_close_on_esc(ev) { return false; } return true; -}; +} \ No newline at end of file diff --git a/xinha/popupwin.js b/xinha/popupwin.js index da54500..562327c 100644 --- a/xinha/popupwin.js +++ b/xinha/popupwin.js @@ -54,9 +54,9 @@ function PopupWin(editor, title, handler, initFunction) { self.element = body; initFunction(self); dlg.focus(); - }; + } init2(); -}; +} PopupWin.prototype.callHandler = function() { var tags = ["input", "textarea", "select"]; @@ -137,4 +137,4 @@ PopupWin.prototype.showAtElement = function() { self.window.resizeTo(w + 8, h + 35); } }, 25); -}; +}; \ No newline at end of file diff --git a/xinha/skins/blue-look/skin.css b/xinha/skins/blue-look/skin.css index 565b8b1..9f22add 100644 --- a/xinha/skins/blue-look/skin.css +++ b/xinha/skins/blue-look/skin.css @@ -11,6 +11,7 @@ padding:2px; -moz-border-radius:3px; margin:4px; + height:25px; } .htmlarea .toolbar .button diff --git a/xinha/skins/blue-metallic/skin.css b/xinha/skins/blue-metallic/skin.css index d855b41..e798e47 100644 --- a/xinha/skins/blue-metallic/skin.css +++ b/xinha/skins/blue-metallic/skin.css @@ -10,12 +10,13 @@ padding:2px; -moz-border-radius:4px; margin:4px; + height:25px; } .htmlarea .toolbar .button { background-image: url(button-background.png); width:20px; - height:20px; + height:21px; padding:1px; border:0px; } @@ -33,7 +34,7 @@ background-image: url(separator.gif); border:1px #f7f8fd; width: 7px; - height: 20px; + height: 21px; padding: 0px; } diff --git a/xinha/skins/green-look/skin.css b/xinha/skins/green-look/skin.css index 3a5768d..bbbec28 100644 --- a/xinha/skins/green-look/skin.css +++ b/xinha/skins/green-look/skin.css @@ -10,6 +10,7 @@ padding:2px; -moz-border-radius:3px; margin:4px; + height:25px; } .htmlarea .toolbar .button { diff --git a/xinha/skins/inditreuse/skin.css b/xinha/skins/inditreuse/skin.css index acbd903..f7c77e6 100644 --- a/xinha/skins/inditreuse/skin.css +++ b/xinha/skins/inditreuse/skin.css @@ -7,6 +7,7 @@ margin-top:2px; margin-bottom:2px; background-image:url(button-background.png); + height:25px; } .htmlarea .toolbar .button { width:20px; diff --git a/xinha/skins/titan/skin.css b/xinha/skins/titan/skin.css index 610737c..cac3401 100644 --- a/xinha/skins/titan/skin.css +++ b/xinha/skins/titan/skin.css @@ -1,5 +1,5 @@ .htmlarea .toolbar { - background-color:#889fc9; + background-color:#889fc9; background-image:url(back.png); background-repeat:repeat-y; } @@ -7,15 +7,21 @@ margin-top:2px; margin-bottom:2px; background-image:url(button-background.png); + height:25px; } -.htmlarea .toolbar .toolbarRow .button{ +.htmlarea .toolbar .button { width:20px; height:20px; padding:1px; border:none; background-image:url(button-background.png); } -.htmlarea .toolbar .toolbarRow .separator { +.buttonImageContainer { + position:relative; + left:1px; + top:1px; +} +.htmlarea .toolbar .separator { margin:0; background-image: url(separator.png); width:7px; @@ -23,12 +29,12 @@ padding:1px; border:none; } -.htmlarea .toolbar .toolbarRow .buttonHover { +.htmlarea .toolbar a.button:hover { border:none !important; padding:1px; background-image:url(hover.png); } -.htmlarea .toolbar .toolbarRow .button.buttonPressed +.htmlarea .toolbar .button.buttonPressed { padding:1px; background-image:url(selected.png); diff --git a/xinha/skins/xp-blue/skin.css b/xinha/skins/xp-blue/skin.css index a8924c0..bd7b955 100644 --- a/xinha/skins/xp-blue/skin.css +++ b/xinha/skins/xp-blue/skin.css @@ -7,6 +7,7 @@ margin-top:2px; margin-bottom:2px; background-image:url(button-background.png); + height:25px; } .htmlarea .toolbar .button { width:20px; diff --git a/xinha/skins/xp-green/skin.css b/xinha/skins/xp-green/skin.css index f0d5e20..9e4733c 100644 --- a/xinha/skins/xp-green/skin.css +++ b/xinha/skins/xp-green/skin.css @@ -7,6 +7,7 @@ margin-top:2px; margin-bottom:2px; background-image:url(button-background.png); + height:25px; } .htmlarea .toolbar .button { width:20px;