Merge branch 'soon'

pull/1/head
yflory 6 years ago
commit 47f49c3628

@ -26,3 +26,4 @@ www/common/media-tag-nacl.min.js
customize/ customize/
www/debug/chainpad.dist.js

@ -91,7 +91,7 @@ define([
]) ])
]) ])
]), ]),
h('div.cp-version-footer', "CryptPad v2.17.0 (Raccoon)") h('div.cp-version-footer', "CryptPad v2.18.0 (Sloth)")
]); ]);
}; };

@ -9,6 +9,41 @@
blockquote { margin: 0; } blockquote { margin: 0; }
} }
// todo ul, ol // todo ul, ol
// TOC
div.cp-md-toc {
background: #f3f3f3;
padding: 20px;
//float: right;
margin: 5px;
margin-right: 0;
max-width: 100%;
min-width: 200px;
white-space: nowrap;
& > p {
&.cp-md-toc-1 {
margin-left: 0;
}
&.cp-md-toc-2 {
margin-left: 25px;
}
&.cp-md-toc-3 {
margin-left: 50px;
}
&.cp-md-toc-4 {
margin-left: 75px;
}
&.cp-md-toc-5 {
margin-left: 100px;
}
&.cp-md-toc-6 {
margin-left: 125px;
}
margin: 0;
overflow-x: hidden;
text-overflow: ellipsis;
}
}
} }
.markdown_preformatted-code (@color: #333) { .markdown_preformatted-code (@color: #333) {

@ -1,7 +1,7 @@
{ {
"name": "cryptpad", "name": "cryptpad",
"description": "realtime collaborative visual editor with zero knowlege server", "description": "realtime collaborative visual editor with zero knowlege server",
"version": "2.17.0", "version": "2.18.0",
"license": "AGPL-3.0+", "license": "AGPL-3.0+",
"repository": { "repository": {
"type": "git", "type": "git",

@ -997,6 +997,10 @@ define([
return '`' + str + '`'; return '`' + str + '`';
}, },
icon: 'fa-code' icon: 'fa-code'
},
'toc': {
expr: '[TOC]',
icon: 'fa-newspaper-o'
} }
}; };
var onClick = function () { var onClick = function () {
@ -2319,6 +2323,10 @@ define([
if (e) { return void console.error(e); } if (e) { return void console.error(e); }
}); });
if (val.expire) {
Feedback.send('EXPIRING_PAD-'+val.expire);
}
$creationContainer.remove(); $creationContainer.remove();
common.createPad(val, function () { common.createPad(val, function () {
cb(); cb();

@ -254,8 +254,8 @@ define([
postMessage("REMOVE_OWNED_CHANNEL", channel, cb); postMessage("REMOVE_OWNED_CHANNEL", channel, cb);
}; };
common.getDeletedPads = function (cb) { common.getDeletedPads = function (data, cb) {
postMessage("GET_DELETED_PADS", null, function (obj) { postMessage("GET_DELETED_PADS", data, function (obj) {
if (obj && obj.error) { return void cb(obj.error); } if (obj && obj.error) { return void cb(obj.error); }
cb(null, obj); cb(null, obj);
}); });
@ -958,7 +958,7 @@ define([
common.autoStore.onStoreRequest = Util.mkEvent(); common.autoStore.onStoreRequest = Util.mkEvent();
common.getFullHistory = function (data, cb) { common.getFullHistory = function (data, cb) {
postMessage("GET_FULL_HISTORY", data, cb); postMessage("GET_FULL_HISTORY", data, cb, {timeout: 180000});
}; };
common.getHistoryRange = function (data, cb) { common.getHistoryRange = function (data, cb) {
postMessage("GET_HISTORY_RANGE", data, cb); postMessage("GET_HISTORY_RANGE", data, cb);

@ -3,12 +3,14 @@ define([
'/bower_components/marked/marked.min.js', '/bower_components/marked/marked.min.js',
'/common/common-hash.js', '/common/common-hash.js',
'/common/common-util.js', '/common/common-util.js',
'/common/hyperscript.js',
'/common/media-tag.js', '/common/media-tag.js',
'/common/highlight/highlight.pack.js', '/common/highlight/highlight.pack.js',
'/customize/messages.js',
'/bower_components/diff-dom/diffDOM.js', '/bower_components/diff-dom/diffDOM.js',
'/bower_components/tweetnacl/nacl-fast.min.js', '/bower_components/tweetnacl/nacl-fast.min.js',
'css!/common/highlight/styles/github.css' 'css!/common/highlight/styles/github.css'
],function ($, Marked, Hash, Util, MediaTag, Highlight) { ],function ($, Marked, Hash, Util, h, MediaTag, Highlight, Messages) {
var DiffMd = {}; var DiffMd = {};
var DiffDOM = window.diffDOM; var DiffDOM = window.diffDOM;
@ -33,16 +35,57 @@ define([
highlight: highlighter(), highlight: highlighter(),
}); });
var toc = [];
var getTOC = function () {
var content = [h('h2', Messages.markdown_toc)];
toc.forEach(function (obj) {
// Only include level 2 headings
var level = obj.level - 1;
if (level < 1) { return; }
var a = h('a.cp-md-toc-link', {
href: '#',
'data-href': obj.id,
title: obj.title
}, obj.title);
content.push(h('p.cp-md-toc-'+level, ['• ', a]));
});
return h('div.cp-md-toc', content).outerHTML;
};
DiffMd.render = function (md, sanitize) { DiffMd.render = function (md, sanitize) {
return Marked(md, { var r = Marked(md, {
sanitize: sanitize sanitize: sanitize
}); });
// Add Table of Content
r = r.replace(/<div class="cp-md-toc"><\/div>/g, getTOC());
toc = [];
return r;
}; };
var mediaMap = {}; var mediaMap = {};
renderer.heading = function (text, level) {
var i = 0;
var safeText = text.toLowerCase().replace(/[^\w]+/g, '-');
var getId = function () {
return 'cp-md-' + i + '-' + safeText;
};
var id = getId();
var isAlreadyUsed = function (obj) { return obj.id === id; };
while (toc.some(isAlreadyUsed)) {
i++;
id = getId();
}
toc.push({
level: level,
id: id,
title: text
});
return "<h" + level + " id=\"" + id + "\"><a href=\"#" + id + "\" class=\"anchor\"></a>" + text + "</h" + level + ">";
};
// Tasks list // Tasks list
var checkedTaskItemPtn = /^\s*(<p>)?\[[xX]\](<\/p>)?\s*/; var checkedTaskItemPtn = /^\s*(<p>)?\[[xX]\](<\/p>)?\s*/;
var uncheckedTaskItemPtn = /^\s*(<p>)?\[ ?\](<\/p>)?\s*/; var uncheckedTaskItemPtn = /^\s*(<p>)?\[ ?\](<\/p>)?\s*/;
@ -97,6 +140,9 @@ define([
}; };
renderer.paragraph = function (p) { renderer.paragraph = function (p) {
if (p === '[TOC]') {
return '<p><div class="cp-md-toc"></div></p>';
}
return /<media\-tag[\s\S]*>/i.test(p)? p + '\n': '<p>' + p + '</p>\n'; return /<media\-tag[\s\S]*>/i.test(p)? p + '\n': '<p>' + p + '</p>\n';
}; };
@ -249,6 +295,15 @@ define([
characterData: false characterData: false
}); });
}); });
// Fix Table of contents links
$content.find('a.cp-md-toc-link').off('click').click(function (e) {
e.preventDefault();
e.stopPropagation();
var $a = $(this);
if (!$a.attr('data-href')) { return; }
var target = document.getElementById($a.attr('data-href'));
if (target) { target.scrollIntoView(); }
});
} }
}; };

@ -65,7 +65,9 @@ define([
if (!proxy.FS_hashes || !Array.isArray(proxy.FS_hashes)) { if (!proxy.FS_hashes || !Array.isArray(proxy.FS_hashes)) {
proxy.FS_hashes = []; proxy.FS_hashes = [];
} }
if (proxy.FS_hashes.indexOf(fsHash) === -1) {
proxy.FS_hashes.push(fsHash); proxy.FS_hashes.push(fsHash);
}
if (typeof(cb) === "function") { if (typeof(cb) === "function") {
Realtime.whenRealtimeSyncs(proxyData.realtime, cb); Realtime.whenRealtimeSyncs(proxyData.realtime, cb);
} }

@ -176,6 +176,16 @@ define([
if (version < 7) { if (version < 7) {
addRoHref(); addRoHref();
} }
}).nThen(function () {
// Migration 8: remove duplicate entries in proxy.FS_hashes (list of migrated anon drives)
var fixDuplicate = function () {
userObject.FS_hashes = Util.deduplicateString(userObject.FS_hashes || []);
};
if (version < 8) {
fixDuplicate();
Feedback.send('Migrate-8', true);
userObject.version = version = 8;
}
/*}).nThen(function (waitFor) { /*}).nThen(function (waitFor) {
// Test progress bar in the loading screen // Test progress bar in the loading screen
var i = 0; var i = 0;

@ -1426,6 +1426,7 @@ define([
if (!store.loggedIn) { return void cb(); } if (!store.loggedIn) { return void cb(); }
Store.pinPads(null, data, cb); Store.pinPads(null, data, cb);
}; };
if (!proxy.settings) { proxy.settings = {}; }
var manager = store.manager = ProxyManager.create(proxy.drive, { var manager = store.manager = ProxyManager.create(proxy.drive, {
edPublic: proxy.edPublic, edPublic: proxy.edPublic,
pin: pin, pin: pin,

@ -95,6 +95,7 @@ define([
if (!sharedFolder && fd.owners && fd.owners.indexOf(edPublic) !== -1 if (!sharedFolder && fd.owners && fd.owners.indexOf(edPublic) !== -1
&& channelId) { && channelId) {
if (channelId) { ownedRemoved.push(channelId); } if (channelId) { ownedRemoved.push(channelId); }
Feedback.send('REMOVE_OWNED_CHANNEL');
removeOwnedChannel(channelId, function (obj) { removeOwnedChannel(channelId, function (obj) {
if (obj && obj.error) { if (obj && obj.error) {
// If the error is that the file is already removed, nothing to // If the error is that the file is already removed, nothing to

@ -360,6 +360,17 @@ define([
editor.setOption('indentUnit', units); editor.setOption('indentUnit', units);
editor.setOption('tabSize', units); editor.setOption('tabSize', units);
editor.setOption('indentWithTabs', useTabs); editor.setOption('indentWithTabs', useTabs);
if (!useTabs) {
editor.setOption("extraKeys", {
Tab: function() {
editor.replaceSelection(Array(units + 1).join(" "));
}
});
} else {
editor.setOption("extraKeys", {
Tab: undefined,
});
}
$('.CodeMirror').css('font-size', fontSize+'px'); $('.CodeMirror').css('font-size', fontSize+'px');
}; };

@ -48,14 +48,6 @@ define([
}); });
}; };
var loadFullHistory = function (config, common, cb) {
var realtime = createRealtime(config);
common.getFullHistory(realtime, function () {
cb(null, realtime);
});
};
loadFullHistory = loadFullHistory;
var fillChainPad = function (realtime, messages) { var fillChainPad = function (realtime, messages) {
messages.forEach(function (m) { messages.forEach(function (m) {
realtime.message(m); realtime.message(m);

@ -514,11 +514,22 @@ define([
channel: secret.channel, channel: secret.channel,
validateKey: secret.keys.validateKey validateKey: secret.keys.validateKey
}, function (encryptedMsgs) { }, function (encryptedMsgs) {
cb(encryptedMsgs.map(function (msg) { var nt = nThen;
var decryptedMsgs = [];
var total = encryptedMsgs.length;
encryptedMsgs.forEach(function (msg, i) {
nt = nt(function (waitFor) {
// The 3rd parameter "true" means we're going to skip signature validation. // The 3rd parameter "true" means we're going to skip signature validation.
// We don't need it since the message is already validated serverside by hk // We don't need it since the message is already validated serverside by hk
return crypto.decrypt(msg, true, true); decryptedMsgs.push(crypto.decrypt(msg, true, true));
setTimeout(waitFor(function () {
sframeChan.event('EV_FULL_HISTORY_STATUS', (i+1)/total);
})); }));
}).nThen;
});
nt(function () {
cb(decryptedMsgs);
});
}); });
}); });
sframeChan.on('Q_GET_HISTORY_RANGE', function (data, cb) { sframeChan.on('Q_GET_HISTORY_RANGE', function (data, cb) {
@ -590,6 +601,13 @@ define([
}); });
}); });
sframeChan.on('Q_DRIVE_GETDELETED', function (data, cb) {
Cryptpad.getDeletedPads(data, function (err, obj) {
if (err) { return void console.error(err); }
cb(obj);
});
});
sframeChan.on('Q_SESSIONSTORAGE_PUT', function (data, cb) { sframeChan.on('Q_SESSIONSTORAGE_PUT', function (data, cb) {
sessionStorage[data.key] = data.value; sessionStorage[data.key] = data.value;
cb(); cb();

@ -302,17 +302,6 @@ define([
}); });
}; };
funcs.getFullHistory = function (realtime, cb) {
ctx.sframeChan.query('Q_GET_FULL_HISTORY', null, function (err, messages) {
if (err) { return void console.error(err); }
if (!Array.isArray(messages)) { return; }
messages.forEach(function (m) {
realtime.message(m);
});
cb();
});
};
// href is optional here: if not provided, we use the href of the current tab // href is optional here: if not provided, we use the href of the current tab
funcs.getPadAttribute = function (key, cb, href) { funcs.getPadAttribute = function (key, cb, href) {
ctx.sframeChan.query('Q_GET_PAD_ATTRIBUTE', { ctx.sframeChan.query('Q_GET_PAD_ATTRIBUTE', {

@ -7,7 +7,7 @@ define([
'/common/common-hash.js', '/common/common-hash.js',
'/common/common-util.js', '/common/common-util.js',
'/common/common-feedback.js', '/common/common-feedback.js',
'/contacts/messenger-ui.js', '/common/messenger-ui.js',
'/customize/messages.js', '/customize/messages.js',
], function ($, Config, ApiConfig, UIElements, UI, Hash, Util, Feedback, ], function ($, Config, ApiConfig, UIElements, UI, Hash, Util, Feedback,
MessengerUI, Messages) { MessengerUI, Messages) {

@ -1,5 +1,4 @@
{ {
"_languageName": "German",
"main_title": "CryptPad: Zusammenarbeit in Echtzeit ohne Preisgabe von Informationen", "main_title": "CryptPad: Zusammenarbeit in Echtzeit ohne Preisgabe von Informationen",
"type": { "type": {
"pad": "Rich Text", "pad": "Rich Text",
@ -21,7 +20,6 @@
"button_newslide": "Neue Präsentation", "button_newslide": "Neue Präsentation",
"button_newwhiteboard": "Neues Whiteboard", "button_newwhiteboard": "Neues Whiteboard",
"button_newkanban": "Neues Kanban", "button_newkanban": "Neues Kanban",
"updated_0_common_connectionLost": "<b>Die Verbindung zum Server ist abgebrochen</b><br>Du verwendest jetzt das Dokument schreibgeschützt, bis die Verbindung wieder funktioniert.",
"common_connectionLost": "<b>Die Verbindung zum Server ist abgebrochen</b><br>Du verwendest jetzt das Dokument schreibgeschützt, bis die Verbindung wieder funktioniert.", "common_connectionLost": "<b>Die Verbindung zum Server ist abgebrochen</b><br>Du verwendest jetzt das Dokument schreibgeschützt, bis die Verbindung wieder funktioniert.",
"websocketError": "Verbindung zum Websocket fehlgeschlagen...", "websocketError": "Verbindung zum Websocket fehlgeschlagen...",
"typeError": "Dieses Dokument ist nicht mit der ausgewählten Anwendung kompatibel", "typeError": "Dieses Dokument ist nicht mit der ausgewählten Anwendung kompatibel",
@ -82,7 +80,6 @@
"orangeLight": "Deine langsame Verbindung kann die Nutzung beeinträchtigen.", "orangeLight": "Deine langsame Verbindung kann die Nutzung beeinträchtigen.",
"redLight": "Du wurdest von dieser Sitzung getrennt.", "redLight": "Du wurdest von dieser Sitzung getrennt.",
"pinLimitReached": "Du hast deine Speicherplatzbegrenzung erreicht", "pinLimitReached": "Du hast deine Speicherplatzbegrenzung erreicht",
"updated_0_pinLimitReachedAlert": "Du hast deine Speicherplatzbegrenzung erreicht. Neue Pads werden nicht mehr in deinem CryptDrive gespeichert.<br>Du kannst entweder ein Pad von deinem CryptDrive entfernen oder <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">ein Premiumangebot anfordern</a>, damit deine Begrenzung erhöht wird.",
"pinLimitReachedAlert": "Du hast deine Speicherplatzbegrenzung erreicht. Neue Pads werden nicht mehr in deinem CryptDrive gespeichert.<br>Du kannst entweder ein Pad von deinem CryptDrive entfernen oder <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">ein Premiumangebot anfordern</a>, damit deine Begrenzung erhöht wird.", "pinLimitReachedAlert": "Du hast deine Speicherplatzbegrenzung erreicht. Neue Pads werden nicht mehr in deinem CryptDrive gespeichert.<br>Du kannst entweder ein Pad von deinem CryptDrive entfernen oder <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">ein Premiumangebot anfordern</a>, damit deine Begrenzung erhöht wird.",
"pinLimitReachedAlertNoAccounts": "Du hast deine Speicherplatzbegrenzung erreicht", "pinLimitReachedAlertNoAccounts": "Du hast deine Speicherplatzbegrenzung erreicht",
"pinLimitNotPinned": "Du hast deine Speicherplatzbegrenzung erreicht.<br>Dieses Pad ist nicht in deinem CryptDrive gespeichert.", "pinLimitNotPinned": "Du hast deine Speicherplatzbegrenzung erreicht.<br>Dieses Pad ist nicht in deinem CryptDrive gespeichert.",
@ -353,7 +350,6 @@
"fm_info_unsorted": "Hier sind alle besuchte Dateien enthalten, die noch nicht in \"Dokumente\" einsortiert oder in den Papierkorb verschoben wurden.", "fm_info_unsorted": "Hier sind alle besuchte Dateien enthalten, die noch nicht in \"Dokumente\" einsortiert oder in den Papierkorb verschoben wurden.",
"fm_info_template": "Hier sind alle Dokumente enthalten, die als Vorlage gespeichert wurden und die du wiederverwenden kannst, um ein neues Pad zu erstellen.", "fm_info_template": "Hier sind alle Dokumente enthalten, die als Vorlage gespeichert wurden und die du wiederverwenden kannst, um ein neues Pad zu erstellen.",
"fm_info_recent": "Hier werden die zuletzt geöffneten Dokumente aufgelistet.", "fm_info_recent": "Hier werden die zuletzt geöffneten Dokumente aufgelistet.",
"updated_0_fm_info_trash": "Leere den Papierkorb, um mehr freien Platz in deinem CryptDrive zu erhalten.",
"fm_info_trash": "Leere den Papierkorb, um mehr freien Platz in deinem CryptDrive zu erhalten.", "fm_info_trash": "Leere den Papierkorb, um mehr freien Platz in deinem CryptDrive zu erhalten.",
"fm_info_allFiles": "Beinhaltet alle Dateien von \"Dokumente\", \"Unsortierte Dateien\" und \"Papierkorb\". Dateien können hier nicht verschoben oder entfernt werden.", "fm_info_allFiles": "Beinhaltet alle Dateien von \"Dokumente\", \"Unsortierte Dateien\" und \"Papierkorb\". Dateien können hier nicht verschoben oder entfernt werden.",
"fm_info_anonymous": "Du bist nicht eingeloggt, daher laufen die Pads nach 3 Monaten aus (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">mehr dazu lesen</a>). Der Zugang zu den Pads ist in deinem Browser gespeichert, daher wird das Löschen des Browserverlaufs sie möglicherweise verschwinden lassen.<br><a href=\"/register/\">Registriere dich</a> oder <a href=\"/login/\">logge dich ein</a>, um sie dauerhaft zugänglich zu machen.<br>", "fm_info_anonymous": "Du bist nicht eingeloggt, daher laufen die Pads nach 3 Monaten aus (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">mehr dazu lesen</a>). Der Zugang zu den Pads ist in deinem Browser gespeichert, daher wird das Löschen des Browserverlaufs sie möglicherweise verschwinden lassen.<br><a href=\"/register/\">Registriere dich</a> oder <a href=\"/login/\">logge dich ein</a>, um sie dauerhaft zugänglich zu machen.<br>",

@ -1,6 +1,5 @@
{ {
"main_title": "CryptPad: Zero Knowledge, συνεργατική επεξεργασία σε πραγματικό χρόνο", "main_title": "CryptPad: Zero Knowledge, συνεργατική επεξεργασία σε πραγματικό χρόνο",
"main_slogan": "Ισχύς εν τη ενώσει - Η συνεργασία είναι η λύση",
"type": { "type": {
"pad": "Εμπλουτισμένο κείμενο", "pad": "Εμπλουτισμένο κείμενο",
"code": "Κώδικας", "code": "Κώδικας",
@ -18,7 +17,6 @@
"button_newpoll": "Νέα δημοσκόπηση", "button_newpoll": "Νέα δημοσκόπηση",
"button_newslide": "Νέα παρουσίαση", "button_newslide": "Νέα παρουσίαση",
"button_newwhiteboard": "Νέος πίνακας", "button_newwhiteboard": "Νέος πίνακας",
"updated_0_common_connectionLost": "<b>Η σύνδεση με τον διακομιστή χάθηκε</b><br>Βρίσκεστε σε λειτουργία ανάγνωσης μόνο μέχρι να επανέλθει η σύνδεση.",
"common_connectionLost": "<b>Η σύνδεση με τον διακομιστή χάθηκε</b><br>Βρίσκεστε σε λειτουργία ανάγνωσης μόνο μέχρι να επανέλθει η σύνδεση.", "common_connectionLost": "<b>Η σύνδεση με τον διακομιστή χάθηκε</b><br>Βρίσκεστε σε λειτουργία ανάγνωσης μόνο μέχρι να επανέλθει η σύνδεση.",
"websocketError": "Αδυναμία σύνδεσης στον διακομιστή...", "websocketError": "Αδυναμία σύνδεσης στον διακομιστή...",
"typeError": "Αυτό το pad δεν είναι συμβατό με την επιλεγμένη εφαρμογή", "typeError": "Αυτό το pad δεν είναι συμβατό με την επιλεγμένη εφαρμογή",
@ -67,7 +65,6 @@
"orangeLight": "Η αργή σύνδεση ίσως έχει αντίκτυπο στην διάδραση", "orangeLight": "Η αργή σύνδεση ίσως έχει αντίκτυπο στην διάδραση",
"redLight": "Έχετε αποσυνδεθεί από τη συνεδρία", "redLight": "Έχετε αποσυνδεθεί από τη συνεδρία",
"pinLimitReached": "Έχετε φτάσει το όριο αποθηκευτικού χώρου", "pinLimitReached": "Έχετε φτάσει το όριο αποθηκευτικού χώρου",
"updated_0_pinLimitReachedAlert": "Έχετε φτάσει το όριο αποθηκευτικού χώρου. Τα νέα pads δεν θα αποθηκευτούν στο CryptDrive σας.<br>Μπορείτε είτε να διαγράψετε αρχεία από το CryptDrive σας, είτε να <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">αναβαθμισετε τον λογαριασμό σας</a> για να αυξήσετε το όριο αποθήκευσης.",
"pinLimitReachedAlert": "Έχετε φτάσει το όριο αποθηκευτικού χώρου. Τα νέα pads δεν θα αποθηκευτούν στο CryptDrive σας.<br>Μπορείτε είτε να διαγράψετε αρχεία από το CryptDrive σας, είτε να <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">αναβαθμισετε τον λογαριασμό σας</a> για να αυξήσετε το όριο αποθήκευσης.", "pinLimitReachedAlert": "Έχετε φτάσει το όριο αποθηκευτικού χώρου. Τα νέα pads δεν θα αποθηκευτούν στο CryptDrive σας.<br>Μπορείτε είτε να διαγράψετε αρχεία από το CryptDrive σας, είτε να <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">αναβαθμισετε τον λογαριασμό σας</a> για να αυξήσετε το όριο αποθήκευσης.",
"pinLimitReachedAlertNoAccounts": "Έχετε φτάσει το όριο αποθηκευτικού χώρου", "pinLimitReachedAlertNoAccounts": "Έχετε φτάσει το όριο αποθηκευτικού χώρου",
"pinLimitNotPinned": "Έχετε φτάσει το όριο αποθηκευτικού χώρου.<br>Αυτό το pad δεν θα αποθηκευτεί στο CryptDrive σας.", "pinLimitNotPinned": "Έχετε φτάσει το όριο αποθηκευτικού χώρου.<br>Αυτό το pad δεν θα αποθηκευτεί στο CryptDrive σας.",
@ -109,7 +106,6 @@
"colorButtonTitle": "Αλλάξτε το χρώμα κειμένου στην λειτουργία παρουσίασης", "colorButtonTitle": "Αλλάξτε το χρώμα κειμένου στην λειτουργία παρουσίασης",
"printText": "Εκτύπωση", "printText": "Εκτύπωση",
"printButton": "Εκτύπωση (enter)", "printButton": "Εκτύπωση (enter)",
"printButtonTitle": "Εκτυπώστε τις διαφάνειές σας ή εξάγετε τες ως αρχείο PDF",
"printOptions": "Επιλογές διάταξης", "printOptions": "Επιλογές διάταξης",
"printSlideNumber": "Εμφάνιση του αριθμού διαφάνειας", "printSlideNumber": "Εμφάνιση του αριθμού διαφάνειας",
"printDate": "Εμφάνιση της ημερομηνίας", "printDate": "Εμφάνιση της ημερομηνίας",
@ -161,10 +157,7 @@
"historyButton": "Εμφάνιση ιστορικού του εγγράφου", "historyButton": "Εμφάνιση ιστορικού του εγγράφου",
"history_next": "Μετάβαση στην επόμενη έκδοση", "history_next": "Μετάβαση στην επόμενη έκδοση",
"history_prev": "Μετάβαση στην προηγούμενη έκδοση", "history_prev": "Μετάβαση στην προηγούμενη έκδοση",
"history_goTo": "Μετάβαση στην επιλεγμένη έκδοση",
"history_close": "Επιστροφή",
"history_closeTitle": "Κλείσιμο ιστορικού", "history_closeTitle": "Κλείσιμο ιστορικού",
"history_restore": "Επαναφορά",
"history_restoreTitle": "Επαναφορά της επιλεγμένης έκδοσης του εγγράφου", "history_restoreTitle": "Επαναφορά της επιλεγμένης έκδοσης του εγγράφου",
"history_restorePrompt": "Είστε σίγουροι πως θέλετε να αντικαταστήσετε την τρέχουσα έκδοση του εγγράφου με την επιλεγμένη;", "history_restorePrompt": "Είστε σίγουροι πως θέλετε να αντικαταστήσετε την τρέχουσα έκδοση του εγγράφου με την επιλεγμένη;",
"history_restoreDone": "Έγινε επαναφορά του εγγράφου", "history_restoreDone": "Έγινε επαναφορά του εγγράφου",
@ -202,8 +195,6 @@
"poll_edit": "Επεξεργασία", "poll_edit": "Επεξεργασία",
"poll_locked": "Κλείδωμα", "poll_locked": "Κλείδωμα",
"poll_unlocked": "Ξεκλείδωμα", "poll_unlocked": "Ξεκλείδωμα",
"poll_show_help_button": "Εμφάνιση βοήθειας",
"poll_hide_help_button": "Απόκρυψη βοήθειας",
"poll_bookmark_col": "Αποθηκεύστε αυτή τη στήλη ώστε να είναι πάντα ξεκλείδωτη και εμφανής κατά την εκκίνηση για εσάς", "poll_bookmark_col": "Αποθηκεύστε αυτή τη στήλη ώστε να είναι πάντα ξεκλείδωτη και εμφανής κατά την εκκίνηση για εσάς",
"poll_bookmarked_col": "Αυτή είναι η στήλη σελιδοδεικτών σας. Θα είναι πάντα ξεκλείδωτη και εμφανής κατά την εκκίνηση για εσάς.", "poll_bookmarked_col": "Αυτή είναι η στήλη σελιδοδεικτών σας. Θα είναι πάντα ξεκλείδωτη και εμφανής κατά την εκκίνηση για εσάς.",
"poll_total": "Σύνολο", "poll_total": "Σύνολο",
@ -300,7 +291,6 @@
"fm_info_unsorted": "Περιέχει όλα τα αρχεία που έχετε επισκεφτεί αλλά δεν έχουν ταξινομηθεί στα \"Έγγραφα\", ούτε έχουν μετακινηθεί στα \"Σκουπίδια\".", "fm_info_unsorted": "Περιέχει όλα τα αρχεία που έχετε επισκεφτεί αλλά δεν έχουν ταξινομηθεί στα \"Έγγραφα\", ούτε έχουν μετακινηθεί στα \"Σκουπίδια\".",
"fm_info_template": "Περιέχει όλα τα pads που έχουν αποθηκευτεί ως πρότυπα και μπορείτε να ξαναχρησιμοποιήσετε όταν δημιουργείτε ένα νέο pad.", "fm_info_template": "Περιέχει όλα τα pads που έχουν αποθηκευτεί ως πρότυπα και μπορείτε να ξαναχρησιμοποιήσετε όταν δημιουργείτε ένα νέο pad.",
"fm_info_recent": "Λίστα των πρόσφατα τροποποιημένων ή ανοιγμένων pads.", "fm_info_recent": "Λίστα των πρόσφατα τροποποιημένων ή ανοιγμένων pads.",
"updated_0_fm_info_trash": "Αδειάστε τον κάδο σας για να απελευθερώσετε χώρο στο CryptDrive σας.",
"fm_info_trash": "Αδειάστε τον κάδο σας για να απελευθερώσετε χώρο στο CryptDrive σας.", "fm_info_trash": "Αδειάστε τον κάδο σας για να απελευθερώσετε χώρο στο CryptDrive σας.",
"fm_info_allFiles": "Περιέχει όλα τα αρχεία από τα \"Έγγραφα\", \"Αταξινόμητα\" και \"Σκουπίδια\". Δεν μπορείτε να μετακινήσετε ή να αφαιρέσετε αρχεία από εδώ.", "fm_info_allFiles": "Περιέχει όλα τα αρχεία από τα \"Έγγραφα\", \"Αταξινόμητα\" και \"Σκουπίδια\". Δεν μπορείτε να μετακινήσετε ή να αφαιρέσετε αρχεία από εδώ.",
"fm_info_anonymous": "Δεν έχετε συνδεθεί, οπότε τα pads σας θα διαγραφούν μετά από 3 μήνες (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">μάθετε περισσότερα</a>). <a href=\"/register/\">Εγγραφείτε</a> ή <a href=\"/login/\">Συνδεθείτε</a> για να τα κρατήσετε επ' αόριστον.", "fm_info_anonymous": "Δεν έχετε συνδεθεί, οπότε τα pads σας θα διαγραφούν μετά από 3 μήνες (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">μάθετε περισσότερα</a>). <a href=\"/register/\">Εγγραφείτε</a> ή <a href=\"/login/\">Συνδεθείτε</a> για να τα κρατήσετε επ' αόριστον.",
@ -369,7 +359,6 @@
"settings_title": "Ρυθμίσεις", "settings_title": "Ρυθμίσεις",
"settings_save": "Αποθήκευση", "settings_save": "Αποθήκευση",
"settings_backupCategory": "Αντίγραφο ασφαλείας", "settings_backupCategory": "Αντίγραφο ασφαλείας",
"settings_backupTitle": "Αποθηκεύστε ή επαναφέρετε όλα σας τα δεδομένα",
"settings_backup": "Δημιουργία αντιγράφου ασφαλείας", "settings_backup": "Δημιουργία αντιγράφου ασφαλείας",
"settings_restore": "Επαναφορά από αντίγραφο ασφαλείας", "settings_restore": "Επαναφορά από αντίγραφο ασφαλείας",
"settings_resetNewTitle": "Εκκαθάριση του CryptDrive", "settings_resetNewTitle": "Εκκαθάριση του CryptDrive",
@ -410,7 +399,6 @@
"settings_codeIndentation": "Εσοχές στον επεξεργαστή κώδικα (κενά)", "settings_codeIndentation": "Εσοχές στον επεξεργαστή κώδικα (κενά)",
"settings_codeUseTabs": "Εισαγωγή εσoχών με χρήση του πλήκτρου tab, αντί κενών", "settings_codeUseTabs": "Εισαγωγή εσoχών με χρήση του πλήκτρου tab, αντί κενών",
"upload_title": "Μεταφόρτωση αρχείου", "upload_title": "Μεταφόρτωση αρχείου",
"upload_rename": "Θέλετε να μετονομάσετε το <b>{0}</b> πριν το μεταφορτώσετε στον διακομιστή;<br><em>Η κατάληξη του αρχείου ({1}) θα προστεθεί αυτόματα. Αυτό το όνομα θα είναι μόνιμο και ορατό σε άλλους χρήστες.</em>",
"upload_serverError": "Λάθος Διακομιστή: δεν μπορούμε να μεταφορτώσουμε το αρχείο σας αυτή την στιγμή.", "upload_serverError": "Λάθος Διακομιστή: δεν μπορούμε να μεταφορτώσουμε το αρχείο σας αυτή την στιγμή.",
"upload_uploadPending": "Προσπαθείτε ήδη να μεταφορτώσετε κάτι αυτή την στιγμή. Ακύρωση και μεταφόρτωση του κανούριου σας αρχείου;", "upload_uploadPending": "Προσπαθείτε ήδη να μεταφορτώσετε κάτι αυτή την στιγμή. Ακύρωση και μεταφόρτωση του κανούριου σας αρχείου;",
"upload_success": "Το αρχείο σας ({0}) έχει μεταφορτωθεί επιτυχώς κι έχει προστεθεί στον αποθηκευτικό σας χώρο.", "upload_success": "Το αρχείο σας ({0}) έχει μεταφορτωθεί επιτυχώς κι έχει προστεθεί στον αποθηκευτικό σας χώρο.",
@ -433,7 +421,6 @@
"todo_removeTaskTitle": "Αφαιρέστε αυτή την εργασία από την λίστα εργασιών σας", "todo_removeTaskTitle": "Αφαιρέστε αυτή την εργασία από την λίστα εργασιών σας",
"pad_showToolbar": "Εμφάνιση γραμμής εργαλείων", "pad_showToolbar": "Εμφάνιση γραμμής εργαλείων",
"pad_hideToolbar": "Απόκρυψη γραμμής εργαλείων", "pad_hideToolbar": "Απόκρυψη γραμμής εργαλείων",
"warn_notPinned": "Αυτό το pad δεν είναι αποθηκευμένο σε κάποιο CryptDrive. Θα διαγραφεί σε 3 μήνες. <a href='/about.html#pinning'>Μάθετε περισσότερα...</a>",
"mdToolbar_button": "Εμφάνιση ή απόκρυψη της γραμμής εργαλείων Markdown", "mdToolbar_button": "Εμφάνιση ή απόκρυψη της γραμμής εργαλείων Markdown",
"mdToolbar_defaultText": "Το κείμενο σας εδώ", "mdToolbar_defaultText": "Το κείμενο σας εδώ",
"mdToolbar_help": "Βοήθεια", "mdToolbar_help": "Βοήθεια",
@ -448,9 +435,6 @@
"mdToolbar_list": "Λίστα με σημεία", "mdToolbar_list": "Λίστα με σημεία",
"mdToolbar_check": "Λίστα εργασιών", "mdToolbar_check": "Λίστα εργασιών",
"mdToolbar_code": "Κώδικας", "mdToolbar_code": "Κώδικας",
"main_p2": "Αυτό το εγχείρημα χρησιμοποιεί τον γραφικό επεξεργαστή <a href=\"http://ckeditor.com/\">CKEditor</a>, <a href=\"https://codemirror.net/\">CodeMirror</a>, και την μηχανή πραγματικού χρόνου <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a>.",
"main_howitworks_p1": "Το CryptPad χρησιμοποιεί μια παραλλαγή του αλγόριθμου <a href=\"https://en.wikipedia.org/wiki/Operational_transformation\">Operational transformation</a> με τον οποίο καταφέρνει να πετύχει κατανεμημένη συναίνεση χρησιμοποιώντας <a href=\"https://bitcoin.org/bitcoin.pdf\">Blockchain</a>, μια δομή που έγινε δημοφιλής μέσω του <a href=\"https://en.wikipedia.org/wiki/Bitcoin\">Bitcoin</a>. Με αυτό τον τρόπο ο αλγόριθμος αποφεύγει την ανάγκη ύπαρξης ενός κεντρικού διακομιστή για να επιλύσει συγκρούσεις ταυτόχρονης επεξεργασίας και χωρίς την ανάγκη επίλυσης αυτών των συγκρούσεων, ο διακομιστής δεν χρειάζεται να έχει γνώση του περιεχομένου που υπάρχει στο pad.",
"main_about_p2": "Αν έχετε απορίες ή σχόλια, επικοινωνήστε μαζί μας!<br/>Μπορείτε να στείλετε <a href=\"https://twitter.com/cryptpad\"><i class=\"fa fa-twitter\"></i>ένα tweet</a>, να δημιουργήσετε ένα θέμα <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"our issue tracker\">στο <i class=\"fa fa-github\"></i>GitHub</a>. Ελάτε να πείτε \"γεια\" <a href=\"https://riot.im/app/#/room/#cryptpad:matrix.org\" title=\"Matrix\">στο <i class=\"fa fa-comment\"></i>Matrix κανάλι μας</a> ή στο IRC (#cryptpad on irc.freenode.net), ή <a href=\"mailto:research@xwiki.com\"><i class=\"fa fa-envelope\"></i>στείλτε μας ένα email</a>.",
"main_about_p22": "Στείλτε μας ένα tweet", "main_about_p22": "Στείλτε μας ένα tweet",
"main_about_p23": "Δημιουργήστε ένα θέμα στο GitHub", "main_about_p23": "Δημιουργήστε ένα θέμα στο GitHub",
"main_about_p24": "Πείτε \"γεια\" στο Matrix", "main_about_p24": "Πείτε \"γεια\" στο Matrix",
@ -458,24 +442,10 @@
"main_about_p26": "Αν έχετε απορίες ή σχόλια, επικοινωνήστε μαζί μας!", "main_about_p26": "Αν έχετε απορίες ή σχόλια, επικοινωνήστε μαζί μας!",
"main_info": "<h2>Συνεργαστείτε με ασφάλεια</h2> Αναπτύξτε τις ιδέες σας μαζί με κοινά αρχεία όσο η τεχνολογία <strong>Zero Knowledge</strong> εξασφαλίζει την ιδιωτικότητά σας; <strong>ακόμη κι από εμάς</strong>.", "main_info": "<h2>Συνεργαστείτε με ασφάλεια</h2> Αναπτύξτε τις ιδέες σας μαζί με κοινά αρχεία όσο η τεχνολογία <strong>Zero Knowledge</strong> εξασφαλίζει την ιδιωτικότητά σας; <strong>ακόμη κι από εμάς</strong>.",
"main_catch_phrase": "Το Zero Knowledge σύννεφο", "main_catch_phrase": "Το Zero Knowledge σύννεφο",
"main_howitworks": "Πως Λειτουργεί",
"main_zeroKnowledge": "Πρωτόκολλο Zero Knowledge",
"main_zeroKnowledge_p": "Δεν χρειάζεται να μας εμπιστευθείτε όταν σας λέμε πως <em>δεν θα κοιτάξουμε</em> τα pads σας, διότι με την επαναστατική τεχνολογία Zero Knowledge του CryptPad <em>δεν μπορούμε</em> να τα κοιτάξουμε. Μάθετε περισσότερα για το πως προστατεύουμε την <a href=\"/privacy.html\" title='Privacy'>Ασφάλεια και Ιδιωτικότητά</a> σας.",
"main_writeItDown": "Σημειώστε το",
"main_writeItDown_p": "Τα μεγαλύτερα έργα προέρχονται από τις μικρότερες ιδέες. Καταγράψτε τις στιγμές έμπνευσης και τις απροσδόκητες ιδέες σας διότι ποτέ δεν ξέρετε ποια από αυτές μπορεί να είναι η επόμενη μεγάλη ανακάλυψη.",
"main_share": "Μοιραστείτε τον σύνδεσμο, μοιραστείτε το pad",
"main_share_p": "Αναπτύξτε τις ιδέες σας μαζί: πραγματοποιήστε αποτελεσματικές συναντήσεις, συνεργαστείτε στις λίστες εργασιών και κάντε γρήγορες παρουσιάσεις με όλους τους φίλους σας και από όλες τις συσκευές σας.",
"main_organize": "Οργανωθείτε",
"main_organize_p": "Με το CryptPad Drive, μπορείτε να συγκεντρωθείτε στο τι είναι σημαντικό. Οι φάκελοι σας επιτρέπουν να ελέγχετε τα έργα σας και να έχετε μία συνολική εικόνα για το πως προχωράνε τα πράγματα.",
"tryIt": "Δοκιμάστε το!",
"main_richText": "Επεξεργαστής Εμπλουτισμένου Κειμένου", "main_richText": "Επεξεργαστής Εμπλουτισμένου Κειμένου",
"main_richText_p": "Επεξεργαστείτε pads εμπλουτισμένου κειμένου συνεργατικά με την πραγματικού χρόνου Zero Knowledge εφαρμογή μας <a href=\"http://ckeditor.com\" target=\"_blank\">CkEditor</a>.",
"main_code": "Επεξεργαστής κώδικα", "main_code": "Επεξεργαστής κώδικα",
"main_code_p": "Επεξεργαστείτε κώδικα συνεργατικά με την πραγματικού χρόνου Zero Knowledge εφαρμογή μας <a href=\"https://www.codemirror.net\" target=\"_blank\">CodeMirror</a>.",
"main_slide": "Επεξεργαστής Slide", "main_slide": "Επεξεργαστής Slide",
"main_slide_p": "Δημιουργείστε τις παρουσιάσεις σας χρησιμοποιώντας μορφοποίηση Markdown και προβάλλετέ τις στον περιηγητή σας.",
"main_poll": "Δημοσκοπήσεις", "main_poll": "Δημοσκοπήσεις",
"main_poll_p": "Προγραμματίστε την συνάντησή σας ή την δραστηριότητά σας, ή ψηφίστε την καλύτερη λύση σχετικά με το πρόβλημά σας.",
"main_drive": "CryptDrive", "main_drive": "CryptDrive",
"main_richTextPad": "Pad εμπλουτισμένου κειμένου", "main_richTextPad": "Pad εμπλουτισμένου κειμένου",
"main_codePad": "Pad κώδικα", "main_codePad": "Pad κώδικα",
@ -533,14 +503,9 @@
"tos_logs": "Τα μεταδεδομένα που παρέχονται από τον περιηγητή σας στον διακομιστή μπορεί να καταγράφονται με σκοπό τη συντήρηση της υπηρεσίας.", "tos_logs": "Τα μεταδεδομένα που παρέχονται από τον περιηγητή σας στον διακομιστή μπορεί να καταγράφονται με σκοπό τη συντήρηση της υπηρεσίας.",
"tos_3rdparties": "Δεν παρέχουμε προσωπικά δεδομένα σε τρίτους παρά μόνο εάν ζητηθεί από το νόμο.", "tos_3rdparties": "Δεν παρέχουμε προσωπικά δεδομένα σε τρίτους παρά μόνο εάν ζητηθεί από το νόμο.",
"four04_pageNotFound": "Η σελίδα που ψάχνετε, δεν βρέθηκε!", "four04_pageNotFound": "Η σελίδα που ψάχνετε, δεν βρέθηκε!",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Με <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"love\" /> στην <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"Γαλλία\" alt=\"Γαλλία\"/> από την <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"updated_0_header_logoTitle": "Μετάβαση στο CryptDrive σας", "updated_0_header_logoTitle": "Μετάβαση στο CryptDrive σας",
"header_logoTitle": "Μετάβαση στο CryptDrive σας", "header_logoTitle": "Μετάβαση στο CryptDrive σας",
"header_homeTitle": "Μετάβαση στην αρχική σελίδα του CryptPad", "header_homeTitle": "Μετάβαση στην αρχική σελίδα του CryptPad",
"initialState": "<p>Αυτό είναι&nbsp;<strong>CryptPad</strong>, ο συνεργατικός επεξεργαστής πραγματικού χρόνου Zero Knowledge. Τα πάντα αποθηκεύονται καθώς πληκτρολογείτε.<br>Μοιραστείτε τον σύνδεσμο σε αυτό το pad για να το επεξεργαστείτε με φίλους ή χρησιμοποιήστε το κουμπί <span class=\"fa fa-share-alt\"></span> για να μοιραστείτε ένα κείμενο με δικαιώματα <em>read-only link</em>&nbsp;το οποίο επιτρέπει να το αναγνώσει κάποιος αλλά όχι να το επεξεργαστεί.</p>",
"codeInitialState": "# Ο συνεργατικός επεξεργαστής Zero Knowledge του CryptPad\n\n* Ό,τι πληκτρολογείτε εδώ είναι κρυπτογραφημένο έτσι ώστε μόνο οι άνθρωποι που έχουν τον σύνδεσμο να μπορούν να έχουν πρόσβαση.\n* Μπορείτε να επιλέξετε την γλώσσα προγραμματισμού για να υπογραμμίζετε και το χρώμα του θέματος UI πάνω δεξιά.",
"slideInitialState": "# CryptSlide\n1. Γράψτε τα περιεχόμενα των slides σας χρησιμοποιώντας σύνταξη markdown\n - Μάθετε περισσότερα για την σύνταξη markdown [εδώ](http://www.markdowntutorial.com/)\n2. Διαχωρίστε τα slides σας με ---\n3. Πατήστε το κουμπάκι \"Play\" για να δείτε το αποτέλεσμα - Τα slides σας ενημερώνονται σε πραγματικό χρόνο",
"driveReadmeTitle": "Τι είναι το CryptPad;", "driveReadmeTitle": "Τι είναι το CryptPad;",
"readme_welcome": "Καλωσήρθατε στο CryptPad!", "readme_welcome": "Καλωσήρθατε στο CryptPad!",
"readme_p1": "Καλωσήρθατε στο CryptPad, όπου μπορείτε να έχετε τις σημειώσεις σας μόνοι σας ή με φίλους.", "readme_p1": "Καλωσήρθατε στο CryptPad, όπου μπορείτε να έχετε τις σημειώσεις σας μόνοι σας ή με φίλους.",

@ -1,14 +1,14 @@
{ {
"_languageName": "Español",
"main_title": "Cryptpad: Zero Knowledge, Editor Colaborativo en Tiempo Real", "main_title": "Cryptpad: Zero Knowledge, Editor Colaborativo en Tiempo Real",
"main_slogan": "La unidad es la fuerza - la colaboración es la clave",
"type": { "type": {
"pad": "Pad", "pad": "Pad",
"code": "Código", "code": "Código",
"poll": "Encuesta", "poll": "Encuesta",
"slide": "Presentación", "slide": "Presentación",
"whiteboard": "Pizarra", "whiteboard": "Pizarra",
"contacts": "Contactos" "contacts": "Contactos",
"kanban": "Kanban",
"drive": "CryptDrive"
}, },
"disconnected": "Desconectado", "disconnected": "Desconectado",
"synchronizing": "Sincronización", "synchronizing": "Sincronización",
@ -49,7 +49,6 @@
"notifyJoined": "{0} se ha unido a la sesión de colaboración", "notifyJoined": "{0} se ha unido a la sesión de colaboración",
"notifyRenamed": "{0} ahora se conoce como {1}", "notifyRenamed": "{0} ahora se conoce como {1}",
"notifyLeft": "{0} ha dejado la sesión de colaboración", "notifyLeft": "{0} ha dejado la sesión de colaboración",
"tryIt": "¡Pruébalo!",
"okButton": "OK (Enter)", "okButton": "OK (Enter)",
"cancelButton": "Cancelar (Esc)", "cancelButton": "Cancelar (Esc)",
"poll_title": "Selector de fecha Zero Knowledge", "poll_title": "Selector de fecha Zero Knowledge",
@ -72,10 +71,6 @@
"poll_removeUser": "¿Estás seguro de que quieres eliminar este usuario?", "poll_removeUser": "¿Estás seguro de que quieres eliminar este usuario?",
"poll_titleHint": "Título", "poll_titleHint": "Título",
"poll_descriptionHint": "Descripción", "poll_descriptionHint": "Descripción",
"main_p2": "Este proyecto utiliza el editor de texto visual <a href=\"http://ckeditor.com/\">CKEditor</a>, <a href=\"https://codemirror.net/\">CodeMirror</a>, y el motor en tiempo real <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a>.",
"main_howitworks": "¿Cómo funciona?",
"main_howitworks_p1": "CryptPad utiliza una variante del algoritmo de <a href='https://en.wikipedia.org/wiki/Operational_transformation'>transformación operacional</a> (página en inglés) que es capaz de encontrar un consenso distribuido usando un <a href='https://bitcoin.org/bitcoin.pdf'>Blockchain Nakamoto</a> (página en inglés), popularizado por <a href='https://es.wikipedia.org/wiki/Bitcoin'>Bitcoin</a>. De esta manera el algoritmo puede evitar la necesidad de un servidor central para resolver conflictos de edición de la transformación operacional y sin necesidad de resolver conflictos, el servidor puede mantenerse inconsciente del contenido que se está editando en el pad.",
"main_about_p2": "Si tienes preguntas o comentarios, puedes <a href=\"https://twitter.com/cryptpad\"><i class=\"fa fa-twitter\"></i>enviarnos un tweet</a>, abrir un issue <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"nuestro issue tracker\">en <i class=\"fa fa-github\"></i>GitHub</a>. saludarnos en <a href=\"https://riot.im/app/#/room/#cryptpad:matrix.org\" title=\"Matrix\">nuestro <i class=\"fa fa-comment\"></i>canal Matrix</a> o en IRC (#cryptpad on irc.freenode.net), o <a href=\"mailto:research@xwiki.com\"><i class=\"fa fa-envelope\"></i>envianos un email</a>.",
"button_newpad": "Crear nuevo pad de texto enriquecido", "button_newpad": "Crear nuevo pad de texto enriquecido",
"button_newcode": "Crear nuevo pad de código", "button_newcode": "Crear nuevo pad de código",
"button_newpoll": "Crear nueva encuesta", "button_newpoll": "Crear nueva encuesta",
@ -103,10 +98,6 @@
"tos_e2ee": "Los documentos Cryptpad pueden ser leídos o modificados por cualquiera que pueda adivinar o que pueda tener el enlace. Recomendamos que utilices mensajes cifrados de punto a punto (e2ee) para compartir URLs, no asumimos ninguna responsabilidad en el evento de alguna fuga.", "tos_e2ee": "Los documentos Cryptpad pueden ser leídos o modificados por cualquiera que pueda adivinar o que pueda tener el enlace. Recomendamos que utilices mensajes cifrados de punto a punto (e2ee) para compartir URLs, no asumimos ninguna responsabilidad en el evento de alguna fuga.",
"tos_logs": "Los metadatos entregados por el navegador al servidor pueden ser almacenados para la mantenencia del servicio.", "tos_logs": "Los metadatos entregados por el navegador al servidor pueden ser almacenados para la mantenencia del servicio.",
"tos_3rdparties": "No proveemos datos individualizados a terceros a menos de ser obligados por la ley.", "tos_3rdparties": "No proveemos datos individualizados a terceros a menos de ser obligados por la ley.",
"bottom_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Hecho con <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"amor\" /> en <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" alt=\"Francia\" /></a>",
"bottom_support": "<a href=\"http://labs.xwiki.com/\" title=\"XWiki Labs\" target=\"_blank\" rel=\"noopener noreferrer\">Un <img src=\"/customize/logo-xwiki2.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/>Proyecto Labs</a> con el soporte de <a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"><img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Con <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"amor\" /> de <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"France\" alt=\"Francia\"/> por <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferre-r\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_logoTitle": "Volver a tu CryptDrive", "header_logoTitle": "Volver a tu CryptDrive",
"websocketError": "Error al conectarse al servidor WebSocket", "websocketError": "Error al conectarse al servidor WebSocket",
"typeError": "Este documento no es compatible con la aplicación seleccionada", "typeError": "Este documento no es compatible con la aplicación seleccionada",
@ -201,7 +192,6 @@
"register_explanation": "<p>Vamos a ver algunas cosas antes</p><ul><li>Tu contraseña es tu clave secreta que cifra todos tus documentos. Si la pierdes no podremos recuperar tus datos.</li><li>Puedes importar documentos que has visto recientemente en tu navegador para tenerlos en tu cuenta.</li><li>Si estás usando un ordenador compartido, tienes que cerrar sesión cuando terminas, cerrar la pestaña no es suficiente.</li></ul>", "register_explanation": "<p>Vamos a ver algunas cosas antes</p><ul><li>Tu contraseña es tu clave secreta que cifra todos tus documentos. Si la pierdes no podremos recuperar tus datos.</li><li>Puedes importar documentos que has visto recientemente en tu navegador para tenerlos en tu cuenta.</li><li>Si estás usando un ordenador compartido, tienes que cerrar sesión cuando terminas, cerrar la pestaña no es suficiente.</li></ul>",
"settings_title": "Preferencias", "settings_title": "Preferencias",
"settings_save": "Guardar", "settings_save": "Guardar",
"settings_backupTitle": "Copia de seguridad",
"settings_backup": "Copia de seguridad", "settings_backup": "Copia de seguridad",
"settings_restore": "Recuperar datos", "settings_restore": "Recuperar datos",
"settings_reset": "Quita todos los documentos de tu CryptDrive", "settings_reset": "Quita todos los documentos de tu CryptDrive",
@ -211,22 +201,10 @@
"settings_resetTipsButton": "Restaurar consejos", "settings_resetTipsButton": "Restaurar consejos",
"settings_resetTipsDone": "Todos los consejos ahora están visibles", "settings_resetTipsDone": "Todos los consejos ahora están visibles",
"main_info": "<h1>Colabora con Confianza</h1><br>Cultiva ideas juntos con documentos compartidos con tecnología <strong>Zero Knowledge</strong> que protege tu privacidad.", "main_info": "<h1>Colabora con Confianza</h1><br>Cultiva ideas juntos con documentos compartidos con tecnología <strong>Zero Knowledge</strong> que protege tu privacidad.",
"main_zeroKnowledge": "Zero Knowledge",
"main_zeroKnowledge_p": "No tienes que confiar en que <em>no</em> veremos tus documentos, con la tecnología Zero Knowledge de CryptPad <em>no podemos</em>. Aprende más sobre cómo protegemos tu <a href=\"/privacy.html\" title='Privacidad'>Privacidad y Seguridad</a>.",
"main_writeItDown": "Escríbelo",
"main_writeItDown_p": "Los mejores proyectos vienen de las más pequeñas ideas. Escribe tus momentos de inspiración e ideas inesperadas porque nunca sabrás cuál será tu próximo descubrimiento.",
"main_share": "Comparte el enlace, comparte el pad",
"main_share_p": "Cultiva ideas juntos: ten reuniones eficaces, colabora en listas y haz presentaciones rápidas en todos tus dispositivos.",
"main_organize": "Organízate",
"main_organize_p": "Con CryptPad Drive, mantén tu atención en lo más importante. Las carpetas te permiten organizar tus proyectos y tener una visión global de dónde van las cosas.",
"main_richText": "Editor de Texto Enriquecido", "main_richText": "Editor de Texto Enriquecido",
"main_richText_p": "Colabora en texto enriquecido con nuestro editor Zero Knowledge en tiempo real <a href=\"http://ckeditor.com\" target=\"_blank\">CkEditor</a>.",
"main_code": "Editor de código", "main_code": "Editor de código",
"main_code_p": "Edita código fuente para tus programas con nuestro editor Zero Knowledge en tiempo real <a href=\"https://www.codemirror.net\" target=\"_blank\">CodeMirror</a>.",
"main_slide": "Editor de presentación", "main_slide": "Editor de presentación",
"main_slide_p": "Crea presentaciones utilizando Markdown, y visualízalos en tu navegador",
"main_poll": "Encuestas", "main_poll": "Encuestas",
"main_poll_p": "Planifica tus reuniones y eventos, o vota para la mejor solución a un problema.",
"main_drive": "CryptDrive", "main_drive": "CryptDrive",
"footer_applications": "Aplicaciones", "footer_applications": "Aplicaciones",
"footer_contact": "Contacto", "footer_contact": "Contacto",
@ -244,9 +222,6 @@
"settings_userFeedback": "Activar feedback", "settings_userFeedback": "Activar feedback",
"settings_anonymous": "No has iniciado sesión. Tus ajustes se aplicarán sólo a este navegador.", "settings_anonymous": "No has iniciado sesión. Tus ajustes se aplicarán sólo a este navegador.",
"blog": "Blog", "blog": "Blog",
"initialState": "<p>Esto es&nbsp;<strong>CryptPad</strong>, el editor colaborativo en tiempo real Zero Knowledge. Todo está guardado cuando escribes.<br>Comparte el enlace a este pad para editar con amigos o utiliza el botón <span class=\"fa fa-share-alt\"></span> para obtener un <em>enlace sólo lectura</em>&nbsp;que permite leer pero no escribir.</p>",
"codeInitialState": "/*\n Esto es CryptPad, el editor colaborativo en tiempo real zero knowledge.\n Lo que escribes aquí está cifrado de manera que sólo las personas con el enlace pueden acceder a ello.\n Incluso el servidor no puede ver lo que escribes.\n Lo que ves aquí, lo que escuchas aquí, cuando sales, se queda aquí\n*/",
"slideInitialState": "# CryptSlide\n1. Escribe tu contenido en Markdown\n - Puedes aprender más sobre Markdown [aquí](http://www.markdowntutorial.com/)\n2. Separa tus diapositivas con ---\n3. Haz clic en \"Presentar\" para ver el resultado - Tus diapositivas se actualizan en tiempo real",
"driveReadmeTitle": "¿Qué es CryptPad?", "driveReadmeTitle": "¿Qué es CryptPad?",
"readme_welcome": "¡Bienvenido a CryptPad!", "readme_welcome": "¡Bienvenido a CryptPad!",
"readme_p1": "Bienvenido a CryptPad, aquí podrás anotar cosas solo o con otra gente.", "readme_p1": "Bienvenido a CryptPad, aquí podrás anotar cosas solo o con otra gente.",
@ -270,7 +245,6 @@
"settings_resetError": "Verificación no válida. Tu CryptDrive no fue cambiado.", "settings_resetError": "Verificación no válida. Tu CryptDrive no fue cambiado.",
"saved": "Guardado", "saved": "Guardado",
"printButton": "Imprimir", "printButton": "Imprimir",
"printButtonTitle": "Imprimir tu presentación o exportar a PDF",
"printOptions": "Opciones de impresión", "printOptions": "Opciones de impresión",
"printSlideNumber": "Mostrar el número de diapositiva", "printSlideNumber": "Mostrar el número de diapositiva",
"printDate": "Mostrar la fecha", "printDate": "Mostrar la fecha",
@ -283,10 +257,8 @@
"settings_importConfirm": "¿Seguro que quieres importar tus pads recientes a tu cuenta CryptDrive?", "settings_importConfirm": "¿Seguro que quieres importar tus pads recientes a tu cuenta CryptDrive?",
"settings_importDone": "Importación terminada", "settings_importDone": "Importación terminada",
"tips": { "tips": {
"lag": "El icono verde en la parte superior derecha muestra la calidad de tu connexión a CryptPad.",
"shortcuts": "`ctrl+b`, `ctrl+i`, y `ctrl+u` son accesos rápidos para negrita, itálica y subrayado.", "shortcuts": "`ctrl+b`, `ctrl+i`, y `ctrl+u` son accesos rápidos para negrita, itálica y subrayado.",
"indent": "Cuando editas listas, puedes usar tab o shift+tab para incrementar o decrementar la sangría.", "indent": "Cuando editas listas, puedes usar tab o shift+tab para incrementar o decrementar la sangría.",
"title": "Puedes cambiar el título de tus pads en la parte superior de la pantalla.",
"store": "Cada vez que visitas un pad con una sesión iniciada se guardará en tu CryptDrive.", "store": "Cada vez que visitas un pad con una sesión iniciada se guardará en tu CryptDrive.",
"marker": "Puedes resaltar texto en un pad utilizando el \"marcador\" en el menú de estílo.", "marker": "Puedes resaltar texto en un pad utilizando el \"marcador\" en el menú de estílo.",
"driveUpload": "Los usuarios registrados pueden subir archivos cifrados arrastrándolos hacia CryptDrive." "driveUpload": "Los usuarios registrados pueden subir archivos cifrados arrastrándolos hacia CryptDrive."
@ -326,10 +298,7 @@
"historyButton": "Mostrar el historial del documento", "historyButton": "Mostrar el historial del documento",
"history_next": "Ir a la versión anterior", "history_next": "Ir a la versión anterior",
"history_prev": "Ir a la versión posterior", "history_prev": "Ir a la versión posterior",
"history_goTo": "Ir a la versión seleccionada",
"history_close": "Volver",
"history_closeTitle": "Cerrar el historial", "history_closeTitle": "Cerrar el historial",
"history_restore": "Restaurar",
"history_restoreTitle": "Restaurar la versión seleccionada del documento", "history_restoreTitle": "Restaurar la versión seleccionada del documento",
"history_restorePrompt": "¿Estás seguro de que quieres cambiar la versión actual del documento por ésta?", "history_restorePrompt": "¿Estás seguro de que quieres cambiar la versión actual del documento por ésta?",
"history_restoreDone": "Documento restaurado", "history_restoreDone": "Documento restaurado",
@ -371,22 +340,15 @@
"upload_size": "Tamaño", "upload_size": "Tamaño",
"upload_progress": "Progreso", "upload_progress": "Progreso",
"download_button": "Descifrar y descargar", "download_button": "Descifrar y descargar",
"warn_notPinned": "Este pad no está en ningún CryptDrive. Expirará después de 3 meses. <a href='/about.html#pinning'>Acerca de...</a>",
"poll_remove": "Quitar", "poll_remove": "Quitar",
"poll_edit": "Editar", "poll_edit": "Editar",
"poll_locked": "Cerrado", "poll_locked": "Cerrado",
"poll_unlocked": "Abierto", "poll_unlocked": "Abierto",
"poll_show_help_button": "Mostrar ayuda",
"poll_hide_help_button": "Esconder ayuda",
"common_connectionLost": "<b>Conexión perdida</b><br>El documento está ahora en modo sólo lectura hasta que la conexión vuelva.", "common_connectionLost": "<b>Conexión perdida</b><br>El documento está ahora en modo sólo lectura hasta que la conexión vuelva.",
"updated_0_common_connectionLost": "<b>Conexión perdida</b><br>El documento está ahora en modo sólo lectura hasta que la conexión vuelva.",
"supportCryptpad": "Ayudar a CryptPad", "supportCryptpad": "Ayudar a CryptPad",
"pinLimitReachedAlert": "Has llegado a tu límite de espacio. Los nuevos pads no serán guardados en tu CryptDrive.<br>Puedes eliminar pads de tu CryptDrive o <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">suscribirte a una oferta premium</a> para obtener más espacio.", "pinLimitReachedAlert": "Has llegado a tu límite de espacio. Los nuevos pads no serán guardados en tu CryptDrive.<br>Puedes eliminar pads de tu CryptDrive o <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">suscribirte a una oferta premium</a> para obtener más espacio.",
"updated_0_pinLimitReachedAlert": "Has llegado a tu límite de espacio. Los nuevos pads no serán guardados en tu CryptDrive.<br>Puedes eliminar pads de tu CryptDrive o <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">suscribirte a una oferta premium</a> para obtener más espacio.",
"fm_info_trash": "Vacía tu papelera para liberar espacio en tu CryptDrive.", "fm_info_trash": "Vacía tu papelera para liberar espacio en tu CryptDrive.",
"updated_0_fm_info_trash": "Vacía tu papelera para liberar espacio en tu CryptDrive.",
"fs_migration": "Tu CryptDrive fue actualizado a una nueva versión.<br><strong>Por favor, recarga la página.</strong>", "fs_migration": "Tu CryptDrive fue actualizado a una nueva versión.<br><strong>Por favor, recarga la página.</strong>",
"login_notRegistered": "¿No estás registrado?",
"upload_mustLogin": "Tienes que estar conectado para subir archivos", "upload_mustLogin": "Tienes que estar conectado para subir archivos",
"uploadButton": "Subir", "uploadButton": "Subir",
"uploadButtonTitle": "Subir un archivo a la carpeta", "uploadButtonTitle": "Subir un archivo a la carpeta",

@ -32,7 +32,7 @@
"inactiveError": "Ce pad a été supprimé en raison de son inactivité. Appuyez sur Échap pour créer un nouveau pad.", "inactiveError": "Ce pad a été supprimé en raison de son inactivité. Appuyez sur Échap pour créer un nouveau pad.",
"chainpadError": "Une erreur critique est survenue lors de la mise à jour du contenu. Le pad est désormais en mode lecture seule afin de s'assurer que vous ne perdiez pas davantage de données.<br>Appuyez sur <em>Échap</em> pour voir le pad ou rechargez la page pour pouvoir le modifier à nouveau.", "chainpadError": "Une erreur critique est survenue lors de la mise à jour du contenu. Le pad est désormais en mode lecture seule afin de s'assurer que vous ne perdiez pas davantage de données.<br>Appuyez sur <em>Échap</em> pour voir le pad ou rechargez la page pour pouvoir le modifier à nouveau.",
"invalidHashError": "L'URL du document demandé n'est pas valide.", "invalidHashError": "L'URL du document demandé n'est pas valide.",
"errorCopy": " Vous pouvez toujours copier son contenu ailleurs en appuyant sur <em>Échap</em>.<br> Dés que vous aurez quitté la page, il sera impossible de le récupérer.", "errorCopy": " Vous pouvez toujours copier son contenu ailleurs en appuyant sur <em>Échap</em>.<br> Dés que vous aurez quitté la page, il sera impossible de le récupérer !",
"errorRedirectToHome": "Appuyez sur <em>Échap</em> pour retourner vers votre CryptDrive.", "errorRedirectToHome": "Appuyez sur <em>Échap</em> pour retourner vers votre CryptDrive.",
"newVersionError": "Une nouvelle version de CryptPad est disponible.<br><a href='#'>Rechargez la page</a> pour utiliser la nouvelle version, ou appuyez sur Échap pour accéder au contenu actuel en <b>mode hors-ligne</b>.", "newVersionError": "Une nouvelle version de CryptPad est disponible.<br><a href='#'>Rechargez la page</a> pour utiliser la nouvelle version, ou appuyez sur Échap pour accéder au contenu actuel en <b>mode hors-ligne</b>.",
"loading": "Chargement...", "loading": "Chargement...",
@ -41,7 +41,7 @@
"synced": "Tout est enregistré", "synced": "Tout est enregistré",
"deleted": "Pad supprimé de votre CryptDrive", "deleted": "Pad supprimé de votre CryptDrive",
"deletedFromServer": "Pad supprimé du serveur", "deletedFromServer": "Pad supprimé du serveur",
"mustLogin": "Vous devez être enregistré pour avoir accès à cette page.", "mustLogin": "Vous devez être enregistré pour avoir accès à cette page",
"disabledApp": "Cette application a été désactivée. Pour plus d'information, veuillez contacter l'administrateur de ce CryptPad.", "disabledApp": "Cette application a été désactivée. Pour plus d'information, veuillez contacter l'administrateur de ce CryptPad.",
"realtime_unrecoverableError": "Une erreur critique est survenue. Cliquez sur OK pour recharger la page.", "realtime_unrecoverableError": "Une erreur critique est survenue. Cliquez sur OK pour recharger la page.",
"disconnected": "Déconnecté", "disconnected": "Déconnecté",
@ -114,7 +114,7 @@
"saveTemplatePrompt": "Choisir un titre pour ce modèle", "saveTemplatePrompt": "Choisir un titre pour ce modèle",
"templateSaved": "Modèle enregistré !", "templateSaved": "Modèle enregistré !",
"selectTemplate": "Sélectionner un modèle ou appuyer sur Échap", "selectTemplate": "Sélectionner un modèle ou appuyer sur Échap",
"useTemplate": "Commencer avec un modèle?", "useTemplate": "Commencer avec un modèle ?",
"useTemplateOK": "Choisir un modèle (Entrée)", "useTemplateOK": "Choisir un modèle (Entrée)",
"useTemplateCancel": "Document vierge (Échap)", "useTemplateCancel": "Document vierge (Échap)",
"template_import": "Importer un modèle", "template_import": "Importer un modèle",
@ -132,7 +132,7 @@
"printSlideNumber": "Afficher le numéro des slides", "printSlideNumber": "Afficher le numéro des slides",
"printDate": "Afficher la date", "printDate": "Afficher la date",
"printTitle": "Afficher le titre du pad", "printTitle": "Afficher le titre du pad",
"printCSS": "Personnaliser l'apparence (CSS):", "printCSS": "Personnaliser l'apparence (CSS) :",
"printTransition": "Activer les animations de transition", "printTransition": "Activer les animations de transition",
"printBackground": "Utiliser une image d'arrière-plan", "printBackground": "Utiliser une image d'arrière-plan",
"printBackgroundButton": "Choisir une image", "printBackgroundButton": "Choisir une image",
@ -147,9 +147,9 @@
"tags_title": "Mots-clés du pad (pour vous uniquement)", "tags_title": "Mots-clés du pad (pour vous uniquement)",
"tags_add": "Modifier les mots-clés du pad", "tags_add": "Modifier les mots-clés du pad",
"tags_searchHint": "Commencez une recherche par # dans votre CryptDrive pour retrouver vos pads par mot-clé.", "tags_searchHint": "Commencez une recherche par # dans votre CryptDrive pour retrouver vos pads par mot-clé.",
"tags_notShared": "Vos mots-clés ne sont pas partagés avec les autres utilisateurs.", "tags_notShared": "Vos mots-clés ne sont pas partagés avec les autres utilisateurs",
"tags_duplicate": "Mot-clé déjà présent : {0}", "tags_duplicate": "Mot-clé déjà présent : {0}",
"tags_noentry": "Vous ne pouvez pas ajouter de mots-clés à un pad supprimé!", "tags_noentry": "Vous ne pouvez pas ajouter de mots-clés à un pad supprimé !",
"slideOptionsText": "Options", "slideOptionsText": "Options",
"slideOptionsTitle": "Personnaliser la présentation", "slideOptionsTitle": "Personnaliser la présentation",
"slideOptionsButton": "Enregistrer (Entrée)", "slideOptionsButton": "Enregistrer (Entrée)",
@ -241,7 +241,7 @@
"poll_edit": "Modifier", "poll_edit": "Modifier",
"poll_locked": "Verrouillé", "poll_locked": "Verrouillé",
"poll_unlocked": "Déverrouillé", "poll_unlocked": "Déverrouillé",
"poll_bookmark_col": "Marquer cette colonne comme favorite pour qu'elle soit toujours déverrouillée et affichée en première position.", "poll_bookmark_col": "Marquer cette colonne comme favorite pour qu'elle soit toujours déverrouillée et affichée en première position",
"poll_bookmarked_col": "Voici votre colonne favorite ; elle sera toujours déverrouillée et affichée en première position.", "poll_bookmarked_col": "Voici votre colonne favorite ; elle sera toujours déverrouillée et affichée en première position.",
"poll_total": "TOTAL", "poll_total": "TOTAL",
"poll_comment_list": "Commentaires", "poll_comment_list": "Commentaires",
@ -252,7 +252,7 @@
"poll_comment_disabled": "Publiez ce sondage en utilisant le bouton ✓ afin d'activer les commentaires.", "poll_comment_disabled": "Publiez ce sondage en utilisant le bouton ✓ afin d'activer les commentaires.",
"oo_reconnect": "La connexion au serveur est rétablie. Cliquez sur OK pour recharger la page et continuer l'édition.", "oo_reconnect": "La connexion au serveur est rétablie. Cliquez sur OK pour recharger la page et continuer l'édition.",
"oo_cantUpload": "Impossible d'importer un document si d'autres utilisateurs sont présents.", "oo_cantUpload": "Impossible d'importer un document si d'autres utilisateurs sont présents.",
"oo_uploaded": "L'importation est terminée. Cliquez sur OK pour recharger la page ou sur Annuler pour continuer en lecture-seule", "oo_uploaded": "L'importation est terminée. Cliquez sur OK pour recharger la page ou sur Annuler pour continuer en lecture-seule.",
"canvas_clear": "Nettoyer", "canvas_clear": "Nettoyer",
"canvas_delete": "Supprimer la sélection", "canvas_delete": "Supprimer la sélection",
"canvas_disable": "Désactiver le dessin", "canvas_disable": "Désactiver le dessin",
@ -286,7 +286,7 @@
"userlist_pending": "En attente...", "userlist_pending": "En attente...",
"contacts_title": "Contacts", "contacts_title": "Contacts",
"contacts_addError": "Erreur lors de l'ajout de ce contact dans votre liste", "contacts_addError": "Erreur lors de l'ajout de ce contact dans votre liste",
"contacts_added": "Invitation de contact acceptée", "contacts_added": "Invitation de contact acceptée.",
"contacts_rejected": "Invitation de contact rejetée", "contacts_rejected": "Invitation de contact rejetée",
"contacts_request": "<em>{0}</em> souhaite vous ajouter en tant que contact. <b>Accepter<b> ?", "contacts_request": "<em>{0}</em> souhaite vous ajouter en tant que contact. <b>Accepter<b> ?",
"contacts_send": "Envoyer", "contacts_send": "Envoyer",
@ -348,14 +348,14 @@
"fm_unknownFolderError": "Le dossier sélectionné ou le dernier dossier visité n'existe plus. Ouverture du dossier parent...", "fm_unknownFolderError": "Le dossier sélectionné ou le dernier dossier visité n'existe plus. Ouverture du dossier parent...",
"fm_contextMenuError": "Impossible d'ouvrir le menu contextuel pour cet élément. Si le problème persiste, essayez de rechercher la page.", "fm_contextMenuError": "Impossible d'ouvrir le menu contextuel pour cet élément. Si le problème persiste, essayez de rechercher la page.",
"fm_selectError": "Impossible de sélectionner l'élément ciblé. Si le problème persiste, essayez de recharger la page.", "fm_selectError": "Impossible de sélectionner l'élément ciblé. Si le problème persiste, essayez de recharger la page.",
"fm_categoryError": "Impossible d'afficher la catégorie sélectionnée, affichage de Documents", "fm_categoryError": "Impossible d'afficher la catégorie sélectionnée, affichage de Documents.",
"fm_info_root": "Créez ici autant de dossiers que vous le souhaitez pour trier vos fichiers.", "fm_info_root": "Créez ici autant de dossiers que vous le souhaitez pour trier vos fichiers.",
"fm_info_unsorted": "Contient tous les pads que vous avez ouvert et qui ne sont pas triés dans \"Documents\" ou déplacés vers la \"Corbeille\".", "fm_info_unsorted": "Contient tous les pads que vous avez ouvert et qui ne sont pas triés dans \"Documents\" ou déplacés vers la \"Corbeille\".",
"fm_info_template": "Contient tous les fichiers que vous avez sauvés en tant que modèle afin de les réutiliser lors de la création d'un nouveau pad.", "fm_info_template": "Contient tous les fichiers que vous avez sauvés en tant que modèle afin de les réutiliser lors de la création d'un nouveau pad.",
"fm_info_recent": "Liste les derniers pads que vous avez modifiés ou ouverts.", "fm_info_recent": "Liste les derniers pads que vous avez modifiés ou ouverts.",
"fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive", "fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive.",
"fm_info_allFiles": "Contient tous les fichiers de \"Documents\", \"Fichiers non triés\" et \"Corbeille\". Vous ne pouvez pas supprimer ou déplacer des fichiers depuis cet endroit.", "fm_info_allFiles": "Contient tous les fichiers de \"Documents\", \"Fichiers non triés\" et \"Corbeille\". Vous ne pouvez pas supprimer ou déplacer des fichiers depuis cet endroit.",
"fm_info_anonymous": "Vous n'êtes pas connecté, ces pads seront donc supprimés après 3 mois d'inactivité (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">découvrez pourquoi</a>). Ils sont stockés dans votre navigateur donc nettoyer votre historique peut les faire disparaître.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour les maintenir en vie.", "fm_info_anonymous": "Vous n'êtes pas connecté, ces pads seront donc supprimés après 3 mois d'inactivité (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">découvrez pourquoi</a>). Ils sont stockés dans votre navigateur donc nettoyer votre historique peut les faire disparaître.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour les maintenir en vie.<br>",
"fm_info_sharedFolder": "Voici le contenu d'un dossier partagé. Il n'est accessible qu'en lecture seule car vous n'êtes pas connecté.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour pouvoir l'importer dans votre CryptDrive et le modifier.", "fm_info_sharedFolder": "Voici le contenu d'un dossier partagé. Il n'est accessible qu'en lecture seule car vous n'êtes pas connecté.<br><a href=\"/register/\">Inscrivez-vous</a> ou <a href=\"/login/\">connectez-vous</a> pour pouvoir l'importer dans votre CryptDrive et le modifier.",
"fm_info_owned": "Vous êtes propriétaire des pads affichés dans cette catégorie. Cela signifie que vous pouvez choisir de les supprimer définitivement du serveur à n'importe quel moment. Ils seront alors inaccessibles pour tous les autres utilisateurs.", "fm_info_owned": "Vous êtes propriétaire des pads affichés dans cette catégorie. Cela signifie que vous pouvez choisir de les supprimer définitivement du serveur à n'importe quel moment. Ils seront alors inaccessibles pour tous les autres utilisateurs.",
"fm_alert_backupUrl": "Lien de secours pour ce CryptDrive.<br>Il est <strong>fortement recommandé</strong> de garder ce lien pour vous-même.<br>Il vous servira en cas de perte des données de votre navigateur afin de retrouver vos fichiers.<br>Quiconque se trouve en possession de celui-ci peut modifier ou supprimer tous les fichiers de ce gestionnaire.<br>", "fm_alert_backupUrl": "Lien de secours pour ce CryptDrive.<br>Il est <strong>fortement recommandé</strong> de garder ce lien pour vous-même.<br>Il vous servira en cas de perte des données de votre navigateur afin de retrouver vos fichiers.<br>Quiconque se trouve en possession de celui-ci peut modifier ou supprimer tous les fichiers de ce gestionnaire.<br>",
@ -392,7 +392,7 @@
"fc_prop": "Propriétés", "fc_prop": "Propriétés",
"fc_hashtag": "Mots-clés", "fc_hashtag": "Mots-clés",
"fc_sizeInKilobytes": "Taille en kilo-octets", "fc_sizeInKilobytes": "Taille en kilo-octets",
"fo_moveUnsortedError": "La liste des modèles ne peut pas contenir de dossiers.", "fo_moveUnsortedError": "La liste des modèles ne peut pas contenir de dossiers",
"fo_existingNameError": "Ce nom est déjà utilisé dans ce répertoire. Veuillez en choisir un autre.", "fo_existingNameError": "Ce nom est déjà utilisé dans ce répertoire. Veuillez en choisir un autre.",
"fo_moveFolderToChildError": "Vous ne pouvez pas déplacer un dossier dans un de ses descendants", "fo_moveFolderToChildError": "Vous ne pouvez pas déplacer un dossier dans un de ses descendants",
"fo_unableToRestore": "Impossible de restaurer ce fichier à son emplacement d'origine. Vous pouvez essayer de le déplacer à un nouvel emplacement.", "fo_unableToRestore": "Impossible de restaurer ce fichier à son emplacement d'origine. Vous pouvez essayer de le déplacer à un nouvel emplacement.",
@ -419,7 +419,7 @@
"login_unhandledError": "Une erreur inattendue s'est produite :(", "login_unhandledError": "Une erreur inattendue s'est produite :(",
"register_importRecent": "Importer les pads de votre session anonyme", "register_importRecent": "Importer les pads de votre session anonyme",
"register_acceptTerms": "J'accepte <a href='/terms.html' tabindex='-1'>les conditions d'utilisation</a>", "register_acceptTerms": "J'accepte <a href='/terms.html' tabindex='-1'>les conditions d'utilisation</a>",
"register_passwordsDontMatch": "Les mots de passe doivent être identiques!", "register_passwordsDontMatch": "Les mots de passe doivent être identiques !",
"register_passwordTooShort": "Les mots de passe doivent contenir au moins {0} caractères.", "register_passwordTooShort": "Les mots de passe doivent contenir au moins {0} caractères.",
"register_mustAcceptTerms": "Vous devez accepter les conditions d'utilisation.", "register_mustAcceptTerms": "Vous devez accepter les conditions d'utilisation.",
"register_mustRememberPass": "Nous ne pouvons pas réinitialiser votre mot de passe si vous l'oubliez. C'est important que vous vous en souveniez! Veuillez cocher la case pour confirmer.", "register_mustRememberPass": "Nous ne pouvons pas réinitialiser votre mot de passe si vous l'oubliez. C'est important que vous vous en souveniez! Veuillez cocher la case pour confirmer.",
@ -429,7 +429,7 @@
"register_alreadyRegistered": "Cet utilisateur existe déjà, souhaitez-vous vous connecter ?", "register_alreadyRegistered": "Cet utilisateur existe déjà, souhaitez-vous vous connecter ?",
"register_whyRegister": "Pourquoi s'inscrire ?", "register_whyRegister": "Pourquoi s'inscrire ?",
"register_header": "Bienvenue dans CryptPad", "register_header": "Bienvenue dans CryptPad",
"register_explanation": "<p>Faisons d'abord le point sur certaines choses</p><ul><li>Votre mot de passe est la clé secrète de tous vos pads. Si vous le perdez, il n'y a aucun moyen de récupérer vos données.</li><li>Vous pouvez importer les pads récents de ce navigateur pour les avoir dans votre compte utilisateur.</li><li>Si vous utilisez un ordinateur partagé, vous devez vous déconnecter avant de partir, fermer l'onglet n'est pas suffisant.</li></ul>", "register_explanation": "<h3>Faisons d'abord le point sur certaines choses</h3><ul class='list-unstyled'><li><i class='fa fa-info-circle'></i>Votre mot de passe est la clé secrète de tous vos pads. Si vous le perdez, il n'y a aucun moyen de récupérer vos données.</li><li><i class='fa fa-info-circle'></i>Vous pouvez importer les pads récents de ce navigateur pour les avoir dans votre compte utilisateur.</li><li><i class='fa fa-info-circle'></i>Si vous utilisez un ordinateur partagé, vous devez vous déconnecter avant de partir, fermer l'onglet n'est pas suffisant.</li></ul>",
"settings_cat_account": "Compte", "settings_cat_account": "Compte",
"settings_cat_drive": "CryptDrive", "settings_cat_drive": "CryptDrive",
"settings_cat_cursor": "Curseur", "settings_cat_cursor": "Curseur",
@ -457,14 +457,14 @@
"settings_export_done": "Votre téléchargement est prêt !", "settings_export_done": "Votre téléchargement est prêt !",
"settings_exportError": "Voir les erreurs", "settings_exportError": "Voir les erreurs",
"settings_exportErrorDescription": "Nous n'avons pas réussi à ajouter les documents suivant dans le téléchargement :", "settings_exportErrorDescription": "Nous n'avons pas réussi à ajouter les documents suivant dans le téléchargement :",
"settings_exportErrorEmpty": "Ce document ne peut pas être exporté (document vide ou contenu invalide)", "settings_exportErrorEmpty": "Ce document ne peut pas être exporté (document vide ou contenu invalide).",
"settings_exportErrorMissing": "Ce document n'est plus stocké sur nos serveurs (expiré ou supprimé par son propriétaire)", "settings_exportErrorMissing": "Ce document n'est plus stocké sur nos serveurs (expiré ou supprimé par son propriétaire)",
"settings_exportErrorOther": "Une erreur est survenue lors de la récupération de ce document : {0}", "settings_exportErrorOther": "Une erreur est survenue lors de la récupération de ce document : {0}",
"settings_resetNewTitle": "Vider CryptDrive", "settings_resetNewTitle": "Vider CryptDrive",
"settings_resetButton": "Supprimer", "settings_resetButton": "Supprimer",
"settings_reset": "Supprimer tous les fichiers et dossiers de votre CryptDrive", "settings_reset": "Supprimer tous les fichiers et dossiers de votre CryptDrive",
"settings_resetPrompt": "Cette action va supprimer tous les pads de votre drive.<br>Êtes-vous sûr de vouloir continuer ?<br>Tapez « <em>I love CryptPad</em> » pour confirmer.", "settings_resetPrompt": "Cette action va supprimer tous les pads de votre drive.<br>Êtes-vous sûr de vouloir continuer ?<br>Tapez « <em>I love CryptPad</em> » pour confirmer.",
"settings_resetDone": "Votre drive est désormais vide!", "settings_resetDone": "Votre drive est désormais vide !",
"settings_resetError": "Texte de vérification incorrect. Votre CryptDrive n'a pas été modifié.", "settings_resetError": "Texte de vérification incorrect. Votre CryptDrive n'a pas été modifié.",
"settings_resetTipsAction": "Réinitialiser", "settings_resetTipsAction": "Réinitialiser",
"settings_resetTips": "Astuces", "settings_resetTips": "Astuces",
@ -504,7 +504,7 @@
"settings_usageAmount": "Vos pads épinglés occupent {0} Mo", "settings_usageAmount": "Vos pads épinglés occupent {0} Mo",
"settings_logoutEverywhereButton": "Se déconnecter", "settings_logoutEverywhereButton": "Se déconnecter",
"settings_logoutEverywhereTitle": "Se déconnecter partout", "settings_logoutEverywhereTitle": "Se déconnecter partout",
"settings_logoutEverywhere": "Se déconnecter de force de toutes les autres sessions.", "settings_logoutEverywhere": "Se déconnecter de force de toutes les autres sessions",
"settings_logoutEverywhereConfirm": "Êtes-vous sûr ? Vous devrez vous reconnecter sur tous vos autres appareils.", "settings_logoutEverywhereConfirm": "Êtes-vous sûr ? Vous devrez vous reconnecter sur tous vos autres appareils.",
"settings_driveDuplicateTitle": "Doublons des pads dont vous êtes propriétaire", "settings_driveDuplicateTitle": "Doublons des pads dont vous êtes propriétaire",
"settings_driveDuplicateHint": "Quand vous déplacez un pad dont vous êtes le propriétaire dans un dossier partagé, une copie est créée dans votre CryptDrive pour s'assurer que vous puissiez garder le contrôle de ce pad. Vous pouvez choisir de cacher ces doublons. Seules les versions partagées seront affichées, jusqu'à leur suppression, dans quels cas la version dans votre CryptDrive redeviendra visible.", "settings_driveDuplicateHint": "Quand vous déplacez un pad dont vous êtes le propriétaire dans un dossier partagé, une copie est créée dans votre CryptDrive pour s'assurer que vous puissiez garder le contrôle de ce pad. Vous pouvez choisir de cacher ces doublons. Seules les versions partagées seront affichées, jusqu'à leur suppression, dans quels cas la version dans votre CryptDrive redeviendra visible.",
@ -527,7 +527,7 @@
"settings_ownDriveTitle": "Activer les dernières fonctionnalités du compte", "settings_ownDriveTitle": "Activer les dernières fonctionnalités du compte",
"settings_ownDriveHint": "Pour des raisons techniques, les comptes utilisateurs les plus anciens n'ont pas accès à toutes les fonctionnalités. Une mise à niveau gratuite permet de préparer votre CryptDrive pour les nouveautés à venir sans perturber vos activités habituelles.", "settings_ownDriveHint": "Pour des raisons techniques, les comptes utilisateurs les plus anciens n'ont pas accès à toutes les fonctionnalités. Une mise à niveau gratuite permet de préparer votre CryptDrive pour les nouveautés à venir sans perturber vos activités habituelles.",
"settings_ownDriveButton": "Mettre à niveau votre compte", "settings_ownDriveButton": "Mettre à niveau votre compte",
"settings_ownDriveConfirm": "La mise à niveau peut prendre du temps. Vous devrez vous reconnecter sur tous vos appareils. Voulez-vous continuer?", "settings_ownDriveConfirm": "La mise à niveau peut prendre du temps. Vous devrez vous reconnecter sur tous vos appareils. Voulez-vous continuer ?",
"settings_ownDrivePending": "Votre compte est en train d'être mis à jour. Veuillez ne pas fermer ou recharger cette page avant que le traitement soit terminé.", "settings_ownDrivePending": "Votre compte est en train d'être mis à jour. Veuillez ne pas fermer ou recharger cette page avant que le traitement soit terminé.",
"settings_changePasswordTitle": "Changer de mot de passe", "settings_changePasswordTitle": "Changer de mot de passe",
"settings_changePasswordHint": "Pour modifier le mot de passe de votre compte utilisateur, entrez votre mot de passe actuel et confirmez le nouveau mot de passe en la tapant deux fois.<br><b>Nous ne pouvons pas réinitialiser votre mot de passe si vous le perdez, donc soyez très prudent !</b>", "settings_changePasswordHint": "Pour modifier le mot de passe de votre compte utilisateur, entrez votre mot de passe actuel et confirmez le nouveau mot de passe en la tapant deux fois.<br><b>Nous ne pouvons pas réinitialiser votre mot de passe si vous le perdez, donc soyez très prudent !</b>",
@ -540,7 +540,7 @@
"settings_changePasswordPending": "Votre mot de passe est en train d'être modifié. Veuillez ne pas fermer ou recharger cette page avant que le traitement soit terminé.", "settings_changePasswordPending": "Votre mot de passe est en train d'être modifié. Veuillez ne pas fermer ou recharger cette page avant que le traitement soit terminé.",
"settings_changePasswordNewPasswordSameAsOld": "Votre nouveau mot de passe doit être différent de votre mot de passe actuel.", "settings_changePasswordNewPasswordSameAsOld": "Votre nouveau mot de passe doit être différent de votre mot de passe actuel.",
"settings_cursorColorTitle": "Couleur du curseur", "settings_cursorColorTitle": "Couleur du curseur",
"settings_cursorColorHint": "Changer la couleur associée à votre utilisateur dans les documents collaboratifs", "settings_cursorColorHint": "Changer la couleur associée à votre utilisateur dans les documents collaboratifs.",
"settings_cursorShareTitle": "Partager la position de mon curseur", "settings_cursorShareTitle": "Partager la position de mon curseur",
"settings_cursorShareHint": "Vous pouvez décider si vous souhaitez que les autres puissent voir la position de votre curseur dans les documents collaboratifs ou non.", "settings_cursorShareHint": "Vous pouvez décider si vous souhaitez que les autres puissent voir la position de votre curseur dans les documents collaboratifs ou non.",
"settings_cursorShareLabel": "Partager la position", "settings_cursorShareLabel": "Partager la position",
@ -581,7 +581,7 @@
"todo_removeTaskTitle": "Enlever cette tâche de votre liste", "todo_removeTaskTitle": "Enlever cette tâche de votre liste",
"pad_showToolbar": "Afficher la barre d'outils", "pad_showToolbar": "Afficher la barre d'outils",
"pad_hideToolbar": "Cacher la barre d'outils", "pad_hideToolbar": "Cacher la barre d'outils",
"pad_base64": "Ce pad contient des images stockées de manière inefficace. Ces images vont augmenter de manière significative la taille du pad dans votre CryptDrive, et le rendre plus lent à charger. Vous pouvez migrer ces fichiers afin de les stocker séparément dans votre CryptDrive. Voulez-vous commencer la migration maintenant?", "pad_base64": "Ce pad contient des images stockées de manière inefficace. Ces images vont augmenter de manière significative la taille du pad dans votre CryptDrive, et le rendre plus lent à charger. Vous pouvez migrer ces fichiers afin de les stocker séparément dans votre CryptDrive. Voulez-vous commencer la migration maintenant ?",
"mdToolbar_button": "Afficher ou cacher la barre d'outils Markdown", "mdToolbar_button": "Afficher ou cacher la barre d'outils Markdown",
"mdToolbar_defaultText": "Votre texte ici", "mdToolbar_defaultText": "Votre texte ici",
"mdToolbar_help": "Aide", "mdToolbar_help": "Aide",
@ -600,7 +600,7 @@
"home_host": "Ceci est une instance communautaire et indépendante de CryptPad. Le code source du projet est disponible <a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\">sur GitHub</a>.", "home_host": "Ceci est une instance communautaire et indépendante de CryptPad. Le code source du projet est disponible <a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\">sur GitHub</a>.",
"home_host_agpl": "CryptPad est distribué sous les termes de la licence logicielle AGPL3", "home_host_agpl": "CryptPad est distribué sous les termes de la licence logicielle AGPL3",
"home_ngi": "Gagnant d'un prix NGI Awards", "home_ngi": "Gagnant d'un prix NGI Awards",
"about_intro": "CryptPad est développé au sein de l'équipe Recherche d'<a href=\"http://xwiki.com\">XWiki SAS</a>, une petite entreprise située à Paris en France et à Iasi en Roumanie. Il y a 3 développeurs principaux qui travaillent sur CryptPad, ainsi que quelques contributeurs à la fois dans et en dehors d'XWiki SAS", "about_intro": "CryptPad est développé au sein de l'équipe Recherche d'<a href=\"http://xwiki.com\">XWiki SAS</a>, une petite entreprise située à Paris en France et à Iasi en Roumanie. Il y a 3 développeurs principaux qui travaillent sur CryptPad, ainsi que quelques contributeurs à la fois dans et en dehors d'XWiki SAS.",
"about_core": "Développeurs principaux", "about_core": "Développeurs principaux",
"about_contributors": "Contributeurs clés", "about_contributors": "Contributeurs clés",
"main_about_p22": "Tweetez-nous", "main_about_p22": "Tweetez-nous",
@ -608,7 +608,7 @@
"main_about_p24": "Dites Bonjour (Matrix)", "main_about_p24": "Dites Bonjour (Matrix)",
"main_about_p25": "Envoyez-nous un email", "main_about_p25": "Envoyez-nous un email",
"main_about_p26": "Si vous avez une question ou des remarques, n'hésitez pas à nous contacter !", "main_about_p26": "Si vous avez une question ou des remarques, n'hésitez pas à nous contacter !",
"main_info": "<h2>Collaborez avec confiance</h2><br>Développez vos idées en groupe avec des documents partagés; la technologie <strong>Zero Knowledge</strong> sécurise vos données.", "main_info": "<h2>Collaborez avec confiance</h2>Développez vos idées en groupe avec des documents partagés; la technologie <strong>Zero Knowledge</strong> sécurise vos données.",
"main_catch_phrase": "Le Cloud Zero Knowledge", "main_catch_phrase": "Le Cloud Zero Knowledge",
"main_richText": "Éditeur de texte", "main_richText": "Éditeur de texte",
"main_code": "Éditeur de code", "main_code": "Éditeur de code",
@ -645,7 +645,7 @@
"whatis_zeroknowledge_p3": "Quand vous partagez le lien vers un document, vous partagez la clé cryptographique permettant de déchiffrer le document, mais puisque cette clé se trouve dans l'<a href=\"https://en.wikipedia.org/wiki/Fragment_identifier\">identificateur de fragment</a>, elle n'est jamais envoyée au serveur. Venez lire notre <a href=\"https://blog.cryptpad.fr/2017/07/07/cryptpad-analytics-what-we-cant-know-what-we-must-know-what-we-want-to-know/\">article de blog sur la vie privée</a> pour en apprendre davantage sur le type de métadonnées auxquelles nous avons ou n'avons pas accès.", "whatis_zeroknowledge_p3": "Quand vous partagez le lien vers un document, vous partagez la clé cryptographique permettant de déchiffrer le document, mais puisque cette clé se trouve dans l'<a href=\"https://en.wikipedia.org/wiki/Fragment_identifier\">identificateur de fragment</a>, elle n'est jamais envoyée au serveur. Venez lire notre <a href=\"https://blog.cryptpad.fr/2017/07/07/cryptpad-analytics-what-we-cant-know-what-we-must-know-what-we-want-to-know/\">article de blog sur la vie privée</a> pour en apprendre davantage sur le type de métadonnées auxquelles nous avons ou n'avons pas accès.",
"whatis_drive": "Organisation avec CryptDrive", "whatis_drive": "Organisation avec CryptDrive",
"whatis_drive_p1": "Dès que vous accédez à un pad dans CryptPad, celui-ci est automatiquement ajouté à votre CryptDrive, dans le dossier principal. Vous pouvez alors ranger ce pad dans un dossier ou le déplacer vers la corbeille. CryptDrive vous permet de rechercher parmi vos pads et de les organiser quand vous le souhaitez, comme vous le souhaitez.", "whatis_drive_p1": "Dès que vous accédez à un pad dans CryptPad, celui-ci est automatiquement ajouté à votre CryptDrive, dans le dossier principal. Vous pouvez alors ranger ce pad dans un dossier ou le déplacer vers la corbeille. CryptDrive vous permet de rechercher parmi vos pads et de les organiser quand vous le souhaitez, comme vous le souhaitez.",
"whatis_drive_p2": "Avec le glisser-déposer intuitif, vous pouvez déplacer vos pads dans votre drive tout en conservant les liens vers ces pads pour que vos collaborateurs n'en perdent pas l'accès", "whatis_drive_p2": "Avec le glisser-déposer intuitif, vous pouvez déplacer vos pads dans votre drive tout en conservant les liens vers ces pads pour que vos collaborateurs n'en perdent pas l'accès.",
"whatis_drive_p3": "Vous pouvez également importer des fichiers dans votre CryptDrive et les partager avec des collègues. Les fichiers importés peuvent être rangés de la même manière que vos pads collaboratifs.", "whatis_drive_p3": "Vous pouvez également importer des fichiers dans votre CryptDrive et les partager avec des collègues. Les fichiers importés peuvent être rangés de la même manière que vos pads collaboratifs.",
"whatis_business": "CryptPad for Business", "whatis_business": "CryptPad for Business",
"whatis_business_p1": "Le chiffrement Zero Knowledge de CryptPad excelle pour accroître l'efficacité des protocoles de sécurité existants en les recréant de manière cryptographique. Puisque les données sensibles ne peuvent être déchiffrées qu'en utilisant les identifiants d'un utilisateur, CryptPad empêche d'éventuels hackers ayant réussi à s'introduire dans le serveur d'avoir accès en clair à ces données. Découvrez-en plus sur la manière dont CryptPad peut aider votre entreprise en lisant le <a href=\"https://blog.cryptpad.fr/images/CryptPad-Whitepaper-v1.0.pdf\">CryptPad Whitepaper</a>.", "whatis_business_p1": "Le chiffrement Zero Knowledge de CryptPad excelle pour accroître l'efficacité des protocoles de sécurité existants en les recréant de manière cryptographique. Puisque les données sensibles ne peuvent être déchiffrées qu'en utilisant les identifiants d'un utilisateur, CryptPad empêche d'éventuels hackers ayant réussi à s'introduire dans le serveur d'avoir accès en clair à ces données. Découvrez-en plus sur la manière dont CryptPad peut aider votre entreprise en lisant le <a href=\"https://blog.cryptpad.fr/images/CryptPad-Whitepaper-v1.0.pdf\">CryptPad Whitepaper</a>.",
@ -680,9 +680,9 @@
"features_f_file0": "Ouvrir des fichiers", "features_f_file0": "Ouvrir des fichiers",
"features_f_file0_note": "Voir et télécharger des fichiers partagés par d'autres utilisateurs", "features_f_file0_note": "Voir et télécharger des fichiers partagés par d'autres utilisateurs",
"features_f_cryptdrive0": "Accès limité à CryptDrive", "features_f_cryptdrive0": "Accès limité à CryptDrive",
"features_f_cryptdrive0_note": "Stockage dans votre navigateur des pads visités afin de pouvoir les retrouver plus tard.", "features_f_cryptdrive0_note": "Stockage dans votre navigateur des pads visités afin de pouvoir les retrouver plus tard",
"features_f_storage0": "Durée de stockage limitée", "features_f_storage0": "Durée de stockage limitée",
"features_f_storage0_note": "Les pads créés risquent d'être supprimés après trois mois d'inactivité.", "features_f_storage0_note": "Les pads créés risquent d'être supprimés après trois mois d'inactivité",
"features_f_anon": "Avantages des utilisateurs anonymes", "features_f_anon": "Avantages des utilisateurs anonymes",
"features_f_anon_note": "Avec une meilleure ergonomie et plus de contrôle sur vos pads", "features_f_anon_note": "Avec une meilleure ergonomie et plus de contrôle sur vos pads",
"features_f_cryptdrive1": "Accès complet à CryptDrive", "features_f_cryptdrive1": "Accès complet à CryptDrive",
@ -694,7 +694,7 @@
"features_f_file1": "Importer et partager des fichiers", "features_f_file1": "Importer et partager des fichiers",
"features_f_file1_note": "Partager des fichiers avec vos amis ou les intégrer dans vos pads", "features_f_file1_note": "Partager des fichiers avec vos amis ou les intégrer dans vos pads",
"features_f_storage1": "Stockage permanent (50Mo)", "features_f_storage1": "Stockage permanent (50Mo)",
"features_f_storage1_note": "Les pads stockés dans votre CryptDrive ne seront jamais supprimés pour cause d'inactivité.", "features_f_storage1_note": "Les pads stockés dans votre CryptDrive ne seront jamais supprimés pour cause d'inactivité",
"features_f_register": "S'enregistrer gratuitement", "features_f_register": "S'enregistrer gratuitement",
"features_f_register_note": "Pas d'email ou d'information personnelle requis", "features_f_register_note": "Pas d'email ou d'information personnelle requis",
"features_f_reg": "Avantages des utilisateurs enregistrés", "features_f_reg": "Avantages des utilisateurs enregistrés",
@ -734,7 +734,7 @@
"a": "Un <em>modèle</em> est un pad qui peut être utilisé pour définir le contenu initial d'un nouveau pad du même type quand vous le créez.<br>Les pads existant dans votre CryptDrive peuvent être transformés en tant que modèle en les déplaçant dans la catégorie <em>Modèles</em> du CryptDrive.<br>Il est également possible de créer une copie d'un pad en tant que modèle en cliquant sur le bouton <span class=\"fa fa-bookmark\"></span> (<em>Sauver en tant que modèle</em>) dans la barre d'outils des éditeurs." "a": "Un <em>modèle</em> est un pad qui peut être utilisé pour définir le contenu initial d'un nouveau pad du même type quand vous le créez.<br>Les pads existant dans votre CryptDrive peuvent être transformés en tant que modèle en les déplaçant dans la catégorie <em>Modèles</em> du CryptDrive.<br>Il est également possible de créer une copie d'un pad en tant que modèle en cliquant sur le bouton <span class=\"fa fa-bookmark\"></span> (<em>Sauver en tant que modèle</em>) dans la barre d'outils des éditeurs."
}, },
"abandoned": { "abandoned": {
"q": "Qu'est-ce qu'un pad abandonné?", "q": "Qu'est-ce qu'un pad abandonné ?",
"a": "Un <em>pad abandonné</em> est un pad qui n'est stocké dans le CryptDrive d'aucun utilisateur enregistré et qui n'a pas été modifié depuis 6 mois. Les documents abandonnés sont automatiquement supprimés du serveur." "a": "Un <em>pad abandonné</em> est un pad qui n'est stocké dans le CryptDrive d'aucun utilisateur enregistré et qui n'a pas été modifié depuis 6 mois. Les documents abandonnés sont automatiquement supprimés du serveur."
} }
}, },
@ -792,7 +792,7 @@
}, },
"share": { "share": {
"q": "Comment partager des pads chiffrés avec mes amis ?", "q": "Comment partager des pads chiffrés avec mes amis ?",
"a": "CryptPad stocke la clé secrète de chiffrement des pads après le symbole `#` dans l'URL. Tout ce qui se trouve après ce symbole n'est jamais envoyé au serveur, ainsi nous n'avons pas accès à vos clés de chiffrement. Partager le lien d'un pad revient donc à permettre la lecture ou la modification du contenu." "a": "CryptPad stocke la clé secrète de chiffrement des pads après le symbole <em>#</em> dans l'URL. Tout ce qui se trouve après ce symbole n'est jamais envoyé au serveur, ainsi nous n'avons pas accès à vos clés de chiffrement. Partager le lien d'un pad revient donc à permettre la lecture ou la modification du contenu."
}, },
"remove": { "remove": {
"q": "J'ai supprimé un pad ou un fichier de mon CryptDrive, mais le contenu est encore disponible. Comment le supprimer ?", "q": "J'ai supprimé un pad ou un fichier de mon CryptDrive, mais le contenu est encore disponible. Comment le supprimer ?",
@ -863,7 +863,7 @@
"text": { "text": {
"formatting": "Vous pouvez afficher ou cacher la barre d'outils de texte en cliquant sur les boutons <span class=\"fa fa-caret-down\"></span> ou <span class=\"fa fa-caret-up\"></span>", "formatting": "Vous pouvez afficher ou cacher la barre d'outils de texte en cliquant sur les boutons <span class=\"fa fa-caret-down\"></span> ou <span class=\"fa fa-caret-up\"></span>",
"embed": "Les utilisateurs enregistrés peuvent intégrer un fichier de leur CryptDrive en utilisant le bouton <span class=\"fa fa-image\"></span>", "embed": "Les utilisateurs enregistrés peuvent intégrer un fichier de leur CryptDrive en utilisant le bouton <span class=\"fa fa-image\"></span>",
"history": "Vous pouvez utiliser l'historique (<span class=\"fa fa-history\"></span>) pour voir ou restaurer les versions précédentes du pad" "history": "Vous pouvez utiliser <em>l'historique</em> <span class=\"fa fa-history\"></span> pour voir ou restaurer les versions précédentes du pad"
}, },
"pad": { "pad": {
"export": "Vous pouvez exporter le contenu en tant que PDF avec le bouton <span class=\"fa fa-print\"></span> de la barre d'outils de mise en forme du texte" "export": "Vous pouvez exporter le contenu en tant que PDF avec le bouton <span class=\"fa fa-print\"></span> de la barre d'outils de mise en forme du texte"
@ -887,7 +887,7 @@
"decisions": "Prenez des décisions en privé avec des personnes de confiance", "decisions": "Prenez des décisions en privé avec des personnes de confiance",
"options": "Proposez des options et exprimez vos préférences", "options": "Proposez des options et exprimez vos préférences",
"choices": "Cliquez sur les cellules de votre colonne pour modifier leur valeur entre oui (<strong>✔</strong>), peut-être (<strong>~</strong>) ou non (<strong>✖</strong>)", "choices": "Cliquez sur les cellules de votre colonne pour modifier leur valeur entre oui (<strong>✔</strong>), peut-être (<strong>~</strong>) ou non (<strong>✖</strong>)",
"submit": "Cliquez sur <b>Ajouter</b> pour rendre vos choix visibles aux autres" "submit": "Cliquez sur <strong>Ajouter</strong> pour rendre vos choix visibles aux autres"
}, },
"whiteboard": { "whiteboard": {
"colors": "Double-cliquez sur les couleurs pour changer la palette", "colors": "Double-cliquez sur les couleurs pour changer la palette",
@ -917,9 +917,9 @@
"readme_cat2_l1": "Le bouton {0} dans votre pad vous permet de donner l'accès à vos collaborateurs que ce soit pour l'{1} ou pour le {2}.", "readme_cat2_l1": "Le bouton {0} dans votre pad vous permet de donner l'accès à vos collaborateurs que ce soit pour l'{1} ou pour le {2}.",
"readme_cat2_l2": "Vous pouvez changer le titre d'un pad en cliquant sur le crayon", "readme_cat2_l2": "Vous pouvez changer le titre d'un pad en cliquant sur le crayon",
"readme_cat3": "Découvrez les autres applications CryptPad", "readme_cat3": "Découvrez les autres applications CryptPad",
"readme_cat3_l1": "Avec l'éditeur de code de CryptPad, vous pouvez collaborer sur du code comme Javascript ou des langages comme HTML ou Markdown.", "readme_cat3_l1": "Avec l'éditeur de code de CryptPad, vous pouvez collaborer sur du code comme JavaScript ou des langages comme HTML ou Markdown",
"readme_cat3_l2": "Avec l'éditeur de présentations de CryptPad, vous pouvez réaliser des présentations rapides en utilisant Markdown", "readme_cat3_l2": "Avec l'éditeur de présentations de CryptPad, vous pouvez réaliser des présentations rapides en utilisant Markdown",
"readme_cat3_l3": "Avec CryptPoll vous pouvez créer rapidement des sondages, et en particulier plannifier des meetings qui rentrent dans l'agenda de tout ceux qui souhaitent participer.", "readme_cat3_l3": "Avec CryptPoll vous pouvez créer rapidement des sondages, et en particulier plannifier des meetings qui rentrent dans l'agenda de tout ceux qui souhaitent participer",
"tips": { "tips": {
"shortcuts": "`ctrl+b`, `ctrl+i` et `ctrl+u` sont des raccourcis rapides pour mettre en gras, en italique ou souligner.", "shortcuts": "`ctrl+b`, `ctrl+i` et `ctrl+u` sont des raccourcis rapides pour mettre en gras, en italique ou souligner.",
"indent": "Dans les listes à puces ou numérotées, vous pouvez utiliser `Tab` ou `Maj+Tab` pour augmenter ou réduire rapidement l'indentation.", "indent": "Dans les listes à puces ou numérotées, vous pouvez utiliser `Tab` ou `Maj+Tab` pour augmenter ou réduire rapidement l'indentation.",
@ -930,11 +930,11 @@
"drive": "Les utilisateurs enregistrés peuvent organiser leurs fichiers dans leur CryptDrive, accessible depuis l'icône CryptPad dans le coin supérieur gauche des pads.", "drive": "Les utilisateurs enregistrés peuvent organiser leurs fichiers dans leur CryptDrive, accessible depuis l'icône CryptPad dans le coin supérieur gauche des pads.",
"profile": "Les utilisateurs enregistrés peuvent créer un profil depuis le menu utilisateur, dans le coin supérieur droit.", "profile": "Les utilisateurs enregistrés peuvent créer un profil depuis le menu utilisateur, dans le coin supérieur droit.",
"avatars": "Vous pouvez uploader un avatar dans votre profil. Les autres personnes le verront dans la liste d'utilisateurs des pads.", "avatars": "Vous pouvez uploader un avatar dans votre profil. Les autres personnes le verront dans la liste d'utilisateurs des pads.",
"tags": "Ajoutez des mots-clés aux pads et effectuer une recherche commençant par # dans votre CryptDrive pour les retrouver." "tags": "Ajoutez des mots-clés aux pads et effectuer une recherche commençant par # dans votre CryptDrive pour les retrouver"
}, },
"feedback_about": "Si vous lisez ceci, vous vous demandez probablement pourquoi CryptPad envoie des requêtes vers des pages web quand vous réalisez certaines actions.", "feedback_about": "Si vous lisez ceci, vous vous demandez probablement pourquoi CryptPad envoie des requêtes vers des pages web quand vous réalisez certaines actions",
"feedback_privacy": "Nous prenons au sérieux le respect de votre vie privée, et en même temps nous souhaitons rendre CryptPad très simple à utiliser. Nous utilisons cette page pour comprendre quelles fonctionnalités dans l'interface comptent le plus pour les utilisateurs, en l'appelant avec un paramètre spécifiant quelle action a été réalisée.", "feedback_privacy": "Nous prenons au sérieux le respect de votre vie privée, et en même temps nous souhaitons rendre CryptPad très simple à utiliser. Nous utilisons cette page pour comprendre quelles fonctionnalités dans l'interface comptent le plus pour les utilisateurs, en l'appelant avec un paramètre spécifiant quelle action a été réalisée.",
"feedback_optout": "Si vous le souhaitez, vous pouvez désactiver ces requêtes en vous rendant dans <a href='/settings/'>votre page de préférences</a>, où vous trouverez une case à cocher pour désactiver le retour d'expérience.", "feedback_optout": "Si vous le souhaitez, vous pouvez désactiver ces requêtes en vous rendant dans <a href='/settings/'>votre page de préférences</a>, où vous trouverez une case à cocher pour désactiver le retour d'expérience",
"creation_404": "Ce pad n'existe plus. Vous pouvez créer un nouveau pad en utilisant le formulaire suivant.", "creation_404": "Ce pad n'existe plus. Vous pouvez créer un nouveau pad en utilisant le formulaire suivant.",
"creation_ownedTitle": "Type de pad", "creation_ownedTitle": "Type de pad",
"creation_owned": "Être propriétaire de ce pad", "creation_owned": "Être propriétaire de ce pad",
@ -957,7 +957,7 @@
"creation_create": "Créer", "creation_create": "Créer",
"creation_saveSettings": "Ne plus me demander", "creation_saveSettings": "Ne plus me demander",
"creation_settings": "Voir davantage de préférences", "creation_settings": "Voir davantage de préférences",
"creation_rememberHelp": "Ouvrez votre page de Préférences pour voir ce formulaire à nouveau.", "creation_rememberHelp": "Ouvrez votre page de Préférences pour voir ce formulaire à nouveau",
"creation_owners": "Propriétaires", "creation_owners": "Propriétaires",
"creation_ownedByOther": "Appartient à un autre utilisateur", "creation_ownedByOther": "Appartient à un autre utilisateur",
"creation_noOwner": "Pas de propriétaire", "creation_noOwner": "Pas de propriétaire",
@ -1023,5 +1023,10 @@
"crowdfunding_popup_text": "<h3>Aider CryptPad</h3>Pour vous assurer que CryptPad soit activement développé, nous vous invitons à supporter le projet via la <a href=\"https://opencollective.com/cryptpad\">page OpenCollective</a>, où vous pouvez trouver notre <b>Roadmap</b> et nos <b>objectifs de financement</b>.", "crowdfunding_popup_text": "<h3>Aider CryptPad</h3>Pour vous assurer que CryptPad soit activement développé, nous vous invitons à supporter le projet via la <a href=\"https://opencollective.com/cryptpad\">page OpenCollective</a>, où vous pouvez trouver notre <b>Roadmap</b> et nos <b>objectifs de financement</b>.",
"crowdfunding_popup_yes": "Voir la page", "crowdfunding_popup_yes": "Voir la page",
"crowdfunding_popup_no": "Pas maintenant", "crowdfunding_popup_no": "Pas maintenant",
"crowdfunding_popup_never": "Ne plus demander" "crowdfunding_popup_never": "Ne plus demander",
"markdown_toc": "Sommaire",
"debug_getGraph": "Obtenir le code permettant de générer un graphe de ce document",
"debug_getGraphWait": "Génération du graphe... Veuillez patienter.",
"debug_getGraphText": "Voici le code DOT permettant de générer un graphe de lhistorique de ce document :",
"mdToolbar_toc": "Table des matières"
} }

@ -307,6 +307,9 @@
"contacts_rooms": "Rooms", "contacts_rooms": "Rooms",
"contacts_leaveRoom": "Leave this room", "contacts_leaveRoom": "Leave this room",
"contacts_online": "Another user from this room is online", "contacts_online": "Another user from this room is online",
"debug_getGraph":"Get the code to generate a graph of this document",
"debug_getGraphWait":"Generating the graph... Please Wait.",
"debug_getGraphText":"This is the DOT code to generate a graph of this document's history:",
"fm_rootName": "Documents", "fm_rootName": "Documents",
"fm_trashName": "Trash", "fm_trashName": "Trash",
"fm_unsortedName": "Unsorted files", "fm_unsortedName": "Unsorted files",
@ -596,6 +599,7 @@
"mdToolbar_list": "Bullet list", "mdToolbar_list": "Bullet list",
"mdToolbar_check": "Task list", "mdToolbar_check": "Task list",
"mdToolbar_code": "Code", "mdToolbar_code": "Code",
"mdToolbar_toc": "Table of Contents",
"home_product": "CryptPad is a private-by-design alternative to popular office tools and cloud services. All the content stored on CryptPad is encrypted before being sent, which means nobody can access your data unless you give them the keys (not even us).", "home_product": "CryptPad is a private-by-design alternative to popular office tools and cloud services. All the content stored on CryptPad is encrypted before being sent, which means nobody can access your data unless you give them the keys (not even us).",
"home_host": "This is an independent community instance of CryptPad. Its source code is available <a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\">on GitHub</a>.", "home_host": "This is an independent community instance of CryptPad. Its source code is available <a href=\"https://github.com/xwiki-labs/cryptpad\" target=\"_blank\" rel=\"noreferrer noopener\">on GitHub</a>.",
"home_host_agpl": "CryptPad is distributed under the terms of the AGPL3 software license", "home_host_agpl": "CryptPad is distributed under the terms of the AGPL3 software license",
@ -839,7 +843,7 @@
}, },
"revenue": { "revenue": {
"q": "How can I participate in the revenue sharing?", "q": "How can I participate in the revenue sharing?",
"a": " If you are running your own instance of CryptPad, and would like to enable paid accounts and split the revenue with the developers, your server will need to be configured as a partner service.<br><br>In your CryptPad directory, <em>config.example.js</em> should contain an explanation of what you need to configure on your server. You will need to contact <a href='mailto:sales@cryptpad.fr'>sales@cryptpad.fr</a> to verify that your server is configured to use HTTPS correctly, and discuss payment methods." "a": "If you are running your own instance of CryptPad, and would like to enable paid accounts and split the revenue with the developers, your server will need to be configured as a partner service.<br><br>In your CryptPad directory, <em>config.example.js</em> should contain an explanation of what you need to configure on your server. You will need to contact <a href='mailto:sales@cryptpad.fr'>sales@cryptpad.fr</a> to verify that your server is configured to use HTTPS correctly, and discuss payment methods."
} }
} }
}, },
@ -1023,5 +1027,6 @@
"crowdfunding_popup_text": "<h3>We need your help!</h3>To ensure that CryptPad is actively developed, consider supporting the project via the <a href=\"https://opencollective.com/cryptpad\">OpenCollective page</a>, where you can see our <b>Roadmap</b> and <b>Funding goals</b>.", "crowdfunding_popup_text": "<h3>We need your help!</h3>To ensure that CryptPad is actively developed, consider supporting the project via the <a href=\"https://opencollective.com/cryptpad\">OpenCollective page</a>, where you can see our <b>Roadmap</b> and <b>Funding goals</b>.",
"crowdfunding_popup_yes": "Go to OpenCollective", "crowdfunding_popup_yes": "Go to OpenCollective",
"crowdfunding_popup_no": "Not now", "crowdfunding_popup_no": "Not now",
"crowdfunding_popup_never": "Don't ask me again" "crowdfunding_popup_never": "Don't ask me again",
"markdown_toc": "Contents"
} }

