diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b0fff543e..4a69a3b65 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,9 @@ # Developer Guidelines (Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch)) +## Important note for pull requests +**Pull requests should issued against the develop branch**. We never pull directly into master. + **Our goal is to iterate in small steps. Release often, release early. Evolution instead of a revolution** ## General goals of Etherpad Lite diff --git a/README.md b/README.md new file mode 100644 index 000000000..71ce8e77a --- /dev/null +++ b/README.md @@ -0,0 +1,126 @@ +# Making collaborative editing the standard on the web + +# About +Etherpad lite is a really-real time collaborative editor spawned from the Hell fire of Etherpad. +We're reusing the well tested Etherpad easysync library to make it really realtime. Etherpad Lite +is based on node.js ergo is much lighter and more stable than the original Etherpad. Our hope +is that this will encourage more users to use and install a realtime collaborative editor. A smaller, manageable and well +documented codebase makes it easier for developers to improve the code and contribute towards the project. + +**Etherpad vs Etherpad lite** + + + + + + + + + + + + + + + + +
 EtherpadEtherpad Lite
Size of the folder (without git history)30 MB1.5 MB
Languages used server sideJavascript (Rhino), Java, ScalaJavascript (node.js)
Lines of server side Javascript code~101k~9k
RAM Usage immediately after start257 MB (grows to ~1GB)16 MB (grows to ~30MB)
+ + +Etherpad Lite is designed to be easily embeddable and provides a [HTTP API](https://github.com/ether/etherpad-lite/wiki/HTTP-API) +that allows your web application to manage pads, users and groups. It is recommended to use the client implementations available for this API, listed on [this wiki page](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries). +There is also a [jQuery plugin](https://github.com/johnyma22/etherpad-lite-jquery-plugin) that helps you to embed Pads into your website + +**Visit [beta.etherpad.org](http://beta.etherpad.org) to test it live** + +Also, check out the **[FAQ](https://github.com/ether/etherpad-lite/wiki/FAQ)**, really! + +# Installation + +## Windows + +### Prebuilt windows package +This package works out of the box on any windows machine, but it's not very useful for developing purposes... + +1. Download the windows package +2. Extract the folder + +Now, run `start.bat` and open in your browser. You like it? [Next steps](#next-steps). + +### Fancy install +You'll need [node.js](http://nodejs.org) and (optionally, though recommended) git. + +1. Grab the source, either + - download + - or `git clone https://github.com/ether/etherpad-lite.git` (for this you need git, obviously) +2. start `bin\installOnWindows.bat` + +Now, run `start.bat` and open in your browser. + +Update to the latest version with `git pull origin`, then run `bin\installOnWindows.bat`, again. + +[Next steps](#next-steps). + +## Linux +You'll need gzip, git, curl, libssl develop libraries, python and gcc. +*For Debian/Ubuntu*: `apt-get install gzip git-core curl python libssl-dev pkg-config build-essential` +*For Fedora/CentOS*: `yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"` + +Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt. + +**As any user (we recommend creating a separate user called etherpad-lite):** + +1. Move to a folder where you want to install Etherpad Lite. Clone the git repository `git clone git://github.com/ether/etherpad-lite.git` +2. Change into the new directory containing the cloned source code `cd etherpad-lite` + +Now, run `bin/run.sh` and open in your browser. + +Update to the latest version with `git pull origin`. The next start with bin/run.sh will update the dependencies. + +You like it? [Next steps](#next-steps). + +# Next Steps + +## Tweak the settings +You can modify the settings in `settings.json`. (If you need to handle multiple settings files, you can pass the path to a settings file to `bin/run.sh` using the `-s|--settings` option. This allows you to run multiple Etherpad Lite instances from the same installation.) + +You should use a dedicated database such as "mysql", if you are planning on using etherpad-lite in a production environment, since the "dirtyDB" database driver is only for testing and/or development purposes. + +## Helpful resources +The [wiki](https://github.com/ether/etherpad-lite/wiki) is your one-stop resource for Tutorials and How-to's, really check it out! Also, feel free to improve these wiki pages. + +Documentation can be found in `docs/`. + +# Development + +## Things you should know +Read this [git guide](http://learn.github.com/p/intro.html) and watch this [video on getting started with Etherpad Lite Development](http://youtu.be/67-Q26YH97E). + +If you're new to node.js, start with Ryan Dahl's [Introduction to Node.js](http://youtu.be/jo_B4LTHi3I). + +You can debug Etherpad lite using `bin/debugRun.sh`. + +If you want to find out how Etherpad's `Easysync` works (the library that makes it really realtime), start with this [PDF](https://github.com/ether/etherpad-lite/raw/master/doc/easysync/easysync-full-description.pdf) (complex, but worth reading). + +## Getting started +You know all this and just want to know how you can help? + +Look at the [TODO list](https://github.com/ether/etherpad-lite/wiki/TODO) and our [Issue tracker](https://github.com/ether/etherpad-lite/issues). (Please consider using [jshint](http://www.jshint.com/about/), if you plan to contribute code.) + +Also, and most importantly, read our [**Developer Guidelines**](https://github.com/ether/etherpad-lite/wiki/Developer-Guidelines), really! + +# Get in touch +Join the [mailinglist](http://groups.google.com/group/etherpad-lite-dev) and make some noise on our freenode irc channel [#etherpad-lite-dev](http://webchat.freenode.net?channels=#etherpad-lite-dev)! + +# Modules created for this project + +* [ueberDB](https://github.com/ether/ueberDB) "transforms every database into a object key value store" - manages all database access +* [channels](https://github.com/ether/channels) "Event channels in node.js" - ensures that ueberDB operations are atomic and in series for each key +* [async-stacktrace](https://github.com/ether/async-stacktrace) "Improves node.js stacktraces and makes it easier to handle errors" + +# Donate! +* [Flattr] (http://flattr.com/thing/71378/Etherpad-Foundation) +* Paypal - Press the donate button on [etherpad.org](http://etherpad.org) + +# License +[Apache License v2](http://www.apache.org/licenses/LICENSE-2.0.html) diff --git a/src/locales/ar.ini b/src/locales/ar.ini index b06d21412..6529ecd76 100644 --- a/src/locales/ar.ini +++ b/src/locales/ar.ini @@ -54,3 +54,16 @@ pad.chat = دردشة timeslider.toolbar.authors = المؤلفون: timeslider.toolbar.authorsList = بدون مؤلفين timeslider.exportCurrent = تصدير النسخة الحالية ك: +timeslider.version = إصدار {{version}} +timeslider.month.january = يناير +timeslider.month.february = فبراير +timeslider.month.march = مارس +timeslider.month.april = أبريل +timeslider.month.may = مايو +timeslider.month.june = يونيو +timeslider.month.july = يوليو +timeslider.month.august = أغسطس +timeslider.month.september = سبتمبر +timeslider.month.october = أكتوبر +timeslider.month.november = نوفمبر +timeslider.month.december = ديسمبر diff --git a/src/locales/ast.ini b/src/locales/ast.ini index ab7e3a7cb..e673fd9b0 100644 --- a/src/locales/ast.ini +++ b/src/locales/ast.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Sólo se pue importar dende los formatos de testu planu o html. Pa carauterístiques d'importación más avanzaes instala abiword. pad.modals.connected = Coneutáu. pad.modals.reconnecting = Reconeutando col to bloc... pad.modals.forcereconnect = Forzar la reconexón @@ -76,3 +77,18 @@ timeslider.toolbar.returnbutton = Tornar al bloc timeslider.toolbar.authors = Autores: timeslider.toolbar.authorsList = Nun hai autores timeslider.exportCurrent = Esportar la versión actual como: +timeslider.version = Versión {{version}} +timeslider.saved = Guardáu el {{day}} de {{month}} de {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = de xineru +timeslider.month.february = de febreru +timeslider.month.march = de marzu +timeslider.month.april = d'abril +timeslider.month.may = de mayu +timeslider.month.june = de xunu +timeslider.month.july = de xunetu +timeslider.month.august = d'agostu +timeslider.month.september = de setiembre +timeslider.month.october = d'ochobre +timeslider.month.november = de payares +timeslider.month.december = d'avientu diff --git a/src/locales/bn.ini b/src/locales/bn.ini index c829d2f8d..2dfa73eb9 100644 --- a/src/locales/bn.ini +++ b/src/locales/bn.ini @@ -33,3 +33,15 @@ timeslider.toolbar.returnbutton = প্যাডে ফিরে যাও timeslider.toolbar.authors = লেখকগণ: timeslider.toolbar.authorsList = কোনো লেখক নেই timeslider.exportCurrent = বর্তমান সংস্করণটি এক্সপোর্ট করুন: +timeslider.month.january = জানুয়ারি +timeslider.month.february = ফেব্রুয়ারি +timeslider.month.march = মার্চ +timeslider.month.april = এপ্রিল +timeslider.month.may = মে +timeslider.month.june = জুন +timeslider.month.july = জুলাই +timeslider.month.august = আগস্ট +timeslider.month.september = সেপ্টেম্বর +timeslider.month.october = অক্টোবর +timeslider.month.november = নভেম্বর +timeslider.month.december = ডিসেম্বর diff --git a/src/locales/cs.ini b/src/locales/cs.ini new file mode 100644 index 000000000..92e9ab857 --- /dev/null +++ b/src/locales/cs.ini @@ -0,0 +1,74 @@ +; Exported from translatewiki.net +; Author: Quinn +[cs] +index.newPad = Nový Pad +index.createOpenPad = nebo vytvořit/otevřít Pad jménem: +pad.toolbar.bold.title = Tučné (Ctrl-B) +pad.toolbar.italic.title = Kurzíva (Ctrl-I) +pad.toolbar.underline.title = Podtržení (Ctrl-U) +pad.toolbar.strikethrough.title = Přeskrtnuté +pad.toolbar.ol.title = Číslovaný seznam +pad.toolbar.ul.title = Nečíslovaný seznam +pad.toolbar.indent.title = Odsazení +pad.toolbar.unindent.title = Předsazení +pad.toolbar.undo.title = Zpět (Ctrl-Z) +pad.toolbar.redo.title = Opakovat (Ctrl-Y) +pad.toolbar.clearAuthorship.title = Vymazat barvy autorství +pad.toolbar.import_export.title = Importovat/Exportovat z/do jiných formátů +pad.toolbar.timeslider.title = Osa času +pad.toolbar.savedRevision.title = Uložené revize +pad.toolbar.settings.title = Nastavení +pad.toolbar.embed.title = Umístit tento Pad +pad.toolbar.showusers.title = Zobrazit uživatele u tohoto Padu +pad.colorpicker.save = Uložit +pad.colorpicker.cancel = Zrušit +pad.loading = Načítání... +pad.settings.padSettings = Nastavení Padu +pad.settings.myView = Vlastní pohled +pad.settings.stickychat = Chat vždy na obrazovce +pad.settings.colorcheck = Barvy autorství +pad.settings.linenocheck = Čísla řádků +pad.settings.fontType = Typ písma: +pad.settings.fontType.normal = Normální +pad.settings.fontType.monospaced = Monospace +pad.settings.globalView = Globální pohled +pad.settings.language = Jazyk: +pad.importExport.import_export = Import/Export +pad.importExport.import = Nahrát libovolný textový soubor nebo dokument +pad.importExport.successful = Úspěch! +pad.importExport.export = Exportovat stávající Pad jako: +pad.importExport.exporthtml = HTML +pad.importExport.exportplain = Prostý text +pad.importExport.exportword = Microsoft Word +pad.importExport.exportpdf = PDF +pad.importExport.exportopen = ODF (Open Document Format) +pad.importExport.exportdokuwiki = DokuWiki +pad.modals.connected = Připojeno. +pad.modals.reconnecting = Znovupřipojování k tvému Padu… +pad.modals.forcereconnect = Vynutit znovupřipojení +pad.modals.uderdup = Otevřeno v jiném okně +pad.modals.userdup.explanation = Zdá se, že tento Pad je na tomto počítači otevřen ve více než jednom okně. +pad.modals.userdup.advice = Pro použití tohoto okna se musíš znovu připojit. +pad.modals.unauth = Nemáte autorizaci +pad.modals.unauth.explanation = Vaše oprávnění se změnila, zatímco jste si prohlížel/a toto okno. Zkuste se znovu připojit. +pad.modals.looping = Odpojeno. +pad.modals.looping.explanation = Nastaly problémy při komunikaci se synchronizačním serverem. +pad.modals.looping.cause = Možná jste připojeni přes nekompaktní firewall nebo proxy. +pad.modals.initsocketfail = Server je nedostupný. +pad.modals.initsocketfail.explanation = Nepodařilo se připojit k synchronizačnímu serveru. +pad.modals.initsocketfail.cause = Toto je pravděpodobně způsobeno vaším prohlížečem nebo připojením k internetu. +pad.modals.slowcommit = Odpojeno. +pad.modals.slowcommit.explanation = Server neodpovídá. +pad.share.link = Odkaz +timeslider.month.january = leden +timeslider.month.february = únor +timeslider.month.march = březen +timeslider.month.april = duben +timeslider.month.may = květen +timeslider.month.june = červen +timeslider.month.july = červenec +timeslider.month.august = srpen +timeslider.month.september = září +timeslider.month.october = říjen +timeslider.month.november = listopad +timeslider.month.december = prosinec diff --git a/src/locales/da.ini b/src/locales/da.ini index 6f6d4b1d9..06c88e8ec 100644 --- a/src/locales/da.ini +++ b/src/locales/da.ini @@ -44,6 +44,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Du kan kun importere fra almindelig tekst eller HTML-formater. For mere avancerede importfunktioner, installer venligst abiword. pad.modals.connected = Forbundet. pad.modals.reconnecting = Genopretter forbindelsen til din pad... pad.modals.forcereconnect = Gennemtving genoprettelse af forbindelsen @@ -75,5 +76,20 @@ pad.chat.title = Åben chat for denne pad. timeslider.pageTitle = {{appTitle}} Timeslider timeslider.toolbar.returnbutton = Tilbage til pad timeslider.toolbar.authors = Forfattere: -timeslider.toolbar.authorsList = Ingen Forfattere +timeslider.toolbar.authorsList = Ingen forfattere timeslider.exportCurrent = Eksporter aktuelle version som: +timeslider.version = Version {{version}} +timeslider.saved = Gemt den {{day}}.{{month}} {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = januar +timeslider.month.february = februar +timeslider.month.march = marts +timeslider.month.april = april +timeslider.month.may = maj +timeslider.month.june = juni +timeslider.month.july = juli +timeslider.month.august = august +timeslider.month.september = september +timeslider.month.october = oktober +timeslider.month.november = november +timeslider.month.december = december diff --git a/src/locales/de.ini b/src/locales/de.ini index 0a9ab58ee..39fe645fa 100644 --- a/src/locales/de.ini +++ b/src/locales/de.ini @@ -45,6 +45,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Du kannst nur aus Klartext oder HTML-Formaten importieren. Für mehr erweiterte Importfunktionen installiere bitte abiword. pad.modals.connected = Verbunden. pad.modals.reconnecting = Wiederherstellen der Verbindung... pad.modals.forcereconnect = Erneut Verbinden diff --git a/src/locales/diq.ini b/src/locales/diq.ini index f8205fb36..8b75a14be 100644 --- a/src/locales/diq.ini +++ b/src/locales/diq.ini @@ -23,6 +23,7 @@ pad.loading = Bar beno... pad.settings.padSettings = Sazkerdışê Pedi pad.settings.myView = Asayışê mı pad.settings.colorcheck = Rengê nuştekariye +pad.settings.linenocheck = Nımreyê xeter pad.settings.fontType = Babeta nuşti: pad.settings.fontType.normal = Normal pad.settings.fontType.monospaced = Yewca @@ -36,18 +37,36 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.modals.connected = Gredeya pad.modals.unauth = Selahiyetdar niyo pad.modals.looping = Bêgıreyın. pad.modals.initsocketfail = Nêresneyêno ciyageyroği. pad.modals.slowcommit = Bêgıreyın. pad.modals.deleted = Esteriya. pad.modals.deleted.explanation = Ena ped wedariye +pad.share = Na ped vıla ke pad.share.readonly = Tenya bıwane pad.share.link = Gıre pad.share.emebdcode = Degusnaye URL pad.chat = Mıhebet +pad.chat.title = Qandê ena ped mıhebet ake. timeslider.pageTitle = Ğızagê zemani {{appTitle}} timeslider.toolbar.returnbutton = Peyser şo ped timeslider.toolbar.authors = Nuştoği: timeslider.toolbar.authorsList = Nuştoği çıniyê timeslider.exportCurrent = Versiyonê enewki teber de: +timeslider.version = Versiyonê {{version}} +timeslider.saved = {{day}} {{month}}, {{year}} de biyo qeyd +timeslider.dateformat = {{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Çele +timeslider.month.february = Şıbate +timeslider.month.march = Adar +timeslider.month.april = Nisane +timeslider.month.may = Gulane +timeslider.month.june = Heziran +timeslider.month.july = Temuze +timeslider.month.august = Tebaxe +timeslider.month.september = Keşkelun +timeslider.month.october = Tışrino Verên +timeslider.month.november = Tışrino Peyên +timeslider.month.december = Kanun diff --git a/src/locales/el.ini b/src/locales/el.ini index e94407a41..cc7ae3fc7 100644 --- a/src/locales/el.ini +++ b/src/locales/el.ini @@ -33,7 +33,7 @@ pad.settings.linenocheck = Αριθμοί γραμμής pad.settings.fontType = Τύπος γραμματοσειράς: pad.settings.fontType.normal = Κανονική pad.settings.fontType.monospaced = Καθορισμένου πλάτους -pad.settings.globalView = Γενική Προβολή +pad.settings.globalView = Καθολική Προβολή pad.settings.language = Γλώσσα: pad.importExport.import_export = Εισαγωγή/Εξαγωγή pad.importExport.import = Αποστολή οποιουδήποτε αρχείου κειμένου ή εγγράφου @@ -45,6 +45,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Μπορείτε να κάνετε εισαγωγή απλού κειμένου ή μορφής html. Για πιο προηγμένες δυνατότητες εισαγωγής παρακαλώ εγκαταστήστε το abiword. pad.modals.connected = Συνδεμένοι. pad.modals.reconnecting = Επανασύνδεση στο pad σας... pad.modals.forcereconnect = Επιβολή επανασύνδεσης @@ -78,3 +79,18 @@ timeslider.toolbar.returnbutton = Επιστροφή στο pad timeslider.toolbar.authors = Συντάκτες: timeslider.toolbar.authorsList = Κανένας Συντάκτης timeslider.exportCurrent = Εξαγωγή τρέχουσας έκδοσης ως: +timeslider.version = Έκδοση {{έκδοση}} +timeslider.saved = Αποθηκευμένος {{μήνας}} {{ημέρα}}, {{έτος}} +timeslider.dateformat = {{μήνας}}/{{ημέρα}}/{{έτος}} {{ώρες}}:{{λεπτά}}:{{δευτερόλεπτα}} +timeslider.month.january = Ιανουάριος +timeslider.month.february = Φεβρουάριος +timeslider.month.march = Μάρτιος +timeslider.month.april = Απρίλιος +timeslider.month.may = Μάιος +timeslider.month.june = Ιούνιος +timeslider.month.july = Ιούλιος +timeslider.month.august = Αύγουστος +timeslider.month.september = Σεπτέμβριος +timeslider.month.october = Οκτώβριος +timeslider.month.november = Νοέμβριος +timeslider.month.december = Δεκέμβριος diff --git a/src/locales/es.ini b/src/locales/es.ini index 626fa517c..f4295a24e 100644 --- a/src/locales/es.ini +++ b/src/locales/es.ini @@ -46,7 +46,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki -pad.importExport.abiword.innerHTML = Sólo puede importar formatos de texto plano o html. Para funciones más avanzadas instale abiword. +pad.importExport.abiword.innerHTML = Sólo puede importar formatos de texto plano o html. Para funciones más avanzadas instale abiword. pad.modals.connected = Conectado. pad.modals.reconnecting = Reconectando a tu pad.. pad.modals.forcereconnect = Reconexión forzosa diff --git a/src/locales/fa.ini b/src/locales/fa.ini index dbbbbecc6..7bc3df08a 100644 --- a/src/locales/fa.ini +++ b/src/locales/fa.ini @@ -77,3 +77,15 @@ timeslider.toolbar.returnbutton = بازگشت به دفترچه یادداشت timeslider.toolbar.authors = نویسندگان: timeslider.toolbar.authorsList = بدون نویسنده timeslider.exportCurrent = برون‌ریزی نسخهٔ کنونی به عنوان: +timeslider.month.january = ژانویه +timeslider.month.february = فوریه +timeslider.month.march = مارس +timeslider.month.april = آوریل +timeslider.month.may = مه +timeslider.month.june = ژوئن +timeslider.month.july = ژوئیه +timeslider.month.august = اوت +timeslider.month.september = سپتامبر +timeslider.month.october = اکتبر +timeslider.month.november = نوامبر +timeslider.month.december = دسامبر diff --git a/src/locales/fr.ini b/src/locales/fr.ini index ee1f66dcc..ae4a1303c 100644 --- a/src/locales/fr.ini +++ b/src/locales/fr.ini @@ -49,6 +49,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Vous ne pouvez importer que des formats texte brut ou html. Pour des fonctionnalités d'importation plus évoluées, veuillez installer abiword. pad.modals.connected = Connecté. pad.modals.reconnecting = Reconnexion vers votre Pad... pad.modals.forcereconnect = Forcer la reconnexion. diff --git a/src/locales/gl.ini b/src/locales/gl.ini index a824fb462..8890c7837 100644 --- a/src/locales/gl.ini +++ b/src/locales/gl.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Só pode importar texto simple ou formatos HTML. Para obter máis información sobre as características de importación avanzadas instale abiword. pad.modals.connected = Conectado. pad.modals.reconnecting = Reconectando co seu documento... pad.modals.forcereconnect = Forzar a reconexión diff --git a/src/locales/he.ini b/src/locales/he.ini index 4ed429817..adc07e08c 100644 --- a/src/locales/he.ini +++ b/src/locales/he.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = מיקרוסופט וורד pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = באפשרותך לייבא מטקסט פשוט או מ־HTML. לאפשרויות ייבוא מתקדמות יותר יש להתקין את abiword. pad.modals.connected = מחובכר. pad.modals.reconnecting = מתבצע חיבור מחדש... pad.modals.forcereconnect = חיבור כפוי מחדש @@ -76,3 +77,18 @@ timeslider.toolbar.returnbutton = חזרה אל הפנקס timeslider.toolbar.authors = כותבים: timeslider.toolbar.authorsList = אין כותבים timeslider.exportCurrent = ייצוא הכרסה הנוכחית בתור: +timeslider.version = גרסה {{version}} +timeslider.saved = נשמרה ב־{{day}} ב{{month}} {{year}} +timeslider.dateformat = {{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = ינואר +timeslider.month.february = פברואר +timeslider.month.march = מרץ +timeslider.month.april = אפריל +timeslider.month.may = מאי +timeslider.month.june = יוני +timeslider.month.july = יולי +timeslider.month.august = אוגוסט +timeslider.month.september = ספטמבר +timeslider.month.october = אוקטובר +timeslider.month.november = נובמבר +timeslider.month.december = דצמבר diff --git a/src/locales/hu.ini b/src/locales/hu.ini index cc79d034c..df40a26e3 100644 --- a/src/locales/hu.ini +++ b/src/locales/hu.ini @@ -1,4 +1,5 @@ ; Exported from translatewiki.net +; Author: Misibacsi ; Author: R-Joe ; Author: Tgr [hu] @@ -60,7 +61,7 @@ pad.modals.initsocketfail.explanation = Nem sikerült kapcsolódni a szinkroniz pad.modals.initsocketfail.cause = Valószínűleg a böngésződdel vagy az internetkapcsolatoddal van probléma. pad.modals.slowcommit = Megszakadt a kapcsolat. pad.modals.slowcommit.explanation = A szerver nem válaszol. -pad.modals.slowcommit.cause = Valószínűleg az internetkapcsolatoddal van probléma. +pad.modals.slowcommit.cause = Valószínűleg az internetkapcsolattal van probléma. pad.modals.deleted = Törölve. pad.modals.deleted.explanation = Ez a notesz el lett távolítva. pad.modals.disconnected = Kapcsolat bontva. @@ -77,3 +78,15 @@ timeslider.toolbar.returnbutton = Vissza a noteszhez timeslider.toolbar.authors = Szerzők: timeslider.toolbar.authorsList = Nincsenek szerzők timeslider.exportCurrent = Jelenlegi változat exportálása így: +timeslider.month.january = január +timeslider.month.february = február +timeslider.month.march = március +timeslider.month.april = április +timeslider.month.may = május +timeslider.month.june = június +timeslider.month.july = július +timeslider.month.august = augusztus +timeslider.month.september = szeptember +timeslider.month.october = október +timeslider.month.november = november +timeslider.month.december = december diff --git a/src/locales/ia.ini b/src/locales/ia.ini index d646e2f14..a96532fd2 100644 --- a/src/locales/ia.ini +++ b/src/locales/ia.ini @@ -76,3 +76,15 @@ timeslider.toolbar.returnbutton = Retornar al pad timeslider.toolbar.authors = Autores: timeslider.toolbar.authorsList = Nulle autor timeslider.exportCurrent = Exportar le version actual como: +timeslider.month.january = januario +timeslider.month.february = februario +timeslider.month.march = martio +timeslider.month.april = april +timeslider.month.may = maio +timeslider.month.june = junio +timeslider.month.july = julio +timeslider.month.august = augusto +timeslider.month.september = septembre +timeslider.month.october = octobre +timeslider.month.november = novembre +timeslider.month.december = decembre diff --git a/src/locales/it.ini b/src/locales/it.ini index 2e47d2932..3277f5b65 100644 --- a/src/locales/it.ini +++ b/src/locales/it.ini @@ -1,5 +1,7 @@ ; Exported from translatewiki.net +; Author: Beta16 ; Author: Gianfranco +; Author: Viscontino [it] index.newPad = Nuovo Pad index.createOpenPad = o creare o aprire un Pad con il nome: @@ -43,6 +45,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = È possibile importare solo i formati di testo semplice o HTML. Per metodi più avanzati di importazione installa Abiword. pad.modals.connected = Connesso. pad.modals.reconnecting = Riconnessione al tuo pad in corso... pad.modals.forcereconnect = Forza la riconnessione @@ -76,3 +79,18 @@ timeslider.toolbar.returnbutton = Ritorna al pad timeslider.toolbar.authors = Autori: timeslider.toolbar.authorsList = Nessun autore timeslider.exportCurrent = Esporta la versione corrente come: +timeslider.version = Versione {{version}} +timeslider.saved = Salvato {{day}} {{month}} {{year}} +timeslider.dateformat = {{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = gennaio +timeslider.month.february = febbraio +timeslider.month.march = marzo +timeslider.month.april = aprile +timeslider.month.may = maggio +timeslider.month.june = giugno +timeslider.month.july = luglio +timeslider.month.august = agosto +timeslider.month.september = settembre +timeslider.month.october = ottobre +timeslider.month.november = novembre +timeslider.month.december = dicembre diff --git a/src/locales/ja.ini b/src/locales/ja.ini index 5ad253920..d3baa2e68 100644 --- a/src/locales/ja.ini +++ b/src/locales/ja.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = プレーンテキストまたは HTML ファイルからのみインポートできます。より高度なインポート機能を使用するには、abiword をインストールしてください。 pad.modals.connected = 接続されました。 pad.modals.reconnecting = パッドに再接続中... pad.modals.forcereconnect = 強制的に再接続 diff --git a/src/locales/ko.ini b/src/locales/ko.ini index 8f67c054c..27c8670e0 100644 --- a/src/locales/ko.ini +++ b/src/locales/ko.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = 일반 텍스트나 html 형식으로만 가져올 수 있습니다. 고급 가져오기 기능에 대해서는 abiword를 설치하세요. pad.modals.connected = 연결했습니다. pad.modals.reconnecting = 패드에 다시 연결 중.. pad.modals.forcereconnect = 강제로 다시 연결 @@ -76,3 +77,18 @@ timeslider.toolbar.returnbutton = 패드로 돌아가기 timeslider.toolbar.authors = 저자: timeslider.toolbar.authorsList = 저자 없음 timeslider.exportCurrent = 현재 버전으로 내보내기: +timeslider.version = 버전 {{version}} +timeslider.saved = {{year}}년 {{month}} {{day}}일에 저장함 +timeslider.dateformat = {{year}}년/{{month}}/{{day}}일 {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = 1월 +timeslider.month.february = 2월 +timeslider.month.march = 3월 +timeslider.month.april = 4월 +timeslider.month.may = 5월 +timeslider.month.june = 6월 +timeslider.month.july = 7월 +timeslider.month.august = 8월 +timeslider.month.september = 9월 +timeslider.month.october = 10월 +timeslider.month.november = 11월 +timeslider.month.december = 12월 diff --git a/src/locales/ksh.ini b/src/locales/ksh.ini index 372d36ee0..6e96839ba 100644 --- a/src/locales/ksh.ini +++ b/src/locales/ksh.ini @@ -53,7 +53,7 @@ pad.modals.unauth = Nit berääschtesch pad.modals.unauth.explanation = Ding Berääschtejong hät sesch jeändert, derwiehl De di Sigg aam beloore wohrß. Versöhk en neu Verbendong ze maache. pad.modals.looping = De Verbendong es fott. pad.modals.looping.explanation = Et jitt Probleeme met dä Verbendong mem ẞööver för de Schriiver ier Aandeile zesamme_ze_bränge. -pad.modals.looping.cause = Künnt sin, Ding Verbendong jeiht dorj_ene onzopaß proxy-ẞööver udder firewall. +pad.modals.looping.cause = Künnt sin, Ding Verbendong jeiht dorj_ene onzopaß proxy-ẞööver udder firewall. pad.modals.initsocketfail = Dä ẞööver es nit ze äreische. pad.modals.initsocketfail.explanation = Kein Verbendong met däm ẞööver ze krijje. pad.modals.initsocketfail.cause = Dat künnt aam Brauser udder aan däm singer Verbendong övver et Internet lijje. diff --git a/src/locales/mk.ini b/src/locales/mk.ini index b1aaf3233..60549af67 100644 --- a/src/locales/mk.ini +++ b/src/locales/mk.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Можете да увезувате само од прост текст и html-формат. Понапредни можности за увоз ќе добиете ако инсталирате AbiWord. pad.modals.connected = Поврзано. pad.modals.reconnecting = Ве преповрзувам со тетратката... pad.modals.forcereconnect = Наметни преповрзување diff --git a/src/locales/nl.ini b/src/locales/nl.ini index 1a078d92c..953740e8d 100644 --- a/src/locales/nl.ini +++ b/src/locales/nl.ini @@ -44,6 +44,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = U kunt alleen importeren vanuit platte tekst of een HTML-opmaak. Installeer abiword om meer geavanceerde importmogelijkheden te krijgen. pad.modals.connected = Verbonden. pad.modals.reconnecting = Opnieuw verbinding maken met uw pad... pad.modals.forcereconnect = Opnieuw verbinden diff --git a/src/locales/pl.ini b/src/locales/pl.ini index 0eefc3eff..4f9b5e24c 100644 --- a/src/locales/pl.ini +++ b/src/locales/pl.ini @@ -1,4 +1,5 @@ ; Exported from translatewiki.net +; Author: WTM ; Author: Woytecr [pl] index.newPad = Nowy Dokument @@ -76,3 +77,18 @@ timeslider.toolbar.returnbutton = Powróć do dokumentu timeslider.toolbar.authors = Autorzy: timeslider.toolbar.authorsList = Brak autorów timeslider.exportCurrent = Eksportuj bieżącą wersję jako: +timeslider.version = Wersja {{version}} +timeslider.saved = Zapisano {{day}} {{month}} {{year}} +timeslider.dateformat = {{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Styczeń +timeslider.month.february = Luty +timeslider.month.march = Marzec +timeslider.month.april = Kwiecień +timeslider.month.may = Maj +timeslider.month.june = Czerwiec +timeslider.month.july = Lipiec +timeslider.month.august = Sierpień +timeslider.month.september = Wrzesień +timeslider.month.october = Październik +timeslider.month.november = Listopad +timeslider.month.december = Grudzień diff --git a/src/locales/ps.ini b/src/locales/ps.ini new file mode 100644 index 000000000..2e0877e40 --- /dev/null +++ b/src/locales/ps.ini @@ -0,0 +1,39 @@ +; Exported from translatewiki.net +; Author: Ahmed-Najib-Biabani-Ibrahimkhel +[ps] +pad.toolbar.bold.title = زغرد (Ctrl-B) +pad.toolbar.italic.title = رېوند (Ctrl-I) +pad.toolbar.undo.title = ناکړل (Ctrl-Z) +pad.toolbar.redo.title = بياکړل (Ctrl-Y) +pad.toolbar.settings.title = امستنې +pad.colorpicker.save = خوندي کول +pad.colorpicker.cancel = ناګارل +pad.loading = برسېرېدنې کې دی... +pad.settings.myView = زما کتنه +pad.settings.fontType = ليکبڼې ډول: +pad.settings.fontType.normal = نورمال +pad.settings.fontType.monospaced = مونوسپېس +pad.settings.language = ژبه: +pad.importExport.exporthtml = اچ ټي ام اېل +pad.importExport.exportplain = ساده متن +pad.importExport.exportword = مايکروسافټ ورډ +pad.importExport.exportpdf = پي ډي اېف +pad.importExport.exportopen = ODF (اوپن ډاکومنټ فارمټ) +pad.modals.deleted = ړنګ شو. +pad.share.readonly = يوازې لوستنه +pad.share.link = تړنه +pad.share.emebdcode = يو آر اېل ټومبل +pad.chat = بانډار +timeslider.toolbar.authors = ليکوال: +timeslider.month.january = جنوري +timeslider.month.february = فبروري +timeslider.month.march = مارچ +timeslider.month.april = اپرېل +timeslider.month.may = مۍ +timeslider.month.june = جون +timeslider.month.july = جولای +timeslider.month.august = اګسټ +timeslider.month.september = سېپتمبر +timeslider.month.october = اکتوبر +timeslider.month.november = نومبر +timeslider.month.december = ډيسمبر diff --git a/src/locales/pt.ini b/src/locales/pt.ini index a210e64ac..1dab8987f 100644 --- a/src/locales/pt.ini +++ b/src/locales/pt.ini @@ -43,3 +43,15 @@ pad.modals.connected = Ligado. pad.modals.reconnecting = Reconectando-se ao seu bloco… pad.modals.forcereconnect = Forçar reconexão pad.modals.uderdup = Aberto noutra janela +timeslider.month.january = Janeiro +timeslider.month.february = Fevereiro +timeslider.month.march = Março +timeslider.month.april = Abril�� +timeslider.month.may = Maio +timeslider.month.june = Junho +timeslider.month.july = Julho +timeslider.month.august = Agosto +timeslider.month.september = Setembro +timeslider.month.october = Outubro +timeslider.month.november = Novembro +timeslider.month.december = Dezembro diff --git a/src/locales/sv.ini b/src/locales/sv.ini index e6844ffbd..f7108d868 100644 --- a/src/locales/sv.ini +++ b/src/locales/sv.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Du kan endast importera från oformaterad text eller html-format. För mer avancerade importeringsfunktioner, var god installera abiword. pad.modals.connected = Ansluten. pad.modals.reconnecting = Återansluter till ditt block... pad.modals.forcereconnect = Tvinga återanslutning diff --git a/src/locales/te.ini b/src/locales/te.ini index dc78090b5..17f7d854e 100644 --- a/src/locales/te.ini +++ b/src/locales/te.ini @@ -65,3 +65,15 @@ timeslider.toolbar.returnbutton = పలకకి తిరిగి వెళ timeslider.toolbar.authors = రచయితలు: timeslider.toolbar.authorsList = రచయితలు లేరు timeslider.exportCurrent = ప్రస్తుత అవతారాన్ని ఈ విధంగా ఎగుమతి చేయుము: +timeslider.month.january = జనవరి +timeslider.month.february = ఫిబ్రవరి +timeslider.month.march = మార్చి +timeslider.month.april = ఏప్రిల్ +timeslider.month.may = మే +timeslider.month.june = జూన్ +timeslider.month.july = జూలై +timeslider.month.august = ఆగష్టు +timeslider.month.september = సెప్టెంబరు +timeslider.month.october = అక్టోబరు +timeslider.month.november = నవంబరు +timeslider.month.december = డిసెంబరు diff --git a/src/locales/uk.ini b/src/locales/uk.ini index 03cb18366..e003263a0 100644 --- a/src/locales/uk.ini +++ b/src/locales/uk.ini @@ -43,6 +43,7 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (документ OpenOffice) pad.importExport.exportdokuwiki = DokuWiki +pad.importExport.abiword.innerHTML = Ви можете імпортувати лище формати простого тексту або html. Для більш просунутих способів імпорту встановіть abiword. pad.modals.connected = З'єднано. pad.modals.reconnecting = Перепідлючення до Вашого документу.. pad.modals.forcereconnect = Примусове перепідключення @@ -76,3 +77,18 @@ timeslider.toolbar.returnbutton = Повернутись до документу timeslider.toolbar.authors = Автори: timeslider.toolbar.authorsList = Немає авторів timeslider.exportCurrent = Експортувати поточну версію як: +timeslider.version = Версія {{version}} +timeslider.saved = Збережено {{month}} {{day}}, {{year}} +timeslider.dateformat = {{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}} +timeslider.month.january = Січень +timeslider.month.february = Лютий +timeslider.month.march = Березень +timeslider.month.april = Квітень +timeslider.month.may = Травень +timeslider.month.june = Червень +timeslider.month.july = Липень +timeslider.month.august = Серпень +timeslider.month.september = Вересень +timeslider.month.october = Жовтень +timeslider.month.november = Листопад +timeslider.month.december = Грудень diff --git a/src/locales/zh-hant.ini b/src/locales/zh-hant.ini index b76ae1805..b9de02047 100644 --- a/src/locales/zh-hant.ini +++ b/src/locales/zh-hant.ini @@ -76,3 +76,15 @@ timeslider.toolbar.returnbutton = 返回到pad timeslider.toolbar.authors = 作者: timeslider.toolbar.authorsList = 無作者 timeslider.exportCurrent = 匯出當前版本為: +timeslider.month.january = 1月 +timeslider.month.february = 2月 +timeslider.month.march = 3月 +timeslider.month.april = 4月 +timeslider.month.may = 5月 +timeslider.month.june = 6月 +timeslider.month.july = 7月 +timeslider.month.august = 8月 +timeslider.month.september = 9月 +timeslider.month.october = 10月 +timeslider.month.november = 11月 +timeslider.month.december = 12月 diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index 87132603e..da8dea85d 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -166,10 +166,12 @@ function Ace2Inner(){ } var dynamicCSS = null; + var parentDynamicCSS = null; function initDynamicCSS() { dynamicCSS = makeCSSManager("dynamicsyntax"); + parentDynamicCSS = makeCSSManager("dynamicsyntax", true); } var changesetTracker = makeChangesetTracker(scheduler, rep.apool, { @@ -217,6 +219,7 @@ function Ace2Inner(){ if (dynamicCSS) { dynamicCSS.removeSelectorStyle(getAuthorColorClassSelector(getAuthorClassName(author))); + parentDynamicCSS.removeSelectorStyle(getAuthorColorClassSelector(getAuthorClassName(author))); } } else @@ -234,18 +237,23 @@ function Ace2Inner(){ var authorStyle = dynamicCSS.selectorStyle(getAuthorColorClassSelector( getAuthorClassName(author))); + var parentAuthorStyle = parentDynamicCSS.selectorStyle(getAuthorColorClassSelector( + getAuthorClassName(author))); var anchorStyle = dynamicCSS.selectorStyle(getAuthorColorClassSelector( getAuthorClassName(author))+' > a') // author color authorStyle.backgroundColor = bgcolor; + parentAuthorStyle.backgroundColor = bgcolor; // text contrast if(colorutils.luminosity(colorutils.css2triple(bgcolor)) < 0.5) { authorStyle.color = '#ffffff'; + parentAuthorStyle.color = '#ffffff'; }else{ authorStyle.color = null; + parentAuthorStyle.color = null; } // anchor text contrast diff --git a/src/static/js/cssmanager.js b/src/static/js/cssmanager.js index e20074498..62f17496f 100644 --- a/src/static/js/cssmanager.js +++ b/src/static/js/cssmanager.js @@ -20,12 +20,13 @@ * limitations under the License. */ -function makeCSSManager(emptyStylesheetTitle) +function makeCSSManager(emptyStylesheetTitle, parentCss) { function getSheetByTitle(title) { - var allSheets = document.styleSheets; + if (parentCss) var allSheets = window.parent.parent.document.styleSheets; + else var allSheets = document.styleSheets; for (var i = 0; i < allSheets.length; i++) { @@ -38,7 +39,7 @@ function makeCSSManager(emptyStylesheetTitle) return null; } - var browserSheet = getSheetByTitle(emptyStylesheetTitle); + var browserSheet = getSheetByTitle(emptyStylesheetTitle, parentCss); function browserRules() { diff --git a/tests/frontend/specs/timeslider_revisions.js b/tests/frontend/specs/timeslider_revisions.js new file mode 100644 index 000000000..cf5790749 --- /dev/null +++ b/tests/frontend/specs/timeslider_revisions.js @@ -0,0 +1,60 @@ +describe("timeslider", function(){ + //create a new pad before each test run + beforeEach(function(cb){ + helper.newPad(cb); + this.timeout(6000); + }); + + it("loads adds a hundred revisions", function(done) { + var inner$ = helper.padInner$; + var chrome$ = helper.padChrome$; + + // make some changes to produce 100 revisions + var timePerRev = 900 + , revs = 100; + this.timeout(revs*timePerRev+10000); + for(var i=0; i < revs; i++) { + setTimeout(function() { + // enter 'a' in the first text element + inner$("div").first().sendkeys('a'); + }, timePerRev*i); + } + + setTimeout(function() { + // go to timeslider + $('#iframe-container iframe').attr('src', $('#iframe-container iframe').attr('src')+'/timeslider'); + + setTimeout(function() { + var timeslider$ = $('#iframe-container iframe')[0].contentWindow.$; + var $sliderBar = timeslider$('#ui-slider-bar'); + + var latestContents = timeslider$('#padcontent').text(); + + // Click somewhere on the timeslider + var e = new jQuery.Event('mousedown'); + e.clientX = e.pageX = 150; + e.clientY = e.pageY = 45; + $sliderBar.trigger(e); + + e = new jQuery.Event('mousedown'); + e.clientX = e.pageX = 150; + e.clientY = e.pageY = 40; + $sliderBar.trigger(e); + + e = new jQuery.Event('mousedown'); + e.clientX = e.pageX = 150; + e.clientY = e.pageY = 50; + $sliderBar.trigger(e); + + $sliderBar.trigger('mouseup') + + setTimeout(function() { + //make sure the text has changed + expect( timeslider$('#padcontent').text() ).not.to.eql( latestContents ); + done(); + }, 1000); + + }, 6000); + }, revs*timePerRev); + }); +});