From: Benoît Pin Date: Sun, 7 Nov 2010 01:56:00 +0000 (+0100) Subject: import initial. X-Git-Url: https://scm.cri.mines-paristech.fr/git/Epoz.git/commitdiff_plain/b437454da49f169e76631511ebad10746dafdf8b import initial. --- b437454da49f169e76631511ebad10746dafdf8b diff --git a/.project b/.project new file mode 100644 index 0000000..39c412f --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + Epoz + + + + + + org.python.pydev.PyDevBuilder + + + + + com.ibm.sse.model.structuredbuilder + + + + + + org.trustudio.core.trustudio + org.python.pydev.pythonNature + + diff --git a/CHANGES.txt b/CHANGES.txt new file mode 100755 index 0000000..20b358e --- /dev/null +++ b/CHANGES.txt @@ -0,0 +1,213 @@ +Epoz - Changes + + 0.9.0 + + - Reorganized directory layout into core, i18n, images & plone. Please + note: You need to "reinstall" Epoz with Quickinstaller / External Method + when using Epoz in CMF/Plone. + + - Andy Dustman provided a patch for removing MS-Word-Garbage-tags. + Thanks Andy!!! + + - Documentation about Epoz for end-users is provided by Tom Purl (see + "EpozBook":http://zopewiki.org/EpozBook). Thanks Tom! + + - fixed bug: Plone-Toolbox didn't check permissions 'View' and + 'List folder contents' in breadcrumbs. Thanks to Cyrille Lebeaupin + from Ingeniweb for patch! + + - fixed bug: Image-Preview in Plone-Toolbox was broken in IE. + + - fixed bug: JavaScript in content-area could break Epoz... + Thanks to Christian Zagrodnick from gocept.com for patch! + + - cleaned up line-endings. No more need to write complicated + PERL/C++/ADA-Scripts to get rid of them... + + + 0.8.6 + + - fixed bug: Mozilla / Firefox leaves a single br-tag for + an empty form. Epoz will clean this mess now. + + - added a wysiwyg_support-switch so Epoz can coexist with + other wysiwyg-editors in Plone (esp. Kupu). Moved former + wysiwyg_support to epoz_wysiwyg_support. Thanks to + Duncan Booth for patch!!! + + - little cleanup to epoz_script_widget: refactored img-string + for spacer, so the code becomes more readable. + + - fixed bug in epoz_toolbox: CMFPhotos were only shown for preview, + but not for inserting as image. Thanks to Bjorn van der Meer + for patch!!! + + - updated russian translation; thanks to Michael Krishtopa! + + - added some new FAQs. + + + 0.8.5 + + - added keyboard shortcuts for Mozilla / Firefox which are already + supported by IE: CTRL + b for bold, CTRL + i for italics, CTRL + u + for underlined, CTRL + k for create link. + + - added a HowTo for easier setup of mxTidy to get valid XHTML from Epoz + (see mxTidyHowTo.txt). + + - fixed bug: made width/height-settings for Epoz working + with Archetypes. Thanks to Christian Theune from Gocept for patch! + + - fixed bug: corrected the slashing of folders in Epoz-toolbox + for Plone (http://plone.org/collector/3479) + + + 0.8.4 + + - fixed bug: toolbox didn't start from the correct location if the + portal_factory was activated. + + - fixed bug: wysiwyg support in Plone could be broken, because + URL3 in wysiwyg_support isn't available under all circumstances. + I forgot that the damn test()-method evaluates all expressions + always, regardless of the condition... Thanks to Simon Pamies + for patch! + + - updated browser-detection-javascript to Browser Detect v2.1.6. + + - some whitespace-cleanups thanks to AnyEdit for Eclipse. + + 0.8.3 + + - added a FAQ. Pleae read it before asking questions... + + - added label for html-source-switch, because many people asked for + it. Hope this helps clearing up the meaning of the little checkbox + below the wysiwyg-area... + + - added translations for tidy-messages in the browser-status-bar to + en & de. Please note: Don't use any entities if you want to translate, + because the browser-status-bar doesn't support entities! + + - Fixed bug: missing form_path in epoz_script_widget caused problems + when using portal_factory in Plone. Thanks to Danny Bloemendaal (for + detecting the problem) and Geoff Davis for patch! Added a check to + wysiwyg_support to detect document-creation via portal_factory. + + - Fixed bug: the Epoz-Iframe in epoz_script_widget wasn't loaded via + an absolute url, so browsers could complain when running Epoz via https. + + 0.8.2 + + - Updated license to Zope Public License 2.1. + + - Danny Bloemendaal provided a cleaned up toolbox for use in Plone 2. + Thank you, Danny! + + - Added "Photo" (CMFPhoto) as selectable image-type to the toolbox. + Thanks to Shane Graber for patch! + + - set wordwrap for mxTidy/uTidy to 79 character to avoid some problems + with splitted a-href-tags. + + - fixed bug: making relative urls for images was broken in EpozPostTidy + for people who have no mxTidy / uTidylib installed. + + - fixed bug: removed .strip() from data-handler in Extensions/EpozPostTidy.py, + so required whitespace isn't killed; added a "useless-whitespace"-cleanup + to EpozPostTidy. + + 0.8.1 + + - Now the setup for getting relative urls from Epoz is much more easier: + There's a default EpozPostTidy.py in Epoz/Extensions which can be + used out of the box. + Simply create an External-Method in the root of the ZMI or your Plone-Site with + id=EpozPostTidy, Module-Name=Epoz.EpozPostTidy, Function-Name=EpozPostTidy. + + - added a customcss-parameter (esp. for use in Plone) to render customized + css-styles in difference to a global css correctly. + + - fixed bug: the XMLRPC for tidying etc. is now independent of your + Zope-Server-Root, so the EpozPostTidy-Hook can be created in + your Plone-Instance without a VHM-Setup anymore. + + - fixed bug: canceling "Add anchor" resulted in emtpy tag. Thanks to + Simon Pamies for patch!!! + + - fixed bug: IE complained about security when Epoz was called via + https. Thanks to Sam Brauer and Andrew Athan for patches! + + - fixed bug: -tag was replaced by in Mozilla. Thanks + to Christian Ledermann. + + - fixed bug in epoz_script_main.js.dtml/InitEpoz: IE 5.0 isn't + wysiwyg-able and therefore needs to fall back to a textarea. Thanks + to Marc Zacher! + + - updated epoz_lang_pt-br. Thanks to Luiz Fernando Pasqual S. Souza! + + - updated epoz_lang_zh-cn. Thanks to panjunyong! + + - updated epoz_lang_no.js.dtml. Thanks to Einar Jensen! + + + 0.8.0 + + - added support for uTidylib (http://utidylib.sourceforge.net/); + Thanks to Shane Hathaway from Zope Corporation for his + patches!!! Please note: there are still some problems with UTF8; + maybe someone can provide a patch? + + - rearranged the Javascript so that it's not necessary to + "auto"-switch to source mode when saving. Thanks + again to Shane Hathaway from Zope Corporation for his patches!!! + + - added pageurl-parameter to Epoz; pageurl defines the base + url of the edited page. The pageurl is forwarded to Epoz(Post)Tidy, + so you can rewrite urls according to the given base url. + **PLEASE NOTE:** You must add an additional parameter + if you use EpozPostTidy-Hooks in your applications. + + - added support for adding anchors; works very nice with Mozilla, IE + doesn't show the css-styles. IE is crap anyway... + Thanks to Christian Theune from Gocept for his patches!!! + + - added global support (EpozGetRelativeUrl) for calculating relative urls + from absolute urls; Thanks to Gilles Lenfant for this feature! Please + see README.txt for how to enable this feature. + + - added simple example for EpozPostTidy-Hook to README.txt. + + - added danish-translation; thanks to Nikolay Kim!!! + + - fixed bug: IE couldn't handle anchors; added base-tag to + epoz_blank_iframe.html. Thanks to Stefanie Panke pointing + me to this problem. + + - changed default height of the edit form in Plone to be a more + sensible 450px (limi). + + - removed annoying pop-up saying "Your browser does not support + XML-RPC" from the JS. If it doesn't, we degrade anyway - no reason + to insult the user. ;) (limi) + + - fixed epoz_toolbox to use 'sanctioned' calls for meta_types. Thanks + to Marc Lindahl for patch!!! + + - wysiwyg_support was causing a wierd error when used + inside CMFBoard sometimes (Attribute Error: meta_type). Traced it to + test of text_format. test() evaluates both true and false branches. + Restructured it to fix the problem. Thanks to Marc Lindahl for patch!!! + + - fixed tabindex for Plone (limi) + + - added class="visualFontSizeCorrection" to body-tag of + epoz_blank_iframe.html; mostly needed for displaying correct font-sizes + for the wysiywg-area in Plone 2.0. Please note: To use this with + older Plones, add visualFontSizeCorrection { font-size: 75%; } + to your ploneCustom.css (limi) + + - synced default wysiwyg_support with Plone 2.0. + diff --git a/Extensions/EpozPostTidy.py b/Extensions/EpozPostTidy.py new file mode 100755 index 0000000..7fde6b1 --- /dev/null +++ b/Extensions/EpozPostTidy.py @@ -0,0 +1,82 @@ +### +# EpozPostTidy.py +# +# This is just an example for transforming +# absolute urls to relative urls with Epoz. +# +# Use it at your own risk or improve it! +### + +from HTMLParser import HTMLParser +import re + +# These tags will get a newline after the closing tag +blocktags = ['p', 'pre', 'div', + 'table', 'tr', 'th', 'td', 'thead', 'tbody', 'tfoot', + 'ul','ol','li', + 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'] + +# Just a simple htmlparser +class aHTMLParser(HTMLParser): + res = "" + + def handle_starttag(self, tag, attrs): + attributes="" + for (key,value) in attrs: + # Internal Link? + if (tag=="a" and key=="href") or (tag=="img" and key=="src"): + value = self.getRelativeUrl(self.pageurl, value) + attributes += ' %s="%s"' % (key,value) + self.res += "<%s%s>" % (tag, attributes) + + def handle_endtag(self, tag): + self.res += "" % (tag,) + # Some pretty-nice-printing for block-elements + if tag in blocktags: + self.res += "\n" + + def handle_startendtag(self, tag, attrs): + attributes="" + for (key,value) in attrs: + # Image? + if tag=="img" and key=="src": + value = self.getRelativeUrl(self.pageurl, value) + attributes += ' %s="%s"' % (key,value) + self.res += "<%s%s />" % (tag, attributes) + + def handle_data(self, data): + self.res += data + + def handle_charref(self, data): + self.res += "&%s;" % data + + def handle_entityref(self, data): + self.res += "&%s;" % data + + def handle_comment(self, data): + self.res += "" + + +def EpozPostTidy(self, html, pageurl): + + # Create a parser + parser = aHTMLParser() + + # Give the parser the global method for relative urls + parser.getRelativeUrl = self.EpozGetRelativeUrl + + # Submit the pageurl as base-url for calculating urls + parser.pageurl = pageurl + + # And now lets turn the wheels + parser.feed(html) + parser.close() + + # Get & return postprocessed html from parser + html = parser.res + + # Just some cleanups to remove useless whitespace + html = re.sub("[ ]+"," ",html) + html = re.sub("[\n]+","\n", html) + + return html diff --git a/Extensions/Install.py b/Extensions/Install.py new file mode 100755 index 0000000..353ff62 --- /dev/null +++ b/Extensions/Install.py @@ -0,0 +1,54 @@ +### +# Epoz-Installer-Script for CMF/Plone +# Taken and adapted from CMFVisualEditor +### + +from Products.Epoz import cmfepoz_globals +from StringIO import StringIO +from Products.CMFCore.utils import getToolByName +from Products.CMFCore.DirectoryView import addDirectoryViews + +_globals = globals() + +def install_plone(self, out): + """ add Epoz to 'my preferences' """ + portal_props=getToolByName(self,'portal_properties') + site_props=getattr(portal_props,'site_properties', None) + attrname='available_editors' + if site_props is not None: + editors=list(site_props.getProperty(attrname)) + if 'Epoz' not in editors: + editors.append('Epoz') + site_props._updateProperty(attrname, editors) + print >>out, "Added 'Epoz' to available editors in Plone." + +def install_subskin(self, out, skin_name, globals=cmfepoz_globals): + skinstool=getToolByName(self, 'portal_skins') + if skin_name not in skinstool.objectIds(): + addDirectoryViews(skinstool, 'epoz', globals) + + for skinName in skinstool.getSkinSelections(): + path = skinstool.getSkinPath(skinName) + path = [i.strip() for i in path.split(',')] + try: + if skin_name not in path: + path.insert(path.index('custom') +1, skin_name) + except ValueError: + if skin_name not in path: + path.append(skin_name) + + path = ','.join(path) + skinstool.addSkinSelection(skinName, path) + +def install(self): + out = StringIO() + print >>out, "Installing Epoz" + install_subskin(self, out, 'epoz_core') + install_subskin(self, out, 'epoz_i18n') + install_subskin(self, out, 'epoz_images') + install_subskin(self, out, 'epoz_plone') + install_plone(self, out) + + print >>out, "Done." + + return out.getvalue() diff --git a/Extensions/__init__.py b/Extensions/__init__.py new file mode 100755 index 0000000..83c1312 --- /dev/null +++ b/Extensions/__init__.py @@ -0,0 +1 @@ +# This is needed for import. diff --git a/FAQ.txt b/FAQ.txt new file mode 100755 index 0000000..9124277 --- /dev/null +++ b/FAQ.txt @@ -0,0 +1,71 @@ +Epoz-FAQ + + - What does Epoz mean? + + Nothing special. Don't break your mind! Sounds nice and is simply + Zope turned around. Long history for that one... + + + - Will Epoz be maintained in the future? I've heard of Kupu... + + Yes, it will. The Kupu-project (formerly know as Epoz 1.X) + will not replace Epoz 0.x in any of my applications, because + I need a "simple, but rock-stable solution". I'll maintain, support + and develop Epoz therefore in the future. + + + - Does Epoz work with Opera, Konqueror, Safari, Mac-IE, ...? + + No! No chance to make it work. Epoz uses a rich-text-feature + which is only supported by IE >=5.5 and Mozilla >= 1.3 (or other + recent Gecko-based browsers). But there are rumors that Opera + and Safari will implement a rich-text-engine in upcoming + releases. We'll see... + + + - Can I use several Epoz-Widgets in one page (e.g. for Archetypes)? + + No, you can't and I have no idea how to make this work. If someone can + provide a patch (several people tried hard, but found no solution), + I'm fine and you will get famous, if not, that's the end of the story. + + + - How can I get relative URLs from Epoz? + + Install the shipped EpozPostTidy-Hook. Create an External Method + as described in the README.txt to make it work. Very simple. + + + - Why doesn't Epoz support different fonts or sizes? + + Simple answer: because I don't like crazy people playing with fonts and + different font-sizes. All fonts or sizes should be set in stylesheets + and not in the content. If you want this feature, please do it yourself. + + + - How can I get valid XHTML from Epoz? + + Simply install mxTidy (http://www.lemburg.com/files/python/mxTidy.html) + and restart your server. Please see the mxTidyHowTo.txt provided with + Epoz if you have problems installing mxTidy. Please note: I do NOT + support mxTidy-problems! + + + - How can I edit ZPT, DTML or JavaScript with Epoz? + + Simple answer: you can't!!! Epoz is a HTML-wysiwyg-**content**-editor, + just a simple replacement for (Re)StructuredText for the average user. + You CAN'T (!!!) edit any JavaScript, DTML, ZPT, PHP, ASP, JSP, PSP, + CSP, ABC, XYZ, AWK, Python, Forth, Assembler, AmigaBasic, + Half-Life-Mod or your haircut with Epoz... it's sad, but I have no + time to work on these features...;) + + + - How can I change the background-color of the Epoz-Wysiwyg-Area in Plone? + + Epoz uses the Plone-CSS for rendering the wyswyg-area. In some cases + this might be a problem, so you want to specify another background-color + for editing content. Simply add a customized css-definition to your + ploneCustom.css:: + + .visualFontSizeCorrection {font-size: 75%; background-color: #e0e0e0;} diff --git a/HISTORY.txt b/HISTORY.txt new file mode 100755 index 0000000..d18806b --- /dev/null +++ b/HISTORY.txt @@ -0,0 +1,378 @@ +Epoz - History + + 0.7.5 + + - updated to Plone 2.0 format in preparation of the release (limi). + + - added portugese-translation; Thanks to Nuno Teixeira!!! + + - added chinese-translation; Thanks to panjunyong!!! + + 0.7.4 + + - fixed bug: Catched all errors for XMLRPC-call, so + content is secured if something fails between + client and server. + + - Changed char_encoding for mxTidy from raw to utf8 + to avoid problems with   + + 0.7.3 + + - changed all default-encodings to utf-8; sorry, + I've had a broken installation of mxTidy so I thought + utf-8 didn't work well with mxTidy and released 0.7.2 + to early... removed charset-arg from EpozTidy. + + 0.7.2 + + - changed toolbox-icon into a folder; link-icon and + toolbox-icon were to similar before. + + - added remove-format-button; this can be useful if you want + to remove several text-formats at once. Maybe someone can + provide a better icon? Please note: IE is a little bit + smarter than Mozilla. IE removes colors as well... + + - made some css-fixes for using Epoz with tableless layout + in Plone 2: + + - removed nowrap-style around epoz_toolbox; + + - changed toolbox-width in wysiwyg_support from + absolute px to relative percentage, so Epoz won't + break the layout anymore; + + - made widget xhtml-compatible. + + Please note: Epoz uses the Plone-CSS to render the content. + The Plone-CSS doesn't allow other alignments then left-aligned + for paragraphs and so clicking on the Epoz-alignment-buttons + shows no effect in Plone. Please don't mail me about this... + fix the Plone-CSS (remove 'text-align: left;' from + p-defintion in plone.css). + + - removed break_before_br in EpozTidy to keep pre-formatted + text in order. + + - fixed bug: Stefanie Panke noticed encoding problems + when using the Euro-Sign. Switched all default + encodings from ISO-8859-1 to more universal windows-1252. + Thanks, Stefanie! + + - fixed bug: Casey Duncan from Zope Corporation tracked + down a subtle bug in the product initialisation process + of Epoz. Short story: Registering a product and a method + with the same name (Epoz) can cause conflicts under some + circumstances (esp. running test-suites in Zope 2.7 etc.). + Now Epoz is marked as __replaceable__. Thanks, Casey!!! + + - fixed bug: removed hardcoded protocol (http:) in + XMLRPC-call; Epoz over https: should now work again. + Thanks to Gabriel Wicke for his complaints! + + 0.7.1 + + - fixed critical bug: Mozilla truncated contents to + 4096 bytes received from EpozTidy over XMLRPC + due to a bug in the string-code of the vcXMLRPC-library. + + - fixed critical bug: if mxTidy found errors in html, + an empty document was returned to Epoz. JavaScript-alert + informs the user about critical errors in document. + + - added a paragraph in the README.txt explaining the + relation of Epoz 0.x to Epoz 1.x. Thanks to + Gregor Hoffleit! + + - updated french tranlsation; Thanks to Jean Laroque!!! + + 0.7.0 + + - added support for mxTidy to produce nice and valid xhtml-code. + + - added site-hook EpozPostTidy, so you can change the output of Epoz + with an additional script / external method. Useful if you want + to clean up or rewrite (absolute) links etc.pp. + + - added missing language support for Plone. + + - fixed breadcrumb-bug in Plone-Toolbox. + + - updated sample code for edit-method; now a File-Object is used + as default, because, no, really no, Epoz can't edit any DTML-tags... + + - updated hungarian translation. thanks to Tamas Decsi. + + 0.6.1 + + - Fixed bug: The css-skin-parameter in wysiwyg_support.pt wasn't + url quoted, so skin-names with spaces weren't called correctly. + + 0.6.0 + + - Epoz renders now the wysiwyg-textarea with your given + css-styles. This gives you a more realistic feeling about + the look of your work (esp. in Plone). Many kudos to + Ariel Sebbag for the solution to a real problem!!! + + - Fixed issue for from time to time disabled wysiwyg-areas on + Mozilla. Removed EpozTimeOut by a try-catch-poll in order + to get Mozilla working in wysiwyg-mode. Many thanks to + Guido Wesdorp for this idea!!! + + - Improved Table-Popup: Now you can insert tables + with or without heads. + + - Added nowrap-style around Epoz-Toolbar so buttons + won't break onto two lines. + + - Added finish translation. Thanks to Petri Savolainen! + + + 0.5.2 + + - Added strikethrough-button. Now you can use Epoz to correct + websites online if you are a teacher...;) + + - Added nice workaround for all people who want cleaner + html-code from Epoz: switching the views (wysiwyg, source) + automatically before submitting the form will give you + browser-cleaned-up-code (Mozilla does a nice job, IE is crap + anyway). + + - Added hungarian-translation. Thanks to Tamas Decsi and + Gabor Suveg! + + - Fixed bug in epoz_toolbox. The default_charset was broken. + Thanks to Marian Saeger for the patch! + + - Fixed a minor bug in the Plone-Toolbox: Images with single + quotes in the title weren't opened in the popup. Thanks to + Tony Addyman. + + - Added a dummy blank page. IE breaks over SSL if no source + is given in the inline frame. Thanks to Brian Brinegar for + his patches! + + - Sanitized the Epoz-init-string in __init__.py with dictionary. + Thanks to Philipp von Weitershausen for his patch! + + - Improved i18n-layer. Untranslated strings will now fall + back to default-english. Thanks to Sergey Volobuev for his + help and patches! + + - fixed typo in the example in the README.txt. + Thanks to Luiz Fernando. + + + 0.5.1 + + - fixed bug with different format-tags for IE + and Mozilla. Mozilla couldn't "unbold" text which + was created with IE. + + Mozilla now inserts no more style-tags + for simple formats like bold and italics. Additionaly + IE's EM- and STRONG-tags will be converted to Mozilla's + I- and B-tags, which works perfectly with both browsers + rich-text-controls. + + - introduced EpozTimeOut; if you encounter problems with + Mozilla on MacOS / etc.pp. (you can't see a cursor + in the wysiwyg-area or edit anything) adjust this variable. + + - added norwegian-language-file. Thanks to Einar Naess Jensen! + + + 0.5.0 + + - added source-view-switch. Now you can view / edit + the html-source by clicking on the little checkbox + below the editor. If you use a customized + widget-template, please diff it to the current one + before upgrading. + + - added search-feature to Plone-Toolbox. Now you can + search for contents via SearchableText. + + - added a frameborder="0" to iframe, so IE doesn't + render an additional border anymore. + + - added French translation; Thanks to Jean Laroque & + Yannick Dirou! + + - switched license to Zope Public License (ZPL 2.0). + This should give you more freedom in integrating + Epoz into your own commercial applications / services. + + + 0.4.1 + + - fixed bug in wysiwyg_support.pt for Plone 1.0.1. No more dependency + on global 'member' which was introduced after 1.0.1. + + - added missing translations for Spanish. Thanks to Pedro J. Rey Sanchiz! + + - added Polnish translation; Thanks to Jakub Kasprzycki! + + - added Dutch translation; Thanks to Ad Schellevis! + + + 0.4.0 + + - redesigned buttons with CSS; now you can have a real + customizable Plone/or/something/else-look&feel...:) + Please note: I had to make some minor changes to the Epoz-API, + so diff your customized templates against the current + ones before upgrading. + Thanks to Vidar Andersen from BlackTar.com for providing the + icons! I had to convert Vidar's icons to GIFs, because IE + doesn't handle PNGs with transparent background + very well. + + - fixed bug in wysiwyg_support: no more error when wysiwyg + is not set. + + - added language-file for italian; thanks to Nicola Bertellini + + - added language-file for russian; thanks to Sergey V. Volobuev! + + - added missing translations to pt-BR; + thanks to Luiz Fernando Pasqual S. Souza! + + + 0.3.0 + + - added a default-toolbox for Plone. Now you can insert links & images + by simply navigating through your site... could be a killer-feature + for Epoz & Plone. + + - fixed installer: Epoz will not be added more than once to the + available editor-list in Plone. + + - minor fix: corrected alt-attributes for sub/superscript-button. + + + 0.2.3 + + - fixed bug: backslashes weren't quoted, so Epoz did eat them + up. Thanks to Michael Bickel. (Note: Please update your + PythonScript if you use Epoz on a shared server like + freezope.org.) + + - fixed bug: Epoz didn't work when Zope was served via CGI, corrected + the path to Epoz-scripts with BASE1. Thanks to Ralf Kraudelt. + + - minor clean/speed-up for select-format. Thanks to Puna Tannehill. + + + 0.2.2 + + - added buttons for sub- and superscript to Epoz. + + - added a widget-parameter, so you can specify your own-js-widget + for Epoz; take epoz_script_widget.js as starting-point. + + - changed timeout from 10 to 100 for Mozilla getting the midas-controls. + This should fix some sync-issues with Mozilla. + + - made widget-rendering faster by removing expensive document.writeln + for each row; added a break after tag-selection-box, so + Epoz won't need so much horizontal space. + + - added translation for background-color to pt-br. + Thanks to Luiz Fernando. + + + 0.2.1 + + - Tables are now inserted at the current selection. + + - added a focus-on-load for table- and colorselector, so an + already openend tool is brought into front when already opened. + Thanks to Puna Tannehill. + + - reworked code; the Epoz-Editor is only fetched once by getElementbyId, + so this should speed up Epoz on slow machines; Thanks to Puna Tannehill. + + - removed focus (and bottom-scrolling on IE) for initialization + of document; Thanks to Puna Tannehill. + + - fixed bug: IE on MacOS was recognized as rich-text-editor, + which it is not; Bill G., maybe you can sync your IE's on + all platforms? Thanks to Martin Huntley. + + - fixed bug: Gecko-Browsers without Midas will now display a + textarea instead of breaking. + + - corrected language-code for Portuguese/Brasil (pt-br). + + + 0.2 + + - integrated Epoz as Wysiwyg-Editor into Plone. + Added install-script for Plone. Moved files to skin/epoz and prefixed + them with 'epoz_*'. + + - seperated JavaScripts for browser-detection, widget-drawing, etc. + + - removed hard-wired-dependency on SubmitEpoz for submit-buttons. You + can/must use your own submit-button now! Please correct your forms + (simply add a submit-button). Removed submit from parameter-list. + + - removed useless table around Epoz-Box. + + + 0.1.2 + + - reworked table-selection as popup-window. + + - reworked color-selector as popup-window. The former + iframe-implementation was broken in Plone. + + - added a background-color-selection. + + - cleaned up the JavaScript-code a bit. + + - added a portugese(brasilian)-language-file. Thanks to Luiz + Fernando Pasqual S. Souza! + + - added spanish-language-file. Thanks to Pedro J. Rey Sanchiz! + + - html-quoted non-ascii-chars in language-files. + InternetExplorer can crash when Unicode is set as character + set, but latin-coded "umlaute" appear in JavaScript. + + - made the submit-button optional (pass a empty + submit-paramter). This will make it easier to integrate Epoz + into your own form-layout. Please be sure to call + onclick="SubmitEpoz();" for your customized submitt-button. + Thanks to Volker Bachschneider! + + + 0.1.1 + + - removed dependency on hard-wired paths to scripts/images; Epoz can now + be used more easily standalone + + - added a description on how to turn Epoz into a + standalone-Zope-Web-Application which can be installed on shared + servers with no filesystem access (e.g. freezope.org) + + - added newlines to CreateTable (results in more readable table-source) + + - added a convenient catch for calling Epoz when data is None; + thanks to Joachim Schmitz! + + - fixed broken style-parameter + + - fixed a spelling-typo in www/de.js + + - fixed some minor misunderstandings in the README.txt; corrected + sample-edit-method (no more empty action, method should be post) + + + 0.1 + + - inital release diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100755 index 0000000..7c69cb1 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,51 @@ +Epoz - Copyright (C) 2004 Maik Jablonski (maik.jablonski@uni-bielefeld.de) +All Rights Reserved. + +This software is subject to the provisions of the Zope Public License, +Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +FOR A PARTICULAR PURPOSE. + + +Zope Public License (ZPL) Version 2.1 + +A copyright notice accompanies this license document that identifies the +copyright holders. + +This license has been certified as open source. It has also been designated as +GPL compatible by the Free Software Foundation (FSF). + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions in source code must retain the accompanying copyright + notice, this list of conditions, and the following disclaimer. + 2. Redistributions in binary form must reproduce the accompanying copyright + notice, this list of conditions, and the following disclaimer in the + documentation and/or other materials provided with the distribution. + 3. Names of the copyright holders must not be used to endorse or promote + products derived from this software without prior written permission from + the copyright holders. + 4. The right to distribute this software or to use it for any purpose does + not give you the right to use Servicemarks (sm) or Trademarks (tm) of + the copyright holders. Use of them is covered by separate agreement with + the copyright holders. + 5. If any files are modified, you must cause the modified files to carry + prominent notices stating that you changed the files and the date of any + change. + +Disclaimer + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY EXPRESSED +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE +OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + diff --git a/README.txt b/README.txt new file mode 100755 index 0000000..5d8d853 --- /dev/null +++ b/README.txt @@ -0,0 +1,156 @@ +Epoz - a cross-browser-wysiwyg-editor for Zope + + Epoz allows you to edit Zope-objects with a wysiwyg-editor. No + plugins are required. You only have to use a recent browser (IE >= + 5.5, Mozilla >= 1.3.1, Netscape >= 7.1, Firebird >= 0.7) that + supports Rich-Text-controls (called Midas for Mozilla). + + Please read the CHANGES.txt before upgrading Epoz. + + To use Epoz, simply install it into your Products-directory of your + Zope-Server and restart the server. If you want to get nice + formatted and xhtml-compatible html-code from Epoz, you should also + install "mxTidy":http://www.lemburg.com/files/python/mxTidy.html or + "uTidylib":http://utidylib.sourceforge.net on your server. + + Documentation about Epoz for end-users is provided by Tom Purl (see + "EpozBook":http://zopewiki.org/EpozBook). Thanks Tom! + + Epoz talks over XMLRPC to the Zope-Server to clean up the html-code. + After the processing of mxTidy, Epoz tries to call an additional hook + (EpozPostTidy) which can do postprocessings on the html-source. + + If you want to use the EpozPostTidy-Hook for getting relative urls from + Epoz out of the box, create an External Method in the root of the ZMI or + your Plone-Site with id=EpozPostTidy, Module Name=Epoz.EpozPostTidy, + Function Name=EpozPostTidy. + + If you want to use the EpozPostTidy-Hook for customized tasks, please + have a look at Epoz/Extensions/EpozPostTidy.py on how to build an + EpozPostTidy-hook. To use the EpozPostTidy-Hook for your + own applications, create an external method or a python-script with + id=EpozPostTidy in the root of your site, which expects three parameters + 'self' (=server context), 'html' (=only htmlbody) and 'pageurl' (=the "real" base + url of current page, use it to traverse the object, rewrite urls, etc.). + It should return a new html-body. + + If you want to use Epoz with Plone use the CMFQuickInstaller or + create an External Method with id=Install in your Plone-Site. + Then edit the newly created External Method, set + Module Name = Epoz.Install, Function Name = install and + click on 'Test'. Now you can select Epoz as default editor in "your + preferences" of the Plone-Site. You can customize the widget + (uncomment elements you don't want to see) through customization + of portal_skins/epoz/epoz_script_widget.js. Epoz is shipped with a + default toolbox for Plone (icon with folder on it). You can insert links + (please highlight text before inserting a link) and images by + searching / navigating through your site and simply click + "Insert Link/Image". + + If you want to use Epoz with native Zope applications, you have to + create a customized edit-script. Because there is no unique + interface for editing Zope-Objects, I did not include a + "manage_edit_all"-script for Epoz. You have to create it yourself!!! + To start working with Epoz, simply create a DTML-Method with + id=edit:: + + + + + + +

