diff --git a/.travis.yml b/.travis.yml index ba1cf0ac1..77f0c8557 100644 --- a/.travis.yml +++ b/.travis.yml @@ -10,7 +10,7 @@ script: - "tests/frontend/travis/runner.sh" env: global: - - secure: "oKA4KbSvyxMOFCiOa3hWswnaIrCmX60MfhBhD8xu8sodOqbdK5RUrxDJew9p\n1nNSewxoVmKhX0G5GxIABfGtdU1nrEzCEoejTDJIFmzEbcLcHpcyarouWLSY\nOpn11FKS1rnb69aflHM7K8l4dhrCkA2i0Dwwl8LN3HayGzDV2Rg=" + - secure: "OxZ2s724S96xu02746LUN+4lBckAe1BOICJjfA4jnFPNpiNU6XoMH52f+LgG\nZzAwu6xMTv+NsaLGp6Avm3cx4GZ+jIiHe4NB9XOgYPa0r0TBIi3ueWYPDyVv\nCniS/4qX68DoFNV4lh7zMBXn0IIPxT4Wppm3desBpjWDP/SdoRs=" - SAUCE_USER=pita jdk: - oraclejdk6 diff --git a/CHANGELOG.md b/CHANGELOG.md index abcf0a210..a2f7586f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +# 1.2.1 + * Allow ! in urls inside the editor (Not Pad urls) + * Allow comments in language files + * More languages (Finish, Spanish, Bengali, Dutch) Thanks to TranslateWiki.net team. See https://translatewiki.net/w/i.php?title=Special:MessageGroupStats&group=out-etherpad-lite for more details + * Bugfix for IE7/8 issue with a JS error #1186 + * Bugfix windows package extraction issue and make the .zip file smaller + * Bugfix group pad API export + * Kristen Stewart is a terrible actress and Twilight sucks. + # v1.2 * Internationalization / Language / Translation support (i18n) with support for German/French * A frontend/client side testing framework and backend build tests diff --git a/README.md b/README.md index baa8b13e0..7d3a73f52 100644 --- a/README.md +++ b/README.md @@ -73,7 +73,7 @@ Additionally, you'll need [node.js](http://nodejs.org). 1. Move to a folder where you want to install Etherpad Lite. Clone the git repository `git clone git://github.com/ether/etherpad-lite.git` 2. Change into the new directory containing the cloned source code `cd etherpad-lite` -Now, run `bin\run.sh` and open in your browser. +Now, run `bin/run.sh` and open in your browser. Update to the latest version with `git pull origin`. The next start with bin/run.sh will update the dependencies. diff --git a/bin/buildForWindows.sh b/bin/buildForWindows.sh index 1d47bff1b..c67a3701c 100755 --- a/bin/buildForWindows.sh +++ b/bin/buildForWindows.sh @@ -52,6 +52,13 @@ echo "download windows node..." cd bin wget "http://nodejs.org/dist/v$NODE_VERSION/node.exe" -O ../node.exe +echo "remove git history to reduce folder size" +rm -rf .git/objects + +echo "remove windows jsdom-nocontextify/test folder" +rm -rf /tmp/etherpad-lite-win/node_modules/ep_etherpad-lite/node_modules/jsdom-nocontextifiy/test/ +rm -rf /tmp/etherpad-lite-win/src/node_modules/jsdom-nocontextifiy/test/ + echo "create the zip..." cd /tmp zip -9 -r etherpad-lite-win.zip etherpad-lite-win diff --git a/bin/installDeps.sh b/bin/installDeps.sh index ac2e68cf5..6f5c732cd 100755 --- a/bin/installDeps.sh +++ b/bin/installDeps.sh @@ -69,7 +69,7 @@ echo "Ensure that all dependencies are up to date..." cd node_modules [ -e ep_etherpad-lite ] || ln -s ../src ep_etherpad-lite cd ep_etherpad-lite - npm install -s + npm install --loglevel warn ) || { rm -rf node_modules exit 1 @@ -79,7 +79,7 @@ echo "Ensure jQuery is downloaded and up to date..." DOWNLOAD_JQUERY="true" NEEDED_VERSION="1.7.1" if [ -f "src/static/js/jquery.js" ]; then - if [ $(uname) = "SunOS"]; then + if [ $(uname) = "SunOS" ]; then VERSION=$(cat src/static/js/jquery.js | head -n 3 | ggrep -o "v[0-9]\.[0-9]\(\.[0-9]\)\?"); else VERSION=$(cat src/static/js/jquery.js | head -n 3 | grep -o "v[0-9]\.[0-9]\(\.[0-9]\)\?"); diff --git a/bin/installOnWindows.bat b/bin/installOnWindows.bat index b4e4f5400..32ff847f6 100644 --- a/bin/installOnWindows.bat +++ b/bin/installOnWindows.bat @@ -13,7 +13,7 @@ cmd /C node -e %check_version% || exit /B 1 echo _ echo Installing etherpad-lite and dependencies... -cmd /C npm install src/ || exit /B 1 +cmd /C npm install src/ --loglevel warn || exit /B 1 echo _ echo Copying custom templates... diff --git a/src/locales/bn.ini b/src/locales/bn.ini new file mode 100644 index 000000000..7eca9e383 --- /dev/null +++ b/src/locales/bn.ini @@ -0,0 +1,32 @@ +; Exported from translatewiki.net +; Author: Nasir8891 +[bn] +index.newPad = নতুন প্যাড +index.createOpenPad = অথবা নাম লিখে প্যাড খুলুন/তৈরী করুন: +pad.toolbar.bold.title = গাড় করা (Ctrl-B) +pad.toolbar.italic.title = বাঁকা করা (Ctrl-I) +pad.toolbar.settings.title = সেটিং +pad.colorpicker.save = সংরক্ষণ +pad.colorpicker.cancel = বাতিল +pad.loading = লোডিং... +pad.settings.language = ভাষা: +pad.importExport.successful = সফল! +; Fuzzy +pad.importExport.export = এই প্যাডটি এক্সপোর্ট করুন +pad.importExport.exporthtml = এইচটিএমএল +pad.importExport.exportplain = সাধারণ লেখা +pad.importExport.exportword = মাইক্রোসফট ওয়ার্ড +pad.importExport.exportpdf = পিডিএফ +pad.importExport.exportopen = ওডিএফ (ওপেন ডকুমেন্ট ফরম্যাট) +pad.modals.deleted = অপসারিত। +pad.modals.deleted.explanation = এই প্যাডটি অপসারণ করা হয়েছে। +pad.modals.disconnected.explanation = সার্ভারের সাথে যোগাযোগ করা যাচ্ছে না +pad.share = শেয়ার করুন +pad.share.link = লিংক +pad.share.emebdcode = ইউআরএল সংযোজন +pad.chat = চ্যাট +pad.chat.title = এই প্যাডের জন্য চ্যাট চালু করুন। +timeslider.toolbar.returnbutton = প্যাডে ফিরে যাও +timeslider.toolbar.authors = লেখকগণ: +timeslider.toolbar.authorsList = কোনো লেখক নেই +timeslider.exportCurrent = বর্তমান সংস্করণটি এক্সপোর্ট করুন: diff --git a/src/locales/de.ini b/src/locales/de.ini index 35fa61ee8..177746a56 100644 --- a/src/locales/de.ini +++ b/src/locales/de.ini @@ -1,7 +1,7 @@ +; Exported from translatewiki.net [de] index.newPad = Neues Pad index.createOpenPad = Pad mit folgendem Namen öffnen - pad.toolbar.bold.title = Fett (Strg-B) pad.toolbar.italic.title = Kursiv (Strg-I) pad.toolbar.underline.title = Unterstrichen (Strg-U) @@ -19,10 +19,8 @@ pad.toolbar.savedRevision.title = Diese Revision markieren pad.toolbar.settings.title = Einstellungen pad.toolbar.embed.title = Dieses Pad teilen oder einbetten pad.toolbar.showusers.title = Verbundene Benutzer anzeigen - pad.colorpicker.save = Speichern pad.colorpicker.cancel = Abbrechen - pad.loading = Laden... pad.settings.padSettings = Pad Einstellungen pad.settings.myView = Eigene Ansicht @@ -32,13 +30,12 @@ pad.settings.linenocheck = Zeilennummern pad.settings.fontType = Schriftart: pad.settings.fontType.normal = Normal pad.settings.fontType.monospaced = Monospace -pad.settings.language = Sprache: pad.settings.globalView = Gemeinsame Ansicht - +pad.settings.language = Sprache: pad.importExport.import_export = Import/Export pad.importExport.import = Datei oder Dokument hochladen pad.importExport.successful = Erfolgreich! - +; Fuzzy pad.importExport.export = Dieses Pad exportieren pad.importExport.exporthtml = HTML pad.importExport.exportplain = Reiner Text @@ -46,7 +43,6 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDf pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki - pad.modals.connected = Verbunden. pad.modals.reconnecting = Wiederherstellen der Verbindung... pad.modals.forcereconnect = Erneut Verbinden @@ -69,17 +65,14 @@ pad.modals.deleted.explanation = Dieses Pad wurde entfernt. pad.modals.disconnected = Verbindung unterbrochen. pad.modals.disconnected.explanation = Die Verbindung zum Synchronisationsserver wurde unterbrochen. pad.modals.disconnected.cause = Möglicherweise ist der Server nicht erreichbar. Bitte benachrichtigen Sie uns, falls dies weiterhin passiert. - pad.share = Dieses Pad teilen pad.share.readonly = Eingeschränkter zugriff (Nur lesen) pad.share.link = Link pad.share.emebdcode = In Webseite einbetten - pad.chat = Chat pad.chat.title = Den Chat für dieses Pad öffnen - timeslider.pageTitle = {{appTitle}} Pad-Geschichte timeslider.toolbar.returnbutton = Zurück zum Pad timeslider.toolbar.authors = Autoren: timeslider.toolbar.authorsList = keine Autoren -timeslider.exportCurrent = Exportiere diese Version als: \ No newline at end of file +timeslider.exportCurrent = Exportiere diese Version als: diff --git a/src/locales/en.ini b/src/locales/en.ini index 95b8eaddd..a110583ea 100644 --- a/src/locales/en.ini +++ b/src/locales/en.ini @@ -1,4 +1,4 @@ -[en] +[*] index.newPad = New Pad index.createOpenPad = or create/open a Pad with the name: pad.toolbar.bold.title = Bold (Ctrl-B) @@ -6,7 +6,7 @@ pad.toolbar.italic.title = Italic (Ctrl-I) pad.toolbar.underline.title = Underline (Ctrl-U) pad.toolbar.strikethrough.title = Strikethrough pad.toolbar.ol.title = Ordered list -pad.toolbar.ul.title = UnOrdered List +pad.toolbar.ul.title = Unordered List pad.toolbar.indent.title = Indent pad.toolbar.unindent.title = Outdent pad.toolbar.undo.title = Undo (Ctrl-Z) @@ -34,27 +34,27 @@ pad.settings.language = Language: pad.importExport.import_export = Import/Export pad.importExport.import = Upload any text file or document pad.importExport.successful = Successful! -pad.importExport.export = Export current pad as +pad.importExport.export = Export current pad as: pad.importExport.exporthtml = HTML pad.importExport.exportplain = Plain text pad.importExport.exportword = Microsoft Word -pad.importExport.exportpdf = PDf +pad.importExport.exportpdf = PDF pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki pad.modals.connected = Connected. pad.modals.reconnecting = Reconnecting to your pad.. pad.modals.forcereconnect = Force reconnect -pad.modals.uderdup = Open in another window +pad.modals.uderdup = Opened in another window pad.modals.userdup.explanation = This pad seems to be opened in more than one browser window on this computer. -pad.modals.userdup.advice = Reconnect to use this windows instead. +pad.modals.userdup.advice = Reconnect to use this window instead. pad.modals.unauth = Not authorized -pad.modals.unauth.explanation = Your permissions have changes while viewing this page. Try to reconnect. +pad.modals.unauth.explanation = Your permissions have changed while viewing this page. Try to reconnect. pad.modals.looping = Disconnected. -pad.modals.looping.explanation = We're having problem communicating to the synchronization server. -pad.modals.looping.cause = Perhaps their connection runs through an incompatible firewall or incompatible proxy. +pad.modals.looping.explanation = There are communication problems with the synchronization server. +pad.modals.looping.cause = Perhaps you connected through an incompatible firewall or proxy. pad.modals.initsocketfail = Server is unreachable. pad.modals.initsocketfail.explanation = Couldn't connect to the synchronization server. -pad.modals.initsocketfail.cause = This could be because of your browser or Internet connection. #sounds stupid! +pad.modals.initsocketfail.cause = This is probably due to a problem with your browser or your internet connection. pad.modals.slowcommit = Disconnected. pad.modals.slowcommit.explanation = The server is not responding. pad.modals.slowcommit.cause = This could be due to problems with network connectivity. diff --git a/src/locales/es.ini b/src/locales/es.ini new file mode 100644 index 000000000..acb6a5cf1 --- /dev/null +++ b/src/locales/es.ini @@ -0,0 +1,78 @@ +; Exported from translatewiki.net +[es] +index.newPad = Nuevo Pad +index.createOpenPad = o puedes crear/abrir un Pad con el nombre: +pad.toolbar.bold.title = Negrita (Ctrl-B) +pad.toolbar.italic.title = Cursiva (Ctrl-I) +pad.toolbar.underline.title = Subrayado (Ctrl-U) +pad.toolbar.strikethrough.title = Tachado +pad.toolbar.ol.title = Lista ordenada +pad.toolbar.ul.title = Lista desordenada +pad.toolbar.indent.title = Sangrar +pad.toolbar.unindent.title = Desangrar +pad.toolbar.undo.title = Deshacer (Ctrl-Z) +pad.toolbar.redo.title = Rehacer (Ctrl-Y) +pad.toolbar.clearAuthorship.title = Eliminar los colores de los autores +pad.toolbar.import_export.title = Importar/Exportar a diferentes formatos de archivos +pad.toolbar.timeslider.title = Línea de tiempo +pad.toolbar.savedRevision.title = Revisiones guardadas +pad.toolbar.settings.title = Configuración +pad.toolbar.embed.title = Incrustar este pad +pad.toolbar.showusers.title = Mostrar los usuarios de este pad +pad.colorpicker.save = Guardar +pad.colorpicker.cancel = Cancelar +pad.loading = Cargando... +pad.settings.padSettings = Configuración del Pad +pad.settings.myView = Mi vista +pad.settings.stickychat = Chat siempre encima +pad.settings.colorcheck = Color de autoría +pad.settings.linenocheck = Números de línea +pad.settings.fontType = Tipografía: +pad.settings.fontType.normal = Normal +pad.settings.fontType.monospaced = Monoespacio +pad.settings.globalView = Vista global +pad.settings.language = Idioma: +pad.importExport.import_export = Importar/Exportar +pad.importExport.import = Subir cualquier texto o documento +pad.importExport.successful = ¡Operación exitosa! +; Fuzzy +pad.importExport.export = Exporta el pad actual como +pad.importExport.exporthtml = HTML +pad.importExport.exportplain = Texto plano +pad.importExport.exportword = Microsoft Word +pad.importExport.exportpdf = PDF +pad.importExport.exportopen = ODF (Open Document Format) +pad.importExport.exportdokuwiki = DokuWiki +pad.modals.connected = Conectado. +pad.modals.reconnecting = Reconectando a tu pad.. +pad.modals.forcereconnect = Reconexión forzosa +pad.modals.uderdup = Abrir en otra ventana +pad.modals.userdup.explanation = Este pad parece estar abierto en más de una ventana de tu navegador. +pad.modals.userdup.advice = Reconectar para usar esta ventana. +pad.modals.unauth = No autorizado. +pad.modals.unauth.explanation = Los permisos han cambiado mientras estabas viendo esta página. Intenta reconectar de nuevo. +pad.modals.looping = Desconectado. +pad.modals.looping.explanation = Estamos teniendo problemas con la sincronización en el servidor. +pad.modals.looping.cause = Quizás su conexión fluya a través de un proxy o un cortafuegos incompatible. +pad.modals.initsocketfail = Servidor incalcanzable. +pad.modals.initsocketfail.explanation = No se pudo conectar al sevidor de sincronización. +pad.modals.initsocketfail.cause = Puede ser a causa de tu navegador o de una caída en tu conexión de Internet. +pad.modals.slowcommit = Desconectado. +pad.modals.slowcommit.explanation = El servidor no responde. +pad.modals.slowcommit.cause = Puede deberse a problemas con tu conexión de red. +pad.modals.deleted = Borrado. +pad.modals.deleted.explanation = Este pad ha sido borrado. +pad.modals.disconnected = Has sido desconectado. +pad.modals.disconnected.explanation = Se perdió la conexión con el servidor +pad.modals.disconnected.cause = El servidor podría no estar disponible. Contacte con nosotros si esto continúa sucediendo. +pad.share = Compatir el pad +pad.share.readonly = Sólo lectura +pad.share.link = Enlace +pad.share.emebdcode = Incrustar URL +pad.chat = Chat +pad.chat.title = Abrir el chat para este pad. +timeslider.pageTitle = {{appTitle}} Línea de tiempo +timeslider.toolbar.returnbutton = Volver al pad +timeslider.toolbar.authors = Autores: +timeslider.toolbar.authorsList = Sin autores +timeslider.exportCurrent = Exportar la versión actual como: diff --git a/src/locales/fi.ini b/src/locales/fi.ini new file mode 100644 index 000000000..cbaea8856 --- /dev/null +++ b/src/locales/fi.ini @@ -0,0 +1,49 @@ +; Exported from translatewiki.net +; Author: Nike +[fi] +index.newPad = Uusi muistio +index.createOpenPad = tai avaa muistio nimellä: +pad.toolbar.bold.title = Lihavointi (Ctrl-B) +pad.toolbar.italic.title = Kursivointi (Ctrl-I) +pad.toolbar.underline.title = Alleviivaus (Ctrl-U) +pad.toolbar.strikethrough.title = Yliviivaus +pad.toolbar.ol.title = Numeroitu lista +pad.toolbar.ul.title = Numeroimaton lista +pad.toolbar.indent.title = Sisennä +pad.toolbar.unindent.title = Ulonna +pad.toolbar.undo.title = Kumoa (Ctrl-Z) +pad.toolbar.redo.title = Tee uudelleen (Ctrl-Y) +pad.toolbar.clearAuthorship.title = Poista kirjoittavärit +pad.toolbar.import_export.title = Tuo tai vie eri muotoihin +pad.toolbar.savedRevision.title = Tallennetut versiot +pad.toolbar.settings.title = Asetukset +pad.toolbar.embed.title = Upota muistio +pad.toolbar.showusers.title = Näytä muistion käyttäjät +pad.colorpicker.save = Tallenna +pad.colorpicker.cancel = Peru +pad.loading = Ladataan… +pad.settings.padSettings = Muistion asetukset +pad.settings.myView = Oma näkymä +pad.settings.stickychat = Keskustelu aina näkyvissä +pad.settings.colorcheck = Kirjoittavärit +pad.settings.linenocheck = Rivinumerot +pad.settings.fontType = Kirjasintyyppi: +pad.settings.fontType.normal = normaali +pad.settings.fontType.monospaced = tasalevyinen +pad.settings.language = Kieli: +pad.importExport.import_export = Tuonti/vienti +pad.importExport.exporthtml = HTML +pad.importExport.exportplain = Muotoilematon teksti +pad.importExport.exportword = Microsoft Word +pad.importExport.exportpdf = PDF +pad.importExport.exportopen = ODF (Open Document Format) +pad.importExport.exportdokuwiki = DokuWiki +pad.modals.connected = Yhdistetty. +pad.modals.reconnecting = Herätellään yhteyttä muistioon... +pad.modals.forcereconnect = Pakota uudelleenyhdistäminen +pad.share = Jaa muistio +pad.share.readonly = Vain luku +pad.share.link = Linkki +pad.share.emebdcode = Upotusosoite +pad.chat = Keskustelu +timeslider.toolbar.returnbutton = Palaa muistioon diff --git a/src/locales/fr.ini b/src/locales/fr.ini index 5203f7fda..a80ff205b 100644 --- a/src/locales/fr.ini +++ b/src/locales/fr.ini @@ -1,7 +1,7 @@ +; Exported from translatewiki.net [fr] index.newPad = Nouveau Pad index.createOpenPad = ou créer/ouvrir un Pad intitulé - pad.toolbar.bold.title = Gras (Ctrl-B) pad.toolbar.italic.title = Italique (Ctrl-I) pad.toolbar.underline.title = Souligner (Ctrl-U) @@ -12,17 +12,15 @@ pad.toolbar.indent.title = Indenter pad.toolbar.unindent.title = Désindenter pad.toolbar.undo.title = Annuler (Ctrl-Z) pad.toolbar.redo.title = Rétablir (Ctrl-Y) -pad.toolbar.clearAuthorship.title = Effacer les couleurs identifant les auteurs +pad.toolbar.clearAuthorship.title = Effacer les couleurs identifiant les auteurs pad.toolbar.import_export.title = Importer/Exporter de/vers un format de fichier différent pad.toolbar.timeslider.title = Navigateur d'historique pad.toolbar.savedRevision.title = Versions enregistrées pad.toolbar.settings.title = Paramètres pad.toolbar.embed.title = Intégrer ce Pad pad.toolbar.showusers.title = Afficher les utilisateurs du Pad - pad.colorpicker.save = Sauver pad.colorpicker.cancel = Annuler - pad.loading = Chargement... pad.settings.padSettings = Paramètres du Pad pad.settings.myView = Ma vue @@ -31,14 +29,13 @@ pad.settings.colorcheck = Couleurs d'identification pad.settings.linenocheck = Numéros des lignes pad.settings.fontType = Type de police: pad.settings.fontType.normal = Normal -pad.settings.fontType.monospaced = Monospace +pad.settings.fontType.monospaced = Monospace pad.settings.globalView = Vue d'ensemble pad.settings.language = Langue: - pad.importExport.import_export = Importer/Exporter pad.importExport.import = Charger un texte ou un document pad.importExport.successful = Traitement effectué! - +; Fuzzy pad.importExport.export = Exporter ce Pad vers pad.importExport.exporthtml = HTML pad.importExport.exportplain = Texte brut @@ -46,7 +43,6 @@ pad.importExport.exportword = Microsoft Word pad.importExport.exportpdf = PDf pad.importExport.exportopen = ODF (Open Document Format) pad.importExport.exportdokuwiki = DokuWiki - pad.modals.connected = Connecté. pad.modals.reconnecting = Reconnexion vers votre Pad... pad.modals.forcereconnect = Forcer la reconnexion. @@ -60,7 +56,7 @@ pad.modals.looping.explanation = Nous éprouvons un problème de communication a pad.modals.looping.cause = Il est possible que leur connection soit protégée par un pare-feu incompatible ou un serveur proxy incompatible. pad.modals.initsocketfail = Le serveur est introuvable. pad.modals.initsocketfail.explanation = Impossible de se connecter au serveur de synchronisation. -pad.modals.initsocketfail.cause = La cause de ce problème peut être liée à votre fureteur web. +pad.modals.initsocketfail.cause = La cause de ce problème peut être liée à votre fureteur web. pad.modals.slowcommit = Disconnected. Déconnecté pad.modals.slowcommit.explanation = Le serveur ne répond pas. pad.modals.slowcommit.cause = La cause de ce problème peut être liée à une erreur de connectivité du réseau. @@ -69,18 +65,14 @@ pad.modals.deleted.explanation = Ce Pad a été supprimé. pad.modals.disconnected = Vous avez été déconnecté. pad.modals.disconnected.explanation = La connexion au serveur a échoué. pad.modals.disconnected.cause = Ce serveur est possiblement hors-ligne. Veuillez nous joindre si le problème persiste. - pad.share = Partager ce Pad pad.share.readonly = Lecture seule -pad.share.link = Lien +pad.share.link = Lien pad.share.emebdcode = Lien à intégrer - pad.chat = Messagerie pad.chat.title = Ouvrir la messagerie liée au Pad. - timeslider.pageTitle = {{appTitle}} Curseur temporel timeslider.toolbar.returnbutton = Retour à ce Pad. timeslider.toolbar.authors = Auteurs: timeslider.toolbar.authorsList = Aucun auteurs timeslider.exportCurrent = Exporter version actuelle vers: - diff --git a/src/locales/nl.ini b/src/locales/nl.ini new file mode 100644 index 000000000..87eaeb13e --- /dev/null +++ b/src/locales/nl.ini @@ -0,0 +1,79 @@ +; Exported from translatewiki.net +; Author: Siebrand +[nl] +index.newPad = Nieuw pad +index.createOpenPad = Maak of open pad met de naam: +pad.toolbar.bold.title = Vet (Ctrl-B) +pad.toolbar.italic.title = Cursief (Ctrl-I) +pad.toolbar.underline.title = Onderstrepen (Ctrl-U) +pad.toolbar.strikethrough.title = Doorhalen +pad.toolbar.ol.title = Geordende lijst +pad.toolbar.ul.title = Ongeordende lijst +pad.toolbar.indent.title = Inspringen +pad.toolbar.unindent.title = Inspringing verkleinen +pad.toolbar.undo.title = Ongedaan maken (Ctrl-Z) +pad.toolbar.redo.title = Opnieuw uitvoeren (Ctrl-Y) +pad.toolbar.clearAuthorship.title = Kleuren auteurs wissen +pad.toolbar.import_export.title = Naar/van andere opmaak exporteren/importeren +pad.toolbar.timeslider.title = Tijdlijn +pad.toolbar.savedRevision.title = Opgeslagen versies +pad.toolbar.settings.title = Instellingen +pad.toolbar.embed.title = Pad insluiten +pad.toolbar.showusers.title = Gebruikers van dit pad weergeven +pad.colorpicker.save = Opslaan +pad.colorpicker.cancel = Annuleren +pad.loading = Bezig met laden… +pad.settings.padSettings = Padinstellingen +pad.settings.myView = Mijn overzicht +pad.settings.stickychat = Chat altijd zichtbaar +pad.settings.colorcheck = Kleuren auteurs +pad.settings.linenocheck = Regelnummers +pad.settings.fontType = Lettertype: +pad.settings.fontType.normal = Normaal +pad.settings.fontType.monospaced = Monospace +pad.settings.globalView = Globaal overzicht +pad.settings.language = Taal: +pad.importExport.import_export = Importeren/exporteren +pad.importExport.import = Upload een tekstbestand of document +pad.importExport.successful = Afgerond +; Fuzzy +pad.importExport.export = Huidige pad exporteren als +pad.importExport.exporthtml = HTML +pad.importExport.exportplain = Tekst zonder opmaak +pad.importExport.exportword = Microsoft Word +pad.importExport.exportpdf = PDF +pad.importExport.exportopen = ODF (Open Document Format) +pad.importExport.exportdokuwiki = DokuWiki +pad.modals.connected = Verbonden. +pad.modals.reconnecting = Opnieuw verbinding maken met uw pad... +pad.modals.forcereconnect = Opnieuw verbinden +pad.modals.uderdup = Openen in ander venster +pad.modals.userdup.explanation = Dit pad is meer dan één keer geopend in een browservenster op deze computer. +pad.modals.userdup.advice = Opnieuw verbinden en dit venster gebruiken. +pad.modals.unauth = Niet toegestaan +pad.modals.unauth.explanation = Uw rechten zijn gewijzigd terwijl u de pagina aan het bekijken was. Probeer opnieuw te verbinden. +pad.modals.looping = Verbinding verbroken. +pad.modals.looping.explanation = Er is een probleem opgetreden tijdens de communicatie met de synchronisatieserver. +pad.modals.looping.cause = Mogelijk gebruikt de server een niet compatibele firewall of proxy server. +pad.modals.initsocketfail = Server is niet bereikbaar. +pad.modals.initsocketfail.explanation = Het was niet mogelijk te verbinden met de synchronisatieserver. +pad.modals.initsocketfail.cause = Mogelijk komt dit door uw browser of internetverbinding. +pad.modals.slowcommit = Verbinding verbroken. +pad.modals.slowcommit.explanation = De server reageert niet. +pad.modals.slowcommit.cause = Dit komt mogelijk door netwerkproblemen. +pad.modals.deleted = Verwijderd. +pad.modals.deleted.explanation = Dit pad is verwijderd. +pad.modals.disconnected = Uw verbinding is verbroken. +pad.modals.disconnected.explanation = De verbinding met de server is verbroken +pad.modals.disconnected.cause = De server is mogelijk niet beschikbaar. Stel alstublieft de beheerder op de hoogte. +pad.share = Pad delen +pad.share.readonly = Alleen-lezen +pad.share.link = Verwijzing +pad.share.emebdcode = URL insluiten +pad.chat = Chatten +pad.chat.title = Chat voor dit pad opnenen +timeslider.pageTitle = Tijdlijn voor {{appTitle}} +timeslider.toolbar.returnbutton = Terug naar pad +timeslider.toolbar.authors = Auteurs: +timeslider.toolbar.authorsList = Geen auteurs +timeslider.exportCurrent = Huidige versie exporteren als: diff --git a/src/node/hooks/express/tests.js b/src/node/hooks/express/tests.js index 7921da5af..94cd5fb62 100644 --- a/src/node/hooks/express/tests.js +++ b/src/node/hooks/express/tests.js @@ -1,5 +1,6 @@ -var path = require("path"); -var fs = require("fs"); +var path = require("path") + , npm = require("npm") + , fs = require("fs"); exports.expressCreateServer = function (hook_name, args, cb) { args.app.get('/tests/frontend/specs_list.js', function(req, res){ @@ -17,7 +18,7 @@ exports.expressCreateServer = function (hook_name, args, cb) { } subPath = subPath.split("?")[0]; - var filePath = path.normalize(__dirname + "/../../../../tests/frontend/") + var filePath = path.normalize(npm.root + "/../tests/frontend/") filePath += subPath.replace("..", ""); return filePath; } diff --git a/src/node/hooks/i18n.js b/src/node/hooks/i18n.js index 6238f2cbd..4d42de048 100644 --- a/src/node/hooks/i18n.js +++ b/src/node/hooks/i18n.js @@ -1,12 +1,15 @@ -var Globalize = require('globalize') +var languages = require('languages') , fs = require('fs') , path = require('path') , express = require('express') var localesPath = __dirname+"/../../locales"; -var localeIndex = '[*]\r\n@import url(locales/en.ini)\r\n'; -exports.availableLangs = {en: 'English'}; +// Serve English strings directly with /locales.ini +var localeIndex = fs.readFileSync(localesPath+'/en.ini')+'\r\n'; + +// add language base 'en' to availableLangs +exports.availableLangs = {en: languages.getLanguageInfo('en')} fs.readdir(localesPath, function(er, files) { files.forEach(function(locale) { @@ -16,9 +19,8 @@ fs.readdir(localesPath, function(er, files) { // build locale index localeIndex += '['+locale+']\r\n@import url(locales/'+locale+'.ini)\r\n' - require('globalize/lib/cultures/globalize.culture.'+locale+'.js') - var culture = Globalize.cultures[locale]; - exports.availableLangs[culture.name] = culture.nativeName; + // add info language {name, nativeName, direction} to availableLangs + exports.availableLangs[locale]=languages.getLanguageInfo(locale); }) }) @@ -30,4 +32,4 @@ exports.expressCreateServer = function(n, args) { res.send(localeIndex); }) -} \ No newline at end of file +} diff --git a/src/node/padaccess.js b/src/node/padaccess.js index 4388ab946..d87809149 100644 --- a/src/node/padaccess.js +++ b/src/node/padaccess.js @@ -7,7 +7,7 @@ module.exports = function (req, res, callback) { // FIXME: Why is this ever undefined?? if (req.cookies === undefined) req.cookies = {}; - securityManager.checkAccess(req.params.pad, req.cookies.sessionid, req.cookies.token, req.cookies.password, function(err, accessObj) { + securityManager.checkAccess(req.params.pad, req.cookies.sessionID, req.cookies.token, req.cookies.password, function(err, accessObj) { if(ERR(err, callback)) return; //there is access, continue diff --git a/src/package.json b/src/package.json index bbad0e7a2..8c95c4d34 100644 --- a/src/package.json +++ b/src/package.json @@ -36,7 +36,7 @@ "tinycon" : "0.0.1", "underscore" : "1.3.1", "unorm" : "1.0.0", - "globalize" : "0.1.1" + "languages" : "0.1.1" }, "bin": { "etherpad-lite": "./node/server.js" }, "devDependencies": { @@ -46,5 +46,5 @@ "engines" : { "node" : ">=0.6.0", "npm" : ">=1.0" }, - "version" : "1.2.0" + "version" : "1.2.1" } diff --git a/src/static/js/l10n.js b/src/static/js/l10n.js index e2584cc4c..ef8218d3e 100644 --- a/src/static/js/l10n.js +++ b/src/static/js/l10n.js @@ -131,7 +131,7 @@ document.webL10n = (function(window, document, undefined) { // token expressions var reBlank = /^\s*|\s*$/; - var reComment = /^\s*#|^\s*$/; + var reComment = /^\s*;|^\s*$/;// Use ; for comments! var reSection = /^\s*\[(.*)\]\s*$/; var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; // TODO: escape EOLs with '\' @@ -902,7 +902,7 @@ document.webL10n = (function(window, document, undefined) { // browser-specific startup if (document.addEventListener) { // modern browsers and IE9+ document.addEventListener('DOMContentLoaded', function() { - var lang = document.documentElement.lang || navigator.language; + var lang = document.documentElement.lang || navigator.language || navigator.userLanguage || 'en'; loadLocale(lang, translateFragment); }, false); } else if (window.attachEvent) { // IE8 and before (= oldIE) @@ -977,7 +977,7 @@ document.webL10n = (function(window, document, undefined) { // startup for IE<9 window.attachEvent('onload', function() { gTextProp = document.body.textContent ? 'textContent' : 'innerText'; - var lang = document.documentElement.lang || window.navigator.userLanguage; + var lang = document.documentElement.lang || navigator.language || navigator.userLanguage || 'en'; loadLocale(lang, translateFragment); }); } diff --git a/src/static/js/linestylefilter.js b/src/static/js/linestylefilter.js index c6434b6c2..e6fbc2096 100644 --- a/src/static/js/linestylefilter.js +++ b/src/static/js/linestylefilter.js @@ -259,7 +259,7 @@ linestylefilter.getRegexpFilter = function(regExp, tag) linestylefilter.REGEX_WORDCHAR = /[\u0030-\u0039\u0041-\u005A\u0061-\u007A\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF\u0100-\u1FFF\u3040-\u9FFF\uF900-\uFDFF\uFE70-\uFEFE\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFDC]/; -linestylefilter.REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/\\?=&#;()$]/.source + '|' + linestylefilter.REGEX_WORDCHAR.source + ')'); +linestylefilter.REGEX_URLCHAR = new RegExp('(' + /[-:@a-zA-Z0-9_.,~%+\/\\?=&#!;()$]/.source + '|' + linestylefilter.REGEX_WORDCHAR.source + ')'); linestylefilter.REGEX_URL = new RegExp(/(?:(?:https?|s?ftp|ftps|file|smb|afp|nfs|(x-)?man|gopher|txmt):\/\/|mailto:|www\.)/.source + linestylefilter.REGEX_URLCHAR.source + '*(?![:.,;])' + linestylefilter.REGEX_URLCHAR.source, 'g'); linestylefilter.getURLFilter = linestylefilter.getRegexpFilter( linestylefilter.REGEX_URL, 'url'); diff --git a/src/templates/admin/settings.html b/src/templates/admin/settings.html index 880f0eb17..c4f505788 100644 --- a/src/templates/admin/settings.html +++ b/src/templates/admin/settings.html @@ -23,8 +23,8 @@

Etherpad Lite Settings

- Example production settings template - Example development settings template + Example production settings template + Example development settings template diff --git a/src/templates/index.html b/src/templates/index.html index c1214007f..9fd33a26a 100644 --- a/src/templates/index.html +++ b/src/templates/index.html @@ -33,6 +33,15 @@ + + +