@ -1,7 +1,5 @@
{ {
"_languageName": "Polish",
"main_title": "Cryptpad: Wspólne edytowanie w czasie rzeczywistym, bez wiedzy specjalistycznej", "main_title": "Cryptpad: Wspólne edytowanie w czasie rzeczywistym, bez wiedzy specjalistycznej",
"main_slogan": "Jedność siłą - Współpraca kluczem",
"type": { "type": {
"pad": "Pad", "pad": "Pad",
"code": "Kod", "code": "Kod",
@ -48,7 +46,6 @@
"notifyJoined": "{0} dołączył do sesji współpracy", "notifyJoined": "{0} dołączył do sesji współpracy",
"notifyRenamed": "{0} jest teraz znany jako {1}", "notifyRenamed": "{0} jest teraz znany jako {1}",
"notifyLeft": "{0} opuścił sesję współpracy", "notifyLeft": "{0} opuścił sesję współpracy",
"tryIt": "Wypróbuj!",
"okButton": "OK (enter)", "okButton": "OK (enter)",
"cancelButton": "Anuluj (esc)", "cancelButton": "Anuluj (esc)",
"poll_title": "Prosty koordynator spotkań", "poll_title": "Prosty koordynator spotkań",
@ -71,10 +68,6 @@
"poll_removeUser": "Jesteś pewien, że chcesz usunąć tego użytkownika?", "poll_removeUser": "Jesteś pewien, że chcesz usunąć tego użytkownika?",
"poll_titleHint": "Tytuł", "poll_titleHint": "Tytuł",
"poll_descriptionHint": "Opis", "poll_descriptionHint": "Opis",
"main_p2": "Ten projekt wykorzystuje wizualny edytor <a href=\"http://ckeditor.com/\">CKEditor</a> , <a href=\"https://codemirror.net/\">CodeMirror</a>, oraz silnik czasu rzeczywistego <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a>.",
"main_howitworks": "Jak to działa",
"main_howitworks_p1": "CryptPad wykorzystuje wariant algorytmu <a href=\"https://en.wikipedia.org/wiki/Operational_transformation\">Transformacji operacyjnej</a> który jest wstanie odnaleźć rozdzielony konsensus wprowadzanych danych. Używa do tego <a href=\"https://bitcoin.org/bitcoin.pdf\">Łańcuch blokowy Nakamoto</a>, twór zpopularyzowany przez <a href=\"https://en.wikipedia.org/wiki/Bitcoin\">Bitcoin</a>. W ten sposób algorytm może pominąć potrzebę centralnego serwera do rozwiązywania Konfliktów Operacji Przekształcania poprzez Edycję. Bez potrzeby rozwiązywania konfliktów, serwer może pozostać w niewiedzy o zawartości która jest edytowana w dokumencie.",
"main_about_p2": "Jeżeli masz jakieś pytania lub komentarze, możesz napisać na <a href=\"https://twitter.com/cryptpad\">tweeterze</a>, otworzyć problem na <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"our issue tracker\">githubie</a>, przywitać się na ircu (<a href=\"http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7\" title=\"freenode webchat\">irc.freenode.net</a>), lub wysłać nam <a href=\"mailto:research@xwiki.com\">email</a>.",
"button_newpad": "STWÓRZ PAD WYSIWYG", "button_newpad": "STWÓRZ PAD WYSIWYG",
"button_newcode": "STWÓRZ PAD DO KODU", "button_newcode": "STWÓRZ PAD DO KODU",
"button_newpoll": "STWÓRZ GŁOSOWANIE", "button_newpoll": "STWÓRZ GŁOSOWANIE",
@ -102,9 +95,5 @@
"tos_e2ee": "Dokumenty Cryptpad mogą być odczytywane i modyfikowane przez każdego kto może zgadnąć lub w inny sposób uzyskać identyfikator dokumentu. Polecamy korzystania z oprogramowania szyfrującego end-to-end (e2ee) do udostępniania linków URL. Nie będziesz rościł sobie żadnych wierzytelności w wypadku gdy taki URL dostanie się w niepowołane ręce.", "tos_e2ee": "Dokumenty Cryptpad mogą być odczytywane i modyfikowane przez każdego kto może zgadnąć lub w inny sposób uzyskać identyfikator dokumentu. Polecamy korzystania z oprogramowania szyfrującego end-to-end (e2ee) do udostępniania linków URL. Nie będziesz rościł sobie żadnych wierzytelności w wypadku gdy taki URL dostanie się w niepowołane ręce.",
"tos_logs": "Metadane dostarczane przez twoją przeglądarkę do serwera mogą być zapisywane i przechowywane w celu utrzymywania serwisu.", "tos_logs": "Metadane dostarczane przez twoją przeglądarkę do serwera mogą być zapisywane i przechowywane w celu utrzymywania serwisu.",
"tos_3rdparties": "Nie dostarczamy indywidualizowanych danych do osób trzecich, poza sytuacjami dyktowanymi prawnie.", "tos_3rdparties": "Nie dostarczamy indywidualizowanych danych do osób trzecich, poza sytuacjami dyktowanymi prawnie.",
"bottom_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Stworzone z <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" /> we <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" /></a>",
"bottom_support": "<a href=\"http://labs.xwiki.com/\" title=\"XWiki Labs\" target=\"_blank\" rel=\"noopener noreferrer\">Projekt <img src=\"/customize/logo-xwiki2.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/> Labs </a> we wspolpracy z <a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Pełne <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" /> z <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"France\" alt=\"France\"/> od <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_logoTitle": "Przejdź na stronę główną" "header_logoTitle": "Przejdź na stronę główną"
} }

@ -1,7 +1,5 @@
{ {
"_languageName": "Brazilian Portuguese",
"main_title": "Cryptpad: Zero Knowledge, Edição Colaborativa em Tempo Real", "main_title": "Cryptpad: Zero Knowledge, Edição Colaborativa em Tempo Real",
"main_slogan": "União é Força - Colaboração é a Chave",
"type": { "type": {
"pad": "Notas", "pad": "Notas",
"code": "Código", "code": "Código",
@ -17,7 +15,6 @@
"button_newpoll": "Novo questionário", "button_newpoll": "Novo questionário",
"button_newslide": "Nova apresentação", "button_newslide": "Nova apresentação",
"button_newwhiteboard": "Novo quadro branco", "button_newwhiteboard": "Novo quadro branco",
"updated_0_common_connectionLost": "<b>Conexão com o Servidor Perdida</b><br>Você agora está em modo somente leitura até a conexão ser restaurada.",
"common_connectionLost": "<b>Conexão com o Servidor Perdida</b><br>Você agora está em modo somente leitura até a conexão ser restaurada.", "common_connectionLost": "<b>Conexão com o Servidor Perdida</b><br>Você agora está em modo somente leitura até a conexão ser restaurada.",
"websocketError": "Incapaz de se conectar com o servidor websocket...", "websocketError": "Incapaz de se conectar com o servidor websocket...",
"typeError": "Este bloco não é compatível com a aplicação selecionada", "typeError": "Este bloco não é compatível com a aplicação selecionada",
@ -58,9 +55,7 @@
"orangeLight": "Sua conexão lenta pode impactar sua experiência", "orangeLight": "Sua conexão lenta pode impactar sua experiência",
"redLight": "Você está desconectado da sua sessão", "redLight": "Você está desconectado da sua sessão",
"pinLimitReached": "Você alcançou o limite de armazenamento", "pinLimitReached": "Você alcançou o limite de armazenamento",
"updated_0_pinLimitReachedAlert": "Você alcançou o limite de armazenamento. Novos blocos não serão mais salvos no seu CryptDrive.<br>Você pode deletar blocos do seu CryptDrive ou <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">se inscrever como premium</a> para aumentar o limite de espaço.",
"pinLimitReachedAlert": "Você alcançou o limite de armazenamento. Novos blocos não serão mais salvos no seu CryptDrive.<br>Você pode deletar blocos do seu CryptDrive ou <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">se inscrever como premium</a> para aumentar o limite de espaço.", "pinLimitReachedAlert": "Você alcançou o limite de armazenamento. Novos blocos não serão mais salvos no seu CryptDrive.<br>Você pode deletar blocos do seu CryptDrive ou <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">se inscrever como premium</a> para aumentar o limite de espaço.",
"pinAboveLimitAlert": "A partir desta atualização, nós estamos impondo um limite de 50MB no armazenamento gratuito. Você está atualmente usando {0}. Você irá precisar deletar alguns blocos ou se inscrever no <a href=\"https://accounts.cryptpad.fr/#!on={1}\" target=\"_blank\">accounts.cryptpad.fr</a>. Sua contribuição irá nos ajudar a melhorar o CryptPad e expandir a metodologia Zero Knowledge. Por favor contacte o <a href=\"https://accounts.cryptpad.fr/#/support\" target=\"_blank\">suporte</a> se você possui outras dúvidas.",
"pinLimitNotPinned": "Você alcançou o limite de armazenamento.<br>Este bloco não está armazenado no seu CryptDrive.", "pinLimitNotPinned": "Você alcançou o limite de armazenamento.<br>Este bloco não está armazenado no seu CryptDrive.",
"pinLimitDrive": "Você alcançou o limite de armazenamento.<br>Você não pode criar novos blocos.", "pinLimitDrive": "Você alcançou o limite de armazenamento.<br>Você não pode criar novos blocos.",
"importButtonTitle": "Importar um documento de um arquivo local", "importButtonTitle": "Importar um documento de um arquivo local",
@ -87,7 +82,6 @@
"backgroundButtonTitle": "Mudar cor do fundo da apresentação", "backgroundButtonTitle": "Mudar cor do fundo da apresentação",
"colorButtonTitle": "Mudar a cor do texto no modo apresentação", "colorButtonTitle": "Mudar a cor do texto no modo apresentação",
"printButton": "Imprimir (Enter)", "printButton": "Imprimir (Enter)",
"printButtonTitle": "Imprimir seus slides ou exportá-los como PDF",
"printOptions": "Opções de leiaute", "printOptions": "Opções de leiaute",
"printSlideNumber": "Mostrar o número do slide", "printSlideNumber": "Mostrar o número do slide",
"printDate": "Mostrar a data", "printDate": "Mostrar a data",
@ -111,15 +105,11 @@
"historyButton": "Exibir histórico do documento", "historyButton": "Exibir histórico do documento",
"history_next": "Ir para próxima versão", "history_next": "Ir para próxima versão",
"history_prev": "Ir para versão anterior", "history_prev": "Ir para versão anterior",
"history_goTo": "Ir para versão selecionada",
"history_close": "Voltar",
"history_closeTitle": "Fechar o histórico", "history_closeTitle": "Fechar o histórico",
"history_restore": "Restaurar",
"history_restoreTitle": "Restaurar a versão selecionada do documento", "history_restoreTitle": "Restaurar a versão selecionada do documento",
"history_restorePrompt": "Você tem certeza que deseja substituir a versão atual do documento pela que está sendo exibida agora?", "history_restorePrompt": "Você tem certeza que deseja substituir a versão atual do documento pela que está sendo exibida agora?",
"history_restoreDone": "Documento restaurado", "history_restoreDone": "Documento restaurado",
"history_version": "Versão:", "history_version": "Versão:",
"tryIt": "Try it out!",
"poll_title": "Seletor de dados zero knowledge", "poll_title": "Seletor de dados zero knowledge",
"poll_subtitle": "Zero Knowledge, agendamento <em>em tempo real</em>", "poll_subtitle": "Zero Knowledge, agendamento <em>em tempo real</em>",
"poll_p_save": "Suas configurações são atualizadas instantaneamente, assim você nunca terá de salvá-las", "poll_p_save": "Suas configurações são atualizadas instantaneamente, assim você nunca terá de salvá-las",
@ -187,7 +177,6 @@
"fm_categoryError": "Incapaz de abrir a categoria selecionada, Exibindo diretório raiz", "fm_categoryError": "Incapaz de abrir a categoria selecionada, Exibindo diretório raiz",
"fm_info_root": "Crie quantos diretórios aninhados aqui desejar para organizar seus arquivos..", "fm_info_root": "Crie quantos diretórios aninhados aqui desejar para organizar seus arquivos..",
"fm_info_unsorted": "Contém todos os arquivos que você visitou e não estão ainda organizados na pasta Documentos ou foram movidos para a pasta lixeira", "fm_info_unsorted": "Contém todos os arquivos que você visitou e não estão ainda organizados na pasta Documentos ou foram movidos para a pasta lixeira",
"updated_0_fm_info_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_trash": "Empty your trash to free space in your CryptDrive.", "fm_info_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_allFiles": "Contém todos os arquivos de \"Documentos\", \"Não organizados\" e \"Lixeira\". Não é possível mover ou remover arquivos daqui.", "fm_info_allFiles": "Contém todos os arquivos de \"Documentos\", \"Não organizados\" e \"Lixeira\". Não é possível mover ou remover arquivos daqui.",
"fm_info_anonymous": "Você não está logado, então estes blocos podem ser deletados! (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">Descubra o porque</a>). <a href=\"/register/\">Cadastre-se</a> or <a href=\"/login/\">Entre</a> Para deixá-los salvos.", "fm_info_anonymous": "Você não está logado, então estes blocos podem ser deletados! (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">Descubra o porque</a>). <a href=\"/register/\">Cadastre-se</a> or <a href=\"/login/\">Entre</a> Para deixá-los salvos.",
@ -243,10 +232,8 @@
"register_alreadyRegistered": "This user already exists, do you want to log in?", "register_alreadyRegistered": "This user already exists, do you want to log in?",
"settings_title": "Settings", "settings_title": "Settings",
"settings_save": "Save", "settings_save": "Save",
"settings_backupTitle": "Backup or restore all your data",
"settings_backup": "Backup", "settings_backup": "Backup",
"settings_restore": "Restore", "settings_restore": "Restore",
"settings_resetTitle": "Clean your drive",
"settings_reset": "Remove all the files and folders from your CryptDrive", "settings_reset": "Remove all the files and folders from your CryptDrive",
"settings_resetPrompt": "This action will remove all the pads from your drive.<br>Are you sure you want to continue?<br>Type “<em>I love CryptPad</em>” to confirm.", "settings_resetPrompt": "This action will remove all the pads from your drive.<br>Are you sure you want to continue?<br>Type “<em>I love CryptPad</em>” to confirm.",
"settings_resetDone": "Your drive is now empty!", "settings_resetDone": "Your drive is now empty!",
@ -283,28 +270,11 @@
"upload_size": "Size", "upload_size": "Size",
"upload_progress": "Progress", "upload_progress": "Progress",
"download_button": "Decrypt & Download", "download_button": "Decrypt & Download",
"warn_notPinned": "This pad is not in anyone's CryptDrive. It will expire after 3 months. <a href='/about.html#pinning'>Learn more...</a>",
"main_p2": "This project uses the <a href=\"http://ckeditor.com/\">CKEditor</a> Visual Editor, <a href=\"https://codemirror.net/\">CodeMirror</a>, and the <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a> realtime engine.",
"main_howitworks_p1": "CryptPad uses a variant of the <a href=\"https://en.wikipedia.org/wiki/Operational_transformation\">Operational transformation</a> algorithm which is able to find distributed consensus using a <a href=\"https://bitcoin.org/bitcoin.pdf\">Nakamoto Blockchain</a>, a construct popularized by <a href=\"https://en.wikipedia.org/wiki/Bitcoin\">Bitcoin</a>. This way the algorithm can avoid the need for a central server to resolve Operational Transform Edit Conflicts and without the need for resolving conflicts, the server can be kept unaware of the content which is being edited on the pad.",
"main_about_p2": "If you have any questions or comments, you can <a href=\"https://twitter.com/cryptpad\">tweet us</a>, open an issue <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"our issue tracker\">on github</a>, come say hi on irc (<a href=\"http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7\" title=\"freenode webchat\">irc.freenode.net</a>), or <a href=\"mailto:research@xwiki.com\">send us an email</a>.",
"main_info": "<h1>Collaborate in Confidence</h1><br> Grow your ideas together with shared documents while <strong>Zero Knowledge</strong> technology secures your privacy; even from us.", "main_info": "<h1>Collaborate in Confidence</h1><br> Grow your ideas together with shared documents while <strong>Zero Knowledge</strong> technology secures your privacy; even from us.",
"main_howitworks": "How It Works",
"main_zeroKnowledge": "Zero Knowledge",
"main_zeroKnowledge_p": "You don't have to trust that we <em>won't</em> look at your pads, with CryptPad's revolutionary Zero Knowledge Technology we <em>can't</em>. Learn more about how we protect your <a href=\"/privacy.html\" title='Privacy'>Privacy and Security</a>.",
"main_writeItDown": "Write it down",
"main_writeItDown_p": "The greatest projects come from the smallest ideas. Take down the moments of inspiration and unexpected ideas because you never know which one might be a breakthrough.",
"main_share": "Share the link, share the pad",
"main_share_p": "Grow your ideas together: conduct efficient meetings, collaborate on TODO lists and make quick presentations with all your friends and all your devices.",
"main_organize": "Get organized",
"main_organize_p": "With CryptPad Drive, you can keep your sights on what's important. Folders allow you to keep track of your projects and have a global vision of where things are going.",
"main_richText": "Rich Text editor", "main_richText": "Rich Text editor",
"main_richText_p": "Edit rich text pads collaboratively with our realtime Zero Knowledge <a href=\"http://ckeditor.com\" target=\"_blank\">CkEditor</a> application.",
"main_code": "Code editor", "main_code": "Code editor",
"main_code_p": "Edit code from your software collaboratively with our realtime Zero Knowledge <a href=\"https://www.codemirror.net\" target=\"_blank\">CodeMirror</a> application.",
"main_slide": "Slide editor", "main_slide": "Slide editor",
"main_slide_p": "Create your presentations using the Markdown syntax, and display them in your browser.",
"main_poll": "Polls", "main_poll": "Polls",
"main_poll_p": "Plan your meeting or your event, or vote for the best solution regarding your problem.",
"main_drive": "CryptDrive", "main_drive": "CryptDrive",
"footer_applications": "Applications", "footer_applications": "Applications",
"footer_contact": "Contact", "footer_contact": "Contact",
@ -337,14 +307,7 @@
"tos_e2ee": "Os documentos do CryptPad podem ser modificados por qualquer um que conseguir adivinhar ou obter de qualquer forma o seu identificador único. Nós recomendamos que você utilize criptografia ponto a ponto de mensagens (e2ee) sempre que possível para compartilhar suas URL's. Nós não assumimos qualquer responsabilidade sobre chaves e/ou URLs e seus respectivos conteúdos vazadas para o público.", "tos_e2ee": "Os documentos do CryptPad podem ser modificados por qualquer um que conseguir adivinhar ou obter de qualquer forma o seu identificador único. Nós recomendamos que você utilize criptografia ponto a ponto de mensagens (e2ee) sempre que possível para compartilhar suas URL's. Nós não assumimos qualquer responsabilidade sobre chaves e/ou URLs e seus respectivos conteúdos vazadas para o público.",
"tos_logs": "Os Metadados providos pelo seu navegador para nosso servidor podem ser armazenados com o propósito de manter o serviço em funcionamento", "tos_logs": "Os Metadados providos pelo seu navegador para nosso servidor podem ser armazenados com o propósito de manter o serviço em funcionamento",
"tos_3rdparties": "Nós não disponibilizamos dados individuais para terceiros, salvo quando requisitado legalmente.", "tos_3rdparties": "Nós não disponibilizamos dados individuais para terceiros, salvo quando requisitado legalmente.",
"bottom_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Feito com <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" /> na <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" /></a>",
"bottom_support": "<a href=\"http://labs.xwiki.com/\" title=\"XWiki Labs\" target=\"_blank\" rel=\"noopener noreferrer\">Um projeto do laboratório <img src=\"/customize/logo-xwiki2.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a> com o suporte da <a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Com <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" /> da <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"France\" alt=\"France\"/> por <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_logoTitle": "Go to the main page", "header_logoTitle": "Go to the main page",
"initialState": "<p>This is&nbsp;<strong>CryptPad</strong>, the Zero Knowledge realtime collaborative editor. Everything is saved as you type.<br>Share the link to this pad to edit with friends or use the <span class=\"fa fa-share-alt\"></span> button to share a <em>read-only link</em>&nbsp;which allows viewing but not editing.</p>",
"codeInitialState": "# CryptPad's Zero Knowledge collaborative code editor\n\n* What you type here is encrypted so only people who have the link can access it.\n* You can choose the programming language to highlight and the UI color scheme in the upper right.",
"slideInitialState": "# CryptSlide\n1. Write your slides content using markdown syntax\n - Learn more about markdown syntax [here](http://www.markdowntutorial.com/)\n2. Separate your slides with ---\n3. Click on the \"Play\" button to see the result - Your slides are updated in realtime",
"driveReadmeTitle": "What is CryptPad?", "driveReadmeTitle": "What is CryptPad?",
"readme_welcome": "Welcome to CryptPad !", "readme_welcome": "Welcome to CryptPad !",
"readme_p1": "Welcome to CryptPad, this is where you can take note of things alone and with friends.", "readme_p1": "Welcome to CryptPad, this is where you can take note of things alone and with friends.",
@ -366,10 +329,8 @@
"readme_cat3_l2": "With CryptPad slide editor, you can make quick presentations using Markdown", "readme_cat3_l2": "With CryptPad slide editor, you can make quick presentations using Markdown",
"readme_cat3_l3": "With CryptPoll you can take quick votes, especially for scheduling meetings which fit with everybody's calendar", "readme_cat3_l3": "With CryptPoll you can take quick votes, especially for scheduling meetings which fit with everybody's calendar",
"tips": { "tips": {
"lag": "The green icon in the upper right shows the quality of your internet connection to the CryptPad server.",
"shortcuts": "`ctrl+b`, `ctrl+i` and `ctrl+u` are quick shortcuts for bold, italic and underline.", "shortcuts": "`ctrl+b`, `ctrl+i` and `ctrl+u` are quick shortcuts for bold, italic and underline.",
"indent": "In numbered and bulleted lists, you can use tab or shift+tab to quickly increase or decrease indentation.", "indent": "In numbered and bulleted lists, you can use tab or shift+tab to quickly increase or decrease indentation.",
"title": "You can set the title of your pad by clicking the top center.",
"store": "Every time you visit a pad, if you're logged in it will be saved to your CryptDrive.", "store": "Every time you visit a pad, if you're logged in it will be saved to your CryptDrive.",
"marker": "You can highlight text in a pad using the \"marker\" item in the styles dropdown menu." "marker": "You can highlight text in a pad using the \"marker\" item in the styles dropdown menu."
}, },

@ -1,12 +1,10 @@
{ {
"main_title": "CryptPad: Zero Knowledge, Colaborare în timp real", "main_title": "CryptPad: Zero Knowledge, Colaborare în timp real",
"main_slogan": "Puterea stă în cooperare - Colaborarea este cheia",
"button_newpad": "Filă Text Nouă", "button_newpad": "Filă Text Nouă",
"button_newcode": "Filă Cod Nouă", "button_newcode": "Filă Cod Nouă",
"button_newpoll": "Sondaj Nou", "button_newpoll": "Sondaj Nou",
"button_newslide": "Prezentare Nouă", "button_newslide": "Prezentare Nouă",
"button_newwhiteboard": "Fila Desen Nouă", "button_newwhiteboard": "Fila Desen Nouă",
"updated_0_common_connectionLost": "<b>Conexiunea la server este pierdută</b><br>Până la revenirea conexiunii, vei fi în modul citire",
"common_connectionLost": "<b>Conexiunea la server este pierdută</b><br>Până la revenirea conexiunii, vei fi în modul citire", "common_connectionLost": "<b>Conexiunea la server este pierdută</b><br>Până la revenirea conexiunii, vei fi în modul citire",
"websocketError": "Conexiune inexistentă către serverul websocket...", "websocketError": "Conexiune inexistentă către serverul websocket...",
"typeError": "Această filă nu este compatibilă cu aplicația aleasă", "typeError": "Această filă nu este compatibilă cu aplicația aleasă",
@ -66,7 +64,6 @@
"backgroundButtonTitle": "Schimbă culoarea de fundal din prezentare", "backgroundButtonTitle": "Schimbă culoarea de fundal din prezentare",
"colorButtonTitle": "Schimbă culoarea textului în modul de prezentare", "colorButtonTitle": "Schimbă culoarea textului în modul de prezentare",
"printButton": "Printează (enter)", "printButton": "Printează (enter)",
"printButtonTitle": "Printează-ți slide-urile sau exportă-le ca fișier PDF",
"printOptions": "Opțiuni schemă", "printOptions": "Opțiuni schemă",
"printSlideNumber": "Afișează numărul slide-ului", "printSlideNumber": "Afișează numărul slide-ului",
"printDate": "Afișează data", "printDate": "Afișează data",
@ -92,10 +89,7 @@
"historyButton": "Afișează istoricul documentului", "historyButton": "Afișează istoricul documentului",
"history_next": "Mergi la versiunea următoare", "history_next": "Mergi la versiunea următoare",
"history_prev": "Mergi la versiunea trecută", "history_prev": "Mergi la versiunea trecută",
"history_goTo": "Mergi la sesiunea selectată",
"history_close": "Înapoi",
"history_closeTitle": "Închide istoricul", "history_closeTitle": "Închide istoricul",
"history_restore": "Restabilește",
"history_restoreTitle": "Restabilește versiunea selectată a documentului", "history_restoreTitle": "Restabilește versiunea selectată a documentului",
"history_restorePrompt": "Ești sigur că vrei să înlocuiești versiunea curentă a documentului cu cea afișată?", "history_restorePrompt": "Ești sigur că vrei să înlocuiești versiunea curentă a documentului cu cea afișată?",
"history_restoreDone": "Document restabilit", "history_restoreDone": "Document restabilit",
@ -170,8 +164,6 @@
"fm_info_template": "Conține toate pad-urile stocate ca șabloane și pe care le poți refolosi atunci când creezi un nou pad.", "fm_info_template": "Conține toate pad-urile stocate ca șabloane și pe care le poți refolosi atunci când creezi un nou pad.",
"fm_info_trash": "Fișierele șterse din gunoi vor fi șterse și din \"Toate fișierele\", făcând imposibilă recuperarea fișierelor din managerul de fișiere.", "fm_info_trash": "Fișierele șterse din gunoi vor fi șterse și din \"Toate fișierele\", făcând imposibilă recuperarea fișierelor din managerul de fișiere.",
"fm_info_allFiles": "Conține toate fișierele din \"Documente\", \"Nesortate\" și \"Gunoi\". Poți să muți sau să ștergi fișierele aici.", "fm_info_allFiles": "Conține toate fișierele din \"Documente\", \"Nesortate\" și \"Gunoi\". Poți să muți sau să ștergi fișierele aici.",
"fm_info_login": "Loghează-te",
"fm_info_register": "Înscrie-te",
"fm_info_anonymous": "Nu ești logat cu un cont valid așa că aceste pad-uri vor fi șterse (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">află de ce</a>). <a href=\"/register/\">Înscrie-te</a> sau <a href=\"/login/\">Loghează-te</a> pentru a le salva.", "fm_info_anonymous": "Nu ești logat cu un cont valid așa că aceste pad-uri vor fi șterse (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">află de ce</a>). <a href=\"/register/\">Înscrie-te</a> sau <a href=\"/login/\">Loghează-te</a> pentru a le salva.",
"fm_alert_backupUrl": "Link copie de rezervă pentru acest drive.<br> Este <strong>foarte recomandat</strong> să o păstrezi pentru tine.<br>Poți să o folosești pentru a recupera toate fișierele în cazul în care memoria browserului tău este șterge..<br>Oricine are linkul poate să editeze sau să îndepărteze toate fișierele din managerul tău de documente.<br>", "fm_alert_backupUrl": "Link copie de rezervă pentru acest drive.<br> Este <strong>foarte recomandat</strong> să o păstrezi pentru tine.<br>Poți să o folosești pentru a recupera toate fișierele în cazul în care memoria browserului tău este șterge..<br>Oricine are linkul poate să editeze sau să îndepărteze toate fișierele din managerul tău de documente.<br>",
"fm_alert_anonymous": "Salut, momentan folosești CryptPad în mod anonim. Este ok, doar că fișierele tale vor fi șterse după o perioadă de inactivitate. Am dezactivat caracteristicile avansate ale drive-ului pentru utilizatorii anonimi pentru a face clar faptul că stocare documentelor acolo nu este o metodă sigură. Poți să <a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">citești mai multe</a> despre motivarea noastră și despre ce de trebuie să te <a href=\"/register/\">Înregistrezi</a> si sa te <a href=\"/login/\">Loghezi</a>.", "fm_alert_anonymous": "Salut, momentan folosești CryptPad în mod anonim. Este ok, doar că fișierele tale vor fi șterse după o perioadă de inactivitate. Am dezactivat caracteristicile avansate ale drive-ului pentru utilizatorii anonimi pentru a face clar faptul că stocare documentelor acolo nu este o metodă sigură. Poți să <a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">citești mai multe</a> despre motivarea noastră și despre ce de trebuie să te <a href=\"/register/\">Înregistrezi</a> si sa te <a href=\"/login/\">Loghezi</a>.",
@ -224,10 +216,8 @@
"register_alreadyRegistered": "Acest user există deja, vrei să te loghezi?", "register_alreadyRegistered": "Acest user există deja, vrei să te loghezi?",
"settings_title": "Setări", "settings_title": "Setări",
"settings_save": "Salvează", "settings_save": "Salvează",
"settings_backupTitle": "Fă o copie de rezervă sau restaurează toate datele",
"settings_backup": "Copie de rezervă", "settings_backup": "Copie de rezervă",
"settings_restore": "Restaurează", "settings_restore": "Restaurează",
"settings_resetTitle": "Curăță-ți drive-ul",
"settings_reset": "Îndepărtează toate fișierele și folderele din CryptPad-ul tău.", "settings_reset": "Îndepărtează toate fișierele și folderele din CryptPad-ul tău.",
"settings_resetPrompt": "Această acțiune va indepărta toate pad-urile din drive-ul tău.<br>Ești sigur că vrei să continui?<br>Tastează “<em>Iubesc CryptPad</em>” pentru a confirma.", "settings_resetPrompt": "Această acțiune va indepărta toate pad-urile din drive-ul tău.<br>Ești sigur că vrei să continui?<br>Tastează “<em>Iubesc CryptPad</em>” pentru a confirma.",
"settings_resetDone": "Drive-ul tău este acum gol!", "settings_resetDone": "Drive-ul tău este acum gol!",
@ -255,28 +245,11 @@
"upload_serverError": "Eroare de server: fișierele tale nu pot fi încărcate la momentul acesta.", "upload_serverError": "Eroare de server: fișierele tale nu pot fi încărcate la momentul acesta.",
"upload_uploadPending": "Ai deja o încărcare în desfășurare. Anulezi și încarci noul fișier?", "upload_uploadPending": "Ai deja o încărcare în desfășurare. Anulezi și încarci noul fișier?",
"upload_success": "Fișierul tău ({0}) a fost ncărcat și adăugat la drive-ul tău cu succes.", "upload_success": "Fișierul tău ({0}) a fost ncărcat și adăugat la drive-ul tău cu succes.",
"main_p2": "Acest proiect folosește <a href=\"http://ckeditor.com/\">CKEditor</a> Visual Editor, <a href=\"https://codemirror.net/\">CodeMirror</a>, și <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a> un motor în timp real.",
"main_howitworks_p1": "CryptPad folosește o variantă a algoritmului de <a href=\"https://en.wikipedia.org/wiki/Operational_transformation\">Operational transformation</a> care este capabil să găsescă consens distribuit folosind <a href=\"https://bitcoin.org/bitcoin.pdf\">Nakamoto Blockchain</a>, o construcție popularizată de <a href=\"https://en.wikipedia.org/wiki/Bitcoin\">Bitcoin</a>. Astfel algoritmul poate evita nevoia ca serverul central să rezove conflicte, iar serverul nu este interesat de conținutul care este editat în pad.",
"main_about_p2": "Dacă ai orice fel de întrebare sau comentariu, poți să ne <a href=\"https://twitter.com/cryptpad\">dai un tweet</a>, semnalezi o problemă <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"index de probleme\">on github</a>, spui salut pe IRC (<a href=\"http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7\" title=\"freenode webchat\">irc.freenode.net</a>), sau <a href=\"research@xwiki.com\">trimiți un email</a>.",
"main_info": "<h1>Colaborează în siguranță</h1><br> Dezvoltă-ți ideile împreună cu documentele partajate în timp ce tehnologia <strong>Zero Knowledge</strong> îți păstrează securitatea; chiar și de noi.", "main_info": "<h1>Colaborează în siguranță</h1><br> Dezvoltă-ți ideile împreună cu documentele partajate în timp ce tehnologia <strong>Zero Knowledge</strong> îți păstrează securitatea; chiar și de noi.",
"main_howitworks": "Cum funcționează",
"main_zeroKnowledge": "Zero Knowledge",
"main_zeroKnowledge_p": "Nu trebuie să ne crezi că <em>nu ne uităm</em> la pad-urile tale, cu tehnologia revoluționară Zero Knowledge a CryptPad <em>nu putem</em>. Învață mai multe despre cum îți protejăm <a href=\"/privacy.html\" title='Intimitatea'>Intimitate și Securitate</a>.",
"main_writeItDown": "Notează",
"main_writeItDown_p": "Cele mai importante proiecte vin din idei mici. Notează-ți momentele de inspirație și ideile neașteptate pentru că nu știi niciodată care ar putea fi noua mare descoperire.",
"main_share": "Partajează link-ul, partajează pad-ul",
"main_share_p": "Dezvoltă-ți ideile împreună: organizează întâlniri eficiente, colaborează pe liste TODO și fă prezentări scurte cu toți prietenii tăi și device-urile tale.",
"main_organize": "Organizează-te",
"main_organize_p": "Cu CryptPad Drive, poți să stai cu ochii pe ce este important. Folderele îți permit să ții evidența proiectelor tale și să ai o viziune globală asupra evoluției lucrurilor.",
"tryIt": "Testează!",
"main_richText": "Rich Text editor", "main_richText": "Rich Text editor",
"main_richText_p": "Editează texte complexe în mod colaborativ cu Zero Knowledge în timp real. <a href=\"http://ckeditor.com\" target=\"_blank\">CkEditor</a> application.",
"main_code": "Editor cod", "main_code": "Editor cod",
"main_code_p": "Editează cod din softul tău, în mod colaborativ, cu Zero Knowledge în timp real.<a href=\"https://www.codemirror.net\" target=\"_blank\">CodeMirror</a> application.",
"main_slide": "Editor slide-uri", "main_slide": "Editor slide-uri",
"main_slide_p": "Crează-ți prezentări folosind sintaxa Markdown, și afișează-le în browser-ul tău.",
"main_poll": "Sondaj", "main_poll": "Sondaj",
"main_poll_p": "Plănuiește întâlniri sau evenimente, sau votează pentru cea mai bună soluție pentru problema ta.",
"main_drive": "CryptDrive", "main_drive": "CryptDrive",
"footer_applications": "Aplicații", "footer_applications": "Aplicații",
"footer_contact": "Contact", "footer_contact": "Contact",
@ -309,14 +282,7 @@
"tos_e2ee": "Conținutul CryptPad poate fi citit sau modificat de oricine care poate ghici sau obține fragmentul identificator al pad-ului. Recomandăm să folosești soluții de comunicare criptate end-to-end-encrypted (e2ee) pentru a partaja link-uri, evitând orice risc în cazul unei scurgeri de informații.", "tos_e2ee": "Conținutul CryptPad poate fi citit sau modificat de oricine care poate ghici sau obține fragmentul identificator al pad-ului. Recomandăm să folosești soluții de comunicare criptate end-to-end-encrypted (e2ee) pentru a partaja link-uri, evitând orice risc în cazul unei scurgeri de informații.",
"tos_logs": "Metadatele oferite de browser-ul tău serverului ar putea fi înscrise în scopul de a menține serviciul.", "tos_logs": "Metadatele oferite de browser-ul tău serverului ar putea fi înscrise în scopul de a menține serviciul.",
"tos_3rdparties": "Nu oferim date personale terților, decât dacă ne sunt solicitate prin lege.", "tos_3rdparties": "Nu oferim date personale terților, decât dacă ne sunt solicitate prin lege.",
"bottom_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Realizat cu <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"love\" /> n <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" alt=\"Franța\" /></a>",
"bottom_support": "<a href=\"http://labs.xwiki.com/\" title=\"XWiki Labs\" target=\"_blank\" rel=\"noopener noreferrer\">Un proiect al <img src=\"/customize/logo-xwiki2.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/> Labs Project </a> cu susținerea <a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">With <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"love\" /> from <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"Franța\" alt=\"Franța\"/> by <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_logoTitle": "Mergi la pagina principală", "header_logoTitle": "Mergi la pagina principală",
"initialState": "<p>Acesta este&nbsp;<strong>CryptPad</strong>, editorul colaborativ bazat pe tehnologia Zero Knowledge în timp real. Totul este salvat pe măsură ce scrii.<br>Partajează link-ul către acest pad pentru a edita cu prieteni sau folosește <span class=\"fa fa-share-alt\"></span> butonul pentru a partaja <em>read-only link</em>&nbsp;permițând vizualizarea dar nu și editarea.</p>",
"codeInitialState": "/*\n Acesta este editorul colaborativ de cod bazat pe tehnologia Zero Knowledge CryptPad.\n Ce scrii aici este criptat, așa că doar oamenii care au link-ul pot să-l acceseze.\n Poți să alegi ce limbaj de programare pus n evidență și schema de culori UI n dreapta sus.\n*/",
"slideInitialState": "# CryptSlide\n1. Scrie-ți conținutul slide-urilor folosind sintaxa markdown\n - Află mai multe despre sintaxa markdown [aici](http://www.markdowntutorial.com/)\n2. Separă-ți slide-urile cu ---\n3. Click pe butonul \"Play\" pentru a vedea rezultatele - Slide-urile tale sunt actualizate în timp real.",
"driveReadmeTitle": "Ce este CryptPad?", "driveReadmeTitle": "Ce este CryptPad?",
"readme_welcome": "Bine ai venit n CryptPad !", "readme_welcome": "Bine ai venit n CryptPad !",
"readme_p1": "Bine ai venit în CryptPad, acesta este locul unde îți poți lua notițe, singur sau cu prietenii.", "readme_p1": "Bine ai venit în CryptPad, acesta este locul unde îți poți lua notițe, singur sau cu prietenii.",
@ -338,11 +304,7 @@
"readme_cat3_l2": "Cu editorul de slide-uri CryptPad, poți să faci prezentări scurte folosind Markdown", "readme_cat3_l2": "Cu editorul de slide-uri CryptPad, poți să faci prezentări scurte folosind Markdown",
"readme_cat3_l3": "Cu CryptPoll poți să organizezi votări rapide, mai ales pentru a programa ntâlniri care se potrivesc calendarelor tuturor", "readme_cat3_l3": "Cu CryptPoll poți să organizezi votări rapide, mai ales pentru a programa ntâlniri care se potrivesc calendarelor tuturor",
"tips": { "tips": {
"lag": "Iconița verde din dreapta-sus arată calitatea conexiunii internetului tău la serverele CryptPad.",
"shortcuts": "`ctrl+b`, `ctrl+i` and `ctrl+u` sunt scurtături pentru bold, italic și underline.", "shortcuts": "`ctrl+b`, `ctrl+i` and `ctrl+u` sunt scurtături pentru bold, italic și underline.",
"indentare": "În listele cu bulină sau cele numerotate, poți folosi tab sau shift+tab pentru a mări sau micșora indentarea.",
"titlu": "Poți seta titlul pad-urilor tale prin click pe centru sus.",
"stocare": "De fiecare dată când vizitezi un pad, dacă ești logat va fi salvat pe CryptDrive-ul tău.",
"marker": "Poți sublinia text într-un pad folosind itemul \"marker\" n meniul de stiluri." "marker": "Poți sublinia text într-un pad folosind itemul \"marker\" n meniul de stiluri."
}, },
"feedback_about": "Dacă citești asta, probabil că ești curios de ce CryptPad cere pagini web atunci când întreprinzi anumite acțiuni", "feedback_about": "Dacă citești asta, probabil că ești curios de ce CryptPad cere pagini web atunci când întreprinzi anumite acțiuni",

@ -1,7 +1,5 @@
{ {
"_languageName": "Chinese",
"main_title": "CryptPad: 零知識, 即時協作編寫", "main_title": "CryptPad: 零知識, 即時協作編寫",
"main_slogan": "團結就是力量 - 合作是關鍵",
"type": { "type": {
"pad": "富文本", "pad": "富文本",
"code": "編碼", "code": "編碼",
@ -17,7 +15,6 @@
"button_newpoll": "新投票調查", "button_newpoll": "新投票調查",
"button_newslide": "新簡報", "button_newslide": "新簡報",
"button_newwhiteboard": "新白板", "button_newwhiteboard": "新白板",
"updated_0_common_connectionLost": "<b>伺服器連線中斷</b><br>現在是唯讀狀態,直到連線恢復正常。",
"common_connectionLost": "<b>伺服器連線中斷</b><br>現在是唯讀狀態,直到連線恢復正常。", "common_connectionLost": "<b>伺服器連線中斷</b><br>現在是唯讀狀態,直到連線恢復正常。",
"websocketError": "無法連結上 websocket 伺服器...", "websocketError": "無法連結上 websocket 伺服器...",
"typeError": "這個編輯檔與所選的應用程式並不相容", "typeError": "這個編輯檔與所選的應用程式並不相容",
@ -58,7 +55,6 @@
"orangeLight": "連線速度慢可能會影響用戶體驗", "orangeLight": "連線速度慢可能會影響用戶體驗",
"redLight": "你這段期間的連線已中斷", "redLight": "你這段期間的連線已中斷",
"pinLimitReached": "你已達到儲存容量上限", "pinLimitReached": "你已達到儲存容量上限",
"updated_0_pinLimitReachedAlert": "你已達到儲存容量上限,新檔案不會儲存到你的 CryptDrive.<br>要嘛你可以自 CryptDrive 移除原有文件或是 <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">昇級到付費版</a>增加你的儲存容量。",
"pinLimitReachedAlert": "你已達到儲存容量上限,新檔案不會儲存到你的 CryptDrive.<br>要嘛你可以自 CryptDrive 移除原有文件或是 <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">昇級到付費版</a>增加你的儲存容量。", "pinLimitReachedAlert": "你已達到儲存容量上限,新檔案不會儲存到你的 CryptDrive.<br>要嘛你可以自 CryptDrive 移除原有文件或是 <a href=\"https://accounts.cryptpad.fr/#!on={0}\" target=\"_blank\">昇級到付費版</a>增加你的儲存容量。",
"pinLimitNotPinned": "你已達到容量使用上限<br>這個檔案無法儲存到你的 CryptDrive.", "pinLimitNotPinned": "你已達到容量使用上限<br>這個檔案無法儲存到你的 CryptDrive.",
"pinLimitDrive": "你已達到容量使用上限<br>你不能建立新的編輯檔案", "pinLimitDrive": "你已達到容量使用上限<br>你不能建立新的編輯檔案",
@ -86,7 +82,6 @@
"backgroundButtonTitle": "改變簡報的顏色背景", "backgroundButtonTitle": "改變簡報的顏色背景",
"colorButtonTitle": "在簡報模式下改變文字顏色", "colorButtonTitle": "在簡報模式下改變文字顏色",
"printButton": "列印 (enter)", "printButton": "列印 (enter)",
"printButtonTitle": "列印投影片或滙出成 PDF 檔案",
"printOptions": "版型選項", "printOptions": "版型選項",
"printSlideNumber": "顯示投影片號碼", "printSlideNumber": "顯示投影片號碼",
"printDate": "顯示日期", "printDate": "顯示日期",
@ -112,10 +107,7 @@
"historyButton": "顯示文件歷史", "historyButton": "顯示文件歷史",
"history_next": "到下一個版本", "history_next": "到下一個版本",
"history_prev": "到之前的版本", "history_prev": "到之前的版本",
"history_goTo": "到所選擇的版本",
"history_close": "回到",
"history_closeTitle": "關閉歷史記錄", "history_closeTitle": "關閉歷史記錄",
"history_restore": "重建",
"history_restoreTitle": "將此文件重建到所挑選的版本", "history_restoreTitle": "將此文件重建到所挑選的版本",
"history_restorePrompt": "確定要將這個展現的版本來取代現有版本嗎?", "history_restorePrompt": "確定要將這個展現的版本來取代現有版本嗎?",
"history_restoreDone": "文件已重建", "history_restoreDone": "文件已重建",
@ -188,7 +180,6 @@
"fm_info_root": "在此建立任何巢狀目錄夾以便於整理分類你的檔案。", "fm_info_root": "在此建立任何巢狀目錄夾以便於整理分類你的檔案。",
"fm_info_unsorted": "包含所有你曾訪問過的檔案,其尚未被整理在 \"根目錄\" 或移到到\"垃圾筒\".", "fm_info_unsorted": "包含所有你曾訪問過的檔案,其尚未被整理在 \"根目錄\" 或移到到\"垃圾筒\".",
"fm_info_template": "包含所有工作檔案已存成模版,便於讓你在建立新工作檔案時套用。", "fm_info_template": "包含所有工作檔案已存成模版,便於讓你在建立新工作檔案時套用。",
"updated_0_fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間",
"fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間", "fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間",
"fm_info_allFiles": "包含在 \"根目錄\", \"未整理的\" 和 \"垃圾筒\" 裏的所有檔案。這裏你無法移動或移除檔案。", "fm_info_allFiles": "包含在 \"根目錄\", \"未整理的\" 和 \"垃圾筒\" 裏的所有檔案。這裏你無法移動或移除檔案。",
"fm_info_anonymous": "你尚未登入,因此這些工作檔案可能會被刪除。 (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">了解原因</a>). <a href=\"/register/\">註冊</a>或<a href=\"/login/\">登入</a>以便保留它們。", "fm_info_anonymous": "你尚未登入,因此這些工作檔案可能會被刪除。 (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">了解原因</a>). <a href=\"/register/\">註冊</a>或<a href=\"/login/\">登入</a>以便保留它們。",
@ -244,10 +235,8 @@
"register_alreadyRegistered": "這名用戶己存在了,你要登入嗎?", "register_alreadyRegistered": "這名用戶己存在了,你要登入嗎?",
"settings_title": "設定", "settings_title": "設定",
"settings_save": "儲存", "settings_save": "儲存",
"settings_backupTitle": "備份或重建你所有的資料",
"settings_backup": "備份", "settings_backup": "備份",
"settings_restore": "重建", "settings_restore": "重建",
"settings_resetTitle": "清除你的雲端硬碟",
"settings_reset": "從你的 CryptDrive 移除所有的檔案和資料夾", "settings_reset": "從你的 CryptDrive 移除所有的檔案和資料夾",
"settings_resetPrompt": "這個動作會自你的雲端硬碟中移除所有工作檔案<br>確定要繼續嗎?<br>輸入 “<em>I love CryptPad</em>” 來確認。", "settings_resetPrompt": "這個動作會自你的雲端硬碟中移除所有工作檔案<br>確定要繼續嗎?<br>輸入 “<em>I love CryptPad</em>” 來確認。",
"settings_resetDone": "你的目錄現已清空!", "settings_resetDone": "你的目錄現已清空!",
@ -284,29 +273,11 @@
"upload_size": "大小", "upload_size": "大小",
"upload_progress": "進度", "upload_progress": "進度",
"download_button": "解密 & 下載", "download_button": "解密 & 下載",
"warn_notPinned": "這個工作檔案並不在任何人的 CryptDrive 裏,它將在 3 個月到期後刪除。 <a href='/about.html#pinning'>進一步了解...</a>",
"main_p2": "本專案使用 <a href=\"http://ckeditor.com/\">CKEditor</a> 視覺編輯器, <a href=\"https://codemirror.net/\">CodeMirror</a>, 以及 <a href=\"https://github.com/xwiki-contrib/chainpad\">ChainPad</a> 即時引擊。",
"main_howitworks_p1": "CryptPad 應用一種變體的 <a href=\"https://en.wikipedia.org/wiki/Operational_transformation\">操作型變換 Operational transformation</a> 演算法,它利用<a href=\"https://bitcoin.org/bitcoin.pdf\">Nakamoto Blockchain</a>來找到分散的共識, Nakamoto Blockchain 是一種建構當前流行的<a href=\"https://en.wikipedia.org/wiki/Bitcoin\">比特幣</a>。這套演算法可避免需要一個中央的伺服器來解析操作型變換編輯衝突,而無須處理解析衝突,伺服器並不知道哪一個檔案被編輯。",
"main_about_p2": "若有任何問題和建議, 可以在<a href=\"https://twitter.com/cryptpad\">tweet us</a>, <a href=\"https://github.com/xwiki-labs/cryptpad/issues/\" title=\"our issue tracker\">github</a>提出問題, 或是來到 irc (<a href=\"http://webchat.freenode.net?channels=%23cryptpad&uio=MT1mYWxzZSY5PXRydWUmMTE9Mjg3JjE1PXRydWUe7\" title=\"freenode webchat\">irc.freenode.net</a>)打聲招呼, 再或者 <a href=\"mailto:research@xwiki.com\">寄封電郵給我們</a>.",
"main_info": "<h1>Collaborate in Confidence</h1><br> 利用共同享文件發嚮點子,透過 <strong>零知識 </strong> 科技確保隱私安全; 對任何網路服務商都要加以提防。", "main_info": "<h1>Collaborate in Confidence</h1><br> 利用共同享文件發嚮點子,透過 <strong>零知識 </strong> 科技確保隱私安全; 對任何網路服務商都要加以提防。",
"main_howitworks": "它如何運作",
"main_zeroKnowledge": "零知識",
"main_zeroKnowledge_p": "你不必相信我們所說的<em>並不會</em> 察看你的檔案, CryptPad 革命性的零知識技術讓我們 <em>真的不能看到</em>。 進一步了解在這裏,我們如何保護用戶的 <a href=\"/privacy.html\" title='Privacy'>隱私和安全</a>。",
"main_writeItDown": "寫下它",
"main_writeItDown_p": "偉大的專案來自不起眼的小點子。記下靈感與點子的瞬間,因為你從不會知道哪個會帶來重大突破。",
"main_share": "分享連結, 分享工作檔案",
"main_share_p": "一起來發響想法點子: 在任何設備上,與朋友一起執行有效率的會議, 協作待辦清單與快速製作簡報。",
"main_organize": "Get organized",
"main_organize_p": "利用 CryptPad 空間, 你可以保留看管重要的東西。資料夾讓你可以追踪專案和全盤了解事情的走向狀況。",
"tryIt": "Try it out!",
"main_richText": "富文字編輯器", "main_richText": "富文字編輯器",
"main_richText_p": "利用我們的即時零知識技術,集體協作地編輯富文本檔案 <a href=\"http://ckeditor.com\" target=\"_blank\">CkEditor</a> 應用程式application.",
"main_code": "代碼編輯器", "main_code": "代碼編輯器",
"main_code_p": "利用我們的即時零知識技術,集體協作地編輯程式代碼 <a href=\"https://www.codemirror.net\" target=\"_blank\">CodeMirror</a> 應用程式。",
"main_slide": "投影片編輯器", "main_slide": "投影片編輯器",
"main_slide_p": "使用 Markdown 語法來建立投影片,並利用瀏覽器來展示投影片。",
"main_poll": "調查", "main_poll": "調查",
"main_poll_p": "規劃會議或活動,或是為問題舉行投最佳方案的投票。",
"main_drive": "CryptDrive", "main_drive": "CryptDrive",
"footer_applications": "應用程式", "footer_applications": "應用程式",
"footer_contact": "聯繫", "footer_contact": "聯繫",
@ -339,14 +310,7 @@
"tos_e2ee": "CryptPad 的內容可以被任何猜出或取得工作檔案分段識別碼的人讀取與修改。我們建議你使用端對端加密 (e2ee) 訊息技術來分享工作檔案連結 以及假設如果一旦連結外漏不會背上任何責任。", "tos_e2ee": "CryptPad 的內容可以被任何猜出或取得工作檔案分段識別碼的人讀取與修改。我們建議你使用端對端加密 (e2ee) 訊息技術來分享工作檔案連結 以及假設如果一旦連結外漏不會背上任何責任。",
"tos_logs": "你的瀏覽器提供給伺服器的元數據,可能會因為維護本服務之效能而被收集記錄。", "tos_logs": "你的瀏覽器提供給伺服器的元數據,可能會因為維護本服務之效能而被收集記錄。",
"tos_3rdparties": "除非法令要求,我們不會提供任何個人資料給第三方。", "tos_3rdparties": "除非法令要求,我們不會提供任何個人資料給第三方。",
"bottom_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Made with <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"love\" /> in <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" alt=\"France\" /></a>",
"bottom_support": "<a href=\"http://labs.xwiki.com/\" title=\"XWiki Labs\" target=\"_blank\" rel=\"noopener noreferrer\">An <img src=\"/customize/logo-xwiki2.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/> Labs Project </a> with the support of <a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_france": "<a href=\"http://www.xwiki.com/\" target=\"_blank\" rel=\"noopener noreferrer\">With <img class=\"bottom-bar-heart\" src=\"/customize/heart.png\" alt=\"love\" /> from <img class=\"bottom-bar-fr\" src=\"/customize/fr.png\" title=\"France\" alt=\"France\"/> by <img src=\"/customize/logo-xwiki.png\" alt=\"XWiki SAS\" class=\"bottom-bar-xwiki\"/></a>",
"header_support": "<a href=\"http://ng.open-paas.org/\" title=\"OpenPaaS::ng\" target=\"_blank\" rel=\"noopener noreferrer\"> <img src=\"/customize/openpaasng.png\" alt=\"OpenPaaS-ng\" class=\"bottom-bar-openpaas\" /></a>",
"header_logoTitle": "回到主頁", "header_logoTitle": "回到主頁",
"initialState": "<p>這是&nbsp;<strong>CryptPad</strong>, 零知識即時協作編輯平台,當你輸入時一切已即存好。<br>分享這個工作檔案的網址連結給友人或是使用、 <span class=\"fa fa-share-alt\"></span> 按鈕分享<em>唯讀的連結</em>&nbsp;其只能看不能編寫。</p>",
"codeInitialState": "# CryptPad 零知識即時協作代碼編輯平台\n\n* 你所輸入的東西會予以加密,僅有知道此網頁連結者可以接取這份文件。\n* 你可以在右上角選擇欲編寫的程式語言以及樣版配色風格。",
"slideInitialState": "# CryptSlide\n1. 使用 markdown 語法來寫下你的投影片內容\n - 進一步學習 markdown 語法 [here](http://www.markdowntutorial.com/)\n2. 利用 --- 來區隔不同的投影片\n3. 點擊下方 \"Play\" 鍵來查看成果 - 你的投影片會即時更新",
"driveReadmeTitle": "什麼是 CryptPad?", "driveReadmeTitle": "什麼是 CryptPad?",
"readme_welcome": "歡迎來到 CryptPad !", "readme_welcome": "歡迎來到 CryptPad !",
"readme_p1": "歡迎來到 CryptPad, 這裏你可以獨自作個人筆記或是和別人共享協作。", "readme_p1": "歡迎來到 CryptPad, 這裏你可以獨自作個人筆記或是和別人共享協作。",
@ -368,10 +332,8 @@
"readme_cat3_l2": "使用 CryptPad 投影片編輯功能,你可以使用 Markdown 快速製作簡報檔。", "readme_cat3_l2": "使用 CryptPad 投影片編輯功能,你可以使用 Markdown 快速製作簡報檔。",
"readme_cat3_l3": "利用 CryptPoll 你可以快速作個線上調查,尤其是調查每個人有空的會議時間。", "readme_cat3_l3": "利用 CryptPoll 你可以快速作個線上調查,尤其是調查每個人有空的會議時間。",
"tips": { "tips": {
"lag": "右上角的綠色圖標顯示你連線至 CryptPad 伺服器的連線品質。",
"shortcuts": "`ctrl+b`, `ctrl+i` 和 `ctrl+u` 分別是粗體字、斜體、與加底線用法的快速鍵。", "shortcuts": "`ctrl+b`, `ctrl+i` 和 `ctrl+u` 分別是粗體字、斜體、與加底線用法的快速鍵。",
"indent": "要使用數字以及符號列表, 可使用 tab 或 shift+tab 快速地增加或滅少縮排指令。", "indent": "要使用數字以及符號列表, 可使用 tab 或 shift+tab 快速地增加或滅少縮排指令。",
"title": "點擊正上方來設定工作檔案的標題。",
"store": "每一回你造訪一個工作檔案, 如果是登入狀態,則這些檔案會自動儲存到你的 CryptDrive.", "store": "每一回你造訪一個工作檔案, 如果是登入狀態,則這些檔案會自動儲存到你的 CryptDrive.",
"marker": "在格式下拉選單中使用 \"marker\" 可以標注反亮文字." "marker": "在格式下拉選單中使用 \"marker\" 可以標注反亮文字."
}, },

@ -5,7 +5,7 @@ define([
'/bower_components/nthen/index.js', '/bower_components/nthen/index.js',
'/common/sframe-common.js', '/common/sframe-common.js',
'/common/hyperscript.js', '/common/hyperscript.js',
'/contacts/messenger-ui.js', '/common/messenger-ui.js',
'/customize/messages.js', '/customize/messages.js',
'/common/common-interface.js', '/common/common-interface.js',

@ -15,10 +15,48 @@
display: flex; display: flex;
min-height: 0; min-height: 0;
} }
#cp-app-debug-content { #cp-app-debug-content, #cp-app-debug-history {
flex: 1; flex: 1;
overflow: auto; overflow: auto;
white-space: pre-wrap; white-space: pre-wrap;
display: none;
}
#cp-app-debug-content {
margin: 50px;
flex-flow: column;
align-items: center;
justify-content: center;
.cp-app-debug-content {
flex: 1;
min-height: 0;
}
.cp-app-debug-progress, .cp-app-debug-init {
text-align: center;
}
#cp-app-debug-loading {
text-align: center;
}
.cp-app-debug-content-hrefs {
td, th {
max-width: 300px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
padding: 0 20px;
}
td:nth-child(3) {
max-width: 500px;
}
.cp-debug-ok {
background-color: #eeffee;
}
.cp-debug-nok {
background-color: #ffeeee;
}
tr:not(:first-child):hover {
background-color: rgba(0,0,0,0.1);
}
}
} }
} }

