Commit 76bd25ac authored by Marcel Klehr's avatar Marcel Klehr

Merge branch 'release/1.2.12'

Conflicts:
	README.md
parents 4ceb2c2e b9cc91e6
# 1.2.12
* NEW: Add explanations for more disconnect scenarios
* NEW: export sessioninfos so plugins can access it
* NEW: pass pad in postAceInit hook
* NEW: Add trustProxy setting. ALlows to make ep use X-forwarded-for as remoteAddress
* NEW: userLeave hook (UNDOCUMENTED)
* NEW: Plural macro for translations
* NEW: backlinks to main page in Admin pages
* NEW: New translations from translatewiki.net
* SECURITY FIX: Filter author data sent to clients
* FIX: Never keep processing a changeset if it's corrupted
* FIX: Some client-side performance fixes for webkit browsers
* FIX: Only execute listAllPads query on demand (not on start-up)
* FIX: HTML import (don't crash on malformed or blank HTML input; strip title out of html during import)
* FIX: check if uploaded file only contains ascii chars when abiword disabled
* FIX: Plugin search in /admin/plugins
* FIX: Don't create new pad if a non-existant read-only pad is accessed
* FIX: Drop messages from unknown connections (would lead to a crash after a restart)
* FIX: API: fix createGroupFor endpoint, if mapped group is deleted
* FIX: Import form for other locales
* FIX: Don't stop processing changeset queue if there is an error
* FIX: Caret movement. Chrome detects blank rows line heights as incorrect
* FIX: allow colons in password
* FIX: Polish logging of client-side errors on the server
* FIX: Username url param
* FIX: Make start script POSIX ompatible
# 1.2.11
* NEW: New Hook for outer_ace dynamic css manager and author style hook
* NEW: Bump log4js for improved logging
......
......@@ -2,11 +2,11 @@
(Please talk to people on the mailing list before you change this page, see our section on [how to get in touch](https://github.com/ether/etherpad-lite#get-in-touch))
## Important note for pull requests
**Pull requests should issued against the develop branch**. We never pull directly into master.
**Pull requests should be issued against the develop branch**. We never pull directly into master.
**Our goal is to iterate in small steps. Release often, release early. Evolution instead of a revolution**
## General goals of Etherpad Lite
## General goals of Etherpad
To make sure everybody is going in the same direction:
* easy to install for admins and easy to use for people
* easy to integrate into other apps, but also usable as standalone
......@@ -63,3 +63,6 @@ The docs are in the `doc/` folder in the git repository, so people can easily fi
Documentation should be kept up-to-date. This means, whenever you add a new API method, add a new hook or change the database model, pack the relevant changes to the docs in the same pull request.
You can build the docs e.g. produce html, using `make docs`. At some point in the future we will provide an online documentation. The current documentation in the github wiki should always reflect the state of `master` (!), since there are no docs in master, yet.
## Testing
Front-end tests are found in the `tests/frontend/` folder in the repository. Run them by pointing your browser to `<yourdomainhere>/tests/frontend`.
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
......@@ -187,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2012 THE ETHERPAD FOUNDATION
Copyright 2013 THE ETHERPAD FOUNDATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
......
......@@ -15,7 +15,8 @@ There's also a full-featured plugin framework, allowing you to easily add your o
Finally, Etherpad comes with translations into most languages! Users are automatically delivered the correct language for their local settings.
**Visit [beta.etherpad.org](http://beta.etherpad.org) to test it live. Hosted by [Joyent](http://joyent.com)**
**Visit [beta.etherpad.org](http://beta.etherpad.org) to test it live.**
Also, check out the **[FAQ](https://github.com/ether/etherpad-lite/wiki/FAQ)**, really!
......@@ -51,13 +52,13 @@ Update to the latest version with `git pull origin`, then run `bin\installOnWind
You'll need gzip, git, curl, libssl develop libraries, python and gcc.
*For Debian/Ubuntu*: `apt-get install gzip git-core curl python libssl-dev pkg-config build-essential`
*For Fedora/CentOS*: `yum install gzip git-core curl python openssl-devel && yum groupinstall "Development Tools"`
*For FreeBSD*: `portinstall node node, npm and git (optional)`
*For FreeBSD*: `portinstall node, npm, git (optional)`
Additionally, you'll need [node.js](http://nodejs.org) installed, Ideally the latest stable version, be careful of installing nodejs from apt.
**As any user (we recommend creating a separate user called etherpad-lite):**
**As any user (we recommend creating a separate user called etherpad):**
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`
1. Move to a folder where you want to install Etherpad. 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 <http://127.0.0.1:9001> in your browser.
......
......@@ -67,4 +67,4 @@ mv etherpad-lite-win.zip $START_FOLDER
echo "clean up..."
rm -rf /tmp/etherpad-lite-win
echo "Finished. You can find the zip in the Etherpad Lite root folder, it's called etherpad-lite-win.zip"
echo "Finished. You can find the zip in the Etherpad root folder, it's called etherpad-lite-win.zip"
......@@ -337,7 +337,7 @@ function convertPad(padId, callback)
var oldName2newName = {};
//replace the authors with generated authors
// we need to do that cause etherpad saves pad local authors, etherpad lite uses them global
// we need to do that cause where the original etherpad saves pad local authors, the new (lite) etherpad uses them global
for(var i in apool.numToAttrib)
{
var key = apool.numToAttrib[i][0];
......
......@@ -8,7 +8,7 @@ cmd /C node -e "" || ( echo "Please install node.js ( http://nodejs.org )" && ex
echo _
echo Checking node version...
set check_version="if(['8','10'].indexOf(process.version.split('.')[1].toString()) === -1) { console.log('You are running a wrong version of Node. Etherpad Lite requires v0.8.x or v0.10.x'); process.exit(1) }"
set check_version="if(['8','10'].indexOf(process.version.split('.')[1].toString()) === -1) { console.log('You are running a wrong version of Node. Etherpad requires v0.8.x or v0.10.x'); process.exit(1) }"
cmd /C node -e %check_version% || exit /B 1
echo _
......
......@@ -2,7 +2,7 @@ This is the new load testing file: https://bitbucket.org/rbraakman/etherpad-stre
BELOW is the original load testing file.
This load tester is extremely useful for testing how many dormant clients can connect to etherpad lite.
This load tester is extremely useful for testing how many dormant clients can connect to etherpad.
TODO:
Emulate characters being typed into a pad
......@@ -10,7 +10,7 @@ Emulate characters being typed into a pad
HOW TO USE (from @mjd75) proper formatting at: https://github.com/ether/etherpad-lite/issues/360
Server 1:
Installed Node.js (etc), EtherPad Lite and MySQL
Installed Node.js (etc), EtherPad and MySQL
Server 2:
Installed Xvfb and PhantomJS
......
......@@ -11,17 +11,17 @@ fi
ignoreRoot=0
for ARG in $*
do
if [ $ARG == '--root' ]; then
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-Lite as root!"
echo "Please type 'Etherpad Lite rocks my socks' or supply the '--root' argument if you still want to start it as root"
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 Lite rocks my socks" ]
if [ ! $rocks = "Etherpad rocks my socks" ]
then
echo "Your input was incorrect"
exit 1
......
......@@ -126,6 +126,7 @@ Called from: src/static/js/pad.js
Things in context:
1. ace - the ace object that is applied to this editor.
2. pad - the pad object of the current pad.
There doesn't appear to be any example available of this particular hook being used, but it gets fired after the editor is all set up.
......
......@@ -7,7 +7,7 @@ The API gives another web application control of the pads. The basic functions a
* grant/forbid access to pads
* get/set pad content
The API is designed in a way, so you can reuse your existing user system with their permissions, and map it to etherpad lite. Means: Your web application still has to do authentication, but you can tell etherpad lite via the api, which visitors should get which permissions. This allows etherpad lite to fit into any web application and extend it with real-time functionality. You can embed the pads via an iframe into your website.
The API is designed in a way, so you can reuse your existing user system with their permissions, and map it to Etherpad. Means: Your web application still has to do authentication, but you can tell Etherpad via the api, which visitors should get which permissions. This allows Etherpad to fit into any web application and extend it with real-time functionality. You can embed the pads via an iframe into your website.
Take a look at [HTTP API client libraries](https://github.com/ether/etherpad-lite/wiki/HTTP-API-client-libraries) to see if a library in your favorite language.
......@@ -103,7 +103,7 @@ Responses are valid JSON in the following format:
### Authentication
Authentication works via a token that is sent with each request as a post parameter. There is a single token per Etherpad-Lite deployment. This token will be random string, generated by Etherpad-Lite at the first start. It will be saved in APIKEY.txt in the root folder of Etherpad Lite. Only Etherpad Lite and the requesting application knows this key. Token management will not be exposed through this API.
Authentication works via a token that is sent with each request as a post parameter. There is a single token per Etherpad deployment. This token will be random string, generated by Etherpad at the first start. It will be saved in APIKEY.txt in the root folder of Etherpad. Only Etherpad and the requesting application knows this key. Token management will not be exposed through this API.
### Node Interoperability
......@@ -132,7 +132,7 @@ creates a new group
#### createGroupIfNotExistsFor(groupMapper)
* API >= 1
this functions helps you to map your application group ids to etherpad lite group ids
this functions helps you to map your application group ids to Etherpad group ids
*Example returns:*
* `{code: 0, message:"ok", data: {groupID: g.s8oes9dhwrvt0zif}}`
......@@ -188,7 +188,7 @@ creates a new author
#### createAuthorIfNotExistsFor(authorMapper [, name])
* API >= 1
this functions helps you to map your application author ids to etherpad lite author ids
this functions helps you to map your application author ids to Etherpad author ids
*Example returns:*
* `{code: 0, message:"ok", data: {authorID: "a.s8oes9dhwrvt0zif"}}`
......
# Custom static files
Etherpad Lite allows you to include your own static files in the browser, by modifying the files in `static/custom`.
Etherpad allows you to include your own static files in the browser, by modifying the files in `static/custom`.
* `index.js` Javascript that'll be run in `/`
* `index.css` Stylesheet affecting `/`
......
......@@ -2,7 +2,7 @@
<!-- type=misc -->
The goal of this documentation is to comprehensively explain Etherpad-Lite,
The goal of this documentation is to comprehensively explain Etherpad,
both from a reference as well as a conceptual point of view.
Where appropriate, property types, method arguments, and the arguments
......
# About this folder
We put all documentations we found about the old Etherpad together in this folder. Most of this is still valid for Etherpad Lite
\ No newline at end of file
We put all documentations we found about the original Etherpad together in this folder. Most of this is still valid for the current (node.js based) Etherpad.
\ No newline at end of file
# Localization
Etherpad lite provides a multi-language user interface, that's apart from your users' content, so users from different countries can collaborate on a single document, while still having the user interface displayed in their mother tongue.
Etherpad provides a multi-language user interface, that's apart from your users' content, so users from different countries can collaborate on a single document, while still having the user interface displayed in their mother tongue.
## Translating
......@@ -19,9 +19,9 @@ Translations will be send back to us regularly and will eventually appear in the
`/src/locales` contains files for all supported languages which contain the translated strings. Translation files are simple `*.json` files and look like this:
```json
{ "pad.modals.connected": "Connecté."
, "pad.modals.uderdup": "Ouvrir dans une nouvelle fenêtre."
, "pad.toolbar.unindent.title": "Désindenter"
{ "pad.modals.connected": "Connecté."
, "pad.modals.uderdup": "Ouvrir dans une nouvelle fenêtre."
, "pad.toolbar.unindent.title": "Dèsindenter"
, "pad.toolbar.undo.title": "Annuler (Ctrl-Z)"
, "timeslider.pageTitle": "{{appTitle}} Curseur temporel"
, ...
......@@ -50,7 +50,7 @@ to:
<option data-l10n-id="ep_heading.h1" value="0"></option>
```
In the javascript files of your plugin, chaneg all hardcoded messages/strings...
In the javascript files of your plugin, change all hardcoded messages/strings...
from:
```js
......@@ -75,7 +75,7 @@ alert(window._('pad.chat'));
*ep_your-plugin/locales/es.json*
```
{ "ep_your-plugin.h1": "Título 1"
{ "ep_your-plugin.h1": "Título 1"
}
```
......@@ -83,7 +83,7 @@ Everytime the http server is started, it will auto-detect your messages and merg
### Overwrite core messages
You can overwrite Etherpad Lite's core messages in your plugin's locale files.
You can overwrite Etherpad's core messages in your plugin's locale files.
For example, if you want to replace `Chat` with `Notes`, simply add...
*ep_your-plugin/locales/en.json*
......@@ -91,4 +91,4 @@ For example, if you want to replace `Chat` with `Notes`, simply add...
{ "ep_your-plugin.h1": "Heading 1"
, "pad.chat": "Notes"
}
```
\ No newline at end of file
```
# Plugins
Etherpad-Lite allows you to extend its functionality with plugins. A plugin registers hooks (functions) for certain events (thus certain features) in Etherpad-lite to execute its own functionality based on these events.
Etherpad allows you to extend its functionality with plugins. A plugin registers hooks (functions) for certain events (thus certain features) in Etherpad-lite to execute its own functionality based on these events.
Publicly available plugins can be found in the npm registry (see <http://npmjs.org>). Etherpad-lite's naming convention for plugins is to prefix your plugins with `ep_`. So, e.g. it's `ep_flubberworms`. Thus you can install plugins from npm, using `npm install ep_flubberworm` in etherpad-lite's root directory.
......@@ -104,7 +104,7 @@ Your plugin must also contain a [package definition file](http://npmjs.org/doc/j
```
## Templates
If your plugin adds or modifies the front end HTML (e.g. adding buttons or changing their functions), you should put the necessary HTML code for such operations in `templates/`, in files of type ".ejs", since Etherpad-Lite uses EJS for HTML templating. See the following link for more information about EJS: <https://github.com/visionmedia/ejs>.
If your plugin adds or modifies the front end HTML (e.g. adding buttons or changing their functions), you should put the necessary HTML code for such operations in `templates/`, in files of type ".ejs", since Etherpad uses EJS for HTML templating. See the following link for more information about EJS: <https://github.com/visionmedia/ejs>.
## Writing and running front-end tests for your plugin
......
......@@ -2,12 +2,12 @@
<html lang="en">
<head>
<meta charset="utf-8">
<title>__SECTION__ - Etherpad Lite v__VERSION__ Manual &amp; Documentation</title>
<title>__SECTION__ - Etherpad v__VERSION__ Manual &amp; Documentation</title>
<link rel="stylesheet" href="assets/style.css">
</head>
<body class="apidoc" id="api-section-__FILENAME__">
<header id="header">
<h1>Etherpad-Lite v__VERSION__ Manual &amp; Documentation</h1>
<h1>Etherpad v__VERSION__ Manual &amp; Documentation</h1>
</header>
<div id="toc">
......
......@@ -78,7 +78,10 @@
/* Require authorization by a module, or a user with is_admin set, see below. */
"requireAuthorization": false,
/*when you use NginX or another proxy/ load-balancer set this to true*/
"trustProxy": false,
/* Users for basic authentication. is_admin = true gives access to /admin.
If you do not uncomment this, /admin will not be available! */
/*
......
......@@ -21,7 +21,7 @@
"pad.toolbar.timeslider.title": "Eslizador de tiempu",
"pad.toolbar.savedRevision.title": "Guardar revisi\u00f3n",
"pad.toolbar.settings.title": "Configuraci\u00f3n",
"pad.toolbar.embed.title": "Incrustar esti bloc",
"pad.toolbar.embed.title": "Compartir ya incrustar esti bloc",
"pad.toolbar.showusers.title": "Amosar los usuarios d'esti bloc",
"pad.colorpicker.save": "Guardar",
"pad.colorpicker.cancel": "Encaboxar",
......@@ -101,8 +101,7 @@
"timeslider.month.october": "d'ochobre",
"timeslider.month.november": "de payares",
"timeslider.month.december": "d'avientu",
"timeslider.unnamedauthor": "{{num}} autor an\u00f3nimu",
"timeslider.unnamedauthors": "{{num}} autores an\u00f3nimos",
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor an\u00f3nimu, other: autores an\u00f3nimos]}",
"pad.savedrevs.marked": "Esta revisi\u00f3n marcose como revisi\u00f3n guardada",
"pad.userlist.entername": "Escribi'l to nome",
"pad.userlist.unnamed": "ensin nome",
......
......@@ -101,7 +101,6 @@
"timeslider.month.october": "Oktyabr",
"timeslider.month.november": "Noyabr",
"timeslider.month.december": "Dekabr",
"timeslider.unnamedauthor": "{{num}} ads\u0131z m\u00fc\u0259llif",
"timeslider.unnamedauthors": "{{num}} ads\u0131z m\u00fc\u0259llifl\u0259r",
"pad.savedrevs.marked": "Bu versiya indi yadda\u015fa saxlanm\u0131\u015f kimi ni\u015fanland\u0131",
"pad.userlist.entername": "Ad\u0131n\u0131z\u0131 daxil et",
......
......@@ -24,7 +24,7 @@
"pad.toolbar.timeslider.title": "Istor dinamek",
"pad.toolbar.savedRevision.title": "Doareo\u00f9 enrollet",
"pad.toolbar.settings.title": "Arventenno\u00f9",
"pad.toolbar.embed.title": "Enframma\u00f1 ar pad-ma\u00f1",
"pad.toolbar.embed.title": "Ranna\u00f1 hag enframma\u00f1 ar pad-ma\u00f1",
"pad.toolbar.showusers.title": "Diskwelet implijerien ar Pad",
"pad.colorpicker.save": "Enrolla\u00f1",
"pad.colorpicker.cancel": "Nulla\u00f1",
......@@ -104,8 +104,7 @@
"timeslider.month.october": "Here",
"timeslider.month.november": "Du",
"timeslider.month.december": "Kerzu",
"timeslider.unnamedauthor": "{{niver}} aozer dianav",
"timeslider.unnamedauthors": "Aozerien dianav",
"timeslider.unnamedauthors": "{{num}} dianav {[plural(num) one: aozer, other: aozerien ]}",
"pad.savedrevs.marked": "Merket eo an adweladenn-ma\u00f1 evel adweladenn gwiriet",
"pad.userlist.entername": "Ebarzhit hoc'h anv",
"pad.userlist.unnamed": "dizanv",
......
......@@ -103,8 +103,7 @@
"timeslider.month.october": "Octubre",
"timeslider.month.november": "Novembre",
"timeslider.month.december": "Desembre",
"timeslider.unnamedauthor": "{{num}} autor sense nom",
"timeslider.unnamedauthors": "{{num}} autors sense noms",
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: autor, other: autors ]} sense nom",
"pad.savedrevs.marked": "Aquesta revisi\u00f3 est\u00e0 marcada ara com a revisi\u00f3 desada",
"pad.userlist.entername": "Introdu\u00efu el vostre nom",
"pad.userlist.unnamed": "sense nom",
......
{
"@metadata": {
"authors": [
"Jakubt",
"Jezevec",
"Leanes",
"Quinn"
]
},
"index.newPad": "Nov\u00fd Pad",
"index.createOpenPad": "nebo vytvo\u0159it/otev\u0159\u00edt Pad jm\u00e9nem:",
"index.newPad": "Zalo\u017e nov\u00fd Pad",
"index.createOpenPad": "nebo vytvo\u0159/otev\u0159i Pad s n\u00e1zvem:",
"pad.toolbar.bold.title": "Tu\u010dn\u00e9 (Ctrl-B)",
"pad.toolbar.italic.title": "Kurz\u00edva (Ctrl-I)",
"pad.toolbar.underline.title": "Podtr\u017een\u00ed (Ctrl-U)",
"pad.toolbar.underline.title": "Podtr\u017een\u00e9 (Ctrl-U)",
"pad.toolbar.strikethrough.title": "P\u0159eskrtnut\u00e9",
"pad.toolbar.ol.title": "\u010c\u00edslovan\u00fd seznam",
"pad.toolbar.ul.title": "Ne\u010d\u00edslovan\u00fd seznam",
......@@ -17,28 +19,28 @@
"pad.toolbar.unindent.title": "P\u0159edsazen\u00ed",
"pad.toolbar.undo.title": "Zp\u011bt (Ctrl-Z)",
"pad.toolbar.redo.title": "Opakovat (Ctrl-Y)",
"pad.toolbar.clearAuthorship.title": "Vymazat barvy autorstv\u00ed",
"pad.toolbar.clearAuthorship.title": "Vymazat barvy autor\u016f",
"pad.toolbar.import_export.title": "Importovat/Exportovat z/do jin\u00fdch form\u00e1t\u016f",
"pad.toolbar.timeslider.title": "Osa \u010dasu",
"pad.toolbar.timeslider.title": "\u010casov\u00e1 osa",
"pad.toolbar.savedRevision.title": "Ulo\u017eit revizi",
"pad.toolbar.settings.title": "Nastaven\u00ed",
"pad.toolbar.embed.title": "Um\u00edstit a nasd\u00edlet tento Pad",
"pad.toolbar.embed.title": "Sd\u00edlet a um\u00edstit tento Pad",
"pad.toolbar.showusers.title": "Zobrazit u\u017eivatele u tohoto Padu",
"pad.colorpicker.save": "Ulo\u017eit",
"pad.colorpicker.cancel": "Zru\u0161it",
"pad.loading": "Na\u010d\u00edt\u00e1n\u00ed...",
"pad.passwordRequired": "Pot\u0159ebuje\u0161 zadat heslo pro p\u0159\u00edstup k tomuto Padu",
"pad.permissionDenied": "Nem\u00e1\u0161 p\u0159\u00edstupov\u00e9 opr\u00e1vn\u011bn\u00ed k tomuto Padu",
"pad.wrongPassword": "Tv\u00e9 heslo je \u0161patn\u00e9",
"pad.passwordRequired": "Pro p\u0159\u00edstup k tomuto Padu je t\u0159eba zn\u00e1t heslo",
"pad.permissionDenied": "Nem\u00e1te opr\u00e1vn\u011bn\u00ed pro p\u0159\u00edstup k tomuto Padu",
"pad.wrongPassword": "Nespr\u00e1vn\u00e9 heslo",
"pad.settings.padSettings": "Nastaven\u00ed Padu",
"pad.settings.myView": "Vlastn\u00ed pohled",
"pad.settings.stickychat": "Chat v\u017edy na obrazovce",
"pad.settings.colorcheck": "Barvy autorstv\u00ed",
"pad.settings.colorcheck": "Barvy autor\u016f",
"pad.settings.linenocheck": "\u010c\u00edsla \u0159\u00e1dk\u016f",
"pad.settings.rtlcheck": "\u010c\u00edst obsah zprava doleva?",
"pad.settings.fontType": "Typ p\u00edsma:",
"pad.settings.fontType.normal": "Norm\u00e1ln\u00ed",
"pad.settings.fontType.monospaced": "Monospace",
"pad.settings.fontType.monospaced": "Nepropor\u010dn\u00ed",
"pad.settings.globalView": "Glob\u00e1ln\u00ed pohled",
"pad.settings.language": "Jazyk:",
"pad.importExport.import_export": "Import/Export",
......@@ -53,11 +55,11 @@
"pad.importExport.exportdokuwiki": "DokuWiki",
"pad.importExport.abiword.innerHTML": "Importovat m\u016f\u017ee\u0161 pouze prost\u00fd text nebo HTML form\u00e1tov\u00e1n\u00ed. Pro pokro\u010dilej\u0161\u00ed funkce importu, pros\u00edm, nainstaluj \u201e\u003Ca href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\"\u003Eabiword\u003C/a\u003E\u201c.",
"pad.modals.connected": "P\u0159ipojeno.",
"pad.modals.reconnecting": "Znovup\u0159ipojov\u00e1n\u00ed k tv\u00e9mu Padu\u2026",
"pad.modals.reconnecting": "Znovup\u0159ipojov\u00e1n\u00ed k Padu\u2026",
"pad.modals.forcereconnect": "Vynutit znovup\u0159ipojen\u00ed",
"pad.modals.userdup": "Otev\u0159eno v jin\u00e9m okn\u011b",
"pad.modals.userdup.explanation": "Zd\u00e1 se, \u017ee tento Pad je na tomto po\u010d\u00edta\u010di otev\u0159en ve v\u00edce ne\u017e jednom okn\u011b.",
"pad.modals.userdup.advice": "Pro pou\u017eit\u00ed tohoto okna se mus\u00ed\u0161 znovu p\u0159ipojit.",
"pad.modals.userdup.advice": "Pro pou\u017eit\u00ed tohoto okna je t\u0159eba se znovu p\u0159ipojit.",
"pad.modals.unauth": "Nem\u00e1te autorizaci",
"pad.modals.unauth.explanation": "Va\u0161e opr\u00e1vn\u011bn\u00ed se zm\u011bnila, zat\u00edmco jste si prohl\u00ed\u017eel/a toto okno. Zkuste se znovu p\u0159ipojit.",
"pad.modals.looping": "Odpojeno.",
......@@ -71,9 +73,9 @@
"pad.modals.slowcommit.cause": "M\u016f\u017ee to b\u00fdt zp\u016fsobeno probl\u00e9my s internetov\u00fdm p\u0159ipojen\u00edm.",
"pad.modals.deleted": "Odstran\u011bno.",
"pad.modals.deleted.explanation": "Tento Pad byl odebr\u00e1n.",
"pad.modals.disconnected": "Byl jsi odpojen.",
"pad.modals.disconnected": "Byl jste odpojen.",
"pad.modals.disconnected.explanation": "P\u0159ipojen\u00ed k serveru bylo p\u0159eru\u0161eno",
"pad.modals.disconnected.cause": "Server m\u016f\u017ee b\u00fdt nedostupn\u00fd. Pros\u00edm, upozorni n\u00e1s, pokud bude tento probl\u00e9m p\u0159etrv\u00e1vat.",
"pad.modals.disconnected.cause": "Server m\u016f\u017ee b\u00fdt nedostupn\u00fd. Pros\u00edme o upozorn\u011bn\u00ed, pokud by tento probl\u00e9m trval del\u0161\u00ed dobu.",
"pad.share": "Sd\u00edlet tento Pad",
"pad.share.readonly": "Jen pro \u010dten\u00ed",
"pad.share.link": "Odkaz",
......@@ -81,7 +83,7 @@
"pad.chat": "Chat",
"pad.chat.title": "Otev\u0159\u00edt chat tohoto Padu.",
"pad.chat.loadmessages": "Na\u010d\u00edst v\u00edce zpr\u00e1v",
"timeslider.pageTitle": "Osa \u010dasu {{appTitle}}",
"timeslider.pageTitle": "\u010casov\u00e1 osa {{appTitle}}",
"timeslider.toolbar.returnbutton": "N\u00e1vrat do Padu",
"timeslider.toolbar.authors": "Auto\u0159i:",
"timeslider.toolbar.authorsList": "Bez autor\u016f",
......@@ -102,15 +104,14 @@
"timeslider.month.october": "\u0159\u00edjen",
"timeslider.month.november": "listopad",
"timeslider.month.december": "prosinec",
"timeslider.unnamedauthor": "{{num}} nejmenovan\u00fd autor",
"timeslider.unnamedauthors": "{{num}} nejmenovan\u00fdch autor\u016f",
"timeslider.unnamedauthors": "{{num}} {[ plural(num) one: nejmenovan\u00fd Autor, few: nejmenovan\u00ed Auto\u0159i, other: nejmenovan\u00fdch Autor\u016f ]}",
"pad.savedrevs.marked": "Tato revize je nyn\u00ed ozna\u010dena jako ulo\u017een\u00e1",
"pad.userlist.entername": "Zadejte sv\u00e9 jm\u00e9no",
"pad.userlist.unnamed": "nejmenovan\u00fd",
"pad.userlist.guest": "Host",
"pad.userlist.deny": "Zak\u00e1zat",
"pad.userlist.approve": "Povolit",
"pad.editbar.clearcolors": "Odstranit autorsk\u00e9 barvy z cel\u00e9ho dokumentu?",
"pad.editbar.clearcolors": "Odstranit barvy autor\u016f z cel\u00e9ho dokumentu?",
"pad.impexp.importbutton": "Importovat",
"pad.impexp.importing": "Importov\u00e1n\u00ed\u2026",
"pad.impexp.confirmimport": "Import souboru p\u0159ep\u00ed\u0161e aktu\u00e1ln\u00ed text v padu. Opravdu chcete tuto akci prov\u00e9st?",
......
......@@ -23,7 +23,7 @@
"pad.toolbar.timeslider.title": "Timeslider",
"pad.toolbar.savedRevision.title": "Gem Revision",
"pad.toolbar.settings.title": "Indstillinger",
"pad.toolbar.embed.title": "Integrer denne pad",
"pad.toolbar.embed.title": "Del og integrer denne pad",
"pad.toolbar.showusers.title": "Vis brugere p\u00e5 denne pad",
"pad.colorpicker.save": "Gem",
"pad.colorpicker.cancel": "Afbryd",
......@@ -103,8 +103,7 @@
"timeslider.month.october": "oktober",
"timeslider.month.november": "november",
"timeslider.month.december": "december",
"timeslider.unnamedauthor": "{{num}} unavngiven forfatter",
"timeslider.unnamedauthors": "{{num}} unavngivne forfattere",
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: unavngiven forfatter, other: unavngivne forfattere]}",
"pad.savedrevs.marked": "Denne revision er nu markeret som en gemt revision",
"pad.userlist.entername": "Indtast dit navn",
"pad.userlist.unnamed": "ikke-navngivet",
......
......@@ -104,8 +104,7 @@
"timeslider.month.october": "Oktober",
"timeslider.month.november": "November",
"timeslider.month.december": "Dezember",
"timeslider.unnamedauthor": "{{num}} unbenannter Autor",
"timeslider.unnamedauthors": "{{num}} unbenannte Autoren",
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: unbenannter Autor, other: unbenannte Autoren ]}",
"pad.savedrevs.marked": "Diese Version wurde jetzt als gespeicherte Version gekennzeichnet",
"pad.userlist.entername": "Geben Sie Ihren Namen ein",
"pad.userlist.unnamed": "unbenannt",
......
......@@ -2,6 +2,7 @@
"@metadata": {
"authors": [
"Evropi",
"Geraki",
"Glavkos",
"Monopatis",
"Protnet"
......@@ -104,8 +105,7 @@
"timeslider.month.october": "\u039f\u03ba\u03c4\u03c9\u03b2\u03c1\u03af\u03bf\u03c5",
"timeslider.month.november": "\u039d\u03bf\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5",
"timeslider.month.december": "\u0394\u03b5\u03ba\u03b5\u03bc\u03b2\u03c1\u03af\u03bf\u03c5",
"timeslider.unnamedauthor": "{{num}} \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2 \u03c3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03ad\u03b1\u03c2",
"timeslider.unnamedauthors": "{{num}} \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03b9 \u03c3\u03c5\u03b3\u03b3\u03c1\u03b1\u03c6\u03b5\u03af\u03c2",
"timeslider.unnamedauthors": "{{num}} {[plural(num) one: \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b7\u03c2, other: \u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03b9 \u03c3\u03c5\u03bd\u03c4\u03ac\u03ba\u03c4\u03b5\u03c2]}",
"pad.savedrevs.marked": "\u0391\u03c5\u03c4\u03ae \u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7 \u03b5\u03c0\u03b9\u03c3\u03b7\u03bc\u03ac\u03bd\u03b8\u03b7\u03ba\u03b5 \u03c9\u03c2 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03bc\u03ad\u03bd\u03b7 \u03ad\u03ba\u03b4\u03bf\u03c3\u03b7",
"pad.userlist.entername": "\u0395\u03b9\u03c3\u03ac\u03b3\u03b5\u03c4\u03b5 \u03c4\u03bf \u03cc\u03bd\u03bf\u03bc\u03ac \u03c3\u03b1\u03c2",
"pad.userlist.unnamed": "\u03b1\u03bd\u03ce\u03bd\u03c5\u03bc\u03bf\u03c2",
......
{
"index.newPad": "New Pad",
"index.createOpenPad": "or create/open a Pad with the name:",
"pad.toolbar.bold.title": "Bold (Ctrl-B)",
"pad.toolbar.italic.title": "Italic (Ctrl-I)",
"pad.toolbar.underline.title": "Underline (Ctrl-U)",
......@@ -18,12 +19,15 @@
"pad.toolbar.settings.title": "Settings",
"pad.toolbar.embed.title": "Share and Embed this pad",
"pad.toolbar.showusers.title": "Show the users on this pad",
"pad.colorpicker.save": "Save",
"pad.colorpicker.cancel": "Cancel",
"pad.loading": "Loading...",
"pad.passwordRequired": "You need a password to access this pad",
"pad.permissionDenied": "You do not have permission to access this pad",
"pad.wrongPassword": "Your password was wrong",
"pad.settings.padSettings": "Pad Settings",
"pad.settings.myView": "My View",
"pad.settings.stickychat": "Chat always on screen",
......@@ -35,6 +39,7 @@
"pad.settings.fontType.monospaced": "Monospace",
"pad.settings.globalView": "Global View",
"pad.settings.language": "Language:",
"pad.importExport.import_export": "Import/Export",
"pad.importExport.import": "Upload any text file or document",
"pad.importExport.importSuccessful": "Successful!",
......@@ -45,29 +50,42 @@
"pad.importExport.exportpdf": "PDF",
"pad.importExport.exportopen": "ODF (Open Document Format)",
"pad.importExport.exportdokuwiki": "DokuWiki",
"pad.importExport.abiword.innerHTML": "You only can import from plain text or html formats. For more advanced import features please <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\">install abiword</a>.",
"pad.importExport.abiword.innerHTML": "You only can import from plain text or HTML formats. For more advanced import features please <a href=\"https://github.com/ether/etherpad-lite/wiki/How-to-enable-importing-and-exporting-different-file-formats-in-Ubuntu-or-OpenSuse-or-SLES-with-AbiWord\">install abiword</a>.",
"pad.modals.connected": "Connected.",
"pad.modals.reconnecting": "Reconnecting to your pad..",
"pad.modals.forcereconnect": "Force reconnect",
"pad.modals.userdup": "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 window instead.",
"pad.modals.unauth": "Not authorized",
"pad.modals.unauth.explanation": "Your permissions have changed while viewing this page. Try to reconnect.",
"pad.modals.looping": "Disconnected.",