From 6d7f128b870cc405151e44484a35999a0cbb69b0 Mon Sep 17 00:00:00 2001 From: Dan Bornstein Date: Wed, 24 Aug 2016 10:54:52 -0700 Subject: [PATCH 01/12] Use an EEJS template for HTML export instead of inlining it in the JS code. The semantics of all the substitutions are identical to what they were before. I _did_ take the liberty of formatting the CSS to be a bit more readable (at the cost of adding a little bit of whitespace). --- src/node/utils/ExportHtml.js | 110 ++----------------------- src/templates/export_html.html | 143 +++++++++++++++++++++++++++++++++ 2 files changed, 151 insertions(+), 102 deletions(-) create mode 100644 src/templates/export_html.html diff --git a/src/node/utils/ExportHtml.js b/src/node/utils/ExportHtml.js index 836165b16..f2e275eea 100644 --- a/src/node/utils/ExportHtml.js +++ b/src/node/utils/ExportHtml.js @@ -22,6 +22,7 @@ var ERR = require("async-stacktrace"); var _ = require('underscore'); var Security = require('ep_etherpad-lite/static/js/security'); var hooks = require('ep_etherpad-lite/static/js/pluginfw/hooks'); +var eejs = require('ep_etherpad-lite/node/eejs'); var _analyzeLine = require('./ExportHelper')._analyzeLine; var _encodeWhitespace = require('./ExportHelper')._encodeWhitespace; @@ -490,112 +491,17 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) stylesForExport.forEach(function(css){ stylesForExportCSS += css; }); - // Core inclusion of head etc. - var head = - (noDocType ? '' : '\n') + - '\n' + (noDocType ? '' : '\n' + - '' + Security.escapeHTML(padId) + '\n' + - '\n' + - '\n' + - '\n' + - '\n' + - '\n' + '\n') + - ''; - var foot = '\n\n'; getPadHTML(pad, revNum, function (err, html) { if(ERR(err, callback)) return; - callback(null, head + html + foot); + var exportedDoc = eejs.require("ep_etherpad-lite/templates/export_html.html", { + body: html, + doctype: noDocType ? '' : '', + padId: Security.escapeHTML(padId), + extraCSS: stylesForExportCSS + }); + callback(null, exportedDoc); }); }); }); diff --git a/src/templates/export_html.html b/src/templates/export_html.html new file mode 100644 index 000000000..24e83ac2c --- /dev/null +++ b/src/templates/export_html.html @@ -0,0 +1,143 @@ +<%- doctype %> + + +<%- padId %> + + + + + + + +<%- body %> + + From 8ad9d4f6ddcbdc658162e4b9635d3579556b310d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Thu, 25 Aug 2016 07:33:25 +0200 Subject: [PATCH 02/12] Localisation updates from https://translatewiki.net. --- src/locales/hu.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/locales/hu.json b/src/locales/hu.json index c4d06c273..f34c76caf 100644 --- a/src/locales/hu.json +++ b/src/locales/hu.json @@ -64,7 +64,7 @@ "pad.modals.userdup.explanation": "Úgy tűnik, ez a notesz több különböző böngészőablakban is meg van nyitva a számítógépeden.", "pad.modals.userdup.advice": "Kapcsolódj újra, ha ezt az ablakot akarod használni.", "pad.modals.unauth": "Nincs rá jogosultságod", - "pad.modals.unauth.explanation": "A jogosultságaid megváltoztak, miközben ezt az oldalt nézted. Próbálj meg újrakapcsolódni.", + "pad.modals.unauth.explanation": "A jogosultságaid megváltoztak, miközben ezt az oldalt nézted. Próbálj meg újrakapcsolódni!", "pad.modals.looping.explanation": "Nem sikerült a kommunikáció a szinkronizációs szerverrel.", "pad.modals.looping.cause": "Talán egy túl szigorú tűzfalon vagy proxyn keresztül kapcsolódtál az internetre.", "pad.modals.initsocketfail": "A szerver nem érhető el.", @@ -96,6 +96,9 @@ "timeslider.exportCurrent": "Jelenlegi változat exportálása így:", "timeslider.version": "{{version}} verzió", "timeslider.saved": "{{year}}. {{month}} {{day}}-n elmentve", + "timeslider.playPause": "Notesz tartalom visszajátszása / leállítása", + "timeslider.backRevision": "Egy revízióval vissza a noteszben", + "timeslider.forwardRevision": "Egy revízióval előre a noteszben", "timeslider.dateformat": "{{year}}/{{month}}/{{day}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "január", "timeslider.month.february": "február", @@ -109,8 +112,9 @@ "timeslider.month.october": "október", "timeslider.month.november": "november", "timeslider.month.december": "december", - "timeslider.unnamedauthors": "{{num}} névtelen {[plural(num), one: szerző, other: szerző]}", + "timeslider.unnamedauthors": "{{num}} névtelen {[plural(num), one: szerző, other: szerzők]}", "pad.savedrevs.marked": "Ez a revízió mostantól mentettként jelölve", + "pad.savedrevs.timeslider": "A mentett revíziókat az időcsúszkán tudod megnézni", "pad.userlist.entername": "Add meg a nevedet", "pad.userlist.unnamed": "névtelen", "pad.userlist.guest": "Vendég", @@ -121,7 +125,7 @@ "pad.impexp.importing": "Importálás…", "pad.impexp.confirmimport": "Egy fájl importálása felülírja a jelenlegi szöveget a noteszben. Biztos hogy folytatod?", "pad.impexp.convertFailed": "Nem tudtuk importálni ezt a fájlt. Kérjük, használj másik dokumentum formátumot, vagy kézzel másold és illeszd be a tartalmat", - "pad.impexp.padHasData": "Nem tudjuk importálni ezt a fájlt, mert ez a Pad már megváltozott, kérjük, importálj egy új padra", + "pad.impexp.padHasData": "Nem tudjuk importálni ezt a fájlt, mert ez a notesz már megváltozott, kérjük, importálj egy új noteszba.", "pad.impexp.uploadFailed": "A feltöltés sikertelen, próbáld meg újra", "pad.impexp.importfailed": "Az importálás nem sikerült", "pad.impexp.copypaste": "Kérjük másold be", From a3765d97853ecfe3fa608cd3b191a33cabe311ec Mon Sep 17 00:00:00 2001 From: Dan Bornstein Date: Tue, 30 Aug 2016 11:10:17 -0700 Subject: [PATCH 03/12] Account for any top margin on the first line. Without this change, a top margin on any element on the first line of pad content would throw off the alignment of line numbers. The default stylesheet doesn't define any elements with top margins, but plugins might. (This is also explained in a code comment.) In order to see the problem, add the following clause to `iframe_editor.css` (before incorporating this commit): #innerdocbody > :first-child { margin-top: 100px; } --- src/static/js/ace2_inner.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index def7b0900..0970666eb 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -5459,7 +5459,16 @@ function Ace2Inner(){ // and the line-numbers don't line up unless we pay // attention to where the divs are actually placed... // (also: padding on TTs/SPANs in IE...) - h = b.nextSibling.offsetTop - b.offsetTop; + if (b === doc.body.firstChild) { + // It's the first line. For line number alignment purposes, its + // height is taken to be the top offset of the next line. If we + // didn't do this special case, we would miss out on any top margin + // included on the first line. The default stylesheet doesn't add + // extra margins, but plugins might. + h = b.nextSibling.offsetTop; + } else { + h = b.nextSibling.offsetTop - b.offsetTop; + } } if (h) { From fd7591c110c2420f8ed7baafb4232495f36bd62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Mon, 5 Sep 2016 07:14:04 +0200 Subject: [PATCH 04/12] Localisation updates from https://translatewiki.net. --- src/locales/de.json | 5 +++-- src/locales/qqq.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/locales/de.json b/src/locales/de.json index 29387fd59..f32b8cf62 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -6,11 +6,12 @@ "Nipsky", "Wikinaut", "Thargon", - "Predatorix" + "Predatorix", + "Sebastian Wallroth" ] }, "index.newPad": "Neues Pad", - "index.createOpenPad": "oder Pad mit folgendem Namen öffnen:", + "index.createOpenPad": "oder ein Pad mit folgendem Namen erstellen/öffnen:", "pad.toolbar.bold.title": "Fett (Strg-B)", "pad.toolbar.italic.title": "Kursiv (Strg-I)", "pad.toolbar.underline.title": "Unterstrichen (Strg-U)", diff --git a/src/locales/qqq.json b/src/locales/qqq.json index 39389924c..0beec0cc2 100644 --- a/src/locales/qqq.json +++ b/src/locales/qqq.json @@ -107,7 +107,7 @@ "pad.savedrevs.marked": "more like bookmarked, or tagged/starred", "pad.userlist.entername": "Used as placeholder for the \"Name\" input box in the upper right corner of the screen.", "pad.userlist.unnamed": "Displayed, if a user has not set a nick yet", - "pad.userlist.guest": "Preceded by the link text which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.", + "pad.userlist.guest": "Preceded by the link text which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.\n{{Identical|Guest}}", "pad.userlist.deny": "Used as link text.\n\nFollowed by the link which is labeled {{msg-etherpadlite|Pad.userlist.approve}}.", "pad.userlist.approve": "Used as link text.\n\nPreceded by the link which is labeled {{msg-etherpadlite|Pad.userlist.deny}}.\n\nFollowed by the message {{msg-etherpadlite|Pad.userlist.guest}}.\n{{Identical|Approve}}", "pad.editbar.clearcolors": "Used as confirmation message (JavaScript confirm() function).\n\nThis message means \"Are you sure you want to clear authorship colors on entire document?\".", From b502c855d22cd209e2aa8e4a96de6c6808d279d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Thu, 8 Sep 2016 10:08:19 +0200 Subject: [PATCH 05/12] Localisation updates from https://translatewiki.net. --- src/locales/ar.json | 2 +- src/locales/dty.json | 56 ++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 55 insertions(+), 3 deletions(-) diff --git a/src/locales/ar.json b/src/locales/ar.json index 33c6beb3f..4d9eb111a 100644 --- a/src/locales/ar.json +++ b/src/locales/ar.json @@ -80,7 +80,7 @@ "pad.modals.corruptPad.cause": "قد يكون هذا بسبب تكوين ملقم خاطئ أو بسبب سلوك آخر غير متوقع. يرجى الاتصال بمسؤول الخدمة.", "pad.modals.deleted": "محذوف.", "pad.modals.deleted.explanation": "تمت إزالة هذا الباد", - "pad.modals.disconnected": "لم تعد متّصل.", + "pad.modals.disconnected": "لم تعد متصلا.", "pad.modals.disconnected.explanation": "تم فقدان الإتصال بالخادم", "pad.modals.disconnected.cause": "قد يكون الخادم غير متوفر. يرجى إعلام مسؤول الخدمة إذا كان هذا لا يزال يحدث.", "pad.share": "شارك هذه الباد", diff --git a/src/locales/dty.json b/src/locales/dty.json index fde365120..4eeef7527 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -2,7 +2,8 @@ "@metadata": { "authors": [ "रमेश सिंह बोहरा", - "राम प्रसाद जोशी" + "राम प्रसाद जोशी", + "Nirajan pant" ] }, "index.newPad": "नयाँ प्याड", @@ -18,6 +19,7 @@ "pad.toolbar.undo.title": "खारेजी (Ctrl-Z)", "pad.toolbar.redo.title": "दोसर्या:लागु (Ctrl-Y)", "pad.toolbar.clearAuthorship.title": "लेखकीय रङ्ग हटाउन्या (Ctrl+Shift+C)", + "pad.toolbar.import_export.title": "विविध फाइल फर्म्याटअन बठेइ/मी आयात/निर्यात", "pad.toolbar.timeslider.title": "टाइमस्लाइडर", "pad.toolbar.savedRevision.title": "पुनरावलोकन संग्रहा गद्य्य", "pad.toolbar.settings.title": "सेटिङ्गहरू", @@ -26,6 +28,7 @@ "pad.colorpicker.save": "सङ्ग्रह गद्या", "pad.colorpicker.cancel": "खारेजी", "pad.loading": "लोड हुन्नाछ....", + "pad.noCookie": "कुकी पाउन नाइ सकियो। तमरा ब्राउजरमी कुकी राख्दाइ अनुमति दिय!", "pad.passwordRequired": "यो प्यड खोल्लाकी पासवर्ड चाहिन्छ", "pad.permissionDenied": "तमलाईँ यै प्याड खोल्लाकी अनुमति नाइथिन", "pad.wrongPassword": "तमरो पासवर्ड गलत थ्यो", @@ -49,9 +52,17 @@ "pad.importExport.exportword": "माइक्रोसफ्ट वर्ड", "pad.importExport.exportpdf": "पिडिएफ", "pad.importExport.exportopen": "ओडिएफ(खुल्ला कागजात ढाँचा)", + "pad.importExport.abiword.innerHTML": "तम सादा पाठ या HTML ढाँचा बठेइ मात्तरी आयात अरीसकन्छऽ। विस्तारित आयात विशेषता खिलाई कृपया abiword स्थापना अरऽ।", "pad.modals.connected": "जोडीयाको", "pad.modals.reconnecting": "तमरो प्याडमि आजि: जडान हुन्नाछ", + "pad.modals.forcereconnect": "बलात् पुन:जडान", + "pad.modals.userdup": "अर्खा विण्डोमी खुलिरैछ", + "pad.modals.userdup.explanation": "यो प्याड येइ कम्प्युटरमी एक़ है बर्ता ब्राउजर सञ्झ्यालमी खोल्याऽ धेकीँछ।", + "pad.modals.userdup.advice": "बरु यो विण्डो प्रयोग अद्दाइ दोसर्‍याँ जोणिय।", + "pad.modals.unauth": "अनुमति नदियीयाऽ", "pad.modals.initsocketfail": "सर्भरमा पहुँच पुर्‍याउन नाइसकियो ।", + "pad.modals.slowcommit.explanation": "सर्भर प्रत्युत्तर दिन्नारेन।", + "pad.modals.slowcommit.cause": "यो नेटवर्क कनेक्टिविटी सङ्ङ सम्बन्धित समस्याऽ कारण ले होइसकन्छ।", "pad.modals.deleted": "मेटियाको", "pad.modals.deleted.explanation": "यो प्याड हटाइसक्याको छ ।", "pad.modals.disconnected": "तमरो जडान अवरुद्ध भयो ।", @@ -60,5 +71,46 @@ "pad.share.readonly": "पड्या मात्तरै", "pad.share.link": "लिङ्क", "pad.share.emebdcode": "URL थप्प्या", - "pad.chat": "कुरणिकानी" + "pad.chat": "कुरणिकानी", + "pad.chat.title": "येइ प्याड खिलाइ गफ खोलऽ", + "pad.chat.loadmessages": "जेदा सन्देश लोड अरऽ", + "timeslider.pageTitle": "{{appTitle}} समय स्लाइडर", + "timeslider.toolbar.returnbutton": "प्याडमी फर्कऽ", + "timeslider.toolbar.authors": "लेखकअन:", + "timeslider.toolbar.authorsList": "लेखकअन आथीनन", + "timeslider.toolbar.exportlink.title": "निर्यात", + "timeslider.exportCurrent": "हालआ शंसोधनलाई इस्याँ निर्यात अरऽ:", + "timeslider.version": "संस्करण {{version}}", + "timeslider.saved": "भँणार अरीयाऽ {{month}} {{day}}, {{year}}", + "timeslider.playPause": "प्याडआ सामाग्रीइनलाई प्लेब्याक/पउज अरऽ", + "timeslider.backRevision": "येइ प्याडमी यक शंसोधन पछा जाऽ", + "timeslider.forwardRevision": "येइ शंसोधनमी यक शंसोधन अघा जाऽ", + "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": "डिसेम्बर", + "timeslider.unnamedauthors": "{{num}} बिननाउँइको {[plural(num) one: author, other: authors ]}", + "pad.savedrevs.marked": "आब येइ संशोधनलाई सङ्ग्रहित संशोधनआ रूपमी चिनो लायियो", + "pad.savedrevs.timeslider": "समयस्लाइडर भेटिबर तम भँणार अरीयाऽ शंसोधनअनलाई हेरि सकन्छऽ", + "pad.userlist.entername": "तमरो नाउँ हाल", + "pad.userlist.unnamed": "बिननाउँइको", + "pad.userlist.guest": "पाउनो", + "pad.userlist.deny": "अस्वीकार", + "pad.userlist.approve": "अनुमोदन", + "pad.editbar.clearcolors": "सङताइ कागताजमी है लेखक रङ्ङअन साप अद्द्या?", + "pad.impexp.importbutton": "ऐलै आयार अरऽ", + "pad.impexp.importing": "आयात अद्दाछ़...", + "pad.impexp.uploadFailed": "अपलोड असफल, कृपया दोसर्‍याँ प्रयास अर:", + "pad.impexp.importfailed": "आयात असफल", + "pad.impexp.copypaste": "कृपया नकल सार अर:", + "pad.impexp.exportdisabled": "{{type}} फर्म्याटमी निर्यात अक्षम अरीरैछ। विवरण खिलाइ कृपया तमरा संयन्त्र प्रशासकलाई सम्पर्क अर:।" } From 879ae7c67d6b0c7fa78e0e09435861e5509678a8 Mon Sep 17 00:00:00 2001 From: Dan Bornstein Date: Thu, 8 Sep 2016 09:41:23 -0700 Subject: [PATCH 06/12] Remove the `noDocType` argument, which was only ever passed as `false`. --- src/node/handler/ExportHandler.js | 2 +- src/node/hooks/express/padreadonly.js | 4 ++-- src/node/utils/ExportHtml.js | 3 +-- src/templates/export_html.html | 2 +- 4 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/node/handler/ExportHandler.js b/src/node/handler/ExportHandler.js index 8f91ced23..7cce6200b 100644 --- a/src/node/handler/ExportHandler.js +++ b/src/node/handler/ExportHandler.js @@ -92,7 +92,7 @@ exports.doExport = function(req, res, padId, type) //render the html document function(callback) { - exporthtml.getPadHTMLDocument(padId, req.params.rev, false, function(err, _html) + exporthtml.getPadHTMLDocument(padId, req.params.rev, function(err, _html) { if(ERR(err, callback)) return; html = _html; diff --git a/src/node/hooks/express/padreadonly.js b/src/node/hooks/express/padreadonly.js index 66be33390..bff8adf7b 100644 --- a/src/node/hooks/express/padreadonly.js +++ b/src/node/hooks/express/padreadonly.js @@ -7,7 +7,7 @@ var exporthtml = require("../../utils/ExportHtml"); exports.expressCreateServer = function (hook_name, args, cb) { //serve read only pad args.app.get('/ro/:id', function(req, res) - { + { var html; var padId; @@ -40,7 +40,7 @@ exports.expressCreateServer = function (hook_name, args, cb) { hasPadAccess(req, res, function() { //render the html document - exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html) + exporthtml.getPadHTMLDocument(padId, null, function(err, _html) { if(ERR(err, callback)) return; html = _html; diff --git a/src/node/utils/ExportHtml.js b/src/node/utils/ExportHtml.js index f2e275eea..bd177ac47 100644 --- a/src/node/utils/ExportHtml.js +++ b/src/node/utils/ExportHtml.js @@ -479,7 +479,7 @@ function getHTMLFromAtext(pad, atext, authorColors) return pieces.join(''); } -exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) +exports.getPadHTMLDocument = function (padId, revNum, callback) { padManager.getPad(padId, function (err, pad) { @@ -497,7 +497,6 @@ exports.getPadHTMLDocument = function (padId, revNum, noDocType, callback) if(ERR(err, callback)) return; var exportedDoc = eejs.require("ep_etherpad-lite/templates/export_html.html", { body: html, - doctype: noDocType ? '' : '', padId: Security.escapeHTML(padId), extraCSS: stylesForExportCSS }); diff --git a/src/templates/export_html.html b/src/templates/export_html.html index 24e83ac2c..b8893b717 100644 --- a/src/templates/export_html.html +++ b/src/templates/export_html.html @@ -1,4 +1,4 @@ -<%- doctype %> + <%- padId %> From a0403ffc22da6e94c88f89ea0ff0d65704947415 Mon Sep 17 00:00:00 2001 From: Dan Bornstein Date: Thu, 8 Sep 2016 09:46:13 -0700 Subject: [PATCH 07/12] Remove unused parameter `noDocType`. My editor also auto-stripped some EOL whitespace. --- src/node/handler/ExportHandler.js | 2 +- src/node/utils/ExportTxt.js | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/node/handler/ExportHandler.js b/src/node/handler/ExportHandler.js index 7cce6200b..fe7ab3db1 100644 --- a/src/node/handler/ExportHandler.js +++ b/src/node/handler/ExportHandler.js @@ -76,7 +76,7 @@ exports.doExport = function(req, res, padId, type) } else if(type == "txt") { - exporttxt.getPadTXTDocument(padId, req.params.rev, false, function(err, txt) + exporttxt.getPadTXTDocument(padId, req.params.rev, function(err, txt) { if(ERR(err)) return; res.send(txt); diff --git a/src/node/utils/ExportTxt.js b/src/node/utils/ExportTxt.js index a6bec4a58..e3ce01520 100644 --- a/src/node/utils/ExportTxt.js +++ b/src/node/utils/ExportTxt.js @@ -192,7 +192,7 @@ function getTXTFromAtext(pad, atext, authorColors) tags2close.push(i); } } - + for (var i = 0; i < propVals.length; i++) { if (propVals[i] === ENTER || propVals[i] === STAY) @@ -208,10 +208,10 @@ function getTXTFromAtext(pad, atext, authorColors) { chars--; // exclude newline at end of line, if present } - + var s = taker.take(chars); - // removes the characters with the code 12. Don't know where they come + // removes the characters with the code 12. Don't know where they come // from but they break the abiword parser and are completly useless // s = s.replace(String.fromCharCode(12), ""); @@ -221,7 +221,7 @@ function getTXTFromAtext(pad, atext, authorColors) assem.append(s); } // end iteration over spans in line - + var tags2close = []; for (var i = propVals.length - 1; i >= 0; i--) { @@ -231,7 +231,7 @@ function getTXTFromAtext(pad, atext, authorColors) propVals[i] = false; } } - + } // end processNextChars processNextChars(text.length - idx); return(assem.toString()); @@ -271,7 +271,7 @@ function getTXTFromAtext(pad, atext, authorColors) } exports.getTXTFromAtext = getTXTFromAtext; -exports.getPadTXTDocument = function (padId, revNum, noDocType, callback) +exports.getPadTXTDocument = function (padId, revNum, callback) { padManager.getPad(padId, function (err, pad) { From 7ecf240d9e46ac41259100bf83242ca7b8fc205b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Tue, 13 Sep 2016 07:44:27 +0200 Subject: [PATCH 08/12] Localisation updates from https://translatewiki.net. --- src/locales/dty.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/locales/dty.json b/src/locales/dty.json index 4eeef7527..ad8633c21 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -60,7 +60,12 @@ "pad.modals.userdup.explanation": "यो प्याड येइ कम्प्युटरमी एक़ है बर्ता ब्राउजर सञ्झ्यालमी खोल्याऽ धेकीँछ।", "pad.modals.userdup.advice": "बरु यो विण्डो प्रयोग अद्दाइ दोसर्‍याँ जोणिय।", "pad.modals.unauth": "अनुमति नदियीयाऽ", + "pad.modals.unauth.explanation": "येइ पन्ना हेरनज्याँ तमरा अधिकार बदेलिया। दोसर्‍याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.looping.explanation": "सिक्रोनाइजेसन सर्भर सित सञ्चार समस्या धेकिन्नाछ़।", + "pad.modals.looping.cause": "शायद तम यक असंगत फायरवाल या प्रोक्सी का माध्यम बठेइ जोणीरैछऽ।", "pad.modals.initsocketfail": "सर्भरमा पहुँच पुर्‍याउन नाइसकियो ।", + "pad.modals.initsocketfail.explanation": "सिङ्क्रोनाइजेसन सर्भर सित जोणीन नाइ सकियो?", + "pad.modals.initsocketfail.cause": "यो शायद तमरा ब्राउजर या इन्टरनेट जडान सित सम्बन्धित समस्याऽ कारणले होइ सकन्छ़।", "pad.modals.slowcommit.explanation": "सर्भर प्रत्युत्तर दिन्नारेन।", "pad.modals.slowcommit.cause": "यो नेटवर्क कनेक्टिविटी सङ्ङ सम्बन्धित समस्याऽ कारण ले होइसकन्छ।", "pad.modals.deleted": "मेटियाको", From 32eb6a2288ae4fc6ba0dc36482ff1fdc8c1b101e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Thu, 15 Sep 2016 08:18:13 +0200 Subject: [PATCH 09/12] Localisation updates from https://translatewiki.net. --- src/locales/dty.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/locales/dty.json b/src/locales/dty.json index ad8633c21..f179edfb1 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -68,6 +68,9 @@ "pad.modals.initsocketfail.cause": "यो शायद तमरा ब्राउजर या इन्टरनेट जडान सित सम्बन्धित समस्याऽ कारणले होइ सकन्छ़।", "pad.modals.slowcommit.explanation": "सर्भर प्रत्युत्तर दिन्नारेन।", "pad.modals.slowcommit.cause": "यो नेटवर्क कनेक्टिविटी सङ्ङ सम्बन्धित समस्याऽ कारण ले होइसकन्छ।", + "pad.modals.badChangeset.explanation": "तमले अर्‍याऽ यक सम्पादन समक्रमण सर्भर हताँ अवैध वर्गीकृत अरियाऽ थ्यो।", + "pad.modals.badChangeset.cause": "यो यक गलत सर्भर विन्यास या केइ और अप्रत्याशित चालचलनाऽ कारण़ ले होइसकन्छ। यदि तमलाई यो गल्ती हो भण्ण्या लागन्छ भँण्या, कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ। सम्पादन चालु राख्दाइ दोसर्‍याँ जोणिन्या प्रयास अरऽ।", + "pad.modals.corruptPad.explanation": "तमले उपयोग अद्द़ खोज्याऽ प्याड बिगण्योऽ छ।", "pad.modals.deleted": "मेटियाको", "pad.modals.deleted.explanation": "यो प्याड हटाइसक्याको छ ।", "pad.modals.disconnected": "तमरो जडान अवरुद्ध भयो ।", From 97fd1ab2feffa92494d837d2aefd842853d9f816 Mon Sep 17 00:00:00 2001 From: Nobody Really Date: Tue, 20 Sep 2016 09:06:07 +0200 Subject: [PATCH 10/12] Added LibreJS support --- src/node/hooks/express/specialpages.js | 7 +++ src/templates/admin/index.html | 1 + src/templates/admin/plugins-info.html | 1 + src/templates/admin/plugins.html | 1 + src/templates/admin/settings.html | 1 + src/templates/export_html.html | 1 + src/templates/index.html | 34 ++++++------ src/templates/javascript.html | 73 ++++++++++++++++++++++++++ src/templates/pad.html | 5 ++ src/templates/timeslider.html | 4 +- 10 files changed, 111 insertions(+), 17 deletions(-) create mode 100644 src/templates/javascript.html diff --git a/src/node/hooks/express/specialpages.js b/src/node/hooks/express/specialpages.js index e8d7795a6..2840f82ca 100644 --- a/src/node/hooks/express/specialpages.js +++ b/src/node/hooks/express/specialpages.js @@ -16,6 +16,13 @@ exports.expressCreateServer = function (hook_name, args, cb) { res.send(eejs.require("ep_etherpad-lite/templates/index.html")); }); + //serve javascript.html + args.app.get('/javascript', function(req, res) + { + res.send(eejs.require("ep_etherpad-lite/templates/javascript.html")); + }); + + //serve robots.txt args.app.get('/robots.txt', function(req, res) { diff --git a/src/templates/admin/index.html b/src/templates/admin/index.html index f6e9e29ef..45755a490 100644 --- a/src/templates/admin/index.html +++ b/src/templates/admin/index.html @@ -20,5 +20,6 @@ + diff --git a/src/templates/admin/plugins-info.html b/src/templates/admin/plugins-info.html index 5d39c3889..8dd0bf88e 100644 --- a/src/templates/admin/plugins-info.html +++ b/src/templates/admin/plugins-info.html @@ -41,5 +41,6 @@ + diff --git a/src/templates/admin/plugins.html b/src/templates/admin/plugins.html index 71c4dbcc5..0fff78437 100644 --- a/src/templates/admin/plugins.html +++ b/src/templates/admin/plugins.html @@ -112,5 +112,6 @@ + diff --git a/src/templates/admin/settings.html b/src/templates/admin/settings.html index 560ac507c..74f35521a 100644 --- a/src/templates/admin/settings.html +++ b/src/templates/admin/settings.html @@ -50,5 +50,6 @@ + diff --git a/src/templates/export_html.html b/src/templates/export_html.html index b8893b717..b29941c9f 100644 --- a/src/templates/export_html.html +++ b/src/templates/export_html.html @@ -139,5 +139,6 @@ ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol > ol { <%- body %> + diff --git a/src/templates/index.html b/src/templates/index.html index 0b0be79b9..70478ea3e 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -29,7 +29,7 @@ */ - + @@ -121,7 +121,7 @@ input[type="text"] { border-radius: 3px; box-sizing: border-box; - -moz-box-sizing: border-box; + -moz-box-sizing: border-box; line-height:36px; /* IE8 hack */ padding: 0px 45px 0 10px; *padding: 0; /* IE7 hack */ @@ -148,22 +148,22 @@ margin-top: 0; } #inner { - width: 95%; + width: 95%; } #label { text-align: center; } } - +
<% e.begin_block("indexWrapper"); %>
- -
- + + +
@@ -171,33 +171,35 @@
- + diff --git a/src/templates/javascript.html b/src/templates/javascript.html new file mode 100644 index 000000000..29031c4b8 --- /dev/null +++ b/src/templates/javascript.html @@ -0,0 +1,73 @@ + + + + JavaScript license information + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
jquery-2.1.1.min.jsExpatjquery.js
html10n.jsExpathtml10n.js
l10n.jsApache-2.0-onlyl10n.js
socket.io.jsExpatsocket.io.js
require-kernel.jsExpatrequire-kernel.js
index.jsApache-2.0-onlyindex.js
timeslider.jsApache-2.0-onlytimeslider.js
pad.jsApache-2.0-onlypad.js
plugins.jsApache-2.0-onlyplugins.js
minify.json.jsExpatminify.json.js
settings.jsApache-2.0-onlysettings.js
jquery.autosize.jsExpatjquery.autosize.js
+ + diff --git a/src/templates/pad.html b/src/templates/pad.html index 767c1ec9b..5f2d0328e 100644 --- a/src/templates/pad.html +++ b/src/templates/pad.html @@ -350,6 +350,7 @@ <% e.begin_block("scripts"); %> @@ -378,6 +380,7 @@ + <% e.end_block(); %> diff --git a/src/templates/timeslider.html b/src/templates/timeslider.html index f52c0c508..f3fde6a4c 100644 --- a/src/templates/timeslider.html +++ b/src/templates/timeslider.html @@ -230,6 +230,7 @@ <% e.end_block(); %> + - From b6e5a2283b8cd6c6d06c6ddf4d8467dc80610242 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Thu, 22 Sep 2016 07:27:50 +0200 Subject: [PATCH 11/12] Localisation updates from https://translatewiki.net. --- src/locales/dty.json | 5 +++++ src/locales/eo.json | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/locales/dty.json b/src/locales/dty.json index f179edfb1..c0d439e6a 100644 --- a/src/locales/dty.json +++ b/src/locales/dty.json @@ -71,10 +71,12 @@ "pad.modals.badChangeset.explanation": "तमले अर्‍याऽ यक सम्पादन समक्रमण सर्भर हताँ अवैध वर्गीकृत अरियाऽ थ्यो।", "pad.modals.badChangeset.cause": "यो यक गलत सर्भर विन्यास या केइ और अप्रत्याशित चालचलनाऽ कारण़ ले होइसकन्छ। यदि तमलाई यो गल्ती हो भण्ण्या लागन्छ भँण्या, कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ। सम्पादन चालु राख्दाइ दोसर्‍याँ जोणिन्या प्रयास अरऽ।", "pad.modals.corruptPad.explanation": "तमले उपयोग अद्द़ खोज्याऽ प्याड बिगण्योऽ छ।", + "pad.modals.corruptPad.cause": "यो गलत सर्भर विन्यास या केइ और नसोच्याऽ चालचलनले होइसकन्छ। कृपया सेवा व्यवस्थापकलाई सम्पर्क अरऽ।", "pad.modals.deleted": "मेटियाको", "pad.modals.deleted.explanation": "यो प्याड हटाइसक्याको छ ।", "pad.modals.disconnected": "तमरो जडान अवरुद्ध भयो ।", "pad.modals.disconnected.explanation": "तमरो सर्भरसितको जडान अवरुद्ध भयो", + "pad.modals.disconnected.cause": "सर्भर अनुपलब्ध होइसकन्छ। यदि यो हुनोइ रयाबर कृपया सेवा व्यवस्थापकलाई सूचित अरऽ।", "pad.share": "यस प्यडलाई बाड्न्या", "pad.share.readonly": "पड्या मात्तरै", "pad.share.link": "लिङ्क", @@ -117,6 +119,9 @@ "pad.editbar.clearcolors": "सङताइ कागताजमी है लेखक रङ्ङअन साप अद्द्या?", "pad.impexp.importbutton": "ऐलै आयार अरऽ", "pad.impexp.importing": "आयात अद्दाछ़...", + "pad.impexp.confirmimport": "फाइल आयात़ ले प्याडओ अइलओ पाठ बदेलिन्या हो। तम ऐतिऱ बड्ड चाहन्छ भणिबर पक्का छऽ?", + "pad.impexp.convertFailed": "एइ फाइललाई आयात अद्द नाइसक्यो। कृपया जुदोइ कागजात फर्याट प्रयोग अरऽ या नकल पेस्ट अरऽ", + "pad.impexp.padHasData": "हम एइ फाइलाई आयात अद्दाइ असमर्थ छौँ क्याइकि एइ प्याडमी पैली अरीयाऽ फेलबदेल छन्, कृपया नयाँ प्याडमी आयात अरऽ", "pad.impexp.uploadFailed": "अपलोड असफल, कृपया दोसर्‍याँ प्रयास अर:", "pad.impexp.importfailed": "आयात असफल", "pad.impexp.copypaste": "कृपया नकल सार अर:", diff --git a/src/locales/eo.json b/src/locales/eo.json index c45267282..786d3bbed 100644 --- a/src/locales/eo.json +++ b/src/locales/eo.json @@ -3,7 +3,8 @@ "authors": [ "Eliovir", "Mschmitt", - "Objectivesea" + "Objectivesea", + "Robin van der Vliet" ] }, "index.newPad": "Nova Teksto", @@ -120,7 +121,7 @@ "pad.userlist.approve": "Aprobi", "pad.editbar.clearcolors": "Forigi kolorojn de aŭtoreco en la tuta dokumento?", "pad.impexp.importbutton": "Enporti Nun", - "pad.impexp.importing": "Enportanta...", + "pad.impexp.importing": "Enportante...", "pad.impexp.confirmimport": "Enporti dosieron superskribos la nunan tekston en la redaktilo. Ĉu vi certe volas daŭrigi?", "pad.impexp.convertFailed": "Ni ne kapablis enporti tiun dosieron. Bonvolu uzi alian dokumentformaton aŭ permane kopii kaj alglui.", "pad.impexp.padHasData": "Ni ne kapablis enporti tiun dosieron ĉar la teksto jam estas ŝanĝita. Bonvolu enporti en novan tekston.", From 93ca44f00593c4e9d2bc37a996f264c8a0cd3adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niklas=20Laxstr=C3=B6m?= Date: Tue, 27 Sep 2016 13:58:36 +0200 Subject: [PATCH 12/12] Localisation updates from https://translatewiki.net. --- src/locales/lb.json | 10 ++++++++++ src/locales/sl.json | 9 ++++++--- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/locales/lb.json b/src/locales/lb.json index 99bfe0b51..535d778f2 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -8,10 +8,14 @@ }, "index.newPad": "Neie Pad", "index.createOpenPad": "oder maacht ee Pad mat dësem Numm op:", + "pad.toolbar.bold.title": "Fett (Strg-B)", + "pad.toolbar.italic.title": "Schréi (Ctrl+I)", "pad.toolbar.underline.title": "Ënnerstrach (Ctrl+U)", "pad.toolbar.strikethrough.title": "Duerchgestrach (Ctrl+5)", "pad.toolbar.ol.title": "Numeréiert Lëscht (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Net-numeréiert Lëscht (Ctrl+Shift+L)", + "pad.toolbar.indent.title": "Aréckelen (TAB)", + "pad.toolbar.unindent.title": "Erausréckelen (Shift+TAB)", "pad.toolbar.undo.title": "Réckgängeg (Ctrl-Z)", "pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)", "pad.toolbar.savedRevision.title": "Versioun späicheren", @@ -29,14 +33,19 @@ "pad.settings.language": "Sprooch:", "pad.importExport.import_export": "Import/Export", "pad.importExport.importSuccessful": "Erfollegräich", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Kloertext", "pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", "pad.modals.connected": "Verbonnen.", + "pad.modals.userdup": "An enger anerer Fënster opgemaach", "pad.modals.unauth": "Net autoriséiert", "pad.modals.slowcommit.explanation": "De Server äntwert net.", "pad.modals.deleted": "Geläscht.", + "pad.modals.disconnected": "Äre Verbindung ass ofgebrach.", + "pad.modals.disconnected.explanation": "D'Verbindung mam Server ass verluergaang.", "pad.share.readonly": "Nëmme liesen", "pad.share.link": "Link", "pad.chat.loadmessages": "Méi Message lueden", @@ -58,6 +67,7 @@ "timeslider.month.october": "Oktober", "timeslider.month.november": "November", "timeslider.month.december": "Dezember", + "pad.savedrevs.marked": "Dës Versioun ass elo als gespäichert Versioun markéiert", "pad.userlist.entername": "Gitt Ären Numm an", "pad.userlist.guest": "Gaascht", "pad.userlist.approve": "Zoustëmmen", diff --git a/src/locales/sl.json b/src/locales/sl.json index a51cb53d6..5d2dd85ee 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -6,7 +6,7 @@ "Skalcaa" ] }, - "index.newPad": "Nova Ploščica", + "index.newPad": "Nov dokument", "index.createOpenPad": "ali pa odpri dokument z imenom:", "pad.toolbar.bold.title": "Krepko (Ctrl-B)", "pad.toolbar.italic.title": "Ležeče (Ctrl-I)", @@ -72,7 +72,7 @@ "pad.modals.slowcommit.cause": "Najverjetneje je prišlo do napake med vzpostavitvijo povezave.", "pad.modals.badChangeset.explanation": "Urejanje, ki ste ga naredili, je sinhronizacijski strežnik označil kot nelegalno.", "pad.modals.badChangeset.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve, če menite, da gre za napako. Poskusite se ponovno povezati, da nadaljujete z urejanjem.", - "pad.modals.corruptPad.explanation": "Blok, do katerega želite dostopati, je poškodovan.", + "pad.modals.corruptPad.explanation": "Dokument, do katerega želite dostopati, je poškodovan.", "pad.modals.corruptPad.cause": "Razlog za to je morda napačna konfiguracija strežnika ali neko drugo nepričakovano vedenje. Prosimo, stopite v stik z upravljavcem storitve.", "pad.modals.deleted": "Izbrisano.", "pad.modals.deleted.explanation": "Dokument je odstranjen.", @@ -94,6 +94,9 @@ "timeslider.exportCurrent": "Izvozi trenutno različico kot:", "timeslider.version": "Različica {{version}}", "timeslider.saved": "Shranjeno {{day}}.{{month}}.{{year}}", + "timeslider.playPause": "Predvajaj/začasno ustavi vsebino dokumenta", + "timeslider.backRevision": "Pojdi eno redakcijo nazaj v tem dokumentu", + "timeslider.forwardRevision": "Pojdi redakcijo naprej v tem dokumentu", "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Januar", "timeslider.month.february": "Februar", @@ -120,7 +123,7 @@ "pad.impexp.importing": "Poteka uvažanje ...", "pad.impexp.confirmimport": "Uvoz datoteke prepiše obstoječe besedilo dokumenta. Ali ste prepričani, da želite nadaljevati?", "pad.impexp.convertFailed": "Datoteke ni mogoče uvoziti. Uporabiti je treba enega izmed podprtih zapisov dokumentov ali pa vsebino prilepiti ročno.", - "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker ta Ploščica že vsebuje spremembe. Prosimo, uvozite datoteko v novo ploščico", + "pad.impexp.padHasData": "Nismo mogli uvoziti datoteke, ker dokument že vsebuje spremembe. Prosimo, uvozite datoteko v nov dokument", "pad.impexp.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", "pad.impexp.importfailed": "Uvoz je spodletel.", "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.",