diff --git a/bin/cleanRun.sh b/bin/cleanRun.sh new file mode 100755 index 00000000..55bcf8a7 --- /dev/null +++ b/bin/cleanRun.sh @@ -0,0 +1,41 @@ +#!/bin/sh + +#Move to the folder where ep-lite is installed +cd `dirname $0` + +#Was this script started in the bin folder? if yes move out +if [ -d "../bin" ]; then + cd "../" +fi + +ignoreRoot=0 +for ARG in $* +do + if [ "$ARG" = "--root" ]; then + ignoreRoot=1 + fi +done + +#Stop the script if its started as root +if [ "$(id -u)" -eq 0 ] && [ $ignoreRoot -eq 0 ]; then + echo "You shouldn't start Etherpad as root!" + echo "Please type 'Etherpad rocks my socks' or supply the '--root' argument if you still want to start it as root" + read rocks + if [ ! $rocks = "Etherpad rocks my socks" ] + then + echo "Your input was incorrect" + exit 1 + fi +fi + +#Clean the current environment +rm -rf src/node_modules + +#Prepare the enviroment +bin/installDeps.sh $* || exit 1 + +#Move to the node folder and start +echo "Started Etherpad..." + +SCRIPTPATH=`pwd -P` +node $SCRIPTPATH/node_modules/ep_etherpad-lite/node/server.js $* diff --git a/bin/updatePlugins.sh b/bin/updatePlugins.sh index d696eca7..63c447ed 100755 --- a/bin/updatePlugins.sh +++ b/bin/updatePlugins.sh @@ -8,5 +8,13 @@ if [ -d "../bin" ]; then cd "../" fi -npm outdated --depth=0 | grep -v "^Package" | awk '{print $1}' | xargs npm install $1 --save-dev - +# npm outdated --depth=0 | grep -v "^Package" | awk '{print $1}' | xargs npm install $1 --save-dev +OUTDATED=`npm outdated --depth=0 | grep -v "^Package" | awk '{print $1}'` +# echo $OUTDATED +if test -n "$OUTDATED"; then + echo "Plugins require update, doing this now..." + echo "Updating $OUTDATED" + npm install $OUTDATED --save-dev +else + echo "Plugins are all up to date" +fi diff --git a/doc/api/hooks_client-side.md b/doc/api/hooks_client-side.md index f9ad9147..aa027337 100644 --- a/doc/api/hooks_client-side.md +++ b/doc/api/hooks_client-side.md @@ -198,7 +198,7 @@ Things in context: 1. cc - the contentcollector object 2. state - the current state of the change being made 3. tname - the tag name of this node currently being processed -4. style - the style applied to the node (probably CSS) +4. styl - the style applied to the node (probably CSS) -- Note the typo 5. cls - the HTML class string of the node This hook is called before the content of a node is collected by the usual methods. The cc object can be used to do a bunch of things that modify the content of the pad. See, for example, the heading1 plugin for etherpad original. diff --git a/doc/api/hooks_server-side.md b/doc/api/hooks_server-side.md index c7e7a43a..717abe75 100644 --- a/doc/api/hooks_server-side.md +++ b/doc/api/hooks_server-side.md @@ -254,7 +254,7 @@ var Changeset = require("ep_etherpad-lite/static/js/Changeset"); exports.getLineHTMLForExport = function (hook, context) { var header = _analyzeLine(context.attribLine, context.apool); if (header) { - return "<" + header + ">" + context.lineContents + ""; + return "<" + header + ">" + context.lineContent + ""; } } diff --git a/settings.json.template b/settings.json.template index 39c383ed..7d9c62cc 100644 --- a/settings.json.template +++ b/settings.json.template @@ -25,6 +25,7 @@ "ssl" : { "key" : "/path-to-your/epl-server.key", "cert" : "/path-to-your/epl-server.crt" + "ca": ["/path-to-your/epl-intermediate-cert1.crt", "/path-to-your/epl-intermediate-cert2.crt"] }, */ diff --git a/src/locales/ast.json b/src/locales/ast.json index 8eda58c8..47c1ccc3 100644 --- a/src/locales/ast.json +++ b/src/locales/ast.json @@ -9,14 +9,14 @@ "pad.toolbar.bold.title": "Negrina (Ctrl-B)", "pad.toolbar.italic.title": "Cursiva (Ctrl-I)", "pad.toolbar.underline.title": "Sorrayáu (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Tacháu", - "pad.toolbar.ol.title": "Llista ordenada", - "pad.toolbar.ul.title": "Llista ensin ordenar", + "pad.toolbar.strikethrough.title": "Tacháu (Ctrl+5)", + "pad.toolbar.ol.title": "Llista ordenada (Ctrl+Mayús+N)", + "pad.toolbar.ul.title": "Llista desordenada (Ctrl+Mayús+L)", "pad.toolbar.indent.title": "Sangría (TAB)", "pad.toolbar.unindent.title": "Sangría inversa (Mayúsc+TAB)", "pad.toolbar.undo.title": "Desfacer (Ctrl-Z)", "pad.toolbar.redo.title": "Refacer (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autoría", + "pad.toolbar.clearAuthorship.title": "Llimpiar los colores d'autoría (Ctrl+Mayús+C)", "pad.toolbar.import_export.title": "Importar/Esportar ente distintos formatos de ficheru", "pad.toolbar.timeslider.title": "Eslizador de tiempu", "pad.toolbar.savedRevision.title": "Guardar revisión", @@ -26,12 +26,14 @@ "pad.colorpicker.save": "Guardar", "pad.colorpicker.cancel": "Encaboxar", "pad.loading": "Cargando...", + "pad.noCookie": "Nun pudo alcontrase la cookie. ¡Por favor, permite les cookies nel navegador!", "pad.passwordRequired": "Necesites una contraseña pa entrar a esti bloc", "pad.permissionDenied": "Nun tienes permisu pa entrar a esti bloc", "pad.wrongPassword": "La contraseña era incorreuta", "pad.settings.padSettings": "Configuración del bloc", "pad.settings.myView": "la mio vista", "pad.settings.stickychat": "Alderique en pantalla siempres", + "pad.settings.chatandusers": "Amosar la charra y los usuarios", "pad.settings.colorcheck": "Colores d'autoría", "pad.settings.linenocheck": "Númberos de llinia", "pad.settings.rtlcheck": "¿Lleer el conteníu de drecha a izquierda?", @@ -44,6 +46,7 @@ "pad.importExport.import": "Xubir cualquier ficheru o documentu de testu", "pad.importExport.importSuccessful": "¡Correuto!", "pad.importExport.export": "Esportar el bloc actual como:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Testu simple", "pad.importExport.exportword": "Microsoft Word", @@ -104,6 +107,7 @@ "timeslider.month.december": "d'avientu", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anónimu, other: autores anónimos]}", "pad.savedrevs.marked": "Esta revisión marcose como revisión guardada", + "pad.savedrevs.timeslider": "Pues ver les revisiones guardaes visitando la llinia temporal", "pad.userlist.entername": "Escribi'l to nome", "pad.userlist.unnamed": "ensin nome", "pad.userlist.guest": "Invitáu", @@ -114,6 +118,7 @@ "pad.impexp.importing": "Importando...", "pad.impexp.confirmimport": "La importación d'un ficheru sustituirá'l testu actual del bloc. ¿Seguro que quies siguir?", "pad.impexp.convertFailed": "Nun pudimos importar esti ficheru. Por favor,usa otru formatu de ficheru diferente o copia y pega manualmente.", + "pad.impexp.padHasData": "Nun pudimos importar esti ficheru porque esti bloc yá tuvo cambios; impórtalu a un bloc nuevu", "pad.impexp.uploadFailed": "Falló la carga del ficheru, intentalo otra vuelta", "pad.impexp.importfailed": "Falló la importación", "pad.impexp.copypaste": "Por favor, copia y apega", diff --git a/src/locales/bn.json b/src/locales/bn.json index 10a804b4..e8bb7ac3 100644 --- a/src/locales/bn.json +++ b/src/locales/bn.json @@ -41,10 +41,10 @@ "pad.settings.fontType.monospaced": "Monospace", "pad.settings.globalView": "সর্বব্যাপী দৃশ্য", "pad.settings.language": "ভাষা:", - "pad.importExport.import_export": "ইম্পোরট/এক্সপোর্ট", + "pad.importExport.import_export": "আমদানি/রপ্তানি", "pad.importExport.import": "কোন টেক্সট ফাইল বা ডকুমেন্ট আপলোড করুন", "pad.importExport.importSuccessful": "সফল!", - "pad.importExport.export": "এই প্যাডটি এক্সপোর্ট করুন", + "pad.importExport.export": "এই প্যাডটি রপ্তানি করুন:", "pad.importExport.exporthtml": "এইচটিএমএল", "pad.importExport.exportplain": "সাধারণ লেখা", "pad.importExport.exportword": "মাইক্রোসফট ওয়ার্ড", @@ -70,7 +70,7 @@ "timeslider.toolbar.authors": "লেখকগণ:", "timeslider.toolbar.authorsList": "কোনো লেখক নেই", "timeslider.toolbar.exportlink.title": "রপ্তানি", - "timeslider.exportCurrent": "বর্তমান সংস্করণটি এক্সপোর্ট করুন:", + "timeslider.exportCurrent": "বর্তমান সংস্করণটি রপ্তানি করুন:", "timeslider.version": "সংস্করণ {{version}}", "timeslider.saved": "সংরক্ষিত হয় {{month}} {{day}}, {{year}}", "timeslider.dateformat": "{{month}}/{{day}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", diff --git a/src/locales/br.json b/src/locales/br.json index 6bbd56d2..310c97a6 100644 --- a/src/locales/br.json +++ b/src/locales/br.json @@ -36,6 +36,7 @@ "pad.settings.padSettings": "Arventennoù Pad", "pad.settings.myView": "Ma diskwel", "pad.settings.stickychat": "Diskwel ar flap bepred", + "pad.settings.chatandusers": "Diskouez ar gaoz hag an implijerien", "pad.settings.colorcheck": "Livioù anaout", "pad.settings.linenocheck": "Niverennoù linennoù", "pad.settings.rtlcheck": "Lenn an danvez a-zehou da gleiz ?", @@ -109,6 +110,7 @@ "timeslider.month.december": "Kerzu", "timeslider.unnamedauthors": "{{num}} dianav {[plural(num) one: aozer, other: aozerien ]}", "pad.savedrevs.marked": "Merket eo an adweladenn-mañ evel adweladenn gwiriet", + "pad.savedrevs.timeslider": "Gallout a reot gwelet an adweladurioù enrollet en ur weladenniñ ar bignerez amzerel", "pad.userlist.entername": "Ebarzhit hoc'h anv", "pad.userlist.unnamed": "dizanv", "pad.userlist.guest": "Den pedet", diff --git a/src/locales/ca.json b/src/locales/ca.json index b7edc65b..638b645f 100644 --- a/src/locales/ca.json +++ b/src/locales/ca.json @@ -5,7 +5,8 @@ "Pginer", "Pitort", "Toniher", - "Macofe" + "Macofe", + "Joan manel" ] }, "index.newPad": "Nou pad", @@ -37,6 +38,7 @@ "pad.settings.padSettings": "Paràmetres del pad", "pad.settings.myView": "La meva vista", "pad.settings.stickychat": "Xateja sempre a la pantalla", + "pad.settings.chatandusers": "Mostra el xat i els usuaris", "pad.settings.colorcheck": "Colors d'autoria", "pad.settings.linenocheck": "Números de línia", "pad.settings.rtlcheck": "Llegir el contingut de dreta a esquerra?", @@ -110,6 +112,7 @@ "timeslider.month.december": "Desembre", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autors ]} sense nom", "pad.savedrevs.marked": "Aquesta revisió està marcada ara com a revisió desada", + "pad.savedrevs.timeslider": "Les revisions que s'han desat les podeu veure amb la línia de temps", "pad.userlist.entername": "Introduïu el vostre nom", "pad.userlist.unnamed": "sense nom", "pad.userlist.guest": "Convidat", diff --git a/src/locales/de.json b/src/locales/de.json index 4888b8e8..2fd31c12 100644 --- a/src/locales/de.json +++ b/src/locales/de.json @@ -4,7 +4,8 @@ "Metalhead64", "Mklehr", "Nipsky", - "Wikinaut" + "Wikinaut", + "Thargon" ] }, "index.newPad": "Neues Pad", @@ -77,7 +78,7 @@ "pad.modals.corruptPad.cause": "Dies könnte an einer falschen Serverkonfiguration oder eines anderen unerwarteten Verhaltens liegen. Bitte kontaktiere den Diensteadministrator.", "pad.modals.deleted": "Gelöscht.", "pad.modals.deleted.explanation": "Dieses Pad wurde entfernt.", - "pad.modals.disconnected": "Verbindung unterbrochen.", + "pad.modals.disconnected": "Deine Verbindung wurde getrennt.", "pad.modals.disconnected.explanation": "Die Verbindung zum Pad-Server wurde unterbrochen.", "pad.modals.disconnected.cause": "Möglicherweise ist der Pad-Server nicht erreichbar. Bitte benachrichtigen Sie den Dienstadministrator, falls dies weiterhin passiert.", "pad.share": "Dieses Pad teilen", @@ -94,7 +95,7 @@ "timeslider.toolbar.exportlink.title": "Diese Version exportieren", "timeslider.exportCurrent": "Exportiere diese Version als:", "timeslider.version": "Version {{version}}", - "timeslider.saved": "Gespeichert am {{day}}.{{month}}.{{year}}", + "timeslider.saved": "gespeichert am {{day}}. {{month}} {{year}}", "timeslider.dateformat": "{{day}}.{{month}}.{{year}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "Januar", "timeslider.month.february": "Februar", diff --git a/src/locales/diq.json b/src/locales/diq.json index 81a55477..c69d6244 100644 --- a/src/locales/diq.json +++ b/src/locales/diq.json @@ -38,6 +38,7 @@ "pad.settings.language": "Zıwan:", "pad.importExport.import_export": "Zeredayış/Teberdayış", "pad.importExport.importSuccessful": "Mıwafaq biye", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Metno pan", "pad.importExport.exportword": "Microsoft Word", diff --git a/src/locales/eo.json b/src/locales/eo.json new file mode 100644 index 00000000..fd7b7c1f --- /dev/null +++ b/src/locales/eo.json @@ -0,0 +1,128 @@ +{ + "@metadata": { + "authors": [ + "Eliovir", + "Mschmitt", + "Objectivesea" + ] + }, + "index.newPad": "Nova Teksto", + "index.createOpenPad": "aŭ krei/malfermi novan tekston kun la nomo:", + "pad.toolbar.bold.title": "Grasa (Ctrl+B)", + "pad.toolbar.italic.title": "Kursiva (Ctrl+I)", + "pad.toolbar.underline.title": "Substrekita (Ctrl+U)", + "pad.toolbar.strikethrough.title": "Trastrekita (Ctrl+5)", + "pad.toolbar.ol.title": "Ordigita listo (Ctrl+Shift+N)", + "pad.toolbar.ul.title": "Neordigita Listo (Ctrl+Shift+L)", + "pad.toolbar.indent.title": "Enŝovi (TAB)", + "pad.toolbar.unindent.title": "Elŝovi (Shift+TAB)", + "pad.toolbar.undo.title": "Malfari (Ctrl+Z)", + "pad.toolbar.redo.title": "Refari (Ctrl+Y)", + "pad.toolbar.clearAuthorship.title": "Forigi kolorojn de aŭtoreco (Ctrl+Shift+C)", + "pad.toolbar.import_export.title": "Enporti/elporti de/al aliaj dosierformatoj", + "pad.toolbar.timeslider.title": "Tempoŝovilo", + "pad.toolbar.savedRevision.title": "Konservi version", + "pad.toolbar.settings.title": "Agordoj", + "pad.toolbar.embed.title": "Kunhavigi kaj enigi ĉi tiun tekston", + "pad.toolbar.showusers.title": "Montri la redaktantojn sur ĉi tiu teksto", + "pad.colorpicker.save": "Konservi", + "pad.colorpicker.cancel": "Nuligi", + "pad.loading": "Ŝargante...", + "pad.noCookie": "Kuketo ne estis trovigebla. Bonvolu permesi kuketojn en via retumilo!", + "pad.passwordRequired": "Vi bezonas pasvorton por aliri ĉi tiun tekston", + "pad.permissionDenied": "Vi ne havas permeson por aliri ĉi tiun tekston", + "pad.wrongPassword": "Via pasvorto estis malĝusta", + "pad.settings.padSettings": "Redaktilaj Agordoj", + "pad.settings.myView": "Mia vido", + "pad.settings.stickychat": "Babilejo ĉiam videbla", + "pad.settings.chatandusers": "Montri babilejon kaj uzantojn", + "pad.settings.colorcheck": "Koloroj de aŭtoreco", + "pad.settings.linenocheck": "Liniaj nombroj", + "pad.settings.rtlcheck": "Legi dekstre-maldekstren?", + "pad.settings.fontType": "Tiparo:", + "pad.settings.fontType.normal": "Normala", + "pad.settings.fontType.monospaced": "Egallarĝa", + "pad.settings.globalView": "Ĉiea Vido", + "pad.settings.language": "Lingvo:", + "pad.importExport.import_export": "Enporti/Elporti", + "pad.importExport.import": "Alŝuti ajnan dosieron aŭ dokumenton", + "pad.importExport.importSuccessful": "Sukceso!", + "pad.importExport.export": "Elporti la nunan tekston kiel:", + "pad.importExport.exportetherpad": "Etherpad", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Plata teksto", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Formato “OpenDocument”)", + "pad.importExport.abiword.innerHTML": "Nur kapablas enporti de plata teksto aŭ HTML. Por pli speciala importkapablo, bonvolu instalu la programon, Abiword.", + "pad.modals.connected": "Konektita.", + "pad.modals.reconnecting": "Rekonektanta al via redaktilo..", + "pad.modals.forcereconnect": "Perforte rekonekti", + "pad.modals.userdup": "Malfermita en alia fenestro", + "pad.modals.userdup.explanation": "Ĉi tiu teksto ŝajne estas malferma en pli ol unu retumilo sur ĉi tiu komputilo.", + "pad.modals.userdup.advice": "Rekonekti por anstataŭe uzi ĉi tiun fenestron.", + "pad.modals.unauth": "Ne permesita", + "pad.modals.unauth.explanation": "Viaj permesoj ŝanĝis dum kiam vi rigardis ĉi tiun paĝon. Provu rekonekti.", + "pad.modals.looping.explanation": "Okazas problemoj dum komunikado kun la sinkronigservilo.", + "pad.modals.looping.cause": "Eble vi konektis per malkongrua fajroŝirmilo aŭ retperanto.", + "pad.modals.initsocketfail": "Servilo ne estas atingebla.", + "pad.modals.initsocketfail.explanation": "Ne kapablis konekti al la sinkronigservilo.", + "pad.modals.initsocketfail.cause": "Tio verŝajne okazas pro problemo kun via retumilo aŭ via retkonekto.", + "pad.modals.slowcommit.explanation": "La servilo ne respondas.", + "pad.modals.slowcommit.cause": "Tio eble estas pro problemoj kun retkonekto.", + "pad.modals.badChangeset.explanation": "La sinkronigservilo decidis ke redakto de vi estas malpermesita.", + "pad.modals.badChangeset.cause": "Tio eble okazis pro malĝustaj agordoj aŭ alia neatendita teniĝo sur la servilo. Se vi pensas ke estas eraro, bonvolu kontakti la servoadminstranton. Provu rekonekti por denove redakti.", + "pad.modals.corruptPad.explanation": "La teksto kiun vi provas atingi estas difekta.", + "pad.modals.corruptPad.cause": "Tio eble okazis pro malĝustaj agordoj aŭ alia neatendita teniĝo sur la servilo. Bonvolu kontakti la servoadminstranton.", + "pad.modals.deleted": "Forigita.", + "pad.modals.deleted.explanation": "Ĉi tiu teksto estis forigita.", + "pad.modals.disconnected": "Vi estas malkonektita.", + "pad.modals.disconnected.explanation": "La konekto al la servilo perdiĝis", + "pad.modals.disconnected.cause": "Eble la servilo ne estas disponebla. Bonvolu kontakti la servoadministranton se tio daŭre okazas.", + "pad.share": "Kunhavigi ĉi tiun tekston", + "pad.share.readonly": "Nur legebla", + "pad.share.link": "Ligilo", + "pad.share.emebdcode": "Enfiksi URL-on", + "pad.chat": "Babilejo", + "pad.chat.title": "Malfermi la babilejon por ĉi tiu teksto.", + "pad.chat.loadmessages": "Ŝargi pliajn mesaĝojn", + "timeslider.pageTitle": "{{appTitle}} Tempoŝovilo", + "timeslider.toolbar.returnbutton": "Reiri al teksto", + "timeslider.toolbar.authors": "Aŭtoroj:", + "timeslider.toolbar.authorsList": "Neniu aŭtoro", + "timeslider.toolbar.exportlink.title": "Elporti", + "timeslider.exportCurrent": "Elporti la nunan version kiel:", + "timeslider.version": "Versio {{version}}", + "timeslider.saved": "Konservita la {{day}}an de {{month}}, {{year}}", + "timeslider.dateformat": "{{day}}-{{month}}-{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "januaro", + "timeslider.month.february": "februaro", + "timeslider.month.march": "marto", + "timeslider.month.april": "aprilo", + "timeslider.month.may": "majo", + "timeslider.month.june": "junio", + "timeslider.month.july": "julio", + "timeslider.month.august": "aŭgusto", + "timeslider.month.september": "septembro", + "timeslider.month.october": "oktobro", + "timeslider.month.november": "novembro", + "timeslider.month.december": "decembro", + "timeslider.unnamedauthors": "{{num}} {[plural(num) one: sennoma aŭtoro, other: sennomaj aŭtoroj ]}", + "pad.savedrevs.marked": "Ĉi tiu versio nun estas markita kiel konservita versio", + "pad.savedrevs.timeslider": "Vi povas rigardi konservitajn versiojn per la tempoŝovilo", + "pad.userlist.entername": "Entajpu vian nomon", + "pad.userlist.unnamed": "sennoma", + "pad.userlist.guest": "Gasto", + "pad.userlist.deny": "Malaprobi", + "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.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.", + "pad.impexp.uploadFailed": "La alŝuto malsukcesis, bonvolu provi denove.", + "pad.impexp.importfailed": "Enporti malsukcesis.", + "pad.impexp.copypaste": "Bonvolu kopii kaj alglui", + "pad.impexp.exportdisabled": "Elporti en {{type}} formato estas malŝalta. Bonvolu kontakti la sistremadministranton pro pliaj informoj." +} diff --git a/src/locales/fa.json b/src/locales/fa.json index 53fb55b2..cd42c871 100644 --- a/src/locales/fa.json +++ b/src/locales/fa.json @@ -6,7 +6,8 @@ "Ebraminio", "Reza1615", "ZxxZxxZ", - "الناز" + "الناز", + "Omid.koli" ] }, "index.newPad": "دفترچه یادداشت تازه", @@ -38,6 +39,7 @@ "pad.settings.padSettings": "تنظیمات دفترچه یادداشت", "pad.settings.myView": "نمای من", "pad.settings.stickychat": "گفتگو همیشه روی صفحه نمایش باشد", + "pad.settings.chatandusers": "نمایش چت و کاربران", "pad.settings.colorcheck": "رنگ‌های نویسندگی", "pad.settings.linenocheck": "شماره‌ی خطوط", "pad.settings.rtlcheck": "خواندن محتوا از راست به چپ؟", @@ -98,19 +100,20 @@ "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.february": "فوریه", + "timeslider.month.march": "مارس", + "timeslider.month.april": "آوریل", + "timeslider.month.may": "مه", "timeslider.month.june": "ژوئن", - "timeslider.month.july": "جولای", - "timeslider.month.august": "آگوست", + "timeslider.month.july": "ژوئیه", + "timeslider.month.august": "اوت", "timeslider.month.september": "سپتامبر", "timeslider.month.october": "اکتبر", "timeslider.month.november": "نوامبر", "timeslider.month.december": "دسامبر", "timeslider.unnamedauthors": "{{num}} نویسندهٔ بی‌نام", "pad.savedrevs.marked": "این بازنویسی هم اکنون به عنوان ذخیره شده علامت‌گذاری شد", + "pad.savedrevs.timeslider": "شما می‌توانید نسخه‌های ذخیره شده را با دیدن نوار زمان ببنید", "pad.userlist.entername": "نام خود را بنویسید", "pad.userlist.unnamed": "بدون نام", "pad.userlist.guest": "مهمان", diff --git a/src/locales/fi.json b/src/locales/fi.json index 25e4d084..67efac93 100644 --- a/src/locales/fi.json +++ b/src/locales/fi.json @@ -11,7 +11,8 @@ "Veikk0.ma", "VezonThunder", "Macofe", - "MrTapsa" + "MrTapsa", + "Silvonen" ] }, "index.newPad": "Uusi muistio", @@ -55,6 +56,7 @@ "pad.importExport.import": "Lähetä mikä tahansa tekstitiedosto tai asiakirja", "pad.importExport.importSuccessful": "Onnistui!", "pad.importExport.export": "Vie muistio muodossa:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Muotoilematon teksti", "pad.importExport.exportword": "Microsoft Word", diff --git a/src/locales/hsb.json b/src/locales/hsb.json index ddf3cc4a..d4d3ef76 100644 --- a/src/locales/hsb.json +++ b/src/locales/hsb.json @@ -9,14 +9,14 @@ "pad.toolbar.bold.title": "Tučny (Strg-B)", "pad.toolbar.italic.title": "Kursiwny (Strg-I)", "pad.toolbar.underline.title": "Podšmórnyć (Strg-U)", - "pad.toolbar.strikethrough.title": "Přešmórnyć", - "pad.toolbar.ol.title": "Čisłowana lisćina", - "pad.toolbar.ul.title": "Naličenje", + "pad.toolbar.strikethrough.title": "Přešmórnyć (Strg+5)", + "pad.toolbar.ol.title": "Čisłowana lisćina (Strg+Umsch+N)", + "pad.toolbar.ul.title": "Naličenje (Strg+Umsch+L)", "pad.toolbar.indent.title": "Zasunyć (TAB)", "pad.toolbar.unindent.title": "Wusunyć (Umsch+TAB)", "pad.toolbar.undo.title": "Cofnyć (Strg-Z)", "pad.toolbar.redo.title": "Wospjetować (Strg-Y)", - "pad.toolbar.clearAuthorship.title": "Awtorowe barby wotstronić", + "pad.toolbar.clearAuthorship.title": "Awtorowe barby wotstronić (Strg+Umsch+C)", "pad.toolbar.import_export.title": "Import/Eksport z/do druhich datajowych formatow", "pad.toolbar.timeslider.title": "Historijowa strona", "pad.toolbar.savedRevision.title": "Wersiju składować", @@ -26,12 +26,14 @@ "pad.colorpicker.save": "Składować", "pad.colorpicker.cancel": "Přetorhnyć", "pad.loading": "Začituje so...", + "pad.noCookie": "Plack njeje so namakał. Prošu dopušćće placki w swojim wobhladowaku!", "pad.passwordRequired": "Trjebaš hesło, zo by na tutón zapisnik přistup měł", "pad.permissionDenied": "Nimaće prawo za přistup na tutón zapisnik.", "pad.wrongPassword": "Twoje hesło bě wopak", "pad.settings.padSettings": "Nastajenja zapisnika", "pad.settings.myView": "Mój napohlad", "pad.settings.stickychat": "Chat přeco na wobrazowce pokazać", + "pad.settings.chatandusers": "Chat a wužiwarjow pokazać", "pad.settings.colorcheck": "Awtorowe barby", "pad.settings.linenocheck": "Linkowe čisła", "pad.settings.rtlcheck": "Wobsah wotprawa nalěwo čitać?", @@ -44,6 +46,7 @@ "pad.importExport.import": "Tekstowu dataju abo dokument nahrać", "pad.importExport.importSuccessful": "Wuspěšny!", "pad.importExport.export": "Aktualny zapisnik eksportować jako:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Luty tekst", "pad.importExport.exportword": "Microsoft Word", @@ -104,6 +107,7 @@ "timeslider.month.december": "decembra", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: awtor, two: awtoraj, few: awtorojo, other: awtorow ]} bjez mjena", "pad.savedrevs.marked": "Tuta wersija je so nětko jako składowana wersija woznamjeniła", + "pad.savedrevs.timeslider": "Móžeš sej składowane wersije wobhladować, wopytujo historiju dokumenta.", "pad.userlist.entername": "Zapodaj swoje mjeno", "pad.userlist.unnamed": "bjez mjena", "pad.userlist.guest": "Hósć", @@ -114,6 +118,7 @@ "pad.impexp.importing": "Importuje so...", "pad.impexp.confirmimport": "Importowanje dataje přepisa aktualny tekst zapisnika. Chceš woprawdźe pokročować?", "pad.impexp.convertFailed": "Njemóžachmy tutu dataju importować. Prošu wužij druhi dokumentowy format abo kopěruj manuelnje", + "pad.impexp.padHasData": "Njemóžachmy tutu dataju importować, dokelž tutón dokument hižo změny wobsahuje, prošu importuj nowy dokument.", "pad.impexp.uploadFailed": "Nahraće njeje so poradźiło, prošu spytaj hišće raz", "pad.impexp.importfailed": "Import njeje so poradźiło", "pad.impexp.copypaste": "Prošu kopěrować a zasadźić", diff --git a/src/locales/hu.json b/src/locales/hu.json index 287e7954..c4d06c27 100644 --- a/src/locales/hu.json +++ b/src/locales/hu.json @@ -37,6 +37,7 @@ "pad.settings.padSettings": "Notesz beállításai", "pad.settings.myView": "Az én nézetem", "pad.settings.stickychat": "Mindig mutasd a csevegés-dobozt", + "pad.settings.chatandusers": "Csevegés és felhasználók mutatása", "pad.settings.colorcheck": "Szerzők színei", "pad.settings.linenocheck": "Sorok számozása", "pad.settings.rtlcheck": "Tartalom olvasása balról jobbra?", diff --git a/src/locales/is.json b/src/locales/is.json new file mode 100644 index 00000000..dc3f3b33 --- /dev/null +++ b/src/locales/is.json @@ -0,0 +1,126 @@ +{ + "@metadata": { + "authors": [ + "Sveinn í Felli" + ] + }, + "index.newPad": "Ný skrifblokk", + "index.createOpenPad": "eða búa til/opna skrifblokk með heitinu:", + "pad.toolbar.bold.title": "Feitletrað (Ctrl+B)", + "pad.toolbar.italic.title": "Skáletrað (Ctrl+I)", + "pad.toolbar.underline.title": "Undirstrikað (Ctrl+U)", + "pad.toolbar.strikethrough.title": "Yfirstrikun (Ctrl+5)", + "pad.toolbar.ol.title": "Raðaður listi (Ctrl+Shift+N)", + "pad.toolbar.ul.title": "Óraðaður listi (Ctrl+Shift+L)", + "pad.toolbar.indent.title": "Inndráttur (TAB)", + "pad.toolbar.unindent.title": "Draga til baka (Shift+TAB)", + "pad.toolbar.undo.title": "Afturkalla (Ctrl+Z)", + "pad.toolbar.redo.title": "Endurtaka (Ctrl+Y)", + "pad.toolbar.clearAuthorship.title": "Hreinsa liti höfunda (Ctrl+Shift+C)", + "pad.toolbar.import_export.title": "Flytja inn/út frá/í önnur skráasnið", + "pad.toolbar.timeslider.title": "Tímalína", + "pad.toolbar.savedRevision.title": "Vista endurskoðaða útgáfu", + "pad.toolbar.settings.title": "Stillingar", + "pad.toolbar.embed.title": "Deila og ívefja þessari skrifblokk", + "pad.toolbar.showusers.title": "Sýna notendur þessarar skrifblokkar", + "pad.colorpicker.save": "Vista", + "pad.colorpicker.cancel": "Hætta við", + "pad.loading": "Hleð inn...", + "pad.noCookie": "Smákaka fannst ekki. Þú verður að leyfa smákökur í vafranum þínum!", + "pad.passwordRequired": "Þú þarft að gefa upp lykilorð til að komast á þessa skrifblokk", + "pad.permissionDenied": "Þú hefur ekki réttindi til að nota þessa skrifblokk", + "pad.wrongPassword": "Lykilorðinu þínu var hafnað", + "pad.settings.padSettings": "Stillingar skrifblokkar", + "pad.settings.myView": "Mitt yfirlit", + "pad.settings.stickychat": "Spjall alltaf á skjánum", + "pad.settings.chatandusers": "Sýna spjall og notendur", + "pad.settings.colorcheck": "Litir höfunda", + "pad.settings.linenocheck": "Línunúmer", + "pad.settings.rtlcheck": "Lesa innihaldið frá hægri til vinstri?", + "pad.settings.fontType": "Leturgerð:", + "pad.settings.fontType.normal": "Venjulegt", + "pad.settings.fontType.monospaced": "Jafnbreitt", + "pad.settings.globalView": "Yfirlitssýn", + "pad.settings.language": "Tungumál:", + "pad.importExport.import_export": "Flytja inn/út", + "pad.importExport.import": "Settu inn hverskyns texta eða skjal", + "pad.importExport.importSuccessful": "Heppnaðist!", + "pad.importExport.export": "Flytja út núverandi skrifblokk sem:", + "pad.importExport.exportetherpad": "Etherpad netskrifblokk", + "pad.importExport.exporthtml": "HTML", + "pad.importExport.exportplain": "Hreinn texti", + "pad.importExport.exportword": "Microsoft Word", + "pad.importExport.exportpdf": "PDF", + "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.importExport.abiword.innerHTML": "Þú getur aðeins flutt inn úr hreinum texta eða HTML sniðum. Til að geta nýtt \nfleiri þróaðri innflutningssnið settu þá upp abiword forritið.", + "pad.modals.connected": "Tengt.", + "pad.modals.reconnecting": "Endurtengist skrifblokkinni þinni...", + "pad.modals.forcereconnect": "Þvinga endurtengingu", + "pad.modals.userdup": "Opnað í öðrum glugga", + "pad.modals.userdup.explanation": "Þessi skrifblokk virðist vera opin í fleiri en einum vafraglugga á þessari tölvu.", + "pad.modals.userdup.advice": "Endurtengdu til að nota þennan glugga í staðinn.", + "pad.modals.unauth": "Ekki leyfilegt", + "pad.modals.unauth.explanation": "Heimildir þínar hafa breyst á meðan þú skoðaðir þessa síðu. Reyndu að endurtengjast.", + "pad.modals.looping.explanation": "Það eru samskiptavandamál við samstillingarmiðlarann.", + "pad.modals.looping.cause": "Hugsanlega ertu tengdur í gegnum ósamhæfðan eldvegg eða milliþjón.", + "pad.modals.initsocketfail": "Næ ekki sambandi við netþjón.", + "pad.modals.initsocketfail.explanation": "Gat ekki tengst samstillingarmiðlaranum.", + "pad.modals.initsocketfail.cause": "Þetta er líklega vegna vandamáls varðandi vafrann þinn eða internettenginguna þína.", + "pad.modals.slowcommit.explanation": "Þjónninn svarar ekki.", + "pad.modals.slowcommit.cause": "Þetta gæti verið vegna vandamála varðandi nettengingar.", + "pad.modals.badChangeset.explanation": "Breyting sem þú gerðir var flokkuð sem óleyfileg af samstillingarmiðlaranum.", + "pad.modals.badChangeset.cause": "Þetta gæti verið vegna rangrar uppsetningar á þjóninum eða annarar óvæntrar hegðunar. Hafðu samband við stjórnanda þjónustunnar ef þér sýnist þetta vera villa. Reyndu að endurtengjast til að halda áfram með breytingar.", + "pad.modals.corruptPad.explanation": "Skrifblokkin sem þú ert að reyna að tengjast er skemmd.", + "pad.modals.corruptPad.cause": "Þetta gæti verið vegna rangrar uppsetningar á þjóninum eða annarar óvæntrar hegðunar. Hafðu samband við stjórnanda þjónustunnar.", + "pad.modals.deleted": "Eytt.", + "pad.modals.deleted.explanation": "Þessi skrifblokk hefur verið fjarlægð.", + "pad.modals.disconnected": "Þú hefur verið aftengd(ur).", + "pad.modals.disconnected.explanation": "Missti tengingu við miðlara", + "pad.modals.disconnected.cause": "Miðlarinn gæti verið ekki tiltækur. Láttu kerfisstjóra vita ef þetta heldur áfram að gerast.", + "pad.share": "Deila þessari skrifblokk", + "pad.share.readonly": "Skrifvarið", + "pad.share.link": "Tengill", + "pad.share.emebdcode": "Ívefja slóð", + "pad.chat": "Spjall", + "pad.chat.title": "Opna spjallið fyrir þessa skrifblokk.", + "pad.chat.loadmessages": "Hlaða inn fleiri skeytum", + "timeslider.pageTitle": "Tímalína {{appTitle}}", + "timeslider.toolbar.returnbutton": "Fara til baka í skrifblokk", + "timeslider.toolbar.authors": "Höfundar:", + "timeslider.toolbar.authorsList": "Engir höfundar", + "timeslider.toolbar.exportlink.title": "Flytja út", + "timeslider.exportCurrent": "Flytja út núverandi útgáfu sem:", + "timeslider.version": "Útgáfa {{version}}", + "timeslider.saved": "Vistað {{day}}. {{month}}, {{year}}", + "timeslider.dateformat": "{{day}}/{{month}}/{{year}} {{hours}}:{{minutes}}:{{seconds}}", + "timeslider.month.january": "Janúar", + "timeslider.month.february": "febrúar", + "timeslider.month.march": "mars", + "timeslider.month.april": "apríl", + "timeslider.month.may": "maí", + "timeslider.month.june": "júní", + "timeslider.month.july": "Júlí", + "timeslider.month.august": "ágúst", + "timeslider.month.september": "september", + "timeslider.month.october": "október", + "timeslider.month.november": "nóvember", + "timeslider.month.december": "desember", + "timeslider.unnamedauthors": "{{num}} ónefnt {[plural(num) one: höfundur, other: höfundar ]}", + "pad.savedrevs.marked": "Þessi útgáfa er núna merkt sem vistuð útgáfa", + "pad.savedrevs.timeslider": "Þú getur skoðað vistaðar útgáfur með því að fara á tímalínuna", + "pad.userlist.entername": "Settu inn nafnið þitt", + "pad.userlist.unnamed": "ónefnt", + "pad.userlist.guest": "Gestur", + "pad.userlist.deny": "Hafna", + "pad.userlist.approve": "Samþykkja", + "pad.editbar.clearcolors": "Hreinsa liti höfunda á öllu skjalinu?", + "pad.impexp.importbutton": "Flytja inn núna", + "pad.impexp.importing": "Flyt inn...", + "pad.impexp.confirmimport": "Innflutningur á skrá mun skrifa yfir þann texta sem er á skrifblokkinni núna. \nErtu viss um að þú viljir halda áfram?", + "pad.impexp.convertFailed": "Við getum ekki flutt inn þessa skrá. Notaðu annað skráasnið eða afritaðu og \nlímdu handvirkt", + "pad.impexp.padHasData": "Við getum ekki flutt inn þessa skrá því þegar er búið að breyta þessari skrifblokk, flyttu inn í nýja skrifblokk", + "pad.impexp.uploadFailed": "Sending mistókst, endilega reyndu aftur", + "pad.impexp.importfailed": "Innflutningur mistókst", + "pad.impexp.copypaste": "Afritaðu og límdu", + "pad.impexp.exportdisabled": "Útflutningur á {{type}} sniði er óvirkur. Hafðu samband við kerfisstjóra til að fá frekari aðstoð." +} diff --git a/src/locales/it.json b/src/locales/it.json index a6c30d96..082535fc 100644 --- a/src/locales/it.json +++ b/src/locales/it.json @@ -31,6 +31,7 @@ "pad.colorpicker.save": "Salva", "pad.colorpicker.cancel": "Annulla", "pad.loading": "Caricamento in corso…", + "pad.noCookie": "Il cookie non è stato trovato. Consenti i cookie nel tuo browser!", "pad.passwordRequired": "Per accedere a questo Pad è necessaria una password", "pad.permissionDenied": "Non si dispone dei permessi necessari per accedere a questo Pad", "pad.wrongPassword": "La password è sbagliata", @@ -111,6 +112,7 @@ "timeslider.month.december": "dicembre", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autore, other: autori ]} senza nome", "pad.savedrevs.marked": "Questa revisione è ora contrassegnata come una versione salvata", + "pad.savedrevs.timeslider": "Puoi vedere le versioni salvate visitando la cronologia", "pad.userlist.entername": "Inserisci il tuo nome", "pad.userlist.unnamed": "senza nome", "pad.userlist.guest": "Ospite", @@ -121,6 +123,7 @@ "pad.impexp.importing": "Importazione in corso...", "pad.impexp.confirmimport": "L'importazione del file sovrascriverà il testo attuale del Pad. Sei sicuro di voler procedere?", "pad.impexp.convertFailed": "Non è stato possibile importare questo file. Utilizzare un formato differente o copiare ed incollare a mano", + "pad.impexp.padHasData": "Non è possibile importare questo file poiché questo Pad ha già avuto modifiche; importalo in un nuovo Pad", "pad.impexp.uploadFailed": "Caricamento non riuscito, riprovare", "pad.impexp.importfailed": "Importazione fallita", "pad.impexp.copypaste": "Si prega di copiare e incollare", diff --git a/src/locales/ja.json b/src/locales/ja.json index 62e6dc62..b6cc4e34 100644 --- a/src/locales/ja.json +++ b/src/locales/ja.json @@ -1,7 +1,8 @@ { "@metadata": { "authors": [ - "Shirayuki" + "Shirayuki", + "Torinky" ] }, "index.newPad": "新規作成", @@ -16,7 +17,7 @@ "pad.toolbar.unindent.title": "インデント解除 (Shift+Tab)", "pad.toolbar.undo.title": "元に戻す (Ctrl+Z)", "pad.toolbar.redo.title": "やり直し (Ctrl+Y)", - "pad.toolbar.clearAuthorship.title": "作者の色分けを消去", + "pad.toolbar.clearAuthorship.title": "作者の色分けを消去(Ctrl+Shift+C)", "pad.toolbar.import_export.title": "他の形式のファイルのインポート/エクスポート", "pad.toolbar.timeslider.title": "タイムスライダー", "pad.toolbar.savedRevision.title": "版を保存", @@ -26,12 +27,14 @@ "pad.colorpicker.save": "保存", "pad.colorpicker.cancel": "キャンセル", "pad.loading": "読み込み中...", + "pad.noCookie": "クッキーが見つかりません。ブラウザの設定でクッキーの使用を許可してください。", "pad.passwordRequired": "このパッドにアクセスするにはパスワードが必要です", "pad.permissionDenied": "あなたにはこのパッドへのアクセス許可がありません", "pad.wrongPassword": "パスワードが間違っています", "pad.settings.padSettings": "パッドの設定", "pad.settings.myView": "個人設定", "pad.settings.stickychat": "画面にチャットを常に表示", + "pad.settings.chatandusers": "チャットとユーザーを表示", "pad.settings.colorcheck": "作者の色分け", "pad.settings.linenocheck": "行番号", "pad.settings.rtlcheck": "右横書きにする", @@ -44,6 +47,7 @@ "pad.importExport.import": "あらゆるテキストファイルや文書をアップロードできます", "pad.importExport.importSuccessful": "完了しました。", "pad.importExport.export": "現在のパッドをエクスポートする形式:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "プレーンテキスト", "pad.importExport.exportword": "Microsoft Word", @@ -104,6 +108,7 @@ "timeslider.month.december": "12月", "timeslider.unnamedauthors": "{{num}} 人の匿名の{[plural(num) other: 作者 ]}", "pad.savedrevs.marked": "この版を、保存済みの版としてマークしました。", + "pad.savedrevs.timeslider": "タイムスライダーで保存された版を確認できます", "pad.userlist.entername": "名前を入力", "pad.userlist.unnamed": "名前なし", "pad.userlist.guest": "ゲスト", @@ -114,6 +119,7 @@ "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/ko.json b/src/locales/ko.json index e18c5bbd..4a71d8ee 100644 --- a/src/locales/ko.json +++ b/src/locales/ko.json @@ -28,12 +28,14 @@ "pad.colorpicker.save": "저장", "pad.colorpicker.cancel": "취소", "pad.loading": "불러오는 중...", + "pad.noCookie": "쿠키를 찾을 수 없습니다. 브라우저에서 쿠키를 허용해주세요!", "pad.passwordRequired": "이 패드에 접근하려면 비밀번호가 필요합니다", "pad.permissionDenied": "이 패드에 접근할 권한이 없습니다", "pad.wrongPassword": "비밀번호가 잘못되었습니다", "pad.settings.padSettings": "패드 설정", "pad.settings.myView": "내 보기", "pad.settings.stickychat": "화면에 항상 대화 보기", + "pad.settings.chatandusers": "채트와 사용자 보이기", "pad.settings.colorcheck": "저자 색", "pad.settings.linenocheck": "줄 번호", "pad.settings.rtlcheck": "우횡서(오른쪽에서 왼쪽으로)입니까?", diff --git a/src/locales/ksh.json b/src/locales/ksh.json index f851bbf1..5d5230d3 100644 --- a/src/locales/ksh.json +++ b/src/locales/ksh.json @@ -25,7 +25,7 @@ "pad.toolbar.showusers.title": "Verbonge Metschriiver aanzeije", "pad.colorpicker.save": "Faßhallde", "pad.colorpicker.cancel": "Ophüüre", - "pad.loading": "Ben aam Laade …", + "pad.loading": "Ben aam Lahde …", "pad.noCookie": "Dat Pläzje wood nit jevonge. Don dat en Dingem Brauser zohlohße!", "pad.passwordRequired": "Do bruchs e Paßwoot för heh dat Pädd.", "pad.permissionDenied": "Do häs nit dat Rääsch, op heh dat Pädd zohzejriife.", diff --git a/src/locales/lb.json b/src/locales/lb.json index 68bdb418..99bfe0b5 100644 --- a/src/locales/lb.json +++ b/src/locales/lb.json @@ -2,28 +2,38 @@ "@metadata": { "authors": [ "Robby", - "Soued031" + "Soued031", + "Gromper" ] }, "index.newPad": "Neie Pad", + "index.createOpenPad": "oder maacht ee Pad mat dësem Numm op:", + "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.undo.title": "Réckgängeg (Ctrl-Z)", "pad.toolbar.redo.title": "Widderhuelen (Ctrl-Y)", "pad.toolbar.savedRevision.title": "Versioun späicheren", "pad.toolbar.settings.title": "Astellungen", + "pad.toolbar.showusers.title": "Aktuell Benotzer vun dësem Pad uweisen", "pad.colorpicker.save": "Späicheren", "pad.colorpicker.cancel": "Ofbriechen", "pad.loading": "Lueden...", "pad.noCookie": "Cookie gouf net fonnt. Erlaabt w.e.g. Cookien an Ärem Browser!", + "pad.passwordRequired": "Dir braucht ee Passwuert fir dëse Pad opzemaachen", + "pad.permissionDenied": "Dir hutt net déi néideg Rechter fir dëse Pad opzemaachen", "pad.wrongPassword": "Äert Passwuert ass falsch", + "pad.settings.myView": "Méng Usiicht", "pad.settings.fontType.normal": "Normal", "pad.settings.language": "Sprooch:", + "pad.importExport.import_export": "Import/Export", "pad.importExport.importSuccessful": "Erfollegräich", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportword": "Microsoft Word", "pad.importExport.exportpdf": "PDF", "pad.importExport.exportopen": "ODF (Open Document Format)", + "pad.modals.connected": "Verbonnen.", "pad.modals.unauth": "Net autoriséiert", "pad.modals.slowcommit.explanation": "De Server äntwert net.", "pad.modals.deleted": "Geläscht.", diff --git a/src/locales/nl.json b/src/locales/nl.json index 183d0fa9..0aa63d8e 100644 --- a/src/locales/nl.json +++ b/src/locales/nl.json @@ -94,6 +94,9 @@ "timeslider.exportCurrent": "Huidige versie exporteren als:", "timeslider.version": "Versie {{version}}", "timeslider.saved": "Opgeslagen op {{day}} {{month}} {{year}}", + "timeslider.playPause": "Padinhoud afspelen of pauzeren", + "timeslider.backRevision": "Een versie teruggaan voor deze pad", + "timeslider.forwardRevision": "Een versie vooruit gaan voor deze pad", "timeslider.dateformat": "{{year}}-{{month}}-{{day}} {{hours}}:{{minutes}}:{{seconds}}", "timeslider.month.january": "januari", "timeslider.month.february": "februari", diff --git a/src/locales/oc.json b/src/locales/oc.json index e62d387a..62625ed7 100644 --- a/src/locales/oc.json +++ b/src/locales/oc.json @@ -33,6 +33,7 @@ "pad.settings.padSettings": "Paramètres del Pad", "pad.settings.myView": "Ma vista", "pad.settings.stickychat": "Afichar totjorn lo chat", + "pad.settings.chatandusers": "Afichar la discussion e los utilizaires", "pad.settings.colorcheck": "Colors d’identificacion", "pad.settings.linenocheck": "Numèros de linhas", "pad.settings.rtlcheck": "Lectura de drecha a esquèrra", @@ -106,6 +107,7 @@ "timeslider.month.december": "Decembre", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anonim, other: autors anonims ]}", "pad.savedrevs.marked": "Aquesta revision es ara marcada coma revision enregistrada", + "pad.savedrevs.timeslider": "Podètz veire las revisions enregistradas en visitant l’ascensor temporal", "pad.userlist.entername": "Entratz vòstre nom", "pad.userlist.unnamed": "sens nom", "pad.userlist.guest": "Convidat", diff --git a/src/locales/ps.json b/src/locales/ps.json index 1a57e76a..2c23d1c3 100644 --- a/src/locales/ps.json +++ b/src/locales/ps.json @@ -10,7 +10,7 @@ "pad.toolbar.italic.title": "رېوند (Ctrl-I)", "pad.toolbar.undo.title": "ناکړل (Ctrl-Z)", "pad.toolbar.redo.title": "بياکړل (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "د ليکوالۍ رنګونه سپينول", + "pad.toolbar.clearAuthorship.title": "د ليکوالۍ رنگونه سپينول (Ctrl+Shift+C)", "pad.toolbar.savedRevision.title": "مخکتنه خوندي کول", "pad.toolbar.settings.title": "امستنې", "pad.colorpicker.save": "خوندي کول", @@ -20,7 +20,7 @@ "pad.wrongPassword": "پټنوم مو سم نه و", "pad.settings.padSettings": "د ليکچې امستنې", "pad.settings.myView": "زما کتنه", - "pad.settings.colorcheck": "د ليکوالۍ رنګونه", + "pad.settings.colorcheck": "د ليکوالۍ رنگونه", "pad.settings.fontType": "ليکبڼې ډول:", "pad.settings.fontType.normal": "نورمال", "pad.settings.fontType.monospaced": "مونوسپېس", diff --git a/src/locales/pt-br.json b/src/locales/pt-br.json index 1fd145bc..59d679c8 100644 --- a/src/locales/pt-br.json +++ b/src/locales/pt-br.json @@ -12,14 +12,15 @@ "Macofe", "Rodrigo codignoli", "Webysther", - "Fasouzafreitas" + "Fasouzafreitas", + "Lpagliari" ] }, "index.newPad": "Nova Nota", "index.createOpenPad": "ou criar-abrir uma Nota com o nome:", "pad.toolbar.bold.title": "Negrito (Ctrl-B)", "pad.toolbar.italic.title": "Itálico (Ctrl-I)", - "pad.toolbar.underline.title": "Sublinhar (Ctrl-U)", + "pad.toolbar.underline.title": "Sublinhado (Ctrl-U)", "pad.toolbar.strikethrough.title": "Tachado (Ctrl+5)", "pad.toolbar.ol.title": "Lista ordenada (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Lista não ordenada (Ctrl+Shift+L)", @@ -43,8 +44,8 @@ "pad.wrongPassword": "Senha incorreta", "pad.settings.padSettings": "Configurações da Nota", "pad.settings.myView": "Minha Visão", - "pad.settings.stickychat": "Conversa sempre visível", - "pad.settings.chatandusers": "Mostrar o chat e os usuários", + "pad.settings.stickychat": "Bate-papo sempre visível", + "pad.settings.chatandusers": "Mostrar o bate-papo e os usuários", "pad.settings.colorcheck": "Cores de autoria", "pad.settings.linenocheck": "Números de linha", "pad.settings.rtlcheck": "Ler conteúdo da direita para esquerda?", @@ -56,7 +57,7 @@ "pad.importExport.import_export": "Importar/Exportar", "pad.importExport.import": "Enviar um arquivo texto ou documento", "pad.importExport.importSuccessful": "Completo!", - "pad.importExport.export": "Exportar a presente nota como:", + "pad.importExport.export": "Exportar a nota atual como:", "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Texto puro", @@ -67,21 +68,21 @@ "pad.modals.connected": "Conectado.", "pad.modals.reconnecting": "Reconectando à sua nota...", "pad.modals.forcereconnect": "Forçar reconexão", - "pad.modals.userdup": "Aberto noutra janela", + "pad.modals.userdup": "Aberto em outra janela", "pad.modals.userdup.explanation": "Esta nota parece estar aberta em mais de uma janela de navegador deste computador.", "pad.modals.userdup.advice": "Reconectar para usar esta janela.", "pad.modals.unauth": "Não autorizado", "pad.modals.unauth.explanation": "Suas permissões foram mudadas enquanto visualizava esta página. Tente reconectar.", "pad.modals.looping.explanation": "Há problemas de comunicação com o servidor de sincronização.", "pad.modals.looping.cause": "Talvez você tenha conectado por um firewall ou proxy incompatível.", - "pad.modals.initsocketfail": "Servidor é inalcançável.", + "pad.modals.initsocketfail": "Servidor está indisponível.", "pad.modals.initsocketfail.explanation": "Não foi possível conectar com o servidor de sincronização.", "pad.modals.initsocketfail.cause": "Isto provavelmente ocorreu por um problema em seu navegador ou conexão.", "pad.modals.slowcommit.explanation": "O servidor não responde.", "pad.modals.slowcommit.cause": "Isto pode ser por problemas com a conexão de rede.", "pad.modals.badChangeset.explanation": "Uma edição que você fez foi classificada como ilegal pelo servidor de sincronização.", "pad.modals.badChangeset.cause": "Isto pode ocorrer devido a uma configuração errada do servidor ou algum outro comportamento inesperado. Por favor contate o administrador, se você acredita que é um erro. Tente reconectar para continuar editando.", - "pad.modals.corruptPad.explanation": "O pad que você está tentando acessar está corrompido.", + "pad.modals.corruptPad.explanation": "A nota que você está tentando acessar está corrompida.", "pad.modals.corruptPad.cause": "Isto pode ocorrer devido a uma configuração errada do servidor ou algum outro comportamento inesperado. Por favor contate o administrador.", "pad.modals.deleted": "Excluído.", "pad.modals.deleted.explanation": "Esta nota foi removida.", @@ -118,7 +119,7 @@ "timeslider.month.december": "Dezembro", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor anônimo, other: autores anônimos ]}", "pad.savedrevs.marked": "Esta revisão foi marcada como salva", - "pad.savedrevs.timeslider": "Pode consultar as revisões salvas visitando a linha do tempo", + "pad.savedrevs.timeslider": "Você pode consultar as revisões salvas visitando a linha do tempo", "pad.userlist.entername": "Insira o seu nome", "pad.userlist.unnamed": "Sem título", "pad.userlist.guest": "Convidado", @@ -127,9 +128,9 @@ "pad.editbar.clearcolors": "Deseja limpar cores de autoria em todo o documento?", "pad.impexp.importbutton": "Importar agora", "pad.impexp.importing": "Importando...", - "pad.impexp.confirmimport": "Importar um arquivo sobrescreverá o atual texto da nota. Tem certeza de que deseja prosseguir?", + "pad.impexp.confirmimport": "Importar um arquivo sobrescreverá o texto atual da nota. Tem certeza de que deseja prosseguir?", "pad.impexp.convertFailed": "Não foi possível importar este arquivo. Use outro formato ou copie e cole manualmente", - "pad.impexp.padHasData": "Não foi possível importar este arquivo porque este bloco de notas já tinha alterações, consulte como importar para um novo bloco de notas", + "pad.impexp.padHasData": "Não foi possível importar este arquivo porque esta nota já tinha alterações, consulte como importar para uma nova nota", "pad.impexp.uploadFailed": "O envio falhou. Tente outra vez", "pad.impexp.importfailed": "A importação falhou", "pad.impexp.copypaste": "Copie e cole", diff --git a/src/locales/ru.json b/src/locales/ru.json index bd2143a1..9a17dda7 100644 --- a/src/locales/ru.json +++ b/src/locales/ru.json @@ -30,12 +30,14 @@ "pad.colorpicker.save": "Сохранить", "pad.colorpicker.cancel": "Отмена", "pad.loading": "Загрузка...", + "pad.noCookie": "Куки не найдены. Пожалуйста, включите куки в вашем браузере!", "pad.passwordRequired": "Вам нужен пароль для доступа", "pad.permissionDenied": "У вас нет разрешения на доступ", "pad.wrongPassword": "Неправильный пароль", "pad.settings.padSettings": "Настройки документа", "pad.settings.myView": "Мой вид", "pad.settings.stickychat": "Всегда отображать чат", + "pad.settings.chatandusers": "Показать чат и пользователей", "pad.settings.colorcheck": "Цвета документа", "pad.settings.linenocheck": "Номера строк", "pad.settings.rtlcheck": "Читать содержимое справа налево?", diff --git a/src/locales/sl.json b/src/locales/sl.json index 41a6ce76..a51cb53d 100644 --- a/src/locales/sl.json +++ b/src/locales/sl.json @@ -2,16 +2,17 @@ "@metadata": { "authors": [ "Dbc334", - "Mateju" + "Mateju", + "Skalcaa" ] }, - "index.newPad": "Nov dokument", + "index.newPad": "Nova Ploščica", "index.createOpenPad": "ali pa odpri dokument z imenom:", "pad.toolbar.bold.title": "Krepko (Ctrl-B)", "pad.toolbar.italic.title": "Ležeče (Ctrl-I)", "pad.toolbar.underline.title": "Podčrtano (Ctrl-U)", "pad.toolbar.strikethrough.title": "Prečrtano (Ctrl+5)", - "pad.toolbar.ol.title": "Oštevilčen seznam (Ctrl+Shift+N)", + "pad.toolbar.ol.title": "Urejen seznam (Ctrl+Shift+N)", "pad.toolbar.ul.title": "Neurejen seznam (Ctrl+Shift+L)", "pad.toolbar.indent.title": "Zamik desno (TAB)", "pad.toolbar.unindent.title": "Zamik levo (Shift+TAB)", @@ -27,12 +28,14 @@ "pad.colorpicker.save": "Shrani", "pad.colorpicker.cancel": "Prekliči", "pad.loading": "Nalaganje ...", + "pad.noCookie": "Piškotka ni bilo mogoče najti. Prosimo, dovolite piškotke v vašem brskalniku!", "pad.passwordRequired": "Za dostop do dokumenta je zahtevano geslo.", "pad.permissionDenied": "Za dostop do dokumenta so zahtevana posebna dovoljenja.", "pad.wrongPassword": "Vpisano geslo je napačno.", "pad.settings.padSettings": "Nastavitve dokumenta", "pad.settings.myView": "Pogled", "pad.settings.stickychat": "Vsebina klepeta je vedno na zaslonu.", + "pad.settings.chatandusers": "Prikaži klepet in uporabnike", "pad.settings.colorcheck": "Barve avtorstva", "pad.settings.linenocheck": "Številke vrstic", "pad.settings.rtlcheck": "Ali naj se vsebina prebira od desne proti levi?", @@ -45,6 +48,7 @@ "pad.importExport.import": "Naloži katerokoli besedilno datoteko ali dokument.", "pad.importExport.importSuccessful": "Opravilo je uspešno končano!", "pad.importExport.export": "Izvozi trenutni dokument kot:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML (oblikovano besedilo)", "pad.importExport.exportplain": "TXT (neoblikovano besedilo)", "pad.importExport.exportword": "DOC (zapis Microsoft Word)", @@ -105,6 +109,7 @@ "timeslider.month.december": "December", "timeslider.unnamedauthors": "{{num}} {[plural(num) one: neimenovan avtor, plural(num) two: neimenovana avtorja, plural(num) few: neimenovani avtorji, other: neimenovanih avtorjev ]}", "pad.savedrevs.marked": "Ta predelava je označena kot shranjena predelava.", + "pad.savedrevs.timeslider": "Shranjene revizije si lahko ogledate s pomočjo časovnega traku", "pad.userlist.entername": "Vpišite ime", "pad.userlist.unnamed": "neimenovana oseba", "pad.userlist.guest": "Gost", @@ -115,6 +120,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.uploadFailed": "Nalaganje je spodletelo, poskusite znova.", "pad.impexp.importfailed": "Uvoz je spodletel.", "pad.impexp.copypaste": "Vsebino kopirajte in prilepite.", diff --git a/src/locales/tr.json b/src/locales/tr.json index b0b6dbee..80927b7f 100644 --- a/src/locales/tr.json +++ b/src/locales/tr.json @@ -37,6 +37,7 @@ "pad.settings.padSettings": "Bloknot Ayarları", "pad.settings.myView": "Görünümüm", "pad.settings.stickychat": "Ekranda her zaman sohbet edin", + "pad.settings.chatandusers": "Sohbeti ve Kullanıcıları Göster", "pad.settings.colorcheck": "Yazarlık renkleri", "pad.settings.linenocheck": "Satır numaraları", "pad.settings.rtlcheck": "İçerik sağdan sola doğru okunsun mu?", @@ -110,6 +111,7 @@ "timeslider.month.december": "Aralık", "timeslider.unnamedauthors": "{{num}} adsız {[plural(num) one: yazar, other: yazar ]}", "pad.savedrevs.marked": "Bu düzenleme artık kayıtlı bir düzeltme olarak işaretlendi", + "pad.savedrevs.timeslider": "Zaman kaydırıcısını ziyaret ederek kaydedilen revizyonları görebilirsiniz", "pad.userlist.entername": "Adınızı girin", "pad.userlist.unnamed": "Adlandırılmamış", "pad.userlist.guest": "Misafir", diff --git a/src/locales/uk.json b/src/locales/uk.json index 79a39a33..9dcde98e 100644 --- a/src/locales/uk.json +++ b/src/locales/uk.json @@ -5,7 +5,8 @@ "Base", "Olvin", "Steve.rusyn", - "SteveR" + "SteveR", + "Lxlalexlxl" ] }, "index.newPad": "Створити", @@ -13,14 +14,14 @@ "pad.toolbar.bold.title": "Напівжирний (Ctrl-B)", "pad.toolbar.italic.title": "Курсив (Ctrl-I)", "pad.toolbar.underline.title": "Підкреслення (Ctrl-U)", - "pad.toolbar.strikethrough.title": "Закреслення", - "pad.toolbar.ol.title": "Упорядкований список", - "pad.toolbar.ul.title": "Неупорядкований список", + "pad.toolbar.strikethrough.title": "Закреслення (Ctrl+5)", + "pad.toolbar.ol.title": "Упорядкований список (Ctrl+Shift+N)", + "pad.toolbar.ul.title": "Неупорядкований список (Ctrl+Shift+L)", "pad.toolbar.indent.title": "Відступ (TAB)", "pad.toolbar.unindent.title": "Виступ (Shift+TAB)", "pad.toolbar.undo.title": "Скасувати (Ctrl-Z)", "pad.toolbar.redo.title": "Повторити (Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "Очистити кольори документу", + "pad.toolbar.clearAuthorship.title": "Очистити кольори документу (Ctrl+Shift+C)", "pad.toolbar.import_export.title": "Імпорт/Експорт з використанням різних форматів файлів", "pad.toolbar.timeslider.title": "Шкала часу", "pad.toolbar.savedRevision.title": "Зберегти версію", @@ -30,12 +31,14 @@ "pad.colorpicker.save": "Зберегти", "pad.colorpicker.cancel": "Скасувати", "pad.loading": "Завантаження…", + "pad.noCookie": "Реп'яшки не знайдено. Будь-ласка, увімкніть реп'яшки у вашому браузері!", "pad.passwordRequired": "Вам необхідний пароль для доступу до цього документу", "pad.permissionDenied": "Ви не має дозволу для доступу до цього документу", "pad.wrongPassword": "Неправильний пароль", "pad.settings.padSettings": "Налаштування документу", "pad.settings.myView": "Мій Вигляд", "pad.settings.stickychat": "Завжди відображувати чат", + "pad.settings.chatandusers": "Показати чат і користувачів", "pad.settings.colorcheck": "Кольори документу", "pad.settings.linenocheck": "Номери рядків", "pad.settings.rtlcheck": "Читати вміст з права на ліво?", @@ -48,6 +51,7 @@ "pad.importExport.import": "Завантажити будь-який текстовий файл або документ", "pad.importExport.importSuccessful": "Успішно!", "pad.importExport.export": "Експортувати поточний документ як:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "Звичайний текст", "pad.importExport.exportword": "Microsoft Word", diff --git a/src/locales/zh-hans.json b/src/locales/zh-hans.json index 4af3cb48..31b7f7f3 100644 --- a/src/locales/zh-hans.json +++ b/src/locales/zh-hans.json @@ -10,20 +10,21 @@ "Shizhao", "Yfdyh000", "乌拉跨氪", - "燃玉" + "燃玉", + "JuneAugust" ] }, "index.newPad": "新记事本", "index.createOpenPad": "或者创建/打开带名字的记事本:", "pad.toolbar.bold.title": "粗体(Ctrl-B)", - "pad.toolbar.italic.title": "斜体 (Ctrl-I)", + "pad.toolbar.italic.title": "斜体(Ctrl-I)", "pad.toolbar.underline.title": "下划线(Ctrl-U)", "pad.toolbar.strikethrough.title": "删除线(Ctrl+5)", "pad.toolbar.ol.title": "有序列表(Ctrl+Shift+N)", "pad.toolbar.ul.title": "无序列表(Ctrl+Shift+L)", "pad.toolbar.indent.title": "增加缩进(TAB)", "pad.toolbar.unindent.title": "减少缩进(Shift+TAB)", - "pad.toolbar.undo.title": "撤消 (Ctrl-Z)", + "pad.toolbar.undo.title": "撤消(Ctrl-Z)", "pad.toolbar.redo.title": "重做(Ctrl+Y)", "pad.toolbar.clearAuthorship.title": "清除作者颜色(Ctrl+Shift+C)", "pad.toolbar.import_export.title": "从不同的文件格式导入/导出", @@ -79,7 +80,7 @@ "pad.modals.slowcommit.cause": "这可能是由于网络连接问题。", "pad.modals.badChangeset.explanation": "您的一个编辑被同步服务器分类为非法。", "pad.modals.badChangeset.cause": "这可能是因为服务器配置的错误或者其他未预料到的行为。如果您认为这是错误,请联系服务管理员。要继续编辑,请尝试重新连接。", - "pad.modals.corruptPad.explanation": "您试图连接的平板已损坏。", + "pad.modals.corruptPad.explanation": "您试图连接的记事本已损坏。", "pad.modals.corruptPad.cause": "这可能是因为服务器配置的错误或者其他未预料到的行为。请联系服务管理员。", "pad.modals.deleted": "已刪除。", "pad.modals.deleted.explanation": "此记事本已被移除。", @@ -101,19 +102,19 @@ "timeslider.exportCurrent": "当前版本导出为:", "timeslider.version": "版本 {{version}}", "timeslider.saved": "在{{year}}年{{month}}{{day}}日保存", - "timeslider.dateformat": "{{year}}年{{month}}月{{day}}日 {{hours}}时:{{minutes}}分:{{seconds}}秒", + "timeslider.dateformat": "{{year}}年{{month}}月{{day}}日 {{hours}}{{minutes}}{{seconds}}", "timeslider.month.january": "1月", "timeslider.month.february": "2月", - "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.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月", "timeslider.unnamedauthors": "{{num}}个匿名作者", "pad.savedrevs.marked": "这一修订现在被标记为已保存的修订版本", "pad.savedrevs.timeslider": "您可以使用时间滑块查阅已保存的版本", @@ -126,8 +127,8 @@ "pad.impexp.importbutton": "现在导入", "pad.impexp.importing": "正在导入...", "pad.impexp.confirmimport": "导入的文件将覆盖记事本的当前文本。你确定要继续吗?", - "pad.impexp.convertFailed": "我们无法导入此文档。请使用他文档格式或手动复制贴上。", - "pad.impexp.padHasData": "我们无法导入此文件,因为此记事本已经变更,请导入到一个新的记事本", + "pad.impexp.convertFailed": "我们无法导入此文档。请使用其他文档格式或手动复制贴上。", + "pad.impexp.padHasData": "我们无法导入此文件,因为此记事本已经变更,请导入到一个新的记事本中", "pad.impexp.uploadFailed": "上载失败,请重试", "pad.impexp.importfailed": "导入失败", "pad.impexp.copypaste": "请复制粘贴", diff --git a/src/locales/zh-hant.json b/src/locales/zh-hant.json index a692d0ca..48dd577c 100644 --- a/src/locales/zh-hant.json +++ b/src/locales/zh-hant.json @@ -6,7 +6,8 @@ "Shangkuanlc", "Shirayuki", "Simon Shek", - "LNDDYL" + "LNDDYL", + "Wehwei" ] }, "index.newPad": "新Pad", @@ -21,7 +22,7 @@ "pad.toolbar.unindent.title": "凸排(Shift+TAB)", "pad.toolbar.undo.title": "撤銷(Ctrl-Z)", "pad.toolbar.redo.title": "重做(Ctrl-Y)", - "pad.toolbar.clearAuthorship.title": "清除協作者顏色區別", + "pad.toolbar.clearAuthorship.title": "清除協作者顏色區別 (Ctrl+Shift+C)", "pad.toolbar.import_export.title": "以其他檔案格式匯入/匯出", "pad.toolbar.timeslider.title": "時間軸", "pad.toolbar.savedRevision.title": "儲存修訂", @@ -31,12 +32,14 @@ "pad.colorpicker.save": "儲存", "pad.colorpicker.cancel": "取消", "pad.loading": "載入中...", + "pad.noCookie": "找不到 Cookie。請讓你的瀏覽器允許 Cookie!", "pad.passwordRequired": "您需要密碼才能訪問這個pad", "pad.permissionDenied": "你沒有訪問這個pad的權限", "pad.wrongPassword": "密碼錯誤", "pad.settings.padSettings": "Pad設定", "pad.settings.myView": "我的視窗", "pad.settings.stickychat": "永遠在屏幕上顯示聊天", + "pad.settings.chatandusers": "顯示聊天及用戶", "pad.settings.colorcheck": "協作者顏色", "pad.settings.linenocheck": "行號", "pad.settings.rtlcheck": "從右至左讀取內容?", @@ -49,6 +52,7 @@ "pad.importExport.import": "上載任何文字檔或文件", "pad.importExport.importSuccessful": "完成!", "pad.importExport.export": "匯出當前pad為:", + "pad.importExport.exportetherpad": "Etherpad", "pad.importExport.exporthtml": "HTML", "pad.importExport.exportplain": "純文字", "pad.importExport.exportword": "Microsoft Word", diff --git a/src/node/db/Pad.js b/src/node/db/Pad.js index 53847600..e70628b7 100644 --- a/src/node/db/Pad.js +++ b/src/node/db/Pad.js @@ -290,7 +290,7 @@ Pad.prototype.setText = function setText(newText) { var oldText = this.text(); //create the changeset - var changeset = Changeset.makeSplice(oldText, 0, oldText.length-1, newText); + var changeset = Changeset.makeSplice(oldText, 0, oldText.length, newText); //append the changeset this.appendRevision(changeset); diff --git a/src/node/handler/ImportHandler.js b/src/node/handler/ImportHandler.js index 7ad82a87..026ce020 100644 --- a/src/node/handler/ImportHandler.js +++ b/src/node/handler/ImportHandler.js @@ -228,7 +228,7 @@ exports.doImport = function(req, res, padId) function(callback) { if(!directDatabaseAccess){ var fileEnding = path.extname(srcFile).toLowerCase(); - if (abiword || fileEnding == ".htm" || fileEnding == ".html") { + if (importHandledByPlugin || abiword || fileEnding == ".htm" || fileEnding == ".html") { importHtml.setPadHTML(pad, text, function(e){ if(e) apiLogger.warn("Error importing, possibly caused by malformed HTML"); }); diff --git a/src/node/hooks/express.js b/src/node/hooks/express.js index 3abe41f8..17910e4b 100644 --- a/src/node/hooks/express.js +++ b/src/node/hooks/express.js @@ -46,6 +46,13 @@ exports.restartServer = function () { key: fs.readFileSync( settings.ssl.key ), cert: fs.readFileSync( settings.ssl.cert ) }; + if (settings.ssl.ca) { + options.ca = []; + for(var i = 0; i < settings.ssl.ca.length; i++) { + var caFileName = settings.ssl.ca[i]; + options.ca.push(fs.readFileSync(caFileName)); + } + } var https = require('https'); server = https.createServer(options, app); @@ -62,6 +69,9 @@ exports.restartServer = function () { res.header("Strict-Transport-Security", "max-age=31536000; includeSubDomains"); } + // Stop IE going into compatability mode + // https://github.com/ether/etherpad-lite/issues/2547 + res.header("X-UA-Compatible", "IE=Edge,chrome=1"); res.header("Server", serverName); next(); }); diff --git a/src/node/server.js b/src/node/server.js index 605ce847..2952da54 100755 --- a/src/node/server.js +++ b/src/node/server.js @@ -67,7 +67,7 @@ async.waterfall([ }, function (callback) { - console.info("Installed plugins: " + plugins.formatPlugins()); + console.info("Installed plugins: " + plugins.formatPluginsWithVersion()); console.debug("Installed parts:\n" + plugins.formatParts()); console.debug("Installed hooks:\n" + plugins.formatHooks()); diff --git a/src/node/utils/ImportHtml.js b/src/node/utils/ImportHtml.js index 33fd91c6..d71e2720 100644 --- a/src/node/utils/ImportHtml.js +++ b/src/node/utils/ImportHtml.js @@ -89,7 +89,7 @@ function setPadHTML(pad, html, callback) // the changeset is ready! var theChangeset = builder.toString(); apiLogger.debug('The changeset: ' + theChangeset); - pad.setText(""); + pad.setText("\n"); pad.appendRevision(theChangeset); callback(null); } diff --git a/src/static/css/iframe_editor.css b/src/static/css/iframe_editor.css index b7ece1e6..2824a10a 100644 --- a/src/static/css/iframe_editor.css +++ b/src/static/css/iframe_editor.css @@ -113,7 +113,11 @@ body.doesWrap { word-wrap: break-word; /* fix for issue #1648 - firefox not wrapping long lines (without spaces) correctly */ } -body.doesWrap > div{ +.noprewrap{ + white-space: normal; +} + +body.doesWrap:not(.noprewrap) > div{ /* Related to #1766 */ white-space: pre-wrap; } diff --git a/src/static/css/pad.css b/src/static/css/pad.css index ff8ab5ab..49a54fb0 100644 --- a/src/static/css/pad.css +++ b/src/static/css/pad.css @@ -860,6 +860,7 @@ input[type=checkbox] { padding: 10px; border-radius: 0 0 6px 6px; border: 1px solid #ccc; + border-top: none; background: #f7f7f7; background: -webkit-linear-gradient(#F7F7F7, #EEE); background: -moz-linear-gradient(#F7F7F7, #EEE); diff --git a/src/static/js/Changeset.js b/src/static/js/Changeset.js index df180f9c..04a05514 100644 --- a/src/static/js/Changeset.js +++ b/src/static/js/Changeset.js @@ -260,13 +260,13 @@ exports.checkRep = function (cs) { break; case '-': oldPos += o.chars; - exports.assert(oldPos < oldLen, oldPos, " >= ", oldLen, " in ", cs); + exports.assert(oldPos <= oldLen, oldPos, " > ", oldLen, " in ", cs); break; case '+': { calcNewLen += o.chars; numInserted += o.chars; - exports.assert(calcNewLen < newLen, calcNewLen, " >= ", newLen, " in ", cs); + exports.assert(calcNewLen <= newLen, calcNewLen, " > ", newLen, " in ", cs); break; } } @@ -1408,8 +1408,8 @@ exports.makeSplice = function (oldFullText, spliceStart, numRemoved, newText, op if (spliceStart >= oldLen) { spliceStart = oldLen - 1; } - if (numRemoved > oldFullText.length - spliceStart - 1) { - numRemoved = oldFullText.length - spliceStart - 1; + if (numRemoved > oldFullText.length - spliceStart) { + numRemoved = oldFullText.length - spliceStart; } var oldText = oldFullText.substring(spliceStart, spliceStart + numRemoved); var newLen = oldLen + newText.length - oldText.length; diff --git a/src/static/js/ace2_inner.js b/src/static/js/ace2_inner.js index e2e1128c..d7852263 100644 --- a/src/static/js/ace2_inner.js +++ b/src/static/js/ace2_inner.js @@ -612,7 +612,7 @@ function Ace2Inner(){ // So this has to be set to pre-wrap ;( // We need to file a bug w/ the Chromium team. if(browser.chrome){ - $("#innerdocbody").css({"white-space":"pre-wrap"}); + $("#innerdocbody").addClass("noprewrap"); } } @@ -3640,6 +3640,7 @@ function Ace2Inner(){ }else{ var lineHeight = myselection.focusNode.offsetHeight; // line height of blank lines } + var heightOfChatIcon = parent.parent.$('#chaticon').height(); // height of the chat icon button lineHeight = (lineHeight *2) + heightOfChatIcon; var viewport = getViewPortTopBottom(); @@ -3709,11 +3710,11 @@ function Ace2Inner(){ firstEditbarElement.focus(); evt.preventDefault(); } - if ((!specialHandled) && altKey && keyCode == 67){ + if ((!specialHandled) && altKey && keyCode == 67 && type === "keydown"){ // Alt c focuses on the Chat window $(this).blur(); parent.parent.chat.show(); - parent.parent.chat.focus(); + parent.parent.$("#chatinput").focus(); evt.preventDefault(); } if ((!specialHandled) && evt.ctrlKey && shiftKey && keyCode == 50 && type === "keydown"){ @@ -3905,7 +3906,7 @@ function Ace2Inner(){ doInsertUnorderedList() specialHandled = true; } - if ((!specialHandled) && isTypeForCmdKey && String.fromCharCode(which).toLowerCase() == "n" && (evt.metaKey || evt.ctrlKey) && evt.shiftKey) + if ((!specialHandled) && isTypeForCmdKey && (String.fromCharCode(which).toLowerCase() == "n" || String.fromCharCode(which) == 1) && (evt.metaKey || evt.ctrlKey) && evt.shiftKey) { // cmd-shift-N (orderedlist) fastIncorp(9); diff --git a/src/static/js/chat.js b/src/static/js/chat.js index 42cd50f4..fa087eec 100644 --- a/src/static/js/chat.js +++ b/src/static/js/chat.js @@ -39,8 +39,6 @@ var chat = (function() }, focus: function () { - // I'm not sure why we need a setTimeout here but without it we don't get focus... - // Animation maybe? setTimeout(function(){ $("#chatinput").focus(); },100); @@ -214,23 +212,24 @@ var chat = (function() init: function(pad) { this._pad = pad; - $("#chatinput").keyup(function(evt) - { + $("#chatinput").on("keydown", function(evt){ // If the event is Alt C or Escape & we're already in the chat menu // Send the users focus back to the pad if((evt.altKey == true && evt.which === 67) || evt.which === 27){ // If we're in chat already.. $(':focus').blur(); // required to do not try to remove! padeditor.ace.focus(); // Sends focus back to pad + evt.preventDefault(); + return false; } }); - $('body:not(#chatinput)').on("keydown", function(evt){ + $('body:not(#chatinput)').on("keypress", function(evt){ if (evt.altKey && evt.which == 67){ // Alt c focuses on the Chat window $(this).blur(); - parent.parent.chat.show(); - parent.parent.chat.focus(); + chat.show(); + $("#chatinput").focus(); evt.preventDefault(); } }); diff --git a/src/static/js/collab_client.js b/src/static/js/collab_client.js index e5c0ec8b..ad493528 100644 --- a/src/static/js/collab_client.js +++ b/src/static/js/collab_client.js @@ -279,7 +279,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (oldRev + 1)) { - parent.parent.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1)); + window.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (oldRev + 1)); // setChannelState("DISCONNECTED", "badmessage_newchanges"); return; } @@ -289,7 +289,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (rev + 1)) { - parent.parent.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1)); + window.console.warn("bad message revision on NEW_CHANGES: " + newRev + " not " + (rev + 1)); // setChannelState("DISCONNECTED", "badmessage_newchanges"); return; } @@ -303,7 +303,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) { if (newRev != (msgQueue[msgQueue.length - 1].newRev + 1)) { - parent.parent.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1)); + window.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (msgQueue[msgQueue.length - 1][0] + 1)); // setChannelState("DISCONNECTED", "badmessage_acceptcommit"); return; } @@ -313,7 +313,7 @@ function getCollabClient(ace2editor, serverVars, initialUserInfo, options, _pad) if (newRev != (rev + 1)) { - parent.parent.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1)); + window.console.warn("bad message revision on ACCEPT_COMMIT: " + newRev + " not " + (rev + 1)); // setChannelState("DISCONNECTED", "badmessage_acceptcommit"); return; } diff --git a/src/static/js/contentcollector.js b/src/static/js/contentcollector.js index 857e171f..5c1e8efb 100644 --- a/src/static/js/contentcollector.js +++ b/src/static/js/contentcollector.js @@ -71,8 +71,9 @@ function makeContentCollector(collectStyles, abrowser, apool, domInterface, clas }, nodeAttr: function(n, a) { - if(n.getAttribute == null) return null; - return n.getAttribute(a); + if(n.getAttribute != null) return n.getAttribute(a); + if(n.attribs != null) return n.attribs[a]; + return null; }, optNodeInnerHTML: function(n) { @@ -516,7 +517,7 @@ function makeContentCollector(collectStyles, abrowser, apool, domInterface, clas else if (!isEmpty) { var styl = dom.nodeAttr(node, "style"); - var cls = dom.nodeProp(node, "className"); + var cls = dom.nodeAttr(node, "class"); var isPre = (tname == "pre"); if ((!isPre) && abrowser.safari) { diff --git a/src/static/js/pad.js b/src/static/js/pad.js index a2c76c08..ade49b1e 100644 --- a/src/static/js/pad.js +++ b/src/static/js/pad.js @@ -456,10 +456,11 @@ var pad = { }, switchToPad: function(padId) { - var options = document.location.href.split('?')[1]; - var newHref = "/p/" + padId; - if (options != null) - newHref = newHref + '?' + options; + var newHref = new RegExp(/.*\/p\/[^\/]+/).exec(document.location.pathname) || clientVars.padId; + newHref = newHref[0]; + if (options != null){ + newHref = newHref + '?' + options; + } if(window.history && window.history.pushState) { diff --git a/src/static/js/pad_impexp.js b/src/static/js/pad_impexp.js index 96761570..1648f34c 100644 --- a/src/static/js/pad_impexp.js +++ b/src/static/js/pad_impexp.js @@ -235,7 +235,7 @@ var padimpexp = (function() addImportFrames(); $("#importfileinput").change(fileInputUpdated); - $('#importform').submit(fileInputSubmit); + $('#importform').unbind("submit").submit(fileInputSubmit); $('.disabledexport').click(cantExport); }, handleFrameCall: function(directDatabaseAccess, status) diff --git a/src/static/js/pluginfw/plugins.js b/src/static/js/pluginfw/plugins.js index e02c1331..dfdf941e 100644 --- a/src/static/js/pluginfw/plugins.js +++ b/src/static/js/pluginfw/plugins.js @@ -26,6 +26,17 @@ exports.formatPlugins = function () { return _.keys(exports.plugins).join(", "); }; +exports.formatPluginsWithVersion = function () { + var plugins = []; + _.forEach(exports.plugins, function(plugin){ + if(plugin.package.name !== "ep_etherpad-lite"){ + var pluginStr = plugin.package.name + "@" + plugin.package.version; + plugins.push(pluginStr); + } + }); + return plugins.join(", "); +}; + exports.formatParts = function () { return _.map(exports.parts, function (part) { return part.full_name; }).join("\n"); }; diff --git a/src/static/js/timeslider.js b/src/static/js/timeslider.js index 75c20022..08d6f68d 100644 --- a/src/static/js/timeslider.js +++ b/src/static/js/timeslider.js @@ -147,7 +147,7 @@ function handleClientVars(message) // export_links is a jQuery Array, so .each is allowed. export_links.each(function() { - this.setAttribute('href', this.href.replace( /(.+?)\/\w+\/(\d+\/)?export/ , '$1/' + padId + '/' + revno + '/export')); + this.setAttribute('href', this.href.replace( /(.+?)\/[^\/]+\/(\d+\/)?export/ , '$1/' + padId + '/' + revno + '/export')); }); }); diff --git a/tests/backend/specs/api/pad.js b/tests/backend/specs/api/pad.js index 75e77971..a2e8cdb3 100644 --- a/tests/backend/specs/api/pad.js +++ b/tests/backend/specs/api/pad.js @@ -210,7 +210,7 @@ describe('getText', function(){ it('gets the Pad text', function(done) { api.get(endPoint('getText')+"&padID="+testPadId) .expect(function(res){ - if(res.body.data.text !== "testTextTwo\n") throw new Error("Setting Text") + if(res.body.data.text !== "testTextTwo") throw new Error("Setting Text") }) .expect('Content-Type', /json/) .expect(200, done) @@ -386,7 +386,7 @@ describe('getText', function(){ api.get(endPoint('getText')+"&padID="+testPadId) .expect(function(res){ if(res.body.code !== 0) throw new Error("Pad Get Text failed") - if(res.body.data.text !== text+"\n") throw new Error("Pad Text not set properly"); + if(res.body.data.text !== text) throw new Error("Pad Text not set properly"); }) .expect('Content-Type', /json/) .expect(200, done) @@ -419,7 +419,7 @@ describe('getText', function(){ it('Gets text on a pad Id', function(done) { api.get(endPoint('getText')+"&padID="+newPadId) .expect(function(res){ - if(res.body.data.text !== text+"\n") throw new Error("Pad Get Text failed") + if(res.body.data.text !== text) throw new Error("Pad Get Text failed") }) .expect('Content-Type', /json/) .expect(200, done) @@ -441,7 +441,7 @@ describe('getText', function(){ it('Gets text on a pad Id', function(done) { api.get(endPoint('getText')+"&padID="+testPadId) .expect(function(res){ - if(res.body.data.text !== text+"\n") throw new Error("Pad Get Text failed") + if(res.body.data.text !== text) throw new Error("Pad Get Text failed") }) .expect('Content-Type', /json/) .expect(200, done)