View Document

+ +
+ + + + + + + Then create an empty File with id=test and point your + browser to http://yourServer/test/edit. That's all...:) Please note: + Epoz is a pure HTML-editor and can't edit any ZPT-or-DTML-Tags! + + To create an Epoz-Rich-Text-Editor from your own + Products/Scripts/Methods/ZPT, you have to call it with one fixed and several + optional paramters:: + + Epoz(self, name, data='', toolbox='', lang='en', + path='', widget='', + style='width: 600px; height: 250px; border: 1px solid #000000;', + button='background-color: #EFEFEF; border: 1px solid #A0A0A0; cursor: pointer; margin-right: 1px; margin-bottom: 1px;', + css='', customcss='', charset='utf-8', pageurl=''): + """ Create an Epoz-Wysiwyg-Editor. + + name : the name of the form-element which submits the data + data : the data to edit + toolbox : a link to a HTML-Page which delivers additional tools + lang: a code for the language-file (en,de,...) + path : path to Epoz-Javascript. Needed mainly for Plone (portal_url). + widget: You can specify a path to an alternative JavaScript for + epoz_script_widget.js + style : style-definition for the editor-area + button : style-definiton for buttons + css : url to a global css which should be used for rendering + content in editor-area + customcss : url to a customized css which should be used for rendering + content in editor-area + charset : charset which is edited in the editor-area + pageurl: the base-url for the edited page + + If Epoz can't create a Rich-Text-Editor, a simple textarea is created. + """ + + Epoz is shipped with a very nice additional feature. Besides the + rich-text-controls you can set up a customized toolbox. This is + simply an URL which provides a popup-window with special functions. + To get the idea, create a DTML-Method with id=toolbox in your Zope-Root + and enter something like:: + + + Epoz-Toolbox + + +

Images

+ + + <dtml-var title_or_id> + + +
+ +

Links

+ + + + + + + + + Now you can click onto the little icon with the folder on it and get a + popup, which provides images (simply click) and links (select text in + Epoz-window, then click onto link). + + If you want to translate Epoz into your own language, have a look at + skins/epoz_lang_en.js.dtml. It would be nice if you want to share + your translation with me. + + I hope you'll enjoy Epoz. For me Epoz is the missing link to Zope. + If you consider using Epoz, please write me a short mail about your + use-case. + + Bug-reports & patches are welcome. Please send them to: + maik.jablonski@uni-bielefeld.de diff --git a/TODO.txt b/TODO.txt new file mode 100755 index 0000000..a532037 --- /dev/null +++ b/TODO.txt @@ -0,0 +1,3 @@ +Fix bugs... + +- Unicode doesn't work propertly for uTidylib. Someone an idea? diff --git a/__init__.py b/__init__.py new file mode 100755 index 0000000..dcb18dd --- /dev/null +++ b/__init__.py @@ -0,0 +1,347 @@ +##### +### Epoz - a cross-browser-wysiwyg-editor for Zope +## Copyright (C) 2005 Maik Jablonski (maik.jablonski@uni-bielefeld.de) +# +# All Rights Reserved. +# +# This software is subject to the provisions of the Zope Public License, +# Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. +# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED +# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +## WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS +### FOR A PARTICULAR PURPOSE. +#### + +import re +import urlparse +import cgi + +# try to import mxTidy as default +try: + from mx import Tidy + mxTidyIsAvailable = 1 +except: + mxTidyIsAvailable = 0 + +# try to import uTidylib as fallback +try: + import tidy + uTidyIsAvailable = 1 +except ImportError: + uTidyIsAvailable = 0 + +import Globals +from Products.PageTemplates.PageTemplateFile import PageTemplateFile +from App.ImageFile import ImageFile + +# Regexp for snipping the body of a document +HTML_BODY = re.compile(']*?>(.*)]*?>', re.DOTALL|re.IGNORECASE) +MSO_CLASS = re.compile(r'<(\w+)\W+(class="Mso.*?")>', re.IGNORECASE) +EPOZ_SCRIPT = re.compile(r'', '') + + # Quote newlines and single quotes, so the Epoz-JavaScript won't break. + # Needs to be a list and no dictionary, cause we need order!!! + + quotes = (("\\","\\\\"), ("\n","\\n"), ("\r","\\r"), ("'","\\'")) + + for item in quotes: + js_data = js_data.replace(item[0], item[1]) + + # Determine the correct path for VirtualHostMonsters & PCGI & etc.pp. + if not path: + path = "%s/misc_/Epoz/" % (self.REQUEST.get('BASEPATH1',''),) + + if not pageurl: + pageurl = self.REQUEST.get('URL1','') + + if lang == 'auto' : + i18n='' % {'path' : path, 'charset' : charset} + else : + i18n='' % (path,) + if lang<>'en': + i18n += '' % (path, lang) + + if not widget: + widget = "%sepoz_script_widget.js" % path + + # This is just a dummy page for test-iframe + # to prevent IE complaining when using Epoz via https + iframesrc = pageurl+'/epoz_blank_iframe.html' + + # Return the HTML-Code for the Epoz-Rich-Text-Editor + return """ +%(i18n)s + + + + + + + +""" % { + 'i18n': i18n, + 'widget': widget, + 'path': path, + 'name': name, + 'js_data': js_data, + 'toolbox': toolbox, + 'style': style, + 'button': button, + 'css': css, + 'customcss': customcss, + 'charset': charset, + 'data': data, + 'pageurl': pageurl, + 'iframesrc': iframesrc + } + + + +def EpozTidy(self, html, pageurl): + """ Take html and deliver xhtml if mxTidy is installed; + call EpozPostTidy for html-postprocessings before returning the result + """ + + errors = 0 + output = html + errordata = "" + + input = html.encode("utf-8") + input = EPOZ_SCRIPT.sub('') + + if mxTidyIsAvailable: + (errors, warnings, output, errordata) = Tidy.tidy( + input, drop_empty_paras=1, indent_spaces=1, indent="auto", + output_xhtml=1, word_2000=1, wrap=79, char_encoding="utf8") + if errors: + output = html + elif uTidyIsAvailable: + parsed = tidy.parseString( + input, drop_empty_paras=1, indent_spaces=1, indent="auto", + output_xhtml=1, word_2000=1, wrap=79, char_encoding="utf8", + add_xml_decl=0, doctype="omit", indent_attributes=1, + drop_proprietary_attributes=1, bare=1, clean=1, + enclose_text=1, tidy_mark=0) + reports = parsed.get_errors() + all_errors = [str(x) for x in reports if x.severity != 'W'] + errors = len(all_errors) + errordata = '\n'.join(all_errors) + if errors: + output = html + else: + output = str(parsed) + + output = MSO_CLASS.sub(r"<\1>", output) + result = HTML_BODY.search(output) + if result: + output = result.group(1) + + # Call External Method / PythonScript for postprocessing + # The script should expect two parameters: + # self = called context (=server) + # html = the htmlbody to postprocess + # pathname = path of edited object (maybe with template!) + # The script should return the new htmlbody + + EpozPostTidy = getattr(self, 'EpozPostTidy', None) + if EpozPostTidy is not None: + output = EpozPostTidy(self, output, pageurl) + + return (errors, output, errordata) + + +def EpozGetRelativeUrl(self, pageUrl, targetUrl): + """ Returns relative path from targetUrl to pageUrl. """ + + # Just some shortcuts... + SCHEME, HOSTNAME, PATH, PARAMS, QUERY, FRAGMENT = range(6) + + pageUnits = urlparse.urlparse(pageUrl) + targetUnits = urlparse.urlparse(targetUrl) + + if pageUnits[:PATH] != targetUnits[:PATH]: + # Scheme (http) or host:port (www.comain.com) are different + # -> no possible relative URL + return targetUrl + + afterPath = targetUnits[PARAMS:] + + pagePath = pageUnits[PATH].split('/') + pagePath.reverse() + + targetPath = targetUnits[PATH].split('/') + targetPath.reverse() + + # Remove parts which are equal (['a', 'b'] ['a', 'c'] --> ['c']) + while (len(pagePath) > 0 + and len(targetPath) > 0 + and pagePath[-1] == targetPath[-1]): + pagePath.pop() + last_pop = targetPath.pop() + if len(pagePath) == 0 and len(targetPath) == 0: + # Special case: link to itself (http://foo/a http://foo/a -> a) + targetPath.append(last_pop) + if len(pagePath) == 1 and pagePath[0] == "" and len(targetPath) == 0: + # Special case: (http://foo/a/ http://foo/a -> ../a) + pagePath.append(last_pop) + targetPath.append(last_pop) + + targetPath.reverse() + + relativeUrl = ['..'] * (len(pagePath) -1) + relativeUrl = ('', '', '/'.join(relativeUrl + targetPath)) + tuple(afterPath) + + return urlparse.urlunparse(relativeUrl) + + +# Make sure the Epoz method is replaceable in the Products folder +Epoz.__replaceable__ = Globals.REPLACEABLE + +# Register Epoz as global method +# Register EpozTidy as global method for XMLRPC +# Register EpozGetRelativeUrl as global method +# Register epoz_blank_iframe.html as global PageTemplate + +methods = { +'Epoz': Epoz, +'Epoz__roles__': None, + +'EpozTidy': EpozTidy, +'EpozTidy__roles__': None, + +'EpozGetRelativeUrl': EpozGetRelativeUrl, +'EpozGetRelativeUrl__roles__': None, + +'epoz_blank_iframe.html': PageTemplateFile('epoz/epoz_core/epoz_blank_iframe.html.pt', globals()), +'epoz_blank_iframe.html__roles__': None, +} + + +# And now try to register Epoz for CMF/Plone + +try: + from Products.CMFCore.DirectoryView import registerDirectory + + global cmfepoz_globals + cmfepoz_globals=globals() + + def initialize(context): + registerDirectory('epoz', cmfepoz_globals) +except: + pass + \ No newline at end of file diff --git a/epoz/epoz_core/epoz_blank_iframe.html.pt b/epoz/epoz_core/epoz_blank_iframe.html.pt new file mode 100755 index 0000000..59606df --- /dev/null +++ b/epoz/epoz_core/epoz_blank_iframe.html.pt @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/epoz/epoz_core/epoz_iframe_trigger.js.dtml b/epoz/epoz_core/epoz_iframe_trigger.js.dtml new file mode 100644 index 0000000..d7863ae --- /dev/null +++ b/epoz/epoz_core/epoz_iframe_trigger.js.dtml @@ -0,0 +1,39 @@ +var IFramePrefix = "Iframe_"; +var IFramePrefixLength = IFramePrefix.length; +var DocPrefix = "doc_"; +var DocPrefixLength = DocPrefix.length; + + +function raiseEpozRedirect() { + docid = document.id; + if (!docid) return; // single mode + docid = document.id.slice(DocPrefixLength); + frameId = IFramePrefix + docid; + iframe = window.parent.document.getElementById(frameId); + if (iframe) + raiseEvent(iframe, "click"); +} + +function raiseEvent(ob, eventName) { + if (browser.isIE55 || browser.isIE6up) { + eventName = "on" + eventName; + ob.fireEvent(eventName); + } + else if (browser.isGecko) { + event = document.createEvent("MouseEvents"); + event.initEvent(eventName, true, true); + ob.dispatchEvent(event); + } + +} + +function addMouseDownListener() { + if (browser.isIE55 || browser.isIE6up) { + document.attachEvent("onmousedown", raiseEpozRedirect); + } + else if (browser.isGecko) { + document.addEventListener("mousedown", raiseEpozRedirect, false); + } +} + +window.onload = addMouseDownListener; diff --git a/epoz/epoz_core/epoz_iframe_trigger.js.dtml.metadata b/epoz/epoz_core/epoz_iframe_trigger.js.dtml.metadata new file mode 100644 index 0000000..855fecc --- /dev/null +++ b/epoz/epoz_core/epoz_iframe_trigger.js.dtml.metadata @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache diff --git a/epoz/epoz_core/epoz_multilingual.js.pt b/epoz/epoz_core/epoz_multilingual.js.pt new file mode 100644 index 0000000..4a40e59 --- /dev/null +++ b/epoz/epoz_core/epoz_multilingual.js.pt @@ -0,0 +1,55 @@ +var EpozLang=[]; + +EpozLang[""]=""; + \ No newline at end of file diff --git a/epoz/epoz_core/epoz_multilingual.js.pt.metadata b/epoz/epoz_core/epoz_multilingual.js.pt.metadata new file mode 100644 index 0000000..855fecc --- /dev/null +++ b/epoz/epoz_core/epoz_multilingual.js.pt.metadata @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache diff --git a/epoz/epoz_core/epoz_redirect.js.dtml b/epoz/epoz_core/epoz_redirect.js.dtml new file mode 100644 index 0000000..b76cb71 --- /dev/null +++ b/epoz/epoz_core/epoz_redirect.js.dtml @@ -0,0 +1,260 @@ +// This script allow to use several Epoz WYSIWYG fields. +// Copyright (C) 2005 Benoît PIN + +var IFramePrefix = "Iframe_"; +var IFramePrefixLength = IFramePrefix.length; +var DocPrefix = "doc_"; +var DocPrefixLength = DocPrefix.length; +var CheckBoxPrefix = "CB_"; +var CheckBoxPrefixLength = CheckBoxPrefix.length; +var ToolBarPrefix = "ToolBar_"; +var ToolBarPrefixLength = ToolBarPrefix.length; + + +function redirectEpoz(iframe) { + if(EpozElement) { + if (EpozElement == iframe) + return; + changeBorderStyle(EpozElement, "dashed"); + unwrapEpozVariables(); + } + + // update Epoz variables + wrapEpozVariables(iframe); + + //cosmetic + changeBorderStyle(EpozElement, "solid"); + EpozElement.contentWindow.focus(); +} + + +function wrapEpozVariables(iframe) { + try { + fieldId = iframe.contentWindow.document.id.slice(DocPrefixLength); + } + catch (e) { + // maybe not an epoz iframe + return false; + } + + iframe.id = Epoz ; + EpozElement=iframe; + EpozTextArea = document.getElementById(fieldId); + toolBar = document.getElementById(ToolBarPrefix + fieldId); + toolBar.id = "EpozToolbar"; + checkBox = document.getElementById(CheckBoxPrefix + fieldId); + checkBox.id = "EpozViewMode"; + return true; +} + + +function unwrapEpozVariables() { + if (!EpozElement) // no redirection happens yet. + return; + fieldId = EpozElement.contentWindow.document.id.slice(DocPrefixLength); + + EpozElement.id = IFramePrefix + fieldId; + toolBar = document.getElementById("EpozToolbar"); + toolBar.id = ToolBarPrefix + fieldId; + checkBox = document.getElementById("EpozViewMode"); + checkBox.id = CheckBoxPrefix + fieldId; +} + + + +// Initialization functions + +if (!formDatas) { + var formDatas = new Array(); +} + +function InitIframe(name, data, path, toolbox, style, button, css, customcss, charset, pageurl) { + form_name = name; + form_data = data; + form_path = path; + form_toolbox = toolbox; + form_area_style = style; + form_button_style = button; + form_css = css; + form_customcss = customcss; + form_charset = charset; + form_pageurl = pageurl; + + var richText; + + if (browser.isIE55 || browser.isIE6up) { + // Mac-IE doesn't support RichText-Edit at the moment + if (browser.isMac) { + CreateTextarea(); + richText = false; + } else { + CreateEpoz(); + richText = true; + } + } + else if (browser.isGecko) { + //check to see if midas is enabled + try { + // Just a few cleanups for Mozilla + + form_data = form_data.replace(//ig,''); + form_data = form_data.replace(/]*)>/ig,''); + form_data = form_data.replace(/<\/strong>/ig,''); + + form_data = form_data.replace(//ig,''); + form_data = form_data.replace(/]*)>/ig,''); + form_data = form_data.replace(/<\/em>/ig,''); + + CreateEpoz(); + richText = true; + } catch (e) { + CreateTextarea(); + richText = false; + } + } + else { + CreateTextarea(); + richText = false; + } + + if (richText) { + // change iframe id + formDatas[name] = form_data; + var iframe = document.getElementById(Epoz); + iframe.id = IFramePrefix + name; + + // change EpozToolbar id + var toolBar = document.getElementById("EpozToolbar"); + toolBar.id = ToolBarPrefix + name; + + // Retrieve the switch HTML mode checkbox and change id and onclick function. + nodes = iframe.parentNode.nextSibling.nextSibling.childNodes; + var i; + for (i=0 ; i" || html=="
" || html=="