File diff suppressed because it is too large Load Diff

@ -13,6 +13,7 @@
<div id="cp-toolbar" class="cp-toolbar-container"></div> <div id="cp-toolbar" class="cp-toolbar-container"></div>
<div id="cp-app-debug"> <div id="cp-app-debug">
<div id="cp-app-debug-content"></div> <div id="cp-app-debug-content"></div>
<div id="cp-app-debug-history"></div>
</div> </div>
</body> </body>
</html> </html>

@ -7,10 +7,14 @@ define([
'/bower_components/nthen/index.js', '/bower_components/nthen/index.js',
'/common/sframe-common.js', '/common/sframe-common.js',
'/common/common-interface.js', '/common/common-interface.js',
'/common/common-hash.js',
'/common/common-constants.js',
'/common/hyperscript.js',
'/api/config', '/api/config',
'/common/common-realtime.js', '/common/common-realtime.js',
'/customize/messages.js', '/customize/messages.js',
'/customize/application_config.js', '/customize/application_config.js',
'/debug/chainpad.dist.js',
'/bower_components/secure-fabric.js/dist/fabric.min.js', '/bower_components/secure-fabric.js/dist/fabric.min.js',
@ -26,10 +30,14 @@ define([
nThen, nThen,
SFCommon, SFCommon,
UI, UI,
Hash,
Constants,
h,
ApiConfig, ApiConfig,
CommonRealtime, CommonRealtime,
Messages, Messages,
AppConfig) AppConfig,
ChainWalk)
{ {
var APP = window.APP = { var APP = window.APP = {
$: $, $: $,
@ -54,6 +62,355 @@ define([
var cpNfInner; var cpNfInner;
var metadataMgr; var metadataMgr;
var readOnly = true; var readOnly = true;
var sframeChan = common.getSframeChannel();
var getHrefsTable = function (chainpad, length, cb, progress) {
var priv = metadataMgr.getPrivateData();
var origin = priv.origin;
var edPublic = priv.edPublic;
var pads = {};
var channelByHref = {};
var isOwned = function (data) {
data = data || {};
return data && data.owners && Array.isArray(data.owners) && data.owners.indexOf(edPublic) !== -1;
};
var parseBlock = function (block, doc) {
var c = block.getContent(doc).doc;
if (!c) { return void console.error(block); }
var p;
try {
p = JSON.parse(c);
if (!p.metadata) {
p = p.drive || {};
}
} catch (e) {
console.error(e);
p = {};
}
// Get pads from the old storage key
var old = p[Constants.oldStorageKey];
var ids = p[Constants.storageKey];
var pad, parsed, chan, href;
if (old && Array.isArray(old)) {
for (var i = 0; i<old.length; i++) {
try {
pad = old[i];
href = pad.href || pad.roHref;
chan = channelByHref[href];
if (!chan && href) {
parsed = Hash.parsePadUrl(href);
chan = parsed.hashData && Util.base64ToHex(parsed.hashData.channel || '');
channelByHref[href] = chan;
}
if (chan && (!pads[chan] || pads[chan].atime < pad.atime)) {
pads[chan] = {
atime: +new Date(pad.atime),
href: href,
title: pad.title,
owned: isOwned(pad),
expired: pad.expire && pad.expire < (+new Date())
};
}
} catch (e) {}
}
}
// Get pads from the new storage key
if (ids) {
for (var id in ids) {
try {
pad = ids[id];
href = pad.href || pad.roHref;
chan = pad.channel || channelByHref[href];
if (!chan) {
if (href) {
parsed = Hash.parsePadUrl(href);
chan = (parsed.hashData && Util.base64ToHex(parsed.hashData.channel || '')) ||
(Hash.getSecrets(parsed.type, parsed.hash, pad.password) || {}).channel;
channelByHref[href] = chan;
}
}
if (chan && (!pads[chan] || pads[chan].atime < pad.atime)) {
pads[chan] = {
atime: +new Date(pad.atime),
href: href,
title: pad.title,
owned: isOwned(pad),
expired: pad.expire && pad.expire < (+new Date())
};
}
} catch (e) {}
}
}
return c;
};
var allChannels;
var deleted;
nThen(function (W) {
var nt = nThen;
// Safely get all the pads from all the states
var i = 0;
var next = function (block, doc) {
nt = nt(W(function (waitFor) {
i++;
var doc2 = parseBlock(block, doc);
progress(Math.min(i/length, 1));
var c = block.getChildren();
setTimeout(waitFor(), 1);
c.forEach(function (b) {
next(b, doc2);
});
})).nThen;
};
var root = chainpad.getRootBlock();
next(root);
}).nThen(function (waitFor) {
// Make the table
allChannels = Object.keys(pads);
sframeChan.query('Q_DRIVE_GETDELETED', {list:allChannels}, waitFor(function (err, data) {
deleted = data;
}));
}).nThen(function () {
// Current status
try {
var parsed = JSON.parse(chainpad.getUserDoc());
var drive = parsed.metadata ? parsed : parsed.drive;
var channels = Object.keys(drive[Constants.storageKey] || {}).map(function (id) {
return drive[Constants.storageKey][id].channel;
});
} catch (e) {
console.error(e);
}
// Header
var rows = [h('tr', [// TODO
h('th', '#'),
h('th', 'Title'),
h('th', 'URL'),
h('th', 'Last visited'),
h('th', 'Owned'),
h('th', 'CryptDrive status'),
h('th', 'Server status'),
])];
// Body
var body = allChannels;
body.sort(function (a, b) {
return pads[a].atime - pads[b].atime;
});
body.forEach(function (id, i) {
var p = pads[id];
var del = deleted.indexOf(id) !== -1;
var removed = channels.indexOf(id) === -1;
rows.push(h('tr', [
h('td', String(i+1)),
h('td', {
title: p.title
}, p.title),
h('td', h('a', {
href: origin+p.href,
target: '_blank'
}, p.href)),
h('td', new Date(p.atime).toLocaleString()),
h('td', p.owned ? 'Yes' : 'No'),
h('td'+(p.expired || removed ?'.cp-debug-nok':'.cp-debug-ok'),
p.expired ? 'Expired' :
(!removed ? 'Stored' : 'Deleted')),// TODO
h('td'+(del?'.cp-debug-nok':'.cp-debug-ok'), del ? 'Missing' : 'Available'),// TODO
]));
});
// Table
var t = h('table', rows);
cb(t);
});
};
var getGraph = function (chainpad, cb) {
var hashes = metadataMgr.getPrivateData().availableHashes;
var hash = hashes.editHash || hashes.viewHash;
var chan = Hash.hrefToHexChannelId('/drive/#'+hash);
var makeGraph = function () {
var out = [
chan + ' digraph {'
];
var parseBlock = function (x) {
var c = x.getChildren();
var label = x.hashOf.slice(0,8) + ' (' + x.parentCount + ' - ' + x.recvOrder + ')';
var p = x.getParent();
if (p && p.getChildren().length === 1 && c.length === 1) {
label = '...';
var gc = c;
while (gc.length === 1) {
c = gc;
gc = c[0].getChildren();
}
}
var nodeInfo = [' p' + x.hashOf + '[label="' + label + '"'];
if (x.isCheckpoint && label !== '...') { nodeInfo.push(',color=red,weight=0.5'); }
nodeInfo.push(']');
out.push(nodeInfo.join(''));
c.forEach(function (child) {
out.push(' p' + x.hashOf + ' -> p' + child.hashOf);
parseBlock(child);
});
};
parseBlock(chainpad.getRootBlock());
out.push('}');
return out.join('\n');
};
cb(makeGraph());
};
var getFullChainpad = function (history, length, cb, progress) {
var chainpad = ChainWalk.create({
userName: 'debug',
initialState: '',
logLevel: 0,
noPrune: true
});
var nt = nThen;
history.forEach(function (msg, i) {
nt = nt(function (waitFor) {
chainpad.message(msg);
progress(Math.min(i/length, 1));
setTimeout(waitFor());
}).nThen;
});
nt(function () {
cb(chainpad);
});
};
var fullHistoryCalled = false;
var getFullHistory = function () {
var priv = metadataMgr.getPrivateData();
if (fullHistoryCalled) { return; }
fullHistoryCalled = true;
// Set spinner
var content = h('div#cp-app-debug-loading', [
h('h2', 'Step 1/3'),
h('p', 'Loading history from the server...'),
h('span.fa.fa-circle-o-notch.fa-spin.fa-3x.fa-fw')
]);
$('#cp-app-debug-content').html('').append(content);
// Update progress bar
var decrypting = false;
var length = 0;
var decryptProgress = h('span', '0%');
sframeChan.on('EV_FULL_HISTORY_STATUS', function (progress) {
if (!decrypting) {
// Add the progress bar the first time
decrypting = true;
var content = h('div.cp-app-debug-progress.cp-loading-progress', [
h('h2', 'Step 2/3'),
h('p', 'Decrypting your history...'),
h('span.fa.fa-circle-o-notch.fa-spin.fa-3x.fa-fw'),
h('br'),
decryptProgress
]);
$('#cp-app-debug-content').html('').append(content);
}
length++;
decryptProgress.innerHTML = (progress*100).toFixed(2) + '%';
});
// Get full history
sframeChan.query('Q_GET_FULL_HISTORY', null, function (err, data) {
// History is ready.
// Display the graph code, and if the doc is a drive, display the button to list all the pads
// Graph
var graph = h('div.cp-app-debug-content-graph');
var seeAllButton = h('button.btn.btn-success', 'Get the list');
var hrefs = h('div.cp-app-debug-content-hrefs', [
h('h2', 'List all the pads ever stored in your CryptDrive'), // TODO
]);
var parseProgress = h('span', '0%');
var content = h('div#cp-app-debug-loading', [
h('h2', 'Step 3/3'),
h('p', 'Parsing history...'),// TODO
h('span.fa.fa-circle-o-notch.fa-spin.fa-3x.fa-fw'),
h('br'),
parseProgress
]);
$('#cp-app-debug-content').html('').append(content);
getFullChainpad(data, length, function (chainpad) {
var content = h('div.cp-app-debug-content', [
graph,
priv.debugDrive ? hrefs : ''
]);
$('#cp-app-debug-content').html('').append(content);
// Table
if (priv.debugDrive) {
var clicked = false;
$(seeAllButton).click(function () {
if (clicked) { return; }
clicked = true;
$(seeAllButton).remove();
// Make the table
var progress = h('span', '0%');
var loading = h('div', [
'Loading data...',
h('br'),
progress
]);
hrefs.append(loading);
getHrefsTable(chainpad, length, function (table) {
loading.innerHTML = '';
hrefs.append(table);
}, function (p) {
progress.innerHTML = (p*100).toFixed(2) + '%';
});
}).appendTo(hrefs);
}
// Graph
var code = h('code');
getGraph(chainpad, function (graphVal) {
code.innerHTML = graphVal;
$(graph).append(h('h2', 'Graph')); // TODO
$(graph).append(code);
});
}, function (p) {
parseProgress.innerHTML = (p*100).toFixed(2) + '%';
});
}, {timeout: 2147483647}); // Max 32-bit integer
};
var getContent = function () {
if ($('#cp-app-debug-content').is(':visible')) {
$('#cp-app-debug-content').hide();
$('#cp-app-debug-history').show();
$('#cp-app-debug-get-content').removeClass('cp-toolbar-button-active');
return;
}
$('#cp-app-debug-content').css('display', 'flex');
$('#cp-app-debug-history').hide();
$('#cp-app-debug-get-content').addClass('cp-toolbar-button-active');
};
var setInitContent = function () {
var button = h('button.btn.btn-success', 'Load history');
$(button).click(getFullHistory);
var content = h('p.cp-app-debug-init', [
'To get better debugging tools, we need to load the entire history of the document. This make take some time.', // TODO
h('br'),
button
]);
$('#cp-app-debug-content').html('').append(content);
};
setInitContent();
var config = APP.config = { var config = APP.config = {
readOnly: readOnly, readOnly: readOnly,
@ -78,7 +435,7 @@ define([
}; };
var displayDoc = function (doc) { var displayDoc = function (doc) {
$('#cp-app-debug-content').text(JSON.stringify(doc, 0, 2)); $('#cp-app-debug-history').text(JSON.stringify(doc, 0, 2));
console.log(doc); console.log(doc);
}; };
@ -114,6 +471,15 @@ define([
var $hist = common.createButton('history', true, {histConfig: histConfig}); var $hist = common.createButton('history', true, {histConfig: histConfig});
$hist.addClass('cp-hidden-if-readonly'); $hist.addClass('cp-hidden-if-readonly');
toolbar.$rightside.append($hist); toolbar.$rightside.append($hist);
var $content = common.createButton(null, true, {
icon: 'fa-question',
title: 'Get debugging graph', // TODO
name: 'graph',
id: 'cp-app-debug-get-content'
});
$content.click(getContent);
toolbar.$rightside.append($content);
}; };
config.onReady = function (info) { config.onReady = function (info) {
@ -133,7 +499,10 @@ define([
displayDoc(hjson); displayDoc(hjson);
} }
metadataMgr.updateTitle('');
initializing = false; initializing = false;
$('#cp-app-debug-history').show();
UI.removeLoadingScreen(); UI.removeLoadingScreen();
}; };

@ -53,6 +53,27 @@ define([
}; };
window.addEventListener('message', onMsg); window.addEventListener('message', onMsg);
}).nThen(function (/*waitFor*/) { }).nThen(function (/*waitFor*/) {
SFCommonO.start(); var hash = localStorage[Constants.userHashKey];
var drive = hash && ('#'+hash === window.location.hash);
if (!window.location.hash) {
if (!hash) {
sessionStorage.redirectTo = '/debug/';
window.location.href = '/login/';
return;
}
drive = true;
window.location.hash = hash;
} else {
var p = Hash.parsePadUrl('/debug/'+window.location.hash);
if (p && p.hashData && p.hashData.app === 'drive') {
drive = true;
}
}
var addData = function (meta) {
meta.debugDrive = drive;
};
SFCommonO.start({
addData:addData
});
}); });
}); });

@ -269,8 +269,11 @@
text-align: center; text-align: center;
padding: 0; padding: 0;
position: relative; position: relative;
input { display: flex;
background: lighten(@colortheme_drive-bg, 8%); background: lighten(@colortheme_drive-bg, 8%);
border-right: 1px solid lighten(@colortheme_drive-bg, 16%);
input {
background: transparent;
color: @colortheme_drive-color; color: @colortheme_drive-color;
.tools_placeholder-color(@colortheme_drive-color); .tools_placeholder-color(@colortheme_drive-color);
outline-width: 0px; outline-width: 0px;
@ -278,16 +281,29 @@
width: 100%; width: 100%;
//border: 1px solid #ccc; //border: 1px solid #ccc;
border: 0; border: 0;
border-right: 1px solid lighten(@colortheme_drive-bg, 16%);
//border-right: 0; //border-right: 0;
height: @variables_bar-height; height: @variables_bar-height;
padding: 0 5px; padding: 0 5px;
padding-left: 45px; padding-left: 45px;
flex: 1;
min-width: 0;
&:focus { &:focus {
outline-width: 0px; outline-width: 0px;
} }
&.cp-app-drive-search-active {
& ~ .cp-app-drive-tree-search-icon {
display: none;
}
& ~ .cp-app-drive-search-cancel {
display: inline-block;
}
}
}
.cp-app-drive-search-cancel {
display: none;
cursor: pointer;
} }
.cp-app-drive-tree-search-con { .cp-app-drive-tree-search-icon, .cp-app-drive-search-cancel {
color: @colortheme_drive-color; color: @colortheme_drive-color;
position: absolute; position: absolute;
left: 20px; // TODO align with drive categories left: 20px; // TODO align with drive categories

@ -111,7 +111,7 @@ define([
var $sortDescIcon = $('<span>', {"class": "fa fa-angle-down sortdesc"}); var $sortDescIcon = $('<span>', {"class": "fa fa-angle-down sortdesc"});
var $closeIcon = $('<span>', {"class": "fa fa-window-close"}); var $closeIcon = $('<span>', {"class": "fa fa-window-close"});
//var $backupIcon = $('<span>', {"class": "fa fa-life-ring"}); //var $backupIcon = $('<span>', {"class": "fa fa-life-ring"});
var $searchIcon = $('<span>', {"class": "fa fa-search cp-app-drive-tree-search-con"}); var $searchIcon = $('<span>', {"class": "fa fa-search cp-app-drive-tree-search-icon"});
var $addIcon = $('<span>', {"class": "fa fa-plus"}); var $addIcon = $('<span>', {"class": "fa fa-plus"});
var $renamedIcon = $('<span>', {"class": "fa fa-flag"}); var $renamedIcon = $('<span>', {"class": "fa fa-flag"});
var $readonlyIcon = $('<span>', {"class": "fa " + faReadOnly}); var $readonlyIcon = $('<span>', {"class": "fa " + faReadOnly});
@ -589,6 +589,7 @@ define([
// Arrow keys to modify the selection // Arrow keys to modify the selection
$(window).keydown(function (e) { $(window).keydown(function (e) {
var $searchBar = $tree.find('#cp-app-drive-tree-search-input'); var $searchBar = $tree.find('#cp-app-drive-tree-search-input');
if (document.activeElement && document.activeElement.nodeName === 'INPUT') { return; }
if ($searchBar.is(':focus') && $searchBar.val()) { return; } if ($searchBar.is(':focus') && $searchBar.val()) { return; }
var $elements = $content.find('.cp-app-drive-element:not(.cp-app-drive-element-header)'); var $elements = $content.find('.cp-app-drive-element:not(.cp-app-drive-element-header)');
@ -2970,6 +2971,13 @@ define([
else { displayDirectory([ROOT]); } else { displayDirectory([ROOT]); }
return; return;
} }
if ($input.val()) {
if (!$input.hasClass('cp-app-drive-search-active')) {
$input.addClass('cp-app-drive-search-active');
}
} else {
$input.removeClass('cp-app-drive-search-active');
}
if (APP.mobile()) { return; } if (APP.mobile()) { return; }
search.to = window.setTimeout(function () { search.to = window.setTimeout(function () {
if (!isInSearchTmp) { search.oldLocation = currentPath.slice(); } if (!isInSearchTmp) { search.oldLocation = currentPath.slice(); }
@ -2978,8 +2986,18 @@ define([
if (!manager.comparePath(newLocation, currentPath.slice())) { displayDirectory(newLocation); } if (!manager.comparePath(newLocation, currentPath.slice())) { displayDirectory(newLocation); }
}, 500); }, 500);
}).appendTo($div); }).appendTo($div);
var cancel = h('span.fa.fa-times.cp-app-drive-search-cancel', {title:Messages.cancel});
cancel.addEventListener('click', function () {
$input.val('');
setSearchCursor(0);
if (search.oldLocation && search.oldLocation.length) { displayDirectory(search.oldLocation); }
});
$div.append(cancel);
$searchIcon.clone().appendTo($div); $searchIcon.clone().appendTo($div);
if (isInSearch) { $input.val(currentPath[1] || ''); } if (isInSearch) {
$input.val(currentPath[1] || '');
if ($input.val()) { $input.addClass('cp-app-drive-search-active'); }
}
$container.append($div); $container.append($div);
}; };

@ -80,12 +80,6 @@ define([
cb(obj); cb(obj);
}); });
}); });
sframeChan.on('Q_DRIVE_GETDELETED', function (data, cb) {
Cryptpad.getDeletedPads(function (err, obj) {
if (err) { return void console.error(err); }
cb(obj);
});
});
sframeChan.on('EV_DRIVE_SET_HASH', function (hash) { sframeChan.on('EV_DRIVE_SET_HASH', function (hash) {
// Update the hash in the address bar // Update the hash in the address bar
if (!Utils.LocalStore.isLoggedIn()) { return; } if (!Utils.LocalStore.isLoggedIn()) { return; }

@ -9,7 +9,7 @@
</head> </head>
<body class="cp-app-oodoc"> <body class="cp-app-oodoc">
<div id="cp-toolbar" class="cp-toolbar-container"></div> <div id="cp-toolbar" class="cp-toolbar-container"></div>
<div id="cp-app-oo-container"> <div id="cp-app-oo-editor">
<div id="cp-app-oo-placeholder"></div> <div id="cp-app-oo-placeholder"></div>
<script type="text/javascript" src="/common/onlyoffice/web-apps/apps/api/documents/api.js"></script> <script type="text/javascript" src="/common/onlyoffice/web-apps/apps/api/documents/api.js"></script>
</div> </div>

@ -9,7 +9,7 @@
</head> </head>
<body class="cp-app-ooslide"> <body class="cp-app-ooslide">
<div id="cp-toolbar" class="cp-toolbar-container"></div> <div id="cp-toolbar" class="cp-toolbar-container"></div>
<div id="cp-app-oo-container"> <div id="cp-app-oo-editor">
<div id="cp-app-oo-placeholder"></div> <div id="cp-app-oo-placeholder"></div>
<script type="text/javascript" src="/common/onlyoffice/web-apps/apps/api/documents/api.js"></script> <script type="text/javascript" src="/common/onlyoffice/web-apps/apps/api/documents/api.js"></script>
</div> </div>

@ -260,6 +260,10 @@ define([
'class': 'cp-app-profile-resizer' 'class': 'cp-app-profile-resizer'
}); });
if (typeof ($croppie.croppie) !== "function") {
return void cb(file);
}
var todo = function () { var todo = function () {
UI.confirm($croppie[0], function (yes) { UI.confirm($croppie[0], function (yes) {
if (!yes) { return; } if (!yes) { return; }

Loading…
Cancel
Save