Merge branch 'staging' of github.com:xwiki-labs/cryptpad into staging

pull/1/head
yflory 4 years ago
commit 1352a6d8fd

@ -4,6 +4,13 @@
* server
* `installMethod: 'unspecified'` in the default config to distinguish docker installs
* `instancePurpose` on admin panel
* add support for archiving pin lists (instead of deleting them)
* blocks
* archive blocks instead of deleting them outright
* implement as storage API
* validate blocks in worker
* don't include adminEmail in telemetry unless we have consentToContact
* don't include instancePurpose in telemetry if it is "noanswer"
* display warnings when remote resources are blocked
* in code preview
* restrict style tags to a scope when rendering them in markdown preview by compiling their content as scoped less
@ -12,9 +19,25 @@
* display actual FLoC header in checkup test
* WIP check for `server_tokens` settings (needs work for HTTP2)
* nicer output in error/warning tables
* more tests for Cross-Origin-Opener-Policy headers
* form templates
* guard against a type error in `getAccessKeys`
* guard against invalid or malicious input when constructing media-tags for embedding in markdown
* Japanese translation
* conversions
* convert app
* some basic office formats
* rich text => markdown (via turndown.js v7.1.1)
* handle some pecularities with headings and ids
* forms => .csv
* trello import with some loss
* fix rendering issue for legacy markdown media tag syntax
* guard against domExceptions
* catch errors thrown by the diff applier
* don't bother returning the hash of a pin list to the client, since they don't use it
* accounts
* trim leading and trailing whitespace from usernames when registering
* double-check that login blocks can be loaded after they have been written without error
# 4.7.0