") { + html = ""; + } + form_name = EpozElement.contentWindow.document.id.slice(DocPrefixLength); + document.getElementById(form_name).value = html; + } + +} + +function EnableDesignMode(iframeId) { + iframe = document.getElementById(iframeId); + try { + iframe.contentDocument.designMode = "on"; + iframe.contentWindow.document.addEventListener("keypress", HandleKeyboardEvent, true); + } catch (e) { + scriptExpr = 'EnableDesignMode("' + iframeId + '");'; + setTimeout(scriptExpr, 10); + } +} + + + +//utils + +function retrieveForm(baseOb){ + var pn = baseOb.parentNode; + + while (pn != document) { + if (pn.nodeName == 'FORM') + break; + else { + pn = pn.parentNode; + } + } + return pn; +} + + +function addListener(ob, eventName, functionReference){ + if (browser.isIE55 || browser.isIE6up) { + eventName = "on" + eventName; + ob.attachEvent(eventName, functionReference); + } + else if (browser.isGecko) { + ob.addEventListener(eventName, functionReference, false); + } + +} \ No newline at end of file diff --git a/epoz/epoz_core/epoz_redirect.js.dtml.metadata b/epoz/epoz_core/epoz_redirect.js.dtml.metadata new file mode 100644 index 0000000..855fecc --- /dev/null +++ b/epoz/epoz_core/epoz_redirect.js.dtml.metadata @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache diff --git a/epoz/epoz_core/epoz_script_color.html.dtml b/epoz/epoz_core/epoz_script_color.html.dtml new file mode 100755 index 0000000..36db526 --- /dev/null +++ b/epoz/epoz_core/epoz_script_color.html.dtml @@ -0,0 +1,124 @@ + + + +Epoz + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + diff --git a/epoz/epoz_core/epoz_script_detect.js.dtml b/epoz/epoz_core/epoz_script_detect.js.dtml new file mode 100755 index 0000000..85071e9 --- /dev/null +++ b/epoz/epoz_core/epoz_script_detect.js.dtml @@ -0,0 +1,100 @@ +// Browser Detect v2.1.6 +// documentation: http://www.dithered.com/javascript/browser_detect/index.html +// license: http://creativecommons.org/licenses/by/1.0/ +// code by Chris Nott (chris[at]dithered[dot]com) + + +function BrowserDetect() { + var ua = navigator.userAgent.toLowerCase(); + + // browser engine name + this.isGecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1); + this.isAppleWebKit = (ua.indexOf('applewebkit') != -1); + + // browser name + this.isKonqueror = (ua.indexOf('konqueror') != -1); + this.isSafari = (ua.indexOf('safari') != - 1); + this.isOmniweb = (ua.indexOf('omniweb') != - 1); + this.isOpera = (ua.indexOf('opera') != -1); + this.isIcab = (ua.indexOf('icab') != -1); + this.isAol = (ua.indexOf('aol') != -1); + this.isIE = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) ); + this.isMozilla = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length); + this.isFirebird = (ua.indexOf('firebird/') != -1); + this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) ); + + // spoofing and compatible browsers + this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE); + this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla); + + // rendering engine versions + this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 ); + this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 ); + this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 ); + + // browser version + this.versionMinor = parseFloat(navigator.appVersion); + + // correct version number + if (this.isGecko && !this.isMozilla) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) ); + } + else if (this.isMozilla) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ); + } + else if (this.isIE && this.versionMinor >= 4) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) ); + } + else if (this.isKonqueror) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) ); + } + else if (this.isSafari) { + this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) ); + } + else if (this.isOmniweb) { + this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) ); + } + else if (this.isOpera) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) ); + } + else if (this.isIcab) { + this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) ); + } + + this.versionMajor = parseInt(this.versionMinor); + + // dom support + this.isDOM1 = (document.getElementById); + this.isDOM2Event = (document.addEventListener && document.removeEventListener); + + // css compatibility mode + this.mode = document.compatMode ? document.compatMode : 'BackCompat'; + + // platform + this.isWin = (ua.indexOf('win') != -1); + this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) ); + this.isMac = (ua.indexOf('mac') != -1); + this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1) + this.isLinux = (ua.indexOf('linux') != -1); + + // specific browser shortcuts + this.isNS4x = (this.isNS && this.versionMajor == 4); + this.isNS40x = (this.isNS4x && this.versionMinor < 4.5); + this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7); + this.isNS4up = (this.isNS && this.versionMinor >= 4); + this.isNS6x = (this.isNS && this.versionMajor == 6); + this.isNS6up = (this.isNS && this.versionMajor >= 6); + this.isNS7x = (this.isNS && this.versionMajor == 7); + this.isNS7up = (this.isNS && this.versionMajor >= 7); + + this.isIE4x = (this.isIE && this.versionMajor == 4); + this.isIE4up = (this.isIE && this.versionMajor >= 4); + this.isIE5x = (this.isIE && this.versionMajor == 5); + this.isIE55 = (this.isIE && this.versionMinor == 5.5); + this.isIE5up = (this.isIE && this.versionMajor >= 5); + this.isIE6x = (this.isIE && this.versionMajor == 6); + this.isIE6up = (this.isIE && this.versionMajor >= 6); + + this.isIE4xMac = (this.isIE4x && this.isMac); +} +var browser = new BrowserDetect(); \ No newline at end of file diff --git a/epoz/epoz_core/epoz_script_detect.js.dtml.metadata b/epoz/epoz_core/epoz_script_detect.js.dtml.metadata new file mode 100644 index 0000000..855fecc --- /dev/null +++ b/epoz/epoz_core/epoz_script_detect.js.dtml.metadata @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache diff --git a/epoz/epoz_core/epoz_script_main.js.dtml b/epoz/epoz_core/epoz_script_main.js.dtml new file mode 100755 index 0000000..432d250 --- /dev/null +++ b/epoz/epoz_core/epoz_script_main.js.dtml @@ -0,0 +1,298 @@ +//##### +//### Epoz - a cross-browser-wysiwyg-editor for Zope +//## Copyright (C) 2004 Maik Jablonski (maik.jablonski@uni-bielefeld.de) +//# + +// Just to prevent typos when fetching the Epoz-IFrame... + +var Epoz = "EpozEditor"; + +// Speed-Up-Storage for document.getElementById(Epoz); + +var EpozElement; +var EpozTextArea; + +// Global storages + +var form_data; // the document-data +var form_name; // the name of the form-element +var form_path; // path to buttons, font-selectors, ... +var form_toolbox; // path to optional toolbox +var form_area_style; // css-definition for wysiwyg-area +var form_button_style; // css-definition for buttons +var form_css; // css-style for iframe +var form_customcss; // customized css-style for iframe +var form_charset; // charset for iframe +var form_pageurl; // real url for the edited page + + +// Returns the current HTML. + +function GetHTML(source_mode) { + if (source_mode == null) + source_mode = document.getElementById('EpozViewMode').checked; + if (source_mode) { + return EpozTextArea.value; + } + else { + try { + return EpozElement.contentWindow.document.body.innerHTML; + } catch (e) { + return EpozElement.value; + } + } +} + +// Just a XMLRPC to a web-service to clean up the html + +function TidyHTML(html) { + window.status = EpozLang["TidyStart"]; + try { + // Call EpozTidy one step above the given pageurl. + // This should avoid some problems with VHM & PageTemplates etc. + xmlrpchost = form_pageurl + "/.."; + result = XMLRPC.call(xmlrpchost, "EpozTidy", html, form_pageurl); + + errors = result[0]; + output = result[1]; + errordata = result[2]; + + if (errors != 0) { + window.status = EpozLang["TidyError"]; + alert(errordata); + } + else { + window.status = EpozLang["TidyStop"]; + } + return (output); + } catch (e) { + return (html); + } +} + +// ------------------------------------------------------------- +// Here are the definitions for the control-and-format-functions + +// Format text with RichText-Controls + +function FormatText(command, option) { + EpozElement.contentWindow.focus(); + + // Mozilla inserts css-styles per default + + if (browser.isGecko) { + EpozElement.contentWindow.document.execCommand('useCSS',false, true); + } + + EpozElement.contentWindow.document.execCommand(command, false, option); +} + + +// Insert arbitrary HTML at current selection + +function InsertHTML(html) { + + EpozElement.contentWindow.focus(); + + if (browser.isIE5up) { + selection = EpozElement.contentWindow.document.selection; + range = selection.createRange(); + try { + range.pasteHTML(html); + } catch (e) { + // catch error when range is evil for IE + } + } else { + selection = EpozElement.contentWindow.window.getSelection(); + EpozElement.contentWindow.focus(); + if (selection) { + range = selection.getRangeAt(0); + } else { + range = EpozElement.contentWindow.document.createRange(); + } + + var fragment = EpozElement.contentWindow.document.createDocumentFragment(); + var div = EpozElement.contentWindow.document.createElement("div"); + div.innerHTML = html; + + while (div.firstChild) { + fragment.appendChild(div.firstChild); + } + + selection.removeAllRanges(); + range.deleteContents(); + + var node = range.startContainer; + var pos = range.startOffset; + + switch (node.nodeType) { + case 3: + if (fragment.nodeType == 3) { + node.insertData(pos, fragment.data); + range.setEnd(node, pos + fragment.length); + range.setStart(node, pos + fragment.length); + } else { + node = node.splitText(pos); + node.parentNode.insertBefore(fragment, node); + range.setEnd(node, pos + fragment.length); + range.setStart(node, pos + fragment.length); + } + break; + + case 1: + node = node.childNodes[pos]; + node.parentNode.insertBefore(fragment, node); + range.setEnd(node, pos + fragment.length); + range.setStart(node, pos + fragment.length); + break; + } + selection.addRange(range); + } +} + + +// Create an anchor - no browser supports this directly + +function CreateAnchor(name) { + name = prompt(EpozLang["EnterAnchorName"], ""); + if (name) { + anchorhtml = ''; + InsertHTML(anchorhtml); + } +} + + +// Create a Hyperlink - IE has its own implementation + +function CreateLink(URL) { + if (browser.isIE5up == false && ((URL == null) || (URL == ""))) { + URL = prompt(EpozLang["EnterLinkURL"], ""); + + if ((URL != null) && (URL != "")) { + EpozElement.contentWindow.document.execCommand("CreateLink",false,URL) + } else { + EpozElement.contentWindow.document.execCommand("Unlink",false, "") + } + } else { + EpozElement.contentWindow.document.execCommand("CreateLink",false,URL) + } +} + + +// Insert image via a URL + +function CreateImage(URL) { + if ((URL == null) || (URL == "")) { + URL = prompt(EpozLang["EnterImageURL"], ""); + } + if ((URL != null) && (URL != "")) { + EpozElement.contentWindow.focus() + EpozElement.contentWindow.document.execCommand('InsertImage', false, URL); + } +} + + +// Creates a simple table + +function CreateTable(rows, cols, border, head) { + rows = parseInt(rows); + cols = parseInt(cols); + + if ((rows > 0) && (cols > 0)) { + table = ' \n'; + + for (var i=0; i < rows; i++) { + table = table + " \n"; + for (var j=0; j < cols; j++) { + if(i==0 && head=="1") { + table += " \n"; + } else { + table += " \n"; + } + } + table += " \n"; + } + table += "
##
\n"; + InsertHTML(table); + } + EpozElement.contentWindow.focus() +} + + +// Sets selected formats + +function SelectFormat(selectname) +{ + // First one is only a label + if (selectname.selectedIndex != 0) { + EpozElement.contentWindow.document.execCommand(selectname.id, false, selectname.options[selectname.selectedIndex].value); + selectname.selectedIndex = 0; + } + EpozElement.contentWindow.focus(); +} + + +// Sets foreground-color + +function SetTextColor() { + EpozColorCommand='forecolor'; + window.open(form_path+'epoz_script_color.html','EpozColor','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=220,height=220'); +} + +// Sets background-color + +function SetBackColor() { + EpozColorCommand='backcolor'; + window.open(form_path+'epoz_script_color.html','EpozColor','toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=220,height=220'); +} + +// Submit color-command to Rich-Text-Controls + +function SetColor(color) { + + if (browser.isGecko) { + EpozElement.contentWindow.document.execCommand('useCSS',false, false); + } + + EpozElement.contentWindow.document.execCommand(EpozColorCommand, false, color); + EpozElement.contentWindow.focus(); +} + +// Switch between Source- and Wysiwyg-View + +function SwitchViewMode(source_mode) +{ + var html = GetHTML(!source_mode); + + if (source_mode) { + EpozTextArea.value=TidyHTML(html); + document.getElementById("EpozToolbar").style.display="none"; + EpozTextArea.style.display="inline"; + } else { + html = html.replace(' + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+ +
+ + diff --git a/epoz/epoz_core/epoz_script_widget.js.dtml b/epoz/epoz_core/epoz_script_widget.js.dtml new file mode 100755 index 0000000..429831f --- /dev/null +++ b/epoz/epoz_core/epoz_script_widget.js.dtml @@ -0,0 +1,125 @@ +// +// Create HTML for Epoz-Editor +// +// Comment out the parts you don't want to be shown. +// + +function CreateEpoz() { + + var widget = ''; + var spacer = ''; + + widget += '
'; + +/* + The select-box for formats +*/ + + widget += ''; + widget += '
'; + +/* + The font-face-buttons (bold, italic, underline) +*/ + + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += spacer; + +/* + The sub-/superscript-buttons +*/ + + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += spacer; + +/* + The remove-format-button +*/ + + widget += ''+EpozLang['; + widget += spacer; + +/* + The color-selections (foreground, background) +*/ + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += spacer; + +/* + Alignment-controls +*/ + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += spacer; + +/* + Lists and In/Outdent +*/ + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += spacer; + +/* + Insert Link, Image, Rule, Table +*/ + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + widget += ''+EpozLang['; + +/* + The optional toolbox +*/ + if ((form_toolbox != null) && (form_toolbox != "")) { + widget += spacer; + widget += ''+EpozLang['; + } + + widget += spacer; + +/* + Undo & Redo +*/ + + widget += ''+EpozLang['; + widget += ''+EpozLang['; + +/* + Don't remove!!! And better not touch...;) +*/ + + widget += '\n
\n'; + widget += ''; + widget += '
'; + + widget += ''; + widget += '
 ' + EpozLang["HTML"] + '
'; + + document.writeln(widget); +} + + +// Create a default-textbox for browsers without Rich-Text-Features + +function CreateTextarea() { + document.writeln(''); +} diff --git a/epoz/epoz_core/vcXMLRPC.js.dtml b/epoz/epoz_core/vcXMLRPC.js.dtml new file mode 100755 index 0000000..b46166d --- /dev/null +++ b/epoz/epoz_core/vcXMLRPC.js.dtml @@ -0,0 +1,633 @@ +// +// Copyright (C) 2000, 2001, 2002 Virtual Cowboys info@virtualcowboys.nl +// +// Author: Ruben Daniels +// Version: 0.91 +// Date: 29-08-2001 +// Site: www.vcdn.org/Public/XMLRPC/ +// +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; either version 2 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Object.prototype.toXMLRPC = function(){ + var wo = this.valueOf(); + + if(wo.toXMLRPC == this.toXMLRPC){ + retstr = ""; + + for(prop in this){ + if(typeof wo[prop] != "function"){ + retstr += "" + prop + "" + XMLRPC.getXML(wo[prop]) + ""; + } + } + retstr += ""; + + return retstr; + } + else{ + return wo.toXMLRPC(); + } +} + +String.prototype.toXMLRPC = function(){ + // + return "";//.replace(/" + this + ""; + } + else if(this == parseFloat(this)){ + return "" + this + ""; + } + else{ + return false.toXMLRPC(); + } +} + +Boolean.prototype.toXMLRPC = function(){ + if(this) return "1"; + else return "0"; +} + +Date.prototype.toXMLRPC = function(){ + //Could build in possibilities to express dates + //in weeks or other iso8601 possibillities + //hmmmm ???? + //19980717T14:08:55 + return "" + doYear(this.getUTCYear()) + doZero(this.getMonth()) + doZero(this.getUTCDate()) + "T" + doZero(this.getHours()) + ":" + doZero(this.getMinutes()) + ":" + doZero(this.getSeconds()) + ""; + + function doZero(nr) { + nr = String("0" + nr); + return nr.substr(nr.length-2, 2); + } + + function doYear(year) { + if(year > 9999 || year < 0) + XMLRPC.handleError(new Error("Unsupported year: " + year)); + + year = String("0000" + year) + return year.substr(year.length-4, 4); + } +} + +Array.prototype.toXMLRPC = function(){ + var retstr = ""; + for(var i=0;i"; + } + return retstr + ""; +} + +function VirtualService(servername, oRPC){ + this.version = '0.91'; + this.URL = servername; + this.multicall = false; + this.autoroute = true; + this.onerror = null; + + this.rpc = oRPC; + this.receive = {}; + + this.purge = function(receive){ + return this.rpc.purge(this, receive); + } + + this.revert = function(){ + this.rpc.revert(this); + } + + this.add = function(name, alias, receive){ + this.rpc.validateMethodName();if(this.rpc.stop){this.rpc.stop = false;return false} + if(receive) this.receive[name] = receive; + this[(alias || name)] = new Function('var args = new Array(), i;for(i=0;i mask/s + * -------------------- + * undefined -> 0/1 [default] + * number -> 2 + * boolean -> 4 + * string -> 8 + * function -> 16 + * object -> 32 + * -------------------- + * Examples: + * Want [String] only: (eqv. (typeof(vDunno) == 'string') ) + * Soya.Common.typematch(unknown, 8) + * Anything else than 'undefined' acceptable: + * Soya.Common.typematch(unknown) + * Want [Number], [Boolean] or [Function]: + * Soya.Common.typematch(unknown, 2 + 4 + 16) + * Want [Number] only: + * Soya.Common.typematch(unknown, 2) + **/ + typematch : function (vDunno, nCase){ + var nMask; + switch(typeof(vDunno)){ + case 'number' : nMask = 2; break; + case 'boolean' : nMask = 4; break; + case 'string' : nMask = 8; break; + case 'function': nMask = 16; break; + case 'object' : nMask = 32; break; + default : nMask = 1; break; + } + return Boolean(nMask & (nCase || 62)); + }, + + getNode : function(data, tree){ + var nc = 0;//nodeCount + //node = 1 + if(data != null){ + for(i=0;i 1){ + tree.shift(); + data = this.getNode(data, tree); + } + return data; + } + nc++ + } + } + } + + return false; + }, + + toObject : function(data){ + var ret, i; + switch(data.tagName){ + case "string": + var s="" + //Mozilla has many textnodes with a size of 4096 chars each instead of one large one. + //They all need to be concatenated. + for(var j=0;j 0) + return sEncoded; + + /* Use NN's built-in base64 decoder if available. + This procedure is horribly slow running under NN4, + so the NN built-in equivalent comes in very handy. :) */ + + else if(typeof(atob) != 'undefined') + return atob(sEncoded); + + var nBits, i, sDecoded = ''; + var base64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; + sEncoded = sEncoded.replace(/\W|=/g, ''); + + for(i=0; i < sEncoded.length; i += 4){ + nBits = + (base64.indexOf(sEncoded.charAt(i)) & 0xff) << 18 | + (base64.indexOf(sEncoded.charAt(i+1)) & 0xff) << 12 | + (base64.indexOf(sEncoded.charAt(i+2)) & 0xff) << 6 | + base64.indexOf(sEncoded.charAt(i+3)) & 0xff; + sDecoded += String.fromCharCode( + (nBits & 0xff0000) >> 16, (nBits & 0xff00) >> 8, nBits & 0xff); + } + + // not sure if the following statement behaves as supposed under + // all circumstances, but tests up til now says it does. + + return sDecoded.substring(0, sDecoded.length - + ((sEncoded.charCodeAt(i - 2) == 61) ? 2 : + (sEncoded.charCodeAt(i - 1) == 61 ? 1 : 0))); + }, + + getObject : function(type, message){ + if(type == "HTTP"){ + if(isIE) + obj = new ActiveXObject("microsoft.XMLHTTP"); + else if(isNS) + obj = new XMLHttpRequest(); + } + else if(type == "XMLDOM"){ + if(isIE){ + obj = new ActiveXObject("microsoft.XMLDOM"); + obj.loadXML(message) + }else if(isNS){ + obj = new DOMParser(); + obj = obj.parseFromString(message, "text/xml"); + } + + } + else{ + this.handleError(new Error("Unknown Object")); + } + + return obj; + }, + + validateMethodName : function(name){ + /*do Checking: + + The string may only contain identifier characters, + upper and lower-case A-Z, the numeric characters, 0-9, + underscore, dot, colon and slash. + + */ + if(/^[A-Za-z0-9\._\/:]+$/.test(name)) + return true + else + this.handleError(new Error("Incorrect method name")); + }, + + getXML : function(obj){ + if(typeof obj == "function"){ + this.handleError(new Error("Cannot Parse functions")); + }else if(obj == null || obj == undefined || (typeof obj == "number" && !isFinite(obj))) + return false.toXMLRPC(); + else + return obj.toXMLRPC(); + }, + + handleError : function(e){ + if(!this.onerror || !this.onerror(e)){ + //alert("An error has occured: " + e.message); + throw e; + } + this.stop = true; + this.lastError = e; + }, + + cancel : function(id){ + //You can only cancel a request when it was executed async (I think) + if(!this.queue[id]) return false; + + this.queue[id][0].abort(); + return true; + }, + + send : function(serverAddress, functionName, args, receive, multicall, autoroute){ + var id, http; + //default is sync + this.validateMethodName(); + if(this.stop){this.stop = false; return false;} + + //setting up multicall + multicall = (multicall != null) ? multicall : this.multicall; + + if(multicall){ + if(!this.stack[serverAddress]) this.stack[serverAddress] = new Array(); + this.stack[serverAddress].push({methodName : functionName, params : args}); + return true; + } + + //creating http object + var http = this.getObject("HTTP"); + + //setting some things for async/sync transfers + if(!receive || isNS){; + async = false; + } + else{ + async = true; + /* The timer functionality is implemented instead of + the onreadystatechange event because somehow + the calling of this event crashed IE5.x + */ + id = this.queue.push([http, receive, null, new Date()])-1; + + this.queue[id][2] = new Function("var id='" + id + "';var dt = new Date(new Date().getTime() - XMLRPC.queue[id][3].getTime());diff = parseInt(dt.getSeconds()*1000 + dt.getMilliseconds());if(diff > XMLRPC.timeout){if(XMLRPC.ontimeout) XMLRPC.ontimeout(); clearInterval(XMLRPC.timers[id]);XMLRPC.cancel(id);return};if(XMLRPC.queue[id][0].readyState == 4){XMLRPC.queue[id][0].onreadystatechange = function(){};XMLRPC.receive(id);clearInterval(XMLRPC.timers[id])}"); + this.timers[id] = setInterval("XMLRPC.queue[" + id + "][2]()", 20); + } + + //setting up the routing + autoroute = (autoroute || this.autoroute); + + //'active' is only set when direct sending the message has failed + var srv = (autoroute == "active") ? this.routeServer : serverAddress; + + try{ + http.open('POST', srv, async); + http.setRequestHeader("User-Agent", "vcXMLRPC v0.91 (" + navigator.userAgent + ")"); + http.setRequestHeader("Host", srv.replace(/^https?:\/{2}([:\[\]\-\w\.]+)\/?.*/, '$1')); + http.setRequestHeader("Content-type", "text/xml"); + if(autoroute == "active"){ + http.setRequestHeader("X-Proxy-Request", serverAddress); + http.setRequestHeader("X-Compress-Response", "gzip"); + } + } + catch(e){ + if(autoroute == true){ + //Access has been denied, Routing call. + autoroute = "active"; + if(id){ + delete this.queue[id]; + clearInterval(this.timers[id]); + } + return this.send(serverAddress, functionName, args, receive, multicall, autoroute); + } + + //Routing didn't work either..Throwing error + this.handleError(new Error("Could not sent XMLRPC Message (Reason: Access Denied on client)")); + if(this.stop){this.stop = false;return false} + } + + //Construct the message + var message = '' + functionName + ''; + for(i=0;i'; + } + message += ''; + + var xmldom = this.getObject('XMLDOM', message); + if(self.DEBUG) alert(message); + + try{ + //send message + http.send(xmldom); + } + catch(e){ + //Most likely the message timed out(what happend to your internet connection?) + this.handleError(new Error("XMLRPC Message not Sent(Reason: " + e.message + ")")); + if(this.stop){this.stop = false;return false} + } + + if(!async && receive) + return [autoroute, receive(this.processResult(http))]; + else if(receive) + return [autoroute, id]; + else + return [autoroute, this.processResult(http)]; + }, + + receive : function(id){ + //Function for handling async transfers.. + if(this.queue[id]){ + var data = this.processResult(this.queue[id][0]); + this.queue[id][1](data); + delete this.queue[id]; + } + else{ + this.handleError(new Error("Error while processing queue")); + } + }, + + processResult : function(http){ + if(self.DEBUG) alert(http.responseText); + if(http.status == 200){ + //getIncoming message + dom = http.responseXML; + + if(dom){ + var rpcErr, main; + + //Check for XMLRPC Errors + rpcErr = dom.getElementsByTagName("fault"); + if(rpcErr.length > 0){ + rpcErr = this.toObject(rpcErr[0].firstChild); + this.handleError(new Error(rpcErr.faultCode, rpcErr.faultString)); + return false + } + + //handle method result + main = dom.getElementsByTagName("param"); + if(main.length == 0) this.handleError(new Error("Malformed XMLRPC Message")); + data = this.toObject(this.getNode(main[0], [0])); + + //handle receiving + if(this.onreceive) this.onreceive(data); + return data; + } + else{ + this.handleError(new Error("Malformed XMLRPC Message")); + } + } + else{ + this.handleError(new Error("HTTP Exception: (" + http.status + ") " + http.statusText + "\n\n" + http.responseText)); + } + } +} + +//Smell something +ver = navigator.appVersion; +app = navigator.appName; +isNS = Boolean(navigator.productSub) +//moz_can_do_http = (parseInt(navigator.productSub) >= 20010308) + +isIE = (ver.indexOf("MSIE 5") != -1 || ver.indexOf("MSIE 6") != -1) ? 1 : 0; +isIE55 = (ver.indexOf("MSIE 5.5") != -1) ? 1 : 0; + +isOTHER = (!isNS && !isIE) ? 1 : 0; + diff --git a/epoz/epoz_core/vcXMLRPC.js.dtml.metadata b/epoz/epoz_core/vcXMLRPC.js.dtml.metadata new file mode 100644 index 0000000..855fecc --- /dev/null +++ b/epoz/epoz_core/vcXMLRPC.js.dtml.metadata @@ -0,0 +1,2 @@ +[default] +cache=HTTPCache diff --git a/epoz/epoz_i18n/epoz_lang_da.js.dtml b/epoz/epoz_i18n/epoz_lang_da.js.dtml new file mode 100755 index 0000000..739b65d --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_da.js.dtml @@ -0,0 +1,53 @@ +// Epoz-Language-File: da (Danish) +// maik.jablonski@uni-bielefeld.de, 2003 +// Translated by overby@opentobusiness.com + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Citat'; +EpozLang["Heading1"]='Overskift 1'; +EpozLang["Heading2"]='Overskift 2'; +EpozLang["Heading3"]='Overskift 3'; +EpozLang["Heading4"]='Overskift 4'; +EpozLang["Heading5"]='Overskift 5'; +EpozLang["Heading6"]='Overskift 6'; +EpozLang["Formatted"]='Formatteret'; + +EpozLang["Bold"]='Fed'; +EpozLang["Italic"]='Kursiv'; +EpozLang["Underline"]='Understreg'; +EpozLang["Strikethrough"]='Gennemstreg'; + +EpozLang["Subscript"]='Sænket skrift'; +EpozLang["Superscript"]='Hævet skrift'; + +EpozLang["RemoveFormat"]='Fjern formattering'; + +EpozLang["TextColor"]='Skriftfarve'; +EpozLang["BackColor"]='Baggrundsfarve'; + +EpozLang["AlignLeft"]='Venstrejusteret'; +EpozLang["Center"]='Centreret'; +EpozLang["AlignRight"]='Højrejusteret'; + +EpozLang["OrderedList"]='Nummereret liste'; +EpozLang["UnorderedList"]='Punktliste'; +EpozLang["Outdent"]='Formindsk indrykning'; +EpozLang["Indent"]='Forøg indrykning'; + +EpozLang["InsertLink"]='Indsæt link'; +EpozLang["InsertImage"]='Indsæt billede'; +EpozLang["InsertRule"]='Indsæt linie'; +EpozLang["InsertTable"]='Indsæt table'; +EpozLang["Toolbox"]='Værktøjskasse'; + +EpozLang["Undo"]='Fortryd'; +EpozLang["Redo"]='Annuller fortryd'; + +EpozLang["EnterLinkURL"]='Indsæt link adresse'; +EpozLang["EnterImageURL"]='Indsæt bille placering'; + +EpozLang["EnterTableRows"]='Indsæt række'; +EpozLang["EnterTableColumns"]='Indsæt kolonne'; +EpozLang["EnterTableBorder"]='Kant'; +EpozLang["TableWithHead"]='Tabel med hoved'; +EpozLang["TableWithoutHead"]='Tabel uden hoved'; diff --git a/epoz/epoz_i18n/epoz_lang_de.js.dtml b/epoz/epoz_i18n/epoz_lang_de.js.dtml new file mode 100755 index 0000000..fc05240 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_de.js.dtml @@ -0,0 +1,60 @@ +// Epoz-Language-File: de (Deutsch) +// maik.jablonski@uni-bielefeld.de, 2003 + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Absatz'; +EpozLang["Heading1"]='Überschrift 1'; +EpozLang["Heading2"]='Überschrift 2'; +EpozLang["Heading3"]='Überschrift 3'; +EpozLang["Heading4"]='Überschrift 4'; +EpozLang["Heading5"]='Überschrift 5'; +EpozLang["Heading6"]='Überschrift 6'; +EpozLang["Formatted"]='Formatiert'; + +EpozLang["Bold"]='Fett'; +EpozLang["Italic"]='Kursiv'; +EpozLang["Underline"]='Unterstrichen'; +EpozLang["Strikethrough"]='Durchgestrichen'; + +EpozLang["Subscript"]='Tiefstellen'; +EpozLang["Superscript"]='Hochstellen'; + +EpozLang["RemoveFormat"]='Formatierung entfernen'; + +EpozLang["TextColor"]='Textfarbe'; +EpozLang["BackColor"]='Hintergrundfarbe'; + +EpozLang["AlignLeft"]='Linksbündig'; +EpozLang["Center"]='Zentriert'; +EpozLang["AlignRight"]='Rechtsbündig'; + +EpozLang["OrderedList"]='Aufzählung'; +EpozLang["UnorderedList"]='Liste'; +EpozLang["Outdent"]='Ausrücken'; +EpozLang["Indent"]='Einrücken'; + +EpozLang["InsertLink"]='Link einfügen'; +EpozLang["InsertAnchor"]='Anker einfügen'; +EpozLang["InsertImage"]='Bild einfügen'; +EpozLang["InsertRule"]='Linie einfügen'; +EpozLang["InsertTable"]='Tabelle einfügen'; +EpozLang["Toolbox"]='Werkzeuge'; + +EpozLang["Undo"]='Undo'; +EpozLang["Redo"]='Redo'; + +EpozLang["EnterLinkURL"]='URL des Links eingeben'; +EpozLang["EnterAnchorName"]='Namen des Ankers eingeben'; +EpozLang["EnterImageURL"]='URL des Bildes eingeben'; + +EpozLang["EnterTableRows"]='Anzahl der Reihen'; +EpozLang["EnterTableColumns"]='Anzahl der Spalten'; +EpozLang["EnterTableBorder"]='Randstärke'; +EpozLang["TableWithHead"]='Tabelle mit Kopf'; +EpozLang["TableWithoutHead"]='Tabelle ohne Kopf'; + +EpozLang["HTML"]='HTML'; + +EpozLang["TidyStart"]='HTML-Bereinigung...'; +EpozLang["TidyStop"]='HTML-Bereinigung abgeschlossen.' +EpozLang["TidyError"]='Fehler im HTML-Quelltext.'; diff --git a/epoz/epoz_i18n/epoz_lang_en.js.dtml b/epoz/epoz_i18n/epoz_lang_en.js.dtml new file mode 100755 index 0000000..2642f2e --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_en.js.dtml @@ -0,0 +1,68 @@ +// Epoz-Language-File: en (English) +// maik.jablonski@uni-bielefeld.de, 2003 + +// Global Epoz language-strings dictionary +// Should be present only in "default" language file + +var EpozLang=[]; + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Paragraph'; +EpozLang["Heading1"]='Heading 1'; +EpozLang["Heading2"]='Heading 2'; +EpozLang["Heading3"]='Heading 3'; +EpozLang["Heading4"]='Heading 4'; +EpozLang["Heading5"]='Heading 5'; +EpozLang["Heading6"]='Heading 6'; +EpozLang["Formatted"]='Formatted'; + +EpozLang["Bold"]='Bold'; +EpozLang["Italic"]='Italic'; +EpozLang["Underline"]='Underline'; +EpozLang["Strikethrough"]='Strikethrough'; + +EpozLang["Subscript"]='Subscript'; +EpozLang["Superscript"]='Superscript'; + +EpozLang["RemoveFormat"]='Remove Format'; + +EpozLang["TextColor"]='Text Color'; +EpozLang["BackColor"]='Background Color'; + +EpozLang["AlignLeft"]='Align Left'; +EpozLang["Center"]='Center'; +EpozLang["AlignRight"]='Align Right'; + +EpozLang["OrderedList"]='Ordered List'; +EpozLang["UnorderedList"]='Unordered List'; +EpozLang["Outdent"]='Outdent'; +EpozLang["Indent"]='Indent'; + +EpozLang["InsertLink"]='Insert Link'; +EpozLang["InsertAnchor"]='Insert Anchor'; +EpozLang["InsertImage"]='Insert Image'; +EpozLang["InsertRule"]='Insert Rule'; +EpozLang["InsertTable"]='Insert Table'; +EpozLang["Toolbox"]='Toolbox'; + +EpozLang["Undo"]='Undo'; +EpozLang["Redo"]='Redo'; + +EpozLang["EnterLinkURL"]='Enter Link URL'; +EpozLang["EnterAnchorName"]='Enter Anchor Name'; +EpozLang["EnterImageURL"]='Enter Image URL'; + +EpozLang["EnterTableRows"]='Enter Rows'; +EpozLang["EnterTableColumns"]='Enter Columns'; +EpozLang["EnterTableBorder"]='Enter Border'; +EpozLang["TableWithHead"]='Table with Head'; +EpozLang["TableWithoutHead"]='Table without Head'; + +EpozLang["HTML"]='HTML'; + +// Browser-Status-Messages +// don't use any entities for translations + +EpozLang["TidyStart"]='Tidying...'; +EpozLang["TidyStop"]='Tidying complete.' +EpozLang["TidyError"]='Detected errors in the HTML block.'; diff --git a/epoz/epoz_i18n/epoz_lang_es.js.dtml b/epoz/epoz_i18n/epoz_lang_es.js.dtml new file mode 100755 index 0000000..f6937e0 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_es.js.dtml @@ -0,0 +1,47 @@ +// Epoz-Language-File: es (Spanish) +// Thanks to Pedro J. Rey Sanchiz + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Párrafo'; +EpozLang["Heading1"]='Cabecera 1'; +EpozLang["Heading2"]='Cabecera 2'; +EpozLang["Heading3"]='Cabecera 3'; +EpozLang["Heading4"]='Cabecera 4'; +EpozLang["Heading5"]='Cabecera 5'; +EpozLang["Heading6"]='Cabecera 6'; +EpozLang["Formatted"]='Formateado'; + +EpozLang["Bold"]='Negrita'; +EpozLang["Italic"]='Cursiva'; +EpozLang["Underline"]='Subrayado'; + +EpozLang["Subscript"]='Subíndice'; +EpozLang["Superscript"]='Superíndice'; + +EpozLang["TextColor"]='Color'; +EpozLang["BackColor"]='Color de fondo'; + +EpozLang["AlignLeft"]='Alineación izquierda'; +EpozLang["Center"]='Centrado'; +EpozLang["AlignRight"]='Alineación derecha'; + +EpozLang["OrderedList"]='Lista numerada'; +EpozLang["UnorderedList"]='Viñetas'; +EpozLang["Outdent"]='Sangrar más'; +EpozLang["Indent"]='Sangrar menos'; + +EpozLang["InsertLink"]='Insertar hipervínculo'; +EpozLang["InsertImage"]='Insertar imagen'; +EpozLang["InsertRule"]='Insertar regla horizontal'; +EpozLang["InsertTable"]='Insertar tabla'; +EpozLang["Toolbox"]='Toolbox'; + +EpozLang["Undo"]='Deshacer'; +EpozLang["Redo"]='Rehacer'; + +EpozLang["EnterLinkURL"]='Introduzca la dirección del hipervínculo'; +EpozLang["EnterImageURL"]='Introduzca la situaci?n de la imagen'; + +EpozLang["EnterTableRows"]='Introduzca el número de líneas'; +EpozLang["EnterTableColumns"]='Introduzca el número de columnas'; +EpozLang["EnterTableBorder"]='Introduzca el ancho del borde'; diff --git a/epoz/epoz_i18n/epoz_lang_fi.js.dtml b/epoz/epoz_i18n/epoz_lang_fi.js.dtml new file mode 100755 index 0000000..05aaeba --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_fi.js.dtml @@ -0,0 +1,48 @@ +// Epoz-Language-File: fi (Finnish) +// petri.savolainen@iki.fi, 2003 + +EpozLang["Normal"]='Normaali'; +EpozLang["Paragraph"]='Kappale'; +EpozLang["Heading1"]='Otsikko 1'; +EpozLang["Heading2"]='Otsikko 2'; +EpozLang["Heading3"]='Otsikko 3'; +EpozLang["Heading4"]='Otsikko 4'; +EpozLang["Heading5"]='Otsikko 5'; +EpozLang["Heading6"]='Otsikko 6'; +EpozLang["Formatted"]='Muotoiltu'; + +EpozLang["Bold"]='Lihavoitu'; +EpozLang["Italic"]='Kursivoitu'; +EpozLang["Underline"]='Alleviivattu'; +EpozLang["Strikethrough"]='Yliviivattu'; + +EpozLang["Subscript"]='Alaindeksi'; +EpozLang["Superscript"]='Yläindeksi'; + +EpozLang["TextColor"]='Tekstin väri'; +EpozLang["BackColor"]='Taustan väri'; + +EpozLang["AlignLeft"]='Tasaa vasemmalle'; +EpozLang["Center"]='Keskitä'; +EpozLang["AlignRight"]='Tasaa oikealle'; + +EpozLang["OrderedList"]='Järjestetty lista'; +EpozLang["UnorderedList"]='Järjestämätön lista'; +EpozLang["Outdent"]='Vähennä sisennystä'; +EpozLang["Indent"]='Kasvata sisennystä'; + +EpozLang["InsertLink"]='Lisää linkki'; +EpozLang["InsertImage"]='Lisää kuva'; +EpozLang["InsertRule"]='Lisää viiva'; +EpozLang["InsertTable"]='Lisää taulukko'; +EpozLang["Toolbox"]='Työkalupakki'; + +EpozLang["Undo"]='Peru'; +EpozLang["Redo"]='Tee uudelleen'; + +EpozLang["EnterLinkURL"]='Anna linkin URL'; +EpozLang["EnterImageURL"]='Anna kuvan URL'; + +EpozLang["EnterTableRows"]='Anna rivimäärä'; +EpozLang["EnterTableColumns"]='Anna sarakemäärä'; +EpozLang["EnterTableBorder"]='Anna kehyksen määrittely'; diff --git a/epoz/epoz_i18n/epoz_lang_fr.js.dtml b/epoz/epoz_i18n/epoz_lang_fr.js.dtml new file mode 100755 index 0000000..2093d9e --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_fr.js.dtml @@ -0,0 +1,50 @@ +// Epoz-Language-File: fr (French) +// Jean.Laroque@saint-gobain.com + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Paragraphe'; +EpozLang["Heading1"]='Titre 1'; +EpozLang["Heading2"]='Titre 2'; +EpozLang["Heading3"]='Titre 3'; +EpozLang["Heading4"]='Titre 4'; +EpozLang["Heading5"]='Titre 5'; +EpozLang["Heading6"]='Titre 6'; +EpozLang["Formatted"]='Formaté'; + +EpozLang["Bold"]='Gras'; +EpozLang["Italic"]='Italique'; +EpozLang["Underline"]='Souligné'; +EpozLang["Strikethrough"]='Barré'; + +EpozLang["Subscript"]='Indice'; +EpozLang["Superscript"]='Exposant'; + +EpozLang["TextColor"]='Couleur Texte'; +EpozLang["BackColor"]='Couleur Fond'; + +EpozLang["AlignLeft"]='Aligner à Gauche'; +EpozLang["Center"]='Centrer'; +EpozLang["AlignRight"]='Aligner à Droite'; + +EpozLang["OrderedList"]='Liste Ordonnée'; +EpozLang["UnorderedList"]='Liste Désordonnée'; +EpozLang["Outdent"]='Diminuer le retrait'; +EpozLang["Indent"]='Augmenter le retrait'; + +EpozLang["InsertLink"]='Insertion Lien'; +EpozLang["InsertImage"]='Insertion Image'; +EpozLang["InsertRule"]='Insertion Trait'; +EpozLang["InsertTable"]='Insertion Tableau'; +EpozLang["Toolbox"]='Boite à Outil'; + +EpozLang["Undo"]='Annuler'; +EpozLang["Redo"]='Rétablir'; + +EpozLang["EnterLinkURL"]='Entrer Lien URL'; +EpozLang["EnterImageURL"]='Entrer Image URL'; + +EpozLang["EnterTableRows"]='Nombre de Lignes'; +EpozLang["EnterTableColumns"]='Nombre de Colonnes'; +EpozLang["EnterTableBorder"]='Type de Bordure'; +EpozLang["TableWithHead"]='Tableau avec Entête'; +EpozLang["TableWithoutHead"]='Tableau sans Entête'; diff --git a/epoz/epoz_i18n/epoz_lang_hu.js.dtml b/epoz/epoz_i18n/epoz_lang_hu.js.dtml new file mode 100755 index 0000000..0e16d2a --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_hu.js.dtml @@ -0,0 +1,50 @@ +// Epoz-Language-File: hu (Hungarian) +// dtamas@pressflex.com, 2003 + +EpozLang["Normal"]='Normál'; +EpozLang["Paragraph"]='Bekezdés'; +EpozLang["Heading1"]='Címsor 1'; +EpozLang["Heading2"]='Címsor 2'; +EpozLang["Heading3"]='Címsor 3'; +EpozLang["Heading4"]='Címsor 4'; +EpozLang["Heading5"]='Címsor 5'; +EpozLang["Heading6"]='Címsor 6'; +EpozLang["Formatted"]='Formázott'; + +EpozLang["Bold"]='Félkövér'; +EpozLang["Italic"]='Kurzív'; +EpozLang["Underline"]='Aláhúzott'; +EpozLang["Strikethrough"]='Áthúzott'; + +EpozLang["Subscript"]='Alsó index'; +EpozLang["Superscript"]='Felsô index'; + +EpozLang["TextColor"]='Szövegszín'; +EpozLang["BackColor"]='Háttérszín'; + +EpozLang["AlignLeft"]='Balra igazított'; +EpozLang["Center"]='Közép'; +EpozLang["AlignRight"]='Jobbra igazított'; + +EpozLang["OrderedList"]='Sorszámozott lista'; +EpozLang["UnorderedList"]='Felsorolás'; +EpozLang["Outdent"]='Kihúzás'; +EpozLang["Indent"]='Behúzás'; + +EpozLang["InsertLink"]='Hivatkozás beszúrása'; +EpozLang["InsertImage"]='Kép beszúrása'; +EpozLang["InsertRule"]='Elválasztó beszúrása'; +EpozLang["InsertTable"]='Táblázat beszúrása'; +EpozLang["Toolbox"]='Eszköztár'; + +EpozLang["Undo"]='Vissza'; +EpozLang["Redo"]='Újra'; + +EpozLang["EnterLinkURL"]='Írja be a hivatkozás URL-jét'; +EpozLang["EnterImageURL"]='Írja be a kép URL-jét'; + +EpozLang["EnterTableRows"]='Sorok száma'; +EpozLang["EnterTableColumns"]='Oszlopok száma'; +EpozLang["EnterTableBorder"]='Keretvastagság'; +EpozLang["TableWithHead"]='Táblázat fejléccel'; +EpozLang["TableWithoutHead"]='Táblázat fejléc nélkül'; diff --git a/epoz/epoz_i18n/epoz_lang_it.js.dtml b/epoz/epoz_i18n/epoz_lang_it.js.dtml new file mode 100755 index 0000000..958521f --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_it.js.dtml @@ -0,0 +1,48 @@ +// Epoz-Language-File: it (Italiano) +// maik.jablonski@uni-bielefeld.de, 2003 +// nbe@libero.it, 2003 traduzione + +EpozLang["Normal"]='Normale'; +EpozLang["Paragraph"]='Paragrafo'; +EpozLang["Heading1"]='Titolo 1'; +EpozLang["Heading2"]='Titolo 2'; +EpozLang["Heading3"]='Titolo 3'; +EpozLang["Heading4"]='Titolo 4'; +EpozLang["Heading5"]='Titolo 5'; +EpozLang["Heading6"]='Titolo 6'; +EpozLang["Formatted"]='Formattato'; + +EpozLang["Bold"]='Grassetto'; +EpozLang["Italic"]='Italico'; +EpozLang["Underline"]='Sottolineato'; + +EpozLang["Subscript"]='Pedice'; +EpozLang["Superscript"]='Apice'; + +EpozLang["TextColor"]='Colore testo'; +EpozLang["BackColor"]='Colore sfondo'; + +EpozLang["AlignLeft"]='Allinea sinistra'; +EpozLang["Center"]='Centra'; +EpozLang["AlignRight"]='Allinea destra'; + +EpozLang["OrderedList"]='Lista numerata'; +EpozLang["UnorderedList"]='Lista puntata'; +EpozLang["Outdent"]='Riduci rientro'; +EpozLang["Indent"]='Aumenta rientro'; + +EpozLang["InsertLink"]='Inserisci link'; +EpozLang["InsertImage"]='Inserisci immagine'; +EpozLang["InsertRule"]='Inserisci separatore'; +EpozLang["InsertTable"]='Inserisci tabella'; +EpozLang["Toolbox"]='Toolbox'; + +EpozLang["Undo"]='Annulla'; +EpozLang["Redo"]='Ripeti'; + +EpozLang["EnterLinkURL"]='Inserisci URL link'; +EpozLang["EnterImageURL"]='Inserisci immagine link'; + +EpozLang["EnterTableRows"]='Inserisci righe'; +EpozLang["EnterTableColumns"]='Inserisci colonne'; +EpozLang["EnterTableBorder"]='Inserisci bordo'; diff --git a/epoz/epoz_i18n/epoz_lang_nl.js.dtml b/epoz/epoz_i18n/epoz_lang_nl.js.dtml new file mode 100755 index 0000000..d9d7590 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_nl.js.dtml @@ -0,0 +1,47 @@ +// Epoz-Language-File: nl (Dutch) +// ad.schellevis@imasgroep.nl, 2003 + +EpozLang["Normal"]='Normaal'; +EpozLang["Paragraph"]='Paragraaf'; +EpozLang["Heading1"]='Kop 1'; +EpozLang["Heading2"]='Kop 2'; +EpozLang["Heading3"]='Kop 3'; +EpozLang["Heading4"]='Kop 4'; +EpozLang["Heading5"]='Kop 5'; +EpozLang["Heading6"]='Kop 6'; +EpozLang["Formatted"]='Opgemaakt'; + +EpozLang["Bold"]='Vet'; +EpozLang["Italic"]='Cursief'; +EpozLang["Underline"]='Onderstreept'; + +EpozLang["Subscript"]='Subscript'; +EpozLang["Superscript"]='Superscript'; + +EpozLang["TextColor"]='Tekst kleur'; +EpozLang["BackColor"]='Achtergrond kleur'; + +EpozLang["AlignLeft"]='Links uitlijnen'; +EpozLang["Center"]='Centreren'; +EpozLang["AlignRight"]='Rechts uitlijnen'; + +EpozLang["OrderedList"]='Nummering'; +EpozLang["UnorderedList"]='Opsommingstekens'; +EpozLang["Outdent"]='Inspringen verkleinen'; +EpozLang["Indent"]='Inspringen vergroten'; + +EpozLang["InsertLink"]='Hyperlink invoegen'; +EpozLang["InsertImage"]='Plaatje invoegen'; +EpozLang["InsertRule"]='Rand invoegen'; +EpozLang["InsertTable"]='Tabel invoegen'; +EpozLang["Toolbox"]='Toolbox'; + +EpozLang["Undo"]='Ongedaan maken'; +EpozLang["Redo"]='Herhalen'; + +EpozLang["EnterLinkURL"]='Ingeven hyperlink URL'; +EpozLang["EnterImageURL"]='Ingeven locatie plaatje'; + +EpozLang["EnterTableRows"]='Invoeren Rijen'; +EpozLang["EnterTableColumns"]='Invoegen Kolommen'; +EpozLang["EnterTableBorder"]='Invoegen Kader'; diff --git a/epoz/epoz_i18n/epoz_lang_no.js.dtml b/epoz/epoz_i18n/epoz_lang_no.js.dtml new file mode 100755 index 0000000..7c35e62 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_no.js.dtml @@ -0,0 +1,55 @@ +// Epoz-Language-File: no (Norwegian) +// einar.ness.jensen@hf.ntnu.no, 2004 + + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Avsnitt'; +EpozLang["Heading1"]='Overskrift 1'; +EpozLang["Heading2"]='Overskrift 2'; +EpozLang["Heading3"]='Overskrift 3'; +EpozLang["Heading4"]='Overskrift 4'; +EpozLang["Heading5"]='Overskrift 5'; +EpozLang["Heading6"]='Overskrift 6'; +EpozLang["Formatted"]='Preformatert'; + +EpozLang["Bold"]='Fet'; +EpozLang["Italic"]='Kursiv'; +EpozLang["Underline"]='Understreket'; +EpozLang["Strikethrough"]='Gjennomstreket'; + +EpozLang["Subscript"]='Subskrift'; +EpozLang["Superscript"]='Superskrift'; + +EpozLang["RemoveFormat"]='Fjern Formatering'; + +EpozLang["TextColor"]='Tekstfarge'; +EpozLang["BackColor"]='Bakgrunnsfarge'; + +EpozLang["AlignLeft"]='Venstrejustert'; +EpozLang["Center"]='Midtjustert'; +EpozLang["AlignRight"]='Høyrejustert'; + +EpozLang["OrderedList"]='Ordnet Liste'; +EpozLang["UnorderedList"]='Uordnet Liste'; +EpozLang["Outdent"]='Minsk Innrykk'; +EpozLang["Indent"]='Øk Innrykk'; + +EpozLang["InsertLink"]='Sett inn Lenke'; +EpozLang["InsertAnchor"]='Sett inn Anker'; +EpozLang["InsertImage"]='Sett inn Bilde'; +EpozLang["InsertRule"]='Sett inn Horisontal Linje'; +EpozLang["InsertTable"]='Sett inn Tabell'; +EpozLang["Toolbox"]='Verktøy'; + +EpozLang["Undo"]='Angre'; +EpozLang["Redo"]='Gjenta'; + +EpozLang["EnterLinkURL"]='Skriv inn Lenke-URL'; +EpozLang["EnterAnchorName"]='Skriv inn Navn på Anker'; +EpozLang["EnterImageURL"]='Skriv inn Bilde-URL'; + +EpozLang["EnterTableRows"]='Antall Rader'; +EpozLang["EnterTableColumns"]='Antall Kolonner'; +EpozLang["EnterTableBorder"]='Bredde Kantlinje'; +EpozLang["TableWithHead"]='Tabell med Topplinje'; +EpozLang["TableWithoutHead"]='Tabell uten Topplinje'; diff --git a/epoz/epoz_i18n/epoz_lang_pl.js.dtml b/epoz/epoz_i18n/epoz_lang_pl.js.dtml new file mode 100755 index 0000000..7912509 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_pl.js.dtml @@ -0,0 +1,47 @@ +// Epoz-Language-File: pl (Polish) +// qbak@qbak.net, 2003 + +EpozLang["Normal"]='Normalny'; +EpozLang["Paragraph"]='Akapit'; +EpozLang["Heading1"]='Nag³ówek 1'; +EpozLang["Heading2"]='Nag³ówek 2'; +EpozLang["Heading3"]='Nag³ówek 3'; +EpozLang["Heading4"]='Nag³ówek 4'; +EpozLang["Heading5"]='Nag³ówek 5'; +EpozLang["Heading6"]='Nag³ówek 6'; +EpozLang["Formatted"]='Sformatowany'; + +EpozLang["Bold"]='Pogrubienie'; +EpozLang["Italic"]='Kursywa'; +EpozLang["Underline"]='Podkre¶lenie'; + +EpozLang["Subscript"]='Indeks dolny'; +EpozLang["Superscript"]='Indeks górny'; + +EpozLang["TextColor"]='Kolor tekstu'; +EpozLang["BackColor"]='Kolor t³a'; + +EpozLang["AlignLeft"]='Wyrównanie do lewej'; +EpozLang["Center"]='Wy¶rodkowanie'; +EpozLang["AlignRight"]='Wyrównanie do prawej'; + +EpozLang["OrderedList"]='Lista numerowana'; +EpozLang["UnorderedList"]='Lista wypunktowana'; +EpozLang["Outdent"]='Zmniejsz wciêcie'; +EpozLang["Indent"]='Zwiêksz wciêcie'; + +EpozLang["InsertLink"]='Wstaw odno¶nik'; +EpozLang["InsertImage"]='Wstaw obrazek'; +EpozLang["InsertRule"]='Wstaw linijkê'; +EpozLang["InsertTable"]='Wstaw tabelê'; +EpozLang["Toolbox"]='Narzêdzia'; + +EpozLang["Undo"]='Cofnij'; +EpozLang["Redo"]='Powtórz'; + +EpozLang["EnterLinkURL"]='Wprowad¼ URL odno¶nika'; +EpozLang["EnterImageURL"]='Wprowad¼ URL obrazka'; + +EpozLang["EnterTableRows"]='Wprowad¼ wiersze'; +EpozLang["EnterTableColumns"]='Wprowad¼ kolumny'; +EpozLang["EnterTableBorder"]='Wprowad¼ ramkê'; diff --git a/epoz/epoz_i18n/epoz_lang_pt-br.js.dtml b/epoz/epoz_i18n/epoz_lang_pt-br.js.dtml new file mode 100755 index 0000000..85831d2 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_pt-br.js.dtml @@ -0,0 +1,54 @@ +// Epoz-Language-File: pt_br (Portuguese Brazil) +// "Luiz Fernando Pasqual S. Souza" , 2004 + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Parágrafo'; +EpozLang["Heading1"]='Cabeçalho 1'; +EpozLang["Heading2"]='Cabeçalho 2'; +EpozLang["Heading3"]='Cabeçalho 3'; +EpozLang["Heading4"]='Cabeçalho 4'; +EpozLang["Heading5"]='Cabeçalho 5'; +EpozLang["Heading6"]='Cabeçalho 6'; +EpozLang["Formatted"]='Formatado'; + +EpozLang["Bold"]='Negrito'; +EpozLang["Italic"]='Itálico'; +EpozLang["Underline"]='Sublinhado'; +EpozLang["Strikethrough"]='Riscado'; + +EpozLang["Subscript"]='Subescrito'; +EpozLang["Superscript"]='Sobrescrito'; + +EpozLang["RemoveFormat"]='Remover formatação'; + +EpozLang["TextColor"]='Cor do texto'; +EpozLang["BackColor"]='Cor do fundo'; + +EpozLang["AlignLeft"]='Alinhar à esquerda'; +EpozLang["Center"]='Centralizar'; +EpozLang["AlignRight"]='Alinhar à direita'; + +EpozLang["OrderedList"]='Lista numerada'; +EpozLang["UnorderedList"]='Lista ordenada'; +EpozLang["Outdent"]='Diminuir parágrafo'; +EpozLang["Indent"]='Aumentar parágrafo'; + +EpozLang["InsertLink"]='Inserir Link'; +EpozLang["InsertAnchor"]='Inserir âncora'; +EpozLang["InsertImage"]='Inserir Imagem'; +EpozLang["InsertRule"]='Inserir Linha'; +EpozLang["InsertTable"]='Inserir Tabela'; +EpozLang["Toolbox"]='Caixa de ferramentas'; + +EpozLang["Undo"]='Voltar'; +EpozLang["Redo"]='Refazer'; + +EpozLang["EnterLinkURL"]='URL do link'; +EpozLang["EnterAnchorName"]='Nome da âncora'; +EpozLang["EnterImageURL"]='URL da imagem'; + +EpozLang["EnterTableRows"]='Linhas'; +EpozLang["EnterTableColumns"]='Colunas'; +EpozLang["EnterTableBorder"]='Bordas'; +EpozLang["TableWithHead"]='Tabela com cabeçalho'; +EpozLang["TableWithoutHead"]='Tabela sem cabeçalho'; diff --git a/epoz/epoz_i18n/epoz_lang_pt.js.dtml b/epoz/epoz_i18n/epoz_lang_pt.js.dtml new file mode 100755 index 0000000..7756b57 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_pt.js.dtml @@ -0,0 +1,52 @@ +// Epoz-Language-File: pt (Portuguese) +// nteixeira@bmc.pt, 2003 + +EpozLang["Normal"]='Normal'; +EpozLang["Paragraph"]='Parágrafo'; +EpozLang["Heading1"]='Cabeçalho 1'; +EpozLang["Heading2"]='Cabeçalho 2'; +EpozLang["Heading3"]='Cabeçalho 3'; +EpozLang["Heading4"]='Cabeçalho 4'; +EpozLang["Heading5"]='Cabeçalho 5'; +EpozLang["Heading6"]='Cabeçalho 6'; +EpozLang["Formatted"]='Formatado'; + +EpozLang["Bold"]='Negrito'; +EpozLang["Italic"]='Itálico'; +EpozLang["Underline"]='Sublinhado'; +EpozLang["Strikethrough"]='Traçado'; + +EpozLang["Subscript"]='Subescrito'; +EpozLang["Superscript"]='Sobrescrito'; + +EpozLang["RemoveFormat"]='Retirar Formatação'; + +EpozLang["TextColor"]='Cor do texto'; +EpozLang["BackColor"]='Cor do fundo'; + +EpozLang["AlignLeft"]='Alinhar à esquerda'; +EpozLang["Center"]='Centrar'; +EpozLang["AlignRight"]='Alinhar à direita'; + +EpozLang["OrderedList"]='Lista numerada'; +EpozLang["UnorderedList"]='Lista ordenada'; +EpozLang["Outdent"]='Diminuir parágrafo'; +EpozLang["Indent"]='Aumentar parágrafo'; + +EpozLang["InsertLink"]='Inserir Link'; +EpozLang["InsertImage"]='Inserir Imagem'; +EpozLang["InsertRule"]='Inserir Linha'; +EpozLang["InsertTable"]='Inserir Tabela'; +EpozLang["Toolbox"]='Caixa de ferramentas'; + +EpozLang["Undo"]='Desfazer'; +EpozLang["Redo"]='Refazer'; + +EpozLang["EnterLinkURL"]='URL do link'; +EpozLang["EnterImageURL"]='URL da imagem'; + +EpozLang["EnterTableRows"]='Número de Linhas'; +EpozLang["EnterTableColumns"]='Número de Colunas'; +EpozLang["EnterTableBorder"]='Tamanho das Bordas'; +EpozLang["TableWithHead"]='Tabela com cabeçalho'; +EpozLang["TableWithoutHead"]='Tabela sem cabeçalho'; diff --git a/epoz/epoz_i18n/epoz_lang_ru.js.dtml b/epoz/epoz_i18n/epoz_lang_ru.js.dtml new file mode 100755 index 0000000..7a7fb48 --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_ru.js.dtml @@ -0,0 +1,59 @@ +// Epoz-Language-File: ru (Russian (UTF-8)) +// Sergey V. Volobuev, 2003 +// Theo (theo@ua.fm), 22-10-2004 + +EpozLang["Normal"]='Обычный'; +EpozLang["Paragraph"]='Абзац'; +EpozLang["Heading1"]='Заголовок 1'; +EpozLang["Heading2"]='Заголовок 2'; +EpozLang["Heading3"]='Заголовок 3'; +EpozLang["Heading4"]='Заголовок 4'; +EpozLang["Heading5"]='Заголовок 5'; +EpozLang["Heading6"]='Заголовок 6'; +EpozLang["Formatted"]='Форматированный'; + +EpozLang["Bold"]='Полужирный'; +EpozLang["Italic"]='Курсив'; +EpozLang["Underline"]='Подчеркнутый'; +EpozLang["Strikethrough"]='Зачёркнутый'; + +EpozLang["Subscript"]='Нижний индекс'; +EpozLang["Superscript"]='Верхний индекс'; + +EpozLang["RemoveFormat"]='Убрать форматирование'; + +EpozLang["TextColor"]='Цвет шрифта'; +EpozLang["BackColor"]='Цвет фона'; + +EpozLang["AlignLeft"]='По левому краю'; +EpozLang["Center"]='По центру'; +EpozLang["AlignRight"]='По правому краю'; + +EpozLang["OrderedList"]='Нумерация'; +EpozLang["UnorderedList"]='Маркеры'; +EpozLang["Outdent"]='Уменьшить отступ'; +EpozLang["Indent"]='Увеличить отступ'; + +EpozLang["InsertLink"]='Вставить гиперссылку'; +EpozLang["InsertAnchor"]='Вставить якорь'; +EpozLang["InsertImage"]='Вставить изображение'; +EpozLang["InsertRule"]='Вставить линейку'; +EpozLang["InsertTable"]='Вставить таблицу'; +EpozLang["Toolbox"]='Инструменты'; + +EpozLang["Undo"]='Отменить'; +EpozLang["Redo"]='Повторить'; + +EpozLang["EnterLinkURL"]='Введите URL страницы'; +EpozLang["EnterAnchorName"]='Введите названия якоря'; +EpozLang["EnterImageURL"]='Введите URL изображения'; + +EpozLang["EnterTableRows"]='Число строк'; +EpozLang["EnterTableColumns"]='Число столбцов'; +EpozLang["EnterTableBorder"]='Ширина границы'; + +EpozLang["TableWithHead"]='Таблица с заголовком'; +EpozLang["TableWithoutHead"]='Таблица без заголовка'; + +EpozLang["HTML"]='HTML'; + diff --git a/epoz/epoz_i18n/epoz_lang_zh-cn.js.dtml b/epoz/epoz_i18n/epoz_lang_zh-cn.js.dtml new file mode 100755 index 0000000..2fce01d --- /dev/null +++ b/epoz/epoz_i18n/epoz_lang_zh-cn.js.dtml @@ -0,0 +1,58 @@ +// Epoz-Language-File: zh (Chinese) +// panjy@plone.cn, 2003 + +var EpozLang=[]; + +EpozLang['Normal']='常规'; +EpozLang['Paragraph']='段落'; +EpozLang['Heading1']='标题 1'; +EpozLang['Heading2']='标题 2'; +EpozLang['Heading3']='标题 3'; +EpozLang['Heading4']='标题 4'; +EpozLang['Heading5']='标题 5'; +EpozLang['Heading6']='标题 6'; +EpozLang['Formatted']='保持格式'; + +EpozLang['Bold']='加粗'; +EpozLang['Italic']='倾斜'; +EpozLang['Underline']='下划线'; +EpozLang["Strikethrough"]='中划线'; + +EpozLang['Subscript']='下标'; +EpozLang['Superscript']='上标'; + +EpozLang["RemoveFormat"]='去除格式'; + +EpozLang['TextColor']='文字颜色'; +EpozLang['BackColor']='背景颜色'; + +EpozLang['AlignLeft']='左对齐'; +EpozLang['Center']='居中'; +EpozLang['AlignRight']='右对齐'; + +EpozLang['OrderedList']='有序清单'; +EpozLang['UnorderedList']='无序清单'; +EpozLang['Outdent']='减少缩进'; +EpozLang['Indent']='增加缩进'; + +EpozLang['InsertLink']='添加链接'; +EpozLang["InsertAnchor"]='添加书签(Anchor)'; +EpozLang['InsertImage']='添加图片'; +EpozLang['InsertRule']='添加尺线'; +EpozLang['InsertTable']='添加表格'; +EpozLang['Toolbox']='工具箱'; + +EpozLang['Undo']='撤销'; +EpozLang['Redo']='恢复'; + +EpozLang['EnterLinkURL']='输入链接的URL地址'; +EpozLang["EnterAnchorName"]='输入书签(Anchor)名'; +EpozLang['EnterImageURL']='输入图片的UR地址'; + +EpozLang['EnterTableRows']='输入行数'; +EpozLang['EnterTableColumns']='输入列数'; +EpozLang['EnterTableBorder']='输入边框'; +EpozLang["TableWithHead"]='带标题的表格'; +EpozLang["TableWithoutHead"]='不带标题的表格'; + + diff --git a/epoz/epoz_images/epoz_button_anchor.gif b/epoz/epoz_images/epoz_button_anchor.gif new file mode 100644 index 0000000..74b3dac Binary files /dev/null and b/epoz/epoz_images/epoz_button_anchor.gif differ diff --git a/epoz/epoz_images/epoz_button_bgcolor.gif b/epoz/epoz_images/epoz_button_bgcolor.gif new file mode 100644 index 0000000..436503a Binary files /dev/null and b/epoz/epoz_images/epoz_button_bgcolor.gif differ diff --git a/epoz/epoz_images/epoz_button_bold.gif b/epoz/epoz_images/epoz_button_bold.gif new file mode 100644 index 0000000..671240d Binary files /dev/null and b/epoz/epoz_images/epoz_button_bold.gif differ diff --git a/epoz/epoz_images/epoz_button_centre.gif b/epoz/epoz_images/epoz_button_centre.gif new file mode 100644 index 0000000..d7534cb Binary files /dev/null and b/epoz/epoz_images/epoz_button_centre.gif differ diff --git a/epoz/epoz_images/epoz_button_hr.gif b/epoz/epoz_images/epoz_button_hr.gif new file mode 100644 index 0000000..03bdd0f Binary files /dev/null and b/epoz/epoz_images/epoz_button_hr.gif differ diff --git a/epoz/epoz_images/epoz_button_hyperlink.gif b/epoz/epoz_images/epoz_button_hyperlink.gif new file mode 100644 index 0000000..7a63eb5 Binary files /dev/null and b/epoz/epoz_images/epoz_button_hyperlink.gif differ diff --git a/epoz/epoz_images/epoz_button_image.gif b/epoz/epoz_images/epoz_button_image.gif new file mode 100644 index 0000000..db3c786 Binary files /dev/null and b/epoz/epoz_images/epoz_button_image.gif differ diff --git a/epoz/epoz_images/epoz_button_indent.gif b/epoz/epoz_images/epoz_button_indent.gif new file mode 100644 index 0000000..56833dc Binary files /dev/null and b/epoz/epoz_images/epoz_button_indent.gif differ diff --git a/epoz/epoz_images/epoz_button_italic.gif b/epoz/epoz_images/epoz_button_italic.gif new file mode 100644 index 0000000..acccd12 Binary files /dev/null and b/epoz/epoz_images/epoz_button_italic.gif differ diff --git a/epoz/epoz_images/epoz_button_left_just.gif b/epoz/epoz_images/epoz_button_left_just.gif new file mode 100644 index 0000000..bdcbf3c Binary files /dev/null and b/epoz/epoz_images/epoz_button_left_just.gif differ diff --git a/epoz/epoz_images/epoz_button_list.gif b/epoz/epoz_images/epoz_button_list.gif new file mode 100644 index 0000000..51ebe77 Binary files /dev/null and b/epoz/epoz_images/epoz_button_list.gif differ diff --git a/epoz/epoz_images/epoz_button_numbered_list.gif b/epoz/epoz_images/epoz_button_numbered_list.gif new file mode 100644 index 0000000..aa49171 Binary files /dev/null and b/epoz/epoz_images/epoz_button_numbered_list.gif differ diff --git a/epoz/epoz_images/epoz_button_outdent.gif b/epoz/epoz_images/epoz_button_outdent.gif new file mode 100644 index 0000000..a0d1b07 Binary files /dev/null and b/epoz/epoz_images/epoz_button_outdent.gif differ diff --git a/epoz/epoz_images/epoz_button_redo.gif b/epoz/epoz_images/epoz_button_redo.gif new file mode 100644 index 0000000..6f2b9e9 Binary files /dev/null and b/epoz/epoz_images/epoz_button_redo.gif differ diff --git a/epoz/epoz_images/epoz_button_right_just.gif b/epoz/epoz_images/epoz_button_right_just.gif new file mode 100644 index 0000000..e994cdc Binary files /dev/null and b/epoz/epoz_images/epoz_button_right_just.gif differ diff --git a/epoz/epoz_images/epoz_button_space.gif b/epoz/epoz_images/epoz_button_space.gif new file mode 100644 index 0000000..2799b45 Binary files /dev/null and b/epoz/epoz_images/epoz_button_space.gif differ diff --git a/epoz/epoz_images/epoz_button_strikethrough.gif b/epoz/epoz_images/epoz_button_strikethrough.gif new file mode 100644 index 0000000..a231879 Binary files /dev/null and b/epoz/epoz_images/epoz_button_strikethrough.gif differ diff --git a/epoz/epoz_images/epoz_button_subscript.gif b/epoz/epoz_images/epoz_button_subscript.gif new file mode 100644 index 0000000..a9a6c86 Binary files /dev/null and b/epoz/epoz_images/epoz_button_subscript.gif differ diff --git a/epoz/epoz_images/epoz_button_superscript.gif b/epoz/epoz_images/epoz_button_superscript.gif new file mode 100644 index 0000000..b032453 Binary files /dev/null and b/epoz/epoz_images/epoz_button_superscript.gif differ diff --git a/epoz/epoz_images/epoz_button_table.gif b/epoz/epoz_images/epoz_button_table.gif new file mode 100644 index 0000000..3241d36 Binary files /dev/null and b/epoz/epoz_images/epoz_button_table.gif differ diff --git a/epoz/epoz_images/epoz_button_textcolor.gif b/epoz/epoz_images/epoz_button_textcolor.gif new file mode 100644 index 0000000..7ce1139 Binary files /dev/null and b/epoz/epoz_images/epoz_button_textcolor.gif differ diff --git a/epoz/epoz_images/epoz_button_tools.gif b/epoz/epoz_images/epoz_button_tools.gif new file mode 100644 index 0000000..8bf363e Binary files /dev/null and b/epoz/epoz_images/epoz_button_tools.gif differ diff --git a/epoz/epoz_images/epoz_button_underline.gif b/epoz/epoz_images/epoz_button_underline.gif new file mode 100644 index 0000000..7a646a8 Binary files /dev/null and b/epoz/epoz_images/epoz_button_underline.gif differ diff --git a/epoz/epoz_images/epoz_button_undo.gif b/epoz/epoz_images/epoz_button_undo.gif new file mode 100644 index 0000000..1424112 Binary files /dev/null and b/epoz/epoz_images/epoz_button_undo.gif differ diff --git a/epoz/epoz_images/epoz_button_unformat.gif b/epoz/epoz_images/epoz_button_unformat.gif new file mode 100644 index 0000000..2c370df Binary files /dev/null and b/epoz/epoz_images/epoz_button_unformat.gif differ diff --git a/epoz/epoz_plone/epoz_toolbox.pt b/epoz/epoz_plone/epoz_toolbox.pt new file mode 100755 index 0000000..618087b --- /dev/null +++ b/epoz/epoz_plone/epoz_toolbox.pt @@ -0,0 +1,130 @@ + + + + + +Title or Id + + + + + + +
+ +
Search Terms
+ + +
+ + +
+ Search results +
+
+ + + + + + + + » + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ + Title + + Title + + + + + Metatype + Insert Link + +
+ +
+ +
+ + diff --git a/epoz/epoz_plone/epoz_wysiwyg_support.pt b/epoz/epoz_plone/epoz_wysiwyg_support.pt new file mode 100755 index 0000000..a08d19e --- /dev/null +++ b/epoz/epoz_plone/epoz_wysiwyg_support.pt @@ -0,0 +1,113 @@ + + +
+ + + + + + + + + + + +
+ +
+ + + + + + + + + +
+ + + +
+ If you are unsure of which format to use, just select Plain + Text and type the document as you usually do. +
+ + +
+ + +
+ + + + +
+
+ +
+
+ \ No newline at end of file diff --git a/epoz/epoz_plone/wysiwyg_support.pt b/epoz/epoz_plone/wysiwyg_support.pt new file mode 100755 index 0000000..5fa8114 --- /dev/null +++ b/epoz/epoz_plone/wysiwyg_support.pt @@ -0,0 +1,21 @@ + + + + +
+ + + + +
+ +
+ + + + +
+ + diff --git a/i18n/epoz_lang_da.po b/i18n/epoz_lang_da.po new file mode 100644 index 0000000..70d30a0 --- /dev/null +++ b/i18n/epoz_lang_da.po @@ -0,0 +1,134 @@ +# Gettext Epoz-Language-File: da (Danish) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: overby@opentobusiness.com\n" +"Language-Team: maik.jablonski@uni-bielefeld.de, overby@opentobusiness.com\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: da\n" +"Language-Name: Danish\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Citat" + +msgid "Heading1" +msgstr "Overskift 1" + +msgid "Heading2" +msgstr "Overskift 2" + +msgid "Heading3" +msgstr "Overskift 3" + +msgid "Heading4" +msgstr "Overskift 4" + +msgid "Heading5" +msgstr "Overskift 5" + +msgid "Heading6" +msgstr "Overskift 6" + +msgid "Formatted" +msgstr "Formatteret" + +msgid "Bold" +msgstr "Fed" + +msgid "Italic" +msgstr "Kursiv" + +msgid "Underline" +msgstr "Understreg" + +msgid "Strikethrough" +msgstr "Gennemstreg" + +msgid "Subscript" +msgstr "Sænket skrift" + +msgid "Superscript" +msgstr "Hævet skrift" + +msgid "RemoveFormat" +msgstr "Fjern formattering" + +msgid "TextColor" +msgstr "Skriftfarve" + +msgid "BackColor" +msgstr "Baggrundsfarve" + +msgid "AlignLeft" +msgstr "Venstrejusteret" + +msgid "Center" +msgstr "Centreret" + +msgid "AlignRight" +msgstr "Højrejusteret" + +msgid "OrderedList" +msgstr "Nummereret liste" + +msgid "UnorderedList" +msgstr "Punktliste" + +msgid "Outdent" +msgstr "Formindsk indrykning" + +msgid "Indent" +msgstr "Forøg indrykning" + +msgid "InsertLink" +msgstr "Indsæt link" + +msgid "InsertImage" +msgstr "Indsæt billede" + +msgid "InsertRule" +msgstr "Indsæt linie" + +msgid "InsertTable" +msgstr "Indsæt table" + +msgid "Toolbox" +msgstr "Værktøjskasse" + +msgid "Undo" +msgstr "Fortryd" + +msgid "Redo" +msgstr "Annuller fortryd" + +msgid "EnterLinkURL" +msgstr "Indsæt link adresse" + +msgid "EnterImageURL" +msgstr "Indsæt bille placering" + +msgid "EnterTableRows" +msgstr "Indsæt række" + +msgid "EnterTableColumns" +msgstr "Indsæt kolonne" + +msgid "EnterTableBorder" +msgstr "Kant" + +msgid "TableWithHead" +msgstr "Tabel med hoved" + +msgid "TableWithoutHead" +msgstr "Tabel uden hoved" diff --git a/i18n/epoz_lang_de.po b/i18n/epoz_lang_de.po new file mode 100644 index 0000000..c5f4c1b --- /dev/null +++ b/i18n/epoz_lang_de.po @@ -0,0 +1,153 @@ +# Gettext Epoz-Language-File: de (Deutsch) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: maik.jablonski@uni-bielefeld.de\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: de\n" +"Language-Name: Deutsch\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" +"X-Is-Fallback-For: de-de, de-at, de-li, de-lu, de-ch\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Absatz" + +msgid "Heading1" +msgstr "Überschrift 1" + +msgid "Heading2" +msgstr "Überschrift 2" + +msgid "Heading3" +msgstr "Überschrift 3" + +msgid "Heading4" +msgstr "Überschrift 4" + +msgid "Heading5" +msgstr "Überschrift 5" + +msgid "Heading6" +msgstr "Überschrift 6" + +msgid "Formatted" +msgstr "Formatiert" + +msgid "Bold" +msgstr "Fett" + +msgid "Italic" +msgstr "Kursiv" + +msgid "Underline" +msgstr "Unterstrichen" + +msgid "Strikethrough" +msgstr "Durchgestrichen" + +msgid "Subscript" +msgstr "Tiefstellen" + +msgid "Superscript" +msgstr "Hochstellen" + +msgid "RemoveFormat" +msgstr "Formatierung entfernen" + +msgid "TextColor" +msgstr "Textfarbe" + +msgid "BackColor" +msgstr "Hintergrundfarbe" + +msgid "AlignLeft" +msgstr "Linksbündig" + +msgid "Center" +msgstr "Zentriert" + +msgid "AlignRight" +msgstr "Rechtsbündig" + +msgid "OrderedList" +msgstr "Aufzählung" + +msgid "UnorderedList" +msgstr "Liste" + +msgid "Outdent" +msgstr "Ausrücken" + +msgid "Indent" +msgstr "Einrücken" + +msgid "InsertLink" +msgstr "Link einfügen" + +msgid "InsertAnchor" +msgstr "Anker einfügen" + +msgid "InsertImage" +msgstr "Bild einfügen" + +msgid "InsertRule" +msgstr "Linie einfügen" + +msgid "InsertTable" +msgstr "Tabelle einfügen" + +msgid "Toolbox" +msgstr "Werkzeuge" + +msgid "Undo" +msgstr "Undo" + +msgid "Redo" +msgstr "Redo" + +msgid "EnterLinkURL" +msgstr "URL des Links eingeben" + +msgid "EnterAnchorName" +msgstr "Namen des Ankers eingeben" + +msgid "EnterImageURL" +msgstr "URL des Bildes eingeben" + +msgid "EnterTableRows" +msgstr "Anzahl der Reihen" + +msgid "EnterTableColumns" +msgstr "Anzahl der Spalten" + +msgid "EnterTableBorder" +msgstr "Randstärke" + +msgid "TableWithHead" +msgstr "Tabelle mit Kopf" + +msgid "TableWithoutHead" +msgstr "Tabelle ohne Kopf" + +msgid "HTML" +msgstr "HTML" + +msgid "TidyStart" +msgstr "HTML-Bereinigung..." + +msgid "TidyStop" +msgstr "HTML-Bereinigung abgeschlossen." + +msgid "TidyError" +msgstr "Fehler im HTML-Quelltext." diff --git a/i18n/epoz_lang_en.po b/i18n/epoz_lang_en.po new file mode 100644 index 0000000..39b0334 --- /dev/null +++ b/i18n/epoz_lang_en.po @@ -0,0 +1,156 @@ +# Gettext Epoz-Language-File: en (English) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: maik.jablonski@uni-bielefeld.de\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: en\n" +"Language-Name: English\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" +"X-Is-Fallback-For: en-za, en-au, en-bz, en-ca, en-ie, en-jm, en-nz, en-ph, en-gb, en-tt, en-zw, en-us\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Paragraph" + +msgid "Heading1" +msgstr "Heading 1" + +msgid "Heading2" +msgstr "Heading 2" + +msgid "Heading3" +msgstr "Heading 3" + +msgid "Heading4" +msgstr "Heading 4" + +msgid "Heading5" +msgstr "Heading 5" + +msgid "Heading6" +msgstr "Heading 6" + +msgid "Formatted" +msgstr "Formatted" + +msgid "Bold" +msgstr "Bold" + +msgid "Italic" +msgstr "Italic" + +msgid "Underline" +msgstr "Underline" + +msgid "Strikethrough" +msgstr "Strikethrough" + +msgid "Subscript" +msgstr "Subscript" + +msgid "Superscript" +msgstr "Superscript" + +msgid "RemoveFormat" +msgstr "Remove Format" + +msgid "TextColor" +msgstr "Text Color" + +msgid "BackColor" +msgstr "Background Color" + +msgid "AlignLeft" +msgstr "Align Left" + +msgid "Center" +msgstr "Center" + +msgid "AlignRight" +msgstr "Align Right" + +msgid "OrderedList" +msgstr "Ordered List" + +msgid "UnorderedList" +msgstr "Unordered List" + +msgid "Outdent" +msgstr "Outdent" + +msgid "Indent" +msgstr "Indent" + +msgid "InsertAnchor" +msgstr "Insert Anchor" + +msgid "InsertFile" +msgstr "Insert File" + +msgid "InsertImage" +msgstr "Insert Image" + +msgid "InsertLink" +msgstr "Insert Link" + +msgid "InsertRule" +msgstr "Insert Rule" + +msgid "InsertTable" +msgstr "Insert Table" + +msgid "Toolbox" +msgstr "Toolbox" + +msgid "Undo" +msgstr "Undo" + +msgid "Redo" +msgstr "Redo" + +msgid "EnterLinkURL" +msgstr "Enter Link URL" + +msgid "EnterAnchorName" +msgstr "Enter Anchor Name" + +msgid "EnterImageURL" +msgstr "Enter Image URL" + +msgid "EnterTableRows" +msgstr "Enter Rows" + +msgid "EnterTableColumns" +msgstr "Enter Columns" + +msgid "EnterTableBorder" +msgstr "Enter Border" + +msgid "TableWithHead" +msgstr "Table with Head" + +msgid "TableWithoutHead" +msgstr "Table without Head" + +msgid "HTML" +msgstr "HTML" + +msgid "TidyStart" +msgstr "Tidying..." + +msgid "TidyStop" +msgstr "Tidying complete." + +msgid "TidyError" +msgstr "Detected errors in the HTML block." diff --git a/i18n/epoz_lang_es.po b/i18n/epoz_lang_es.po new file mode 100644 index 0000000..93496f9 --- /dev/null +++ b/i18n/epoz_lang_es.po @@ -0,0 +1,123 @@ +# Gettext Epoz-Language-File: es (Spanish) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: Pedro J. Rey Sanchiz\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: es\n" +"Language-Name: Spanish\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" +"X-Is-Fallback-For: es-ar, es-bo, es-cl, es-co, es-cr, es-es, es-gt, es-hn, es-mx, es-ni, es-pa, es-py, es-pr, es-pe, es-do, es-sv, es-uy, es-ve, es-ec\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Párrafo" + +msgid "Heading1" +msgstr "Cabecera 1" + +msgid "Heading2" +msgstr "Cabecera 2" + +msgid "Heading3" +msgstr "Cabecera 3" + +msgid "Heading4" +msgstr "Cabecera 4" + +msgid "Heading5" +msgstr "Cabecera 5" + +msgid "Heading6" +msgstr "Cabecera 6" + +msgid "Formatted" +msgstr "Formateado" + +msgid "Bold" +msgstr "Negrita" + +msgid "Italic" +msgstr "Cursiva" + +msgid "Underline" +msgstr "Subrayado" + +msgid "Subscript" +msgstr "Subíndice" + +msgid "Superscript" +msgstr "Superíndice" + +msgid "TextColor" +msgstr "Color" + +msgid "BackColor" +msgstr "Color de fondo" + +msgid "AlignLeft" +msgstr "Alineación izquierda" + +msgid "Center" +msgstr "Centrado" + +msgid "AlignRight" +msgstr "Alineación derecha" + +msgid "OrderedList" +msgstr "Lista numerada" + +msgid "UnorderedList" +msgstr "Viñetas" + +msgid "Outdent" +msgstr "Sangrar más" + +msgid "Indent" +msgstr "Sangrar menos" + +msgid "InsertLink" +msgstr "Insertar hipervínculo" + +msgid "InsertImage" +msgstr "Insertar imagen" + +msgid "InsertRule" +msgstr "Insertar regla horizontal" + +msgid "InsertTable" +msgstr "Insertar tabla" + +msgid "Toolbox" +msgstr "Toolbox" + +msgid "Undo" +msgstr "Deshacer" + +msgid "Redo" +msgstr "Rehacer" + +msgid "EnterLinkURL" +msgstr "Introduzca la dirección del hipervínculo" + +msgid "EnterImageURL" +msgstr "Introduzca la situación de la imagen" + +msgid "EnterTableRows" +msgstr "Introduzca el número de líneas" + +msgid "EnterTableColumns" +msgstr "Introduzca el número de columnas" + +msgid "EnterTableBorder" +msgstr "Introduzca el ancho del borde" diff --git a/i18n/epoz_lang_fi.po b/i18n/epoz_lang_fi.po new file mode 100644 index 0000000..4a178c9 --- /dev/null +++ b/i18n/epoz_lang_fi.po @@ -0,0 +1,125 @@ +# Gettext Epoz-Language-File: fi (Finnish) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: petri.savolainen@iki.fi\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: fi\n" +"Language-Name: Finnish\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normaali" + +msgid "Paragraph" +msgstr "Kappale" + +msgid "Heading1" +msgstr "Otsikko 1" + +msgid "Heading2" +msgstr "Otsikko 2" + +msgid "Heading3" +msgstr "Otsikko 3" + +msgid "Heading4" +msgstr "Otsikko 4" + +msgid "Heading5" +msgstr "Otsikko 5" + +msgid "Heading6" +msgstr "Otsikko 6" + +msgid "Formatted" +msgstr "Muotoiltu" + +msgid "Bold" +msgstr "Lihavoitu" + +msgid "Italic" +msgstr "Kursivoitu" + +msgid "Underline" +msgstr "Alleviivattu" + +msgid "Strikethrough" +msgstr "Yliviivattu" + +msgid "Subscript" +msgstr "Alaindeksi" + +msgid "Superscript" +msgstr "Yläindeksi" + +msgid "TextColor" +msgstr "Tekstin väri" + +msgid "BackColor" +msgstr "Taustan väri" + +msgid "AlignLeft" +msgstr "Tasaa vasemmalle" + +msgid "Center" +msgstr "Keskitä" + +msgid "AlignRight" +msgstr "Tasaa oikealle" + +msgid "OrderedList" +msgstr "Järjestetty lista" + +msgid "UnorderedList" +msgstr "Järjestämätön lista" + +msgid "Outdent" +msgstr "Vähennä sisennystä" + +msgid "Indent" +msgstr "Kasvata sisennystä" + +msgid "InsertLink" +msgstr "Lisää linkki" + +msgid "InsertImage" +msgstr "Lisää kuva" + +msgid "InsertRule" +msgstr "Lisää viiva" + +msgid "InsertTable" +msgstr "Lisää taulukko" + +msgid "Toolbox" +msgstr "Työkalupakki" + +msgid "Undo" +msgstr "Peru" + +msgid "Redo" +msgstr "Tee uudelleen" + +msgid "EnterLinkURL" +msgstr "Anna linkin URL" + +msgid "EnterImageURL" +msgstr "Anna kuvan URL" + +msgid "EnterTableRows" +msgstr "Anna rivimäärä" + +msgid "EnterTableColumns" +msgstr "Anna sarakemäärä" + +msgid "EnterTableBorder" +msgstr "Anna kehyksen määrittely" diff --git a/i18n/epoz_lang_fr.po b/i18n/epoz_lang_fr.po new file mode 100644 index 0000000..6808be4 --- /dev/null +++ b/i18n/epoz_lang_fr.po @@ -0,0 +1,155 @@ +# Gettext Epoz-Language-File: fr (French) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: benoit.pin@cri.ensmp.fr\n" +"Language-Team: Jean.Laroque@saint-gobain.com, benoit.pin@cri.ensmp.fr\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: fr\n" +"Language-Name: French\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" +"X-Is-Fallback-For: fr-be fr-ca fr-lu fr-mc fr-ch\n" + + + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Paragraphe" + +msgid "Heading1" +msgstr "Titre 1" + +msgid "Heading2" +msgstr "Titre 2" + +msgid "Heading3" +msgstr "Titre 3" + +msgid "Heading4" +msgstr "Titre 4" + +msgid "Heading5" +msgstr "Titre 5" + +msgid "Heading6" +msgstr "Titre 6" + +msgid "Formatted" +msgstr "Formaté" + +msgid "Bold" +msgstr "Gras" + +msgid "Italic" +msgstr "Italique" + +msgid "Underline" +msgstr "Souligné" + +msgid "Strikethrough" +msgstr "Barré" + +msgid "Subscript" +msgstr "Indice" + +msgid "Superscript" +msgstr "Exposant" + +msgid "RemoveFormat" +msgstr "Supprimer la mise en forme" + +msgid "TextColor" +msgstr "Couleur Texte" + +msgid "BackColor" +msgstr "Couleur Fond" + +msgid "AlignLeft" +msgstr "Aligner à Gauche" + +msgid "Center" +msgstr "Centrer" + +msgid "AlignRight" +msgstr "Aligner à Droite" + +msgid "OrderedList" +msgstr "Liste numérotée" + +msgid "UnorderedList" +msgstr "Liste à puces" + +msgid "Outdent" +msgstr "Diminuer le retrait" + +msgid "Indent" +msgstr "Augmenter le retrait" + +msgid "InsertAnchor" +msgstr "Insérer une ancre" + +msgid "InsertFile" +msgstr "Insérer Fichier" + +msgid "InsertImage" +msgstr "Insérer Image" + +msgid "InsertLink" +msgstr "Insérer Lien" + +msgid "InsertRule" +msgstr "Insérer Trait" + +msgid "InsertTable" +msgstr "Insérer Tableau" + +msgid "Toolbox" +msgstr "Boîte à Outil" + +msgid "Undo" +msgstr "Annuler" + +msgid "Redo" +msgstr "Rétablir" + +msgid "EnterLinkURL" +msgstr "Entrer l'URL du lien" + +msgid "EnterAnchorName" +msgstr "Entrer le nom de l'ancre" + +msgid "EnterImageURL" +msgstr "Entrer l'URL de l'image" + +msgid "EnterTableRows" +msgstr "Nombre de Lignes" + +msgid "EnterTableColumns" +msgstr "Nombre de Colonnes" + +msgid "EnterTableBorder" +msgstr "Type de Bordure" + +msgid "TableWithHead" +msgstr "Tableau à en-tête" + +msgid "TableWithoutHead" +msgstr "Tableau sans en-tête" + +msgid "TidyStart" +msgstr "Nettoyage..." + +msgid "TidyStop" +msgstr "Nettoyage terminé." + +msgid "TidyError" +msgstr "Erreurs detectées dans le bloc de texte." diff --git a/i18n/epoz_lang_hu.po b/i18n/epoz_lang_hu.po new file mode 100644 index 0000000..0b11cbd --- /dev/null +++ b/i18n/epoz_lang_hu.po @@ -0,0 +1,131 @@ +# Gettext Epoz-Language-File: hu (Hungarian) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: dtamas@pressflex.com\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: hu\n" +"Language-Name: Hungarian\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normál" + +msgid "Paragraph" +msgstr "Bekezdés" + +msgid "Heading1" +msgstr "Címsor 1" + +msgid "Heading2" +msgstr "Címsor 2" + +msgid "Heading3" +msgstr "Címsor 3" + +msgid "Heading4" +msgstr "Címsor 4" + +msgid "Heading5" +msgstr "Címsor 5" + +msgid "Heading6" +msgstr "Címsor 6" + +msgid "Formatted" +msgstr "Formázott" + +msgid "Bold" +msgstr "Félkövér" + +msgid "Italic" +msgstr "Kurzív" + +msgid "Underline" +msgstr "Aláhúzott" + +msgid "Strikethrough" +msgstr "Áthúzott" + +msgid "Subscript" +msgstr "Alsó index" + +msgid "Superscript" +msgstr "Felsô index" + +msgid "TextColor" +msgstr "Szövegszín" + +msgid "BackColor" +msgstr "Háttérszín" + +msgid "AlignLeft" +msgstr "Balra igazított" + +msgid "Center" +msgstr "Közép" + +msgid "AlignRight" +msgstr "Jobbra igazított" + +msgid "OrderedList" +msgstr "Sorszámozott lista" + +msgid "UnorderedList" +msgstr "Felsorolás" + +msgid "Outdent" +msgstr "Kihúzás" + +msgid "Indent" +msgstr "Behúzás" + +msgid "InsertLink" +msgstr "Hivatkozás beszúrása" + +msgid "InsertImage" +msgstr "Kép beszúrása" + +msgid "InsertRule" +msgstr "Elválasztó beszúrása" + +msgid "InsertTable" +msgstr "Táblázat beszúrása" + +msgid "Toolbox" +msgstr "Eszköztár" + +msgid "Undo" +msgstr "Vissza" + +msgid "Redo" +msgstr "Újra" + +msgid "EnterLinkURL" +msgstr "Írja be a hivatkozás URL-jét" + +msgid "EnterImageURL" +msgstr "Írja be a kép URL-jét" + +msgid "EnterTableRows" +msgstr "Sorok száma" + +msgid "EnterTableColumns" +msgstr "Oszlopok száma" + +msgid "EnterTableBorder" +msgstr "Keretvastagság" + +msgid "TableWithHead" +msgstr "Táblázat fejléccel" + +msgid "TableWithoutHead" +msgstr "Táblázat fejléc nélkül" diff --git a/i18n/epoz_lang_it.po b/i18n/epoz_lang_it.po new file mode 100644 index 0000000..6700214 --- /dev/null +++ b/i18n/epoz_lang_it.po @@ -0,0 +1,123 @@ +# Gettext Epoz-Language-File: it (Italiano) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: nbe@libero.it\n" +"Language-Team: maik.jablonski@uni-bielefeld.de, nbe@libero.it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: it\n" +"Language-Name: Italiano\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" +"X-Is-Fallback-For: it-ch\n" + + +msgid "Normal" +msgstr "Normale" + +msgid "Paragraph" +msgstr "Paragrafo" + +msgid "Heading1" +msgstr "Titolo 1" + +msgid "Heading2" +msgstr "Titolo 2" + +msgid "Heading3" +msgstr "Titolo 3" + +msgid "Heading4" +msgstr "Titolo 4" + +msgid "Heading5" +msgstr "Titolo 5" + +msgid "Heading6" +msgstr "Titolo 6" + +msgid "Formatted" +msgstr "Formattato" + +msgid "Bold" +msgstr "Grassetto" + +msgid "Italic" +msgstr "Italico" + +msgid "Underline" +msgstr "Sottolineato" + +msgid "Subscript" +msgstr "Pedice" + +msgid "Superscript" +msgstr "Apice" + +msgid "TextColor" +msgstr "Colore testo" + +msgid "BackColor" +msgstr "Colore sfondo" + +msgid "AlignLeft" +msgstr "Allinea sinistra" + +msgid "Center" +msgstr "Centra" + +msgid "AlignRight" +msgstr "Allinea destra" + +msgid "OrderedList" +msgstr "Lista numerata" + +msgid "UnorderedList" +msgstr "Lista puntata" + +msgid "Outdent" +msgstr "Riduci rientro" + +msgid "Indent" +msgstr "Aumenta rientro" + +msgid "InsertLink" +msgstr "Inserisci link" + +msgid "InsertImage" +msgstr "Inserisci immagine" + +msgid "InsertRule" +msgstr "Inserisci separatore" + +msgid "InsertTable" +msgstr "Inserisci tabella" + +msgid "Toolbox" +msgstr "Toolbox" + +msgid "Undo" +msgstr "Annulla" + +msgid "Redo" +msgstr "Ripeti" + +msgid "EnterLinkURL" +msgstr "Inserisci URL link" + +msgid "EnterImageURL" +msgstr "Inserisci immagine link" + +msgid "EnterTableRows" +msgstr "Inserisci righe" + +msgid "EnterTableColumns" +msgstr "Inserisci colonne" + +msgid "EnterTableBorder" +msgstr "Inserisci bordo" diff --git a/i18n/epoz_lang_nl.po b/i18n/epoz_lang_nl.po new file mode 100644 index 0000000..790a709 --- /dev/null +++ b/i18n/epoz_lang_nl.po @@ -0,0 +1,123 @@ +# Gettext Epoz-Language-File: nl (Dutch) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: ad.schellevis@imasgroep.nl\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: nl\n" +"Language-Name: Dutch\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" +"X-Is-Fallback-For: nl-be\n" + + +msgid "Normal" +msgstr "Normaal" + +msgid "Paragraph" +msgstr "Paragraaf" + +msgid "Heading1" +msgstr "Kop 1" + +msgid "Heading2" +msgstr "Kop 2" + +msgid "Heading3" +msgstr "Kop 3" + +msgid "Heading4" +msgstr "Kop 4" + +msgid "Heading5" +msgstr "Kop 5" + +msgid "Heading6" +msgstr "Kop 6" + +msgid "Formatted" +msgstr "Opgemaakt" + +msgid "Bold" +msgstr "Vet" + +msgid "Italic" +msgstr "Cursief" + +msgid "Underline" +msgstr "Onderstreept" + +msgid "Subscript" +msgstr "Subscript" + +msgid "Superscript" +msgstr "Superscript" + +msgid "TextColor" +msgstr "Tekst kleur" + +msgid "BackColor" +msgstr "Achtergrond kleur" + +msgid "AlignLeft" +msgstr "Links uitlijnen" + +msgid "Center" +msgstr "Centreren" + +msgid "AlignRight" +msgstr "Rechts uitlijnen" + +msgid "OrderedList" +msgstr "Nummering" + +msgid "UnorderedList" +msgstr "Opsommingstekens" + +msgid "Outdent" +msgstr "Inspringen verkleinen" + +msgid "Indent" +msgstr "Inspringen vergroten" + +msgid "InsertLink" +msgstr "Hyperlink invoegen" + +msgid "InsertImage" +msgstr "Plaatje invoegen" + +msgid "InsertRule" +msgstr "Rand invoegen" + +msgid "InsertTable" +msgstr "Tabel invoegen" + +msgid "Toolbox" +msgstr "Toolbox" + +msgid "Undo" +msgstr "Ongedaan maken" + +msgid "Redo" +msgstr "Herhalen" + +msgid "EnterLinkURL" +msgstr "Ingeven hyperlink URL" + +msgid "EnterImageURL" +msgstr "Ingeven locatie plaatje" + +msgid "EnterTableRows" +msgstr "Invoeren Rijen" + +msgid "EnterTableColumns" +msgstr "Invoegen Kolommen" + +msgid "EnterTableBorder" +msgstr "Invoegen Kader" diff --git a/i18n/epoz_lang_no.po b/i18n/epoz_lang_no.po new file mode 100644 index 0000000..139c4a8 --- /dev/null +++ b/i18n/epoz_lang_no.po @@ -0,0 +1,141 @@ +# Gettext Epoz-Language-File: no (Norwegian) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: einar.ness.jensen@hf.ntnu.no\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: no\n" +"Language-Name: Norwegian\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" +"X-Is-Fallback-For: nb, nn\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Avsnitt" + +msgid "Heading1" +msgstr "Overskrift 1" + +msgid "Heading2" +msgstr "Overskrift 2" + +msgid "Heading3" +msgstr "Overskrift 3" + +msgid "Heading4" +msgstr "Overskrift 4" + +msgid "Heading5" +msgstr "Overskrift 5" + +msgid "Heading6" +msgstr "Overskrift 6" + +msgid "Formatted" +msgstr "Preformatert" + +msgid "Bold" +msgstr "Fet" + +msgid "Italic" +msgstr "Kursiv" + +msgid "Underline" +msgstr "Understreket" + +msgid "Strikethrough" +msgstr "Gjennomstreket" + +msgid "Subscript" +msgstr "Subskrift" + +msgid "Superscript" +msgstr "Superskrift" + +msgid "RemoveFormat" +msgstr "Fjern Formatering" + +msgid "TextColor" +msgstr "Tekstfarge" + +msgid "BackColor" +msgstr "Bakgrunnsfarge" + +msgid "AlignLeft" +msgstr "Venstrejustert" + +msgid "Center" +msgstr "Midtjustert" + +msgid "AlignRight" +msgstr "Høyrejustert" + +msgid "OrderedList" +msgstr "Ordnet Liste" + +msgid "UnorderedList" +msgstr "Uordnet Liste" + +msgid "Outdent" +msgstr "Minsk Innrykk" + +msgid "Indent" +msgstr "Øk Innrykk" + +msgid "InsertLink" +msgstr "Sett inn Lenke" + +msgid "InsertAnchor" +msgstr "Sett inn Anker" + +msgid "InsertImage" +msgstr "Sett inn Bilde" + +msgid "InsertRule" +msgstr "Sett inn Horisontal Linje" + +msgid "InsertTable" +msgstr "Sett inn Tabell" + +msgid "Toolbox" +msgstr "Verktøy" + +msgid "Undo" +msgstr "Angre" + +msgid "Redo" +msgstr "Gjenta" + +msgid "EnterLinkURL" +msgstr "Skriv inn Lenke-URL" + +msgid "EnterAnchorName" +msgstr "Skriv inn Navn pĺ Anker" + +msgid "EnterImageURL" +msgstr "Skriv inn Bilde-URL" + +msgid "EnterTableRows" +msgstr "Antall Rader" + +msgid "EnterTableColumns" +msgstr "Antall Kolonner" + +msgid "EnterTableBorder" +msgstr "Bredde Kantlinje" + +msgid "TableWithHead" +msgstr "Tabell med Topplinje" + +msgid "TableWithoutHead" +msgstr "Tabell uten Topplinje" diff --git a/i18n/epoz_lang_pl.po b/i18n/epoz_lang_pl.po new file mode 100644 index 0000000..426f2de --- /dev/null +++ b/i18n/epoz_lang_pl.po @@ -0,0 +1,122 @@ +# Gettext Epoz-Language-File: pl (Polish) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: qbak@qbak.net\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: pl\n" +"Language-Name: Polish\n" +"Preferred-Encodings: utf-8 latin2\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normalny" + +msgid "Paragraph" +msgstr "Akapit" + +msgid "Heading1" +msgstr "Nagłówek 1" + +msgid "Heading2" +msgstr "Nagłówek 2" + +msgid "Heading3" +msgstr "Nagłówek 3" + +msgid "Heading4" +msgstr "Nagłówek 4" + +msgid "Heading5" +msgstr "Nagłówek 5" + +msgid "Heading6" +msgstr "Nagłówek 6" + +msgid "Formatted" +msgstr "Sformatowany" + +msgid "Bold" +msgstr "Pogrubienie" + +msgid "Italic" +msgstr "Kursywa" + +msgid "Underline" +msgstr "Podkreślenie" + +msgid "Subscript" +msgstr "Indeks dolny" + +msgid "Superscript" +msgstr "Indeks górny" + +msgid "TextColor" +msgstr "Kolor tekstu" + +msgid "BackColor" +msgstr "Kolor tła" + +msgid "AlignLeft" +msgstr "Wyrównanie do lewej" + +msgid "Center" +msgstr "Wyśrodkowanie" + +msgid "AlignRight" +msgstr "Wyrównanie do prawej" + +msgid "OrderedList" +msgstr "Lista numerowana" + +msgid "UnorderedList" +msgstr "Lista wypunktowana" + +msgid "Outdent" +msgstr "Zmniejsz wcięcie" + +msgid "Indent" +msgstr "Zwiększ wcięcie" + +msgid "InsertLink" +msgstr "Wstaw odnośnik" + +msgid "InsertImage" +msgstr "Wstaw obrazek" + +msgid "InsertRule" +msgstr "Wstaw linijkę" + +msgid "InsertTable" +msgstr "Wstaw tabelę" + +msgid "Toolbox" +msgstr "Narzędzia" + +msgid "Undo" +msgstr "Cofnij" + +msgid "Redo" +msgstr "Powtórz" + +msgid "EnterLinkURL" +msgstr "Wprowadź URL odnośnika" + +msgid "EnterImageURL" +msgstr "Wprowadź URL obrazka" + +msgid "EnterTableRows" +msgstr "Wprowadź wiersze" + +msgid "EnterTableColumns" +msgstr "Wprowadź kolumny" + +msgid "EnterTableBorder" +msgstr "Wprowadź ramkę" diff --git a/i18n/epoz_lang_pt-br.po b/i18n/epoz_lang_pt-br.po new file mode 100644 index 0000000..0d8ec90 --- /dev/null +++ b/i18n/epoz_lang_pt-br.po @@ -0,0 +1,140 @@ +# Gettext Epoz-Language-File: pt-br (Portuguese Brazil) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: Luiz Fernando Pasqual S. Souza \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: pt-br\n" +"Language-Name: Portuguese Brazil\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Parágrafo" + +msgid "Heading1" +msgstr "Cabeçalho 1" + +msgid "Heading2" +msgstr "Cabeçalho 2" + +msgid "Heading3" +msgstr "Cabeçalho 3" + +msgid "Heading4" +msgstr "Cabeçalho 4" + +msgid "Heading5" +msgstr "Cabeçalho 5" + +msgid "Heading6" +msgstr "Cabeçalho 6" + +msgid "Formatted" +msgstr "Formatado" + +msgid "Bold" +msgstr "Negrito" + +msgid "Italic" +msgstr "Itálico" + +msgid "Underline" +msgstr "Sublinhado" + +msgid "Strikethrough" +msgstr "Riscado" + +msgid "Subscript" +msgstr "Subescrito" + +msgid "Superscript" +msgstr "Sobrescrito" + +msgid "RemoveFormat" +msgstr "Remover formatação" + +msgid "TextColor" +msgstr "Cor do texto" + +msgid "BackColor" +msgstr "Cor do fundo" + +msgid "AlignLeft" +msgstr "Alinhar à esquerda" + +msgid "Center" +msgstr "Centralizar" + +msgid "AlignRight" +msgstr "Alinhar à direita" + +msgid "OrderedList" +msgstr "Lista numerada" + +msgid "UnorderedList" +msgstr "Lista ordenada" + +msgid "Outdent" +msgstr "Diminuir parágrafo" + +msgid "Indent" +msgstr "Aumentar parágrafo" + +msgid "InsertLink" +msgstr "Inserir Link" + +msgid "InsertAnchor" +msgstr "Inserir âncora" + +msgid "InsertImage" +msgstr "Inserir Imagem" + +msgid "InsertRule" +msgstr "Inserir Linha" + +msgid "InsertTable" +msgstr "Inserir Tabela" + +msgid "Toolbox" +msgstr "Caixa de ferramentas" + +msgid "Undo" +msgstr "Voltar" + +msgid "Redo" +msgstr "Refazer" + +msgid "EnterLinkURL" +msgstr "URL do link" + +msgid "EnterAnchorName" +msgstr "Nome da âncora" + +msgid "EnterImageURL" +msgstr "URL da imagem" + +msgid "EnterTableRows" +msgstr "Linhas" + +msgid "EnterTableColumns" +msgstr "Colunas" + +msgid "EnterTableBorder" +msgstr "Bordas" + +msgid "TableWithHead" +msgstr "Tabela com cabeçalho" + +msgid "TableWithoutHead" +msgstr "Tabela sem cabeçalho" diff --git a/i18n/epoz_lang_pt.po b/i18n/epoz_lang_pt.po new file mode 100644 index 0000000..d094094 --- /dev/null +++ b/i18n/epoz_lang_pt.po @@ -0,0 +1,134 @@ +# Epoz-Language-File: pt (Portuguese) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: nteixeira@bmc.pt\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: pt\n" +"Language-Name: Portuguese\n" +"Preferred-Encodings: utf-8 latin1\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Normal" + +msgid "Paragraph" +msgstr "Parágrafo" + +msgid "Heading1" +msgstr "Cabeçalho 1" + +msgid "Heading2" +msgstr "Cabeçalho 2" + +msgid "Heading3" +msgstr "Cabeçalho 3" + +msgid "Heading4" +msgstr "Cabeçalho 4" + +msgid "Heading5" +msgstr "Cabeçalho 5" + +msgid "Heading6" +msgstr "Cabeçalho 6" + +msgid "Formatted" +msgstr "Formatado" + +msgid "Bold" +msgstr "Negrito" + +msgid "Italic" +msgstr "Itálico" + +msgid "Underline" +msgstr "Sublinhado" + +msgid "Strikethrough" +msgstr "Traçado" + +msgid "Subscript" +msgstr "Subescrito" + +msgid "Superscript" +msgstr "Sobrescrito" + +msgid "RemoveFormat" +msgstr "Retirar Formatação" + +msgid "TextColor" +msgstr "Cor do texto" + +msgid "BackColor" +msgstr "Cor do fundo" + +msgid "AlignLeft" +msgstr "Alinhar à esquerda" + +msgid "Center" +msgstr "Centrar" + +msgid "AlignRight" +msgstr "Alinhar à direita" + +msgid "OrderedList" +msgstr "Lista numerada" + +msgid "UnorderedList" +msgstr "Lista ordenada" + +msgid "Outdent" +msgstr "Diminuir parágrafo" + +msgid "Indent" +msgstr "Aumentar parágrafo" + +msgid "InsertLink" +msgstr "Inserir Link" + +msgid "InsertImage" +msgstr "Inserir Imagem" + +msgid "InsertRule" +msgstr "Inserir Linha" + +msgid "InsertTable" +msgstr "Inserir Tabela" + +msgid "Toolbox" +msgstr "Caixa de ferramentas" + +msgid "Undo" +msgstr "Desfazer" + +msgid "Redo" +msgstr "Refazer" + +msgid "EnterLinkURL" +msgstr "URL do link" + +msgid "EnterImageURL" +msgstr "URL da imagem" + +msgid "EnterTableRows" +msgstr "Número de Linhas" + +msgid "EnterTableColumns" +msgstr "Número de Colunas" + +msgid "EnterTableBorder" +msgstr "Tamanho das Bordas" + +msgid "TableWithHead" +msgstr "Tabela com cabeçalho" + +msgid "TableWithoutHead" +msgstr "Tabela sem cabeçalho" diff --git a/i18n/epoz_lang_ru.po b/i18n/epoz_lang_ru.po new file mode 100644 index 0000000..230b7a6 --- /dev/null +++ b/i18n/epoz_lang_ru.po @@ -0,0 +1,143 @@ +# Gettext Epoz-Language-File: ru (Russian (UTF-8)) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: Theo (theo@ua.fm)\n" +"Language-Team: Sergey V. Volobuev, Theo (theo@ua.fm)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: ru\n" +"Language-Name: Russian\n" +"Preferred-Encodings: utf-8\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "Обычный" + +msgid "Paragraph" +msgstr "Абзац" + +msgid "Heading1" +msgstr "Заголовок 1" + +msgid "Heading2" +msgstr "Заголовок 2" + +msgid "Heading3" +msgstr "Заголовок 3" + +msgid "Heading4" +msgstr "Заголовок 4" + +msgid "Heading5" +msgstr "Заголовок 5" + +msgid "Heading6" +msgstr "Заголовок 6" + +msgid "Formatted" +msgstr "Форматированный" + +msgid "Bold" +msgstr "Полужирный" + +msgid "Italic" +msgstr "Курсив" + +msgid "Underline" +msgstr "Подчеркнутый" + +msgid "Strikethrough" +msgstr "Зачёркнутый" + +msgid "Subscript" +msgstr "Нижний индекс" + +msgid "Superscript" +msgstr "Верхний индекс" + +msgid "RemoveFormat" +msgstr "Убрать форматирование" + +msgid "TextColor" +msgstr "Цвет шрифта" + +msgid "BackColor" +msgstr "Цвет фона" + +msgid "AlignLeft" +msgstr "По левому краю" + +msgid "Center" +msgstr "По центру" + +msgid "AlignRight" +msgstr "По правому краю" + +msgid "OrderedList" +msgstr "Нумерация" + +msgid "UnorderedList" +msgstr "Маркеры" + +msgid "Outdent" +msgstr "Уменьшить отступ" + +msgid "Indent" +msgstr "Увеличить отступ" + +msgid "InsertLink" +msgstr "Вставить гиперссылку" + +msgid "InsertAnchor" +msgstr "Вставить якорь" + +msgid "InsertImage" +msgstr "Вставить изображение" + +msgid "InsertRule" +msgstr "Вставить линейку" + +msgid "InsertTable" +msgstr "Вставить таблицу" + +msgid "Toolbox" +msgstr "Инструменты" + +msgid "Undo" +msgstr "Отменить" + +msgid "Redo" +msgstr "Повторить" + +msgid "EnterLinkURL" +msgstr "Введите URL страницы" + +msgid "EnterAnchorName" +msgstr "Введите названия якоря" + +msgid "EnterImageURL" +msgstr "Введите URL изображения" + +msgid "EnterTableRows" +msgstr "Число строк" + +msgid "EnterTableColumns" +msgstr "Число столбцов" + +msgid "EnterTableBorder" +msgstr "Ширина границы" + +msgid "TableWithHead" +msgstr "Таблица с заголовком" + +msgid "TableWithoutHead" +msgstr "Таблица без заголовка" + +msgid "HTML" +msgstr "HTML" diff --git a/i18n/epoz_lang_zh-cn.po b/i18n/epoz_lang_zh-cn.po new file mode 100644 index 0000000..5ea9aef --- /dev/null +++ b/i18n/epoz_lang_zh-cn.po @@ -0,0 +1,144 @@ +# Gettext Epoz-Language-File: zh (Chinese) +msgid "" +msgstr "" +"Project-Id-Version: EPOZ 0.9\n" +"POT-Creation-Date: 2005-01-29 19:18+0100\n" +"PO-Revision-Date: 2005-01-29 19:18+0100\n" +"Last-Translator: panjy@plone.cn\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language-Code: zh\n" +"Language-Name: Chinese\n" +"Preferred-Encodings: utf-8\n" +"Domain: epoz\n" + + +msgid "Normal" +msgstr "常规" + +msgid "Paragraph" +msgstr "段落" + +msgid "Heading1" +msgstr "标题 1" + +msgid "Heading2" +msgstr "标题 2" + +msgid "Heading3" +msgstr "标题 3" + +msgid "Heading4" +msgstr "标题 4" + +msgid "Heading5" +msgstr "标题 5" + +msgid "Heading6" +msgstr "标题 6" + +msgid "Formatted" +msgstr "保持格式" + +msgid "Bold" +msgstr "加粗" + +msgid "Italic" +msgstr "倾斜" + +msgid "Underline" +msgstr "下划线" + +msgid "Strikethrough" +msgstr "中划线" + +msgid "Subscript" +msgstr "下标" + +msgid "Superscript" +msgstr "上标" + +msgid "RemoveFormat" +msgstr "去除格式" + +msgid "TextColor" +msgstr "文字颜色" + +msgid "BackColor" +msgstr "背景颜色" + + +msgid "AlignLeft" +msgstr "左对齐" + +msgid "Center" +msgstr "居中" + +msgid "AlignRight" +msgstr "右对齐" + +msgid "OrderedList" +msgstr "有序清单" + +msgid "UnorderedList" +msgstr "无序清单" + +msgid "Outdent" +msgstr "减少缩进" + +msgid "Indent" +msgstr "增加缩进" + +msgid "InsertLink" +msgstr "添加链接" + +msgid "InsertAnchor" +msgstr "添加书签(Anchor)" + +msgid "InsertImage" +msgstr "添加图片" + +msgid "InsertRule" +msgstr "添加尺线" + +msgid "InsertTable" +msgstr "添加表格" + +msgid "Toolbox" +msgstr "工具箱" + + +msgid "Undo" +msgstr "撤销" + +msgid "Redo" +msgstr "恢复" + + +msgid "EnterLinkURL" +msgstr "输入链接的URL地址" + +msgid "EnterAnchorName" +msgstr "输入书签(Anchor)名" + +msgid "EnterImageURL" +msgstr "输入图片的UR地址" + + +msgid "EnterTableRows" +msgstr "输入行数" + +msgid "EnterTableColumns" +msgstr "输入列数" + +msgid "EnterTableBorder" +msgstr "输入边框" + +msgid "TableWithHead" +msgstr "带标题的表格" + +msgid "TableWithoutHead" +msgstr "不带标题的表格" diff --git a/mxTidyHowTo.txt b/mxTidyHowTo.txt new file mode 100755 index 0000000..7e0b59f --- /dev/null +++ b/mxTidyHowTo.txt @@ -0,0 +1,188 @@ +How do I install mxTidy with Zope / Plone? + +Here are the steps. Be sure to use the same python as your Zope / Plone uses +for setting up mxTidy correctly! + +1) Download these packages: + +http://www.egenix.com/files/python/egenix-mx-base-2.0.5.tar.gz +http://www.egenix.com/files/python/egenix-mx-experimental-0.8.0.tar.gz + +2) Untar the packages + +tar xfvz egenix-mx-base-2.0.5.tar.gz +tar xfvz egenix-mx-experimental-0.8.0.tar.gz + +3) Change to egenix-mx-base-2.0.5 + +python setup.py install + +4) Change to egenix-mx-experimental-0.8.0 + +python setup.py install + +Maybe you'll get an error like "Can't compile etc.pp."... + +If so, copy the "patched" file below (it just skips +the "buggy" number-module which isn't needed for tidy) to +egenix-mx-experimental-0.8.0/mxEXPERIMENTAL.py and try again. + +5) Restart your Zope / Plone to take changes effect! + +----------------------------------------------------- +patched mxEXPERIMENTAL.py for easier mxTidy-Setup +----------------------------------------------------- + +#!/usr/local/bin/python2.0 + +""" Configuration for the eGenix mx EXPERIMENTAL distribution. + + Copyright (c) 1997-2000, Marc-Andre Lemburg; mailto:mal(ät)lemburg.com + Copyright (c) 2000-2003, eGenix.com Software GmbH; +mailto:info(ät)egenix.com + See the documentation for further information on copyrights, + or contact the author. All Rights Reserved. +""" +from mxSetup import mx_Extension +import sys, glob, os + +# +# Package version +# +version = '0.8.0' + +# +# Setup information +# +name = "egenix-mx-experimental" + +# +# Meta-Data +# +description = "eGenix mx-Extensions - EXPERIMENTAL package" +long_description = """\ +The eGenix mx Extension Series are a collection of +Python extensions written in ANSI C and Python +which provide a large spectrum of useful additions +to everyday Python programming. + +This package includes experimental subpackages of the +series. Please understand that the software in these +packages is still in alpha state and does not meet the +quality standards of production quality software. + +This software is brought to you by eGenix.com. The included +subpackages are either covered by the eGenix.com Public +License or the eGenix.com Commercial License and/or other +licenses. Please check the subpackage documentation for +details or contact eGenix.com for more license information. +""" +license = ( +"Copyright (c) 2000-2003, eGenix.com Software GmbH, All Rights Reserved" +) +author = "Marc-Andre Lemburg" +author_email = "mal(ät)egenix.com" +url = "http://www.egenix.com/files/python/eGenix-mx-Extensions.html" + +# +# Python packages +# +packages = [ + + 'mx', + + # mxTidy + 'mx.Tidy', + 'mx.Tidy.mxTidy', + + # mxURL + 'mx.URL', + 'mx.URL.mxURL', + + # mxUID + 'mx.UID', + 'mx.UID.mxUID', + + ] + +# +# C libraries +# + +libraries = [ + + # libtidy.a needed by mxTidy + ('libtidy', + {'sources': + glob.glob(os.path.join('mx','Tidy','mxTidy','libtidy','*.c')), + 'include_dirs': + [os.path.join('mx','Tidy','mxTidy','libtidy')], + 'macros': + [('COMPILING_TIDY', 1)], + }), + + ] + +# +# C Extensions +# +ext_modules = [ + + # mxTidy + mx_Extension('mx.Tidy.mxTidy.mxTidy', + ['mx/Tidy/mxTidy/mxTidy.c'], + include_dirs=['mx/Tidy/mxTidy', + 'mx/Tidy/mxTidy/libtidy'], + libraries=['libtidy'], + library_dirs=['mx/Tidy/mxTidy/libtidy']), + + # mxURL + mx_Extension('mx.URL.mxURL.mxURL', + ['mx/URL/mxURL/mxURL.c'], + include_dirs=['mx/URL/mxURL']), + + # mxUID + mx_Extension('mx.UID.mxUID.mxUID', + ['mx/UID/mxUID/mxUID.c'], + include_dirs=['mx/UID/mxUID']), + + ] + +# +# Data files +# +data_files = [ + + # mxTidy + 'mx/Tidy/Doc/mxTidy.html', + 'mx/Tidy/Doc/mxLicense.html', + 'mx/Tidy/Doc/Overview.html', + 'mx/Tidy/Doc/pending.html', + 'mx/Tidy/Doc/release-notes.html', + 'mx/Tidy/Doc/tidy.gif', + 'mx/Tidy/COPYRIGHT', + 'mx/Tidy/LICENSE', + 'mx/Tidy/README', + 'mx/Tidy/mxTidy/mxTidy.h', + 'mx/Tidy/mxTidy/mxh.h', + 'mx/Tidy/mxTidy/input.html', + + # mxURL + 'mx/URL/Doc/mxURL.html', + 'mx/URL/Doc/mxLicense.html', + 'mx/URL/COPYRIGHT', + 'mx/URL/LICENSE', + 'mx/URL/README', + 'mx/URL/mxURL/mxURL.h', + 'mx/URL/mxURL/mxh.h', + + # mxUID + 'mx/UID/Doc/mxUID.html', + 'mx/UID/Doc/mxLicense.html', + 'mx/UID/COPYRIGHT', + 'mx/UID/LICENSE', + 'mx/UID/README', + 'mx/UID/mxUID/mxUID.h', + 'mx/UID/mxUID/mxh.h', + + ] diff --git a/version.txt b/version.txt new file mode 100755 index 0000000..f374f66 --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +0.9.1