in CryptDrive rechtsklicken und Vom Server löschen wählen. "
},
forget: {
q: "Was passiert, wenn ich mein Passwort vergesse?",
a: " Leider: Wenn wir dein Passwort zurückerstellen könnten, könnten wir auch Zugang zu deinen Daten selber haben. " +
- " Wenn du dein Passwort nicht registriert hast, und kann es auch nicht erinnern, kannst du vielleicht die vergangene Dokumente von deinem Browserverlauf zurück gewinnen. "
+ " Wenn du dein Passwort nicht aufgeschrieben und vergessen hast, kannst Du vielleicht die vergangenen Dokumente aus deinem Browserverlauf zurückgewinnen. "
},
change: {
q: "Was ist, wenn ich mein Passwort wechseln möchte?",
a: "Es ist aktuell nicht möglich, dein CryptPad Passwort zu wechseln, obwohl wir diese Funktion bald planen."
},
devices: {
- q: "Ich bin auf zwei Geräte eingeloggt und sehe zwei unterschiedliche CryptDrives. Wie ist das möglich?",
- a: "Es ist möglich, dass du zweimal derselben Name registriert hast, mit unterschiedlichen Passwörter." +
- " Weil der CyrptPad Server dicht mit deinem kryptografische Unterschrift identifiziert, es kann nicht dich verhindern, mit demselben Name einzuloggen." +
- " Somit hat jede Benutzerkonto ein einzigartiges Beutzername und Passwortkombination. " +
- " Angemeldete Benutzer können ihre Benutzername im oberen Teil der Einstellungsseite sehen."
+ q: "Ich bin auf zwei Geräten eingeloggt und sehe zwei unterschiedliche CryptDrives. Wie ist das möglich?",
+ a: "Es ist möglich, dass Du zweimal denselben Namen registriert hast, mit unterschiedlichen Passwörtern." +
+ " Weil der CyrptPad Server dich mit deiner kryptografischen Unterschrift und nicht mit deinem Namen identifiziert, kann er nicht verhindern, daß derselbe Name von mehreren verwendet wird." +
+ " Somit hat jede Benutzerkonto eine einzigartige Beutzername- und Passwortkombination. " +
+ " Angemeldete Benutzer können ihren Benutzernamen im oberen Teil der Einstellungsseite sehen."
},
folder: {
- q: "Kann ich meine ganze Ordnern in CryptDrive teilen?",
- a: "Wir arbeiten daran, eine Arbeitgruppenfunktion anzubieten, die Mitglieder erlauben würde, ganze Ordnern sowie alle Dokumente darin, zu teilen."
+ q: "Kann ich ganze Ordner in CryptDrive teilen?",
+ a: "Wir arbeiten daran, eine Arbeitgruppenfunktion anzubieten, die Mitgliedern erlauben würde, ganze Ordnern sowie alle Dokumente darin zu teilen."
},
feature: {
- q: "Könnt ihr diese Funktion hinzufügen, das ich brauche?",
- a: "Viele Funktionen existieren in CryptPad, weil Benutzern haben dafür gebeten." +
- " Unsere Kontaktseite gibt eine Liste de Methoden, um mit uns in Kontakt zu treten.
" +
+ q: "Könnt ihr diese eine Funktion hinzufügen, die ich brauche?",
+ a: "Viele Funktionen existieren in CryptPad, weil Benutzern darum gebeten haben." +
+ " Unsere Kontaktseite hat eine Liste der Möglichkeiten, wie man mit uns in Kontakt treten kann.
" +
- "Leider können wir aber nicht garantieren, dass wir alle Funktionen entwickeln, die Benutzern bitten." +
- " Wenn eine Funktion kritisch für ihre Organisation ist, kannst du Sponsor der Entwicklung dieser Funktion werden, und somit deren Realisierung sichern." +
+ "Leider können wir aber nicht garantieren, dass wir alle Funktionen entwickeln, um die Benutzer bitten." +
+ " Wenn eine Funktion kritisch für deine Organisation ist, kannst du Sponsor der Entwicklung dieser Funktion werden, und somit deren Realisierung sichern." +
" Bitte kontaktiere sales@cryptpad.fr für mehr Informationen.
" +
- "Auch wenn du nicht die Entwicklung einer Funktion sponsorieren kannst, sind wir zu Rückmeldungen interessiert, damit es uns hilft CryptPad zu verbessern." +
- " Du bist willkommen, mit uns in Kontakt zu treten, mit eine der Methoden oben."
+ "Auch wenn du nicht die Entwicklung einer Funktion sponsoren kannst, sind wir an Rückmeldungen interessiert, damit es uns hilft CryptPad zu verbessern." +
+ " Kontaktiere uns jederzeit mit einer der oben angegebenen Methoden."
}
};
@@ -951,58 +960,54 @@
title: "Andere Fragen?",
pay: {
q: "Wieso soll ich zahlen, wenn so viele Funktionen sowieso kostenfrei sind?",
- a: "Wir geben Sponsoren zusätzliche Speicherplatzmöglichkeiten sowie die Möglichkeit, die Speicherplatzgrenzen ihrer Freunde zu erhören (lese mehr).
" +
+ a: "Wir geben Sponsoren zusätzlichen Speicherplatz sowie die Möglichkeit, die Speicherplatzgrenzen ihrer Freunde zu erhöhen (lese mehr).
" +
- " Weiter als diese kurzfristige Vorteile kannst du, wenn du ein Premiumangebot annimmst, die aktive Weiterentwicklung von CryptPad. Dieses beinhaltet Bugs reparieren, neue Funktionen gestalten, und es leichter für andere zu machen, dass sie CryptPad auf eigenen Servers installieren." +
- " Zusätzlich hilfst du das den Anderen zu beweisen, dass Leute datenschutzschonende Technologien verbessern wollen. Wir hoffen, dass am Ende Geschäftmodelle ein Aspekt der vergangene Geschichte ist.
" +
+ " Über diese diese kurzfristigen Vorteile hinaus kannst Du, wenn Du ein Premiumangebot annimmst, die aktive Weiterentwicklung von CryptPad fördern. Dieses beinhaltet Fehler zu beseitigen, neue Funktionen zu gestalten, und es erleichtern, CryptPad auf eigenen Servern zu installieren." +
+ " Zusätzlich hilfst du, anderen Anbiertern zu beweisen, dass Leute datenschutzschonende Technologien unterstützen. Wir hoffen, dass am Ende Geschäftmodelle, die auf dem Verkauf von Benutzerdaten basieren, Vergangenheit werden.
" +
- " Am Ende glauben wir, dass es gut ist, die Funktionen von CryptPad kostenfrei anzubieten, weil jeder persönlichen Datenschutz braucht, nicht nur diejenige mit Extraeinkommen." +
- " Durch ihre Unterstützung hilfst du uns, zu ermöglichen, dass Bevölkerung mit weniger Einkommen diese grundlegende Funktionen geniessen können, ohne dass ein Preisetikette daran klebt."
+ " Außerdem glauben wir, dass es gut ist, die Funktionen von CryptPad kostenfrei anzubieten, weil jeder persönlichen Datenschutz braucht, nicht nur diejenige mit Extraeinkommen." +
+ " Durch deine Unterstützung hilfst Du uns, zu ermöglichen, dass auch Menschen mit weniger Einkommen diese grundlegenden Funktionen geniessen können, ohne dass ein Preisetikett daran klebt."
},
goal: {
- q: "Was ist ihr Ziel?",
- a: "Durch die Verbesserung von Datenschutzschonende Technologie möchten wir die Erwartungen der Benutzern erhöhen, was der Datenschutz auf Cloudplattformen angeht." +
- "Wir hoffen, dass unsere Arbeit andere Dienstanbietern in allen Domänen ähnliche oder bessere Dienste anbieten können. " +
- "Trotz unser Optimismu wissen wir, dass vieles vom Web aus gezielte Werbung gesponsert wird. " +
- "Es gibt viel mehr Arbeit in der Richtung zu tun, als wir selber schaffen, und wir erkennen die Unterstützung der Gemeinschaft für Promotion, Support und andere Beiträge für dieses Zweck."
+ q: "Was ist euer Ziel?",
+ a: "Durch die Verbesserung von datenschutzschonenden Technologien möchten wir die Erwartungen der Benutzer an den Datenschutz auf Cloudplattformen erhöhen." +
+ "Wir hoffen, dass unsere Arbeit andere Dienstanbieter in allen Bereichen anspornt, ähnliche oder bessere Dienste anzubieten. " +
+ "Trotz unser Optimismus wissen wir, dass ein grosser Teil des Netztes durch gezielte Werbung finanziert wird. " +
+ "Es gibt viel mehr Arbeit in der Richtung, als wir jemals schaffen können, und wir freuen uns über die Förderung, Unterstützung und Beiträge aus unserer Community."
},
jobs: {
- q: "Stellt ihr an?",
- a: "Ja! Bitte schicke eine kurze Einführung zu dir auf jobs@xwiki.com."
+ q: "Sucht Ihr Mitarbeiter*innen?",
+ a: "Ja! Bitte schicke eine kurze Vorstellung an jobs@xwiki.com."
},
host: {
- q: "Könnt ihr mich helfen, meine eigene Installation von CryptPad zu erledigen?",
- a: "Wir sind froh, dich zu unterstützen, das interne CryptPad deiner Firma zu installieren. Setze dich bitte mit sales@cryptpad.fr in Kontakt für mehr Information.",
+ q: "Könnt ihr mir helfen, meine eigene Installation von CryptPad aufzubauen?",
+ a: "Wir bieten gerne Support für das Aufsetzen eines internen CryptPads für deine Organisation. Setze dich bitte mit sales@cryptpad.fr in Kontakt für mehr Information.",
},
revenue: {
- q: "Wie kann ich ein geteilttes Einkommen Modell erreichen?",
- a: " Wenn du deine eigene Installation von CrytPad betreibst, und du möchtests die Einkommen für deine bezahlte Konten mit Entwicklern teilen, wird dein Server als Partnerservice konfugriert werden müssen.
" +
+ q: "Wie kann ich meine Einnahmen mit den Entwicklern teilen?",
+ a: " Wenn du deine eigene Installation von CrytPad betreibst und die Einnahmen für deine bezahlten Konten mit Entwicklern teilen möchtest, muß dein Server als Partnerservice konfiguriert werden.
" +
- "In deinem CryptPad Verzeichnis befinden sich config.example.js, die eine Erklärung liefert, wie du dein Server dafür konfigurieren muss. "+
- "Danakch solltest du sales@cryptpad.fr ein Email schicken, damit es geprüft wird, dass dein Server richtig mit HTTPS konfiguriert wird und damit die Bezahlungsmethoden diskutiert werden. "
+ "In Deinem CryptPad Verzeichnis befindet sich config.example.js, die erklärt, wie du deinen Server dafür konfigurieren musst. "+
+ "Danach solltest du sales@cryptpad.fr kontaktieren, damit geprüft wird, dass dein Server richtig mit HTTPS konfiguriert ist und die Bezahlungsmethoden abgesprochen werden können. "
},
};
-
-
-
- // terms.html
-
- out.tos_title = "Cryptpad Nutzungsbedingungen";
- out.tos_legal = "Sei nicht bösartig, missbrauchend und mach nichts illegales.";
- out.tos_availability = "Wir hoffen, dass dir dieser Service nützt, aber Erreichbarkeit und Performanz können nicht garantiert werden. Bitte exportiere deine Daten regelmäßig.";
- out.tos_e2ee = "Cryptpad Dokumente können von allen gelesen oder bearbeitet werden, die den \"fragment identifier\" des Dokuments erraten oder auf eine andere Art davon erfahren. Wir empfehlen dir Ende-Zu-Ende verschlüsselte Nachrichtentechnik (e2ee) zum Versenden der URLs zu nutzen. Wir übernehmen keine Haftung falls eine URL erschlichen oder abgegriffen wird.";
- out.tos_logs = "Metadaten, die dein Browser bereitstellt, können geloggt werden, um den Service aufrechtzuerahlten.";
- out.tos_3rdparties = "Wir geben keine Individualdaten an dritte Weiter, außer auf richterliche Anordnung.";
+
+ // terms.html 995
+ out.tos_title = "Cryptpad Nutzungsbedingungen";
+ out.tos_legal = "Sei nicht bösartig oder missbrauchend und mach nichts illegales.";
+ out.tos_availability = "Wir hoffen, dass dir dieser Service nützt, aber Erreichbarkeit und Performanz können nicht garantiert werden. Bitte exportiere deine Daten regelmäßig.";
+ out.tos_e2ee = "Cryptpad Dokumente können von allen gelesen oder bearbeitet werden, die den \"fragment identifier\" des Dokuments erraten oder auf eine andere Art davon erfahren. Wir empfehlen dir Ende-Zu-Ende verschlüsselte Nachrichtentechnik (e2ee) zum Versenden der URLs zu nutzen. Wir übernehmen keine Haftung, falls eine URL erschlichen oder abgegriffen wird.";
+ out.tos_logs = "Metadaten, die dein Browser übermittelt, können geloggt werden, um den Service aufrechtzuerhalten.";
+ out.tos_3rdparties = "Wir geben keine Individualdaten an Dritte Weiter, außer auf richterliche Anordnung.";
// 404 page
- out.four04_pageNotFound = "Wir konnten nicht die Seite finden, die du angefordert hast.";
+ out.four04_pageNotFound = "Wir konnten die Seite, die du angefordert hast, nicht finden.";
// BottomBar.html
-
// out.bottom_france = 'Mit in gemacht';
// out.bottom_support = 'Ein Labs Project mit Hilfe von ';
- // Header.html
+ // Header.html
out.updated_0_header_logoTitle = 'Zu deinem CryptDrive';
out.header_logoTitle = out.updated_0_header_logoTitle;
@@ -1012,129 +1017,134 @@
out.help = {};
- out.help.title = "Mit CryptPad anfängen";
+ out.help.title = "Mit CryptPad anfangen";
out.help.generic = {
more: 'Erfahre mehr wie CryptPad für dich arbeiten kann, indem du unsere FAQ liest.',
- share: 'Benutze das Teilen Menü (), um Links zu schicken, die zu Kooperationen im Lesen oder Bearbeiten einladen.',
+ share: 'Benutze das Teilen-Menü (), um Links zu schicken, die zur Mitarbeit beim Lesen oder Bearbeiten einladen.',
stored: 'Jedes Dokument, dass du besuchst, ist automatisch in deinem CryptDrive gespeichert.',
};
out.help.text = {
- formatting: 'Du kannst das Toolbar anzeigen oder verbergen indem du auf oder klickst.',
- embed: 'Registrierte Benutzern können mit Bilder oder Dateien einbetten, die in deren CryptDrive gespeichert sind.',
+ formatting: 'Du kannst die Werkzeugleiste anzeigen oder verbergen indem du auf oder klickst.',
+ embed: 'Registrierte Benutzer können mit Bilder oder Dateien einbetten, die in deren CryptDrive gespeichert sind.',
history: 'Du kannst das Menü Verlauf benutzen, um frühere Version anzusehen oder zurückbringen.',
};
out.help.pad = {
- export: 'Du kannst export als PDF benutzen, indem du auf dem Knopf in dem Formattierungstoolbar druckst.',
+ export: 'Du kannst den Export als PDF benutzen, indem Du auf dem Knopf in dem Formatierungs-Werkzeugleiste drückst.',
};
out.help.code = {
- modes: 'Benutze das Dropdown Menü im Submenü , um die Syntaxherhorhebung oder das Farbschema zu wechseln.',
+ modes: 'Benutze das Dropdown Menü im Untermenü , um die Syntaxhervorhebung oder das Farbschema zu wechseln.',
};
out.help.slide = {
markdown: 'Schreibe Folien in Markdown and separiere sie mit der Zeile ---
.',
- present: 'Starte die Präsentation mit dem Knopf .',
- settings: 'Verändere die Präsentationseinstellung (Hintergrund, Transition, Anzeige der Seitenummer, etc) mit dem Knopf in dem Submenü .',
+ present: 'Starte die Präsentation mit dem Knopf .',
+ settings: 'Verändere die Präsentationseinstellungen (Hintergrund, Transition, Anzeige der Seitenummer, etc) mit dem Knopf in dem Submenü .',
colors: 'Verändere Text- und Hintergrundfarbe mit den Knöpfen und .',
};
out.help.poll = {
- decisions: 'Treffen Entscheidung privat, unter Bekannte',
- options: 'Schlage zuätzliche Optionen, und mache deine bevorzugte Optionen laut',
- choices: 'Klicke Zellen in deiner Spalte, um zwischen ja (✔), viellecht (~), oder nein (✖) zu wählen',
- submit: 'Klicke auf schicken, damit deine Wahlen anderen Sichtbar wird',
+ decisions: 'Treffe Entscheidungen gemeinsam mit deinen Bekannten',
+ options: 'Mache Vorschläge und teile deine Präferenzen mit',
+ choices: 'Klicke die Zellen in deiner Spalte, um zwischen ja (✔), viellecht (~), oder nein (✖) zu wählen',
+ submit: 'Klicke auf Schicken, damit deine Entscheidung für andere sichtbar wird',
};
out.help.whiteboard = {
- colors: 'Ein Doppelklick auf Farben erlaubt die Palette zu verändern',
- mode: 'Deaktiviere das Zeichenmodus, um die Strichen zu ziehen und verlängern',
- embed: 'Einbette Bilder von deiner Festplatte oder von deinem CryptDrive und exportiere sie als PNG zu deiner Festplatte oder zu deinem CryptDrive oder von deinem CryptDrive und exportiere sie als PNG zu deiner Festplatte oder zu deinem CryptDrive Knopf in der rechten oberen Ecke',
+ task: 'Verschiebe Items von einem Bord zum anderen durch Ziehen und Ablegen',
+ color: 'Ändere die Farben durch Klicken auf den farbigen Teil neben dem Bordtitel',
+ };
out.initialState = [
'',
- 'Hier ist is CryptPad, das Echtzeit kollaboratives Editor ohne Preisgabe deiner Informationen. Alles wird beim Tippen direkt gespeichert.',
+ 'Dies ist is CryptPad, der Echtzeit-Kollaborativ-Editor ohne Preisgabe deiner Daten. Alles wird beim Tippen direkt gespeichert.',
'
',
- 'Teile das Link zu diesem, um mit Bekannten zu kooperieren, oder verwende den Knopf , um ein schreibgeschütztes Link zu teilen. Es erlaubt der Ansicht ohne die Bearbeitung.',
+ 'Teile den Link zu diesem Pad, um mit Bekannten zusammen zu arbeiten, oder verwende den Knopf , um einen schreibgeschützten Link zu teilen, der die Ansicht, aber nicht die Bearbeitung erlaubt.',
'
',
].join('');
out.codeInitialState = [
- '# CryptPad: Kollaboratives Code Editor ohne Preisgabe deiner Information\n',
+ '# CryptPad\'s Zero Knowledge Kollaborativer Code Editor ohne Preisgabe deiner Daten\n',
'\n',
- '* Was du hier tippst, ist Verschlüsselt. Nur Personen die das vollen Link haben können es zugreifen.\n',
+ '* Was du hier tippst, ist verschlüsselt. Nur Personen die das vollen Link haben können es zugreifen.\n',
'* Du kannst die Programmierungsprache für die Syntaxhervorhebung sowie das Farbschema oben rechts wählen.'
].join('');
out.slideInitialState = [
'# CryptSlide\n',
- '1. SChreibe deine Präsentation mit der Markdown Syntax\n',
- ' - Mehr über Markdwon [hier](http://www.markdowntutorial.com/) erfahren\n',
+ '1. Schreibe deine Präsentation mit der Markdown Syntax\n',
+ ' - Mehr über Markdown [hier](http://www.markdowntutorial.com/) erfahren\n',
'2. Trenne deine Folien mit ---\n',
- '3. Klicke auf dem "Abspielen" Knopf, um das Ergebnis zu sehen.',
- ' - Deine Folien sind in Echtzeit aktualisiert'
+ '3. Klicke auf den "Abspielen" Knopf, um das Ergebnis zu sehen.',
+ ' - Deine Folien werden in Echtzeit aktualisiert'
].join('');
// Readme
-
out.driveReadmeTitle = "Was ist CryptPad?";
out.readme_welcome = "Willkommen zu CryptPad !";
- out.readme_p1 = "Willkommen zu CryptPad, hier kannst du deine Notizzen runterschreiben, allein oder mit Bekannten.";
- out.readme_p2 = "Dieses Dokument gibt dir einen kurzen Durchblick, wie du CryptPad verwenden kann, um Notizzen zu schreiben und zusammen zu arbeiten.";
- out.readme_cat1 = "Kenne CryptDrive lernen";
- out.readme_cat1_l1 = "Ein Dokument erstellen: In deinem CryptDrive, klicke {0} dann {1} und kannst ein ein Dokuemnt erstellen."; // 0: New, 1: Rich Text
- out.readme_cat1_l2 = "Ein Dokument deines CryptDrives öffnen: Doppelklick auf der Ikone eines Dokument, um es zu öffnen.";
- out.readme_cat1_l3 = "Deine Dokumente organisieren: Wenn du eingeloggst bist, wird jedes Dokument, das du beuuchst in {0} Abschnitt deines CryptDrive";
- out.readme_cat1_l3_l1 = "Du kannst Dateien zwischen Ordnern Ziehen und Schieben in dem Abschnitt {0} deines CryptDrives oder neue Ordnern gestalten."; // 0: Documents
- out.readme_cat1_l3_l2 = "Erinnere dich daran, ein Rechtklick auf Ikonen zu geben, da es zusätzlichen Menüfunktionen gibt.";
- out.readme_cat1_l4 = "Verschiebe deine alte Dokumente zum Papierkorb: Du kannst deine Dokumente zu {0} verschieben, genauso, wie du es zu einem Ordner machst."; // 0: Trash
+ out.readme_p1 = "Willkommen zu CryptPad, hier kannst du deine Notizen aufschreiben, allein oder mit Bekannten.";
+ out.readme_p2 = "Dieses Dokument gibt dir einen kurzen Überblick, wie du CryptPad verwenden kann, um Notizen zu schreiben und und mit anderen zusammen zu arbeiten.";
+ out.readme_cat1 = "Lerne CryptDrive kennen";
+ out.readme_cat1_l1 = "Ein Dokument erstellen: Klicke in Deinem CryptDrive {0}, dann {1} und Du kannst ein Dokuemnt erstellen."; // 0: New, 1: Rich Text
+ out.readme_cat1_l2 = "Ein Dokument Deines CryptDrives öffnen: Doppelklicke auf das Symbol eines Dokument, um es zu öffnen.";
+ out.readme_cat1_l3 = "Deine Dokumente organisieren: Wenn du eingeloggst bist, wird jedes Dokument, das du besuchst, im {0} Bereich deines CryptDrives angezeigt";
+ out.readme_cat1_l3_l1 = "Im Abschnitt {0} deines CryptDrives kannst du Dateien zwischen Ordnern ziehen und ablegen oder neue Ordner anlegen."; // 0: Documents
+ out.readme_cat1_l3_l2 = "Ein Rechtklick auf Symbole kann zusätzliche Menüfunktionen anbieten.";
+ out.readme_cat1_l4 = "Verschiebe deine alten Dokumente in den Papierkorb: Du kannst Deine Dokumente zu {0} verschieben, genauso, wie du es zu einem Ordner machst."; // 0: Trash
out.readme_cat2 = "Dokumente wie ein Profi gestalten";
out.edit = "bearbeiten";
out.view = "ansehen";
- out.readme_cat2_l1 = "Der Knopf {0} in deinem Dokument erlaubt dich, anderen eine Mitarbeitzugang zu geben (entweder zu {1} oder {2}).";
- out.readme_cat2_l2 = "Der Titel eines Dokuments kann mit einem Klick auf dem Stift verändert werden.";
- out.readme_cat3 = "Entdecke CryptPad apps";
- out.readme_cat3_l1 = "Mit dem CryptPad Codeeditor kannst du auf Code wie JavaScript, Markdown, oder HTML";
- out.readme_cat3_l2 = "Mit dem CryptPad Präsentationseditor kannst du schnelle Vorträge mithilfe von Markdwon gestalten";
- out.readme_cat3_l3 = "Mit der CryptPad Umfrage kannst du schnell Abstrimmungen treffen, insbesonders, um Meetings zu planen, die dem Kalender von allen passen.";
+ out.readme_cat2_l1 = "Der Knopf {0} in deinem Dokument erlaubt dir, anderen einen Mitbearbeitungszugang zu geben (entweder zu {1} oder {2}).";
+ out.readme_cat2_l2 = "Der Titel eines Dokuments kann mit einem Klick auf den Stift geändert werden.";
+ out.readme_cat3 = "Entdecke CryptPad Apps";
+ out.readme_cat3_l1 = "Mit dem CryptPad Codeeditor kannst du Code wie JavaScript, Markdown, oder HTML bearbeiten";
+ out.readme_cat3_l2 = "Mit dem CryptPad Präsentationseditor kannst du schnell Vorträge mit Hilfe von Markdwon gestalten";
+ out.readme_cat3_l3 = "Mit der CryptPad Umfrage kannst du schnell Abstimmungen durchführen, insbesondere, um Meetings zu planen, die in den Kalender von allen passen.";
// Tips
out.tips = {};
out.tips.shortcuts = "`ctrl+b`, `ctrl+i` and `ctrl+u` sind Tatstenkürzeln um fett, kurziv, oder unterschrieben zu markieren.";
- out.tips.indent = "In gezifferten oder einfache Listen kannst du TAB und SHIFT-TAB benutzen, um die Identierung zu erhöhen oder reduzieren.";
- out.tips.store = "Jedes Mal, dass du ein Dokument besuchsts, und eingeloggt bist, wird es in deinem CryptDrive gespeichert.";
+ out.tips.indent = "In bezifferten oder einfache Listen kannst du TAB und SHIFT-TAB benutzen, um den Einzug zu erhöhen oder reduzieren.";
+ out.tips.store = "Jedes Mal, wenn du ein Dokument besuchst und eingeloggt bist, wird es in deinem CryptDrive gespeichert.";
out.tips.marker = "Du kannst Text in einem Dokument mit \"Marker\" Menü in dem Stilmenü markieren.";
- out.tips.driveUpload = "Registrierte Benutzer können verschlüsselte Dateien aus ihrer Festplatten hochladen, indem sie einfach Schieben und in ihrem CryptDrive ablegen.";
+ out.tips.driveUpload = "Registrierte Benutzer können verschlüsselte Dateien aus ihrer Festplatte hochladen, indem sie sie einfach verschieben und in ihrem CryptDrive ablegen.";
out.tips.filenames = "Du kannst Dateien in deinem CryptDrive neubenennen. Dieser Name ist nur für dich.";
- out.tips.drive = "Eingeloggte Benutzern können ihre Dateien in ihrem CryptDrive organisieren. Dieses ist mit einem Klick auf der CryptPad Ikone oben links erreichbar, wenn mann in einem Dokument ist.";
- out.tips.profile = "Registrierte Benuzter können ein Profil gestalten mit dem Benutzer Menü oben rechts.";
- out.tips.avatars = "Du kannst ein Benutzerbild in deinem Profil hochladen. Andere sehen es, wenn die in einem Dokument zusammenarbeiten.";
- out.tips.tags = "Bringe Tags auf deinen Dokumenten und starte eine Suche-bei-Tags mit dem # Zeichen in dem CryptDrive Suche.";
+ out.tips.drive = "Eingeloggte Benutzern können ihre Dateien in ihrem CryptDrive organisieren. Dieses ist mit einem Klick auf das CryptPad Symbol oben links erreichbar, wenn man in einem Dokument ist.";
+ out.tips.profile = "Registrierte Benutzer können ihr Profil mit dem Benutzer Menü oben rechts bearbeiten.";
+ out.tips.avatars = "Du kannst ein Benutzerbild in dein Profil hochladen. Andere sehen es, wenn sie in einem Dokument zusammenarbeiten.";
+ out.tips.tags = "Bringe Tags auf deinen Dokumenten an und starte eine Suche-nach-Tags mit dem # Zeichen in dem CryptDrive Suche.";
- out.feedback_about = "Wenn du das liest, fragst du dich weshalb Anfragen an Webseiten schickt, wenn manche Aktionen geführt werden.";
- out.feedback_privacy = "Wir wollen deinen Datenschutz schonen, aber gleichzeitig wollen wir, dass die Benutzung von CryptPad sehr leicht ist, zB indem wir erfahren, welche UI-Funktion am wichtigsten für unsere Benutzen ist. Dieses wird nachgefragt mit einer genauen Parameterbeschreibung, welche Aktion war gemacht.";
- out.feedback_optout = "Wenn du es aber nicht möchtest. besuche deine Einstellungen, dort findest du ein Haken, wo du es deaktivieren kannst.";
+ out.feedback_about = "Wenn Du das liest, fragst du dich, weshalb dein Browser Anfragen an Webseiten schickt, wenn manche Aktionen ausgeführt werden.";
+ out.feedback_privacy = "Wir kümmern uns um deinen Datenschutz, aber gleichzeitig wollen wir, dass die Benutzung von CryptPad sehr leicht ist. Deshalb wollen wir erfahren, welche UI-Funktion am wichtigsten für unsere Benutzer ist, indem wir diese mit einer genauen Parameterbeschreibung anfordern.";
+ out.feedback_optout = "Wenn du das aber nicht möchtest. besuche Deine Einstellungen, dort findest du ein Haken, wo du es deaktivieren kannst.";
// Creation page
out.creation_404 = "Dieses Dokument existiert nicht mehr. Benutze das folgende Formular, um ein neues Dokument zu gestalten.";
out.creation_ownedTitle = "Dokumenttyp";
out.creation_owned = "Eigenes Dokument"; // Creation page
out.creation_ownedTrue = "Eigenes Dokument"; // Settings
- out.creation_ownedFalse = "Dokument von jemanden anders";
- out.creation_owned1 = "Ein eigenes Dokument kann vom Server gelöscht werden, wenn der Eigentümer es entscheidet. Die Löschung eines eigenes Dokuments verursacht die Löschung aus allen anderen CryptDrives. ";
- out.creation_owned2 = "Ein offenes Dokument hat kein Eigentümer, also kann es nicht löschen, ausser es hat sein Auslaufdatum erreicht.";
- out.creation_expireTitle = "Lebenszyklus";
- out.creation_expire = "Auslaufende Dokument";
- out.creation_expireTrue = "Ein Lebenszyklus hinzufügen";
- out.creation_expireFalse = "Unbegrenz";
+ out.creation_ownedFalse = "Dokument von jemand anderem";
+ out.creation_owned1 = "Ein eigenes Dokument kann vom Server gelöscht werden, wenn der Eigentümer so entscheidet. Die Löschung eines eigenes Dokuments bewirkt die Löschung aus allen anderen CryptDrives. ";
+ out.creation_owned2 = "Ein offenes Dokument hat keinen Eigentümer, also kann es nicht gelöscht werden, ausser es hat sein Ablaufdatum erreicht.";
+ out.creation_expireTitle = "Ablaufdatum";
+ out.creation_expire = "Auslaufendes Dokument";
+ out.creation_expireTrue = "Ein Ablaufdatum hinzufügen";
+ out.creation_expireFalse = "Unbegrenzt";
out.creation_expireHours = "Stunde(n)";
- out.creation_expireDays = "Tag(en)";
+ out.creation_expireDays = "Tag(e)";
out.creation_expireMonths = "Monat(e)";
- out.creation_expire1 = "An unlimited pad will not be removed from the server until its owner deletes it.";
- out.creation_expire2 = "An expiring pad has a set lifetime, after which it will be automatically removed from the server and other users' CryptDrives.";
+ out.creation_expire1 = "Ein unbegrenztes Dokument wird nicht vom Server entfernt solange der Eigentümer es nicht löscht.";
+ out.creation_expire2 = "Ein auslaufendes Dokument hat eine begrenzte lebensdauer, nach der es automatisch vom Server und aus den CryptDrives anderer Leute entfernt wird.";
+ out.creation_password = "Passwort hinzufügen";
out.creation_noTemplate = "Keine Vorlage";
out.creation_newTemplate = "Neue Vorlage";
out.creation_create = "Erstellen";
@@ -1146,11 +1156,29 @@
out.creation_ownedByOther = "Eigentum eines anderen Benutzer";
out.creation_noOwner = "Kein Eigentümer";
out.creation_expiration = "Auslaufdatum";
+ out.creation_passwordValue = "Passwort";
out.creation_propertiesTitle = "Verfügbarkeit";
out.creation_appMenuName = "Fortgeschrittenes Modus (Ctrl + E)";
- out.creation_newPadModalDescription = "Klicke auf einem Padtyp, um es zu erstellen. Du kannst auch die Tab-Taste benutzen, um zu navigieren, und die Enter-Taste zu bestätigen. ";
- out.creation_newPadModalDescriptionAdvanced = "Du kannst das Kästchen ticken (oder auf der Leertaste drucken um den Wert zu ändern), um das Einstellungsdialog bei der Dokumenterstellung anzuzeigen (für eigene oder auslaufende Dokumente).";
- out.creation_newPadModalAdvanced = "Das Einstellungdialog bei der Dokumenterstellung anzeigen";
+ out.creation_newPadModalDescription = "Klicke auf einen Padtyp, um es zu erstellen. Du kannst auch die Tab-Taste benutzen, um zu navigieren, und die Enter-Taste zum Bestätigen. ";
+ out.creation_newPadModalDescriptionAdvanced = "Du kannst das Kästchen markieren (oder auf die Leertaste drücken, um den Wert zu ändern), um den Einstellungsdialog bei der Dokumenterstellung anzuzeigen (für eigene oder auslaufende Dokumente).";
+ out.creation_newPadModalAdvanced = "Den Einstellungdialog bei der Dokumenterstellung anzeigen";
+
+ // Password prompt on the loading screen
+ out.password_info = "Das Pad, das du öffnen möchtest, ist mit einem Passowrt geschützt. Gib das richtige Passwort ein, um den Inhalt anzuzeigen.";
+ out.password_error = "Pad nicht gefunden!
Dieser Fehler kann zwei Ursachen haben: entweder ist das Passwort ungültig oder das Pad wurde vom Server gelöscht.";
+ out.password_placeholder = "Gib das Passwort hier ein...";
+ out.password_submit = "Abschicken";
+ out.password_show = "Anzeigen";
+
+ // Change password in pad properties
+ out.properties_addPassword = "Passwort hinzufügen";
+ out.properties_changePassword = "Passwort ändern";
+ out.properties_confirmNew = "Bist du sicher? Das Hinzufügen eines Passworts wird die URL dieses Pads ändern und die Chronik entfernen. Benutzer ohne Passwort werden den Zugang zu diesem Pad verlieren.";
+ out.properties_confirmChange = "Bist du sicher? Das Ändern des Passworts wird die Chronik entfernen. Benutzer ohne das neue Passwort werden den Zugang zu diesem Pad verlieren.";
+ out.properties_passwordError = "Ein Fehler ist aufgetreten beim Versuch das Passwort zu ändern. Bitte versuche es nochmal.";
+ out.properties_passwordWarning = "Das Password wurde erfolgreich geändert, aber dein CryptDrive konnte nicht aktualisiert werden. Du mußt möglicherweise die alte Version des Pads manuell entfernen.
Bitte klicke OK um die Seite neu zu laden und die Zugeriffsrechte zu aktualisieren.";
+ out.properties_passwordSuccess = "Das Password wurde erfolgreich geändert.
Bitte klicke OK um die Seite neu zu laden und die Zugeriffsrechte zu aktualisieren.";
+ out.properties_changePasswordButton = "Abschicken";
// New share modal
out.share_linkCategory = "Link teilen";
@@ -1158,12 +1186,20 @@
out.share_linkEdit = "Bearbeiten";
out.share_linkView = "Ansehen";
out.share_linkOptions = "Linkoptionen";
- out.share_linkEmbed = "Einbettungsmodus (Toolbar und Benutzerliste sind verborgen)";
- out.share_linkPresent = "Anzeigemodus (Bearbeitbare Abschnuttte sind verborgen)";
+ out.share_linkEmbed = "Einbettungsmodus (Werkzeugleiste und Benutzerliste sind verborgen)";
+ out.share_linkPresent = "Anzeigemodus (Bearbeitbare Abschnittte sind verborgen)";
out.share_linkOpen = "In einem neuen Tab öffnen";
- out.share_linkCopy = "Zur Zwischenablage kopieren.";
+ out.share_linkCopy = "In die Zwischenablage kopieren.";
out.share_embedCategory = "Einbetten";
- out.share_mediatagCopy = "Mediatag zur Zwischenablage kopieren";
+ out.share_mediatagCopy = "Mediatag in die Zwischenablage kopieren";
+
+ // Loading info
+ out.loading_pad_1 = "Initialisiere Pad";
+ out.loading_pad_2 = "Lade Padinhalt";
+ out.loading_drive_1 = "Lade Daten";
+ out.loading_drive_2 = "Aktualisiere Datenformat";
+ out.loading_drive_3 = "Verifiziere Datenintegrität";
- return out;
+ return out;
});
+
diff --git a/docs/example.nginx.conf b/docs/example.nginx.conf
index afbd86846..e8454dc31 100644
--- a/docs/example.nginx.conf
+++ b/docs/example.nginx.conf
@@ -85,6 +85,11 @@ server {
try_files $uri =404;
}
+ location ^~ /block/ {
+ add_header Cache-Control max-age=0;
+ try_files $uri =404;
+ }
+
location ^~ /datastore/ {
add_header Cache-Control max-age=0;
try_files $uri =404;
diff --git a/readme.md b/readme.md
index 150d21bba..d12e2e376 100644
--- a/readme.md
+++ b/readme.md
@@ -35,7 +35,7 @@ As such, it is possible for a collaborator on the pad to include some silly/ugly
in a CryptPad such as an image which reveals your IP address when your browser automatically
loads it or a script which plays Rick Astleys's greatest hits. It is possible for anyone
who does not have the key to be able to change anything in the pad or add anything, even the
-server, however the clients will notice this because the content hashes in ChainPad will fail to
+server, however the clients will notice this because the content hashes in CryptPad will fail to
validate.
The server does have a certain power, it can send you evil javascript which does the wrong
@@ -82,4 +82,4 @@ any later version. If you wish to use this technology in a proprietary product,
sales@xwiki.com.
[ChainPad]: https://github.com/xwiki-contrib/chainpad
-[active attack]: https://en.wikipedia.org/wiki/Attack_(computing)#Types_of_attacks
+[active attack]: https://en.wikipedia.org/wiki/Attack_(computing)#Types_of_attack
diff --git a/www/file/file-crypto.js b/www/file/file-crypto.js
index 1c274cbe7..a74439492 100644
--- a/www/file/file-crypto.js
+++ b/www/file/file-crypto.js
@@ -36,7 +36,7 @@ define([
var increment = function (N) {
var l = N.length;
while (l-- > 1) {
- /* jshint probably suspects this is unsafe because we lack types
+ /* our linter suspects this is unsafe because we lack types
but as long as this is only used on nonces, it should be safe */
if (N[l] !== 255) { return void N[l]++; } // jshint ignore:line
if (l === 0) { throw new Error('E_NONCE_TOO_LARGE'); }
diff --git a/www/pad/inner.js b/www/pad/inner.js
index a564a9687..43d49a4d9 100644
--- a/www/pad/inner.js
+++ b/www/pad/inner.js
@@ -32,6 +32,7 @@ define([
'/common/common-util.js',
'/bower_components/chainpad/chainpad.dist.js',
'/customize/application_config.js',
+ '/common/test.js',
'/bower_components/diff-dom/diffDOM.js',
@@ -52,7 +53,9 @@ define([
Hash,
Util,
ChainPad,
- AppConfig)
+ AppConfig,
+ Test
+)
{
var DiffDom = window.diffDOM;
@@ -160,7 +163,14 @@ define([
];
var getHTML = function (inner) {
- return ('\n' + '\n' + inner.innerHTML);
+ return ('\n' + '\n' +
+ ' \n ' +
+ inner.innerHTML.replace(/]*class="cke_anchor"[^>]*data-cke-realelement="([^"]*)"[^>]*>/g,
+ function(match,realElt){
+ //console.log("returning realElt \"" + unescape(realElt)+ "\".");
+ return decodeURIComponent(realElt); }) +
+ ' \n'
+ );
};
var CKEDITOR_CHECK_INTERVAL = 100;
@@ -753,6 +763,79 @@ define([
}).nThen(waitFor());
}).nThen(function (/*waitFor*/) {
+ function launchAnchorTest(test) {
+ // -------- anchor test: make sure the exported anchor contains -------
+ console.log('---- anchor test: make sure the exported anchor contains -----.');
+
+ function tryAndTestExport() {
+ console.log("Starting tryAndTestExport.");
+ editor.on( 'dialogShow', function( evt ) {
+ console.log("Anchor dialog detected.");
+ var dialog = evt.data;
+ $(dialog.parts.contents.$).find("input").val('xx-' + Math.round(Math.random()*1000));
+ dialog.click(window.CKEDITOR.dialog.okButton(editor).id);
+ } );
+ var existingText = editor.getData();
+ editor.insertText("A bit of text");
+ console.log("Launching anchor command.");
+ editor.execCommand(editor.ui.get('Anchor').command);
+ console.log("Anchor command launched.");
+
+ var waitH = window.setInterval(function() {
+ console.log("Waited 2s for the dialog to appear");
+ var anchors = window.CKEDITOR.plugins["link"].getEditorAnchors(editor);
+ if(!anchors || anchors.length===0) {
+ test.fail("No anchors found. Please adjust document");
+ } else {
+ console.log(anchors.length + " anchors found.");
+ var exported = getHTML(window.inner);
+ console.log("Obtained exported: " + exported);
+ var allFound = true;
+ for(var i=0; i=0;
+ console.log("Found " + expected + " " + found + ".");
+ allFound = allFound && found;
+ }
+
+ console.log("Cleaning up.");
+ if(allFound) {
+ // clean-up
+ editor.execCommand('undo');
+ editor.execCommand('undo');
+ var nint = window.setInterval(function(){
+ console.log("Waiting for undo to yield same result.");
+ if(existingText === editor.getData()) {
+ window.clearInterval(nint);
+ test.pass();
+ }
+ }, 500);
+ } else
+ {
+ test.fail("Not all expected a elements found for document at " + window.top.location + ".");
+ }
+ }
+ window.clearInterval(waitH);
+ },2000);
+
+
+ }
+ var intervalHandle = window.setInterval(function() {
+ if(editor.status==="ready") {
+ window.clearInterval(intervalHandle);
+ console.log("Editor is ready.");
+ tryAndTestExport();
+ } else {
+ console.log("Waiting for editor to be ready.");
+ }
+ }, 100);
+ }
+ Test(function(test) {
+
+ launchAnchorTest(test);
+ });
andThen2(editor, Ckeditor, framework);
});
};