@ -153,7 +153,7 @@ define([
register: isRegister,
};
var RT, blockKeys, blockHash, Pinpad, rpc, userHash;
var RT, blockKeys, blockHash, blockUrl, Pinpad, rpc, userHash;
nThen(function (waitFor) {
// derive a predefined number of bytes from the user's inputs,
@ -171,7 +171,7 @@ define([
// the rest of their data
// determine where a block for your set of keys would be stored
var blockUrl = Block.getBlockUrl(res.opt.blockKeys);
blockUrl = Block.getBlockUrl(res.opt.blockKeys);
// Check whether there is a block at that location
Util.fetch(blockUrl, waitFor(function (err, block) {
@ -412,12 +412,21 @@ define([
toPublish.edPublic = RT.proxy.edPublic;
var blockRequest = Block.serialize(JSON.stringify(toPublish), res.opt.blockKeys);
rpc.writeLoginBlock(blockRequest, waitFor(function (e) {
if (e) {
console.error(e);
waitFor.abort();
return void cb(e);
}
}));
}).nThen(function (waitFor) {
// confirm that the block was actually written before considering registration successful
Util.fetch(blockUrl, waitFor(function (err /*, block */) {
if (err) {
console.error(err);
waitFor.abort();
return void cb(err);
}
console.log("blockInfo available at:", blockHash);
LocalStore.setBlockHash(blockHash);

@ -177,12 +177,12 @@
a {
color: @cryptpad_text_col;
font-size: 0.8em;
&.cp-remote-img::before {
&.cp-remote-img::before { // .fa.fa-question-circle
font-family: FontAwesome;
//content: "\f08e\00a0";
content: "\f08e\00a0\00a0";
}
&.cp-learn-more::before {
&.cp-learn-more::before { // .fa.fa-external-link
font-family: FontAwesome;
content: "\f059\00a0";
//content: "\f059\00a0\00a0";

@ -64,7 +64,7 @@ server {
add_header Permissions-Policy interest-cohort=();
set $coop '';
if ($uri ~ ^\/(sheet|presentation|doc)\/.*$) { set $coop 'same-origin'; }
if ($uri ~ ^\/(sheet|presentation|doc|convert)\/.*$) { set $coop 'same-origin'; }
# Enable SharedArrayBuffer in Firefox (for .xlsx export)
add_header Cross-Origin-Resource-Policy cross-origin;
@ -214,7 +214,7 @@ server {
# The nodejs server has some built-in forwarding rules to prevent
# URLs like /pad from resulting in a 404. This simply adds a trailing slash
# to a variety of applications.
location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc|form|report)$ {
location ~ ^/(register|login|settings|user|pad|drive|poll|slide|code|whiteboard|file|media|profile|contacts|todo|filepicker|debug|kanban|sheet|support|admin|notifications|teams|calendar|presentation|doc|form|report|convert)$ {
rewrite ^(.*)$ $1/ redirect;
}

@ -167,7 +167,7 @@ Block.writeLoginBlock = function (Env, safeKey, msg, _cb) {
});
};
const DELETE_BLOCK = Nacl.util.decodeUTF8('DELETE_BLOCK');
const DELETE_BLOCK = Nacl.util.encodeBase64(Nacl.util.decodeUTF8('DELETE_BLOCK'));
/*
When users write a block, they upload the block, and provide

@ -8,7 +8,7 @@ const nThen = require("nthen");
//const escapeKeyCharacters = Util.escapeKeyCharacters;
const unescapeKeyCharacters = Util.unescapeKeyCharacters;
var sumChannelSizes = function (sizes) {
var sumChannelSizes = function (sizes) { // FIXME this synchronous code could be done by a worker
return Object.keys(sizes).map(function (id) { return sizes[id]; })
.filter(function (x) {
// only allow positive numbers
@ -145,7 +145,7 @@ var getFreeSpace = Pinning.getFreeSpace = function (Env, safeKey, cb) {
});
};
var getHash = Pinning.getHash = function (Env, safeKey, cb) {
Pinning.getHash = function (Env, safeKey, cb) {
getChannelList(Env, safeKey, function (channels) {
Env.hashChannelList(channels, cb);
});
@ -166,12 +166,12 @@ Pinning.pinChannel = function (Env, safeKey, channels, cb) {
});
if (toStore.length === 0) {
return void getHash(Env, safeKey, cb);
return void cb();
}
getMultipleFileSize(Env, toStore, function (e, sizes) {
if (typeof(sizes) === 'undefined') { return void cb(e); }
var pinSize = sumChannelSizes(sizes);
var pinSize = sumChannelSizes(sizes); // FIXME don't do this in the main thread...
getFreeSpace(Env, safeKey, function (e, free) {
if (typeof(free) === 'undefined') {
@ -186,7 +186,7 @@ Pinning.pinChannel = function (Env, safeKey, channels, cb) {
toStore.forEach(function (channel) {
session.channels[channel] = true;
});
getHash(Env, safeKey, cb);
cb();
});
});
});
@ -208,7 +208,7 @@ Pinning.unpinChannel = function (Env, safeKey, channels, cb) {
});
if (toStore.length === 0) {
return void getHash(Env, safeKey, cb);
return void cb();
}
Env.pinStore.message(safeKey, JSON.stringify(['UNPIN', toStore, +new Date()]),
@ -217,20 +217,19 @@ Pinning.unpinChannel = function (Env, safeKey, channels, cb) {
toStore.forEach(function (channel) {
delete session.channels[channel];
});
getHash(Env, safeKey, cb);
cb();
});
});
};
Pinning.resetUserPins = function (Env, safeKey, channelList, cb) {
Pinning.resetUserPins = function (Env, safeKey, channelList, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
if (!Array.isArray(channelList)) { return void cb('INVALID_PIN_LIST'); }
var session = Core.getSession(Env.Sessions, safeKey);
if (!channelList.length) {
return void getHash(Env, safeKey, function (e, hash) {
if (e) { return cb(e); }
cb(void 0, hash);
});
return void cb();
}
var pins = {};
@ -270,9 +269,7 @@ Pinning.resetUserPins = function (Env, safeKey, channelList, cb) {
// update in-memory cache IFF the reset was allowed.
session.channels = pins;
getHash(Env, safeKey, function (e, hash) {
cb(e, hash);
});
cb();
});
});
});

@ -123,7 +123,7 @@ module.exports.create = function (config) {
maxWorkers: config.maxWorkers,
disableIntegratedTasks: config.disableIntegratedTasks || false,
disableIntegratedEviction: config.disableIntegratedEviction || false,
disableIntegratedEviction: config.disableIntegratedEviction || true, // XXX false,
lastEviction: +new Date(),
evictionReport: {},
commandTimers: {},

@ -12,10 +12,10 @@ Stats.instanceData = function (Env) {
httpUnsafeOrigin: Env.httpUnsafeOrigin,
httpSafeOrigin: Env.httpSafeOrigin,
adminEmail: Env.adminEmail,
adminEmail: Env.consentToContact? Env.adminEmail: undefined,
consentToContact: Boolean(Env.consentToContact),
instancePurpose: Env.instancePurpose, // XXX
instancePurpose: Env.instancePurpose === 'noanswer'? undefined: Env.instancePurpose,
};
/* We reserve the right to choose not to include instances

@ -79,14 +79,3 @@ Block.write = function (Env, publicKey, buffer, _cb) {
});
};
/*
Block.create = function (opt, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
var env = {
root: opt.root || '', // XXX
};
};
*/

@ -122,14 +122,11 @@ var createUser = function (config, cb) {
});
}));
}).nThen(function (w) {
user.rpc.reset([], w(function (err, hash) {
user.rpc.reset([], w(function (err) {
if (err) {
w.abort();
user.shutdown();
return console.log("RESET_ERR");
}
if (!hash || hash !== EMPTY_ARRAY_HASH) {
throw new Error("EXPECTED EMPTY ARRAY HASH");
return console.log("TEST_RESET_ERR");
}
}));
}).nThen(function (w) {
@ -214,17 +211,17 @@ var createUser = function (config, cb) {
// TODO check your quota usage
}).nThen(function (w) {
user.rpc.unpin([user.mailboxChannel], w(function (err, hash) {
user.rpc.unpin([user.mailboxChannel], w(function (err) {
if (err) {
w.abort();
return void cb(err);
}
}));
}).nThen(function (w) {
user.rpc.getServerHash(w(function (err, hash) {
console.log(hash);
if (hash[0] !== EMPTY_ARRAY_HASH) {
//console.log('UNPIN_RESPONSE', hash);
throw new Error("UNPIN_DIDNT_WORK");
}
user.latestPinHash = hash[0];
user.latestPinHash = hash;
}));
}).nThen(function (w) {
// clean up the pin list to avoid lots of accounts on the server
@ -304,7 +301,8 @@ nThen(function (w) {
}, w(function (err, roster) {
if (err) {
w.abort();
return void console.trace(err);
console.error(err);
return void console.error("ROSTER_ERROR");
}
oscar.roster = roster;
oscar.destroy.reg(function () {

@ -90,7 +90,7 @@ var setHeaders = (function () {
return function (req, res) {
// apply a bunch of cross-origin headers for XLSX export in FF and printing elsewhere
applyHeaderMap(res, {
"Cross-Origin-Opener-Policy": /^\/sheet\//.test(req.url)? 'same-origin': '',
"Cross-Origin-Opener-Policy": /^\/(sheet|presentation|doc|convert)\//.test(req.url)? 'same-origin': '',
});
if (Env.NO_SANDBOX) { // handles correct configuration for local development

@ -94,7 +94,7 @@ define([
'cp-admin-list-my-instance',
'cp-admin-consent-to-contact',
'cp-admin-remove-donate-button',
'cp-admin-instance-purpose', // XXX
'cp-admin-instance-purpose',
],
};
@ -1902,7 +1902,6 @@ define([
[ value]
], cb);
};
//var spinner = UI.makeSpinner($br); // XXX
$opts.on('change', function () {
var val = $opts.find('input:radio:checked').val();

@ -732,6 +732,36 @@ define([
cb(isHTTPS(trimmedUnsafe) && isHTTPS(trimmedSafe));
});
[
'sheet',
'presentation',
'doc',
'convert',
].forEach(function (url) {
assert(function (cb, msg) {
var header = 'cross-origin-opener-policy';
var expected = 'same-origin';
deferredPostMessage({
command: 'GET_HEADER',
content: {
url: '/' + url + '/',
header: header,
}
}, function (content) {
msg.appendChild(h('span', [
code(url),
' was served without the correct ',
code(header),
' HTTP header value (',
code(expected),
'). This will interfere with your ability to convert between office file formats.'
]));
cb(content === expected);
});
});
});
/*
assert(function (cb, msg) {
setWarningClass(msg);

@ -27,12 +27,14 @@ define([
};
window.addEventListener("message", function (event) {
var txid, command;
if (event && event.data) {
try {
//console.log(JSON.parse(event.data));
var msg = JSON.parse(event.data);
var command = msg.command;
var txid = msg.txid;
command = msg.command;
txid = msg.txid;
if (!txid) { return; }
COMMANDS[command](msg.content, function (response) {
// postMessage with same txid
postMessage({
@ -41,7 +43,11 @@ define([
});
});
} catch (err) {
console.error(err);
postMessage({
txid: txid,
content: err,
});
console.error(err, command);
}
} else {
console.error(event);

@ -507,7 +507,7 @@ define([
var fileHost = privateData.fileHost || privateData.origin;
var src = fileHost + Hash.getBlobPathFromHex(secret.channel);
var key = Hash.encodeBase64(secret.keys.cryptKey);
var mt = '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '"></media-tag>';
var mt = UI.mediaTag(src, key).outerHTML;
editor.replaceSelection(mt);
}
};

@ -22,6 +22,12 @@ define(function() {
*/
AppConfig.registeredOnlyTypes = ['file', 'contacts', 'notifications', 'support'];
// XXX to prevent apps that aren't officially supported from showing up
// in the document creation modal
AppConfig.hiddenTypes = ['drive', 'teams', 'contacts', 'todo', 'file', 'accounts', 'calendar', 'poll', 'convert',
//'doc', 'presentation'
];
/* CryptPad is available is multiple languages, but only English and French are maintained
* by the developers. The other languages may be outdated, and any missing string for a langauge
* will use the english version instead. You can customize the langauges you want to be available

@ -41,6 +41,15 @@ define([
return e;
};
// FIXME almost everywhere this is used would also be
// a good candidate for sframe-common's getMediatagFromHref
UI.mediaTag = function (src, key) {
return h('media-tag', {
src: src,
'data-crypto-key': 'cryptpad:' + key,
});
};
var findCancelButton = UI.findCancelButton = function (root) {
if (root) {
return $(root).find('button.cancel').last();

@ -2075,15 +2075,9 @@ define([
var $container = $('<div>');
var i = 0;
var types = AppConfig.availablePadTypes.filter(function (p) {
if (p === 'drive') { return; }
if (p === 'teams') { return; }
if (p === 'contacts') { return; }
if (p === 'todo') { return; }
if (p === 'file') { return; }
if (p === 'accounts') { return; }
if (p === 'calendar') { return; }
if (p === 'poll') { return; } // Replaced by forms
if (AppConfig.hiddenTypes.indexOf(p) !== -1) { return; }
if (!common.isLoggedIn() && AppConfig.registeredOnlyTypes &&
AppConfig.registeredOnlyTypes.indexOf(p) !== -1) { return; }
return true;

@ -1937,6 +1937,17 @@ define([
waitFor.abort();
return void cb(obj);
}
}));
}).nThen(function (waitFor) {
var blockUrl = Block.getBlockUrl(blockKeys);
Util.fetch(blockUrl, waitFor(function (err /* block */) {
if (err) {
console.error(err);
waitFor.abort();
return cb({
error: err,
});
}
console.log("new login block written");
var newBlockHash = Block.getBlockHash(blockKeys);
LocalStore.setBlockHash(newBlockHash);

@ -287,9 +287,28 @@ define([
}
};
var isLocalURL = function (href) {
// treat all URLs as remote if you are using an ancient browser
if (typeof(window.URL) === 'undefined') { return false; }
try {
var url = new URL(href, ApiConfig.httpUnsafeOrigin);
var localURL = new URL(ApiConfig.httpUnsafeOrigin);
return url.host === localURL.host;
} catch (err) {
return true;
}
};
renderer.image = function (href, title, text) {
if (href.slice(0,6) === '/file/') { // FIXME this has been deprecated for about 3 years. Maybe we should display a warning?
// DEPRECATED
if (isLocalURL(href) && href.slice(0, 6) !== '/file/') {
return h('img', {
src: href,
title: title || '',
alt: text,
}).outerHTML;
}
if (href.slice(0,6) === '/file/') {
// Mediatag using markdown syntax should not be used anymore so they don't support
// password-protected files
console.log('DEPRECATED: mediatag using markdown syntax!');
@ -297,12 +316,11 @@ define([
var secret = Hash.getSecrets('file', parsed.hash);
var src = (ApiConfig.fileHost || '') +Hash.getBlobPathFromHex(secret.channel);
var key = Hash.encodeBase64(secret.keys.cryptKey);
var mt = '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '"></media-tag>';
if (mediaMap[src]) {
mt += mediaMap[src];
}
mt += '</media-tag>';
return mt;
var mt = h('media-tag', {
src: src,
'data-crypto-key': 'cryptpad:' + key,
});
return mt.outerHTML;
}
var warning = h('div.cp-inline-img-warning', [
@ -323,7 +341,7 @@ define([
]),
h('br'),
h('a.cp-learn-more', {
href: 'https://docs.cryptpad.fr/user_guide/security.html#remote-content', // XXX make sure this exists
href: 'https://docs.cryptpad.fr/user_guide/security.html#remote-content',
}, [
Messages.resources_learnWhy
]),
@ -658,7 +676,6 @@ define([
if (el.childNodes.length === 1 && el.childNodes[0].nodeType === 3) {
var type = el.getAttribute('data-plugin');
var plugin = plugins[type];
console.log(type);
if (!plugin) { return; }
var src = canonicalizeMermaidSource(el.childNodes[0].wholeText);
el.setAttribute(plugin.attr, src);

@ -2401,7 +2401,14 @@ define([
}
if (!APP.loggedIn) {
msg = APP.newSharedFolder ? Messages.fm_info_sharedFolder : Messages._getKey('fm_info_anonymous', [ApiConfig.inactiveTime || 90]);
return $(common.fixLinks($box.html(msg)));
var docsLink = 'https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types';
$box.html(msg).find('a[href="#docs"]').each(function () {
$(this).attr({
href: Pages.localizeDocsLink(docsLink),
target: '_blank',
});
});
return $(common.fixLinks($box));
}
if (!msg || APP.store['hide-info-' + path[0]] === '1') {
$box.hide();
@ -2564,14 +2571,7 @@ define([
var getNewPadTypes = function () {
var arr = [];
AppConfig.availablePadTypes.forEach(function (type) {
if (type === 'drive') { return; }
if (type === 'teams') { return; }
if (type === 'contacts') { return; }
if (type === 'todo') { return; }
if (type === 'file') { return; }
if (type === 'accounts') { return; }
if (type === 'calendar') { return; }
if (type === 'poll') { return; } // replaced by forms
if (AppConfig.hiddenTypes.indexOf(type) !== -1) { return; }
if (!APP.loggedIn && AppConfig.registeredOnlyTypes &&
AppConfig.registeredOnlyTypes.indexOf(type) !== -1) {
return;

@ -127,9 +127,8 @@ define([
if (e || !data) { return void displayDefault(); }
if (typeof data !== "number") { return void displayDefault(); }
if (Util.bytesToMegabytes(data) > 0.5) { return void displayDefault(); }
var $img = $('<media-tag>').appendTo($container);
$img.attr('src', src);
$img.attr('data-crypto-key', 'cryptpad:' + cryptKey);
var mt = UI.mediaTag(src, cryptKey);
var $img = $(mt).appendTo($container);
MT.displayMediatagImage(common, $img, function (err, $image) {
if (err) { return void console.error(err); }
centerImage($img, $image);

@ -274,9 +274,9 @@ define([
}
var pads = data.pads || data;
s.rpc.pin(pads, function (e, hash) {
s.rpc.pin(pads, function (e) {
if (e) { return void cb({error: e}); }
cb({hash: hash});
cb({});
});
};
@ -289,9 +289,9 @@ define([
if (!s.rpc) { return void cb({error: 'RPC_NOT_READY'}); }
var pads = data.pads || data;
s.rpc.unpin(pads, function (e, hash) {
s.rpc.unpin(pads, function (e) {
if (e) { return void cb({error: e}); }
cb({hash: hash});
cb({});
});
};
@ -394,9 +394,9 @@ define([
if (!store.rpc) { return void cb({error: 'RPC_NOT_READY'}); }
var list = getCanonicalChannelList(false);
store.rpc.reset(list, function (e, hash) {
store.rpc.reset(list, function (e) {
if (e) { return void cb(e); }
cb(null, hash);
cb(null);
});
};

@ -26,23 +26,19 @@ var factory = function (Util, Rpc) {
exp.send = rpc.send;
// you can ask the server to pin a particular channel for you
exp.pin = function (channels, cb) {
exp.pin = function (channels, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
if (!Array.isArray(channels)) {
setTimeout(function () {
cb('[TypeError] pin expects an array');
});
return;
return void cb('[TypeError] pin expects an array');
}
rpc.send('PIN', channels, cb);
};
// you can also ask to unpin a particular channel
exp.unpin = function (channels, cb) {
exp.unpin = function (channels, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
if (!Array.isArray(channels)) {
setTimeout(function () {
cb('[TypeError] pin expects an array');
});
return;
return void cb('[TypeError] pin expects an array');
}
rpc.send('UNPIN', channels, cb);
};
@ -70,23 +66,12 @@ var factory = function (Util, Rpc) {
};
// if local and remote hashes don't match, send a reset
exp.reset = function (channels, cb) {
exp.reset = function (channels, _cb) {
var cb = Util.once(Util.mkAsync(_cb));
if (!Array.isArray(channels)) {
setTimeout(function () {
cb('[TypeError] pin expects an array');
});
return;
return void cb('[TypeError] pin expects an array');
}
rpc.send('RESET', channels, function (e, response) {
if (e) {
return void cb(e);
}
if (!response.length) {
console.log(response);
return void cb('INVALID_RESPONSE');
}
cb(e, response[0]);
});
rpc.send('RESET', channels, cb);
};
// get the combined size of all channels (in bytes) for all the

@ -748,8 +748,8 @@ define([
var privateDat = cpNfInner.metadataMgr.getPrivateData();
var origin = privateDat.fileHost || privateDat.origin;
var src = data.src = data.src.slice(0,1) === '/' ? origin + data.src : data.src;
mediaTagEmbedder($('<media-tag src="' + src +
'" data-crypto-key="cryptpad:' + data.key + '"></media-tag>'), data);
var mt = UI.mediaTag(src, data.key);
mediaTagEmbedder($(mt), data);
});
}).appendTo(toolbar.$bottomL).hide();
};

@ -145,8 +145,7 @@ define([
var hexFileName = secret.channel;
var origin = data.fileHost || data.origin;
var src = origin + Hash.getBlobPathFromHex(hexFileName);
return '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '">' +
'</media-tag>';
return UI.mediaTag(src, key).outerHTML;
}
return;
};

@ -282,7 +282,7 @@
"fm_info_template": "Conté tots els documents desats com plantilles i que podeu reutilitzar quan vulgueu crear un nou document.",
"fm_info_recent": "Aquests documents s'han modificat o obert darrerament, per vós o per alguna persona col·laboradora.",
"fm_info_trash": "Buideu la paperera per alliberar espai al vostre CryptDrive.",
"fm_info_anonymous": "No heu iniciat la sessió, per tant, els vostres documents caducaran d'aquí a 3 mesos (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">saber-ne més</a>). Es desen al vostre navegador, per tant, si netegeu el vostre historial podríeu perdre'ls.<br><a href=\"/register/\">Registreu-vos</a> o <a href=\"/login/\">Inicieu la sessió</a> per mantenir-los accessibles.<br>",
"fm_info_anonymous": "No heu iniciat la sessió, per tant, els vostres documents caducaran d'aquí a 3 mesos. Es desen al vostre navegador, per tant, si netegeu el vostre historial podríeu perdre'ls.<br><a href=\"/register/\">Registreu-vos</a> o <a href=\"/login/\">Inicieu la sessió</a> per mantenir-los accessibles.<br>",
"fm_info_sharedFolder": "Aquesta és una carpeta compartida. No heu iniciat cap sessió, pel que només podeu accedir en mode només de lectura.<br><a href=\"/register/\">Registreu-vos</a> o <a href=\"/login/\">Inicieu la sessió</a> per poder importar-ho al vostre CryptDrive i modificar-ho.",
"fm_info_owned": "Es documents que es mostren són de la vostra propietat. Això vol dir que podeu eliminar-los permanentment del servidor quan vulgueu. Si ho feu, la resta de persones no podran accedir-hi mai més.",
"fm_error_cantPin": "Error intern del servidor. Si us plau, torneu a garregar la pàgina i torneu a provar-ho.",

@ -279,7 +279,7 @@
"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": "Diese Pads wurden kürzlich von dir oder von Personen, mit denen du zusammenarbeitest, geöffnet oder geändert.",
"fm_info_trash": "Leere den Papierkorb, um mehr freien Platz in deinem CryptDrive zu erhalten.",
"fm_info_anonymous": "Du bist nicht eingeloggt, daher laufen deine Dokumente nach {0} Tagen aus. Sie könnten durch Löschen des Browserverlaufs verloren gehen. <br><a href=\"/register/\">Registriere dich</a> (keine persönlichen Informationen benötigt) oder <a href=\"/login/\">logge dich ein</a>, um sie dauerhaft in deinem Drive zu speichern. <a href=\"https://docs.cryptpad.fr/de/user_guide/user_account.html#account-types\" target=\"_blank\">Mehr zu registrierten Accounts</a>.",
"fm_info_anonymous": "Du bist nicht eingeloggt, daher laufen deine Dokumente nach {0} Tagen aus. Sie könnten durch Löschen des Browserverlaufs verloren gehen. <br><a href=\"/register/\">Registriere dich</a> (keine persönlichen Informationen benötigt) oder <a href=\"/login/\">logge dich ein</a>, um sie dauerhaft in deinem Drive zu speichern. <a href=\"#docs\">Mehr zu registrierten Accounts</a>.",
"fm_info_sharedFolder": "Dieser Ordner ist geteilt. Da du aber nicht eingeloggt bist, hast du nur einen schreibgeschützen Zugriff.<br><a href=\"/register/\">Registriere</a> oder <a href=\"/login/\">logge ich ein</a>, damit du diesen Ordner in dein CryptDrive importieren und bearbeiten kannst.",
"fm_info_owned": "Diese Pads sind deine eigenen. Das heißt, dass du sie jederzeit vom Server entfernen kannst. Wenn du das machst, sind sie auch für andere Nutzer nicht mehr zugänglich.",
"fm_error_cantPin": "Interner Serverfehler. Bitte lade die Seite neu und versuche es erneut.",
@ -1356,5 +1356,15 @@
"form_poll_hint": "<i></i>: Ja, <i></i>: Nein, <i></i>: Akzeptabel",
"fc_open_formro": "Öffnen (als Teilnehmer)",
"resources_openInNewTab": "In neuem Tab öffnen",
"resources_imageBlocked": "CryptPad hat ein externes Bild blockiert"
"resources_imageBlocked": "CryptPad hat ein externes Bild blockiert",
"admin_purpose_noanswer": "Möchte ich nicht sagen",
"admin_purpose_business": "Für ein Unternehmen oder eine kommerzielle Organisation",
"admin_purpose_education": "Für eine Schule, Hochschule oder Universität",
"admin_purpose_org": "Für eine gemeinnützige Organisation oder eine Interessengruppe",
"admin_purpose_personal": "Für mich selbst, Familie oder Freunde",
"admin_purpose_experiment": "Zum Testen der Plattform oder zur Entwicklung neuer Funktionen",
"admin_instancePurposeTitle": "Zweck der Instanz",
"admin_instancePurposeHint": "Warum betreibst du diese Instanz? Deine Antwort wird mit den Entwicklern geteilt, sofern die Telemetrie aktiviert ist.",
"admin_purpose_public": "Zur Bereitstellung eines kostenlosen Dienstes für die Allgemeinheit",
"resources_learnWhy": "Mehr über die Gründe erfahren"
}

@ -224,7 +224,7 @@
"fm_info_template": "Περιέχει όλα τα pads που έχουν αποθηκευτεί ως πρότυπα και μπορείτε να ξαναχρησιμοποιήσετε όταν δημιουργείτε ένα νέο pad.",
"fm_info_recent": "Λίστα των πρόσφατα τροποποιημένων ή ανοιγμένων pads.",
"fm_info_trash": "Αδειάστε τον κάδο σας για να απελευθερώσετε χώρο στο CryptDrive σας.",
"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=\"/register/\">Εγγραφείτε</a> ή <a href=\"/login/\">Συνδεθείτε</a> για να τα κρατήσετε επ' αόριστον.",
"fm_error_cantPin": "Εσωτερικό σφάλμα διακομιστή. Παρακαλούμε επαναφορτώστε τη σελίδα και προσπαθήστε ξανά.",
"fm_viewListButton": "Προβολή λίστας",
"fm_viewGridButton": "Προβολή πλέγματος",

@ -216,7 +216,7 @@
"upload_success": "Tu archivo ({0}) ha sido subido con éxito y fue añadido a tu drive.",
"pinLimitReachedAlertNoAccounts": "Has llegado a tu límite de espacio",
"previewButtonTitle": "Mostrar/esconder la vista previa Markdown",
"fm_info_anonymous": "No has iniciado sesión, por lo que tus documentos expirarán después de {0} días. Borrar el historial de tu navegador puede hacer que desaparezcan.<br><a href=\"/register/\">Inscríbete</a> (no se requieren datos personales) o <a href=\"/login/\">Ingresa</a> para almacenarlos en tu disco de forma indefinida. <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">Más información sobre las cuentas registradas</a>.",
"fm_info_anonymous": "No has iniciado sesión, por lo que tus documentos expirarán después de {0} días. Borrar el historial de tu navegador puede hacer que desaparezcan.<br><a href=\"/register/\">Inscríbete</a> (no se requieren datos personales) o <a href=\"/login/\">Ingresa</a> para almacenarlos en tu disco de forma indefinida. <a href=\"#docs\">Más información sobre las cuentas registradas</a>.",
"fm_error_cantPin": "Error del servidor. Por favor, recarga la página e inténtalo de nuevo.",
"upload_notEnoughSpace": "No tienes suficiente espacio para este archivo en tu CryptDrive",
"upload_tooLarge": "Este archivo supera el límite de carga permitido por tu cuenta.",

@ -287,7 +287,7 @@
"fm_info_template": "Sisältää kaikki mallipohjiksi tallennetut padit, joita voit käyttää uudelleen luodessasi uuden padin.",
"fm_info_recent": "Tässä näytetään sinun tai yhteistyökumppaniesi äskettäin avaamat tai muokkaamat padit.",
"fm_info_trash": "Tyhjennä roskakorisi vapauttaaksesi CryptDrive-tallennustilaa.",
"fm_info_anonymous": "Et ole kirjautunut sisään, joten luomasi asiakirjat vanhenevat {0} päivän päästä. Selaushistorian tyhjentäminen saattaa myös hävittää ne.<br><a href=\"/register/\">Rekisteröidy</a> (henkilötietoja ei tarvita) tai <a href=\"/login/\">kirjaudu sisään</a> säilyttääksesi luomasi asiakirjat pysyvästi CryptDrivessa. <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">Lue lisää rekisteröitymisestä ja käyttäjätileistä</a>.",
"fm_info_anonymous": "Et ole kirjautunut sisään, joten luomasi asiakirjat vanhenevat {0} päivän päästä. Selaushistorian tyhjentäminen saattaa myös hävittää ne.<br><a href=\"/register/\">Rekisteröidy</a> (henkilötietoja ei tarvita) tai <a href=\"/login/\">kirjaudu sisään</a> säilyttääksesi luomasi asiakirjat pysyvästi CryptDrivessa. <a href=\"#docs\">Lue lisää rekisteröitymisestä ja käyttäjätileistä</a>.",
"fm_info_sharedFolder": "Tämä on jaettu kansio. Et ole kirjautunut sisään, joten voit käyttää sitä ainoastaan vain luku-tilassa.<br><a href=\"/register/\">Rekisteröidy</a> tai <a href=\"/login/\">kirjaudu sisään</a> tuodaksesi kansion omaan CryptDriveesi ja muokataksesi sen sisältöä.",
"fm_info_owned": "Omistat tässä näytetyt padit. Se tarkoittaa, että voit halutessasi poistaa ne palvelimelta. Jos teet niin, muut käyttäjät eivät voi enää käyttää niitä.",
"fm_error_cantPin": "Sisäinen palvelinvirhe. Ole hyvä ja lataa sivu uudelleen.",

@ -283,7 +283,7 @@
"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": "Ces pads ont été récemment ouverts ou modifiés par vous ou vos collaborateurs.",
"fm_info_trash": "Vider la corbeille permet de libérer de l'espace dans votre CryptDrive.",
"fm_info_anonymous": "Vous n'êtes pas connecté, ces documents seront donc supprimés après {0} jours. Nettoyer l'historique de votre navigateur peut les faire disparaître.<br><a href=\"/register/\">Enregistrez vous</a> (aucune information personelle requise) ou <a href=\"/login/\">Connectez vous</a> pour les stocker de manière permanente dans votre drive. <a href=\"https://docs.cryptpad.fr/fr/user_guide/user_account.html#account-types\" target=\"_blank\">En lire plus sur les comptes utilisateurs</a>.",
"fm_info_anonymous": "Vous n'êtes pas connecté, ces documents seront donc supprimés après {0} jours. Nettoyer l'historique de votre navigateur peut les faire disparaître.<br><a href=\"/register/\">Enregistrez vous</a> (aucune information personelle requise) ou <a href=\"/login/\">Connectez vous</a> pour les stocker de manière permanente dans votre drive. <a href=\"#docs\">En lire plus sur les comptes utilisateurs</a>.",
"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_error_cantPin": "Erreur interne du serveur. Veuillez recharger la page et essayer de nouveau.",

@ -282,7 +282,7 @@
"fm_info_template": "Contiene tutti i pad salvati come modelli e che puoi riutilizzare per creare nuovi pad.",
"fm_info_recent": "Questi pad sono stati recentemente aperti o modificati da te o da persone con le quali tu collabori.",
"fm_info_trash": "Svuota il tuo cestino per liberare spazio nel tuo CryptDrive.",
"fm_info_anonymous": "Non hai effettuato l'accesso, quindi i tuoi pad scadranno fra tre mesi (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">scopri di più</a>). Sono conservati nel tuo browser, quindi cancellando la cronologia potresti farli scomparire.<br><a href=\"/register/\">Registrati</a> o <a href=\"/login/\">Accedi</a> per conservarli permanentemente.<br>",
"fm_info_anonymous": "Non hai effettuato l'accesso, quindi i tuoi pad scadranno fra tre mesi. Sono conservati nel tuo browser, quindi cancellando la cronologia potresti farli scomparire.<br><a href=\"/register/\">Registrati</a> o <a href=\"/login/\">Accedi</a> per conservarli permanentemente.<br>",
"fm_info_sharedFolder": "Questa è una cartella condivisa. Non hai effettuato l'accesso, quindi puoi visualizzarla solo in modalità di sola lettura.<br><a href=\"/register/\">Registrati</a> o <a href=\"/login/\">Accedi</a> per poterla importare nel tuo CryptDrive e per modificarla.",
"fm_info_owned": "Sei il proprietario dei pad mostrati qui. Questo significa che puoi rimuoverli permanentemente dal server quando lo desideri. Se lo fai, gli altri utenti non potranno più accedervi.",
"fm_error_cantPin": "Errore interno del server. Ricarica la pagina e prova di nuovo.",

@ -1,7 +1,7 @@
{
"common_connectionLost": "<b>サーバーとの接続が切断しました</b><br>再接続するまで閲覧モードになります。",
"button_newsheet": "新規スプレッドシート",
"button_newkanban": "新規看板",
"button_newkanban": "新規のカンバン",
"button_newwhiteboard": "新規ホワイトボード",
"button_newslide": "新規プレゼンテーション",
"button_newpoll": "新規投票・アンケート",
@ -20,7 +20,7 @@
"poll": "投票",
"code": "コード",
"pad": "リッチテキスト",
"sheet": "シート",
"sheet": "スプレッドシート",
"form": "フォーム"
},
"main_title": "CryptPad - 安全にリアルタイム編集可能なコラボレーションツール",
@ -60,11 +60,11 @@
"fm_folder": "フォルダ",
"fm_folderName": "フォルダ名",
"fm_fileName": "ファイル名",
"crowdfunding_button2": "CryptPad を助ける",
"crowdfunding_button2": "CryptPadを支援",
"fm_padIsOwned": "あなたはこのパッドの所有者です",
"creation_expiration": "有効期限",
"owner_removeText": "所有者",
"creation_owners": "所有者",
"creation_expiration": "有効期限を設定",
"owner_removeText": "オーナー",
"creation_owners": "オーナー",
"download_mt_button": "ダウンロード",
"fc_rename": "名前を変更",
"forgotten": "ごみ箱へ移動",
@ -74,7 +74,7 @@
"fm_creation": "作成日時",
"fm_lastAccess": "最終アクセス日時",
"fm_type": "種類",
"team_inviteLinkLoading": "あなたのリンクを生成中",
"team_inviteLinkLoading": "リンクを生成しています",
"download_step1": "ダウンロード中",
"loading": "読み込み中...",
"fm_searchPlaceholder": "検索...",
@ -101,7 +101,7 @@
"settings_changePasswordNew": "新しいパスワード",
"settings_changePasswordCurrent": "現在のパスワード",
"settings_changePasswordButton": "パスワードを変更",
"settings_changePasswordHint": "アカウントのパスワードを変更します。「現在のパスワード」と、「新しいパスワード」および「新しいパスワードの確認」を入力してください。<br><b>あなたがパスワードを忘れた場合、パスワードをリセットする方法はありません。細心の注意を払って、パスワードを安全に管理してください。</b>",
"settings_changePasswordHint": "アカウントのパスワードを変更します。「現在のパスワード」と、「新しいパスワード」および「新しいパスワードの確認」を入力してください。<br><b>パスワードを忘れた場合、再設定する方法はありません。細心の注意を払って、パスワードを安全に管理してください。</b>",
"settings_changePasswordTitle": "パスワードの変更",
"languageButton": "言語",
"language": "言語",
@ -120,10 +120,10 @@
"profile_addLink": "あなたのウェブサイトへのリンクを追加",
"shareSuccess": "リンクをクリップボードにコピーしました",
"shareButton": "共有",
"login_hashing": "パスワードをハッシュ化していますこの処理には時間がかかる場合があります。",
"login_hashing": "パスワードをハッシュ化していますこの処理には時間がかかる場合があります。",
"login_invalPass": "パスワードを入力してください",
"login_invalUser": "ユーザー名を入力してください",
"register_importRecent": "未登録のセッション中のドキュメントをインポート",
"register_importRecent": "匿名セッションのドキュメントをインポート",
"importButton": "インポート",
"main_catch_phrase": "コラボレーションスイート<br>暗号化されかつオープンソース",
"tos_3rdparties": "私たちは、法律で義務付けられている場合を除き、個別のデータを第三者に提供しません。",
@ -131,8 +131,8 @@
"tos_availability": "私たちはこのサービスがあなたの役に立つことを願っていますが、可用性や性能は保証できません。定期的にデータをエクスポートしてください。",
"tos_legal": "悪意ある行為、乱用する行為、または何らかの違法な行為を行わないでください。",
"tos_title": "CryptPad サービス利用規約",
"whatis_title": "CryptPad とは?",
"topbar_whatIsCryptpad": "CryptPad とは何か",
"whatis_title": "CryptPadとは?",
"topbar_whatIsCryptpad": "CryptPadとは何か",
"footer_tos": "利用規約",
"footer_donate": "寄付",
"footer_legal": "法的情報",
@ -151,7 +151,7 @@
"login_login": "ログイン",
"autostore_hide": "保存しない",
"autostore_store": "保存する",
"autostore_notstored": "この {0} あなたの CryptDrive に保存されていません。今すぐ保存しますか?",
"autostore_notstored": "この{0}はあなたのCryptDriveに保存されていません。今すぐ保存しますか",
"user_displayName": "表示名",
"exportButton": "エクスポート",
"user_rename": "表示名を変更",
@ -159,21 +159,21 @@
"saved": "保存しました",
"error": "エラー",
"deleted": "削除しました",
"profile_editDescription": "説明を編集",
"profile_addDescription": "説明を追加",
"profile_editDescription": "説明を編集",
"profile_addDescription": "説明を追加",
"profileButton": "プロフィール",
"profile_avatar": "アバター",
"profile_upload": " 新しいアバターをアップロード",
"teams_table_generic_edit": "編集: フォルダとパッドの作成、変更、削除が可能。",
"teams_table_generic_view": "表示: フォルダとパッドへのアクセス(閲覧のみ)。",
"teams_table_generic_own": "チームの管理: チーム名とチームアバターの変更、所有者の追加または削除、チームのサブスクリプションの変更、チームの削除が可能。",
"teams_table_generic_own": "チームの管理: チーム名とチームのアバターの変更、オーナーの追加または削除、チームのサブスクリプションの変更、チームの削除が可能。",
"teams_table_owners": "チームの管理",
"teams_table_generic_admin": "メンバーの管理: メンバーの招待および取り消し、メンバーに管理者までの権限の付与が可能。",
"teams_table_admins": "メンバーの管理",
"teams_table_generic": "権限一覧",
"teams_table": "権限",
"contacts_fetchHistory": "古い履歴を取得する",
"contacts_warning": "ここに入力したすべてのものは永続的であり、このパッドの現在および将来のすべてのユーザーが利用できます。機密情報の入力は推奨されません",
"contacts_warning": "ここに入力した全てのメッセージは永続的であり、このパッドの現在および将来の全てのユーザーが確認できます。機密情報の入力には注意してください",
"contacts_typeHere": "ここにメッセージを入力...",
"team_cat_drive": "ドライブ",
"team_cat_chat": "チャット",
@ -181,14 +181,14 @@
"team_cat_admin": "管理",
"adminPage": "管理",
"team_deleteButton": "削除",
"team_deleteHint": "チーム自体とチームが所有しているすべてのドキュメントを削除します。",
"team_deleteHint": "チームと、チームが所有している全てのドキュメントを削除します。",
"team_deleteTitle": "チームの削除",
"team_avatarHint": "容量 500KB 以下 (png 、jpg 、jpeg 、gif)",
"team_avatarTitle": "チームアバター",
"team_avatarTitle": "チームアバター",
"team_nameHint": "チームの名前を設定します",
"team_nameTitle": "チーム名",
"team_members": "メンバー",
"team_owner": "所有者",
"team_owner": "オーナー",
"team_admins": "管理者",
"viewers": "閲覧者",
"contacts_padTitle": "チャット",
@ -221,7 +221,7 @@
"support_languagesPreamble": "サポートチームは次の言語に対応可能です:",
"support_listHint": "管理者に送信されたチケットとその回答のリストは以下の通りです。閉じたチケットを再開することはできませんが、新しいチケットを作成することはできます。閉じたチケットは非表示にできます。",
"support_listTitle": "サポートチケット",
"settings_padNotifCheckbox": "コメント通知を無効",
"settings_padNotifCheckbox": "コメント通知を無効にする",
"settings_padNotifTitle": "コメント通知",
"notifications_dismissAll": "全て確認済みにする",
"notifications_cat_archived": "履歴",
@ -229,16 +229,16 @@
"notifications_dismiss": "確認済みにする",
"settings_autostoreMaybe": "手動 (確認しない)",
"settings_autostoreNo": "手動 (常に確認する)",
"settings_autostoreHint": "<b>自動</b> あなたがアクセスしたすべてのパッドを、あなたの CryptDrive に保存します。<br><b>手動 (常に確認する)</b> まだ保存していないパッドにアクセスした場合に、あなたの CryptDrive に保存するかどうか尋ねます。<br><b>手動 (確認しない)</b> アクセス先のパッドがあなたの CryptDrive に自動的に保存されなくなります。保存オプションは表示されなくなります。",
"settings_autostoreHint": "<b>自動</b> アクセスした全てのパッドをCryptDriveに保存します。<br><b>手動(常に確認)</b> 保存していないパッドにアクセスした際、CryptDriveに保存するかどうかを確認します。<br><b>手動(確認しない)</b> アクセス先のパッドはCryptDriveに自動で保存されません。保存オプションは表示されません。",
"settings_userFeedback": "ユーザーフィードバックを有効にする",
"settings_userFeedbackHint2": "あなたのパッドのコンテンツがサーバーと共有されることはありません。",
"settings_userFeedbackHint1": "CryptPad は、あなたの経験を向上させる方法を知るために、サーバーにいくつかの非常に基本的なフィードバックを提供します。 ",
"settings_userFeedbackHint1": "CryptPadは、ユーザーエクスペリエンスの向上のため、いくつかの非常に基本的なフィードバックを、サーバーに提供します。 ",
"settings_userFeedbackTitle": "フィードバック",
"settings_autostoreYes": "自動",
"settings_importConfirm": "このブラウザで最近使用したパッドを、あなたのユーザーアカウントの CryptDrive にインポートしますか?",
"settings_importConfirm": "このブラウザで最近使用したパッドを、あなたのユーザーアカウントのCryptDriveにインポートしますか",
"settings_importDone": "インポートが完了しました",
"settings_import": "インポート",
"settings_importTitle": "このブラウザでの最近のパッドをあなたの CryptDrive にインポートします",
"settings_importTitle": "このブラウザでの最近のパッドをあなたのCryptDriveにインポートします",
"settings_trimHistoryHint": "ドライブと通知の履歴を削除して、ストレージ容量を節約します。これはパッドの履歴には影響しません。パッドの履歴は、プロパティダイアログから削除できます。",
"trimHistory_currentSize": "現在の履歴容量: <b>{0}</b>",
"support_cat_other": "その他",
@ -260,16 +260,16 @@
"fm_rootName": "ドキュメント",
"team_listTitle": "あなたのチーム",
"team_createName": "チーム名",
"features_f_devices_note": "ユーザーアカウントでどこからでも CryptDrive にアクセスできます",
"features_f_devices_note": "ユーザーアカウントでどこからでもCryptDriveにアクセスできます",
"features_f_devices": "全てのデバイスであなたのパッドを利用",
"features_f_cryptdrive1_note": "フォルダ、共有フォルダ、テンプレート、タグ",
"features_f_cryptdrive1": "CryptDrive への完全なアクセス",
"features_f_cryptdrive1": "CryptDriveの全機能",
"features_f_anon_note": "追加機能あり",
"features_f_anon": "匿名ユーザーの全機能",
"features_f_storage0_note": "ドキュメントは{0}日以上使用されないと削除されます",
"features_f_storage0": "一時的な保存",
"features_f_cryptdrive0_note": "後で開けるようにブラウザにアクセスしたパッドを保存する機能",
"features_f_cryptdrive0": "CryptDrive への限定的なアクセス",
"features_f_cryptdrive0_note": "アクセスしたパッドをブラウザに保存して、後で開くことができます",
"features_f_cryptdrive0": "CryptDriveへの限定的なアクセス",
"features_f_file0_note": "他のユーザーが共有したドキュメントを表示およびダウンロードできます",
"features_f_file0": "ドキュメントを開く",
"features_f_core_note": "編集、インポートとエクスポート、履歴、ユーザーリスト、チャット",
@ -279,7 +279,7 @@
"features_registered": "登録済",
"features_title": "機能",
"features_anon": "未登録",
"register_whyRegister": "登録するとどの様な利点がありますか?",
"register_whyRegister": "登録するメリットをご紹介します",
"historyText": "履歴",
"help_button": "ヘルプ",
"show_help_button": "ヘルプを表示",
@ -288,11 +288,11 @@
"okButton": "OK (enter)",
"mustLogin": "このページにアクセスするにはログインする必要があります",
"fm_noResult": "見つかりませんでした",
"fm_info_trash": "ごみ箱を空にすると、あなたの CryptDrive の使用可能容量を増やせます。",
"fm_info_trash": "ごみ箱を空にするとCryptDriveの使用可能容量を増やせます。",
"features_f_file1": "ファイルのアップロードと共有",
"features_f_social_note": "追加した連絡先との安全なコラボレーション、プロフィールの作成、きめ細かいアクセス権のコントロール",
"features_f_social": "ソーシャル機能",
"tos_e2ee": "CryptPad のコンテンツは、パッドのフラグメント識別子を推測または取得できる人物なら誰でも閲覧や編集が行えます。エンドツーエンド暗号化(E2EE)を採用したメッセンジャーサービスなどを使用してリンクを共有し、リンク漏洩が発生しないよう対策を行ってください。",
"tos_e2ee": "CryptPadのコンテンツは、パッドのフラグメント識別子を推測または取得できる人物なら誰でも閲覧や編集が行えます。エンドツーエンド暗号化E2EEを採用したメッセンジャーサービスなどを使用してリンクを共有し、リンク漏洩が発生しないよう対策を行ってください。リンクが漏洩した際に、責任を負うことはできません。",
"contact_chat": "チャット",
"contact_bug": "バグの報告",
"footer_product": "製品",
@ -313,11 +313,11 @@
"features_f_register": "無料登録",
"features_f_storage1_note": "CryptDriveに保存したドキュメントは、有効期限切れで削除されることはありません",
"features_f_storage1": "個人用ストレージ({0}",
"oo_sheetMigration_complete": "新しいバージョンが利用可能です。OKを押して再読み込みしてください。",
"oo_sheetMigration_complete": "新しいバージョンが利用可能です。OKを押して再読み込みしてください。",
"oo_sheetMigration_loading": "あなたのスプレッドシートを最新バージョンにアップグレードしています。1分程度お待ちください。",
"settings_ownDriveButton": "アカウントをアップグレード",
"features_f_file1_note": "CryptDriveに画像ファイル、PDF、動画などを保存できます。保存したファイルは、連絡先と共有したり、ドキュメントに埋め込んだりできます。最大容量は{0}MB",
"crowdfunding_button": "CryptPad を支援",
"crowdfunding_button": "CryptPadを支援",
"contacts_removeHistoryTitle": "チャット履歴を削除",
"properties_passwordSuccessFile": "パスワードは正常に変更されました。",
"drive_sfPasswordError": "誤ったパスワードです",
@ -329,22 +329,22 @@
"password_info": "開こうとしているドキュメントが存在しないか、新しいパスワードで保護されています。コンテンツにアクセスするには、正しいパスワードを入力してください。",
"properties_confirmNew": "パスワードを追加すると、このパッドの URL が変更され、履歴が削除されます。パスワードを知らないユーザーは、このパッドへアクセスできなくなります。続行してよろしいですか?",
"properties_changePassword": "パスワードの変更",
"properties_addPassword": "パスワードの追加",
"properties_addPassword": "パスワードを設定",
"history_close": "閉じる",
"history_restore": "復元",
"fm_emptyTrashOwned": "ごみ箱に、あなたが所有しているドキュメントが入っています。あなたのドライブからのみ<b>削除</b>するか、すべてのユーザーから<b>完全削除</b>するかを選択できます。",
"fm_emptyTrashOwned": "ごみ箱に、あなたが所有しているドキュメントが入っています。あなたのドライブからのみ<b>削除</b>するか、てのユーザーから<b>完全削除</b>するかを選択できます。",
"access_destroyPad": "このドキュメントまたはフォルダを完全に削除する",
"accessButton": "アクセス",
"access_allow": "リスト",
"makeACopy": "コピーを作成",
"trimHistory_noHistory": "削除可能な履歴がありません",
"areYouSure": "よろしいですか?",
"settings_safeLinksCheckbox": "安全なリンクを有効にする",
"settings_safeLinksTitle": "安全なリンク",
"settings_safeLinksHint": "CryptPad では、あなたのパッドを解読するための鍵がリンクに含まれています。これは、あなたのブラウザの閲覧履歴にアクセスできる人が、潜在的にあなたの CryptPad のデータを解読・閲覧できることを意味します。この「ブラウザの閲覧履歴にアクセスできる人」には、デバイス間で履歴を同期させる侵入的なブラウザ拡張機能やブラウザが含まれます。「安全なリンク」を有効にすると、鍵がブラウザの閲覧履歴に残ったり、アドレスバーに表示されたりするのを可能な限り防ぐことができます。この機能を有効にした上で共有メニューを使用することを強く推奨します。",
"settings_autostoreTitle": "CryptDrive へのパッドの保存",
"settings_logoutEverywhereConfirm": "すべてのデバイスでログインが取り消されるため、今後利用する際にもう一度ログインするよう求められます。続行しますか?",
"settings_logoutEverywhere": "他のすべてのウェブセッションからログアウトします",
"settings_safeLinksCheckbox": "セーフリンクを有効にする",
"settings_safeLinksTitle": "セーフリンク",
"settings_safeLinksHint": "CryptPadでは、リンクの中にパッドを解読するための鍵が含まれています。ブラウザの閲覧履歴にアクセスできる人は、誰でもCryptPadのデータを閲覧することができます。ここにはデバイス間で履歴を同期するブラウザやその拡張機能も含まれます。「セーフリンク」を有効にすると、鍵がブラウザの閲覧履歴に残ったり、アドレスバーに表示されたりするのを可能な限り防ぐことができます。この機能を有効にして{0}の共有メニューを使用することを強く推奨します。",
"settings_autostoreTitle": "CryptDriveへのパッドの保存",
"settings_logoutEverywhereConfirm": "てのデバイスでログインが取り消されるため、今後利用する際にもう一度ログインするよう求められます。続行しますか?",
"settings_logoutEverywhere": "他のてのウェブセッションからログアウト",
"settings_logoutEverywhereTitle": "リモートセッションを閉じる",
"loading_state_5": "ドキュメントを再構築",
"loading_state_4": "チームを読み込み",
@ -369,8 +369,8 @@
"snapshots_new": "新規スナップショット",
"snaphot_title": "スナップショット",
"snapshots_button": "スナップショット",
"filePicker_description": "埋め込むファイルを CryptDrive から選択するか、新規にアップロードしてください",
"uploadButtonTitle": "CryptDrive に新規ファイルをアップロード",
"filePicker_description": "埋め込むファイルをCryptDriveから選択するか、新規にアップロードしてください",
"uploadButtonTitle": "CryptDriveに新規ファイルをアップロード",
"uploadFolderButton": "フォルダをアップロード",
"uploadButton": "ファイルをアップロード",
"filePicker_filter": "ファイル名で検索",
@ -386,11 +386,11 @@
"previewButtonTitle": "マークダウンのプレビューを表示または非表示にします",
"whatis_model": "ビジネスモデル",
"whatis_collaboration": "プライベートコラボレーション",
"home_support_title": "CryptPad を支援する",
"home_opensource": "CryptPad は、個人やプロなど誰でもホストすることができます。ソースコードは <a>GitHub</a> で確認できます。",
"home_support_title": "CryptPadを支援",
"home_opensource": "誰でもCryptPadを運営し、個人的または専門的な規模でサービスを提供することができます。ソースコードは<a>GitHub</a>で確認できます。",
"home_opensource_title": "オープンソース",
"home_host_title": "このインスタンスについて",
"home_privacy_text": "CryptPad は、データをプライベートに保護しながらコラボレーションを可能にするように構築されています。すべてのコンテンツは、あなたのブラウザ上で暗号化および復号化されます。つまり、ドキュメント、チャット、およびファイルは、あなたがログインしているセッション以外では読み取れません。サービス管理者でさえ、あなたの情報にアクセスすることはできません。",
"home_privacy_text": "CryptPadは、データをプライベートに保護しながらコラボレーションを可能にするように構築されています。のコンテンツは、あなたのブラウザ上で暗号化および復号化されます。ドキュメント、チャット、およびファイルは、あなたがログインしているセッション以外では読み取れません。サービスの管理者でも、あなたの情報にアクセスすることはできません。",
"home_privacy_title": "プライバシー・バイ・デザイン",
"mdToolbar_tutorial": "https://www.markdowntutorial.com/jp/",
"languageButtonTitle": "シンタックスハイライトを行う言語を選択してください",
@ -399,10 +399,10 @@
"poll_descriptionHint": "投票の詳細を記入してください。入力が終了したら✓(公開)ボタンをクリックしてください。\n詳細はマークダウンの構文で記入できます。CryptDriveのメディアファイルを埋め込むこともできます。\nリンクを知っているひとは誰でも詳細を変更できますが、推奨されません。",
"pad_mediatagBorder": "枠線の幅(ピクセル)",
"openLinkInNewTab": "新しいタブでリンクを開く",
"history_restorePrompt": "ドキュメントの現在のバージョンを、表示しているバージョン置き換えてよろしいですか?",
"history_restorePrompt": "ドキュメントの現在のバージョンを、表示しているバージョン置き換えてよろしいですか?",
"slideOptionsTitle": "スライドをカスタマイズ",
"propertiesButtonTitle": "パッドのプロパティを表示",
"driveOfflineError": "CryptPadへの接続が切れています。このパッドに加えられる変更はCryptDriveに保存されません。CryptPadの全てのタブを閉じて、新しいウィンドウで開いてみてください。 ",
"driveOfflineError": "CryptPadへの接続が切断されています。このパッドに加えられる変更はCryptDriveに保存されません。CryptPadののタブを閉じて、新しいウィンドウで開いてみてください。 ",
"properties_passwordWarningFile": "パスワードは変更されましたが、新しいデータでCryptDriveを更新することができませんでした。古いバージョンのファイルを手動で削除する必要があるかもしれません。",
"properties_confirmNewFile": "よろしいですかパスワードを追加するとファイルのURLが変わります。パスワードをもたないユーザーは、このファイルにアクセスできなくなります。",
"properties_confirmChangeFile": "よろしいですか?新しいパスワードをもたないユーザーは、このファイルにアクセスできなくなります。",
@ -410,13 +410,13 @@
"team_pendingOwner": "(保留中)",
"fm_contextMenuError": "そのアイテムのコンテクストメニューを開けません。問題が続くなら、ページを再読み込みしてみてください。",
"fm_selectError": "そのアイテムを選択できません。問題が続くなら、ページを再読み込みしてみてください。",
"fm_unknownFolderError": "選択、あるいは最後に開いたディレクトリは存在しません。親フォルダを開きます…",
"fm_unknownFolderError": "選択、もしくは最後に開いたディレクトリは存在しません。親フォルダを開きます…",
"fm_restoreDialog": "{0}を元の場所に復元してよろしいですか?",
"fm_removeSeveralPermanentlyDialog": "ドライブから{0}個のアイテムを削除してよろしいですか?他のユーザーのドライブからは削除されません。",
"fm_removePermanentlyDialog": "ドライブからこのアイテムを削除してよろしいですか?他のユーザーのドライブからは削除されません。",
"fm_noname": "無題のドキュメント",
"fm_openParent": "フォルダに表示",
"fm_newButtonTitle": "新しいドキュメントやフォルダを作成し、ファイルを現在のフォルダにインポートします。",
"fm_newButtonTitle": "新しいドキュメントやフォルダを作成したり、ファイルを現在のフォルダにインポートしたりできます。",
"contacts_info4": "チャットの参加者のどちらも履歴を削除できます",
"contacts_info2": "連絡先のアイコンをクリックしてチャットを開始",
"contacts_confirmRemove": "<em>{0}</em>をあなたの連絡先から削除してよろしいですか?",
@ -426,9 +426,9 @@
"viewShare": "読み込み専用のリンク",
"mediatag_loadButton": "添付ファイルを読み込む",
"settings_disableThumbnailsAction": "CryptDriveでのサムネイルの作成を無効にする",
"settings_resetError": "入力したテキストが正しくありません。CryptDriveのデータは消去されていません。",
"settings_resetError": "入力した確認文が正しくありません。CryptDriveのデータは消去されていません。",
"settings_resetDone": "データが消去されました!",
"settings_resetPrompt": "あなたのドライブから全てのパッドを削除します。<br>本当に続けてよろしいですか?</br>続けるには「I love CryptPad」と入力してください。",
"settings_resetPrompt": "あなたのドライブからのパッドを削除します。<br>本当に続けてよろしいですか?</br>続けるには「I love CryptPad」と入力してください。",
"settings_reset": "CryptDriveの全てのファイルとフォルダを削除",
"settings_exportErrorOther": "ドキュメントのエクスポート中にエラーが発生しました: {0}",
"drive_activeOld": "以前のパッド",
@ -440,10 +440,10 @@
"kanban_editCard": "このカードを編集",
"kanban_clearFilter": "フィルターを消去",
"kanban_tags": "タグでフィルタリング",
"allow_text": "アクセスリストを使用すると、選択したユーザーと所有者だけがこのドキュメントにアクセスできます。",
"allow_text": "アクセスリストを使用すると、選択したユーザーとオーナーだけがドキュメントにアクセスできます。",
"admin_defaultlimitTitle": "ストレージの制限MB",
"owner_add": "{0}があなたをパッド <b>{1}</b> の所有者になるよう希望しています。 承諾しますか?",
"owner_removeConfirm": "選択したユーザーの所有権を削除してよろしいですか? ユーザーには通知が送られます。",
"owner_add": "{0}があなたをパッド「<b>{1}</b>」のオーナーになるよう希望しています。 承諾しますか?",
"owner_removeConfirm": "選択したユーザーのオーナー権を削除してよろしいですか? ユーザーには通知が送られます。",
"owner_removePendingText": "保留中",
"properties_unknownUser": "{0}人の不明なユーザー",
"requestEdit_viewPad": "パッドを新しいタブで開く",
@ -454,7 +454,7 @@
"upload_choose": "ファイルを選択",
"form_page": "{0}/{1}ページ",
"form_addMultiple": "全て追加",
"admin_consentToContactLabel": "同意",
"admin_consentToContactLabel": "同意する",
"admin_updateAvailableButton": "リリースノートを見る",
"admin_updateAvailableHint": "CryptPadの新しいバージョンが利用可能です",
"admin_updateAvailableTitle": "新しいバージョン",
@ -466,7 +466,7 @@
"sharedFolders_create": "共有フォルダを作成",
"share_mediatagCopy": "Mediaタグをクリップボードにコピー",
"header_homeTitle": "CryptPadのホームページを開く",
"header_logoTitle": "CryptDriveに行く",
"header_logoTitle": "CryptDriveを開く",
"settings_cursorShareTitle": "カーソルの位置を共有",
"settings_padWidthLabel": "エディターの幅を減らす",
"settings_codeIndentation": "コードエディターのインデント(空白スペース)",
@ -474,16 +474,16 @@
"fc_openInCode": "コードエディターで開く",
"poll_create_option": "新しいオプションを追加",
"poll_create_user": "新しいユーザーを追加",
"pad_mediatagImport": "CryptDriveに保存",
"admin_listMyInstanceLabel": "このインスタンスをリストに表示",
"pad_mediatagImport": "あなたのCryptDriveに保存",
"admin_listMyInstanceLabel": "このインスタンスをリストに表示する",
"admin_checkupTitle": "インスタンスの設定を検証",
"cba_disable": "消去して無効にする",
"upload_pending": "保留中",
"settings_resetTips": "ヒント",
"chrome68": "バージョン68のChromeあるいはChromiumを使用しているようです。このバージョンには、数秒経過した後でページが白紙になったり、クリックにページが反応しなくなったりするバグがあります。この問題を解決するには、別のタブを表示して改めて表示するか、このページでスクロールを試みてください。このバグは次のバージョンで解決される予定となっています。",
"register_notes": "<ul class=\"cp-notes-list\"><li>ドキュメントは、パスワードによって暗号化されます。<span class=\"red\">パスワードを紛失すると、データを復元することはできません。</span></li><li>共有のコンピュータを使用している場合は、作業完了時に<span class=\"red\">忘れずログアウトしてください。</span> ブラウザーのウインドウを閉じても、アカウントからはログアウトされません。</li><li>ログインせずに作成したり共有したりしたファイルを保存するには、 「匿名セッションのデータをインポート」にチェックをしてください。 </li></ul>",
"chrome68": "バージョン68のChromeもしくはChromiumを使用しているようです。このバージョンには、数秒経過した後でページが白紙になったり、クリックにページが反応しなくなったりするバグがあります。この問題を解決するには、別のタブを表示して改めて表示するか、このページでスクロールを試みてください。このバグは次のバージョンで解決される予定となっています。",
"register_notes": "<ul class=\"cp-notes-list\"><li>ドキュメントは、パスワードによって暗号化されます。<span class=\"red\">パスワードを紛失すると、データを復元することはできません。</span></li><li>共有のコンピュータを使用している場合は、作業完了時に<span class=\"red\">忘れずログアウトしてください。</span> ブラウザーのウインドウを閉じても、アカウントからはログアウトされません。</li><li>未ログインで作成、共有したファイルを保存するには、 「匿名セッションのドキュメントをインポート」にチェックをしてください。 </li></ul>",
"poll_commit": "送信",
"admin_removeDonateButtonTitle": "クラウドファンディング参加",
"admin_removeDonateButtonTitle": "クラウドファンディングへの参加",
"mediatag_notReady": "ダウンロードを完了してください",
"pad_mediatagOpen": "ファイルを開く",
"pad_mediatagShare": "ファイルを共有",
@ -503,7 +503,7 @@
"slide_backCol": "背景色",
"code_editorTheme": "エディターのテーマ",
"unknownPad": "不明なパッド",
"admin_openFilesTitle": "ファイルを開く",
"admin_openFilesTitle": "開かれているファイル",
"kanban_conflicts": "編集中:",
"kanban_noTags": "タグがありません",
"historyTrim_historySize": "履歴: {0}",
@ -560,11 +560,11 @@
"form_form": "フォーム",
"form_editor": "エディタ",
"form_delete": "削除",
"form_sent": "送信",
"form_sent": "送信しました",
"form_reset": "リセット",
"form_update": "更新",
"form_submit": "送信",
"form_type_md": "説明",
"form_type_md": "説明",
"form_type_poll": "投票",
"form_type_checkbox": "チェックボックス",
"form_type_textarea": "段落",
@ -672,7 +672,7 @@
"fm_newButton": "新規",
"fm_sharedFolderName": "共有フォルダ",
"fm_tagsName": "タグ",
"fm_filesDataName": "全ファイル",
"fm_filesDataName": "全てのファイル",
"contacts_leaveRoom": "このルームから退出",
"contacts_rooms": "ルーム",
"contacts_removeHistoryServerError": "チャットの履歴を削除する際にエラーが発生しました。後ほど再試行してください",
@ -686,7 +686,7 @@
"history_next": "次のバージョン",
"historyButton": "ドキュメントの履歴を表示",
"notifyLeft": "{0}が共同セッションから退出しました",
"fileEmbedTag": "そして、ファイルを埋め込みたい任意のページの箇所に、このMedia Tagを配置してください",
"fileEmbedTag": "その後、ファイルを埋め込みたい任意のページの箇所に、このMedia Tagを配置してください",
"themeButtonTitle": "コードとスライドのエディタのテーマ色を選択",
"printTransition": "遷移アニメーションを有効にする",
"admin_blockDailyCheckTitle": "サーバーのテレメトリー",
@ -719,7 +719,7 @@
"imprint": "法定通知",
"oo_exportInProgress": "エクスポート中です",
"notifyJoined": "{0}が共同セッションに参加しました",
"viewEmbedTag": "パッドを埋め込むには、のiframeを任意の箇所に含めてください。CSSまたはHTMLの属性を使って装飾できます。",
"viewEmbedTag": "パッドを埋め込むには、以下のiframeを任意の箇所に含めてください。CSSまたはHTMLの属性を使って装飾できます。",
"slideOptionsText": "オプション",
"tags_noentry": "削除したパッドにはタグ付けできません!",
"tags_duplicate": "重複タグ: {0}",
@ -763,7 +763,7 @@
"userlist_offline": "現在オフラインのため、ユーザーリストは利用できません。",
"readonly": "読み取り専用",
"errorState": "重大なエラー: {0}",
"realtime_unrecoverableError": "回復不可能なエラーが発生しました。OKをクリックしてリロードしてください。",
"realtime_unrecoverableError": "回復不可能なエラーが発生しました。OKをクリックして再読み込みを行ってください。",
"disabledApp": "このアプリケーションは無効になっています。詳細については、このCryptPadの管理者にお問い合わせください。",
"deletedFromServer": "パッドは完全削除されました",
"newVersionError": "新しいバージョンのCryptPadがあります。<br><a href='#'>リロードする</a>と新しいバージョンを読み込みます。<em>Esc</em>キーを押すと<b>オフラインモード</b>でコンテンツにアクセスします。",
@ -774,17 +774,17 @@
"inactiveError": "このパッドは使用されていなかったため削除されました。Escキーを押して新しいパッドを作成します。",
"deletedError": "このパッドは所有者によって削除されたため、使用できなくなりました。",
"expiredError": "このパッドは使用期限が過ぎてしまったため、使用できなくなりました。",
"anonymousStoreDisabled": "このCryptPadのインスタンスの管理者は、匿名ユーザーの保存を無効にしています。CryptDriveを使用するにはログインする必要があります。",
"anonymousStoreDisabled": "このCryptPadのインスタンスの管理者は、匿名ユーザーによる保存を無効に設定しています。CryptDriveを使用するにはログインする必要があります。",
"padNotPinnedVariable": "このパッドは{4}日使用しないと期限切れになります。{0}ログイン{1}または{2}登録{3}し保存してください。",
"padNotPinned": "このパッドは3ヶ月間使用しないと有効期限が切れます。{0}ログイン{1}するか{2}登録{3}して保存してください。",
"onLogout": "ログアウトしました。{0}ここをクリック{1}するか<br><em>Escape</em>キーを押すと、閲覧モードでパッドにアクセスできます。",
"typeError": "このパッドは選択したアプリケーションと互換性がありません",
"form_type_page": "ページ分割",
"form_description_default": "ここにテキストを入力",
"team_pcsSelectHelp": "所有するパッドをチームのドライブに作成すると、そのパッドの所有権はチームに与えられます。",
"sharedFolders_create_owned": "所有するフォルダ",
"creation_owned1": "<b>所有されている</b>項目は、所有者が任意で完全削除できます。完全削除すると、他のユーザーのCryptDriveでも利用できなくなります。",
"creation_owned": "所有するパッド",
"team_pcsSelectHelp": "所有するパッドをチームのドライブに作成すると、そのパッドのオーナー権はチームに与えられます。",
"sharedFolders_create_owned": "フォルダを所有する",
"creation_owned1": "<b>所有している</b>項目は、オーナーの望むときにいつでも完全削除できます。完全削除すると、他のユーザーのCryptDriveからも削除されます。",
"creation_owned": "パッドを所有",
"uploadFolder_modal_owner": "所有するファイル",
"upload_modal_owner": "所有するファイル",
"settings_driveDuplicateHint": "所有するパッドを共有フォルダに移動すると、あなたのCryptDriveにパッドのコピーが保存され、あなたは引き続きそのパッドをコントロールできます。重複したファイルは隠すことができます。削除しない限り、共有したバージョンだけが表示されます。削除した場合は、以前の場所に元のファイルが表示されます。",
@ -802,16 +802,16 @@
"settings_codeFontSize": "コードエディターのフォントの大きさ",
"settings_anonymous": "ログインしていません。設定はこのブラウザのみで有効です。",
"settings_deleted": "アカウントが削除されました。OKを押すとホームページに移動します。",
"settings_deleteHint": "アカウントの削除は取り消しできません。あなたのCryptDriveとパッドのリストはサーバーから削除されます。誰もCryptDriveに保存していないパッドは、90日で削除されます。",
"settings_deleteHint": "アカウントの削除は取り消ません。あなたのCryptDriveとパッドのリストはサーバーから削除されます。誰もCryptDriveに保存していないパッドは、90日で削除されます。",
"settings_resetThumbnailsDone": "サムネイルが消去されました。",
"settings_resetThumbnailsDescription": "ブラウザに保存したサムネイルを削除します。",
"settings_disableThumbnailsDescription": "新しいパッドを開くと、サムネイルが自動で作成され、ブラウザに保存されます。ここでサムネイルの作成を無効にできます。",
"fm_info_root": "ファイルを並べ替えるのに必要な数のネストされたフォルダここに作成できます。",
"fm_info_root": "フォルダを作成してファイルを整理できます。",
"oo_conversionSupport": "お使いのブラウザはMicrosoft Officeのフォーマットの変換に対応していません。FirefoxもしくはChromeの最新バージョンの使用を推奨します。",
"register_registrationIsClosed": "登録は締め切りました。",
"settings_notifCalendarHint": "今後のカレンダーのイベントのすべての通知を有効もしくは無効にします。",
"settings_notifCalendarHint": "今後のカレンダーのイベントのての通知を有効もしくは無効にします。",
"reminder_inProgressAllDay": "今日: <b>{0}</b>",
"reminder_inProgress": "<b>{0}</b>が{1}開始しました",
"reminder_inProgress": "<b>{0}</b>が{1}開始しました",
"reminder_now": "<b>{0}</b>が開始しました",
"reminder_missed": "<b>{0}</b>が{1}で開催されました",
"calendar_dateRange": "{0} - {1}",
@ -842,7 +842,7 @@
"pad_settings_show": "表示",
"pad_settings_hide": "隠す",
"pad_settings_width_small": "ページモード",
"pad_settings_info": "このドキュメントの既定の設定。新しいユーザーがドキュメントを閲覧したときに適用されます。",
"pad_settings_info": "このドキュメントの既定の設定です。新しいユーザーがドキュメントを閲覧したときに適用されます。",
"pad_settings_title": "ドキュメントの設定",
"admin_getquotaTitle": "アカウントのストレージを確認",
"settings_colorthemeTitle": "テーマ色",
@ -851,14 +851,14 @@
"settings_resetTipsDone": "全てのヒントが表示されます。",
"settings_resetTipsButton": "利用可能なCryptDriveのヒントをリセット",
"settings_resetNewTitle": "CryptDriveのデータを消去",
"settings_exportErrorMissing": "このドキュメントはサーバーにありません(期限切れ、もしくは所有者により削除されました)",
"settings_exportErrorMissing": "このドキュメントはサーバーにありません(期限切れ、もしくはオーナーにより削除されました)",
"settings_exportErrorEmpty": "このドキュメントはエクスポートできません(内容が空もしくは無効です)。",
"settings_exportErrorDescription": "以下のドキュメントをエクスポートに追加できませんでした:",
"settings_exportDescription": "ドキュメントをダウンロードして復号化しております。少々お待ちください。これには数分程度かかることがあります。タブを閉じると作業が中断されます。",
"crowdfunding_popup_text": "<h3>あなたの援助が必要です!</h3>CryptPadの開発が継続できるよう、OpenCollectiveのページからご支援いただきますようお願いします。<b>ロードマップ</b>と<b>資金調達の目標</b>を同ページにて公開しています。",
"autostore_notAvailable": "この機能を使うにはCryptDriveにパッドを保存する必要があります。",
"autostore_forceSave": "CryptDriveにファイルを保存",
"autostore_saved": "パッドはCryptDriveに保存されました!",
"autostore_saved": "パッドをCryptDriveに保存しました!",
"autostore_settings": "自動保存は<a>設定</a>ページで有効にできます!",
"broadcast_end": "終了",
"broadcast_start": "開始",
@ -871,8 +871,8 @@
"notifyRenamed": "{0}は{1}になりました",
"printBackgroundNoValue": "<em>背景画像が選択されていません</em>",
"canvas_saveToDrive": "この画像をファイル形式でCryptDriveに保存",
"canvas_opacityLabel": "透明度: {0}",
"canvas_opacity": "透明度",
"canvas_opacityLabel": "透明度: {0}",
"canvas_opacity": "透明度",
"poll_comment_disabled": "✓ボタンを押して投票を公開すると、コメントが有効になります。",
"kanban_item": "項目 {0}",
"fileEmbedScript": "このファイルを埋め込むには、Media Tagのロード用に、このスクリプトをページに一度含めてください。",
@ -880,7 +880,7 @@
"colorButtonTitle": "プレゼンテーションモードの文字色を変更",
"presentButtonTitle": "プレゼンテーションモードに変更",
"exportPrompt": "ファイル名は何にしますか?",
"share_formEdit": "者",
"share_formEdit": "者",
"history_userNext": "次の著者",
"history_userPrev": "以前の著者",
"comments_deleted": "コメントは著者により削除されました",
@ -930,14 +930,14 @@
"share_linkEmbed": "埋め込みモード(ツールバーとユーザー一覧を隠します)",
"properties_passwordSuccess": "パスワードは変更されました。<br>OKを押して再読み込みし、アクセス権限を更新してください。",
"properties_passwordWarning": "パスワードは変更されましたが、CryptDriveを更新することができませんでした。古いバージョンのパッドは手動で削除しなければならないかもしれません。<br>OKを押して再読み込みし、アクセス権限を更新してください。",
"properties_confirmChange": "パスワードを変更すると履歴が削除されます。パスワードを知らないユーザーは、このパッドにアクセスできなくなります。続行してよろしいですか?",
"properties_confirmChange": "続行してよろしいですか?パスワードを変更すると履歴が削除されます。パスワードを知らないユーザーは、このパッドにアクセスできなくなります。",
"creation_newPadModalDescription": "作成するドキュメントの種類をクリックしてください。<b>タブ</b>キーで選択し、<b>エンター</b>キーで作成することもできます。",
"creation_noOwner": "所有者がありません",
"creation_noOwner": "オーナーがいません",
"properties_passwordError": "パスワードの変更中にエラーが発生しました。再度試してください。",
"properties_passwordSame": "新しいパスワードは現在のパスワードと異なるものでなければなりません。",
"four04_pageNotFound": "お探しのページが見つかりませんでした。",
"about": "私たちについて",
"whatis_apps_info": "<p>CryptPadは共同作業に必要なツールを備えた本格的なオフィススイートです。リッチテキスト、スプレッドシート、コード/マークダウン、カンバン、スライド、ホワイトボード、投票機能を有しています。</p><p>それらのアプリケーションには、チャット、連絡先、著者別の色表示(コード/マークダウン)、コメント、メンション(リッチテキスト)などの機能が付属しています。</p>",
"whatis_apps_info": "<p>CryptPadは共同作業に必要なツールを備えた本格的なオフィススイートです。リッチテキスト、スプレッドシート、コード/マークダウン、カンバン、スライド、ホワイトボード、投票機能があります。</p><p>それらのアプリケーションには、チャット、連絡先、著者別の色表示(コード/マークダウン)、コメント、メンション(リッチテキスト)などの機能が付属しています。</p>",
"mdToolbar_button": "マークダウンのツールバーを表示もしくは隠す",
"pad_base64": "このパッドはサイズの大きい画像を含んでいます。パッドのサイズが大きいと、読み込みに時間がかかります。サイズを減らすために、画像のフォーマットを変換して、別の画像ファイルとしてCryptDriveに保存することができます。画像を変換してよろしいですか",
"todo_removeTaskTitle": "このタスクをリストから削除",
@ -952,12 +952,12 @@
"settings_export_reading": "CryptDriveを読み込んでいます…",
"settings_exportCancel": "エクスポートをキャンセルしてよろしいでしょうか?次のエクスポートでは最初からやりなおす必要があります。",
"fm_error_cantPin": "内部サーバーエラー。ページを再度読み込んでください。",
"fm_info_anonymous": "ログインしていないため、ドキュメントは{0}日後に期限切れになります。また、ブラウザの履歴を消去するとファイルが消えてしまうかもしれません。<br>ファイルを永続的に保存するには、<a href=\"/register/\">登録</a>するか(個人情報の登録は不要です)<a href=\"/login/\">ログイン</a>してください。<a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">登録アカウントについては、こちらを参照してください(英語)</a>。",
"fm_info_recent": "これらのパッドは、最近、あなたか共同作業者により開かれたか、もしくは編集されました。",
"fm_info_template": "新しいパッドを作成する際に利用できるテンプレートとして保存した全てのパッドを含みます。",
"fm_info_anonymous": "ログインしていないため、ドキュメントは{0}日後に期限切れになります。また、ブラウザの履歴を消去するとファイルが削除される恐れがあります。<br>ファイルを永続的に保存するには、<a href=\"/register/\">登録</a>するか(個人情報の登録は不要です)<a href=\"/login/\">ログイン</a>してください。<a href=\"#docs\">登録アカウントについては、こちらを参照してください</a>。",
"fm_info_recent": "あなたか共同編集者が最近開いた、もしくは編集したパッドの一覧です。",
"fm_info_template": "テンプレートとして保存したパッドの一覧です。以下のテンプレートを使って、新しいパッドを作成することができます。",
"fm_categoryError": "選択したカテゴリーが開けません。ルートを表示します。",
"fm_morePads": "さらに表示",
"oo_reconnect": "サーバーの接続が回復しました。OKをクリックして再読み込み、編集を継続してください。",
"oo_reconnect": "サーバーの接続が回復しました。OKをクリックして再読み込みを行い、編集を継続してください。",
"changeNamePrompt": "名前を変更(匿名で利用する場合は空欄): ",
"form_text_text": "テキスト",
"form_poll_time": "時",
@ -977,7 +977,7 @@
"calendar_notifications": "リマインダー",
"settings_notifCalendarCheckbox": "カレンダーの通知を有効にする",
"calendar_days": "日",
"calendar_hours": "時",
"calendar_hours": "時",
"calendar_minutes": "分",
"calendar_allDay": "全日",
"calendar_location": "場所: {0}",
@ -1001,7 +1001,7 @@
"settings_padSpellcheckLabel": "リッチテキストのパッドでスペルチェックを有効にする",
"settings_padWidth": "エディターの最大幅",
"settings_codeUseTabs": "タブを使ってインデント(空白スペースの代わりに)",
"login_noSuchUser": "無効なユーザー名あるいはパスワードです。再度試すか、サインアップしてください",
"login_noSuchUser": "無効なユーザー名もしくはパスワードです。再度試すか、サインアップしてください",
"fo_unavailableName": "同じ名前のファイルまたはフォルダが既に存在しています。アイテムの名前を変更して、再度試してください。",
"fo_moveFolderToChildError": "フォルダをサブフォルダに移動することはできません",
"fo_existingNameError": "その名前はディレクトリで既に使用されています。他の名前を選んでください。",
@ -1022,15 +1022,15 @@
"canvas_imageEmbed": "コンピューターの画像を埋め込む",
"canvas_currentBrush": "現在のブラシ",
"poll_total": "合計",
"kanban_todo": "タスク",
"kanban_todo": "未着手",
"slide_invalidLess": "ユーザー定義のスタイルは無効です",
"printCSS": "ユーザー定義のスタイルルールCSS",
"admin_provideAggregateStatisticsHint": "追加の利用状況を開発者に提供することも選択できます。追加の情報には、あなたのインスタンスのおおよその登録ユーザー数や一日あたりのユーザー数などがあります。",
"fm_info_sharedFolder": "これは共有フォルダです。ログインしていないため、閲覧モードでしかアクセスできません。<br><a href=\"/register/\">登録</a>あるいは<a href=\"/login/\">ログイン</a>すると、CryptDriveにインポートして編集できます。",
"fm_info_sharedFolder": "これは共有フォルダです。ログインしていないため、閲覧モードでしかアクセスできません。<br><a href=\"/register/\">登録</a>もしくは<a href=\"/login/\">ログイン</a>すると、CryptDriveにインポートして編集できます。",
"team_invitedToTeam": "{0}があなたをチーム「<b>{1}</b>」に招待しました",
"team_inviteFromMsg": "{0}があなたをチーム「<b>{1}</b>」に招待しました",
"team_invitePleaseLogin": "招待を承諾するには、ログインもしくは登録してください。",
"team_inviteEnterPassword": "招待パスワードを入力してください。",
"team_inviteEnterPassword": "招待パスワードを入力してください。",
"team_inviteGetData": "チームのデータを取得中です",
"team_inviteInvalidLinkError": "招待リンクが無効です。",
"admin_getlimitsHint": "インスタンスに適用されている全てのカスタムストレージの制限を一覧表示します。",
@ -1040,13 +1040,13 @@
"settings_backup2Confirm": "あなたのCryptDriveの全てのパッドをダウンロードします。続けたい場合は、名前を入力してOKを押してください",
"settings_backup2": "CryptDriveをダウンロード",
"settings_backupHint2": "ドライブの全てのドキュメントをダウンロードします。ドキュメントは、他のアプリケーションで読み込めるフォーマットがあれば、そのフォーマットでダウンロードされます。そうしたフォーマットがなければ、CryptPadで読み込めるフォーマットでダウンロードされます。",
"settings_backupHint": "CryptDriveのコンテンツをバックアップ、あるいは復元します。パッドの内容ではなく、それにアクセスするための鍵だけを含みます。",
"settings_backupHint": "CryptDriveのコンテンツをバックアップもしくは復元します。バックアップには、パッドの内容ではなく、それにアクセスする鍵だけが含まれます。",
"register_emailWarning3": "その点を踏まえてなおユーザー名にメールアドレスを使用する場合は、OKをクリックしてください。",
"register_emailWarning1": "それもできますが、サーバーには送信されません。",
"register_emailWarning0": "ユーザー名にメールアドレスが入力されています。",
"fm_tags_used": "使用数",
"fm_deletedPads": "これらのパッドはサーバーにありません。あなたのCryptDriveから削除されています: {0}",
"fm_renamedPad": "このパッドにユーザー定義の名前を設定しました。共有のファイル名は <br><b>{0}</b>",
"fm_renamedPad": "このパッドにユーザー定義の名前を設定しました。共有のファイル名は「<b>{0}</b>」です",
"fm_ownedPadsName": "所有",
"burnAfterReading_generateLink": "下のボタンをクリックするとリンクを生成します。",
"fm_restricted": "アクセス権がありません",
@ -1055,18 +1055,18 @@
"settings_cacheCheckbox": "このデバイスでキャッシュを有効にする",
"form_submitWarning": "強制的に送信",
"form_updateWarning": "強制的にアップデート",
"form_answerName": "{0}から{1}について回答",
"form_answerName": "{0}が{1}に回答",
"form_addMultipleHint": "複数の日時を追加",
"admin_consentToContactTitle": "連絡に同意",
"form_poll_hint": "<i></i>: はい、<i></i>: いいえ、<i></i>: 許容できる",
"form_poll_hint": "<i></i>: はい、<i></i>: いいえ、<i></i>: ",
"admin_provideAggregateStatisticsLabel": "集計済みの統計を提供",
"admin_provideAggregateStatisticsTitle": "統計による集計",
"admin_blockDailyCheckHint": "以後CryptPadのインスタンスは、1日に1回、CryptPadの開発者のサーバーにメッセージを送信します。開発者はそれをもとに、CryptPadのバージョンごとのサーバー数を追跡することができます。以下からこの測定をオプトアプトできます。なお、送信されるメッセージの内容は、確認用として、アプリケーションのサーバーのログに記録されます。",
"admin_listMyInstanceHint": "あなたのインスタンスが誰でも利用できる場合、同意によってウェブディレクトリに表示できます。その際は、サーバーのテレメトリーが有効になっている必要があります。",
"admin_blockDailyCheckHint": "CryptPadのインスタンスは、1日に1度、開発者のサーバーにメッセージを送信するよう設定されています。開発者はそれをもとに、CryptPadのバージョンごとのサーバー数を追跡しています。以下からこの測定をオプトアプトできます。なお、送信されるメッセージの内容は、確認用として、アプリケーションのサーバーのログに記録されます。",
"admin_listMyInstanceHint": "あなたのインスタンスが誰でも利用できる場合、同意によってウェブディレクトリに表示できます。表示には、サーバーのテレメトリーが有効になっている必要があります。",
"settings_driveRedirectTitle": "ホームページにリダイレクト",
"form_defaultItem": "項目{0}",
"form_defaultOption": "オプション{0}",
"form_answerAnonymous": "{0}についての匿名の回答",
"form_answerAnonymous": "{0}に匿名の回答",
"form_maxLength": "文字数制限: {0}/{1}",
"form_textType": "テキストの種類",
"form_pollYourAnswers": "あなたの回答",
@ -1094,7 +1094,7 @@
"trimHistory_error": "履歴を削除している途中でエラーが発生しました",
"trimHistory_getSizeError": "ドライブの履歴のサイズを計算している途中でエラーが発生しました",
"profile_login": "このユーザーを連絡先に追加するにはログインする必要があります",
"dontShowAgain": "二度と表示しない",
"dontShowAgain": "再び表示しない",
"oo_sheetMigration_anonymousEditor": "登録ユーザーが最新のバージョンに更新するまで、このスプレッドシートを未登録ユーザーが編集することはできません。",
"oo_invalidFormat": "このファイルはインポートできません",
"burnAfterReading_warningDeleted": "このパッドは削除されました。ウインドウを閉じた後で再びアクセスすることはできません。",
@ -1109,7 +1109,7 @@
"admin_diskUsageButton": "レポートを生成",
"admin_diskUsageTitle": "ディスクの使用状況",
"contact_adminHint": "アカウントに関連した問題、ストレージの制限、サービスの運用状況に関して。\n",
"contact_devHint": "機能のリクエスト、ユーザビリティの改善、あるいはお礼を言う場合。",
"contact_devHint": "機能のリクエスト、ユーザビリティの改善、もしくはお礼については、以下よりお願いします。",
"contact_dev": "開発者に連絡",
"contact_admin": "管理者に連絡",
"admin_flushCacheDone": "キャッシュを消去しました",
@ -1120,18 +1120,18 @@
"admin_updateLimitTitle": "ユーザーのクォータを更新",
"mdToolbar_defaultText": "ここにテキストを入力",
"upload_modal_filename": "ファイル名(拡張子 <em>{0}</em> を自動で追加)",
"settings_padSpellcheckHint": "リッチテキストパッドでスペルチェックを有効にします。間違ったつづりには赤色の下線が表示されます。右クリックをしながらコントロールキーあるいはメタキーを押すと、正しい選択肢が表示されます。",
"settings_padSpellcheckHint": "リッチテキストパッドでスペルチェックを有効にします。間違ったつづりには赤色の下線が表示されます。右クリックをしながらコントロールキーもしくはメタキーを押すと、正しい選択肢が表示されます。",
"creation_404": "このパッドは存在しません。以下のフォームより新しいパッドを作成してください。",
"help_genericMore": "CryptPadの使用法については<a>ドキュメント</a>をご覧ください。",
"whatis_drive": "CryptDriveを使用している組織",
"help_genericMore": "CryptPadの使い方については<a>ドキュメンテーション</a>をご覧ください。",
"whatis_drive": "CryptDriveでまとめて管理",
"mdToolbar_toc": "目次",
"mdToolbar_check": "タスクリスト",
"mdToolbar_nlist": "番号付きリスト",
"mdToolbar_heading": "見出し",
"settings_cursorShowHint": "共同ドキュメントであなたが他のユーザーのカーソルの位置を見られるかどうかを決められます。",
"settings_cursorShareHint": "共同ドキュメントで他のユーザーがあなたのカーソルの位置を見られるかどうかを決められます。",
"settings_cursorColorHint": "共同ドキュメントのユーザーと関連付けられた色を変更します。",
"settings_padWidthHint": "テキストエディターの幅を制限するページモード(既定)と、スクリーン全体の幅を使用するモードを切り替え。",
"settings_cursorColorHint": "共同ドキュメントでの他のユーザーのカーソルの色を変更できます。",
"settings_padWidthHint": "テキストエディターの幅を制限するページモード(既定)と、スクリーン全体の幅を使用するモードを切り替えられます。",
"fm_forbidden": "禁止されたアクション",
"team_exportHint": "チームのドライブの全てのドキュメントをダウンロードします。ドキュメントは、他のアプリケーションで読み込めるフォーマットがあれば、そのフォーマットでダウンロードされます。そうしたフォーマットがなければ、CryptPadで読み込めるフォーマットでダウンロードされます。",
"admin_limitUser": "ユーザーの公開鍵",
@ -1145,17 +1145,17 @@
"fc_noAction": "利用可能なアクションはありません",
"support_closed": "このチケットは終了しました",
"support_cat_tickets": "既存のチケット",
"support_formHint": "このフォームから、管理者に問題の報告や質問を安全に行うことができます。<br>それらに関しては <a>CryptPad ユーザーガイド</a>で回答されているものがあるかもしれません。既にチケットを作成している場合、同じ問題に関して新しいチケットを作成するのはお控えください。その代わりに、既存のチケットに追加の情報を送信してください。",
"support_formHint": "このフォームから、管理者に問題の報告や質問を安全に行うことができます。<br>それらに関しては <a>CryptPadユーザーガイド</a>で回答されているものがあるかもしれません。既にチケットを作成している場合、同じ問題に関して新しいチケットを作成するのはお控えください。その代わりに、既存のチケットに追加の情報を送信してください。",
"support_disabledTitle": "サポートは有効になっていません",
"admin_supportListHint": "ユーザーからサポートのメールボックスに送信されたチケットの一覧です。管理者はメッセージと回答を閲覧できます。終了したチケットは再開することができます。終了したチケットについては削除する(隠す)ことができますが、他の管理者には引き続き表示されます。",
"drive_sfPassword": "共有フォルダ「 {0} 」は利用できません。所有者により削除されたか、新しいパスワードにより保護されています。CryptDriveから削除するか、新しいパスワードを使ってアクセスを回復できます。",
"drive_sfPassword": "共有フォルダ「 {0} 」は利用できません。オーナーにより削除されたか、新しいパスワードで保護されています。CryptDriveから削除するか、新しいパスワードを使ってアクセスを回復できます。",
"fm_info_sharedFolderHistory": "これは共有フォルダの履歴です: <b>{0}</b><br/>CryptDriveは閲覧モードを継続します。",
"notification_folderShared": "{0}があなたとフォルダを共有しました: <b>{1}</b>",
"convertFolderToSF_SFChildren": "このフォルダは共有フォルダを含んでいるため、共有フォルダに変更できません。続けるには、このフォルダを共有フォルダの外に移動してください。",
"sharedFolders_share": "このリンクを登録ユーザーと共有すると、共有フォルダへのアクセスが可能になります。相手がリンクを開くと、CryptDriveに共有フォルダが追加されます。",
"sharedFolders_duplicate": "移動しようとしているパッドのいくつかは既に移動先のフォルダに存在しています。",
"sharedFolders_forget": "このパッドは共有フォルダにのみ保存されているため、ゴミ箱に移動できません。あなたのCryptDriveから削除することは可能です。",
"settings_ownDriveHint": "技術上の理由で、旧アカウントは最新の機能にアクセスできません。フリーのアップデートで新しい機能が有効になり、今後のアップデートにも対応します。",
"settings_ownDriveHint": "技術上の理由で、旧アカウントは最新の機能にアクセスできません。フリーのアップデートで新しい機能が有効になり、CryptDriveの今後のアップデートにも対応します。",
"admin_activePadsHint": "閲覧もしくは編集中のドキュメント数",
"admin_activePadsTitle": "アクティブなパッド",
"admin_activeSessionsTitle": "アクティブな接続",
@ -1167,7 +1167,7 @@
"team_deleteConfirm": "チーム全体のデータを全て削除しようとしています。削除すると、チームの他のメンバーもデータにアクセスできなくなります。これは取り消せません。削除してよろしいですか?",
"team_kickConfirm": "{0}はチームから削除された旨通知されます。よろしいですか?",
"admin_instancePurposeHint": "インスタンスを運用する目的は何ですか?テレメトリーが有効になっている場合、回答は開発ロードマップに利用されます。",
"admin_purpose_experiment": "プラットフォームのテストあるいは新機能の開発",
"admin_purpose_experiment": "プラットフォームのテストもしくは新機能の開発",
"admin_purpose_noanswer": "回答しない",
"admin_instancePurposeTitle": "インスタンスの目的",
"requestEdit_request": "{1}がパッド(<b>{0}</b>)の編集を希望しています",
@ -1201,9 +1201,9 @@
"friendRequest_received": "<b>{0}</b>が連絡先への追加を希望しています",
"friendRequest_declined": "<b>{0}</b>が連絡先のリクエストを拒否しました",
"admin_diskUsageHint": "CryptPadのリソースが消費しているストレージ容量",
"timeoutError": "エラーが発生してサーバーへの接続が切断されました。<br><em>Esc</em>キーを押してページをリロードしてください。",
"timeoutError": "エラーが発生してサーバーへの接続が切断されました。<br><em>Esc</em>キーを押してページを再読み込みしてください。",
"footer_team": "貢献者",
"admin_updateLimitHint": "ユーザーのストレージ制限の強制アップデートはいつでも可能ですが、エラーが発生したときのみ必須となります",
"admin_updateLimitHint": "ユーザーのストレージ制限の強制アップデートはいつでも可能です。エラーが発生したときは必須となります",
"admin_cat_general": "全般",
"poll_bookmarked_col": "列をブックマークしました。常に編集可能な仕方で左端に表示されます。",
"poll_bookmark_col": "この列をブックマークすると、常に編集可能な仕方で左端に表示されます",
@ -1215,8 +1215,8 @@
"form_anonymous_off": "ブロック",
"admin_checkupHint": "CryptPadには、一般的な構成に関する問題を自動で診断し、必要に応じてそれらを修正する方法を提案するページがあります。",
"admin_broadcastTitle": "メッセージを送信",
"admin_broadcastHint": "このインスタンスの全ユーザーにメッセージを送信します。ユーザーはメッセージを通知で受け取ります。「通知をプレビュー」で送信前のメッセージを確認できます。通知のプレビューには赤いアイコンがあり、あなたにだけ表示されます。",
"calendar_before": "前",
"admin_broadcastHint": "このインスタンスの全ユーザーにメッセージを送信します。ユーザーはメッセージを通知で受け取ります。送信前のメッセージは「通知をプレビュー」から確認できます。プレビューには赤いアイコンが付いており、プレビューはあなたの通知画面にのみ表示されます。",
"calendar_before": "前",
"share_formAuditor": "監査人",
"form_editMax": "選択できるオプションの最大数",
"form_invalidWarning": "回答にエラーがあります:",
@ -1226,15 +1226,15 @@
"settings_driveRedirectHint": "ログイン時にホームページからドライブに自動で転送する機能は、デフォルトで有効ではなくなりました。以前の動作は以下で有効にできます。",
"admin_removeDonateButtonLabel": "クラウドファンディングのキャンペーンの宣伝を表示しない",
"admin_purpose_public": "誰でも利用できるフリーのサービスを提供するため",
"owner_team_add": "{0}があなたをチーム(<b>{1}</b>)の所有者にしようとしています。承諾しますか?",
"owner_team_add": "{0}があなたをチーム(<b>{1}</b>)のオーナーにしようとしています。承諾しますか?",
"friendRequest_accepted": "<b>{0}</b>が連絡先リクエストを承諾しました",
"friendRequest_accept": "承諾Enter",
"admin_flushCacheHint": "サーバーから最新のコンテンツをダウンロードするようユーザーに強制(サーバーがフレッシュモードの場合のみ)",
"admin_flushCacheHint": "サーバーから最新のコンテンツをダウンロードするようユーザーに強制(サーバーがフレッシュモードの場合のみ)",
"admin_activeSessionsHint": "アクティブなwebsocketの接続および接続する一意のIPアドレスの数",
"convertFolderToSF_SFParent": "このフォルダは別の共有フォルダ内にあるため、共有フォルダに変換できません。続行するには、外部に移動してください。",
"settings_deleteWarning": "注意:現在、プレミアムプランに加入しています(別のユーザーが支払いまたは提供)。アカウントを削除する前に、プランをキャンセルしてください。アカウントを削除すると、サポートに連絡しないとキャンセルできなくなります。",
"owner_request": "{0}はあなたを<b>{1}</b>の所有者にしようとしています",
"owner_addConfirm": "共同所有者は内容を変更したり、あなたを所有者から削除したりすることができます。続行してよろしいですか?",
"owner_request": "{0}はあなたを<b>{1}</b>のオーナーにしようとしています",
"owner_addConfirm": "共同オーナーは内容を変更したり、あなたをオーナーから削除したりすることができます。続行してよろしいですか?",
"download_zip_file": "ファイル {0}/{1}",
"documentID": "ドキュメントの識別子",
"admin_setlimitButton": "制限を設定",
@ -1245,12 +1245,126 @@
"docs_link": "ドキュメンテーション",
"admin_support_collapse": "折りたたむ",
"team_inviteFrom": "送信元:",
"admin_supportInitHint": "サポートのメールボックスを設定すれば、あなたのCryptPadのインスタンスのユーザーが、アカウントから安全に問い合わせを行うことができるようになります。",
"admin_supportInitHint": "サポートのメールボックスを設定すると、あなたのCryptPadのインスタンスのユーザーが、アカウントから安全に問い合わせを行うことができるようになります。",
"isNotContact": "{0}はあなたの連絡先では<b>ありません</b>",
"isContact": "{0}はあなたの連絡先です",
"profile_info": "他のユーザーは、ドキュメントのユーザーリストであなたのアバターをクリックして、あなたのプロフィールを確認できます。",
"owner_removeMeConfirm": "所有権を放棄しようとしています。これは取り消せません。よろしいですか?",
"owner_removeMeConfirm": "オーナー権を放棄しようとしています。これは取り消せません。よろしいですか?",
"requestEdit_confirm": "{1}がパッド「<b>{0}</b>」の編集権を要求しました。編集権を与えますか?",
"admin_supportInitHelp": "サーバーはサポートメールボックスを使用するように設定されていません。サポートメールボックスを有効にし、ユーザーからメッセージを受け取るためには、サーバーの管理者に連絡し、「./scripts/generate-admin-keys.js」のスクリプトを実行してもらい、生成された公開鍵を「config.js」に保存して、秘密鍵をあなたに送信してもらうよう依頼する必要があります。",
"feedback_privacy": "私たちはプライバシーを配慮すると同時に、CryptPadを使いやすくしたいと望んでいます。このファイルは、実行されたアクションを特定するパラメーターと共に要求して、ユーザーにとって重要なUI機能を特定するために使用されます。"
"feedback_privacy": "私たちはプライバシーを配慮すると同時に、CryptPadを使いやすくしたいと望んでいます。このファイルは、実行されたアクションを特定するパラメーターと共に要求され、ユーザーにとって重要なUI機能を特定するために使用されます。",
"register_warning_note": "暗号化を行うCryptPadの性質上、サービス管理者は、ユーザー名とパスワードを忘れた場合にデータを回復することができません。ユーザー名とパスワードを安全な場所に保管してください。",
"history_restoreDriveTitle": "選択したバージョンのCryptDriveを復元",
"errorPopupBlocked": "新しいタブを開く許可が必要です。お使いのブラウザのアドレスバーから、ポップアップウィンドウを許可してください。これらのウィンドウが広告の表示に使用されることはありません。",
"settings_colorthemeHint": "このデバイスでのテーマ色を変更できます。",
"settings_colortheme_default": "システムのデフォルト ({0})",
"settings_codeBrackets": "括弧の自動補完",
"creation_helperText": "ドキュメンテーションを開く",
"contacts_info1": "連絡先の一覧が表示されます。ここでは以下を行うことができます:",
"share_noContactsLoggedIn": "連絡先がありません。プロフィールのリンクを共有して、連絡先のリクエストを送信してください。",
"settings_cat_security": "セキュリティー",
"whatis_collaboration_info": "<p>CryptPadはコラボレーションを念頭に作られています。ドキュメントに加えられる変更は、リアルタイムで同期されます。全てのデータは暗号化されているため、サービスとその管理者が、編集され保存されているコンテンツを覗き見ることは不可能です。</p>",
"whatis_apps": "フルスイートアプリケーション",
"whatis_drive_info": "<p>ドキュメントをCryptDriveに保存して管理できます。フォルダを作ったり共有したりできるほか、ドキュメントをタグ付けして整理することもできます。PDFファイル、写真、動画、音声などのファイルをアップロードして共有できます。チームのドライブを使うと、メンバーとデータを共有したり、ファイルの管理や、きめ細かいアクセス権のコントロールを行うことができます。</p>",
"whatis_model_info": "<p>CryptPadは2016年より、寄付金とcryptpad.frの定額利用のほか、BPIフランス、NLNet財団、NGI Trust、Mozillaオープンソースサポートといったフランス、EUの研究助成を受けています。私たちは、公的資金で作られたソフトウェアについては、コードも公的に公開されるべきであると考えているため、サービスは全てオープンソースで提供しています。誰でも自由にこのソフトウェアを使用、運営、改変することができます。</p><p>CryptPadは、ユーザーのデータを使って金銭上の利益を得ることはありません。これはプライバシーを尊重するオンラインサービスの展望の一部をなすものです。個人情報を使って金銭上の利益をあげながら「無料」を装う巨大プラットフォームとは違って、CryptPadは、ユーザーが自発的に支援を行うサービスのモデルを作ることを目指しています。</p><p>私たちは、CryptPadのサービスを無料で提供しています。それは、金銭的に余裕のある人々だけでなく、誰もがプライバシーを得るに値すると確信しているからです。もしあなたがこのプロジェクトを支援できる状況にあるなら、機能の開発や、改良、メンテナンスに参加していただきたく考えます。そうすることで、全てのユーザーに利益をもたらされるはずです。</p><p>このプロジェクトが実行可能であることが明らかになったいま、次のゴールは、ユーザーによる支援を通じて、プロジェクトを持続可能なものにすることにあります。CryptPadが、巨大プラットフォームに代わる持続可能なサービスを開発できるよう支援していただけるなら、一度もしくは継続的な寄付へのご協力をお願いいたします。</p>",
"whatis_xwiki_info": "<p>CryptPadはフランス、パリに所在する会社である<a>XWiki</a>にて開発されています。当社はオープンソース・ソフトウェアを15年以上にわたって開発しており、情報管理のための共同作業ソフトウェアの開発に関して豊富な経験をもっています。当社の実績は、私たちがCryptPadの長期的な開発と維持にコミットしていることを示しています。</p>",
"whatis_xwiki": "XWikiにて開発",
"history_restoreDrivePrompt": "CryptDriveの現在のバージョンを、表示されているバージョンに置き換えてよろしいですか",
"owner_text": "パッドのオーナーは、オーナーの追加や削除、リストによるアクセス制限のほか、パッドの削除を行うことができます。",
"share_linkWarning": "このリンクは、ドキュメントを暗号化したり復号化したりする鍵を含んでいます。リンクを受け取った相手は、誰でも(ここにはコンピュータープログラムも含まれます)コンテンツにアクセスすることができます。",
"creation_expiresIn": "有効期限",
"settings_mediatagSizeHint": "ドキュメントに埋め込まれたメディア要素画像、ビデオ、PDFを自動で読み込む最大のサイズをメガバイトMBで指定してください。指定したサイズより大きい要素については、手動で読み込む必要があります。「-1」を設定すると、メディア要素は常に自動で読み込みます。",
"settings_mediatagSizeTitle": "自動ダウンロードの制限",
"settings_cacheHint": "CryptPadは、帯域の使用量を減らし、読み込み時間を短縮することを目的に、ドキュメントの各部分をブラウザ上のメモリに保存しています。もし空き容量が少なければ、キャッシュを無効にしてください。セキュリティー上の懸念から、キャッシュはログアウト時に毎回消去されますが、手動でキャッシュを消去して、デバイスの空き容量を確保することもできます。",
"team_infoContent": "それぞれのチームには、チーム所有のCryptDrive、ストレージのクォータ、チャット、メンバーリストが備わっています。チームのオーナーはチームを削除することができます。管理者はメンバーを招待したりキックしたりすることができます。メンバーは、チームを退会することができます。",
"home_support": "<p>開発チームは、ユーザーのデータを使って金銭上の利益を得ることはありません。これはプライバシーを尊重するオンラインサービスの展望の一部をなすものです。個人情報を使って金銭上の利益をあげながら「無料」を装う巨大プラットフォームとは違って、CryptPadは、ユーザーが自発的に支援を行うサービスのモデルを作ることを目指しています。</p><p>Open Collectiveから、一度もしくは継続的な寄付を行い、プロジェクトを支援していただくことができます。予算には透明性があり、更新については定期的に報告を行っています。<a>お金によらずに貢献する方法</a>も数多くあります。</p>",
"form_default": "ここに質問を入力",
"form_poll_switch": "行と列を入れ替える",
"settings_kanbanTagsHint": "複数のタグを選択したときにタグフィルターがどのように機能するかについて、「かつ」もしくは「または」から選択できます。「かつ」を選択すると、選択したタグを全て含むカードのみを表示し、「または」を選択すると、選択したタグのいずれかを含むカードを表示します。",
"notifications_cat_pads": "共有に関する通知",
"form_type_multicheck": "チェックボックス式グリッド",
"form_type_multiradio": "選択式グリッド",
"form_type_sort": "番号付きリスト",
"safeLinks_error": "このリンクはブラウザーのアドレスバーからコピーされており、ドキュメントにアクセスすることはできません。<i></i> <b>共有</b>メニューを使って、連絡先と直接ドキュメントを共有するか、リンクをコピーしてください。<a>セーフリンク機能についてはこちらよりご確認ください</a>。",
"team_cat_general": "チームについて",
"team_ownerConfirm": "共同オーナーはチームを変更もしくは削除したり、あなたをオーナーから削除したりすることができます。続行してよろしいですか?",
"owner_request_accepted": "{0}はあなたのリクエストを承諾し、「<b>{1}</b>」のオーナーになりました",
"team_acceptInvitation": "{0}がチーム「<b>{1}</b>」への招待を承諾しました",
"team_declineInvitation": "{0}がチーム「<b>{1}</b>」への招待を拒否しました",
"team_inviteLinkWarning": "このリンクにアクセスする最初の人は、このチームに参加して、コンテンツを閲覧することができます。リンクは慎重に共有してください。",
"team_inviteLinkTitle": "このチームへの招待状を好みに合わせて作成",
"team_inviteLinkTempName": "一時的な名前(招待の保留中リストに表示)",
"team_inviteLinkNoteMsg": "このメッセージは、チームに参加するかどうかを決める前に表示されます。",
"owner_removedPending": "{0}は「<b>{1}</b>」に関するオーナー権の申し出をキャンセルしました",
"team_pendingOwnerTitle": "この管理者はオーナー権の申し出を受諾していません。",
"team_rosterPromoteOwner": "オーナー権を提供",
"owner_removed": "{0}は「<b>{1}</b>」に関するあなたのオーナー権を削除しました",
"owner_request_declined": "{0}は「<b>{1}</b>」のオーナーになる依頼を拒否しました",
"team_demoteMeConfirm": "オーナー権を放棄しようとしています。これは取り消せません。よろしいですか?",
"share_noContactsNotLoggedIn": "ログインもしくは新規登録して、連絡先を確認するか新たに追加してください。",
"passwordFaqLink": "パスワードについて確認",
"share_embedPasswordAlert": "この項目はパスワードで保護されています。このパッドを埋め込む際、閲覧にはパスワードの入力が必要となります。",
"share_contactPasswordAlert": "この項目はパスワードで保護されています。CryptPadの連絡先と共有するため、相手がパスワードを入力する必要はありません。",
"share_linkPasswordAlert": "この項目はパスワードで保護されています。リンクを受け取った相手はパスワードを入力する必要があります。",
"register_notes_title": "重要な注意事項",
"teams_table_specificHint": "以前のバージョンの共有フォルダでは、閲覧者は既存のパッドを変更することができます。 これらのフォルダで作成またはコピーしたパッドには、標準の権限が与えられます。",
"broadcast_maintenance": "<b>{0}</b>から<b>{1}</b>の間でメンテナンスを予定しています。その間CryptPadは使用できません。",
"admin_archiveHint": "ドキュメントを完全削除することなく、利用できないよう設定できます。「アーカイブ」フォルダに移動し、数日後に削除します(期間については設定ファイルより設定できます)。",
"admin_unarchiveHint": "アーカイブされたドキュメントを復元できます",
"admin_registrationTitle": "登録を締め切る",
"admin_defaultlimitHint": "ユーザー定義のルールが適用されていない際の最大のストレージ容量(ユーザーとチームについて)を設定できます",
"admin_limit": "現在の制限: {0}",
"admin_getquotaHint": "ユーザーもしくはチームの公開鍵を入力して、設定されているクォータに対するストレージの使用量を確認できます。",
"admin_openFilesHint": "サーバー上で現在開いているファイル記述子の数",
"admin_support_premium": "プレミアムチケット:",
"admin_maintenanceHint": "このインスタンスのメンテナンスの日程を設定し、ユーザーに通知を送ることができます。メンテナンスの日程を複数設定することはできません。",
"admin_surveyHint": "外部サイトで行うアンケートのリンクを追加、更新、削除できます。ユーザーには通知が送信され、アンケートはユーザーのメニューから開くことができます。",
"broadcast_defaultLanguage": "この言語にフォールバック",
"admin_performanceProfilingHint": "サーバー側でコマンドを実行する際に掛かった合計時間の一覧です",
"admin_consentToContactHint": "サーバーのテレメトリーには、ソフトウェアや設定に関する重大な問題が発生した際に開発者が連絡できるよう、管理者の連絡先のメールアドレスが含まれます。メールアドレスが共有、売却、マーケティングの目的で使用されることはありません。サーバーに重大な問題が発生した際に連絡を希望する場合は、「同意する」にチェックをつけてください。",
"admin_removeDonateButtonHint": "CryptPadの開発の一部は、公的な助成金と寄付金によってまかなわれています。クラウドファンディングに関する宣伝をあなたのインスタンスで行うことで、開発者が万人のためにプラットフォームを改良することへの支援につながります。ただし、もし宣伝が不適切な場合は、宣伝を無効にすることもできます。",
"admin_performanceTimeHeading": "時間(秒)",
"team_maxTeams": "それぞれのユーザーアカウントがメンバーになることができるのは、最大{0}チームまでです。",
"team_listSlot": "利用可能なチームのスロット",
"resources_learnWhy": "ブロックした理由について",
"admin_purpose_business": "ビジネス・営利団体での使用",
"admin_purpose_education": "教育機関での使用",
"admin_purpose_org": "非営利団体・支援団体での使用",
"admin_purpose_personal": "個人利用、家族、友人との利用",
"burnAfterReading_linkBurnAfterReading": "一度だけ表示した後に自動で削除",
"feedback_about": "これを読んでいるのは、特定のアクションの実行時にCryptPadがウェブページのリクエストを送信している理由が気になるからだと思います。",
"burnAfterReading_warningLink": "パッドを自動削除に設定しました。リンクを受け取った相手がリンクを開くと、パッドは一度だけ表示され、その後削除されます。",
"burnAfterReading_warningAccess": "このドキュメントは自動的に削除されます。下のボタンをクリックするとコンテンツが自動的に表示され、その後で削除されます。ドキュメントを表示した後でウィンドウを閉じると、二度とドキュメントにアクセスすることはできません。準備が出来ていない場合は、ドキュメントを表示する前にこのウィンドウを閉じて、後ほどアクセスしてください。",
"form_sort_hint": "項目を優先順位1が最も高く{0}が最も低い)に従って並べてください。",
"canvas_brush": "ペン",
"share_versionHash": "ドキュメントの選択したバージョンを閲覧モードで共有します。それにより、このドキュメントの全てのバージョンへの<b>読み取り専用アクセス</b>も可能になります。",
"history_cantRestore": "復元に失敗しました。接続が切れています。",
"todo_move": "タスクリストはCryptDriveのカンバン「<b>{0}</b>」に移動しました。",
"info_imprintFlavour": "<a>このインスタンスの管理者に関する法的情報</a>。",
"settings_safeLinkDefault": "セーフリンクは既定で有効になっています。ブラウザーのアドレスバーではなく、<i></i> <b>共有</b>メニューを使ってリンクをコピーしてください。",
"comments_notification": "<b>{1}</b>でのあなたのコメント「{0}」に対する返信",
"infobar_versionHash": "このドキュメントの過去のバージョンを閲覧しています({0})。",
"history_fastNext": "次の編集セッション",
"history_fastPrev": "以前の編集セッション",
"unableToDisplay": "ドキュメントを表示できません。Escキーを押してページの再読み込みを行ってください。問題が継続する場合は、サポートに連絡してください。",
"snapshots_cantMake": "スナップショットを作成できませんでした。接続が切れています。",
"snapshots_notFound": "ドキュメントの履歴が削除されたため、スナップショットは存在しません。",
"snapshot_error_exists": "このバージョンのスナップショットは既に存在します",
"calendar_dateTimeRange": "{0} {1} - {2}",
"toolbar_degraded": "現在{0}人以上がこのドキュメントを編集しています。パフォーマンスの改善のため、ユーザーリストとチャットを無効に設定しました。",
"oo_lostEdits": "新しいデータと同期したため、保存されていない編集箇所を復元することができませんでした。",
"pad_settings_comments": "コメントを既定で表示するか隠すかを選択してください。",
"pad_settings_outline": "目次を既定で表示するか隠すかを選択してください。",
"pad_settings_width_large": "最大幅",
"offlineError": "データを同期できないため、このページは現在表示できません。サービスへの接続が復旧すると読み込みを継続します。",
"share_noContactsOffline": "現在オフラインです。連絡先にアクセスすることはできません。",
"access_offline": "現在オフラインです。管理画面にアクセスすることはできません。",
"admin_support_last": "アップデートした日時: ",
"admin_support_first": "作成日時: ",
"contacts_confirmCancel": "<b>{0}</b>との連絡先リクエストをキャンセルしてよろしいですか?",
"history_trimPrompt": "このドキュメントは{0}の履歴があり、読み込みを遅くしている恐れがあります。必要でない場合は、履歴の削除を検討してください。",
"reminder_date": "<b>{0}</b>が{1}にあります",
"calendar_more": "あと{0}個",
"reminder_time": "<b>{0}</b>が今日の{1}にあります",
"form_answerWarning": "本人であることが確認されていません"
}

@ -287,7 +287,7 @@
"fm_info_template": "Contains all the pads stored as templates and that you can re-use when you create a new pad.",
"fm_info_recent": "These pads have recently been opened or modified by you or people you collaborate with.",
"fm_info_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_anonymous": "You are not logged in so your documents will expire after {0} days. Clearing your browser's history may make them disappear.<br><a href=\"/register/\">Sign up</a> (no personal information required) or <a href=\"/login/\">Log in</a> to store them in your drive indefinitely. <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">Read more about registered accounts</a>.",
"fm_info_anonymous": "You are not logged in so your documents will expire after {0} days. Clearing your browser's history may make them disappear.<br><a href=\"/register/\">Sign up</a> (no personal information required) or <a href=\"/login/\">Log in</a> to store them in your drive indefinitely. <a href=\"#docs\">Read more about registered accounts</a>.",
"fm_info_sharedFolder": "This is a shared folder. You're not logged in so you can only access it in read-only mode.<br><a href=\"/register/\">Sign up</a> or <a href=\"/login/\">Log in</a> to be able to import it to your CryptDrive and to modify it.",
"fm_info_owned": "You are the owner of the pads displayed here. This means you can remove them permanently from the server whenever you want. If you do so, other users won't be able to access them anymore.",
"fm_error_cantPin": "Internal server error. Please reload the page and try again.",

@ -414,7 +414,7 @@
"fm_viewListButton": "Lijstweergave",
"fm_info_owned": "U bent de eigenaar van de werkomgevingen die hier zijn weergegeven. Dit betekent dat u ze voorgoed van de server kunt verwijderen. Als u dat doet, zijn ze niet meer toegankelijk voor andere gebruikers.",
"fm_info_sharedFolder": "Dit is een gedeelde map. U bent niet ingelogd, dus u kunt de inhoud alleen lezen. U kunt zich <br><a href=\"/register/\">registreren</a> of <a href=\"/login/\">inloggen</a> om het in uw CryptDrive te importeren en het te wijzigen.",
"fm_info_anonymous": "U bent niet ingelogd, dus uw documenten zullen verlopen na {0} dagen. Ze kunnen ook verdwijnen als uw browsergeschiedenis gewist wordt. <br><a href=\"/register/\">Registreren</a> (geen persoonlijke gegevens vereist) of <a href=\"/login/\">Inloggen</a> om ze voor altijd in uw drive op te slaan. <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">Lees meer over geregistreerde accounts</a>.",
"fm_info_anonymous": "U bent niet ingelogd, dus uw documenten zullen verlopen na {0} dagen. Ze kunnen ook verdwijnen als uw browsergeschiedenis gewist wordt. <br><a href=\"/register/\">Registreren</a> (geen persoonlijke gegevens vereist) of <a href=\"/login/\">Inloggen</a> om ze voor altijd in uw drive op te slaan. <a href=\"#docs\">Lees meer over geregistreerde accounts</a>.",
"fm_info_trash": "Leeg uw prullenbak om opslagruimte vrij te maken in uw CryptDrive.",
"fm_info_recent": "Deze werkomgevingen zijn onlangs geopend of gewijzigd door u of door mensen met wie u samenwerkt.",
"fm_info_template": "Dit bevat alle werkomgevingen die zijn opgeslagen als sjablonen en die je kunt gebruiken voor een nieuwe werkomgeving.",

@ -138,7 +138,7 @@
"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_trash": "Empty your trash to free space in your CryptDrive.",
"fm_info_anonymous": "Você não está logado, então estes documentos vão expirar em {0} dias. Limpar o histórico do seu navegador pode fazê-los desaparecer. <br><a href=\"/register/\">Registre-se</a> (nenhuma informação pessoal será requerida) ou <a href=\"/login/\">Faça login</a> para guarda-lo no seu disco. <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">Leia mais sobre contas registradas</a>.",
"fm_info_anonymous": "Você não está logado, então estes documentos vão expirar em {0} dias. Limpar o histórico do seu navegador pode fazê-los desaparecer. <br><a href=\"/register/\">Registre-se</a> (nenhuma informação pessoal será requerida) ou <a href=\"/login/\">Faça login</a> para guarda-lo no seu disco. <a href=\"#docs\">Leia mais sobre contas registradas</a>.",
"fm_error_cantPin": "Erro interno do servidor. Por favor recarregue a página e tente novamente.",
"fc_newfolder": "Nova pasta",
"fc_rename": "Renomear",

@ -118,7 +118,7 @@
"fm_info_root": "Crează câte foldere tip cuib ai nevoie pentru a-ți sorta fișierele.",
"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_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=\"/register/\">Înscrie-te</a> sau <a href=\"/login/\">Loghează-te</a> pentru a le salva.",
"fc_newfolder": "Folder nou",
"fc_rename": "Redenumește",
"fc_open": "Deschide",

@ -299,7 +299,7 @@
"printCSS": "Пользовательские настройки вида (CSS):",
"viewEmbedTag": "Чтобы встроить данный документ, вставьте iframe в нужную страницу. Вы можете настроить внешний вид используя CSS и HTML атрибуты.",
"fm_ownedPadsName": "Собственный",
"fm_info_anonymous": "Вы не вошли в учетную запись, поэтому срок действия ваших пэдов истечет через 3 месяца (<a href=\"https://blog.cryptpad.fr/2017/05/17/You-gotta-log-in/\" target=\"_blank\">find out more</a>). Они хранятся в вашем браузере, поэтому очистка истории может привести к их исчезновению..<br><a href=\"/register/\">Sign up</a> or <a href=\"/login/\">Log in</a> to keep them alive.<br>",
"fm_info_anonymous": "Вы не вошли в учетную запись, поэтому срок действия ваших пэдов истечет через 3 месяца. Они хранятся в вашем браузере, поэтому очистка истории может привести к их исчезновению..<br><a href=\"/register/\">Sign up</a> or <a href=\"/login/\">Log in</a> to keep them alive.",
"fm_burnThisDriveButton": "Удалить всю информацию, хранящуюся от CryptPad в браузере",
"fm_tags_used": "Количество использований",
"fm_restoreDrive": "Восстановление прежнего состояния диска. Для достижения наилучших результатов не вносите изменения в диск, пока этот процесс не будет завершен.",

@ -139,7 +139,7 @@
"fm_info_root": "在此建立任何巢狀目錄夾以便於整理分類你的檔案。",
"fm_info_template": "包含所有工作檔案已存成模版,便於讓你在建立新工作檔案時套用。",
"fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間",
"fm_info_anonymous": "您没有登录,所以您的文档将在{0}天后过期。清除你的浏览器历史记录可能会使它们消失。<br><a href=\"/register/\">注册</a> (无需个人信息) 或<a href=\"/login/\">登录</a>以无限期地把它们储存在你的硬盘里。 <a href=\"https://docs.cryptpad.fr/en/user_guide/user_account.html#account-types\" target=\"_blank\">阅读更多关于注册帐户</a>。",
"fm_info_anonymous": "您没有登录,所以您的文档将在{0}天后过期。清除你的浏览器历史记录可能会使它们消失。<br><a href=\"/register/\">注册</a> (无需个人信息) 或<a href=\"/login/\">登录</a>以无限期地把它们储存在你的硬盘里。 <a href=\"#docs\">阅读更多关于注册帐户</a>。",
"fm_error_cantPin": "內部伺服器出錯,請重新載入本頁並再試一次。",
"fc_newfolder": "新資料夾",
"fc_rename": "重新命名",

@ -194,7 +194,7 @@ define([
};
Messages.convertPage = "Convert"; // XXX
Messages.convert_hint = "Pick the file you want to convert. The list of output format will be visible afterward.";
Messages.convert_hint = "Pick the file you want to convert. The list of output format will be visible afterward."; // XXX
var createToolbar = function () {
var displayed = ['useradmin', 'newpad', 'limit', 'pageTitle', 'notifications'];

@ -470,7 +470,11 @@
//padding: 10px;
}
.cp-form-creator-results-export {
margin-bottom: 20px;
}
.cp-form-creator-results-content {
padding-bottom: 100px;
.cp-form-block {
background: @cp_form-bg1;
padding: 10px;

@ -80,8 +80,11 @@ define([
timeFormat = "h:i K";
}
var MAX_OPTIONS = 15; // XXX
var MAX_ITEMS = 10; // XXX
// multi-line radio, checkboxes, and possibly other things have a max number of items
// we'll consider increasing this restriction if people are unhappy with it
// but as a general rule we expect users will appreciate having simpler questions
var MAX_OPTIONS = 15;
var MAX_ITEMS = 10;
var saveAndCancelOptions = function (getRes, cb) {
// Cancel changes

@ -289,7 +289,7 @@ define([
var fileHost = privateData.fileHost || privateData.origin;
var src = fileHost + Hash.getBlobPathFromHex(secret.channel);
var key = Hash.encodeBase64(secret.keys.cryptKey);
var mt = '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '"></media-tag>';
var mt = UI.mediaTag(src, key).outerHTML;
editor.replaceSelection(mt);
}
};

@ -0,0 +1,4 @@
This file is intended to be used as a log of what third-party source we have vendored, where we got it, and what modifications we have made to it (if any).
* [turndown v7.1.1](https://github.com/mixmark-io/turndown/releases/tag/v7.1.1) built from unmodified source as per its build scripts.

@ -1,7 +1,7 @@
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
typeof define === 'function' && define.amd ? define(factory) :
(global = global || self, global.TurndownService = factory());
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.TurndownService = factory());
}(this, (function () { 'use strict';
function extend (destination) {
@ -18,6 +18,17 @@
return Array(count + 1).join(character)
}
function trimLeadingNewlines (string) {
return string.replace(/^\n*/, '')
}
function trimTrailingNewlines (string) {
// avoid match-at-end regexp bottleneck, see #370
var indexEnd = string.length;
while (indexEnd > 0 && string[indexEnd - 1] === '\n') indexEnd--;
return string.substring(0, indexEnd)
}
var blockElements = [
'ADDRESS', 'ARTICLE', 'ASIDE', 'AUDIO', 'BLOCKQUOTE', 'BODY', 'CANVAS',
'CENTER', 'DD', 'DIR', 'DIV', 'DL', 'DT', 'FIELDSET', 'FIGCAPTION', 'FIGURE',
@ -303,19 +314,15 @@
},
replacement: function (content) {
if (!content.trim()) return ''
if (!content) return ''
content = content.replace(/\r?\n|\r/g, ' ');
var extraSpace = /^`|^ .*?[^ ].* $|`$/.test(content) ? ' ' : '';
var delimiter = '`';
var leadingSpace = '';
var trailingSpace = '';
var matches = content.match(/`+/gm);
if (matches) {
if (/^`/.test(content)) leadingSpace = ' ';
if (/`$/.test(content)) trailingSpace = ' ';
while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';
}
var matches = content.match(/`+/gm) || [];
while (matches.indexOf(delimiter) !== -1) delimiter = delimiter + '`';
return delimiter + leadingSpace + content + trailingSpace + delimiter
return delimiter + extraSpace + content + extraSpace + delimiter
}
};
@ -459,7 +466,7 @@
if (!element.firstChild || isPre(element)) return
var prevText = null;
var prevVoid = false;
var keepLeadingWs = false;
var prev = null;
var node = next(prev, element, isPre);
@ -469,7 +476,7 @@
var text = node.data.replace(/[ \r\n\t]+/g, ' ');
if ((!prevText || / $/.test(prevText.data)) &&
!prevVoid && text[0] === ' ') {
!keepLeadingWs && text[0] === ' ') {
text = text.substr(1);
}
@ -489,11 +496,14 @@
}
prevText = null;
prevVoid = false;
} else if (isVoid(node)) {
// Avoid trimming space around non-block, non-BR void elements.
keepLeadingWs = false;
} else if (isVoid(node) || isPre(node)) {
// Avoid trimming space around non-block, non-BR void elements and inline PRE.
prevText = null;
prevVoid = true;
keepLeadingWs = true;
} else if (prevText) {
// Drop protection if set previously.
keepLeadingWs = false;
}
} else {
node = remove(node);
@ -609,7 +619,7 @@
var HTMLParser = canParseHTMLNatively() ? root.DOMParser : createHTMLParser();
function RootNode (input) {
function RootNode (input, options) {
var root;
if (typeof input === 'string') {
var doc = htmlParser().parseFromString(
@ -626,7 +636,8 @@
collapseWhitespace({
element: root,
isBlock: isBlock,
isVoid: isVoid
isVoid: isVoid,
isPre: options.preformattedCode ? isPreOrCode : null
});
return root
@ -638,11 +649,15 @@
return _htmlParser
}
function Node (node) {
function isPreOrCode (node) {
return node.nodeName === 'PRE' || node.nodeName === 'CODE'
}
function Node (node, options) {
node.isBlock = isBlock(node);
node.isCode = node.nodeName.toLowerCase() === 'code' || node.parentNode.isCode;
node.isCode = node.nodeName === 'CODE' || node.parentNode.isCode;
node.isBlank = isBlank(node);
node.flankingWhitespace = flankingWhitespace(node);
node.flankingWhitespace = flankingWhitespace(node, options);
return node
}
@ -656,28 +671,39 @@
)
}
function flankingWhitespace (node) {
var leading = '';
var trailing = '';
function flankingWhitespace (node, options) {
if (node.isBlock || (options.preformattedCode && node.isCode)) {
return { leading: '', trailing: '' }
}
if (!node.isBlock) {
var hasLeading = /^\s/.test(node.textContent);
var hasTrailing = /\s$/.test(node.textContent);
var blankWithSpaces = node.isBlank && hasLeading && hasTrailing;
var edges = edgeWhitespace(node.textContent);
if (hasLeading && !isFlankedByWhitespace('left', node)) {
leading = ' ';
}
// abandon leading ASCII WS if left-flanked by ASCII WS
if (edges.leadingAscii && isFlankedByWhitespace('left', node, options)) {
edges.leading = edges.leadingNonAscii;
}
if (!blankWithSpaces && hasTrailing && !isFlankedByWhitespace('right', node)) {
trailing = ' ';
}
// abandon trailing ASCII WS if right-flanked by ASCII WS
if (edges.trailingAscii && isFlankedByWhitespace('right', node, options)) {
edges.trailing = edges.trailingNonAscii;
}
return { leading: leading, trailing: trailing }
return { leading: edges.leading, trailing: edges.trailing }
}
function isFlankedByWhitespace (side, node) {
function edgeWhitespace (string) {
var m = string.match(/^(([ \t\r\n]*)(\s*))[\s\S]*?((\s*?)([ \t\r\n]*))$/);
return {
leading: m[1], // whole string for whitespace-only strings
leadingAscii: m[2],
leadingNonAscii: m[3],
trailing: m[4], // empty for whitespace-only strings
trailingNonAscii: m[5],
trailingAscii: m[6]
}
}
function isFlankedByWhitespace (side, node, options) {
var sibling;
var regExp;
var isFlanked;
@ -693,6 +719,8 @@
if (sibling) {
if (sibling.nodeType === 3) {
isFlanked = regExp.test(sibling.nodeValue);
} else if (options.preformattedCode && sibling.nodeName === 'CODE') {
isFlanked = false;
} else if (sibling.nodeType === 1 && !isBlock(sibling)) {
isFlanked = regExp.test(sibling.textContent);
}
@ -701,8 +729,6 @@
}
var reduce = Array.prototype.reduce;
var leadingNewLinesRegExp = /^\n*/;
var trailingNewLinesRegExp = /\n*$/;
var escapes = [
[/\\/g, '\\\\'],
[/\*/g, '\\*'],
@ -734,6 +760,7 @@
linkStyle: 'inlined',
linkReferenceStyle: 'full',
br: ' ',
preformattedCode: false,
blankReplacement: function (content, node) {
return node.isBlock ? '\n\n' : ''
},
@ -766,7 +793,7 @@
if (input === '') return ''
var output = process.call(this, new RootNode(input));
var output = process.call(this, new RootNode(input, this.options));
return postProcess.call(this, output)
},
@ -855,7 +882,7 @@
function process (parentNode) {
var self = this;
return reduce.call(parentNode.childNodes, function (output, node) {
node = new Node(node);
node = new Node(node, self.options);
var replacement = '';
if (node.nodeType === 3) {
@ -908,31 +935,21 @@
}
/**
* Determines the new lines between the current output and the replacement
* Joins replacement to the current output with appropriate number of new lines
* @private
* @param {String} output The current conversion output
* @param {String} replacement The string to append to the output
* @returns The whitespace to separate the current output and the replacement
* @returns Joined output
* @type String
*/
function separatingNewlines (output, replacement) {
var newlines = [
output.match(trailingNewLinesRegExp)[0],
replacement.match(leadingNewLinesRegExp)[0]
].sort();
var maxNewlines = newlines[newlines.length - 1];
return maxNewlines.length < 2 ? maxNewlines : '\n\n'
}
function join (string1, string2) {
var separator = separatingNewlines(string1, string2);
// Remove trailing/leading newlines and replace with separator
string1 = string1.replace(trailingNewLinesRegExp, '');
string2 = string2.replace(leadingNewLinesRegExp, '');
function join (output, replacement) {
var s1 = trimTrailingNewlines(output);
var s2 = trimLeadingNewlines(replacement);
var nls = Math.max(output.length - s1.length, replacement.length - s2.length);
var separator = '\n\n'.substring(0, nls);
return string1 + separator + string2
return s1 + separator + s2
}
/**

@ -1327,6 +1327,7 @@ define([
$(waitFor());
}).nThen(function(waitFor) {
Ckeditor.config.toolbarCanCollapse = true;
Ckeditor.config.language = Messages._getLanguage();
if (screen.height < 800) {
Ckeditor.config.toolbarStartupExpanded = false;
$('meta[name=viewport]').attr('content',

@ -955,7 +955,7 @@ define([
var fileHost = privateData.fileHost || privateData.origin;
var src = fileHost + Hash.getBlobPathFromHex(secret.channel);
var key = Hash.encodeBase64(secret.keys.cryptKey);
var mt = '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '"></media-tag>';
var mt = UI.mediaTag(src, key).outerHTML;
APP.editor.replaceSelection(mt);
}
};
@ -1235,7 +1235,7 @@ define([
common.openFilePicker(pickerCfg, function (data) {
if (data.type === 'file' && APP.editor) {
common.setPadAttribute('atime', +new Date(), null, data.href);
var mt = '<media-tag src="' + data.src + '" data-crypto-key="cryptpad:' + data.key + '"></media-tag>';
var mt = UI.mediaTag(data.src, data.key).outerHTML;
APP.editor.replaceSelection(mt);
return;
}

@ -47,7 +47,11 @@ define([
var I_REALLY_WANT_TO_USE_MY_EMAIL_FOR_MY_USERNAME = false;
var registerClick = function () {
var uname = $uname.val();
var uname = $uname.val().trim();
// trim whitespace surrounding the username since it is otherwise included in key derivation
// most people won't realize that its presence is significant
$uname.val(uname);
var passwd = $passwd.val();
var confirmPassword = $confirm.val();

@ -556,7 +556,7 @@ define([
var fileHost = privateData.fileHost || privateData.origin;
var src = fileHost + Hash.getBlobPathFromHex(secret.channel);
var key = Hash.encodeBase64(secret.keys.cryptKey);
var mt = '<media-tag src="' + src + '" data-crypto-key="cryptpad:' + key + '"></media-tag>';
var mt = UI.mediaTag(src, key).outerHTML;
editor.replaceSelection(mt);
}
};

Loading…
Cancel
Save