Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/locallang.xml =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/locallang.xml (révision 8943) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/locallang.xml (copie de travail) @@ -14,6 +14,7 @@ + Index: typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/remove-format.js =================================================================== --- typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/remove-format.js (révision 8943) +++ typo3/sysext/rtehtmlarea/htmlarea/plugins/RemoveFormat/remove-format.js (copie de travail) @@ -119,7 +119,7 @@ xtype: 'fieldset', title: this.localize('Cleaning Area'), defaultType: 'radio', - labelWidth: 150, + labelWidth: 140, defaults: { labelSeparator: '' }, @@ -138,7 +138,7 @@ xtype: 'fieldset', defaultType: 'checkbox', title: this.localize('Cleaning options'), - labelWidth: 150, + labelWidth: 170, defaults: { labelSeparator: '' }, @@ -150,6 +150,9 @@ fieldLabel: this.localize('MS Word Formatting:'), checked: true },{ + itemId: 'typographical', + fieldLabel: this.localize('Typographical punctuation:'), + },{ itemId: 'spaces', fieldLabel: this.localize('Spaces') },{ @@ -178,6 +181,7 @@ 'allContent', 'formatting', 'msWordFormatting', + 'typographical', 'spaces', 'images', 'allHtml' @@ -186,7 +190,7 @@ Ext.each(fields, function (field) { params[field] = this.dialog.find('itemId', field)[0].getValue(); }, this); - if (params['allHtml'] || params['formatting'] || params['spaces'] || params['images'] || params['msWordFormatting']) { + if (params['allHtml'] || params['formatting'] || params['spaces'] || params['images'] || params['msWordFormatting'] || params['typographical']) { this.applyRequest(params); this.close(); } else { @@ -264,6 +268,32 @@ html = html.replace(/[\x20]+/gi, " "); } } + if (params['typographical']) { + // Remove typographical punctuation + // Search pattern stored here + var SrcCd; + // Replace horizontal ellipsis with three periods + SrcCd = String.fromCharCode(8230); + html = html.replace(new RegExp(SrcCd, 'g'), '...'); + // Replace en-dash and em-dash with hyphen + SrcCd = String.fromCharCode(8211) + '|' + String.fromCharCode(8212); + html = html.replace(new RegExp(SrcCd, 'g'), '-'); + html = html.replace(new RegExp(SrcCd, 'g'), "'"); + // Replace double low-9 / left double / right double quotation mark with double quote + SrcCd = String.fromCharCode(8222) + '|' + String.fromCharCode(8220) + '|' + String.fromCharCode(8221); + html = html.replace(new RegExp(SrcCd, 'g'), '"'); + // Replace left single / right single / single low-9 quotation mark with sigle quote + SrcCd = String.fromCharCode(8216) + '|' + String.fromCharCode(8217) + '|' + String.fromCharCode(8218); + html = html.replace(new RegExp(SrcCd, 'g'), "'"); + // Replace single left/right-pointing angle quotation mark with single quote + SrcCd = String.fromCharCode(8249) + '|' + String.fromCharCode(8250); + html = html.replace(new RegExp(SrcCd, 'g'), "'"); + // Replace left/right-pointing double angle quotation mark (left/right pointing guillemet) with double quote + SrcCd = String.fromCharCode(171) + '|' + String.fromCharCode(187); + html = html.replace(new RegExp(SrcCd, 'g'), '"'); + // Replace grave accent (spacing grave) and acute accent (spacing acute) with apostrophe (single quote) + SrcCd = String.fromCharCode(96) + '|' + String.fromCharCode(180); + } if (params['allContent']) { editor.setHTML(html); } else {