diff --git a/CHANGELOG.md b/CHANGELOG.md index 8c602e292..0d1c2d4d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,12 +13,22 @@ * display users cursor colors in the toolbar next to their name * handle errors when migrating in embed mode * change the method we use to lock the whole sheet since OnlyOffice changed their internal API's behaviour + * **soft release of OnlyOffice presentations and docs** + * if you've been using them, tell your users to export them before they break + * we still don't recommend that you use either editor! * bad channel IDs stored in your drive or accessed via bad links (corrupted somehow) * don't try to join invalid channels * don't try to get their metadata * prompt premium users to cancel their subscriptions before deleting their accounts * check that headers for XLSX export are correctly set via the checkup app * guard against some type errors in the support page +* remove default privacy policy +* remove HTML from most translations +* localize links to the docs where a translation exists +* remove redundant link from OpenCollective popup +* guard against a type error when copying a pad in nodrive mode +* warn premium users that their subscription won't be cancelled automatically when they delete their account +* implement admin-broadcast features # 4.3.1 @@ -28,7 +38,7 @@ This minor release addresses some bugs discovered after deploying and tagging 4. * Our 4.2.0 update introduced a new internal format for spreadsheets which broke support for spreadsheet templates using the older format. This release implements a compatibility layer. * We fixed some minor bugs in our rich text editor. Section links in the table of contents now navigate correctly. Adding a comment to a link no longer prevents clicking on that link. * A race condition that caused poll titles to reset occasionally has been fixed. -* We've added a little bit of telemetry to tell our server when a newly registered user opens the new user guide which is automatically added to their drive. We're considering either rewriting or removing this guide, so it's helpful to be able to determine how often people actually read it. +* We've added a little bit of telemetry to tell the application server when a newly registered user opens the new user guide which is automatically added to their drive. We're considering either rewriting or removing this guide, so it's helpful to be able to determine how often people actually read it. * An error introduced in 4.3.0 was preventing the creation of new teams. It's been fixed. * 4.3.0 temporarily broke the sheet editor for iPad users. Migrations to a new internal format that were run while the editor was in a bad state produced some invalid data that prevented sheets from loading correctly. This release improves the platforms ability to recover from bad states like this and improves its ability to detect the kind of errors we observed. diff --git a/customize.dist/pages.js b/customize.dist/pages.js index a966da524..c75cce3f9 100644 --- a/customize.dist/pages.js +++ b/customize.dist/pages.js @@ -12,6 +12,36 @@ define([ return e; }; + Pages.externalLink = function (el, href) { + if (!el) { return el; } + el.setAttribute("rel", "noopener noreferrer"); + el.setAttribute("target", "_blank"); + if (typeof(href) === 'string') { + el.setAttribute("href", href); + } + return el; + }; + + // this rewrites URLS to point to the appropriate translation: + // French, German, or English as a default + var documentedLanguages = ['en', 'fr', 'de']; + Pages.localizeDocsLink = function (href) { + try { + var lang = Msg._getLanguage(); + if (documentedLanguages.indexOf(lang) > 0) { + return href.replace('/en/', '/' + lang + '/'); + } + } catch (err) { + console.error(err); + // if it fails just use the default href (English) + } + return href; + }; + + Pages.documentationLink = function (el, href) { + return Pages.externalLink(el, Pages.localizeDocsLink(href)); + }; + var languageSelector = function () { var options = []; var languages = Msg._languages; @@ -45,6 +75,7 @@ define([ }; var footLink = function (ref, loc, text) { + if (!ref) { return; } var attrs = { href: ref, }; @@ -62,7 +93,7 @@ define([ var imprintUrl = AppConfig.imprint && (typeof(AppConfig.imprint) === "boolean" ? '/imprint.html' : AppConfig.imprint); - Pages.versionString = "v4.3.1"; + Pages.versionString = "v4.4.0"; // used for the about menu Pages.imprintLink = AppConfig.imprint ? footLink(imprintUrl, 'imprint') : undefined; @@ -71,6 +102,17 @@ define([ Pages.docsLink = footLink('https://docs.cryptpad.fr', 'docs_link'); Pages.infopageFooter = function () { + var terms = footLink('/terms.html', 'footer_tos'); // FIXME this should be configurable like the other legal pages + var legalFooter; + + // only display the legal part of the footer if it has content + if (terms || Pages.privacyLink || Pages.imprintLink) { + legalFooter = footerCol('footer_legal', [ + Pages.privacyLink, + Pages.imprintLink, + ]); + } + return h('footer', [ h('div.container', [ h('div.row', [ @@ -97,11 +139,7 @@ define([ footLink('https://github.com/xwiki-labs/cryptpad/wiki/Contributors', 'footer_team'), footLink('http://www.xwiki.com', null, 'XWiki SAS'), ]), - footerCol('footer_legal', [ - footLink('/terms.html', 'footer_tos'), - Pages.privacyLink, - Pages.imprintLink, - ]), + legalFooter, ]) ]), h('div.cp-version-footer', [ diff --git a/customize.dist/pages/index.js b/customize.dist/pages/index.js index f15d1819b..3257126e9 100644 --- a/customize.dist/pages/index.js +++ b/customize.dist/pages/index.js @@ -80,6 +80,12 @@ define([ }); } + var supportText = Pages.setHTML(h('span'), Msg.home_support); + Pages.documentationLink(supportText.querySelector('a'), "https://docs.cryptpad.fr/en/how_to_contribute.html"); + + var opensource = Pages.setHTML(h('p'), Msg.home_opensource); + Pages.externalLink(opensource.querySelector('a'), "https://github.com/xwiki-labs/cryptpad"); + var blocks = [ h('div.row.cp-page-section', [ h('div.col-sm-6', @@ -103,7 +109,7 @@ define([ h('div.row.cp-page-section', [ h('div.col-sm-6', [ h('h2', Msg.home_opensource_title), - Pages.setHTML(h('p'), Msg.home_opensource), + opensource, h('img.small-logo.cp-img-invert', { src: '/customize/images/logo_AGPLv3.svg', alt: 'APGL3 License Logo' @@ -111,7 +117,7 @@ define([ ]), h('div.col-sm-6', [ h('h2', Msg.home_support_title), - Pages.setHTML(h('span'), Msg.home_support), + supportText, subscribeButton, Pages.crowdfundingButton(function () { Feedback.send('HOME_SUPPORT_CRYPTPAD'); diff --git a/customize.dist/pages/privacy.js b/customize.dist/pages/privacy.js deleted file mode 100644 index 84a43ad3f..000000000 --- a/customize.dist/pages/privacy.js +++ /dev/null @@ -1,36 +0,0 @@ -define([ - '/common/hyperscript.js', - '/customize/messages.js', - '/customize/pages.js' -], function (h, Msg, Pages) { - return function () { - return h('div#cp-main', [ - Pages.infopageTopbar(), - h('div.container.cp-container.cp-privacy',[ - h('div.row.cp-page-title', h('h1', Msg.policy_title)), - h('h2', Msg.policy_whatweknow), - Pages.setHTML(h('p'), Msg.policy_whatweknow_p1), - - h('h2', Msg.policy_howweuse), - h('p', Msg.policy_howweuse_p1), - h('p', Msg.policy_howweuse_p2), - - h('h2', Msg.policy_whatwetell), - h('p', Msg.policy_whatwetell_p1), - - h('h2', Msg.policy_links), - h('p', Msg.policy_links_p1), - - h('h2', Msg.policy_ads), - h('p', Msg.policy_ads_p1), - - h('h2', Msg.policy_choices), - h('p', Msg.policy_choices_open), - Pages.setHTML(h('p'), Msg.policy_choices_vpn), - ]), - Pages.infopageFooter() - ]); - }; - -}); - diff --git a/customize.dist/pages/register.js b/customize.dist/pages/register.js index c9e28bed4..1cdc6e356 100644 --- a/customize.dist/pages/register.js +++ b/customize.dist/pages/register.js @@ -9,6 +9,13 @@ define([ return function () { var urlArgs = Config.requireConf.urlArgs; + var tos = $(UI.createCheckbox('accept-terms')).find('.cp-checkmark-label').append(Msg.register_acceptTerms).parent()[0]; + $(tos).find('a').attr({ + href: '/terms.html', + target: '_blank', + tabindex: '-1', + }); + return [h('div#cp-main', [ Pages.infopageTopbar(), h('div.container.cp-container', [ @@ -47,7 +54,7 @@ define([ UI.createCheckbox('import-recent', Msg.register_importRecent, true) ]), h('div.checkbox-container', [ - $(UI.createCheckbox('accept-terms')).find('.cp-checkmark-label').append(Msg.register_acceptTerms).parent()[0] + tos, ]), h('button#register', Msg.login_register) ]) diff --git a/customize.dist/pages/what-is-cryptpad.js b/customize.dist/pages/what-is-cryptpad.js index b5d2f8ac4..99e675c0f 100644 --- a/customize.dist/pages/what-is-cryptpad.js +++ b/customize.dist/pages/what-is-cryptpad.js @@ -17,6 +17,9 @@ define([ }; return function () { + var xwiki_info = Pages.setHTML(h('span'), Msg.whatis_xwiki_info); + Pages.externalLink(xwiki_info.querySelector('a'), "https://xwiki.com"); + return h('div#cp-main', [ Pages.infopageTopbar(), h('div.container.cp-container', [ @@ -52,7 +55,7 @@ define([ h('div.row.cp-page-section', [ h('div.col-md-6', [ Pages.setHTML(h('h2'), Msg.whatis_drive), - Pages.setHTML(h('spam'), Msg.whatis_drive_info), + Pages.setHTML(h('span'), Msg.whatis_drive_info), ]), h('div.col-md-6', [ h('img.cp-shadow', { @@ -91,7 +94,7 @@ define([ h('div.row.cp-page-section', [ h('div.col-md-6', [ Pages.setHTML(h('h2'), Msg.whatis_xwiki), - Pages.setHTML(h('spam'), Msg.whatis_xwiki_info), + xwiki_info, ]), h('div.col-md-6.small-logos', [ h('img', { diff --git a/customize.dist/privacy.html b/customize.dist/privacy.html deleted file mode 100644 index f1cf1b429..000000000 --- a/customize.dist/privacy.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - - CryptPad: Collaboration suite, encrypted and open-source - - - - - - - - diff --git a/customize.dist/src/less2/pages/page-feedback.less b/customize.dist/src/less2/pages/page-feedback.less new file mode 100644 index 000000000..d55eddd7b --- /dev/null +++ b/customize.dist/src/less2/pages/page-feedback.less @@ -0,0 +1,20 @@ +@import (reference) "../include/colortheme-all.less"; +@import (reference) "../include/font.less"; + +html, body { + .font_main(); + margin: 0px; + padding: 0px; + background-color: @cp_static-bg !important; + color: @cryptpad_text_col; + font-family: "IBM Plex Mono"; + a { + color: @cryptpad_color_link; + } +} +body { + width: 50%; + min-width: 650px; + margin: auto; +} + diff --git a/lib/commands/metadata.js b/lib/commands/metadata.js index 2fdb41c8a..9b6a23e02 100644 --- a/lib/commands/metadata.js +++ b/lib/commands/metadata.js @@ -14,14 +14,13 @@ Data.getMetadataRaw = function (Env, channel /* channelName */, _cb) { // return synthetic metadata for admin broadcast channels as a safety net // in case anybody manages to write metadata - /* - if (channel.length === HK.ADMIN_CHANNEL_LENGTH) { // XXX + if (channel.length === HK.ADMIN_CHANNEL_LENGTH) { return void cb(void 0, { channel: channel, creation: +new Date(), owners: Env.admins, }); - } */ + } var cached = Env.metadata_cache[channel]; if (HK.isMetadataMessage(cached)) { @@ -152,7 +151,7 @@ Data.setMetadata = function (Env, safeKey, data, cb, Server) { const metadata_cache = Env.metadata_cache; // update the cached metadata - metadata_cache[channel] = metadata; // XXX guard against malicious takeover of the broadcast channel + metadata_cache[channel] = metadata; // it's easy to check if the channel is restricted const isRestricted = metadata.restricted; diff --git a/lib/decrees.js b/lib/decrees.js index 4eb1dff85..fca8fb331 100644 --- a/lib/decrees.js +++ b/lib/decrees.js @@ -139,6 +139,8 @@ var args_isMaintenance = function (args) { (args[0] === "" || (isNumber(args[0].end) && isNumber(args[0].start))); }; +// we anticipate that we'll add language-specific surveys in the future +// whenever that happens we can relax validation a bit to support more formats var makeBroadcastSetter = function (attr, validation) { return function (Env, args) { if ((validation && !validation(args)) && !args_isString(args)) { @@ -156,7 +158,7 @@ var makeBroadcastSetter = function (attr, validation) { commands.SET_LAST_BROADCAST_HASH = makeBroadcastSetter('lastBroadcastHash'); // CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['SET_SURVEY_URL', [url]]], console.log) -commands.SET_SURVEY_URL = makeBroadcastSetter('surveyURL'); // XXX anticipate language-specific surveys +commands.SET_SURVEY_URL = makeBroadcastSetter('surveyURL'); // CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['SET_MAINTENANCE', [{start: +Date, end: +Date}]]], console.log) // CryptPad_AsyncStore.rpc.send('ADMIN', [ 'ADMIN_DECREE', ['SET_MAINTENANCE', [""]]], console.log) diff --git a/lib/hk-util.js b/lib/hk-util.js index cb0d6df9c..7c244c174 100644 --- a/lib/hk-util.js +++ b/lib/hk-util.js @@ -686,7 +686,7 @@ const handleGetHistory = function (Env, Server, seq, userId, parsed) { // If we're asking for a specific version (lastKnownHash) but we receive an // ENOENT, this is not a pad creation so we need to abort. - if (err && err.code === 'ENOENT' && lastKnownHash) { // XXX && lastKnownHash !== -1 + if (err && err.code === 'ENOENT' && lastKnownHash) { /* This informs clients that the pad they're trying to load was deleted by its owner. The user in question might be reconnecting or might have loaded the document from their cache. @@ -918,8 +918,9 @@ HK.onChannelMessage = function (Env, Server, channel, msgStruct, cb) { // more straightforward and reliable. if (Array.isArray(id) && id[2] && id[2] === channel.lastSavedCp) { // Reject duplicate checkpoints - // XXX not an error? the checkpoint is already here so we can assume it's stored - return void cb('DUPLICATE'); + return void cb(); + // not an error? the checkpoint is already here so we can assume it's stored + //return void cb('DUPLICATE'); } } diff --git a/package-lock.json b/package-lock.json index 3b0286e25..7e80e9592 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "cryptpad", - "version": "4.3.1", + "version": "4.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 3b540387f..b1a9a093a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "cryptpad", "description": "realtime collaborative visual editor with zero knowlege server", - "version": "4.3.1", + "version": "4.4.0", "license": "AGPL-3.0+", "repository": { "type": "git", diff --git a/scripts/find-html-translations.js b/scripts/find-html-translations.js index 8c93a6f8f..dabdbac4b 100644 --- a/scripts/find-html-translations.js +++ b/scripts/find-html-translations.js @@ -3,6 +3,22 @@ var EN = require("../www/common/translations/messages.json"); var simpleTags = [ '
', '
', + '
', + '', + '', + + // FIXME + "", + '

', + '

', + + // FIXME register_notes + '', + '
  • ', + '
  • ', + '', + '', ]; ['a', 'b', 'em', 'p', 'i'].forEach(function (tag) { @@ -10,18 +26,71 @@ var simpleTags = [ simpleTags.push(''); }); -Object.keys(EN).forEach(function (k) { - var s = EN[k]; - if (typeof(s) !== 'string') { return; } - var usesHTML; +// these keys are known to be problematic +var KNOWN_ISSUES = [ // FIXME + //'newVersion', + //'fm_info_anonymous', + //'register_notes', +]; + +var processLang = function (map, lang, primary) { + var announced = false; + var announce = function () { + if (announced) { return; } + announced = true; + console.log("NEXT LANGUAGE: ", lang); + }; - s.replace(/<.*?>/g, function (html) { - if (simpleTags.indexOf(html) !== -1) { return; } - usesHTML = true; - console.log("{%s}", html); + Object.keys(map).forEach(function (k) { + if (!EN[k]) { return; } + if (KNOWN_ISSUES.indexOf(k) !== -1) { return; } + + var s = map[k]; + if (typeof(s) !== 'string') { return; } + var usesHTML; + + s.replace(/<.*?>/g, function (html) { + if (simpleTags.indexOf(html) !== -1) { return; } + announce(); + usesHTML = true; + if (!primary) { + console.log("{%s}", html); + } + }); + + if (usesHTML) { + announce(); + console.log("%s", s); + console.log("[%s]\n", k); + } }); +}; + +processLang(EN, 'en', true); - if (usesHTML) { - console.log("[%s] %s\n", k, s); - } +[ + 'ar', + 'bn_BD', + 'ca', + 'de', + 'es', + 'fi', + 'fr', + 'hi', + 'it', + 'ja', + 'nb', + 'nl', + 'pl', + 'pt-br', + 'ro', + 'ru', + 'sv', + 'te', + 'tr', + 'zh', +].forEach(function (lang) { + var map = require("../www/common/translations/messages." + lang + ".json"); + if (!Object.keys(map).length) { return; } + processLang(map, lang); }); diff --git a/server.js b/server.js index 62e144efa..36ca1a425 100644 --- a/server.js +++ b/server.js @@ -201,46 +201,14 @@ app.use("/customize.dist", Express.static(__dirname + '/customize.dist')); app.use(/^\/[^\/]*$/, Express.static('customize')); app.use(/^\/[^\/]*$/, Express.static('customize.dist')); -var serveConfig = (function () { - // if dev mode: never cache - var cacheString = function () { - return (Env.FRESH_KEY? '-' + Env.FRESH_KEY: '') + (Env.DEV_MODE? '-' + (+new Date()): ''); - }; - - var template = function (host) { - return [ - 'define(function(){', - 'var obj = ' + JSON.stringify({ - requireConf: { - waitSeconds: 600, - urlArgs: 'ver=' + Package.version + cacheString(), - }, - removeDonateButton: (config.removeDonateButton === true), - allowSubscriptions: (config.allowSubscriptions === true), - websocketPath: config.externalWebsocketURL, - httpUnsafeOrigin: config.httpUnsafeOrigin, - adminEmail: Env.adminEmail, - adminKeys: Env.admins, - inactiveTime: Env.inactiveTime, - supportMailbox: Env.supportMailbox, - defaultStorageLimit: Env.defaultStorageLimit, - maxUploadSize: Env.maxUploadSize, - premiumUploadSize: Env.premiumUploadSize, - }, null, '\t'), - 'obj.httpSafeOrigin = ' + (function () { - if (config.httpSafeOrigin) { return '"' + config.httpSafeOrigin + '"'; } - if (config.httpSafePort) { - return "(function () { return window.location.origin.replace(/\:[0-9]+$/, ':" + - config.httpSafePort + "'); }())"; - } - return 'window.location.origin'; - }()), - 'return obj', - '});' - ].join(';\n') - }; +// if dev mode: never cache +var cacheString = function () { + return (Env.FRESH_KEY? '-' + Env.FRESH_KEY: '') + (Env.DEV_MODE? '-' + (+new Date()): ''); +}; +var makeRouteCache = function (template, cacheName) { var cleanUp = {}; + var cache = Env[cacheName] = Env[cacheName] || {}; return function (req, res) { var host = req.headers.host.replace(/\:[0-9]+/, ''); @@ -255,73 +223,71 @@ var serveConfig = (function () { // FIXME mutable // we must be able to clear the cache when updating any mutable key // if there's nothing cached for that key... - if (!Env.configCache[cacheKey]) { + if (!cache[cacheKey]) { // generate the response and cache it in memory - Env.configCache[cacheKey] = template(host); + cache[cacheKey] = template(host); // and create a function to conditionally evict cache entries // which have not been accessed in the last 20 seconds cleanUp[cacheKey] = Util.throttle(function () { delete cleanUp[cacheKey]; - delete Env.configCache[cacheKey]; + delete cache[cacheKey]; }, 20000); } // successive calls to this function cleanUp[cacheKey](); - return void res.send(Env.configCache[cacheKey]); - }; -}()); - -var serveBroadcast = (function () { // XXX deduplicate - var cacheString = function () { - return (Env.FRESH_KEY? '-' + Env.FRESH_KEY: '') + (Env.DEV_MODE? '-' + (+new Date()): ''); - }; - - var template = function (host) { - var maintenance = Env.maintenance; - if (maintenance && maintenance.end && maintenance.end < (+new Date())) { - maintenance = undefined; - } - return [ - 'define(function(){', // XXX maybe this could just be JSON - 'return ' + JSON.stringify({ - lastBroadcastHash: Env.lastBroadcastHash, - surveyURL: Env.surveyURL, - maintenance: maintenance - }, null, '\t'), - '});' - ].join(';\n') + return void res.send(cache[cacheKey]); }; +}; - var cleanUp = {}; - - return function (req, res) { - var host = req.headers.host.replace(/\:[0-9]+/, ''); - res.setHeader('Content-Type', 'text/javascript'); - // don't cache anything if you're in dev mode - if (Env.DEV_MODE) { - return void res.send(template(host)); - } - // generate a lookup key for the cache - var cacheKey = host + ':' + cacheString(); - - // XXX do we need a cache for /api/broadcast? - if (!Env.broadcastCache[cacheKey]) { - // generate the response and cache it in memory - Env.broadcastCache[cacheKey] = template(host); - // and create a function to conditionally evict cache entries - // which have not been accessed in the last 20 seconds - cleanUp[cacheKey] = Util.throttle(function () { - delete cleanUp[cacheKey]; - delete Env.broadcastCache[cacheKey]; - }, 20000); - } - - // successive calls to this function - cleanUp[cacheKey](); - return void res.send(Env.broadcastCache[cacheKey]); - }; -}()); +var serveConfig = makeRouteCache(function (host) { + return [ + 'define(function(){', + 'var obj = ' + JSON.stringify({ + requireConf: { + waitSeconds: 600, + urlArgs: 'ver=' + Package.version + cacheString(), + }, + removeDonateButton: (config.removeDonateButton === true), + allowSubscriptions: (config.allowSubscriptions === true), + websocketPath: config.externalWebsocketURL, + httpUnsafeOrigin: config.httpUnsafeOrigin, + adminEmail: Env.adminEmail, + adminKeys: Env.admins, + inactiveTime: Env.inactiveTime, + supportMailbox: Env.supportMailbox, + defaultStorageLimit: Env.defaultStorageLimit, + maxUploadSize: Env.maxUploadSize, + premiumUploadSize: Env.premiumUploadSize, + }, null, '\t'), + 'obj.httpSafeOrigin = ' + (function () { + if (config.httpSafeOrigin) { return '"' + config.httpSafeOrigin + '"'; } + if (config.httpSafePort) { + return "(function () { return window.location.origin.replace(/\:[0-9]+$/, ':" + + config.httpSafePort + "'); }())"; + } + return 'window.location.origin'; + }()), + 'return obj', + '});' + ].join(';\n') +}, 'configCache'); + +var serveBroadcast = makeRouteCache(function (host) { + var maintenance = Env.maintenance; + if (maintenance && maintenance.end && maintenance.end < (+new Date())) { + maintenance = undefined; + } + return [ + 'define(function(){', + 'return ' + JSON.stringify({ + lastBroadcastHash: Env.lastBroadcastHash, + surveyURL: Env.surveyURL, + maintenance: maintenance + }, null, '\t'), + '});' + ].join(';\n') +}, 'broadcastCache'); app.get('/api/config', serveConfig); app.get('/api/broadcast', serveBroadcast); diff --git a/www/admin/inner.js b/www/admin/inner.js index b3570a916..332ff1fe3 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -941,32 +941,6 @@ define([ return; }; - Messages.admin_cat_broadcast = "Broadcast"; // XXX - - Messages.admin_maintenanceTitle = "Maintenance"; // XXX - Messages.admin_maintenanceHint = "Plan, remove or update a maintenance. You can only have one active maintenance at a time."; // XXX - Messages.admin_maintenanceButton = "Plan maintenance"; // XXX - Messages.admin_maintenanceCancel = "Cancel planned maintenance"; // XXX - Messages.broadcast_start = 'Start time'; - Messages.broadcast_end = 'End time'; - - - Messages.admin_surveyTitle = "Survey"; // XXX - Messages.admin_surveyHint = "Add, update or remove the active survey accessible from the user menu"; // XXX - Messages.admin_surveyButton = "Apply survey"; // XXX - Messages.admin_surveyCancel = "Cancel active survey"; // XXX - Messages.admin_surveyActive = "View the active survey"; // XXX - Messages.broadcast_surveyURL = 'Survey URL'; - - Messages.admin_broadcastTitle = "Broadcast a message"; // XXX - Messages.admin_broadcastHint = "Send a message to all the existing and future users as a notification"; // XXX - Messages.admin_broadcastButton = "Send"; // XXX - Messages.admin_broadcastActive = "Active message"; // XXX - Messages.admin_broadcastCancel = "Delete active message"; // XXX - Messages.broadcast_translations = 'Translations'; - Messages.broadcast_defaultLanguage = 'Fallback to this language'; - Messages.broadcast_preview = "Preview in a fake notification"; - var getApi = function (cb) { return function () { require(['/api/broadcast?'+ (+new Date())], function (Broadcast) { @@ -1067,7 +1041,7 @@ define([ create['broadcast'] = function () { var key = 'broadcast'; - var $div = makeBlock(key); + var $div = makeBlock(key); // Msg.admin_broadcastHint, admin_broadcastTitle var form = h('div.cp-admin-broadcast-form'); var $form = $(form).appendTo($div); @@ -1229,7 +1203,7 @@ define([ } if (error) { console.error('One of the selected languages has no data'); - return false; // XXX better error handling? + return false; } return { defaultLanguage: defaultLanguage, @@ -1239,7 +1213,7 @@ define([ var send = function (data) { $button.prop('disabled', 'disabled'); - data.time = +new Date(); // XXX not used anymore? + //data.time = +new Date(); // FIXME not used anymore? common.mailbox.sendTo('BROADCAST_CUSTOM', data, {}, function (err) { if (err) { $button.prop('disabled', ''); @@ -1259,7 +1233,7 @@ define([ send(data); }); - UI.confirmButton(removeButton, { // XXX table jank + UI.confirmButton(removeButton, { classes: 'btn-danger', }, function () { if (!activeUid) { return; } @@ -1292,7 +1266,7 @@ define([ create['maintenance'] = function () { var key = 'maintenance'; - var $div = makeBlock(key); + var $div = makeBlock(key); // Msg.admin_maintenanceHint, admin_maintenanceTitle var form = h('div.cp-admin-broadcast-form'); var $form = $(form).appendTo($div); @@ -1321,13 +1295,12 @@ define([ var end = h('input'); var $start = $(start); var $end = $(end); - // XXX new Date().toLocaleString('fr-fr', {month: 'long'}).replace(/./, c => c.toUpperCase()) var is24h = false; try { is24h = !new Intl.DateTimeFormat(navigator.language, { hour: 'numeric' }).format(0).match(/AM/); } catch (e) {} - var endPickr = Flatpickr(end, { // XXX translations? + var endPickr = Flatpickr(end, { enableTime: true, time_24hr: is24h, minDate: new Date() @@ -1411,7 +1384,7 @@ define([ }; create['survey'] = function () { var key = 'survey'; - var $div = makeBlock(key); + var $div = makeBlock(key); // Msg.admin_surveyHint, admin_surveyTitle var form = h('div.cp-admin-broadcast-form'); var $form = $(form).appendTo($div); @@ -1429,7 +1402,7 @@ define([ common.openUnsafeURL(Broadcast.surveyURL); }); active = h('div.cp-broadcast-active', [ - h('p', a), // XXX spacing around this element is really cramped + h('p', a), removeButton ]); } diff --git a/www/calendar/inner.js b/www/calendar/inner.js index e21438746..830674341 100644 --- a/www/calendar/inner.js +++ b/www/calendar/inner.js @@ -70,6 +70,11 @@ Messages.calendar_newEvent = "New event"; Messages.calendar_new = "New calendar"; Messages.calendar_dateRange = "{0} - {1}"; Messages.calendar_dateTimeRange = "{0} {1} - {2}"; +Messages.calendar_update = "Update"; +Messages.calendar_title = "Title"; +Messages.calendar_loc = "Location"; +Messages.calendar_location = "Location: {0}"; +Messages.calendar_allDay = "All day"; var onCalendarsUpdate = Util.mkEvent(); @@ -149,7 +154,7 @@ Messages.calendar_dateTimeRange = "{0} {1} - {2}"; if (!md) { return void console.error('Ignore calendar without metadata'); } return { id: id, - name: Util.fixHTML(md.title), + name: md.title, color: getContrast(md.color), bgColor: md.color, dragBgColor: md.color, @@ -165,8 +170,8 @@ Messages.calendar_dateTimeRange = "{0} {1} - {2}"; var data = c.content || {}; Object.keys(data.content || {}).forEach(function (uid) { var obj = data.content[uid]; - obj.title = Util.fixHTML(obj.title || ""); - obj.location = Util.fixHTML(obj.location || ""); + obj.title = obj.title || ""; + obj.location = obj.location || ""; if (c.readOnly) { obj.isReadOnly = true; } @@ -220,8 +225,19 @@ Messages.calendar_dateTimeRange = "{0} {1} - {2}"; })()) { getTime = undefined; } var templates = { - popupSave: function () { - return Messages.settings_save; + popupSave: function () { return Messages.settings_save; }, + popupUpdate: function() { return Messages.calendar_update; }, + popupEdit: function() { return Messages.poll_edit; }, + popupDelete: function() { return Messages.kanban_delete; }, + popupDetailLocation: function(schedule) { + // TODO detect url and create 'a' tag + return Messages._getKey('calendar_location', [Util.fixHTML(schedule.location)]); + }, + popupIsAllDay: function() { return Messages.calendar_allDay; }, + titlePlaceholder: function() { return Messages.calendar_title; }, + locationPlaceholder: function() { return Messages.calendar_loc; }, + alldayTitle: function() { + return ''+Messages.calendar_allDay+''; }, timegridDisplayTime: getTime, timegridDisplayPrimaryTime: getTime, diff --git a/www/checkup/main.js b/www/checkup/main.js index 42864b4f3..7afa06abf 100644 --- a/www/checkup/main.js +++ b/www/checkup/main.js @@ -210,7 +210,7 @@ define([ }; $.ajax(url, { - success: function (data, textStatus, xhr) { + complete: function (xhr) { cb(!Object.keys(expect).some(function (k) { var response = xhr.getResponseHeader(k); console.log(k, response); @@ -220,6 +220,17 @@ define([ }); }, _alert("Missing HTTP headers required for XLSX export")); + assert(function (cb) { + cb(true); + $.ajax('/api/broadcast', { + dataType: 'text', + complete: function (xhr) { + console.log(xhr); + cb(xhr.status === 200); + }, + }); + }, _alert("/api/broadcast is not available")); + var row = function (cells) { return h('tr', cells.map(function (cell) { return h('td', cell); diff --git a/www/common/application_config_internal.js b/www/common/application_config_internal.js index 2da897118..b6ee407c5 100644 --- a/www/common/application_config_internal.js +++ b/www/common/application_config_internal.js @@ -43,7 +43,7 @@ define(function() { /* You can display a link to your own privacy policy in the static pages footer. * To do so, set the following value to the absolute URL of your privacy policy. */ - config.privacy = '/privacy.html'; + //config.privacy = '/privacy.html'; // config.privacy = 'https://xwiki.com/en/company/PrivacyPolicy'; /* Cryptpad apps use a common API to display notifications to users diff --git a/www/common/common-interface.js b/www/common/common-interface.js index efd505ad4..9711de3fa 100644 --- a/www/common/common-interface.js +++ b/www/common/common-interface.js @@ -739,6 +739,7 @@ define([ } }); }; + // TODO: make it such that the confirmButton's width does not change UI.confirmButton = function (originalBtn, config, _cb) { config = config || {}; var cb = Util.mkAsync(_cb); @@ -1257,10 +1258,13 @@ define([ Messages.dontShowAgain ]); + var footerSel = 'div.cp-corner-footer'; var popup = h('div.cp-corner-container', [ setHTML(h('div.cp-corner-text'), text), h('div.cp-corner-actions', actions), - setHTML(h('div.cp-corner-footer'), footer), + (typeof(footer) === 'string'? + setHTML(h(footerSel), footer): + h(footerSel, footer)), opts.dontShowAgain ? dontShowAgain : undefined ]); diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 680e5425a..6ec1cf420 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -370,7 +370,7 @@ define([ h('div.cp-teams-invite-block', [ h('span', Messages.team_inviteLinkSetPassword), h('a.cp-teams-help.fa.fa-question-circle', { - href: origin + 'https://docs.cryptpad.fr/en/user_guide/security.html#passwords-for-documents-and-folders', + href: origin + Pages.localizeDocsLink('https://docs.cryptpad.fr/en/user_guide/security.html#passwords-for-documents-and-folders'), target: "_blank", 'data-tippy-placement': "right" }) @@ -715,8 +715,14 @@ define([ callback(err); return void UI.warn(Messages.fm_forbidden); } - var cMsg = common.isLoggedIn() ? Messages.movedToTrash : Messages.deleted; - var msg = common.fixLinks($('
    ').html(cMsg)); + var msg; + if (common.isLoggedIn()) { + msg = Pages.setHTML(h('div'), Messages.movedToTrash); + $(msg).find('a').attr('href', '/drive/'); + common.fixLinks(msg); + } else { + msg = h('div', Messages.deleted); + } UI.alert(msg); callback(); return; @@ -1106,6 +1112,10 @@ define([ if (apps[type]) { href = "https://docs.cryptpad.fr/en/user_guide/apps/" + apps[type] + ".html"; } + if (type === 'drive') { + href = "https://docs.cryptpad.fr/en/user_guide/drive.html"; + } + href = Pages.localizeDocsLink(href); var content = setHTML(h('p'), Messages.help_genericMore); $(content).find('a').attr({ @@ -1741,7 +1751,14 @@ define([ }); }*/ options.push({ tag: 'hr' }); + + // We have code to hide 2 separators in a row, but in the case of survey, they may be + // in the DOM but hidden. We need to know if there are other elements in this + // section to determine if we have to manually hide a separator. + var surveyAlone = true; + if (Config.allowSubscriptions) { + surveyAlone = false; options.push({ tag: 'a', attributes: { @@ -1754,6 +1771,7 @@ define([ }); } if (!priv.plan && !Config.removeDonateButton) { + surveyAlone = false; options.push({ tag: 'a', attributes: { @@ -1847,7 +1865,10 @@ define([ var $userAdmin = UIElements.createDropdown(dropdownConfigUser); var $survey = $userAdmin.find('.cp-toolbar-survey'); - if (!surveyURL) { $survey.hide(); } + if (!surveyURL) { + $survey.hide(); + if (surveyAlone) { $survey.next('hr').hide(); } + } Common.makeUniversal('broadcast', { onEvent: function (obj) { var cmd = obj.ev; @@ -1858,9 +1879,11 @@ define([ surveyURL = url; if (!url) { $survey.hide(); + if (surveyAlone) { $survey.next('hr').hide(); } return; } $survey.show(); + if (surveyAlone) { $survey.next('hr').show(); } } }); @@ -2164,7 +2187,7 @@ define([ UI.getFileIcon({type: type})[0], h('div.cp-creation-title-text', [ h('span', newPadH3Title), - createHelper('https://docs.cryptpad.fr/en/user_guide/apps/general.html#new-document', Messages.creation_helperText) + createHelper(Pages.localizeDocsLink('https://docs.cryptpad.fr/en/user_guide/apps/general.html#new-document'), Messages.creation_helperText) ]) ]); $creation.append(title); @@ -2738,13 +2761,6 @@ define([ common.openURL(priv.accounts.donateURL); Feedback.send('CROWDFUNDING_YES'); }); - $(modal.popup).find('a').click(function (e) { - e.stopPropagation(); - e.preventDefault(); - modal.delete(); - common.openURL(priv.accounts.donateURL); - Feedback.send('CROWDFUNDING_LINK'); - }); $(no).click(function () { modal.delete(); Feedback.send('CROWDFUNDING_NO'); @@ -2784,7 +2800,7 @@ define([ priv.pathname.indexOf('/drive/') !== -1 ? Messages.autostore_sf : Messages.autostore_pad; var text = Messages._getKey('autostore_notstored', [typeMsg]); - var footer = Messages.autostore_settings; + var footer = Pages.setHTML(h('span'), Messages.autostore_settings); var hide = h('button.cp-corner-cancel', Messages.autostore_hide); var store = h('button.cp-corner-primary', Messages.autostore_store); diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 22b4f1460..87825e0f4 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -19,6 +19,7 @@ define([ '/common/proxy-manager.js', '/customize/application_config.js', '/customize/messages.js', + '/customize/pages.js', ], function ( $, ApiConfig, @@ -37,7 +38,8 @@ define([ h, ProxyManager, AppConfig, - Messages) + Messages, + Pages) { var APP = window.APP = { @@ -646,11 +648,6 @@ define([ } else { displayedCategories = [FILES_DATA]; currentPath = [FILES_DATA]; - if (Object.keys(files.root).length && !proxy.anonymousAlert) { - var msg = common.fixLinks($('
    ').html(Messages.fm_alert_anonymous)); - UI.alert(msg); - proxy.anonymousAlert = true; - } } } @@ -2495,7 +2492,7 @@ define([ // Get the upload options var addSharedFolderModal = function (cb) { - var docsHref = common.getBounceURL("https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners"); + var docsHref = common.getBounceURL(Pages.localizeDocsLink("https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners")); // Ask for name, password and owner var content = h('div', [ @@ -2508,7 +2505,7 @@ define([ style: 'display:flex;align-items:center;justify-content:space-between' }, [ UI.createCheckbox('cp-app-drive-sf-owned', Messages.sharedFolders_create_owned, true), - UI.createHelper(docsHref, Messages.creation_owned1) // TODO + UI.createHelper(docsHref, Messages.creation_owned1) ]), ]); @@ -4398,7 +4395,7 @@ define([ style: 'display:flex;align-items:center;justify-content:space-between' }, [ UI.createCheckbox('cp-upload-owned', Messages.sharedFolders_create_owned, true), - UI.createHelper('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners', Messages.creation_owned1) + UI.createHelper(Pages.localizeDocsLink('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners'), Messages.creation_owned1) ]), ]); return void UI.confirm(convertContent, function(res) { diff --git a/www/common/feedback-main.js b/www/common/feedback-main.js index f9726c689..d31fd6876 100644 --- a/www/common/feedback-main.js +++ b/www/common/feedback-main.js @@ -1,5 +1,10 @@ define([ '/common/common-language.js', + 'less!/customize/src/less2/pages/page-feedback.less', ], function (Language) { Language.applyTranslation(); + var optoutLink = document.querySelector('#optout a'); + if (optoutLink) { + optoutLink.setAttribute('href', '/settings/'); + } }); diff --git a/www/common/feedback.html b/www/common/feedback.html index 20954e262..4025fd357 100644 --- a/www/common/feedback.html +++ b/www/common/feedback.html @@ -11,9 +11,9 @@ body { -

    If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions

    +

    If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions.

    We care about your privacy, and at the same time we want CryptPad to be very easy to use. We use this file to figure out which UI features matter to our users, by requesting it along with a parameter specifying which action was taken.

    -

    If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback

    +

    If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback.

    diff --git a/www/common/inner/share.js b/www/common/inner/share.js index f47fe5add..f2eb2e953 100644 --- a/www/common/inner/share.js +++ b/www/common/inner/share.js @@ -10,8 +10,9 @@ define([ '/common/clipboard.js', '/customize/messages.js', '/bower_components/nthen/index.js', + '/customize/pages.js', ], function ($, Util, Hash, UI, UIElements, Feedback, Modal, h, Clipboard, - Messages, nThen) { + Messages, nThen, Pages) { var Share = {}; var createShareWithFriends = function (config, onShare, linkGetter) { @@ -266,7 +267,7 @@ define([ h('a', {href: '#'}, Messages.passwordFaqLink) ]); $(link).click(function () { - opts.common.openUnsafeURL("https://docs.cryptpad.fr/en/user_guide/security.html#passwords-for-documents-and-folders"); + opts.common.openUnsafeURL(Pages.localizeDocsLink("https://docs.cryptpad.fr/en/user_guide/security.html#passwords-for-documents-and-folders")); }); return link; }; diff --git a/www/common/notifications.js b/www/common/notifications.js index 2a7f31fbf..46c92a147 100644 --- a/www/common/notifications.js +++ b/www/common/notifications.js @@ -7,7 +7,8 @@ define([ '/common/common-util.js', '/common/common-constants.js', '/customize/messages.js', -], function($, h, Hash, UI, UIElements, Util, Constants, Messages) { + '/customize/pages.js', +], function($, h, Hash, UI, UIElements, Util, Constants, Messages, Pages) { var handlers = {}; @@ -395,7 +396,10 @@ define([ handlers['SAFE_LINKS_DEFAULT'] = function (common, data) { var content = data.content; content.getFormatText = function () { - return Messages.settings_safeLinkDefault; + var msg = Pages.setHTML(h('span'), Messages.settings_safeLinkDefault); + var i = msg.querySelector('i'); + if (i) { i.classList = 'fa fa-shhare-alt'; } + return msg.innerHTML; }; content.handler = function () { @@ -406,7 +410,6 @@ define([ } }; - Messages.broadcast_newSurvey = "A new survey is available."; // XXX handlers['BROADCAST_SURVEY'] = function (common, data) { var content = data.content; var msg = content.msg.content; @@ -422,7 +425,6 @@ define([ } }; - Messages.broadcast_newCustom = "Message from the administrators"; // XXX handlers['BROADCAST_CUSTOM'] = function (common, data) { var content = data.content; var msg = content.msg.content; diff --git a/www/common/outer/async-store.js b/www/common/outer/async-store.js index 438a4c7e9..b7bf479f3 100644 --- a/www/common/outer/async-store.js +++ b/www/common/outer/async-store.js @@ -105,6 +105,7 @@ define([ Store.get = function (clientId, data, cb) { var s = getStore(data.teamId); if (!s) { return void cb({ error: 'ENOTFOUND' }); } + if (!s.proxy) { return void cb({ error: 'ENODRIVE' }); } cb(Util.find(s.proxy, data.key)); }; Store.set = function (clientId, data, cb) { diff --git a/www/common/outer/calendar.js b/www/common/outer/calendar.js index c23b647c3..11516e2ca 100644 --- a/www/common/outer/calendar.js +++ b/www/common/outer/calendar.js @@ -735,6 +735,8 @@ define([ if (newC) { Realtime.whenRealtimeSyncs(newC.lm.realtime, waitFor()); } }).nThen(function () { if (changes.start) { addReminders(ctx, id, ev); } + sendUpdate(ctx, c); + if (newC) { sendUpdate(ctx, newC); } cb(); }); }; @@ -749,6 +751,8 @@ define([ id: data.id, start: 0 }); + sendUpdate(ctx, c); + cb(); }); }; diff --git a/www/common/outer/mailbox.js b/www/common/outer/mailbox.js index 34af071d6..fa8da5712 100644 --- a/www/common/outer/mailbox.js +++ b/www/common/outer/mailbox.js @@ -45,11 +45,6 @@ define([ }); } - // XXX Debugging code to remove deprecated dev data - if (mailboxes.broadcast && mailboxes.broadcast.channel && mailboxes.broadcast.channel.length === 32) { - delete mailboxes['broadcast']; - } - if (!mailboxes['broadcast']) { mailboxes.broadcast = { channel: BROADCAST_CHAN, @@ -352,22 +347,7 @@ proxy.mailboxes = { hash: hash }; var notify = box.ready; - Handlers.add(ctx, box, message, function (dismissed, toDismiss, setAsLKH) { - if (setAsLKH) { // XXX confirm whether this if is used? - // Update LKH - box.data.lastKnownHash = hash; - box.data.viewed = []; - - // Make sure we remove data about dismissed messages - Realtime.whenRealtimeSyncs(ctx.store.realtime, function () { - Object.keys(box.content).forEach(function (h) { - Handlers.remove(ctx, box, box.content[h], h); - delete box.content[h]; - hideMessage(ctx, type, h, ctx.clients); - }); - }); - return; - } + Handlers.add(ctx, box, message, function (dismissed, toDismiss) { if (toDismiss) { // List of other messages to remove dismiss(ctx, toDismiss, '', function () { console.log('Notification handled automatically'); diff --git a/www/common/outer/roster.js b/www/common/outer/roster.js index 8e8e82dc8..e395891b7 100644 --- a/www/common/outer/roster.js +++ b/www/common/outer/roster.js @@ -503,7 +503,8 @@ var factory = function (Util, Hash, CPNetflux, Sortify, nThen, Crypto, Feedback) var channel = config.channel; var lastKnownHash = config.lastKnownHash || -1; - if (config.newTeam) { // XXX + // make sure we don't send -1 (ask for full history) when we are trying to create a new team + if (config.newTeam) { lastKnownHash = undefined; } diff --git a/www/common/sframe-common-file.js b/www/common/sframe-common-file.js index fb432b5ad..c7a66adb9 100644 --- a/www/common/sframe-common-file.js +++ b/www/common/sframe-common-file.js @@ -10,10 +10,11 @@ define([ '/common/common-hash.js', '/common/hyperscript.js', '/customize/messages.js', + '/customize/pages.js', '/bower_components/file-saver/FileSaver.min.js', '/bower_components/tweetnacl/nacl-fast.min.js', -], function ($, ApiConfig, FileCrypto, MakeBackup, Thumb, UI, UIElements, Util, Hash, h, Messages) { +], function ($, ApiConfig, FileCrypto, MakeBackup, Thumb, UI, UIElements, Util, Hash, h, Messages, Pages) { var Nacl = window.nacl; var module = {}; @@ -327,7 +328,7 @@ define([ style: 'display:flex;align-items:center;justify-content:space-between' }, [ UI.createCheckbox('cp-upload-owned', Messages.upload_modal_owner, modalState.owned), - createHelper('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners', Messages.creation_owned1) + createHelper(Pages.localizeDocsLink('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners'), Messages.creation_owned1) ]), manualStore ]); @@ -382,7 +383,7 @@ define([ style: 'display:flex;align-items:center;justify-content:space-between' }, [ UI.createCheckbox('cp-upload-owned', Messages.uploadFolder_modal_owner, modalState.owned), - createHelper('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners', Messages.creation_owned1) + createHelper(Pages.localizeDocsLink('https://docs.cryptpad.fr/en/user_guide/share_and_access.html#owners'), Messages.creation_owned1) ]), manualStore ]); diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js index 9ae09f571..70c239d67 100644 --- a/www/common/sframe-common.js +++ b/www/common/sframe-common.js @@ -17,6 +17,7 @@ define([ '/common/metadata-manager.js', '/customize/application_config.js', + '/customize/pages.js', '/common/common-realtime.js', '/common/common-util.js', '/common/common-hash.js', @@ -24,7 +25,8 @@ define([ '/common/common-interface.js', '/common/common-feedback.js', '/common/common-language.js', - '/bower_components/localforage/dist/localforage.min.js' + '/bower_components/localforage/dist/localforage.min.js', + '/common/hyperscript.js', ], function ( $, ApiConfig, @@ -43,6 +45,7 @@ define([ MT, MetadataMgr, AppConfig, + Pages, CommonRealtime, Util, Hash, @@ -50,7 +53,8 @@ define([ UI, Feedback, Language, - localForage + localForage, + h ) { // Chainpad Netflux Inner var funcs = {}; @@ -772,7 +776,14 @@ define([ UI.addTooltips(); ctx.sframeChan.on("EV_PAD_NODATA", function () { - UI.errorLoadingScreen(Messages.safeLinks_error); + var error = Pages.setHTML(h('span'), Messages.safeLinks_error); + var i = error.querySelector('i'); + if (i) { i.classList = 'fa fa-shhare-alt'; } + var a = error.querySelector('a'); + if (a) { + a.setAttribute('href', Pages.localizeDocsLink("https://docs.cryptpad.fr/en/user_guide/user_account.html#confidentiality")); + } + UI.errorLoadingScreen(error); }); ctx.sframeChan.on("EV_PAD_PASSWORD", function (cfg) { diff --git a/www/common/toolbar.js b/www/common/toolbar.js index 583a9168a..119d7fb3d 100644 --- a/www/common/toolbar.js +++ b/www/common/toolbar.js @@ -12,8 +12,9 @@ define([ '/common/hyperscript.js', '/common/messenger-ui.js', '/customize/messages.js', + '/customize/pages.js', ], function ($, Config, ApiConfig, Broadcast, UIElements, UI, Hash, Util, Feedback, MT, h, -MessengerUI, Messages) { +MessengerUI, Messages, Pages) { var Common; var Bar = { @@ -967,12 +968,19 @@ MessengerUI, Messages) { var todo = function (e, overLimit) { if (e) { return void console.error("Unable to get the pinned usage", e); } if (overLimit) { - var key = 'pinLimitReachedAlert'; // Msg.pinLimitReachedAlert - if (!ApiConfig.allowSubscriptions) { - key = 'pinLimitReachedAlertNoAccounts'; // Msg.pinLimitReachedAlertNoAccounts - } $limit.show().click(function () { - UI.alert(Messages._getKey(key, [encodeURIComponent(l.hostname)]), null, true); + if (ApiConfig.allowSubscriptions && Config.upgradeURL) { + var key = 'pinLimitReachedAlert'; // Msg.pinLimitReachedAlert + var msg = Pages.setHTML(h('span'), Messages.pinLimitReachedAlert); + $(msg).find('a').attr({ + target: '_blank', + href: Config.upgradeURL, + }); + + UI.alert(msg); + } else { + UI.alert(Messages.pinLimitReachedAlertNoAccounts); + } }); } }; @@ -1029,10 +1037,9 @@ MessengerUI, Messages) { return $userAdmin; }; - Messages.broadcast_maintenance = "A maintenance is planned between {0} and {1}"; // XXX var createMaintenance = function (toolbar, config) { var $notif = toolbar.$top.find('.'+MAINTENANCE_CLS); - var button = h('button.cp-maintenance-wrench.fa.fa-wrench'); // XXX might need some color contrast + var button = h('button.cp-maintenance-wrench.fa.fa-wrench'); $notif.append(button); diff --git a/www/common/translations/messages.ca.json b/www/common/translations/messages.ca.json index 9a1cf0ff3..7314c8d19 100644 --- a/www/common/translations/messages.ca.json +++ b/www/common/translations/messages.ca.json @@ -58,7 +58,6 @@ "editor": "persona editora", "userlist_offline": "Esteu fora de línia, la llista de persones usuàries no està disponible.", "language": "Llengua", - "newVersion": "S'ha actualitzat CryptPad!
    Comproveu les novetats d'aquesta versió:
    Notes de la versió de CryptPad {0}", "upgrade": "Actualitzeu-vos", "upgradeAccount": "Actualitzeu el compte", "MB": "MB", @@ -68,7 +67,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "Heu arribat al límit del vostre emmagatzematge", - "pinLimitReachedAlert": "Heu arribat al límit del vostre espai. Els documents nous no es desaran al vostre CryptDrive.
    Podeu eliminar documents del vostre CryptDrive o adquirir una oferta prèmium per augmentar el vostre espai.", + "pinLimitReachedAlert": "Heu arribat al límit del vostre espai. Els documents nous no es desaran al vostre CryptDrive.
    Podeu eliminar documents del vostre CryptDrive o adquirir una oferta prèmium per augmentar el vostre espai.", "pinLimitReachedAlertNoAccounts": "Heu arribat al límit del vostre espai", "pinLimitNotPinned": "Heu arribat al límit del vostre espai.
    Aquest document no està desat al vostre CryptDrive.", "pinLimitDrive": "Heu arribat al límit del vostre espai.
    No podeu crear documents nous.", @@ -85,7 +84,7 @@ "saveTitle": "Deseu el títol (Enter)", "forgetButton": "Esborrar", "forgetPrompt": "Clicant D'acord, moureu aquest document a la paperera. Hi esteu d'acord?", - "movedToTrash": "Aquest document s'ha desplaçat a la paperera.
    Accedir a la meva Unitat", + "movedToTrash": "Aquest document s'ha desplaçat a la paperera.
    Accedir a la meva Unitat", "shareButton": "Compartir", "shareSuccess": "L'enllaç s'ha copiat al porta-retalls", "userListButton": "Llista de persones usuàries", @@ -287,7 +286,6 @@ "fm_info_anonymous": "No heu iniciat la sessió, per tant, els vostres documents caducaran d'aquí a 3 mesos (saber-ne més). Es desen al vostre navegador, per tant, si netegeu el vostre historial podríeu perdre'ls.
    Registreu-vos o Inicieu la sessió per mantenir-los accessibles.
    ", "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.
    Registreu-vos o Inicieu la sessió 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_alert_anonymous": "Hola, esteu utilitzant CryptPad de forma anònima. Ja està bé, però els vostres documents poden perdre's després d'un temps d'inactivitat. Hem deshabilitat les funcions avançades de la unitat pels comptes anònims perquè volem deixar clar que aquest no és un lloc segur on desar res. Podeu conèixer més sobre per què fem això i per què hauríeu de Registrar-vos i Iniciar sessió.", "fm_error_cantPin": "Error intern del servidor. Si us plau, torneu a garregar la pàgina i torneu a provar-ho.", "fm_viewListButton": "Vista de llista", "fm_viewGridButton": "Vista de graella", @@ -334,7 +332,7 @@ "login_invalPass": "Cal introduir la contrasenya", "login_unhandledError": "Hi ha hagut un error inesperat :(", "register_importRecent": "Importeu els documents de la vostra sessió anònima", - "register_acceptTerms": "Accepto les condicions del servei", + "register_acceptTerms": "Accepto les condicions del servei", "register_passwordsDontMatch": "Les contrasenyes no coincideixen!", "register_passwordTooShort": "Les contrasenyes han de tenir, com a mínim, {0} caràcters.", "register_mustAcceptTerms": "Cal que accepteu les condicions del servei.", @@ -484,7 +482,7 @@ "upload_mustLogin": "Cal que inicieu la sessió per carregar un fitxer", "upload_up": "Carrega", "download_mt_button": "Descarrega", - "home_host": "Aquesta és una instància comunitària independent de CryptPad. El codi font està disponiblea GitHub.", + "home_host": "Aquesta és una instància comunitària independent de CryptPad.", "mdToolbar_toc": "Taula de continguts", "mdToolbar_code": "Codi", "mdToolbar_check": "Llista de tasques", diff --git a/www/common/translations/messages.de.json b/www/common/translations/messages.de.json index 992213969..2d222f5a2 100644 --- a/www/common/translations/messages.de.json +++ b/www/common/translations/messages.de.json @@ -56,7 +56,6 @@ "editor": "Bearbeiter", "userlist_offline": "Du bist aktuell offline, die Benutzerliste ist nicht verfügbar.", "language": "Sprache", - "newVersion": "CryptPad wurde aktualisiert!
    Entdecke, was neu in dieser Version ist:
    Versionshinweise für CryptPad {0}", "upgrade": "Upgrade", "upgradeAccount": "Account upgraden", "MB": "MB", @@ -66,7 +65,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "Du hast deine Speicherplatzbegrenzung erreicht", - "pinLimitReachedAlert": "Du hast deine Speicherplatzbegrenzung erreicht. Neue Pads werden nicht mehr in deinem CryptDrive gespeichert.
    Du kannst entweder ein Pad von deinem CryptDrive entfernen oder ein Premiumangebot anfordern, damit deine Begrenzung erhöht wird.", + "pinLimitReachedAlert": "Du hast deine Speicherplatzbegrenzung erreicht. Neue Pads werden nicht mehr in deinem CryptDrive gespeichert.
    Du kannst entweder ein Pad von deinem CryptDrive entfernen oder ein Premiumangebot anfordern, damit deine Begrenzung erhöht wird.", "pinLimitReachedAlertNoAccounts": "Du hast deine Speicherplatzbegrenzung erreicht", "pinLimitNotPinned": "Du hast deine Speicherplatzbegrenzung erreicht.
    Dieses Pad ist nicht in deinem CryptDrive gespeichert.", "pinLimitDrive": "Du hast deine Speicherplatzbegrenzung erreicht.
    Du kannst keine neuen Pads erstellen.", @@ -83,7 +82,7 @@ "saveTitle": "Den Titel speichern (Enter)", "forgetButton": "Entfernen", "forgetPrompt": "Mit dem Klick auf OK wird das Pad in den Papierkorb verschoben. Bist du sicher?", - "movedToTrash": "Dieses Dokument liegt im Papierkorb.
    Du kannst zum CryptDrive navigieren", + "movedToTrash": "Dieses Dokument liegt im Papierkorb.
    Du kannst zum CryptDrive navigieren", "shareButton": "Teilen", "shareSuccess": "Die URL wurde in die Zwischenablage kopiert", "userListButton": "Benutzerliste", @@ -283,7 +282,6 @@ "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.
    Registriere dich (keine persönlichen Informationen benötigt) oder logge dich ein, um sie dauerhaft in deinem Drive zu speichern. Mehr zu registrierten Accounts.", "fm_info_sharedFolder": "Dieser Ordner ist geteilt. Da du aber nicht eingeloggt bist, hast du nur einen schreibgeschützen Zugriff.
    Registriere oder logge ich ein, 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, dann sind sie auch für andere Nutzer nicht mehr zugänglich.", - "fm_alert_anonymous": "Hallo, du benutzt CryptPad anonym. Das ist in Ordnung, aber Dokumente können nach längerer Inaktivität gelöscht werden. Wir haben fortgeschrittene Funktionen in anonymen CryptDrives deaktiviert, weil wir deutlich machen wollen, dass es kein sicherer Platz zur Ablage von Daten ist. Du kannst nachlesen, weshalb wir das machen und weshalb du dich wirklich registrieren oder einloggen solltest.", "fm_error_cantPin": "Interner Serverfehler. Bitte lade die Seite neu und versuche es erneut.", "fm_viewListButton": "Listenansicht", "fm_viewGridButton": "Kachelansicht", @@ -329,7 +327,7 @@ "login_invalPass": "Der Passwort kann nicht leer sein", "login_unhandledError": "Ein unerwarteter Fehler ist aufgetreten :(", "register_importRecent": "Dokumente aus deiner nicht-registrierten Sitzung importieren", - "register_acceptTerms": "Ich bin mit den Nutzungsbedingungen einverstanden", + "register_acceptTerms": "Ich bin mit den Nutzungsbedingungen einverstanden", "register_passwordsDontMatch": "Passwörter stimmen nicht überein!", "register_passwordTooShort": "Passwörter müssen mindestens {0} Zeichen haben.", "register_mustAcceptTerms": "Du musst mit den Nutzungsbedingungen einverstanden sein.", @@ -337,7 +335,7 @@ "register_header": "Registrieren", "register_writtenPassword": "Ich habe meinen Benutzername und mein Passwort notiert. Weiter geht's", "register_cancel": "Abbrechen", - "register_warning": " Warnung", + "register_warning": "Warnung", "register_alreadyRegistered": "Dieser Benutzer existiert bereits, möchtest du dich einloggen?", "settings_cat_account": "Account", "settings_cat_drive": "CryptDrive", @@ -495,21 +493,6 @@ "whatis_title": "Was ist CryptPad?", "whatis_collaboration": "Vertrauliche Zusammenarbeit", "whatis_drive": "Organisieren mit CryptDrive", - "policy_title": "Datenschutzerklärung für CryptPad", - "policy_whatweknow": "Was wir über dich wissen", - "policy_whatweknow_p1": "Als im Web gehostete Anwendung hat CryptPad Zugriff auf die Metadaten, die vom HTTP-Protokoll übertragen werden. Dies umfasst deine IP-Adresse und diverse andere HTTP-Header, die es ermöglichen, deinen Browser zu identifizieren. Um zu sehen, welche Daten dein Browser preisgibt, kannst du die Seite WhatIsMyBrowser.com besuchen.", - "policy_howweuse": "Wie wir das Wissen anwenden", - "policy_howweuse_p1": "Wir nutzen diese Informationen, um besser entscheiden zu können, wie CryptPad beworben werden kann und um derzeit genutzte Strategien zu evaluieren. Informationen über deinen Standort helfen uns bei der Abschätzung, welche Sprachen wir besser unterstützen sollten.", - "policy_howweuse_p2": "Informationen zu deinem Browser (ob du auf einem Desktop oder Smartphone arbeitest) helfen uns bei der Entscheidung, welche Funktionen priorisiert werden sollen. Unser Entwicklerteam ist klein, deshalb ist es uns wichtig, Entscheidungen derart zu treffen, dass möglichst viele Nutzer davon profitieren.", - "policy_whatwetell": "Was wir anderen über dich (nicht) erzählen", - "policy_whatwetell_p1": "Wir reichen keine von uns gesammelten Daten weiter, außer im Falle einer gerichtlichen Anordnung.", - "policy_links": "Links zu anderen Seiten", - "policy_links_p1": "Diese Seite beinhaltet Links zu anderen Seiten, teilweise werden diese von anderen Organisationen verwaltet. Wir sind nicht für den Umgang mit der Privatsphäre und die Inhalte der anderen Seiten verantwortlich. Generell werden Links zu externen Seiten in einem neuem Fenster geöffnet, um zu verdeutlichen, dass du CryptPad.fr verlässt.", - "policy_ads": "Werbung", - "policy_ads_p1": "Wir zeigen keine Onlinewerbung, können aber zu Organisationen verlinken, die unsere Forschung finanzieren.", - "policy_choices": "Deine Möglichkeiten", - "policy_choices_open": "Unser Code ist frei, deshalb kannst du jederzeit deine eigene CryptPad-Instanz hosten.", - "policy_choices_vpn": "Wenn du unsere gehostete Instanz nutzen möchtest, ohne deine IP-Adresse zu offenbaren, bitten wir dich darum, deine IP-Adresse zu verschleiern. Das ist zum Beispiel mit dem Tor Browser oder einem VPN-Zugang möglich.", "features": "Funktionen", "features_title": "Funktionen", "features_anon": "Nicht-registriert", @@ -577,9 +560,9 @@ "readme_cat3_l1": "Mit dem CryptPad Codeeditor kannst du Code wie JavaScript, Markdown oder HTML bearbeiten", "readme_cat3_l2": "Mit dem CryptPad Präsentationseditor kannst du schnell Vorträge mit Hilfe von Markdown gestalten", "readme_cat3_l3": "Mit der CryptPad Umfrage kannst du schnell Abstimmungen durchführen, insbesondere, um Meetings zu planen, die in den Kalender von allen passen", - "feedback_about": "Wenn du das liest, fragst du dich wahrscheinlich, weshalb dein Browser bei der Ausführung mancher Aktionen Anfragen an Webseiten sendet", + "feedback_about": "Wenn du das liest, fragst du dich wahrscheinlich, weshalb dein Browser bei der Ausführung mancher Aktionen Anfragen an Webseiten sendet.", "feedback_privacy": "Wir respektieren deine Datenschutz, aber gleichzeitig wollen wir, dass die Benutzung von CryptPad sehr leicht ist. Deshalb wollen wir erfahren, welche Funktion am wichtigsten für unsere Benutzer ist, indem wir diese mit einer genauen Parameterbeschreibung anfordern.", - "feedback_optout": "Wenn du das nicht möchtest, kannst du es in deinen Einstellungen deaktivieren", + "feedback_optout": "Wenn du das nicht möchtest, kannst du es in deinen Einstellungen deaktivieren.", "creation_404": "Dieses Pad existiert nicht mehr. Benutze das folgende Formular, um ein neues Pad zu erstellen.", "creation_owned": "Eigenes Pad", "creation_owned1": "Ein eigenes Element kann zerstört werden, wann immer der Eigentümer so entscheidet. Nach der Zerstörung eines eigenen Elementes ist es nicht mehr in CryptDrives anderer Nutzer verfügbar.", @@ -631,7 +614,7 @@ "autostore_sf": "Dieser Ordner", "autostore_pad": "Dieses Dokument", "autostore_notstored": "{0} ist nicht in deinem CryptDrive. Möchtest du es jetzt dort speichern?", - "autostore_settings": "Du kannst die automatische Speicherung in deinen Einstellungen aktivieren!", + "autostore_settings": "Du kannst die automatische Speicherung in deinen Einstellungen aktivieren!", "autostore_store": "Speichern", "autostore_hide": "Nicht speichern", "autostore_error": "Unerwarteter Fehler: Wir konnten das Pad nicht speichern, bitte versuche es nochmal.", @@ -639,7 +622,7 @@ "autostore_forceSave": "Speichere die Datei in deinem CryptDrive", "autostore_notAvailable": "Du musst dieses Pad in deinem CryptDrive speichern, bevor du diese Funktion benutzen kannst.", "crowdfunding_button": "Unterstütze CryptPad", - "crowdfunding_popup_text": "

    Wir brauchen deine Hilfe!

    Um sicherzustellen, dass CryptPad weiter aktiv entwickelt wird, unterstütze bitte das Projekt über die OpenCollective Seite, wo du unsere Roadmap und Funding-Ziele lesen kannst.", + "crowdfunding_popup_text": "

    Wir brauchen deine Hilfe!

    Um sicherzustellen, dass CryptPad weiter aktiv entwickelt wird, unterstütze bitte das Projekt über die OpenCollective Seite, wo du unsere Roadmap und Funding-Ziele lesen kannst.", "crowdfunding_popup_no": "Nicht jetzt", "invalidHashError": "Das angeforderte Dokument hat eine ungültige URL.", "oo_cantUpload": "Das Hochladen von Dateien ist nicht erlaubt, während andere Nutzer anwesend sind.", @@ -727,7 +710,7 @@ "support_disabledHint": "Diese CryptPad-Instanz wurde noch nicht für die Verwendung eines Support-Formulars konfiguriert.", "support_cat_new": "Neues Ticket", "support_formTitle": "Neues Ticket", - "support_formHint": "Mit diesem Formular kannst du bei Fragen oder Problemen die Administratoren auf sicherem Weg kontaktieren.
    Bitte beachte, dass einige Fragen/Probleme mit Hilfe des CryptPad-Benutzerhandbuchs gelöst werden können. Bitte eröffne kein neues Ticket, wenn du bereits ein offenes Ticket bezüglich des gleichen Problems hast. Antworte stattdessen auf deine ursprüngliche Nachricht, um weitere Informationen hinzuzufügen.", + "support_formHint": "Mit diesem Formular kannst du bei Fragen oder Problemen die Administratoren auf sicherem Weg kontaktieren.
    Bitte beachte, dass einige Fragen/Probleme mit Hilfe des CryptPad-Benutzerhandbuchs gelöst werden können. Bitte eröffne kein neues Ticket, wenn du bereits ein offenes Ticket bezüglich des gleichen Problems hast. Antworte stattdessen auf deine ursprüngliche Nachricht, um weitere Informationen hinzuzufügen.", "support_formButton": "Absenden", "support_formTitleError": "Fehler: Titel ist leer", "support_formContentError": "Fehler: Inhalt ist leer", @@ -923,7 +906,7 @@ "settings_safeLinksHint": "CryptPad fügt den Pad-Links die Schlüssel zum Entschlüsseln der Inhalte hinzu. Jeder, der Zugriff auf den Browserverlauf hat, kann möglicherweise die Daten lesen. Dazu gehören Browsererweiterungen und Browser, die den Verlauf geräteübergreifend synchronisieren. Die Aktivierung von \"sicheren Links\" verhindert, dass die Schlüssel in den Browserverlauf gelangen oder in der Adressleiste angezeigt werden, wann immer dies möglich ist. Wir empfehlen dringend, diese Funktion zu aktivieren und das Menü {0} Teilen zu verwenden.", "dontShowAgain": "Nicht mehr anzeigen", "profile_login": "Du musst dich einloggen, um diesen Benutzer zu deinen Kontakten hinzuzufügen", - "safeLinks_error": "Dieser Link wurde aus der Adresszeile des Browsers kopiert und ermöglicht keinen Zugriff auf das Dokument. Bitte verwende das Menü Teilen, um das Dokument direkt mit Kontakten zu teilen oder den Link zu kopieren. Mehr zu sicheren Links.\n", + "safeLinks_error": "Dieser Link wurde aus der Adresszeile des Browsers kopiert und ermöglicht keinen Zugriff auf das Dokument. Bitte verwende das Menü Teilen, um das Dokument direkt mit Kontakten zu teilen oder den Link zu kopieren. Mehr zu sicheren Links.", "settings_safeLinksCheckbox": "Sichere Links aktivieren", "settings_safeLinksTitle": "Sichere Links", "settings_trimHistoryHint": "Spare Speicherplatz, indem du den Verlauf deines CryptDrives und der Benachrichtigungen löschst. Dies hat keinen Einfluss auf den Verlauf deiner Pads. Du kannst den Verlauf der Pads in deren Eigenschaften-Dialog löschen.", @@ -1005,7 +988,7 @@ "slide_backCol": "Hintergrundfarbe", "slide_textCol": "Textfarbe", "support_languagesPreamble": "Das Support-Team spricht die folgenden Sprachen:", - "settings_safeLinkDefault": "Sichere Links sind nun standardmäßig aktiviert. Bitte verwende zum Kopieren von Links das Menü Teilen und nicht die Adressleiste des Browsers.", + "settings_safeLinkDefault": "Sichere Links sind nun standardmäßig aktiviert. Bitte verwende zum Kopieren von Links das Menü Teilen und nicht die Adressleiste des Browsers.", "info_imprintFlavour": "Rechtliche Informationen über die Administratoren dieses Servers.", "info_privacyFlavour": "Unsere Datenschutzerklärung beschreibt, wie wir deine Daten verarbeiten.", "user_about": "Über CryptPad", @@ -1140,13 +1123,13 @@ "home_host_title": "Über diese Instanz", "creation_helperText": "In Dokumentation öffnen", "home_support_title": "CryptPad unterstützen", - "home_opensource": "Jeder kann eine CryptPad-Instanz betreiben und den Dienst privat oder professionell anbieten. Der Quellcode ist auf Github verfügbar.", + "home_opensource": "Jeder kann eine CryptPad-Instanz betreiben und den Dienst privat oder professionell anbieten. Der Quellcode ist auf Github verfügbar.", "whatis_xwiki": "Entwickelt bei XWiki", "whatis_collaboration_info": "

    CryptPad wurde entwickelt, um gemeinsame Arbeit zu ermöglichen. Es synchronisiert Änderungen an Dokumenten in Echtzeit. Da alle Daten verschlüsselt sind, haben der Dienst und seine Administratoren keine Möglichkeit, die bearbeiteten und gespeicherten Inhalte einzusehen.

    ", "register_warning_note": "Aufgrund der Verschlüsselung in CryptPad können die Administratoren des Dienstes deine Daten nicht wiederherstellen, falls du deinen Benutzernamen und/oder dein Passwort vergessen solltest. Bitte speichere diese an einem sicheren Ort.", - "whatis_xwiki_info": "

    CryptPad wird bei XWiki entwickelt, einem Unternehmen mit Sitz in Paris, Frankreich, das seit über 15 Jahren Open-Source-Software entwickelt. Wir haben umfangreiche Erfahrung in der Entwicklung von kollaborativer Software zur Organisation von Informationen. Unsere Erfolgsbilanz zeigt, dass wir uns der langfristigen Entwicklung und Wartung von CryptPad verpflichtet fühlen.

    ", + "whatis_xwiki_info": "

    CryptPad wird bei XWiki entwickelt, einem Unternehmen mit Sitz in Paris, Frankreich, das seit über 15 Jahren Open-Source-Software entwickelt. Wir haben umfangreiche Erfahrung in der Entwicklung von kollaborativer Software zur Organisation von Informationen. Unsere Erfolgsbilanz zeigt, dass wir uns der langfristigen Entwicklung und Wartung von CryptPad verpflichtet fühlen.

    ", "docs_link": "Dokumentation", - "home_support": "

    Das Entwicklerteam profitiert in keiner Weise von Daten der Nutzer. Dies ist Teil einer Vision für Online-Dienste, die die Privatsphäre respektieren. Im Gegensatz zu den großen Plattformen, die vorgeben, \"kostenlos\" zu sein, während sie mit persönlichen Daten Profit machen, möchten wir ein nachhaltiges Modell aufbauen, das freiwillig von den Nutzern finanziert wird.

    Du kannst das Projekt unterstützen, indem du eine einmalige oder regelmäßige Spende über Open Collective machst. Unser Budget ist transparent und wird regelmäßig aktualisiert. Es gibt auch mehrere nicht-finanzielle Möglichkeiten, sich zu beteiligen.

    ", + "home_support": "

    Das Entwicklerteam profitiert in keiner Weise von Daten der Nutzer. Dies ist Teil einer Vision für Online-Dienste, die die Privatsphäre respektieren. Im Gegensatz zu den großen Plattformen, die vorgeben, \"kostenlos\" zu sein, während sie mit persönlichen Daten Profit machen, möchten wir ein nachhaltiges Modell aufbauen, das freiwillig von den Nutzern finanziert wird.

    Du kannst das Projekt unterstützen, indem du eine einmalige oder regelmäßige Spende über Open Collective machst. Unser Budget ist transparent und wird regelmäßig aktualisiert. Es gibt auch mehrere nicht-finanzielle Möglichkeiten, sich zu beteiligen.

    ", "home_privacy_text": "CryptPad wurde entwickelt, um Zusammenarbeit zu ermöglichen und gleichzeitig die Daten zu schützen. Alle Inhalte werden in deinem Browser verschlüsselt und entschlüsselt. Das bedeutet, dass Dokumente, Chats und Dateien außerhalb der Sitzung, in der du angemeldet bist, nicht lesbar sind. Selbst die Administratoren des Dienstes haben keinen Zugriff auf deine Daten.", "home_privacy_title": "Eingebauter Datenschutz", "home_opensource_title": "Open Source", @@ -1189,5 +1172,32 @@ "oo_lostEdits": "Leider konnten deine letzten ungespeicherten Bearbeitungen nach dem Synchronisieren neuer Inhalte nicht wiederhergestellt werden.", "fm_cantUploadHere": "Hochladen hier nicht möglich", "importError": "Import fehlgeschlagen (falsches Format)", - "toolbar_degraded": "Derzeit bearbeiten über {0} Benutzer dieses Dokument. Die Benutzerliste und der Chat wurden deaktiviert, um die Performance zu verbessern." + "toolbar_degraded": "Derzeit bearbeiten über {0} Benutzer dieses Dokument. Die Benutzerliste und der Chat wurden deaktiviert, um die Performance zu verbessern.", + "admin_maintenanceButton": "Wartungsarbeiten planen", + "admin_maintenanceTitle": "Wartungsarbeiten", + "broadcast_maintenance": "Zwischen {0} und {1} sind Wartungsarbeiten geplant. Zu dieser Zeit ist CryptPad möglicherweise nicht verfügbar.", + "broadcast_start": "Beginn", + "settings_deleteContinue": "Meinen Account löschen", + "settings_deleteWarning": "Warnung: Du hast derzeit ein Premium-Abo abgeschlossen (bezahlt oder von einem anderen Benutzer zur Verfügung gestellt). Bitte kündige dein Abo, bevor du dein Account löschst. Denn sobald dein Account gelöscht wurde, ist eine Kündigung nur noch über Kontaktaufnahme mit dem Support möglich.", + "broadcast_translations": "Übersetzungen", + "admin_broadcastButton": "Senden", + "broadcast_newSurvey": "Eine neue Umfrage ist verfügbar. Zum Öffnen anklicken.", + "admin_surveyTitle": "Umfrage", + "broadcast_end": "Ende", + "settings_deleteSubscription": "Meine Abonnements verwalten", + "broadcast_surveyURL": "Link zur Umfrage", + "admin_surveyActive": "Umfrage öffnen", + "admin_surveyCancel": "Entfernen", + "admin_surveyButton": "Umfrage speichern", + "broadcast_defaultLanguage": "Standardmäßig diese Sprache verwenden", + "admin_broadcastTitle": "Mitteilung", + "admin_cat_broadcast": "Ankündigungen", + "admin_surveyHint": "Eine externe Umfrage hinzufügen, ändern oder löschen. Die Benutzer werden eine Benachrichtigung erhalten und die Umfrage bleibt über das Benutzermenü verfügbar.", + "admin_maintenanceHint": "Plane Wartungsarbeiten auf dieser Instanz und benachrichtige alle Benutzer. Es kann maximal eine aktive Wartung geben.", + "broadcast_newCustom": "Mitteilung der Administratoren", + "admin_broadcastCancel": "Mitteilung löschen", + "admin_broadcastActive": "Aktive Mitteilung", + "admin_broadcastHint": "Sende eine Mitteilung an alle Benutzer auf dieser Instanz. Alle existierenden und neue Benutzer werden sie als Benachrichtigung erhalten. Du kannst sie mit **Vorschau der Benachrichtigung** überprüfen. Die Vorschau ist mit einem roten Symbol gekennzeichnet und nur für dich sichtbar.", + "broadcast_preview": "Vorschau der Benachrichtigung", + "admin_maintenanceCancel": "Wartungsarbeiten stornieren" } diff --git a/www/common/translations/messages.el.json b/www/common/translations/messages.el.json index 283262209..03ee5db83 100644 --- a/www/common/translations/messages.el.json +++ b/www/common/translations/messages.el.json @@ -40,7 +40,6 @@ "editor": "Συντάκτης", "userlist_offline": "Είσαστε προς το παρόν εκτός σύνδεσης, η λίστα χρηστών δεν είναι διαθέσιμη.", "language": "Γλώσσα", - "newVersion": "To CryptPad αναβαθμίστηκε!
    Δείτε τι καινούριο υπάρχει στην πιο πρόσφατη έκδοση:
    Σημειώσεις κυκλοφορίας του CryptPad {0}", "upgrade": "Αναβάθμιση", "upgradeAccount": "Αναβάθμιση λογαριασμού", "MB": "MB", @@ -227,7 +226,6 @@ "fm_info_recent": "Λίστα των πρόσφατα τροποποιημένων ή ανοιγμένων pads.", "fm_info_trash": "Αδειάστε τον κάδο σας για να απελευθερώσετε χώρο στο CryptDrive σας.", "fm_info_anonymous": "Δεν έχετε συνδεθεί, οπότε τα pads σας θα διαγραφούν μετά από 3 μήνες (μάθετε περισσότερα). Εγγραφείτε ή Συνδεθείτε για να τα κρατήσετε επ' αόριστον.", - "fm_alert_anonymous": "Γεια σας! Αυτή τη στιγμή χρησιμοποιείτε το CryptPad ανώνυμα, αυτό είναι ok αλλά τα pads σας ίσως διαγραφούν μετά από ένα διάστημα αδράνειας. Έχουμε απενεργοποιήσει προηγμένες λειτουργίες του αποθηκευτικού χώρου για τους ανώνυμους χρήστες επειδή θέλουμε να καταστήσουμε ξεκάθαρο πως δεν είναι ένα ασφαλές μέρος για να αποθηκεύετε πράγματα. Μπορείτε να διαβάσετε περισσότερα σχετικά με το γιατί το κάνουμε αυτό και γιατί θα έπρεπε να Εγγραφείτε ή να Συνδεθείτε.", "fm_error_cantPin": "Εσωτερικό σφάλμα διακομιστή. Παρακαλούμε επαναφορτώστε τη σελίδα και προσπαθήστε ξανά.", "fm_viewListButton": "Προβολή λίστας", "fm_viewGridButton": "Προβολή πλέγματος", @@ -352,20 +350,6 @@ "whatis_title": "Τι είναι το CryptPad", "whatis_collaboration": "Γρήγορη, εύκολη συνεργασία", "whatis_drive": "Οργάνωση με το CryptDrive", - "policy_title": "Πολιτική απορρήτου του CryptPad", - "policy_whatweknow": "Τι γνωρίζουμε για εσάς", - "policy_whatweknow_p1": "Ως εφαρμογή η οποία φιλοξενείται στο διαδίκτυο, το CryptPad έχει πρόσβαση στα μεταδεδομένα που είναι εκτεθειμένα από το πρωτόκολλο HTTP. Αυτό συμπεριλαμβάνει την διεύθυνση IP σας και ποικίλες HTTP κεφαλίδες που μπορούν να χρησιμοποιηθούν για να ταυτοποιήσουν τον συγκεκριμένο περιηγητή. Μπορείτε να δείτε τι πληροφορίες μοιράζεται ο περιηγητής σας με το να επισκεφθείτε WhatIsMyBrowser.com.", - "policy_howweuse": "Πώς χρησιμοποιούμε αυτά που μαθαίνουμε", - "policy_howweuse_p1": "Χρησιμοποιούμε αυτές τις πληροφορίες για να παίρνουμε καλύτερες αποφάσεις σχετικά με την προώθηση του CryptPad, εξετάζοντας ποιες από τις προηγούμενες προσπάθειές μας υπήρξαν επιτυχείς. Οι πληροφορίες σχετικά με την τοποθεσία σας μας βοηθούν στο να σκεφτούμε αν θα έπρεπε να παρέχουμε καλύτερη υποστήριξη για γλώσσες εκτός των Αγγλικών.", - "policy_howweuse_p2": "Οι πληροφορίες σχετικά με τον περιηγητή σας (είτε είναι επιτραπέζιου είτε φορητού λειτουργικού συστήματος) μας βοηθάνε να παίρνουμε αποφάσεις στο θέμα προτεραιοτήτων βελτίωσης χαρακτηριστικών. Η ομάδα προγραμματισμού μας είναι μικρή και προσπαθούμε να κάνουμε επιλογές οι οποίες θα βελτιώσουν την εμπειρία όσων το δυνατό περισσότερων χρηστών.", - "policy_whatwetell": "Τι λέμε σε άλλους για εσάς", - "policy_whatwetell_p1": "Δεν παρέχουμε σε τρίτους τις πληροφορίες που συλλέγουμε ή τις πληροφορίες που μας δίνετε εκτός κι αν είμαστε υποχρεωμένοι νομικά.", - "policy_links": "Σύνδεσμοι σε άλλες σελίδες", - "policy_links_p1": "Αυτή η ιστοσελίδα περιέχει συνδέσμους προς άλλες σελίδες, συμπεριλαμβανομένων αυτών που δημιουργήθηκαν από άλλους οργανισμούς. Δεν είμαστε υπεύθυνοι για την πολιτική απορρήτου ή το περιεχόμενο μιας εξωτερικής σελίδας. Ως γενικό κανόνα έχουμε πως οι σύνδεσμοι σε διαφορετικές σελίδες ανοίγουν σε καινούριο παράθυρο για να είναι ξεκάθαρο ότι φεύγετε από το CryptPad.fr.", - "policy_ads_p1": "Δεν προβάλουμε διαφημίσεις εντός της υπηρεσίας, όμως μπορεί να παρέχουμε συνδέσμους στους ανθρώπους που ενισχύουν οικονομικά την έρευνά μας.", - "policy_choices": "Οι επιλογές που έχετε", - "policy_choices_open": "Ο κώδικάς μας διατίθεται ελεύθερα, οπότε έχετε πάντα την επιλογή να φιλοξενήσετε το Cryptpad σε δικό σας διακομιστή.", - "policy_choices_vpn": "Εάν θέλετε να χρησιμοποιήσετε τη δική μας εκδοχή του Cryptpad, αλλά δεν θέλετε να φαίνεται η IP διεύθυνσή σας, μπορείτε να προστατέψετε την IP σας χρησιμοποιώντας το Tor browser bundle, ή ένα VPN.", "tos_title": " Όροι και Προϋποθέσεις του CryptPad", "tos_legal": "Παρακαλούμε μην κάνετε κακή χρήση ή/και κατάχρηση της υπηρεσίας ή οτιδήποτε παράνομο.", "tos_availability": "Ελπίζουμε να βρείτε χρήσιμη αυτή την υπηρεσία, αλλά η προσβασιμότητα κι η απόδοση δεν μπορούν να εγγυηθούν. Παρακαλούμε κάνετε εξαγωγή των δεδομένων σας συχνά.", diff --git a/www/common/translations/messages.es.json b/www/common/translations/messages.es.json index 3334fb2a6..557833592 100644 --- a/www/common/translations/messages.es.json +++ b/www/common/translations/messages.es.json @@ -51,21 +51,6 @@ "button_newcode": "Crear nuevo pad de código", "button_newpoll": "Crear nueva encuesta", "button_newslide": "Crear nueva presentación", - "policy_title": "Política de privacidad Cryptpad", - "policy_whatweknow": "Qué sabemos sobre tí", - "policy_whatweknow_p1": "Como cualquier aplicación que está en la red, Cryptpad tiene acceso a los metadatos expuestos por el protocolo HTTP. Esto incluye tu dirección IP, y otros headers HTTP que pueden ser utilizados para identificar a tu navegador propio. Puedes ver la información que comparte tu navegador visitando WhatIsMyBrowser.com (página en inglés).", - "policy_howweuse": "Cómo usamos lo que aprendemos", - "policy_howweuse_p1": "Usamos esta información para tomar mejores decisiones para promocionar Cryptpad, para evaluar cuáles de nuestros esfuerzos han sido exitosos. La información sobre tu ubicación nos permite saber si deberíamos considerar mejor soporte para idiomas diferentes al inglés.", - "policy_howweuse_p2": "La información sobre tu navegador (en escritorio o móvil) nos ayuda a saber qué características que debemos mejorar. Nuestro equipo de desarrollo es pequeño, e intentamos tomar decisiones que beneficien a la experiencia de la mayoría de nuestros usuarios.", - "policy_whatwetell": "Lo que decimos a otros sobre tí", - "policy_whatwetell_p1": "No suministramos la información que recolectamos a terceros a menos de estar legalmente obligados a hacerlo.", - "policy_links": "Enlaces a otras páginas", - "policy_links_p1": "Esta web contiene enlaces a otros sitios, incluyendo algunos producidos por otras organizaciones. No somos responsables del tratamiento de la privacidad de los datos ni el contenido de páginas externas. Como regla general, los enlaces externos se abren en una nueva pestaña del navegador, para clarificar que estás abandonando a Cryptpad.fr.", - "policy_ads": "Anuncios", - "policy_ads_p1": "Nosotros no mostramos anuncios, pero podemos poner enlaces a las organizaciones que financian nuestro trabajo de investigación.", - "policy_choices": "Lo que puedes hacer", - "policy_choices_open": "Nuestro código fuente es abierto para que siempre tengas la opción de desplegar tu propia instancia de Cryptpad.", - "policy_choices_vpn": "Si deseas utilizar nuestra instancia, pero no deseas exponer tu dirección IP, puedes protegerla utilizando el navegador Tor, o un VPN.", "tos_title": "Condiciones de servicio Cryptpad", "tos_legal": "Por favor, no seas malicioso, abusivo o hagas algo ilegal.", "tos_availability": "Esperamos que este servicio te parezca útil, pero nuestra disponibilidad o rendimiento no pueden ser garantizados. Por favor, exporta tus datos regularmente.", @@ -140,7 +125,7 @@ "login_invalPass": "Contraseña requerida", "login_unhandledError": "Ha ocurrido un error inesperado :(", "register_importRecent": "Importar documentos de su sesión no registrada", - "register_acceptTerms": "Acepto los términos de servicio", + "register_acceptTerms": "Acepto los términos de servicio", "register_passwordsDontMatch": "Las contraseñas no corresponden", "register_mustAcceptTerms": "Tienes que aceptar los términos de servicio", "register_header": "Registrar", @@ -159,7 +144,7 @@ "privacy": "Política de privacidad", "contact": "Contacto", "terms": "Términos de Servicio", - "movedToTrash": "Este pad fue movido a la papelera.
    Acceder a mi Drive", + "movedToTrash": "Este pad fue movido a la papelera.
    Acceder a mi Drive", "fm_newFile": "Nuevo pad", "fm_type": "Tipo", "fm_categoryError": "No se pudo abrir la categoría seleccionada, mostrando la raíz.", @@ -202,14 +187,14 @@ "settings_importDone": "Importación terminada", "feedback_about": "Si estas leyendo esto, quizás sientas curiosidad por saber por qué CryptPad solicita páginas cuando realizas algunas acciones", "feedback_privacy": "Nos importa tu privacidad, y al mismo tiempo queremos que CryptPad sea muy fácil de usar. Utilizamos este archivo para conocer las funcionalidades que importan a nuestros usuarios, pidiéndolo con un parametro que nos dice qué acción fue realizada.", - "feedback_optout": "Si quieres darte de baja, visita tus preferencias, donde podrás activar o desactivar el feedback", + "feedback_optout": "Si quieres darte de baja, visita tus preferencias, donde podrás activar o desactivar el feedback.", "fm_searchName": "Buscar", "fm_searchPlaceholder": "Buscar...", "fm_newButtonTitle": "Crear un nuevo documento o carpeta.", "fm_openParent": "Mostrar en carpeta", "register_writtenPassword": "He escrito mi usuario y contraseña, continuar", "register_cancel": "Cancelar", - "register_warning": " Advertencia", + "register_warning": "Advertencia", "register_alreadyRegistered": "Este usuario ya existe, ¿iniciar sesión?", "button_newwhiteboard": "Nueva Pizarra", "saveTemplateButton": "Guardar como plantilla", @@ -248,11 +233,9 @@ "upload_serverError": "Error: no se pudo subir tu archivo en este momento.", "upload_uploadPending": "Ya tienes una subida en progreso. ¿Cancelar y subir el nuevo archivo?", "upload_success": "Tu archivo ({0}) ha sido subido con éxito y fue añadido a tu drive.", - "newVersion": "CryptPad ha sido actualizado!
    Puedes ver lo que ha cambiado aquí (en inglés):
    Notas de versión para CryptPad {0}", "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.
    Inscríbete (no se requieren datos personales) o Ingresa para almacenarlos en tu disco de forma indefinida. Más información sobre las cuentas registradas.", - "fm_alert_anonymous": "Hola, estás usando CryptPad anónimamente. Está bien, pero tus pads pueden ser borrados después de un périodo de inactividad. Hemos desactivado funciones avanzadas de CryptDrive para usuarios anónimos porque queremos dejar claro que no es un lugar seguro para almacenar cosas. Puedes leer este articulo (en inglés) acerca de por qué hacemos esto y por qué deberías Registrarte e Iniciar sesión.", "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.", @@ -265,7 +248,7 @@ "poll_locked": "Cerrado", "poll_unlocked": "Abierto", "common_connectionLost": "Conexión perdida
    El documento está ahora en modo sólo lectura hasta que la conexión vuelva.", - "pinLimitReachedAlert": "Has llegado a tu límite de espacio. Los nuevos pads no serán guardados en tu CryptDrive.
    Puedes eliminar pads de tu CryptDrive o suscribirte a una oferta premium para obtener más espacio.", + "pinLimitReachedAlert": "Has llegado a tu límite de espacio. Los nuevos pads no serán guardados en tu CryptDrive.
    Puedes eliminar pads de tu CryptDrive o suscribirte a una oferta premium para obtener más espacio.", "fm_info_trash": "Vacía tu papelera para liberar espacio en tu CryptDrive.", "upload_mustLogin": "Tienes que estar conectado para subir archivos", "uploadButton": "Subir", @@ -349,7 +332,7 @@ "invalidHashError": "El documento que has solicitado tiene una URL invalida.", "errorCopy": " Aún puedes acceder al contenido presionando Esc.
    Una vez que cierres esta ventana no te será posible acceder a ella nuevamente.", "errorRedirectToHome": "PresionaEscpara ser redirigido a tu Cryptdrive.", - "newVersionError": "Una nueva versión de CryptPad está disponible.
    Recargar para usar la nueva versión, o presiona escape para acceder a tu contenido en modo offline.", + "newVersionError": "Una nueva versión de CryptPad está disponible.
    Recargar para usar la nueva versión, o presiona escape para acceder a tu contenido en modo offline.", "deletedFromServer": "Nota borrada", "mustLogin": "Debes haber ingresado a tu cuenta para acceder a esta página", "disabledApp": "Esta nota ha sido eliminada por inactividad. Presione Esc para crear una nueva nota.", @@ -372,7 +355,7 @@ "tags_title": "Etiquetas (sólo para tí)", "tags_add": "Actualizar las etiquetas para los pads seleccionados", "tags_notShared": "Tus etiquetas no están compartidas con otros usuarios", - "tags_duplicate": "Duplicar etiquetas:{0}", + "tags_duplicate": "Duplicar etiquetas: {0}", "tags_noentry": "No puedes etiquetar una nota eliminada!", "slide_invalidLess": "Estilo personalizado no válido", "ok": "OK", @@ -426,7 +409,7 @@ "fm_deleteOwnedPad": "Está seguro que quiere remover esta nota del servidor de manera permanente?", "fm_deleteOwnedPads": "Está seguro que quiere remover estas notas del servidor de manera permanente?", "fm_info_recent": "Estas notas han sido abiertas o modificadas recientemente por ti o por tus colaboradores.", - "fm_info_sharedFolder": "Esta es una carpeta compartida. Usted no ha ingresado a su cuenta por lo que solo tiene acceso en modo solo lectura.
    ingresar o ingresar para poder importarla a su Cryptdrive y modificarla.", + "fm_info_sharedFolder": "Esta es una carpeta compartida. Usted no ha ingresado a su cuenta por lo que solo tiene acceso en modo solo lectura.
    ingresar o ingresar para poder importarla a su Cryptdrive y modificarla.", "fm_info_owned": "Usted es el dueño de las notas que se presentan. Esto significa que puede removerlas de manera permanente del servidor cuando lo desee. Si lo hace, los otros usuarios no podrán acceder a ellas nunca más.", "fm_renamedPad": "Ha definido un nombre personalizado para esta nota. El título que se comparte es: br>{0}", "fm_canBeShared": "Esta carpeta puede ser compartida", diff --git a/www/common/translations/messages.fi.json b/www/common/translations/messages.fi.json index b64ab088b..ba3542663 100644 --- a/www/common/translations/messages.fi.json +++ b/www/common/translations/messages.fi.json @@ -59,7 +59,6 @@ "editor": "muokkaaja", "userlist_offline": "Olet offline-tilassa. Käyttäjälista ei ole saatavilla.", "language": "Kieli", - "newVersion": "CryptPad on päivitetty!
    Tutustu uusimman version muutoksiin:
    a href=\"https://github.com/xwiki-labs/cryptpad/releases/tag/{0}\" target=\"_blank\">Julkaisutiedot: CryptPad {0}", "upgrade": "Päivitä", "upgradeAccount": "Päivitä tili", "storageStatus": "Tallennustila:
    {0} käytetty {1}", @@ -70,7 +69,7 @@ "formattedGB": "{0} Gt", "formattedKB": "{0} Kt", "pinLimitReached": "Olet saavuttanut tallennustilarajoituksesi", - "pinLimitReachedAlert": "Olet saavuttanut tallennustilarajoituksesi. Luomiasi uusia padeja ei tallenneta CryptDriveesi.
    Voit joko poistaa olemassaolevia padeja CryptDrivestasi tai päivittää premium-tiliin nostaaksesi tallennustilarajoitusta.", + "pinLimitReachedAlert": "Olet saavuttanut tallennustilarajoituksesi. Luomiasi uusia padeja ei tallenneta CryptDriveesi.
    Voit joko poistaa olemassaolevia padeja CryptDrivestasi tai päivittää premium-tiliin nostaaksesi tallennustilarajoitusta.", "pinLimitReachedAlertNoAccounts": "Olet saavuttanut tallennustilarajoituksesi", "pinLimitNotPinned": "Olet saavuttanut tallennustilarajoituksesi.
    Tätä padia ei tallenneta CryptDriveesi.", "pinLimitDrive": "Olet saavuttanut tallennustilarajoituksesi.
    Et voi luoda uusia padeja.", @@ -87,7 +86,7 @@ "saveTitle": "Tallenna otsikko (Enter)", "forgetButton": "Poista", "forgetPrompt": "OK:n napsauttaminen siirtää padin roskakoriin. Oletko varma?", - "movedToTrash": "Padi on siirretty roskakoriin.
    Siirry Driveen", + "movedToTrash": "Padi on siirretty roskakoriin.
    Siirry Driveen", "shareButton": "Jaa", "shareSuccess": "Linkki kopioitu leikepöydälle", "userListButton": "Käyttäjälista", @@ -291,7 +290,6 @@ "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.
    Rekisteröidy (henkilötietoja ei tarvita) tai kirjaudu sisään säilyttääksesi luomasi asiakirjat pysyvästi CryptDrivessa. Lue lisää rekisteröitymisestä ja käyttäjätileistä.", "fm_info_sharedFolder": "Tämä on jaettu kansio. Et ole kirjautunut sisään, joten voit käyttää sitä ainoastaan vain luku-tilassa.
    Rekisteröidy tai kirjaudu sisään 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_alert_anonymous": "Hei, käytät tällä hetkellä CryptPadia anonyyminä. Voit tietenkin tehdä niin, mutta padisi voidaan poistaa käyttämättömyyden seurauksena. Jotkin Driven edistyneet toiminnot eivät ole saatavilla anonyymeille käyttäjille, koska haluamme tehdä selväksi, ettei se ole turvallinen paikka tiedostojen säilytykseen. Voit lukea lisää tästä linjauksesta ja siitä, miksi palveluun kannattaa rekisteröityä ja kirjautua sisään.", "fm_error_cantPin": "Sisäinen palvelinvirhe. Ole hyvä ja lataa sivu uudelleen.", "fm_viewListButton": "Listanäkymä", "fm_viewGridButton": "Ruudukkonäkymä", @@ -342,7 +340,7 @@ "login_invalPass": "Salasana vaaditaan", "login_unhandledError": "Tapahtui odottamaton virhe :(", "register_importRecent": "Tuo rekisteröitymättömänä luodut asiakirjat CryptDriveen", - "register_acceptTerms": "Hyväksyn käyttöehdot", + "register_acceptTerms": "Hyväksyn käyttöehdot", "register_passwordsDontMatch": "Salasanat eivät täsmää!", "register_passwordTooShort": "Salasanan täytyy olla vähintään {0} merkkiä pitkä.", "register_mustAcceptTerms": "Sinun täytyy hyväksyä käyttöehdot.", @@ -350,7 +348,7 @@ "register_header": "Rekisteröidy", "register_writtenPassword": "Olen kirjoittanut ylös käyttäjätunnukseni ja salasanani, jatka", "register_cancel": "Peruuta", - "register_warning": ". Varoitus", + "register_warning": "Varoitus", "register_alreadyRegistered": "Tämä käyttäjä on jo olemassa, haluatko kirjautua sisään?", "register_emailWarning0": "Näyttää siltä, että lähetit sähköpostiosoitteesi käyttäjätunnuksenasi.", "register_emailWarning1": "Voit halutessasi tehdä niin, mutta sitä ei lähetetä palvelimellemme.", @@ -670,20 +668,6 @@ "team_quota": "Tiimisi tallennustilakiintiö", "settings_codeBrackets": "Sulje sulkeet automaattisesti", "team_viewers": "Katselijat", - "policy_title": "CryptPad-tietosuojakäytäntö", - "policy_whatweknow": "Mitä tiedämme sinusta", - "policy_whatweknow_p1": "Web-sovelluksena CryptPad voi käyttää HTTP-protokollan paljastamia metatietoja. Nämä sisältävät IP-osoitteesi ja joitakin muita HTTP-otsikoita, joista selaimesi voidaan tunnistaa. Voit selvittää selaimesi jakamat tiedot WhatIsMyBrowser.com-palvelussa.", - "policy_howweuse": "Miten käytämme oppimaamme", - "policy_howweuse_p2": "Tiedot selaimestasi (onko kyseessä työpöytä- vai mobiilikäyttöjärjestelmä) auttavat meitä ominaisuuksien kehittämisen priorisointiin liittyvässä päätöksenteossa. Kehitystiimimme on pieni, ja pyrimme tekemään ratkaisuja, jotka hyödyttävät mahdollisimman suurta osaa käyttäjäkunnastamme.", - "policy_whatwetell": "Mitä kerromme muille sinusta", - "policy_whatwetell_p1": "Emme anna keräämiämme tai antamiasi tietoja kolmansille osapuolille, ellei meillä ole lakisääteistä velvollisuutta tehdä niin.", - "policy_links": "Linkit muille sivuille", - "policy_links_p1": "Tämä sivu sisältää linkkejä muiden organisaatioiden tuottamille sivuille. Emme ole vastuussa ulkopuolisten sivujen yksityisyyskäytännöistä tai sisällöstä. Linkit ulkopuolisille sivustoille avataan pääsääntöisesti uuteen selainikkunaan, jotta CryptPad.fr-sivustolta poistuminen on selkeämpi havaita.", - "policy_ads": "Mainokset", - "policy_ads_p1": "Emme näytä sivustollamme lainkaan verkkomainontaa, mutta voimme sisällyttää linkkejä tutkimustamme rahoittavien tahojen sivuille.", - "policy_choices": "Vaihtoehtosi", - "policy_choices_open": "Lähdekoodimme on avointa, joten voit halutessasi perustaa oman CryptPad-instanssisi.", - "policy_choices_vpn": "Jos haluat käyttää ylläpitämäämme CryptPad-instanssia, mutta et paljastaa IP-osoitettasi, voit suojata sen käyttämällä Tor-selainpakettia tai VPN-palvelua.", "features": "Ominaisuudet", "features_title": "Ominaisuudet", "features_anon": "Rekisteröitymätön", @@ -721,7 +705,6 @@ "features_f_supporter_note": "Auta CryptPadia nousemaan taloudellisesti kannattavaksi ja näytä, että yksityisyyttä korostavan, asiakkaiden omasta tahdostaan rahoittaman ohjelmiston tulisi olla normi", "features_f_subscribe": "Tilaa", "features_f_subscribe_note": "Tilaamiseen tarvitaan rekisteröity käyttäjätili", - "policy_howweuse_p1": "Käytämme näitä tietoja suunnitellaksemme CryptPadin mainostusta ja arvioidaksemme aiempien kampanjoiden onnistumista. Sijaintitietosi puolestaan kertovat meille, mitä kieliä CryptPadin tulisi mahdollisesti tukea englannin lisäksi.", "tos_title": "CryptPad-käyttöehdot", "tos_legal": "Älä ole pahantahtoinen, väärinkäyttäjä tai tee mitään laitonta.", "tos_availability": "Toivomme sinun pitävän tätä palvelua hyödyllisenä, mutta emme voi taata sen saatavuutta tai suorituskykyä. Viethän tietosi säännöllisesti muualle talteen.", @@ -759,7 +742,7 @@ "info_privacyFlavour": "Tietosuojakäytäntömme kertoo, miten kohtelemme tietojasi.", "user_about": "Tietoja CryptPadista", "info_imprintFlavour": "Oikeudellisia tietoja tämän instanssin ylläpitäjistä.", - "settings_safeLinkDefault": "Turvalliset linkit on nyt otettu käyttöön oletusarvoisesti. Käytä Jaa-valikkoa linkkien kopiointiin selaimesi osoiterivin sijaan.", + "settings_safeLinkDefault": "Turvalliset linkit on nyt otettu käyttöön oletusarvoisesti. Käytä Jaa-valikkoa linkkien kopiointiin selaimesi osoiterivin sijaan.", "support_languagesPreamble": "Tukitiimi puhuu seuraavia kieliä:", "slide_textCol": "Tekstin väri", "slide_backCol": "Taustaväri", @@ -869,7 +852,7 @@ "support_formContentError": "Virhe: sisältö on tyhjä", "support_formTitleError": "Virhe: otsikko on tyhjä", "support_formButton": "Lähetä", - "support_formHint": "Käytä tätä lomaketta ottaaksesi ylläpitäjiin yhteyttä ongelmatilanteissa tai kysyäksesi kysymyksiä turvallisella tavalla.
    Joihinkin ongelmiin ja kysymyksiin voi löytyä vastaus CryptPad-käyttäjäoppaasta (englanniksi). Ethän luo uusia tukipyyntöjä, jos sinulla on jo samaan ongelmaan liittyvä avoin tukipyyntö. Kommentoi sen sijaan alkuperäistä tukipyyntöäsi.", + "support_formHint": "Käytä tätä lomaketta ottaaksesi ylläpitäjiin yhteyttä ongelmatilanteissa tai kysyäksesi kysymyksiä turvallisella tavalla.
    Joihinkin ongelmiin ja kysymyksiin voi löytyä vastaus CryptPad-käyttäjäoppaasta (englanniksi). Ethän luo uusia tukipyyntöjä, jos sinulla on jo samaan ongelmaan liittyvä avoin tukipyyntö. Kommentoi sen sijaan alkuperäistä tukipyyntöäsi.", "support_formTitle": "Uusi palvelupyyntö", "support_cat_new": "Uusi palvelupyyntö", "support_disabledHint": "Tätä CryptPad-instanssia ei ole konfiguroitu tukilomaketta varten.", @@ -939,7 +922,7 @@ "markdown_toc": "Sisältö", "survey": "CryptPad-kysely", "crowdfunding_popup_no": "Ei nyt", - "crowdfunding_popup_text": "

    Tarvitsemme apuasi!

    Haluatko tukea CryptPadin aktiivista kehitystä? Harkitse projektin tukemista OpenCollective-sivullamme, jossa voit nähdä tiekarttamme ja rahoitustavoitteemme.", + "crowdfunding_popup_text": "

    Tarvitsemme apuasi!

    Haluatko tukea CryptPadin aktiivista kehitystä? Harkitse projektin tukemista OpenCollective-sivullamme, jossa voit nähdä tiekarttamme ja rahoitustavoitteemme.", "crowdfunding_button2": "Auta CryptPadia", "crowdfunding_button": "Tue CryptPadia", "autostore_notAvailable": "Sinun täytyy tallentaa tämä padi CryptDriveesi käyttääksesi tätä toimintoa.", @@ -948,7 +931,7 @@ "autostore_error": "Odottamaton virhe: emme voineet tallentaa padia, ole hyvä ja yritä uudestaan.", "autostore_hide": "Älä tallenna", "autostore_store": "Tallenna", - "autostore_settings": "Voit ottaa automaattisen padien tallennuksen käyttöön Asetukset-sivulta!", + "autostore_settings": "Voit ottaa automaattisen padien tallennuksen käyttöön Asetukset-sivulta!", "autostore_notstored": "Tämä {0} ei ole tallennettuna CryptDrivessasi. Haluatko tallentaa sen nyt?", "autostore_pad": "padi", "autostore_sf": "kansio", @@ -1004,7 +987,7 @@ "creation_owned1": "Omistettu asiakirja voidaan poistaa palvelimelta omistajan niin halutessa. Omistetun asiakirjan poistaminen poistaa sen myös muiden käyttäjien CryptDriveista.", "creation_owned": "Omistettu padi", "creation_404": "Tätä padia ei ole enää olemassa. Käytä seuraavaa lomaketta uuden padin luontiin.", - "feedback_optout": "Jos haluat jättäytyä pois tästä toiminnallisuudesta, voit tehdä sen Käyttäjäasetukset-sivulta löytyvän käyttäjäpalautevalintaruudun avulla", + "feedback_optout": "Jos haluat jättäytyä pois tästä toiminnallisuudesta, voit tehdä sen Käyttäjäasetukset-sivulta löytyvän käyttäjäpalautevalintaruudun avulla.", "feedback_privacy": "Välitämme yksityisyydestäsi, ja haluamme samalla tehdä CryptPadista mahdollisimman helppokäyttöisen. Käytämme tätä tiedostoa selvittääksemme, mitkä käyttöliittymätoiminnot ovat tärkeitä käyttäjillemme, pyytämällä sitä tehdyn toiminnon kertovan parametrin yhteydessä.", "feedback_about": "Jos luet tätä, haluat todennäköisesti tietää, miksi CryptPad lähettää pyyntöjä web-sivuille tiettyjen toimintojen yhteydessä", "readme_cat3_l3": "CryptPad-kyselyilä voit pitää nopeita äänestyksiä esimerkiksi kokouksien aikataulujen yhteensovittamiseksi", @@ -1014,7 +997,7 @@ "kanban_body": "Sisältö", "logoutEverywhere": "Kirjaudu ulos kaikkialta", "restrictedError": "Sinulla ei ole oikeutta käyttää tätä asiakirjaa", - "safeLinks_error": "Tämä linkki kopioitiin selaimen osoiteriviltä, eikä se anna käyttöoikeutta asiakirjaan. Ole hyvä ja käytä Jaa -valikkoa jakaaksesi yhteystietojen kanssa tai kopioidaksesi linkin. Lue lisää Turvalliset linkit-ominaisuudesta.\n", + "safeLinks_error": "Tämä linkki kopioitiin selaimen osoiteriviltä, eikä se anna käyttöoikeutta asiakirjaan. Ole hyvä ja käytä Jaa -valikkoa jakaaksesi yhteystietojen kanssa tai kopioidaksesi linkin. Lue lisää Turvalliset linkit-ominaisuudesta.", "burnAfterReading_warningAccess": "Tämä asiakirja tuhoaa itsensä. Kun napsautat allaolevaa painiketta, näet sisällön kerran, jonka jälkeen se poistetaan pysyvästi. Kun suljet tämän ikkunan, et pääse enää käyttämään asiakirjan sisältöä. Jos et ole valmis jatkamaan, voit sulkea tämän ikkunan ja tulla myöhemmin takaisin.", "profile_info": "Muut käyttäjät voivat löytää käyttäjäprofiilisi asiakirjojen käyttäjälistoissa näkyvän avatarin avulla.", "readme_cat3": "Löydä CryptPad-sovellukset", @@ -1097,7 +1080,7 @@ "loading_state_0": "Rakenna käyttöliittymä", "register_notes_title": "Tärkeät huomiot", "home_support_title": "Tue CryptPadia", - "home_opensource": "Kuka tahansa voi ylläpitää omaa henkilökohtaista tai ammattimaista CryptPad-instanssia. Lähdekoodi on saatavilla GitHubissa.", + "home_opensource": "Kuka tahansa voi ylläpitää omaa henkilökohtaista tai ammattimaista CryptPad-instanssia. Lähdekoodi on saatavilla GitHubissa.", "home_opensource_title": "Avoin lähdekoodi", "home_host_title": "Tietoja tästä instanssista", "home_privacy_text": "CryptPad on luotu helpottamaan yhteistyötä ja pitämään samalla tietosi yksityisinä. Kaikki sisällön salaus ja purku tapahtuu omassa selaimessasi. Tämä tarkoittaa, että asiakirjat, keskustelut ja tiedostot ovat lukukelvottomia istuntosi ulkopuolella. Edes palvelun ylläpitäjät eivät pääse käyttämään tietojasi.", diff --git a/www/common/translations/messages.fr.json b/www/common/translations/messages.fr.json index f3eff56bc..5665fb1b1 100644 --- a/www/common/translations/messages.fr.json +++ b/www/common/translations/messages.fr.json @@ -57,7 +57,6 @@ "editor": "éditeur", "userlist_offline": "Vous êtes actuellement hors-ligne, la liste des utilisateurs n'est pas disponible.", "language": "Langue", - "newVersion": "CryptPad a été mis à jour !
    Découvrez les nouveautés de la dernière version :
    Notes de version pour CryptPad {0}", "upgrade": "Augmenter votre limite", "upgradeAccount": "Améliorer le compte", "MB": "Mo", @@ -67,7 +66,7 @@ "formattedGB": "{0} Go", "formattedKB": "{0} Ko", "pinLimitReached": "Vous avez atteint votre limite de stockage", - "pinLimitReachedAlert": "Vous avez atteint votre limite de stockage. Les nouveaux pads ne seront pas enregistrés dans votre CryptDrive.
    Vous pouvez soit supprimer des pads de votre CryptDrive, soit vous abonner à une offre premium pour augmenter la limite maximale.", + "pinLimitReachedAlert": "Vous avez atteint votre limite de stockage. Les nouveaux pads ne seront pas enregistrés dans votre CryptDrive.
    Vous pouvez soit supprimer des pads de votre CryptDrive, soit vous abonner à une offre premium pour augmenter la limite maximale.", "pinLimitReachedAlertNoAccounts": "Vous avez atteint votre limite de stockage", "pinLimitNotPinned": "Vous avez atteint votre limite de stockage.
    Ce pad n'est pas enregistré dans votre CryptDrive.", "pinLimitDrive": "Vous avez atteint votre limite de stockage.
    Vous ne pouvez pas créer de nouveaux pads.", @@ -84,7 +83,7 @@ "saveTitle": "Enregistrer le titre (Entrée)", "forgetButton": "Supprimer", "forgetPrompt": "Cliquer sur OK déplacera ce pad vers la corbeille de votre CryptDrive, êtes-vous sûr ?", - "movedToTrash": "Ce pad a été déplacé vers la corbeille.
    Accéder à mon Drive", + "movedToTrash": "Ce pad a été déplacé vers la corbeille.
    Accéder à mon Drive", "shareButton": "Partager", "shareSuccess": "Lien copié dans le presse-papiers", "userListButton": "Liste d'utilisateurs", @@ -287,7 +286,6 @@ "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.
    Enregistrez vous (aucune information personelle requise) ou Connectez vous pour les stocker de manière permanente dans votre drive. En lire plus sur les comptes utilisateurs.", "fm_info_sharedFolder": "Voici le contenu d'un dossier partagé. Il n'est accessible qu'en lecture seule car vous n'êtes pas connecté.
    Inscrivez-vous ou connectez-vous 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_alert_anonymous": "Bonjour ! Vous utilisez actuellement CryptPad de manière anonyme, ce qui ne pose pas de problème mais vos pads peuvent être supprimés après un certain temps d'inactivité. Nous avons désactivé certaines fonctionnalités avancées de CryptDrive pour les utilisateurs anonymes afin de rendre clair le fait que ce n'est pas un endroit sûr pour le stockage des documents. Vous pouvez en lire plus concernant nos raisons pour ces changements et pourquoi vous devriez vraiment vous enregistrer et vous connecter.", "fm_error_cantPin": "Erreur interne du serveur. Veuillez recharger la page et essayer de nouveau.", "fm_viewListButton": "Liste", "fm_viewGridButton": "Grille", @@ -336,13 +334,13 @@ "login_invalPass": "Mot de passe requis", "login_unhandledError": "Une erreur inattendue s'est produite :(", "register_importRecent": "Importer les documents de votre session non-enregistrée", - "register_acceptTerms": "J'accepte les conditions d'utilisation", + "register_acceptTerms": "J'accepte les conditions d'utilisation", "register_passwordsDontMatch": "Les mots de passe doivent être identiques !", "register_passwordTooShort": "Les mots de passe doivent contenir au moins {0} caractères.", "register_mustAcceptTerms": "Vous devez accepter les conditions d'utilisation.", "register_writtenPassword": "J'ai bien noté mon nom d'utilisateur et mon mot de passe, continuer", "register_cancel": "Annuler", - "register_warning": " Attention", + "register_warning": "Attention", "register_alreadyRegistered": "Cet utilisateur existe déjà, souhaitez-vous vous connecter ?", "register_whyRegister": "Pourquoi s'inscrire ?", "register_header": "Créer un compte", @@ -502,21 +500,6 @@ "whatis_title": "Qu'est-ce que CryptPad ?", "whatis_collaboration": "Collaboration Privée", "whatis_drive": "Organisation avec CryptDrive", - "policy_title": "Politique de confidentialité de CryptPad", - "policy_whatweknow": "Ce que nous savons de vous", - "policy_whatweknow_p1": "En tant qu'application hébergée sur le web, CryptPad a accès aux meta-données exposées par le protocole HTTP. Ceci inclus votre adresse IP et d'autres en-têtes HTTP qui peuvent être utilisées pour identifier votre propre navigateur. Vous pouvez voir quelles informations votre navigateur partage en visitant WhatIsMyBrowser.com.", - "policy_howweuse": "Comment nous utilisons ce que nous apprenons", - "policy_howweuse_p1": "Nous utilisons ces informations pour prendre de meilleures décisions concernant la communication autour de CryptPad, en évaluant le succès de ce qui a été réalisé par le passé. Les informations concernant votre localisation nous permettent de savoir si nous devons considérer l'ajout de traductions de CryptPad dans d'autres langues que l'anglais.", - "policy_howweuse_p2": "Les informations concernant votre navigateur (que ce soit un système d'exploitation de bureau ou d'appareil portable) nous aident à prendre des décisions lors de la priorisation des ajouts et améliorations de fonctionnalités. Notre équipe de développement est petite, et nous essayons de prendre des décisions qui amélioreront l'expérience du plus grand nombre d'utilisateurs possible.", - "policy_whatwetell": "Ce que nous dévoilons à d'autres à propos de vous", - "policy_whatwetell_p1": "Nous ne fournissons aucune information que nous récoltons ou que vous nous fournissez à des tierces parties à moins d'y être contraints par la loi.", - "policy_links": "Liens vers d'autres sites", - "policy_links_p1": "Ce site contient des liens vers d'autres sites, certains étant produits par d'autres organisations. Nous ne sommes responsables des pratiques de confidentialité ou du contenu d'aucun site externe. De manière générale, les liens vers des sites externes sont lancés dans une nouvelle fenêtre (ou onglet) du navigateur, pour rendre clair le fait que vous quittez CryptPad.fr.", - "policy_ads": "Publicité", - "policy_ads_p1": "Nous n'affichons pas de publicité en ligne, bien que nous puissions afficher des liens vers les sites des organisations qui financent nos recherches.", - "policy_choices": "Vos choix", - "policy_choices_open": "Notre code est open source, ce qui signifie que vous avez toujours la possibilité d'héberger votre propre instance de CryptPad.", - "policy_choices_vpn": "Si vous souhaitez utiliser notre instance hébergée (cryptpad.fr) mais que vous ne souhaitez pas exposer votre adresse IP, vous pouvez la protéger en utilisant le navigateur Tor, ou un VPN.", "features": "Fonctionnalités", "features_title": "Fonctionnalités", "features_anon": "Non-enregistré", @@ -584,9 +567,9 @@ "readme_cat3_l1": "Avec l'éditeur de code de CryptPad, vous pouvez collaborer sur du code comme JavaScript ou des langages comme HTML ou Markdown", "readme_cat3_l2": "Avec l'éditeur de présentations de CryptPad, vous pouvez réaliser des présentations rapides en utilisant Markdown", "readme_cat3_l3": "Avec CryptPoll vous pouvez créer rapidement des sondages, et en particulier plannifier des meetings qui rentrent dans l'agenda de tout ceux qui souhaitent participer", - "feedback_about": "Si vous lisez ceci, vous vous demandez probablement pourquoi CryptPad envoie des requêtes vers des pages web quand vous réalisez certaines actions", + "feedback_about": "Si vous lisez ceci, vous vous demandez probablement pourquoi CryptPad envoie des requêtes vers des pages web quand vous réalisez certaines actions.", "feedback_privacy": "Nous prenons au sérieux le respect de votre vie privée, et en même temps nous souhaitons rendre CryptPad très simple à utiliser. Nous utilisons cette page pour comprendre quelles fonctionnalités dans l'interface comptent le plus pour les utilisateurs, en l'appelant avec un paramètre spécifiant quelle action a été réalisée.", - "feedback_optout": "Si vous le souhaitez, vous pouvez désactiver ces requêtes en vous rendant dans votre page de préférences, où vous trouverez une case à cocher pour désactiver le retour d'expérience", + "feedback_optout": "Si vous le souhaitez, vous pouvez désactiver ces requêtes en vous rendant dans votre page de préférences, où vous trouverez une case à cocher pour désactiver le retour d'expérience.", "creation_404": "Ce pad n'existe plus. Vous pouvez créer un nouveau pad en utilisant le formulaire suivant.", "creation_owned": "Être propriétaire de ce pad", "creation_owned1": "Être propriétaire d'un élément signifie que vous pouvez le détruire à tout moment. Une fois détruit, un élément devient inaccessible dans CryptDrive de tous les utilisateurs.", @@ -638,7 +621,7 @@ "autostore_sf": "dossier", "autostore_pad": "pad", "autostore_notstored": "Ce {0} n'est pas dans votre CryptDrive. Souhaitez-vous le stocker ?", - "autostore_settings": "Vous pouvez activer le stockage automatique des pads dans vos Préférences !", + "autostore_settings": "Vous pouvez activer le stockage automatique des pads dans vos Préférences !", "autostore_store": "Stocker", "autostore_hide": "Ne pas stocker", "autostore_error": "Erreur : nous n'avons pas réussi à stocker ce pad, veuillez ré-essayer.", @@ -647,7 +630,7 @@ "autostore_notAvailable": "Vous devez stocker ce pad dans votre CryptDrive avant de pouvoir utiliser cette fonctionnalité.", "crowdfunding_button": "Soutenir CryptPad", "crowdfunding_button2": "Aider CryptPad", - "crowdfunding_popup_text": "

    Aider CryptPad

    Pour vous assurer que CryptPad soit activement développé, nous vous invitons à supporter le projet via la page OpenCollective, où vous pouvez trouver notre Roadmap et nos objectifs de financement.", + "crowdfunding_popup_text": "

    Aider CryptPad

    Pour vous assurer que CryptPad soit activement développé, nous vous invitons à supporter le projet via la page OpenCollective, où vous pouvez trouver notre Roadmap et nos objectifs de financement.", "crowdfunding_popup_no": "Pas maintenant", "survey": "Enquête CryptPad", "markdown_toc": "Sommaire", @@ -750,7 +733,7 @@ "admin_supportInitPrivate": "Votre instance de CryptPad est configurée pour utiliser la messagerie de support mais votre compte utilisateur ne connaît pas la bonne clé privée nécessaire pour y avoir accès. Veuillez utiliser le formulaire suivant pour ajouter ou mettre à jour la clé dans votre compte.", "admin_supportInitHint": "Vous pouvez configurer une messagerie de support afin de fournir aux utilisateurs de votre instance CryptPad un moyen de vous contacter de manière sécurisée en cas de problème avec leur compte.", "admin_supportListHint": "Voici la liste des tickets envoyés par les utilisateurs au support. Tous les administrateurs peuvent voir les tickets et leurs réponses. Un ticket fermé ne peut pas être ré-ouvert. Vous ne pouvez supprimer (ou cacher) que les tickets fermés, et les tickets supprimés restent visible par les autres administrateurs.", - "support_formHint": "Utilisez ce formulaire pour contacter les administrateurs de manière sécurisée au sujet de problèmes ou de questions.
    Veuillez noter que certains problèmes/questions peuvent déjà être traités dans le Guide Utilisateur de CryptPad. Veuillez ne pas créer de nouveau ticket si vous avez déjà un ticket ouvert concernant le même problème. Merci de répondre à votre message d'origine avec toute information supplémentaire.", + "support_formHint": "Utilisez ce formulaire pour contacter les administrateurs de manière sécurisée au sujet de problèmes ou de questions.
    Veuillez noter que certains problèmes/questions peuvent déjà être traités dans le Guide Utilisateur de CryptPad. Veuillez ne pas créer de nouveau ticket si vous avez déjà un ticket ouvert concernant le même problème. Merci de répondre à votre message d'origine avec toute information supplémentaire.", "support_listHint": "Voici la liste des tickets envoyés au support, ainsi que les réponses. Un ticket fermé ne peut pas être ré-ouvert, mais il est possible d'en créer un nouveau. Vous pouvez cacher les tickets qui ont été fermés.", "support_notification": "Un administrateur a répondu à votre ticket de support", "requestEdit_button": "Demander les droits d'édition", @@ -922,7 +905,7 @@ "settings_safeLinksHint": "CryptPad inclut dans ses liens les clés permettant de déchiffrer vos pads. Toute personne ayant accès à votre historique de navigation peut potentiellement lire vos données. Cela inclut les extensions de navigateur intrusives et les navigateurs qui synchronisent votre historique entre les appareils. L'activation des \"liens sécurisés\" empêche les clés d'entrer dans votre historique de navigation ou d'être affichées dans votre barre d'adresse quand cela est possible. Nous vous recommandons vivement d'activer cette fonction et d'utiliser le menu {0} Partager.", "profile_login": "Vous devez vous connecter pour ajouter cet utilisateur à vos contacts", "dontShowAgain": "Ne plus demander", - "safeLinks_error": "Ce lien a été copié depuis la barre d'adresse du navigateur et ne donne pas accès au document. Veuillez utiliser le menu Partager pour partager avec vos contacts ou copier un lien. En savoir plus sur les Liens Sécurisés.\n", + "safeLinks_error": "Ce lien a été copié depuis la barre d'adresse du navigateur et ne donne pas accès au document. Veuillez utiliser le menu Partager pour partager avec vos contacts ou copier un lien. En savoir plus sur les Liens Sécurisés.", "settings_safeLinksCheckbox": "Activer les liens sécurisés", "settings_safeLinksTitle": "Liens Sécurisés", "settings_cat_security": "Confidentialité", @@ -1004,7 +987,7 @@ "toolbar_insert": "Insérer", "toolbar_theme": "Thème", "todo_move": "Votre liste de tâches est désormais dans le kanban {0} dans votre Drive.", - "settings_safeLinkDefault": "Les liens sécurisés sont désormais activés par défaut. Veuillez utiliser le menu Partager pour copier les liens plutôt que la barre d'adresse de votre navigateur.", + "settings_safeLinkDefault": "Les liens sécurisés sont désormais activés par défaut. Veuillez utiliser le menu Partager pour copier les liens plutôt que la barre d'adresse de votre navigateur.", "support_languagesPreamble": "L'équipe de support parle les langues suivantes :", "info_privacyFlavour": "Description de la confidentialité de vos données.", "user_about": "À propos de CryptPad", @@ -1136,7 +1119,7 @@ "offlineError": "Impossible de synchroniser les données les plus récentes, cette page ne peut pas être affichée pour le moment. Le chargement continuera au retour de votre connexion au service.", "creation_helperText": "Ouvrir la documentation", "creation_expiresIn": "Expirera dans", - "whatis_xwiki_info": "

    CryptPad est fabriqué à XWiki, une société basée à Paris, France, qui fabrique des logiciels open-source depuis plus de 15 ans. Nous avons une grande expérience dans la réalisation de logiciels collaboratifs pour organiser l'information. Notre histoire montre que nous sommes engagés dans le développement et la maintenance à long terme de CryptPad.

    ", + "whatis_xwiki_info": "

    CryptPad est fabriqué à XWiki, une société basée à Paris, France, qui fabrique des logiciels open-source depuis plus de 15 ans. Nous avons une grande expérience dans la réalisation de logiciels collaboratifs pour organiser l'information. Notre histoire montre que nous sommes engagés dans le développement et la maintenance à long terme de CryptPad.

    ", "whatis_xwiki": "Fabriqué à XWiki", "whatis_model_info": "

    Depuis 2016, CryptPad est soutenu par des bourses de recherche françaises et européennes telles que BPI France, NLNet Foundation, NGI Trust, Mozilla Open Source Support, ainsi que par des dons et des abonnements à cryptpad.fr. Nous pensons que l'argent public doit financer du code public, c'est pourquoi le service est entièrement open source. Cela signifie que tout le monde peut utiliser, héberger et modifier le logiciel.

    CryptPad ne profite pas des données des utilisateurs. Cela fait partie d'une vision des services en ligne qui respectent la vie privée. Contrairement aux grandes plateformes qui prétendent être \"gratuites\" tout en tirant profit des informations personnelles, CryptPad vise à construire un modèle durable financé volontairement par les utilisateurs.

    Nous offrons les fonctionnalités de CryptPad gratuitement parce que nous pensons que chacun a droit à la protection de sa vie privée, et pas seulement les personnes ayant un revenu suffisant. Si vous êtes en mesure de soutenir le projet, vous contribuerez aux nouvelles fonctionnalités, aux améliorations et à la maintenance qui profiteront à tous les utilisateurs.

    Maintenant que la faisabilité du projet a été établie, le prochain objectif est de le rendre financièrement viable grâce au financement des utilisateurs. Si vous souhaitez soutenir CryptPad et contribuer à en faire une alternative durable aux grandes plateformes, veuillez envisager de faire un don unique ou récurrent.

    ", "whatis_model": "Modèle économique", @@ -1147,9 +1130,9 @@ "register_warning_note": "En raison de la nature chiffrée de CryptPad, les administrateurs du service ne seront pas en mesure de récupérer les données au cas où vous oublieriez votre nom d'utilisateur et/ou votre mot de passe. Veuillez les sauvegarder dans un endroit sûr.", "register_notes": "
    • Votre mot de passe est la clé secrète utilisée pour chiffrer tous vos documents. Si vous le perdez, nous ne pourrons pas récupérer vos données.
    • Si vous utilisez un ordinateur partagé, n'oubliez pas de vous déconnecter après avoir terminé. La simple fermeture de la fenêtre du navigateur laisse votre compte exposé.
    • Pour conserver les documents que vous avez créés et/ou stockés sans être connecté, cochez \"Importer les documents de votre session anonyme\".
    ", "register_notes_title": "Notes importantes", - "home_support": "

    L'équipe de développement ne tire aucun profit des données personnelles des utilisateurs. Cela s'inscrit dans une vision pour des services en ligne qui respectent la vie privée. Contrairement aux grandes plateformes qui prétendent être \"gratuites\" tout en tirant profit des informations personnelles, CryptPad vise à construire un modèle durable financé volontairement par les utilisateurs.

    Vous pouvez soutenir le projet en faisant un don unique ou récurrent par le biais de notre Open Collective. Notre budget est transparent et des mises à jour sont publiées régulièrement. Il existe également un certain nombre de moyens non financiers de contribuer.

    ", + "home_support": "

    L'équipe de développement ne tire aucun profit des données personnelles des utilisateurs. Cela s'inscrit dans une vision pour des services en ligne qui respectent la vie privée. Contrairement aux grandes plateformes qui prétendent être \"gratuites\" tout en tirant profit des informations personnelles, CryptPad vise à construire un modèle durable financé volontairement par les utilisateurs.

    Vous pouvez soutenir le projet en faisant un don unique ou récurrent par le biais de notre Open Collective. Notre budget est transparent et des mises à jour sont publiées régulièrement. Il existe également un certain nombre de moyens non financiers de contribuer.

    ", "home_support_title": "Soutenez CryptPad", - "home_opensource": "CryptPad est un logiciel libre. Il peut être installé par qui veut proposer ce service dans un cadre personnel ou professionnel. Le code source est disponible sur Github.", + "home_opensource": "CryptPad est un logiciel libre. Il peut être installé par qui veut proposer ce service dans un cadre personnel ou professionnel. Le code source est disponible sur Github.", "home_opensource_title": "Open Source", "home_host_title": "À propos de cette instance", "home_privacy_text": "CryptPad est conçu pour permettre la collaboration tout en préservant la confidentialité des données. Tout le contenu est chiffré et déchiffré par votre navigateur. Cela signifie que les documents, les chats et les fichiers sont illisibles en dehors de la session à laquelle vous êtes connecté. Même les administrateurs du service n'ont pas accès à vos informations.", @@ -1189,5 +1172,32 @@ "fm_cantUploadHere": "Impossible d'importer un fichier ici", "importError": "Impossible d'importer (mauvais format)", "oo_lostEdits": "Vos récentes modifications non sauvegardées n'ont pas pu être récupérées après la synchronisation du nouveau contenu.", - "toolbar_degraded": "Au moins {0} éditeurs sont actuellement connectés à ce document. La liste des utilisateurs et le chat sont désactivés pour améliorer les performances." + "toolbar_degraded": "Au moins {0} éditeurs sont actuellement connectés à ce document. La liste des utilisateurs et le chat sont désactivés pour améliorer les performances.", + "settings_deleteSubscription": "Gérer mon abonnement", + "settings_deleteContinue": "Supprimer mon compte", + "settings_deleteWarning": "Attention : vous êtes actuellement abonné à un plan premium (payé ou offert par un autre utilisateur). Veuillez annuler votre plan avant de supprimer votre compte car cela ne sera plus possible sans contacter le support une fois votre compte supprimé.", + "broadcast_newCustom": "Message des administrateurs", + "broadcast_preview": "Aperçu de la notification", + "broadcast_defaultLanguage": "Langage par défaut", + "broadcast_translations": "Traductions", + "admin_broadcastCancel": "Effacer le message", + "admin_broadcastActive": "Message actif", + "admin_broadcastButton": "Envoyer", + "admin_broadcastHint": "Envoyez un message à tous les utilisateurs de cette instance. Tous les utilisateurs existants et nouveaux le recevront sous forme de notification. Prévisualisez les messages avant de les envoyer avec **Aperçu de la notification**. Les aperçus de notifications ont une icône rouge et ne sont visibles que par vous.", + "admin_broadcastTitle": "Message d'annonce", + "broadcast_surveyURL": "Lien vers l'enquête", + "admin_surveyActive": "Ouvrir l'enquête", + "admin_surveyCancel": "Supprimer", + "admin_surveyButton": "Enregistrer l'enquête", + "broadcast_newSurvey": "Une nouvelle enquête est disponible. Cliquer pour l'ouvrir.", + "admin_surveyHint": "Ajouter, mettre à jour ou supprimer un lien vers une enquête externe. Les utilisateurs recevront une notification et l'enquête restera disponible dans le menu utilisateur.", + "admin_surveyTitle": "Enquête", + "broadcast_maintenance": "Une maintenance est prévue entre {0} et {1}. CryptPad pourrait être inaccessible pendant ce temps.", + "broadcast_end": "Fin", + "broadcast_start": "Début", + "admin_maintenanceCancel": "Annuler maintenance", + "admin_maintenanceButton": "Planifier maintenance", + "admin_maintenanceHint": "Planifier une maintenance sur cette instance et avertir tous les utilisateurs. Limité à une maintenance active à la fois.", + "admin_maintenanceTitle": "Maintenance", + "admin_cat_broadcast": "Annonces" } diff --git a/www/common/translations/messages.it.json b/www/common/translations/messages.it.json index 68a68aaef..1c2db0a29 100644 --- a/www/common/translations/messages.it.json +++ b/www/common/translations/messages.it.json @@ -58,7 +58,6 @@ "editor": "editore", "userlist_offline": "Sei offline, l'elenco degli utenti non è disponibile.", "language": "Lingua", - "newVersion": "CryptPad è stato aggiornato!
    Scopri cosa c'è di nuovo nell'ultima versione:
    note di rilascio di CryptPad {0}", "upgrade": "Aumentare il limite", "upgradeAccount": "Upgrade dell'account", "MB": "MB", @@ -68,7 +67,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "Hai raggiunto il limite di spazio", - "pinLimitReachedAlert": "Hai raggiunto il limite di spazio. I nuovi pad non saranno salvati nel tuo CryptDrive.
    Puoi rimuovere dei pad dal tuo CryptDrive o sottoscrivere un'offerta premium per incrementare il tuo limite.", + "pinLimitReachedAlert": "Hai raggiunto il limite di spazio. I nuovi pad non saranno salvati nel tuo CryptDrive.
    Puoi rimuovere dei pad dal tuo CryptDrive o sottoscrivere un'offerta premium per incrementare il tuo limite.", "pinLimitReachedAlertNoAccounts": "Hai raggiunto il limite di spazio", "pinLimitNotPinned": "Hai raggiunto il limite di spazio.
    Questo pad non è salvato nel tuo CryptDrive.", "pinLimitDrive": "Hai raggiunto il limite di spazio.
    Non puoi creare nuovi pad.", @@ -85,7 +84,7 @@ "saveTitle": "Salva il titolo (Invio)", "forgetButton": "Elimina", "forgetPrompt": "Cliccando OK questo pad sarà spostato nel cestino. Sei sicuro?", - "movedToTrash": "Questo pad è stato spostato nel cestino.
    Accedi al mio Drive", + "movedToTrash": "Questo pad è stato spostato nel cestino.
    Accedi al mio Drive", "shareButton": "Condividi", "shareSuccess": "Link copiato negli appunti", "userListButton": "Elenco degli utenti", @@ -333,13 +332,12 @@ "login_invalPass": "Password richiesta", "login_unhandledError": "Si è verificato un errore inaspettato :(", "register_importRecent": "Importa i pad dalla tua sessione anonima", - "register_acceptTerms": "Accetto i termini del servizio", + "register_acceptTerms": "Accetto i termini del servizio", "register_passwordsDontMatch": "Le password non corrispondono!", "register_passwordTooShort": "Le password devono essere lunghe almeno {0} caratteri.", "register_mustAcceptTerms": "Devi accettare i termini del servizio.", "register_whyRegister": "Perché registrarsi?", "register_header": "Benvenuto su CryptPad", - "fm_alert_anonymous": "Ciao! Stai attualmente utilizzando CryptPad in modalità anonima, questo non crea problemi ma i tuoi pad potrebbero essere eliminati dopo un periodo di inattività. Abbiamo disabilitato alcune funzioni avanzate di CryptDrive per gli utenti anonimi, per chiarire che non è un luogo sicuro per la conservazione di documenti. Puoi leggere di più sul perché lo stiamo facendo e sul perché dovresti veramente registrarti e accedere.", "register_writtenPassword": "Ho annotato il mio nome utente e la mia password, procedi", "register_cancel": "Torna indietro", "register_warning": "Zero Knowledge significa che non possiamo recuperare i tuoi dati se perdi la tua password.", @@ -417,8 +415,7 @@ "upload_mustLogin": "Devi eseguire l'accesso per poter caricare file", "pad_base64": "Questo pad contiene immagini conservate in maniera inefficiente. Queste immagini aumenteranno significativamente le dimensioni del pad nel tuo CryptDrive, e lo renderanno più lento da caricare. Puoi convertire questi file in un nuovo formato che verrà conservato separatamente nel tuo CryptDrive. Vuoi convertire queste immagini ora?", "mdToolbar_code": "Codice", - "home_host": "Questa è un'istanza di CryptPad gestita indipendentemente dalla community. Il suo codice sorgente è disponibile su GitHub.", - "policy_choices_open": "Il nostro codice sorgente è open source, così hai sempre la possibilità di ospitare la tua personale istanza di CryptPad.", + "home_host": "Questa è un'istanza di CryptPad gestita indipendentemente dalla community.", "features_f_file0": "Apri i file", "help_genericMore": "Impara di più su cosa può fare CryptPad per te leggendo le nostre FAQ", "readme_cat3_l1": "Con l'editor di codice di CryptPad, puoi collaborare su linguaggi di programmazione come Javascript e linguaggi di markdown come HTML o Markdown", @@ -428,17 +425,6 @@ "register_emailWarning2": "Non sarai in grado di resettare la tua password usando la tua email, a differenza di come puoi fare con molti altri servizi.", "register_emailWarning3": "Se hai capito, ma intendi comunque usare la tua email come nome utente, clicca OK.", "oo_sheetMigration_anonymousEditor": "Le modifiche da parte di utenti anonimi a questo foglio di calcolo sono disabilitate finché un utente registrato non lo aggiorna all'ultima versione.", - "policy_howweuse": "Come usiamo i dati che raccogliamo", - "policy_whatweknow": "Cosa sappiamo di te", - "policy_title": "Informativa sulla privacy di CryptPad", - "policy_howweuse_p1": "Utilizziamo queste informazioni per migliorare le nostre decisioni in merito a come meglio pubblicizzare CryptPad, valutando quali dei nostri sforzi passati hanno avuto maggiore successo. Le informazioni sulla tua posizione ci permettono di sapere se dovremmo prendere in considerazione la possibilità di fornire un migliore supporto per lingue diverse dall'inglese.", - "policy_ads_p1": "Non mostriamo alcuna pubblicità online, anche se potremmo inserire link agli enti che finanziano la nostra ricerca.", - "policy_ads": "Pubblicità", - "policy_links_p1": "Questo sito contiene link ad altri siti, compresi quelli prodotti da altre organizzazioni. Non siamo responsabili delle pratiche relative alla privacy o dei contenuti di siti esterni. Come regola generale, i link a siti esterni vengono aperti in una nuova finestra del browser, per chiarire che si sta lasciando CryptPad.fr.", - "policy_links": "LInk ad altri siti", - "policy_whatwetell_p1": "Non forniamo a terzi le informazioni che raccogliamo o che ci fornite, a meno che non siamo legalmente obbligati a farlo.", - "policy_whatwetell": "Cosa comunichiamo a terzi riguardo a te", - "policy_howweuse_p2": "Le informazioni relative al tuo browser (sia che si tratti di un sistema operativo desktop che di uno mobile) ci aiutano a prendere decisioni quando si tratta di dare priorità ai miglioramenti delle funzionalità. Il nostro gruppo di sviluppo è piccolo e cerchiamo di fare scelte che migliorino l'esperienza del maggior numero di utenti possibile.", "features_f_support": "Supporto più rapido", "features_f_register": "Registrati gratuitamente", "features_f_file1_note": "Condividi file con i tuoi contatti o incorporali nei tuoi pad", @@ -516,12 +502,9 @@ "features_f_file0_note": "Guarda e scarica file condivisi da altri utenti", "features_f_core_note": "Modifica, Importa & Esporta, Cronologia, Elenco utenti, Chat", "features_title": "Confronto delle funzionalità", - "policy_choices_vpn": "Se vuoi utilizzare la nostra istanza ma non vuoi esporre il tuo indirizzo IP puoi proteggerlo usando il browser Tor, oppure una VPN.", - "policy_whatweknow_p1": "Come applicazione ospitata sul web, CryptPad ha accesso ai metadati esposti dal protocollo HTTP. Questo include il tuo indirizzo IP e altre intestazioni HTTP che possono essere usati per identificare il tuo browser. Puoi vedere quali informazioni condivide il tuo browser visitando WhatIsMyBrowser.com.", "features_f_core": "Funzioni comuni delle applicazioni", "features_f_apps": "Accesso alle applicazioni principali", "features": "Funzionalità", - "policy_choices": "Le tue scelte", "whatis_drive": "Organizzazione con CryptDrive", "whatis_collaboration": "Collaborazione veloce, facile", "terms": "Condizioni del servizio", @@ -810,7 +793,7 @@ "creation_owned": "Pad di proprietà", "creation_owned1": "Un pad di proprietà può essere eliminato dal server quando il proprietario vuole. Eliminando un pad lo si rimuove anche dai CryptDrive degli altri utenti.", "feedback_about": "Se stai leggendo questo, probabilmente sei curioso di sapere perché CryptPad richieda pagine internet quando attivi certe azioni", - "feedback_optout": "Se vuoi evitare di fornire questi dati visita la tua pagina delle impostazioni, dove trovi una casella di controllo per abilitare o disabilitare il feedback utente", + "feedback_optout": "Se vuoi evitare di fornire questi dati visita la tua pagina delle impostazioni, dove trovi una casella di controllo per abilitare o disabilitare il feedback utente.", "properties_confirmNew": "Sei sicuro? Aggiungendo una password modificherai l'URL di questo pad e rimuoverai la sua cronologia. Gli utenti che non hanno la password perderanno l'accesso a questo pad", "properties_confirmChange": "Sei sicuro? Modificando la password rimuoverai la sua cronologia. Gli utenti che non hanno la nuova password perderanno l'accesso a questo pad", "properties_passwordSuccess": "La password è stata modificata con successo.
    Premi OK per ricaricare ed aggiornare i tuoi diritti d'accesso.", @@ -820,7 +803,7 @@ "autostore_notstored": "Questo {0} non è nel tuo CryptDrive. Vuoi archiviarlo adesso?", "autostore_store": "Archivia", "autostore_error": "Errore inaspettato: impossibile archiviare questo pad, riprova.", - "autostore_settings": "Puoi abilitare l'archiviazione automatica dei pad nella tua pagina delle Impostazioni!", + "autostore_settings": "Puoi abilitare l'archiviazione automatica dei pad nella tua pagina delle Impostazioni!", "autostore_saved": "Questo pad è stato archiviato con successo nel tuo CryptDrive!", "sharedFolders_create_owned": "Cartella di proprietà", "autostore_hide": "Non archiviare", @@ -941,7 +924,7 @@ "properties_passwordWarning": "La password è stata cambiata ma non siamo in grado di aggiornare il tuo CryptDrive con i nuovi dati. Devi rimuovere i vecchi pad manualmente.
    Premi OK per ricaricare ed aggiornare i tuoi diritti di accesso.", "share_embedCategory": "Incorporamento", "chrome68": "Sembra che tu stia usando il browser Chrome o Chromium versione 68. Contiene un bug che si manifesta nella pagina che diventa completamente bianca dopo alcuni secondi o smette di rispondere ai clic. Per risolvere il problema puoi passare ad un'altra scheda e tornare a questa, o provare a scorrere la pagina. Questo problema sarà risolto nella prossima versione del tuo browser.", - "crowdfunding_popup_text": "

    Abbiamo bisogno del tuo aiuto!

    Per garantire che CryptPad sia attivamente sviluppato, valuta se aiutare il progetto sulla pagina OpenCollective, dove potrai vedere la nostra Roadmap e gli obiettivi di finanziamento.", + "crowdfunding_popup_text": "

    Abbiamo bisogno del tuo aiuto!

    Per garantire che CryptPad sia attivamente sviluppato, valuta se aiutare il progetto sulla pagina OpenCollective, dove potrai vedere la nostra Roadmap e gli obiettivi di finanziamento.", "admin_updateLimitHint": "Forzare un aggiornamento dei limiti dello spazio utente può essere fatto in qualsiasi momento, ma è necessario solo in caso di errori", "admin_flushCacheTitle": "Svuota la cache HTTP", "admin_flushCacheButton": "Svuota la cache", diff --git a/www/common/translations/messages.ja.json b/www/common/translations/messages.ja.json index 43c4ddacf..64921f642 100644 --- a/www/common/translations/messages.ja.json +++ b/www/common/translations/messages.ja.json @@ -124,7 +124,6 @@ "login_invalUser": "ユーザー名を入力してください", "register_importRecent": "匿名セッション中のパッドをインポート", "importButton": "インポート", - "policy_title": "CryptPad プライバシーポリシー", "main_catch_phrase": "コラボレーションスイート
    暗号化されかつオープンソース", "tos_3rdparties": "私たちは、法律で義務付けられている場合を除き、個別のデータを第三者に提供しません。", "tos_logs": "あなたのブラウザからサーバーに送信されたメタデータは、サービスを維持するために記録される場合があります。", @@ -294,8 +293,6 @@ "features_f_file1": "ファイルのアップロードと共有", "features_f_social_note": "プロフィールの作成、アバターの使用、連絡先とのチャット", "features_f_social": "特別なアプリケーション", - "policy_whatweknow_p1": "ウェブ上でホストされるアプリケーションとして、CryptPad は HTTP プロトコルによって公開されるメタデータにアクセスできます。これには、IP アドレス、および特定のブラウザを識別するために使用可能なその他のさまざまな HTTP ヘッダーの情報が含まれます。ブラウザから共有される情報は、WhatIsMyBrowser.com (外部サイト)にアクセスすると確認できます。", - "policy_whatweknow": "私たちが収集可能なあなたについての情報", "tos_e2ee": "CryptPad のコンテンツは、パッドのフラグメント識別子を推測または取得できる人物なら誰でも閲覧や編集が行えます。エンドツーエンド暗号化(E2EE)を採用したメッセンジャーサービスなどを使用してリンクを共有し、リンク漏洩が発生しないよう対策を行ってください。", "contact_chat": "チャット", "contact_bug": "バグの報告", @@ -321,19 +318,7 @@ "oo_sheetMigration_loading": "あなたのスプレッドシートを最新バージョンにアップグレードしています", "settings_ownDriveButton": "アカウントをアップグレード", "features_f_file1_note": "連絡先とファイルを共有したり、パッドを埋め込む", - "policy_choices_open": "私たちのソフトウェアのコードはオープンソースなので、いつでも CryptPad を独自のインスタンスでホストすることが可能です。", - "policy_choices": "あなたの選択肢", - "policy_ads": "広告の掲載は行いません", - "policy_ads_p1": "私たちはいかなるオンライン広告も表示しませんが、私たちに資金を提供している団体へのリンクを掲載する可能性はあります。", - "policy_links_p1": "このサイトには、他の団体によって作成されたサイトを含む、外部サイトへのリンクが含まれています。私たちは、プライバシー上の取り扱いや外部サイトの内容について責任を負いません。一般的に、外部サイトへのリンクは、新しいブラウザウィンドウで起動され、CryptPad.fr を離れることを明確にします。", - "policy_links": "他のサイトへのリンク", - "policy_whatwetell": "私たちが第三者に共有する可能性のあるあなたの情報", - "policy_whatwetell_p1": "私たちは、法的に要求されない限り、私たちが収集した情報またはあなたから私たちに提供された情報を第三者に共有しません。", - "policy_howweuse_p2": "ブラウザに関する情報(デスクトップなのかモバイル端末の OS なのか)は、機能の改善に優先順位を付ける際に決定を下すのに役立ちます。私たちの開発チームは小さく、できる限り多くのユーザーのエクスペリエンスを向上させる選択を行います。", - "policy_howweuse": "私たちが収集した情報を何に使うか", - "policy_howweuse_p1": "収集した情報を使用して、過去の取り組みのうちどれが成功したかを評価することで、CryptPad の宣伝に関するより良い意思決定を行います。あなたの所在地に関する情報により、英語以外の言語に対するサポートの改善を検討すべきかどうかがわかります。", "crowdfunding_button": "CryptPad を支援", - "policy_choices_vpn": "私たちがホストするインスタンスを使用したいが、IP アドレスを私たちに公開したくない場合は、Tor Browser または VPN を使用してあなたの IP アドレスを保護できます。", "contacts_removeHistoryTitle": "チャット履歴を削除", "properties_passwordSuccessFile": "パスワードは正常に変更されました。", "drive_sfPasswordError": "誤ったパスワードです", @@ -404,7 +389,7 @@ "whatis_model": "ビジネスモデル", "whatis_collaboration": "プライベートコラボレーション", "home_support_title": "CryptPad を支援する", - "home_opensource": "CryptPad は、個人やプロなど誰でもホストすることができます。ソースコードは GitHub で確認できます。", + "home_opensource": "CryptPad は、個人やプロなど誰でもホストすることができます。ソースコードは GitHub で確認できます。", "home_opensource_title": "オープンソース", "home_host_title": "このインスタンスについて", "home_privacy_text": "CryptPad は、データをプライベートに保護しながらコラボレーションを可能にするように構築されています。すべてのコンテンツは、あなたのブラウザ上で暗号化および復号されます。つまり、ドキュメント、チャット、およびファイルは、あなたがログインしているセッション以外では読み取れません。サービス管理者でさえ、あなたの情報にアクセスすることはできません。", diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index ceec7b35f..49a15df20 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -59,7 +59,6 @@ "editor": "editor", "userlist_offline": "You're currently offline, the user list is not available.", "language": "Language", - "newVersion": "CryptPad has been updated!
    Check out what's new in the latest version:
    Release notes for CryptPad {0}", "upgrade": "Upgrade", "upgradeAccount": "Upgrade account", "storageStatus": "Storage:
    {0} used out of {1}", @@ -70,7 +69,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "You've reached your storage limit", - "pinLimitReachedAlert": "You've reached your storage limit. New pads won't be stored in your CryptDrive.
    You can either remove pads from your CryptDrive or subscribe to a premium offer to increase your limit.", + "pinLimitReachedAlert": "You've reached your storage limit. New pads won't be stored in your CryptDrive.
    You can either remove pads from your CryptDrive or subscribe to a premium offer to increase your limit.", "pinLimitReachedAlertNoAccounts": "You've reached your storage limit", "pinLimitNotPinned": "You've reached your storage limit.
    This pad is not stored in your CryptDrive.", "pinLimitDrive": "You've reached your storage limit.
    You can't create new pads.", @@ -87,7 +86,7 @@ "saveTitle": "Save the title (enter)", "forgetButton": "Delete", "forgetPrompt": "Clicking OK will move this pad to your trash. Are you sure?", - "movedToTrash": "That pad has been moved to the trash.
    Access my Drive", + "movedToTrash": "That pad has been moved to the trash.
    Access my Drive", "shareButton": "Share", "shareSuccess": "Copied link to clipboard", "userListButton": "User list", @@ -291,7 +290,6 @@ "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.
    Sign up (no personal information required) or Log in to store them in your drive indefinitely. Read more about registered accounts.", "fm_info_sharedFolder": "This is a shared folder. You're not logged in so you can only access it in read-only mode.
    Sign up or Log in 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_alert_anonymous": "Hello there, you are currently using CryptPad anonymously, that's ok but your pads may be deleted after a period of inactivity. We have disabled advanced features of the drive for anonymous users because we want to be clear that it is not a safe place to store things. You can read more about why we are doing this and why you really should Sign up and Log in.", "fm_error_cantPin": "Internal server error. Please reload the page and try again.", "fm_viewListButton": "List view", "fm_viewGridButton": "Grid view", @@ -342,7 +340,7 @@ "login_invalPass": "Password required", "login_unhandledError": "An unexpected error occurred :(", "register_importRecent": "Import documents from your unregistered session", - "register_acceptTerms": "I accept the terms of service", + "register_acceptTerms": "I accept the terms of service", "register_passwordsDontMatch": "Passwords do not match!", "register_passwordTooShort": "Passwords must be at least {0} characters long.", "register_mustAcceptTerms": "You must accept the terms of service.", @@ -350,7 +348,7 @@ "register_header": "Register", "register_writtenPassword": "I have written down my username and password, proceed", "register_cancel": "Cancel", - "register_warning": " Warning", + "register_warning": "Warning", "register_alreadyRegistered": "This user already exists, do you want to log in?", "register_emailWarning0": "It looks like you submitted your email as your username.", "register_emailWarning1": "You can do that if you want, but it won't be sent to our server.", @@ -517,21 +515,6 @@ "whatis_title": "What is CryptPad?", "whatis_collaboration": "Private Collaboration", "whatis_drive": "Organization with CryptDrive", - "policy_title": "CryptPad Privacy Policy", - "policy_whatweknow": "What we know about you", - "policy_whatweknow_p1": "As an application that is hosted on the web, CryptPad has access to metadata exposed by the HTTP protocol. This includes your IP address, and various other HTTP headers that can be used to identify your particular browser. You can see what information your browser is sharing by visiting WhatIsMyBrowser.com.", - "policy_howweuse": "How we use what we learn", - "policy_howweuse_p1": "We use this information to make better decisions about promoting CryptPad, by evaluating which of our past efforts were successful. Information about your location lets us know whether we should consider providing better support for languages other than English.", - "policy_howweuse_p2": "Information about your browser (whether it's a desktop or mobile operating system) helps us make decisions when prioritizing feature improvements. Our development team is small, and we try to make choices that will improve as many users' experience as possible.", - "policy_whatwetell": "What we tell others about you", - "policy_whatwetell_p1": "We do not furnish to third parties the information that we gather or that you provide to us unless we are legally required to do so.", - "policy_links": "Links to other sites", - "policy_links_p1": "This site contains links to other sites, including those produced by other organizations. We are not responsible for the privacy practices or the contents of any outside sites. As a general rule, links to outside sites are launched in a new browser window, to make clear that you are leaving CryptPad.fr.", - "policy_ads": "Advertisement", - "policy_ads_p1": "We do not display any online advertising, though we may link to the bodies which are financing our research.", - "policy_choices": "Choices you have", - "policy_choices_open": "Our code is open source, so you always have the option of hosting your own instance of CryptPad.", - "policy_choices_vpn": "If you want to use our hosted instance, but don't want to expose your IP address, you can protect your IP using the Tor browser bundle, or a VPN.", "features": "Features", "features_title": "Features", "features_anon": "Non-registered", @@ -599,9 +582,9 @@ "readme_cat3_l1": "With CryptPad code editor, you can collaborate on code like Javascript and markdown like HTML and Markdown", "readme_cat3_l2": "With CryptPad slide editor, you can make quick presentations using Markdown", "readme_cat3_l3": "With CryptPoll you can take quick votes, especially for scheduling meetings which fit with everybody's calendar", - "feedback_about": "If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions", + "feedback_about": "If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions.", "feedback_privacy": "We care about your privacy, and at the same time we want CryptPad to be very easy to use. We use this file to figure out which UI features matter to our users, by requesting it along with a parameter specifying which action was taken.", - "feedback_optout": "If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback", + "feedback_optout": "If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback.", "creation_404": "This pad no longer exists. Use the following form to create a new pad.", "creation_owned": "Owned pad", "creation_owned1": "An owned item can be destroyed whenever the owner wants. Destroying an owned item makes it unavailable from other users' CryptDrives.", @@ -657,7 +640,7 @@ "autostore_sf": "folder", "autostore_pad": "pad", "autostore_notstored": "This {0} is not in your CryptDrive. Do you want to store it now?", - "autostore_settings": "You can enable automatic pad storage in your Settings page!", + "autostore_settings": "You can enable automatic pad storage in your Settings page!", "autostore_store": "Store", "autostore_hide": "Don't store", "autostore_error": "Unexpected error: we were unable to store this pad, please try again.", @@ -666,7 +649,7 @@ "autostore_notAvailable": "You must store this pad in your CryptDrive before being able to use this feature.", "crowdfunding_button": "Support CryptPad", "crowdfunding_button2": "Help CryptPad", - "crowdfunding_popup_text": "

    We need your help!

    To ensure that CryptPad is actively developed, consider supporting the project via the OpenCollective page, where you can see our Roadmap and Funding goals.", + "crowdfunding_popup_text": "

    We need your help!

    To ensure that CryptPad is actively developed, consider supporting the project via the OpenCollective page, where you can see our Roadmap and Funding goals.", "crowdfunding_popup_no": "Not now", "survey": "CryptPad survey", "markdown_toc": "Contents", @@ -748,7 +731,7 @@ "support_disabledHint": "This CryptPad instance is not yet configured to use a support form.", "support_cat_new": "New ticket", "support_formTitle": "New Ticket", - "support_formHint": "Use this form to securely contact the administrators about issues and questions.
    Please note that some issues/questions may already be addressed in the CryptPad User Guide. Please do not create a new ticket if you already have an open ticket about the same issue. Instead, reply to your original message with any additional information.", + "support_formHint": "Use this form to securely contact the administrators about issues and questions.
    Please note that some issues/questions may already be addressed in the CryptPad User Guide. Please do not create a new ticket if you already have an open ticket about the same issue. Instead, reply to your original message with any additional information.", "support_formButton": "Send", "support_formTitleError": "Error: title is empty", "support_formContentError": "Error: content is empty", @@ -922,7 +905,7 @@ "settings_cat_security": "Confidentiality", "settings_safeLinksTitle": "Safe Links", "settings_safeLinksCheckbox": "Enable safe links", - "safeLinks_error": "This link was copied from the browser's address bar and does not provide access to the document. Please use the Share menu to share directly with contacts or copy the link. Read more about the Safe Links feature.\n", + "safeLinks_error": "This link was copied from the browser's address bar and does not provide access to the document. Please use the Share menu to share directly with contacts or copy the link. Read more about the Safe Links feature.", "dontShowAgain": "Don't show again", "profile_login": "You need to log in to add this user to your contacts", "settings_safeLinksHint": "CryptPad includes the keys to decrypt your pads in their links. Anyone with access to your browsing history can potentially read your data. This includes intrusive browser extensions and browsers that sync your history across devices. Enabling \"safe links\" prevents the keys from entering your browsing history or being displayed in your address bar whenever possible. We strongly recommend that you enable this feature and use the {0} Share menu.", @@ -1005,7 +988,7 @@ "slide_backCol": "Background color", "slide_textCol": "Text color", "support_languagesPreamble": "The support team speaks the following languages:", - "settings_safeLinkDefault": "Safe Links are now turned on by default. Please use the Share menu to copy links rather than your browser's address bar.", + "settings_safeLinkDefault": "Safe Links are now turned on by default. Please use the Share menu to copy links rather than your browser's address bar.", "info_imprintFlavour": "Legal information about the administrators of this instance.", "user_about": "About CryptPad", "info_privacyFlavour": "Our privacy policy describes how we treat your data.", @@ -1138,9 +1121,9 @@ "home_privacy_text": "CryptPad is built to enable collaboration while keeping data private. All content is encrypted and decrypted by your browser. This means documents, chats, and files are unreadable outside of the session where you are logged in. Even the service administrators do not have access to your information.", "home_host_title": "About this instance", "home_opensource_title": "Open Source", - "home_opensource": "Anyone can host CryptPad and offer the service in a personal or professional capacity. The source code is available on Github.", + "home_opensource": "Anyone can host CryptPad and offer the service in a personal or professional capacity. The source code is available on Github.", "home_support_title": "Support CryptPad", - "home_support": "

    The development team does not profit from user data in any way. This is part of a vision for online services that respect privacy. Unlike the big platforms that pretend to be \"free\" while making profits from personal information, we aim to build a sustainable model funded willingly by users.

    You can support the project by making a one-time or recurring donation through our Open Collective. Our budget is transparent and updates are published regularly. There are also a number of non-financial ways to contribute.

    ", + "home_support": "

    The development team does not profit from user data in any way. This is part of a vision for online services that respect privacy. Unlike the big platforms that pretend to be \"free\" while making profits from personal information, we aim to build a sustainable model funded willingly by users.

    You can support the project by making a one-time or recurring donation through our Open Collective. Our budget is transparent and updates are published regularly. There are also a number of non-financial ways to contribute.

    ", "register_notes_title": "Important notes", "register_notes": "
    • Your password is the secret key that encrypts all of your documents. If you lose it there is no way we can recover your data.
    • If you are using a shared computer, remember to log out when you are done. Only closing the browser window leaves your account exposed.
    • To keep the documents you created and/or stored without being logged in, tick \"Import documents from your anonymous session\".
    ", "register_warning_note": "Due to the encrypted nature of CryptPad, the service administrators will not be able to recover data in case you forget your username and/or password. Please save them in a safe place.", @@ -1151,7 +1134,7 @@ "whatis_model": "Business model", "whatis_model_info": "

    CryptPad has been supported since 2016 by French and European research grants such as BPI France, NLNet Foundation, NGI Trust, Mozilla Open Source Support, as well as donations and subscriptions to cryptpad.fr. We believe that public money should fund public code, so the service is fully open source. This means anyone can use, host, and modify the software.

    CryptPad does not profit from user data. This is part of a vision for online services that respect privacy. Unlike the big platforms that pretend to be \"free\" while making profits from personal information, CryptPad aims to build a sustainable model funded willingly by users.

    We offer CryptPad's functionality for free because we believe everyone deserves personal privacy, not just people with disposable income. If you are in a position to support the project, you will contribute new features, improvements and maintenance that benefit all users.

    Now that the feasibility of the project has been established, the next goal is to make it financially sustainable through user funding. If you would like to support CryptPad and help make it a sustainable alternative to the big platforms, please consider making a one-time or recurring donation.

    ", "whatis_xwiki": "Made at XWiki", - "whatis_xwiki_info": "

    CryptPad is made at XWiki, a company based in Paris, France that has been making open-source software for over 15 years. We have extensive experience making collaborative software to organise information. Our track record shows we are committed to the long-term development and maintenance of CryptPad.

    ", + "whatis_xwiki_info": "

    CryptPad is made at XWiki, a company based in Paris, France that has been making open-source software for over 15 years. We have extensive experience making collaborative software to organise information. Our track record shows we are committed to the long-term development and maintenance of CryptPad.

    ", "creation_expiresIn": "Expires in", "creation_helperText": "Open in documentation", "docs_link": "Documentation", @@ -1189,5 +1172,32 @@ "importError": "Failed to import (wrong format)", "fm_cantUploadHere": "Can't upload a file here", "oo_lostEdits": "Unfortunately your recent unsaved edits could not be recovered after synchronising new content.", - "toolbar_degraded": "Over {0} editors are currently present in this document. The user list and chat are disabled to improve performance." + "toolbar_degraded": "Over {0} editors are currently present in this document. The user list and chat are disabled to improve performance.", + "admin_cat_broadcast": "Broadcast", + "admin_maintenanceTitle": "Maintenance", + "admin_maintenanceHint": "Plan a maintenance on this instance and notify all users. Limited to one active maintenance at a given time.", + "admin_maintenanceButton": "Plan maintenance", + "admin_maintenanceCancel": "Cancel maintenance", + "broadcast_start": "Start", + "broadcast_end": "End", + "broadcast_maintenance": "A maintenance is planned between {0} and {1}. CryptPad may be unavailable at that time.", + "admin_surveyTitle": "Survey", + "admin_surveyHint": "Add, update or remove a link to an external survey. Users will receive a notification and the survey will remain available from the user menu.", + "broadcast_newSurvey": "A new survey is available. Click to open.", + "admin_surveyButton": "Save survey", + "admin_surveyCancel": "Remove", + "admin_surveyActive": "Open survey", + "broadcast_surveyURL": "Survey link", + "admin_broadcastTitle": "Broadcast message", + "admin_broadcastHint": "Send a message to all users on this instance. All existing and new users will receive it as a notification. Preview messages before sending them with **Preview notification**. Preview notifications have a red icon and are visible only to you.", + "admin_broadcastButton": "Send", + "admin_broadcastActive": "Active message", + "admin_broadcastCancel": "Delete message", + "broadcast_translations": "Translations", + "broadcast_defaultLanguage": "Fallback to this language", + "broadcast_preview": "Preview notification", + "broadcast_newCustom": "Message from the administrators", + "settings_deleteWarning": "Warning: you are currently subscribed to a premium plan (paid or given by another user). Please cancel your plan before deleting your account as will not be possible without contacting support once your account is deleted.", + "settings_deleteContinue": "Delete my account", + "settings_deleteSubscription": "Manage my subscription" } diff --git a/www/common/translations/messages.nb.json b/www/common/translations/messages.nb.json index 64419f62b..20c55da35 100644 --- a/www/common/translations/messages.nb.json +++ b/www/common/translations/messages.nb.json @@ -7,47 +7,48 @@ "kanban": "Kanban", "slide": "Presentasjon", "file": "Fil", - "todo": "Oppgaver", + "todo": "Gjøremål", "contacts": "Kontakter", "sheet": "Regneark", "teams": "Grupper", "media": "Media", - "drive": "CryptDrive" + "drive": "CryptDrive", + "whiteboard": "Tavle" }, "button_newpad": "Nytt tekstdokument", - "button_newcode": "Ny kode-pad", + "button_newcode": "Nytt kode-dokument", "button_newpoll": "Ny avstemming", "button_newslide": "Ny presentasjon", - "button_newwhiteboard": "Nytt whiteboard", + "button_newwhiteboard": "Ny tavle", "button_newkanban": "Ny Kanban", "button_newsheet": "Nytt regneark", - "common_connectionLost": "Frakoblet server
    Beklager, du er i lesemodus inntil vi har koblet deg opp igjen.", + "common_connectionLost": "Tjener frakoblet
    I lesemodus til tilkoblingen gjenopprettes.", "typeError": "Dette dokumentet er ikke kompatibelt med det valgte programmet", - "onLogout": "Du er logget av, {0}klikk her{1} for å logge inn
    eller trykk Escape for å se dokumentet i lesemodus.", - "padNotPinned": "Denne pad-en vil automatisk utgå på dato etter 3 måneder uten aktivitet, {0}logg inn{1} eller {2}registrer deg{3} for å ta vare på den.", - "anonymousStoreDisabled": "Beklager, denne CryptPad-en er ikke tilgjengelig for anonyme brukere. Vennligst logg inn for å bruke CryptDrive.", - "expiredError": "Vi beklager, denne paden har gått ut på dato og er ikke tilgjengelig.", - "deletedError": "Vi beklager, denne pad-en er sletta og er ikke lenger tilgjengelig.", - "inactiveError": "Vi beklager, denne pad-en har blitt sletta pga. inaktivitet. Vennligst trykk Esc for å lage en ny.", - "chainpadError": "Vi beklager, en kritisk feil oppstod. Denne siden er i lesemodus slik at du ikke mister arbeidet.
    Trykk Esc for å fortsette, eller forsøk å laste inn sida på nytt.", - "invalidHashError": "Vi beklager, dokumentet du ba om har en ugyldig link.", - "errorCopy": " Du kan ta vare på dette innholdet ved å trykke Esc.
    Om du forlater denne sida er innholdet borte!", - "errorRedirectToHome": "Trykk Esc for å videresendes til din CryptDrive.", - "newVersionError": "Jej, en en ny versjon av CryptPad er her.
    Last inn eller trykk Esc for å redigere innholdet i offline modus.", - "loading": "Laster…", + "onLogout": "Du er utlogget, {0}klikk her{1} for å logge inn
    eller trykk Esc for å se dokumentet i lesemodus.", + "padNotPinned": "Dette dokumentet vil automatisk utløpe etter 3 måneder uten aktivitet, {0}logg inn{1} eller {2}registrer deg{3} for å ta vare på det.", + "anonymousStoreDisabled": "Beklager, denne CryptPad-dokumentet er ikke tilgjengelig for anonyme brukere. Logg inn for å bruke CryptDrive.", + "expiredError": "Dette dokumentet har utløpt, og er ikke tilgjengelig.", + "deletedError": "Dette dokumentet er slettet, og dermed ikke lenger tilgjengelig.", + "inactiveError": "Dette dokumentet har blitt har blitt slettet pga. inaktivitet. Trykk «Esc» for å lage en nytt dokument.", + "chainpadError": "En kritisk feil oppstod under oppdatering av innholdet. Denne siden er i lesemodus slik at du ikke mister arbeidet.
    Trykk Esc for å fortsette, eller forsøk å laste inn siden på nytt.", + "invalidHashError": "Dokumentet du ba om har en ugyldig nettadresse.", + "errorCopy": " Du kan fremdeles bruke nåværende versjon i lesemodus ved å trykke Esc.", + "errorRedirectToHome": "Trykk Esc for bli videresendt til din CryptDrive.", + "newVersionError": "En ny versjon av CryptPad er her.
    Gjeninnlast siden eller trykk «Esc» for å redigere innholdet i frakoblet modus.", + "loading": "Laster …", "error": "Feil", "saved": "Lagret", - "deleted": "Sletta", - "deletedFromServer": "Dokumentet er sletta", - "mustLogin": "Du må være innlogga for å få tilgang til denne sida", - "disabledApp": "Vi beklager, denne applikasjon er slått av. Kontakt eieren av denne pad-en om du vil vite mer.", - "realtime_unrecoverableError": "Vi beklager, noe har gått skikkelig galt. Klikk OK for å laste innholdet på nytt.", + "deleted": "Slettet", + "deletedFromServer": "Dokument slettet", + "mustLogin": "Du må være innlogget for å få tilgang til denne siden", + "disabledApp": "Dette programmet har blitt avslått. Kontakt CryptPad-eieren om du vil vite mer.", + "realtime_unrecoverableError": "Noe har gått skikkelig galt. Klikk «OK» for å laste innholdet på nytt.", "disconnected": "Frakoblet", - "synchronizing": "Synkroniserer", - "reconnecting": "Kobler opp igjen", - "typing": "Redigerer", - "initializing": "Setter i gang…", - "forgotten": "Flytta til papirkurven", + "synchronizing": "Synkroniserer …", + "reconnecting": "Kobler opp igjen …", + "typing": "Redigerer …", + "initializing": "Setter i gang …", + "forgotten": "Flyttet til papirkurven", "errorState": "Kritisk feil: {0}", "readonly": "Skrivebeskyttet", "anonymous": "Anonym", @@ -55,66 +56,65 @@ "viewer": "leser", "viewers": "lesere", "editor": "redigerer", - "userlist_offline": "Du er frakobla, brukerlista er ikke tilgjengelig.", + "userlist_offline": "Du er frakoblet, brukerlisten er ikke tilgjengelig.", "language": "Språk", - "newVersion": "CryptPad er oppdatert!
    Sjekk siste nytt:
    Versjonsinnhold for CryptPad {0}", "upgrade": "Oppgrader", - "upgradeAccount": "Oppgrader kontoen", - "MB": "Megabyte", - "GB": "Gigabyte", - "KB": "Kilobyte", - "pinLimitReached": "Beklager, du har brukt lagringskvota di", - "pinLimitReachedAlert": "Beklager, du har brukt opp lagringskvota di. Nye pads kan ikke lagres i CryptDriven din.
    Du kan enten slette eksisterende pads fra CryptDriven eller velge et premium abonnement for å øke lagringskvota.", - "pinLimitReachedAlertNoAccounts": "Beklager, du har brukt lagringskvota di", - "pinLimitNotPinned": "Beklager, du har brukt opp lagringskvota di. <>Denne paden kan ikke lagres i din CryptDrive.", - "pinLimitDrive": "Beklager, du har brukt opp lagringskvota di.
    Du kan desverre ikke lage nye pads.", + "upgradeAccount": "Oppgrader konto", + "MB": "MB", + "GB": "GB", + "KB": "KB", + "pinLimitReached": "Beklager, du har brukt lagringskvoten din", + "pinLimitReachedAlert": "Du har brukt opp lagringskvoten din. Nye dokumenter kan ikke lagres i din CryptDriven.
    Du kan enten slette eksisterende dokumenter i den, eller velge et premium-abonnement for å øke lagringskvoten.", + "pinLimitReachedAlertNoAccounts": "Du har brukt opp lagringskvoten din", + "pinLimitNotPinned": "Du har brukt opp lagringskvoten din.
    Dette dokumentet er ikke lagret i din CryptDrive.", + "pinLimitDrive": "Du har brukt opp lagringskvoten din.
    Du kan ikke lage nye dokumenter.", "importButton": "Importer", - "importButtonTitle": "Importer en pad fra en fil på maskina di", + "importButtonTitle": "Importer et dokument fra en fil på maskinen din", "exportButton": "Eksporter", - "exportButtonTitle": "Eksporter denne paden til en fil lokalt på maskina di", - "exportPrompt": "Hva vil du kalle fila?", - "changeNamePrompt": "Endre navnet ditt (eller la stå blankt for å være anonym): ", + "exportButtonTitle": "Eksporter dette dokumentet til en lokal fil på datamaskinen din", + "exportPrompt": "Hva vil du kalle filen?", + "changeNamePrompt": "Endre navnet ditt (eller la det stå tomt for å være anonym): ", "user_rename": "Endre visningsnavnet ditt", "user_displayName": "Visningsnavn", "user_accountName": "Kontonavn", "clickToEdit": "Klikk for å redigere", "saveTitle": "Lagre denne tittelen (enter)", "forgetButton": "Slett", - "forgetPrompt": "Om du klikker OK vil denne paden bli flytta til papirkurven. Er du sikker på det?", - "movedToTrash": "Denne paden er flytta til papirkurven.
    Gå til Driven min", + "forgetPrompt": "Om du klikker «OK» vil dette dokumentet bli flyttet til papirkurven. Er du sikker?", + "movedToTrash": "Dette dokumentet har blitt flyttet til papirkurven.
    Gå til min CryptDrive", "shareButton": "Del", - "shareSuccess": "Linken er kopiert", + "shareSuccess": "Lenke kopiert til utklippstavle", "userListButton": "Brukerliste", "userAccountButton": "Kontoen din", "newButton": "Ny", - "newButtonTitle": "Lag en ny pad", + "newButtonTitle": "Lag et nytt dokument", "uploadButton": "Last opp filer", - "uploadButtonTitle": "Last opp en ny fil til CryptoDriven din", + "uploadButtonTitle": "Last opp en ny fil til din CryptDrive", "saveTemplateButton": "Lagre som mal", - "saveTemplatePrompt": "Velg et navn på malen", - "templateSaved": "Malen er lagra!", - "selectTemplate": "Velg en mal eller trykk escape", - "useTemplate": "Vil du starte fra en mal?", + "saveTemplatePrompt": "Gi malen et navn", + "templateSaved": "Mal lagret.", + "selectTemplate": "Velg en mal eller trykk Esc", + "useTemplate": "Start med en mal?", "useTemplateOK": "Velg en mal (Enter)", - "useTemplateCancel": "Start fra nytt (Esc)", + "useTemplateCancel": "Start med blanke ark (Esc)", "template_import": "Importer en mal", - "template_empty": "Ingen mal du kan velge fra", - "previewButtonTitle": "Vis eller skjul Markdown forhåndsvisning", - "presentButtonTitle": "Gå i presentasjonsmodus", - "backgroundButtonTitle": "Endre bakgrunnsfargen til presentasjonen", + "template_empty": "Ingen maler tilgjengelig", + "previewButtonTitle": "Vis eller skjul Markdown-forhåndsvisning", + "presentButtonTitle": "Gå til presentasjonsmodus", + "backgroundButtonTitle": "Endre presentasjonens bakgrunnsfarge", "colorButtonTitle": "Endre tekstfargen i presentasjonsmodus", "propertiesButton": "Egenskaper", - "propertiesButtonTitle": "Se pad-egenskapene", + "propertiesButtonTitle": "Se dokument-egenskapene", "printText": "Skriv ut", - "printButton": "Skriv ut (enter)", + "printButton": "Skriv ut (Enter)", "printButtonTitle2": "Skriv ut dokumentet eller eksporter til PDF", - "printOptions": "Layout-valg", - "printSlideNumber": "Vis slide-nummeret", + "printOptions": "Visnings-valg", + "printSlideNumber": "Vis sidenummeret", "printDate": "Vis datoen", - "printTitle": "Vis pad-tittelen", - "printCSS": "Egne stilformater (CSS):", + "printTitle": "Vis dokument-tittelen", + "printCSS": "Egne stilregler (CSS):", "printTransition": "Slå på overgangsanimasjoner", - "printBackground": "Bruk som bakgrunnsbilde", + "printBackground": "Bruk bakgrunnsbilde", "printBackgroundButton": "Velg et bilde", "printBackgroundValue": "Nåværende bakgrunn: {0}", "printBackgroundNoValue": "Ingen bakgrunnsbilder å vise", @@ -123,168 +123,500 @@ "filePicker_close": "Lukk", "filePicker_description": "Legg til en fil fra din CryptDrive eller last opp en ny fil", "filePicker_filter": "Filtrer filer basert på filnavn", - "tags_title": "Tags (kun for ditt bruk)", - "tags_add": "Oppdater tags for valgte pads", - "tags_notShared": "Dine tags deles ikke med andre brukerer", - "tags_duplicate": "Dupliser tag:{0}", - "tags_noentry": "Du kan ikke tagge en sletta pad!", + "tags_title": "Etiketter (kun for ditt bruk)", + "tags_add": "Oppdater etikettene for valgte dokumenter", + "tags_notShared": "Dine etiketter deles ikke med andre brukere", + "tags_duplicate": "Dupliser etikett: {0}", + "tags_noentry": "Du kan ikke etkettmerke et slettet dokument.", "slideOptionsText": "Valg", - "slideOptionsTitle": "Mekk på dine slides", - "slide_invalidLess": "Ugyldig custom-stil", + "slideOptionsTitle": "Tilpass dine presentasjonssider", + "slide_invalidLess": "Ugyldig egendefinert-stil", "languageButton": "Språk", - "languageButtonTitle": "Velg språket du vil bruke for kodefarge", - "themeButton": "Tema", - "themeButtonTitle": "Velg fargetema du vil bruke når du redigerer kode og presentasjoner", - "editShare": "Redigerer link", - "viewShare": "Linken kan bare leses", + "languageButtonTitle": "Velg språket du vil bruke for kodeframheving", + "themeButton": "Drakt", + "themeButtonTitle": "Angi draktvalg for redigering av kode og presentasjoner", + "editShare": "Redigerer linke", + "viewShare": "Lenken kan kun leses", "canvas_width": "Bredde", "canvas_opacity": "Gjennomsiktighet", - "canvas_opacityLabel": "Gjennomsiktighet:{0}", + "canvas_opacityLabel": "Gjennomsiktighet: {0}", "canvas_widthLabel": "Bredde: {0}", - "canvas_saveToDrive": "Lagre dette bildet som en fil i CryptDriven", + "canvas_saveToDrive": "Lagre dette bildet som fil i din CryptDrive", "canvas_currentBrush": "Gjeldende pensel", - "canvas_imageEmbed": "Legg til et bilde fra datamaskina di", + "canvas_imageEmbed": "Legg til et bilde fra datamaskinen din", "profileButton": "Profil", "profile_upload": " Last opp en ny avatar", - "profile_uploadSizeError": "Beklager, avataren må være mindre enn {0}", - "sharedFolders_share": "Del denne linken med andre registrerte brukere for å gi dem tilgang. Når de åpner linken så vil denne delte mappa legges i deres CryptDrive.", - "chrome68": "Det ser ut som du bruker Chrome eller Chromium versjon 68. Denne nettlesern inneholder en bug som gjør at enkelte sider blir hvite. Bytt til en annen fane eller forsøk å scrolle i siden.", + "profile_uploadSizeError": "Avataren må være mindre enn {0}", + "sharedFolders_share": "Del denne lenken med andre registrerte brukere for å gi dem tilgang. Når de åpner lenken så vil denne delte mappen legges i deres CryptDrive.", + "chrome68": "Det ser ut som du bruker Chrome eller Chromium versjon 68. Denne nettleseren inneholder en feil som gjør at enkelte sider blir hvite. Bytt til en annen fane eller forsøk å rulle i siden. Feilen bør være rettet i neste versjon av nettleseren din.", "autostore_file": "fil", "autostore_sf": "mappe", - "autostore_pad": "", - "autostore_notstored": "Denne {0} er ikke i CryptDriven din. Vil du lagre den?", - "autostore_settings": "Du kan slå på automatisk lagring i 1Setting2 sida!", - "autostore_store": "Lager", + "autostore_pad": "dokument", + "autostore_notstored": "Dette {0} er ikke i din CryptDriven. Vil du lagre det?", + "autostore_settings": "Du kan slå på automatisk lagring i dine Innstillinger.", + "autostore_store": "Lagre", "autostore_hide": "Ikke lagre", - "autostore_error": "Beklager, vi greier ikke å lagre paden, vennligst forsøk igjen.", - "autostore_saved": "Denne paden ble lagra i CryptDriven din!", - "autostore_forceSave": "Lagre fila i CryptDriven", - "autostore_notAvailable": "Du må lagre paden i CryptDriven før du kan bruke denne funksjonen.", + "autostore_error": "Klarer ikke å lagre dette dokumentet. Prøv igjen senere.", + "autostore_saved": "", + "autostore_forceSave": "Lagre filen i din CryptDrive", + "autostore_notAvailable": "Du må lagre dokumentet i din CryptDrive før du kan bruke denne funksjonen.", "crowdfunding_button": "Støtt CryptPad", "crowdfunding_popup_no": "Ikke nå", "markdown_toc": "Innhold", - "fm_expirablePad": "Denne paden vill utgå på dato den {0}", - "admin_authError": "Kun admin-tilgang", + "fm_expirablePad": "Utløper: {0}", + "admin_authError": "Kun administratorer har tilgang til denne siden", "admin_cat_general": "Generelt", "admin_cat_stats": "Statistikk", "adminPage": "Administrasjon", "admin_activeSessionsTitle": "Aktive tilkoblinger", - "admin_activeSessionsHint": "Antall aktive websockets (og unike IP-adresser tilkobla)", - "admin_activePadsTitle": "Aktive pads", + "admin_activeSessionsHint": "Antall aktive vevsockets (og unike tilkoblede IP-adresser)", + "admin_activePadsTitle": "Aktive dokumenter", "admin_activePadsHint": "Antall unike dokumenter som er åpne akkurat nå", "admin_registeredTitle": "Registrerte brukere", - "admin_registeredHint": "Antall registrerte brukere på din økt", + "admin_registeredHint": "Antall registrerte brukere på din instans", "admin_updateLimitTitle": "Oppdater brukerkvoter", "admin_updateLimitHint": "Å tvinge gjennom en oppdatering av lagringskvoter kan gjøres når som helst, men er kun nødvendig om det oppstår en feil", "admin_updateLimitButton": "Oppdater kvoter", "admin_updateLimitDone": "Oppdatering gjennomført", - "admin_flushCacheTitle": "Tøm HTTP cache", - "admin_flushCacheHint": "Tving brukerne til å laste ned siste oppdatering (kun hvis serveren er i \"fresh mode\")", - "admin_flushCacheButton": "Tøm mellomlager (cache)", - "admin_flushCacheDone": "Mellomlageret (cache) ble tømt", - "footer_product": "Produktet", - "footer_team": "Laget", + "admin_flushCacheTitle": "Tøm HTTP-hurtiglager", + "admin_flushCacheHint": "Tving brukerne til å laste ned siste oppdatering (kun hvis tjeneren er i ferskt modus)", + "admin_flushCacheButton": "Tøm hurtiglager", + "admin_flushCacheDone": "Hurtiglager tømt", + "footer_product": "Produkt", + "footer_team": "Bidragsytere", "footer_donate": "Doner", "footer_legal": "Juridisk", - "footer_tos": "Betingelser", + "footer_tos": "Tjenestevilkår", "contact_admin": "Kontakt administratorne", - "contact_adminHint": "For problemer med kontoen, lagringsgrenser eller tilgang generelt.", + "contact_adminHint": "For problemer med kontoen, lagringsgrenser eller tjenestetilgang.\n", "contact_dev": "Kontakt utviklerne", - "contact_devHint": "For å sende inn forslag, forbedringer eller takksigelser.", + "contact_devHint": "For å sende inn forslag, forbedringer eller takk.", "contact_bug": "Feilrapport", - "contact_email": "Epost", - "profile_uploadTypeError": "Feilmelding: avatartypen er desverre ikke tillatt. Tillatte typer er: {0}", - "profile_error": "Det oppstod en feil med den nye profilen din: {0}", - "profile_register": "Vennligst logg inn for å lage en profil!", - "profile_viewMyProfile": "Se profilen min", - "userlist_addAsFriendTitle": "Legg til \"{0}\" som ny kontakt", + "contact_email": "E-post", + "profile_uploadTypeError": "Ugyldig avatartype. Tillatte typer er: {0}", + "profile_error": "Kunne ikke opprette profilen din: {0}", + "profile_register": "Logg inn for å lage en profil.", + "profile_viewMyProfile": "Vis profilen min.", + "userlist_addAsFriendTitle": "Send «{0}» en kontaktforespørsel", "contacts_title": "Kontakter", - "contacts_added": "Kontaktinvitasjon er akseptert.", - "contacts_rejected": "Kontaktinvitasjonen ble avvist", - "contacts_request": "{0} vil legge deg til som ny kontakt. Akseptere?", + "contacts_added": "Kontaktinvitasjon godtatt.", + "contacts_rejected": "Kontaktinvitasjonen avvist", + "contacts_request": "{0} vil legge deg til som kontakt. Aksepter?", "contacts_remove": "Fjern denne kontakten", - "contacts_confirmRemove": "Er du sikker på at du vil fjerne {0} fra kontaktlista di?", - "contacts_typeHere": "Skriv en melding her…", - "contacts_warning": "Alt du skriver her kan sees av alle fremtidige brukere av denne paden. Vær forsiktig med å dele sensitiv informasjon!", - "contacts_info1": "Dette er dine kontakter. Herfra kan du:", - "contacts_info2": "Klikk på en kontakt for å snakke", - "contacts_info3": "Dobbeltklikk for å se profilen", - "contacts_info4": "Alle deltagere kan slette meldingsloggen", - "contacts_removeHistoryTitle": "Slett meldingsloggen", - "contacts_confirmRemoveHistory": "Er du sikker på at du vil slette meldingsloggen? Du kan ikke få tilbake meldingene", - "contacts_removeHistoryServerError": "Beklager feil, vi greidde ikke å slette meldingsloggen, vennligst forsøk igjen", - "contacts_fetchHistory": "Hent mer historikk", + "contacts_confirmRemove": "Fjern {0} fra kontaktlisten din?", + "contacts_typeHere": "Skriv en melding her …", + "contacts_warning": "Alt du skriver her kan sees av alle fremtidige brukere av dokumentet. Vær forsiktig med å dele sensitiv info!", + "contacts_info1": "Dette er kontaktene dine. Herfra kan du:", + "contacts_info2": "Klikk på en kontakts ikon for å snakke med vedkommende", + "contacts_info3": "Dobbeltklikk for å vise profilen deres", + "contacts_info4": "Alle deltagere kan slette sludringshistorikkk for godt", + "contacts_removeHistoryTitle": "Tøm sludringshistorikk", + "contacts_confirmRemoveHistory": "Slett sludringshistorikk for godt? Du kan ikke få tilbake meldingene.", + "contacts_removeHistoryServerError": "Kunne ikke slette sludringshistorikken. Prøv igjen senere.", + "contacts_fetchHistory": "Hent eldre historikk", "contacts_rooms": "Rom", "contacts_leaveRoom": "Forlat rommet", - "contacts_online": "En annen romkamerat er online", + "contacts_online": "En annen bruker fra dette rommet er pålogget", "fm_rootName": "Dokumenter", "fm_trashName": "Papirkurv", "fm_unsortedName": "Usorterte filer", "fm_filesDataName": "Alle filer", "fm_templateName": "Maler", "fm_searchName": "Søk", - "fm_recentPadsName": "Nylig brukte pads", + "fm_recentPadsName": "Nylig brukte dokumenter", "fm_ownedPadsName": "Dine", - "fm_tagsName": "Tagger", + "fm_tagsName": "Etiketter", "fm_sharedFolderName": "Delt mappe", - "fm_searchPlaceholder": "Søk…", + "fm_searchPlaceholder": "Søk …", "fm_newButton": "Ny", - "fm_newButtonTitle": "Lag en ny pad eller mappe, importer fila til denne mappa", + "fm_newButtonTitle": "Opprett nytt dokument eller mappe, importer filen til denne mappa", "fm_newFolder": "Ny mappe", - "fm_newFile": "Ny pad", + "fm_newFile": "Nytt dokument", "fm_folder": "Mappe", "fm_sharedFolder": "Delt mappe", "fm_folderName": "Mappenavn", "fm_numberOfFolders": "# mapper", "fm_numberOfFiles": "# filer", "fm_fileName": "Filnavn", - "fm_lastAccess": "Siste tilgang", + "fm_lastAccess": "Sist brukt", "fm_creation": "Opprettet", "fm_forbidden": "Ulovlig handling", "fm_originalPath": "Original filsti", "fm_openParent": "Vis i mappe", "fm_noname": "Dokument uten navn", - "fm_emptyTrashDialog": "Er du sikker på at du vil tømme papirkurven?", - "fm_removeSeveralPermanentlyDialog": "Er du helt sikker på at du vil slette {0} ting fra CryptDriven din?", - "fm_removePermanentlyDialog": "Er du helt sikker på at du vil slette den tingen fra CryptDriven din?", - "fm_deleteOwnedPad": "Er du helt sikker på at du vil slette denne paden fra serveren?", - "fm_deleteOwnedPads": "Er du helt sikker på at du vil fjerne disse padene fra serveren?", - "fm_restoreDialog": "Er du sikker på at du vil legge {0} tilbake?", - "fm_unknownFolderError": "Mappa du har valgt eksisterer desverre ikke lenger. Vi åpner mappa over…", - "fm_contextMenuError": "Beklager, vi får ikke til å åpne kontekstmenyen for den tingen. Om feilen vedvarer vennligst last inn nettsida på nytt.", - "fm_selectError": "Beklager vi får ikke til å velge elementet du ønsker. Om problemet vedvarer vennligst forsøk å laste inn sida på nytt.", - "fm_categoryError": "Beklager vi får ikke til å åpne kategorien du har valgt, vi viser rotmappa nå.", - "fm_info_root": "Her kan du lage så mange undermapper du ønsker.", - "settings_backup2Confirm": "Straks i gang med å laste ned alle filer og pads fra CryptDriven din. Velg et filnavn og trykk OK", - "settings_exportTitle": "Eksporter CryptDriven din", - "settings_exportDescription": "Vennligst vent mens vi laster ned og dekrypterer dokumentene dine. Lukker du fanen vil du avbryte nedlastingen.", - "settings_exportFailed": "Hvis paden trenger mer enn 1 minutt på nedlastingen så vil den desverre ikke inkluderes i eksporteringen. I stedet vil en linke til paden vises.", - "settings_exportWarning": "NB: denne funksjonen er beta og muligens ustabil. Vi anbefaler at du holder denne fanen i fokus.", - "settings_exportCancel": "Er du sikker på at du vil avbryte eksporteringen? I så fall må du starte på nytt neste gang.", + "fm_emptyTrashDialog": "Tøm papirkurven?", + "fm_removeSeveralPermanentlyDialog": "", + "fm_removePermanentlyDialog": "", + "fm_deleteOwnedPad": "Vil slette dette dokumentet fra tjeneren for godt?", + "fm_deleteOwnedPads": "Vil du slette disse dokumentene fra tjeneren for godt?", + "fm_restoreDialog": "", + "fm_unknownFolderError": "Valgt eller sist besøkte finnes ikke lenger. Åpner ovennevnt mappe …", + "fm_contextMenuError": "Kan ikke åpne bindeleddsmenyen dette elementet. Last inn siden på ny hvis problemet vedvarer.", + "fm_selectError": "", + "fm_categoryError": "Kunne ikke åpne valgt kategori. Viser rotmappen nå.", + "fm_info_root": "Her kan du lage så mange undermapper du ønsker for å sortere filene dine.", + "settings_backup2Confirm": "Straks i gang med å laste ned alle filer og dokumenter fra din CryptDrive. Velg et filnavn og trykk «OK».", + "settings_exportTitle": "Eksporter din CryptDrive", + "settings_exportDescription": "Vent mens dokumentene dine lastes ned og dekrypteres. Lukker du fanen vil du avbryte nedlastingen.", + "settings_exportFailed": "", + "settings_exportWarning": "Merk: denne funksjonen er beta og muligens ustabil. Det anbefales at du beholder denne fanen i fokus.", + "settings_exportCancel": "Avbryt eksporteringen? I så fall må du starte på nytt neste gang.", "uploadFolderButton": "Last opp mappe", - "chatButton": "Chat", + "chatButton": "Sludring", "formattedKB": "{0} KB", "formattedGB": "{0} GB", "formattedMB": "{0} MB", "storageStatus": "Lagringsplass:
    {0} brukt, av {1}", - "padNotPinnedVariable": "Denne pad-en utløper etter {4] dager med inaktivitet, {0}logg inn{1} eller {2}registrer deg{3} for å bevare regnearket.", + "padNotPinnedVariable": "Denne dokumentet utløper etter {4] dager med inaktivitet, {0}logg inn{1} eller {2}registrer deg{3} for å bevare det.", "history_restoreTitle": "Gjenopprett den valgte dokumentversjonen", - "history_closeTitle": "Lukk historikk", + "history_closeTitle": "Lukk historikken", "history_loadMore": "Vis mer historikk", "history_prev": "Forrige versjon", "history_next": "Neste versjon", - "historyButton": "Vis dokumenthistorikken", + "historyButton": "Vis dokumenthistorikk", "historyText": "Historikk", "help_button": "Hjelp", - "show_help_button": "Vis Hjelp", - "cancelButton": "Avslutt (esc)", + "show_help_button": "Vis hjelp", + "cancelButton": "Avslutt (Esc)", "cancel": "Avslutt", - "okButton": "Ok (enter)", - "ok": "Ok", - "notifyLeft": "{0} har forlatt gruppeøkta", + "okButton": "Ok (Enter)", + "ok": "OK", + "notifyLeft": "{0} har forlatt gruppeøkten", "notifyRenamed": "{0} er nå bedre kjent som {1}", - "notifyJoined": "{0} har blitt med i gruppeøkta", + "notifyJoined": "{0} har tatt del i gruppeøkten", "fileEmbedTag": "Deretter plasserer du Media-taggen der du vil inkludere den:", - "fileEmbedScript": "For å inkludere denne fila, inkluder dette skriptet på nettsida di:", - "viewEmbedTag": "For å ta med denne pad-en, inkluder denne ifram på en nettside hvor du vil. Legg til stiler med CSS eller HTML." + "fileEmbedScript": "Inkluder dette skriptet på nettsiden din for å bygge inn denne filen:", + "viewEmbedTag": "Inkluder dette iframe-elementet for å bygge inn dette dokumentet på en nettside. Legg til stiler med CSS eller HTML.", + "sharedFolders_create_owned": "Eid mappe", + "sharedFolders_create_name": "Mappenavn", + "sharedFolders_create": "Opprett en delt mappe", + "share_mediatagCopy": "Kopier media-etikett til utklippstavle", + "share_embedCategory": "Innebygg", + "share_contactCategory": "Kontakter", + "share_linkCopy": "Kopier", + "share_linkOpen": "Forhåndsvis", + "share_linkView": "Vis", + "share_linkEdit": "Rediger", + "share_linkAccess": "Tilgangsrettigheter", + "share_linkCategory": "Lenke", + "properties_changePasswordButton": "Send inn", + "properties_changePassword": "Endre passordet", + "properties_addPassword": "Legg til et passord", + "password_submit": "Send inn", + "password_placeholder": "Skriv inn passordet her …", + "creation_passwordValue": "Passord", + "creation_expiration": "Utløpsdato", + "creation_noOwner": "Ingen eier", + "creation_owners": "Eiere", + "creation_create": "Opprett", + "creation_newTemplate": "Ny mal", + "creation_noTemplate": "Ingen mal", + "creation_password": "Passord\n", + "creation_expireMonths": "Måned(er)", + "creation_expireDays": "Dag(er)", + "creation_expireHours": "Time(r)", + "creation_expireFalse": "Ubegrenset", + "view": "vis", + "edit": "rediger", + "readme_welcome": "Velkommen til Cryptpad", + "driveReadmeTitle": "Hva er CryptPad?", + "header_homeTitle": "Gå til CryptPad-hjemmesiden", + "header_logoTitle": "Gå til din CryptDrive", + "tos_title": "CryptPad-tjenestevilkår", + "features_f_subscribe": "Abonner", + "features_f_support": "Raskere brukerstøtte", + "features_f_file1": "Last opp og del filer", + "features_f_storage0": "Begrenset lagringstid", + "features_f_cryptdrive0": "Begrenset tilgang til CryptDrive", + "features_f_file0": "Åpne dokumenter", + "features_f_core": "Vanlige funksjoner", + "features_f_apps": "Tilgang til alle programmene", + "features_premium": "Premium", + "features_registered": "Registrert", + "features_anon": "Ikke-registrert", + "features_title": "Funksjoner", + "features": "Funksjoner", + "whatis_drive": "Organisering med CryptDrive", + "whatis_collaboration": "Privat samarbeid", + "whatis_title": "Hva er CryptPad?", + "topbar_whatIsCryptpad": "Hva er CryptPad", + "blog": "Blogg", + "terms": "Tjenestevilkår", + "contact": "Kontakt", + "privacy": "Personvernspraksis", + "about": "Om", + "footer_aboutUs": "Om oss", + "mdToolbar_quote": "Sitat", + "mdToolbar_link": "Lenke", + "mdToolbar_strikethrough": "Gjennomstrek", + "mdToolbar_italic": "Kursiv", + "mdToolbar_bold": "Fet", + "upload_size": "Størrelse", + "upload_cancelled": "Avbrutt", + "settings_cursorShareLabel": "Del posisjonen", + "settings_cursorShareTitle": "Del min pekerposisjon", + "settings_cursorColorTitle": "Pekerfarge", + "settings_changePasswordNewConfirm": "Bekreft nytt passord", + "settings_changePasswordNew": "Nytt passord", + "settings_changePasswordCurrent": "Nåværende passord", + "settings_changePasswordButton": "Endre passord", + "settings_changePasswordTitle": "Endre passord", + "settings_ownDriveTitle": "Oppdater konto", + "settings_ownDriveButton": "Oppgrader kontoen din", + "settings_padSpellcheckTitle": "Stavekontroll", + "settings_driveDuplicateLabel": "Skjul duplikater", + "settings_logoutEverywhereButton": "Logg ut", + "settings_publicSigningKey": "Offentlig signeringsnøkkel", + "settings_deleteButton": "Slett kontoen", + "settings_userFeedbackTitle": "Tilbakemelding", + "settings_autostoreYes": "Automatisk", + "settings_importDone": "Importert", + "settings_import": "Importer", + "settings_resetThumbnailsAction": "Tøm", + "settings_resetTips": "Tips", + "settings_resetTipsAction": "Tilbakestill", + "settings_resetButton": "Fjern", + "settings_export_download": "Laster ned og dekrypterer dokumentene dine …", + "register_passwordsDontMatch": "Passordene samsvarer ikke.", + "register_acceptTerms": "Jeg godtar tjenestevilkårene", + "login_unhandledError": "En uventet feil inntraff :(", + "login_invalPass": "Passord kreves", + "login_invalUser": "Brukernavn kreves", + "login_confirm": "Bekreft passordet ditt", + "login_password": "Passord", + "login_username": "Brukernavn", + "settingsButton": "Innstillinger", + "logoutButton": "Logg ut", + "login_register": "Registrer deg", + "login_login": "Logg inn", + "fc_hashtag": "Etiketter", + "fc_prop": "Egenskaper", + "fc_empty": "Tøm papirkurven", + "fc_remove_sharedfolder": "Fjern", + "fc_remove": "Fjern", + "fc_restore": "Gjenopprett", + "fc_delete_owned": "Ødelegg", + "fc_delete": "Flytt til papirkurv", + "fc_collapseAll": "Fold sammen alle", + "fc_expandAll": "Utvid alle", + "fc_openInCode": "Åpne i koderedigerer", + "fc_open_ro": "Åpne (skrivebeskyttet)", + "fc_open": "Åpne", + "fc_color": "Endre farge", + "fc_rename": "Gi nytt navn", + "fc_newsharedfolder": "Ny delt mappe", + "fc_newfolder": "Ny mappe", + "fm_tags_name": "Etikettnavn", + "fm_prop_tagsList": "Etiketter", + "fm_viewGridButton": "Rutenettsvisning", + "fm_viewListButton": "Listevisning", + "fm_type": "Type", + "fm_morePads": "Mer", + "contacts_padTitle": "Sludring", + "contacts_send": "Send", + "profile_avatar": "Avatar", + "canvas_delete": "Slett utvalg", + "canvas_clear": "Tøm", + "poll_comment_placeholder": "Din kommentar", + "poll_comment_remove": "Slett denne kommentaren", + "poll_comment_submit": "Send", + "poll_comment_add": "Legg til en kommentar", + "poll_comment_list": "Kommentarer", + "poll_total": "Totalt", + "poll_unlocked": "Opplåst", + "poll_locked": "Låst", + "poll_edit": "Rediger", + "poll_remove": "Fjern", + "poll_removeUser": "Fjern denne brukeren?", + "poll_removeOption": "Fjern dette valget?", + "poll_userPlaceholder": "Ditt navn", + "poll_optionPlaceholder": "Valg", + "poll_commit": "Send inn", + "poll_create_option": "Legg til et nytt valg", + "poll_create_user": "Legg til en ny bruker", + "poll_publish_button": "Offentliggjør", + "kanban_working": "Underveis", + "kanban_done": "Ferdig", + "kanban_todo": "Gjøremål", + "kanban_item": "Element {0}", + "pad_mediatagOptions": "Bildeegenskaper", + "pad_mediatagImport": "Lagre i din CryptDrive", + "pad_mediatagBorder": "Kantbredde (piksler)", + "pad_mediatagPreview": "Forhåndsvis", + "pad_mediatagRatio": "Behold sideforhold", + "pad_mediatagWidth": "Bredde (piksler)", + "pad_mediatagHeight": "Høyde (piksler)", + "openLinkInNewTab": "Åpne lenke i ny fane", + "history_restoreDone": "Dokument gjenopprettet", + "history_restorePrompt": "Erstatt nåværende versjon av dokumentet med vist versjon?", + "broadcast_newCustom": "Melding fra administratorene", + "settings_deleteContinue": "Slett konto", + "broadcast_translations": "Oversettelser", + "admin_broadcastCancel": "Slett melding", + "admin_surveyCancel": "Fjern", + "settings_colortheme_custom": "Egendefinert", + "pad_settings_show": "Vis", + "pad_settings_hide": "Skjul", + "pad_settings_width_large": "Full bredde", + "pad_settings_title": "Dokumentinnstillinger", + "admin_getquotaButton": "Sjekk", + "settings_colorthemeTitle": "Fargedrakt", + "settings_colortheme_light": "Lys", + "settings_colortheme_dark": "Mørk", + "settings_cat_style": "Utseende", + "admin_performanceTimeHeading": "Tid (sekunder)", + "admin_performanceKeyHeading": "Kommando", + "admin_performanceProfilingTitle": "Ytelse", + "admin_cat_performance": "Ytelse", + "redo": "Gjenta", + "undo": "Angre", + "settings_cacheTitle": "Hurtiglager", + "docs_link": "Dokumentasjon", + "home_support_title": "Støtt CryptPad", + "home_opensource_title": "Åpne kilde", + "admin_support_first": "Opprettet: ", + "admin_support_last": "Oppdatert: ", + "admin_support_collapse": "Fold sammen", + "admin_support_open": "Vis", + "settings_mediatagSizeTitle": "Automatisk nedlastingsgrense", + "mediatag_notReady": "Fullfør nedlastingen", + "pad_mediatagOpen": "Åpne fil", + "pad_mediatagShare": "Del fil", + "mediatag_saveButton": "Lagre", + "Offline": "Frakoblet", + "download_zip_file": "Fil {0}/{1}", + "fileTableHeader": "Nedlastinger og opplastinger", + "allowNotifications": "Tillat merknader", + "archivedFromServer": "Dokument arkivert", + "restoredFromServer": "Dokument gjenopprettet", + "admin_archiveInval": "Ugyldig dokument", + "admin_archiveInput2": "Dokumentpassord", + "admin_unarchiveButton": "Gjenopprett", + "admin_archiveInput": "Dokument-nettadresse", + "tag_edit": "Rediger", + "tag_add": "Legg til", + "fm_deletedFolder": "Slettet mappe", + "admin_invalLimit": "Ugyldig grenseverdi", + "admin_invalKey": "Ugyldig offentlig nøkkel", + "admin_limitPlan": "Abonnement: {0}", + "admin_getlimitsTitle": "Egendefinerte grenser", + "admin_limit": "Nåværende grense: {0}", + "admin_setlimitButton": "Sett grense", + "admin_registrationAllow": "Åpne", + "admin_registrationButton": "Lukk", + "oo_version": "Versjon: ", + "snapshots_delete": "Slett", + "snapshots_close": "Lukk", + "snapshots_restore": "Gjenopprett", + "snapshots_open": "Åpne", + "history_shareTitle": "Del en lenke til denne versjonen", + "history_close": "Lukk", + "history_restore": "Gjenopprett", + "share_bar": "Opprett lenke", + "settings_cat_kanban": "Kanban", + "settings_kanbanTagsOr": "ELLER", + "settings_kanbanTagsAnd": "OG", + "fm_noResult": "Resultatløst", + "fm_restricted": "Du har ikke tilgang", + "support_formCategoryError": "Feil: Kategorien er tom", + "support_category": "Velg en kategori", + "oo_refresh": "Gjenoppfrisk", + "support_cat_account": "Brukerkonto", + "user_about": "Om CryptPad", + "slide_textCol": "Tekstfarge", + "slide_backCol": "Bakgrunnsfarge", + "toolbar_file": "Fil", + "drive_treeButton": "Filer", + "toolbar_tools": "Verktøy", + "toolbar_savetodrive": "Lagre som bilde", + "toolbar_insert": "Sett inn", + "toolbar_theme": "Drakt", + "fm_sort": "Sorter", + "settings_padNotifTitle": "Kommentarmerknader", + "comments_comment": "Kommentar", + "comments_resolve": "Løs", + "comments_reply": "Svar", + "canvas_select": "Velg", + "canvas_brush": "Pensel", + "admin_openFilesTitle": "Åpne filer", + "kanban_editCard": "Rediger dette kortet", + "kanban_clearFilter": "Tøm filter", + "kanban_conflicts": "Redigerer nå:", + "kanban_noTags": "Ingen etiketter", + "kanban_tags": "Filtrer etter etikett", + "kanban_delete": "Slett", + "kanban_color": "Farge", + "kanban_body": "Innhold", + "kanban_title": "Tittel", + "team_invitePasswordLoading": "Dekrypterer invitasjon …", + "team_inviteFrom": "Fra:", + "team_inviteLinkCopy": "Kopier lenke", + "team_inviteLinkCreate": "Opprett lenke", + "team_inviteLinkLoading": "Genererer lenke …", + "team_inviteLinkNote": "Legg til en personlig melding", + "contacts_mutedUsers": "Forstummede kontoer", + "contacts_manageMuted": "Håndter forstummelse", + "contacts_unmute": "Opphev forstummelse", + "contacts_mute": "Forstum", + "share_copyProfileLink": "Kopier profillenke", + "passwordFaqLink": "Les mer om passord", + "pad_wordCount": "Ord: {0}", + "teams_table_role": "Rolle", + "teams_table_owners": "Håndter lag", + "teams_table_generic": "Roller og tilganger", + "teams_table": "Roller", + "drive_sfPasswordError": "Feil passord", + "team_viewers": "Seere", + "team_quota": "Ditt lags lagringsgrense", + "team_title": "Lag: {0}", + "team_pendingOwner": "(venter)", + "team_deleteButton": "Slett", + "team_deleteTitle": "Sletting av lag", + "team_pending": "Invitert", + "sent": "Melding sendt", + "team_listTitle": "Dine lag", + "team_nameTitle": "Lagnavn", + "team_members": "Medlemmer", + "team_admins": "Administratorer", + "team_owner": "Eiere", + "team_createName": "Lag navn", + "team_createLabel": "Opprett et nytt lag", + "team_infoLabel": "Om lag", + "team_cat_admin": "Administrasjon", + "team_cat_chat": "Sludring", + "team_cat_members": "Medlemmer", + "team_cat_back": "Tilbake til lag", + "team_cat_create": "Ny", + "team_cat_list": "Lag", + "team_cat_general": "Om", + "owner_unknownUser": "ukjent", + "owner_removePendingText": "Venter", + "owner_removeText": "Eiere", + "features_emailRequired": "E-postadresse kreves", + "requestEdit_sent": "Forespørsel sendt", + "requestEdit_button": "Forespør redigeringsrettigheter", + "notifications_cat_archived": "Historikk", + "notifications_cat_pads": "Delt med meg", + "notifications_cat_friends": "Kontaktforespørsler", + "support_formButton": "Send", + "support_cat_new": "", + "admin_supportAddError": "Ugyldig privat nøkkel", + "admin_supportAddKey": "Legg til privat nøkkel", + "admin_cat_support": "Støtte", + "supportPage": "Støtte", + "notifications_dismiss": "Avslå", + "share_withFriends": "Del", + "share_linkFriends": "Del med kontakter", + "drive_active28Days": "Siste 4 uker", + "drive_active7Days": "Siste 7 dager", + "drive_active1Day": "Siste 24 timer", + "settings_codeSpellcheckTitle": "Stavekontroll", + "admin_diskUsageButton": "Generer rapport", + "contact_chat": "Sludring", + "survey": "CryptPad-undersøkelse", + "crowdfunding_button2": "Hjelp CryptPad", + "support_addAttachment": "Legg til vedlegg", + "support_attachments": "Vedlegg", + "support_cat_all": "Alle", + "support_cat_bug": "Feilrapport" } diff --git a/www/common/translations/messages.nl.json b/www/common/translations/messages.nl.json index 95bbb4f34..8ec2920af 100644 --- a/www/common/translations/messages.nl.json +++ b/www/common/translations/messages.nl.json @@ -106,7 +106,7 @@ "userListButton": "Gebruikerslijst", "shareSuccess": "De link is gekopieerd naar het klembord", "shareButton": "Delen", - "movedToTrash": "De werkomgeving is verplaatst naar de prullenbak.
    Ga naar uw Drive", + "movedToTrash": "De werkomgeving is verplaatst naar de prullenbak.
    Ga naar uw Drive", "forgetPrompt": "Weet u zeker dat u deze werkomgeving wilt verplaatsen naar de prullenbak?", "forgetButton": "Verwijderen", "saveTitle": "Titel opslaan (enter)", @@ -123,7 +123,7 @@ "pinLimitDrive": "U heeft uw opslaglimiet bereikt.
    U kunt geen nieuwe werkomgevingen aanmaken.", "pinLimitNotPinned": "U heeft uw opslaglimiet bereikt.
    Deze werkomgeving wordt niet opgeslagen op uw CryptDrive.", "pinLimitReachedAlertNoAccounts": "U heeft uw opslaglimiet bereikt", - "pinLimitReachedAlert": "U heeft uw opslaglimiet bereikt. Nieuwe werkomgevingen worden niet opgeslagen in uw CryptDrive.
    U kunt werkomgevingen verwijderen van uw CryptDrive of opwaarderen naar een premium-account om uw opslaglimiet te verhogen.", + "pinLimitReachedAlert": "U heeft uw opslaglimiet bereikt. Nieuwe werkomgevingen worden niet opgeslagen in uw CryptDrive.
    U kunt werkomgevingen verwijderen van uw CryptDrive of opwaarderen naar een premium-account om uw opslaglimiet te verhogen.", "pinLimitReached": "U heeft uw opslaglimiet bereikt", "formattedKB": "{0} KB", "formattedGB": "{0} GB", @@ -134,7 +134,6 @@ "storageStatus": "Opslag:
    {0} verbruikt van {1}", "upgradeAccount": "Account opwaarderen", "upgrade": "Opwaarderen", - "newVersion": "CryptPad is bijgewerkt!
    Bekijk wat er veranderd is in de nieuwste versie:
    CryptPad-wijzigingslog {0}", "language": "Taal", "userlist_offline": "U bent momenteel offline. De gebruikerslijst is niet beschikbaar.", "editor": "bewerker", @@ -382,7 +381,7 @@ "register_emailWarning1": "U kunt dat doen als u ervoor kiest, maar het zal niet naar onze server worden verzonden.", "register_emailWarning0": "Het lijkt erop dat u uw emailadres als gebruikersnaam heeft ingevoerd.", "register_alreadyRegistered": "Deze gebruiker bestaat al. Wilt u inloggen?", - "register_warning": " Waarschuwing", + "register_warning": "Waarschuwing", "register_cancel": "Annuleren", "register_writtenPassword": "Ik heb mijn gebruikersnaam en wachtwoord opgeschreven, ga door", "register_header": "Registreren", @@ -390,7 +389,7 @@ "register_mustAcceptTerms": "U moet akkoord gaan met de gebruikersvoorwaarden.", "register_passwordTooShort": "Wachtwoorden moeten ten minste {0} tekenen lang zijn.", "register_passwordsDontMatch": "Wachtwoorden komen niet overeen!", - "register_acceptTerms": "Ik ga akkoord met de gebruikersvoorwaarden", + "register_acceptTerms": "Ik ga akkoord met de gebruikersvoorwaarden", "register_importRecent": "Importeer documenten van uw ongeregistreerde sessie", "login_unhandledError": "Een onverwachte fout trad op :(", "login_invalPass": "Wachtwoord vereist", @@ -414,7 +413,6 @@ "fm_renamedPad": "U hebt deze werkomgeving een naam gegeven. De gedeelde titel is:
    {0}", "fm_viewGridButton": "Roosterweergave", "fm_viewListButton": "Lijstweergave", - "fm_alert_anonymous": "Goedendag, momenteel gebruikt u CryptPad anoniem. Dat is geen probleem, maar uw werkomgevingen kunnen verwijderd worden na een inactieve periode. Wij hebben gevorderde functies uitgeschakeld voor anonieme gebruikers, om te benadrukken dat het een onveilige manier is om bestanden op te slaan. U kunt meer lezen over waarom wij dit doen en waarom u echt beter kunt registreren of inloggen.", "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
    registreren of inloggen 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.
    Registreren (geen persoonlijke gegevens vereist) of Inloggen om ze voor altijd in uw drive op te slaan. Lees meer over geregistreerde accounts.", diff --git a/www/common/translations/messages.pl.json b/www/common/translations/messages.pl.json index 81d7e134e..9d92f4b65 100644 --- a/www/common/translations/messages.pl.json +++ b/www/common/translations/messages.pl.json @@ -46,21 +46,6 @@ "button_newcode": "STWÓRZ PAD DO KODU", "button_newpoll": "STWÓRZ GŁOSOWANIE", "button_newslide": "STWÓRZ PREZENTACJĘ", - "policy_title": "Polityka prywatności CryptPad", - "policy_whatweknow": "Co o tobie wiemy", - "policy_whatweknow_p1": "Jako aplikacja udostępniana w internecie, CryptPad ma dostęp do metadanych wystawianych przez protokół HTTP. W skład tych danych wchodzi adres IP oraz różne inne nagłówki HTTP które pozwalają na identyfikację twojej przeglądarki. Możesz podejrzeć jakie informacje udostępnia twoja przeglądarka odwiedzając WhatIsMyBrowser.com.", - "policy_howweuse": "Jak wykorzystujemy zebraną wiedzę", - "policy_howweuse_p1": "Dzieki tym informacjom możemy podejmować lepsze decyzje przy promocji CryptPad, poprzez ocenę które z podjętych przez nas prób okazały się udane. Informacja o twojej lokalizacji daje nam znać, czy powinniśmy zapewnić lepsze wsparcie dla języków poza Angielskim.", - "policy_howweuse_p2": "Informacje o twojej przeglądarce (czy jest to aplikacja desktopowa, czy działająca na systemie mobilnym) pozwalają nam na decydowanie przy priorytezowaniu ulepszeń funkcji. Nasz zespół deweloperski jest mały, a my staramy się dokonywać wyborów które poprawią doświadczenia jak największej liczby użytkowników.", - "policy_whatwetell": "Jakie dane przekazujemy innym", - "policy_whatwetell_p1": "Nie dostarczamy osobom trzecim żadnych danych które udało się nam zebrać, lub tych które nam przekazałeś sam, dopóki nie jesteśmy do tego zobligowani prawnie.", - "policy_links": "Adresy innych stron", - "policy_links_p1": "Ta witryna zawiera łącza do innych stron, włączając w to te stworzone przez inne organizacje. Nie jesteśmy odpowiedzialni za praktyki dotyczące prywatności oraz zawartość usługodawców poza tą witryną. Jako główną zasadę przyjmujemy, że łącza do stron zewnętrznych uruchamiane są w nowej karcie lub oknie, aby upewnić cię iż opuszczasz Cryptpad.", - "policy_ads": "Promocja i reklama", - "policy_ads_p1": "Nie wyświetlamy żadnej zawartości promocyjnej online, choć możemy udostępniać łącza do podmiotów finansujących nasze badania.", - "policy_choices": "Co możesz zrobić", - "policy_choices_open": "Nasz kod jest open source, więc zawsze masz możliwość hostowania swojej własnej wersji Cryptpad.", - "policy_choices_vpn": "Jeżeli chcesz korzystać z wersji udostępnianej przez nas, lecz nie chcesz pokazywać swojego adresu IP, możesz chronić swój adres wykorzystując przeglądarki Tor, lub VPN.", "tos_title": "Warunki korzystania z usług Cryptpad", "tos_legal": "Prosimy abyś nie był złośliwy, obelżywy i nie wykorzystywał tego oprogramowania do celow niezgodnych z prawem.", "tos_availability": "Mamy nadzieję iż uznasz tę usługę za przydatną, lecz dostępność i wydajność nie mogą być przez nas gwarantowane. Prosimy, abyś eksportował swoje dane regularnie.", diff --git a/www/common/translations/messages.pt-br.json b/www/common/translations/messages.pt-br.json index 852cbaae4..63a7b09ad 100644 --- a/www/common/translations/messages.pt-br.json +++ b/www/common/translations/messages.pt-br.json @@ -37,7 +37,6 @@ "viewers": "leitores", "editor": "editor", "language": "Lingua", - "newVersion": "O CryptPad foi atualizado!
    Cheque as novidades na última versão:
    Notas da atualização do CryptPad {0}", "upgrade": "Upgrade", "MB": "MB", "GB": "GB", @@ -46,7 +45,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "Você alcançou o limite de armazenamento", - "pinLimitReachedAlert": "Você alcançou o limite de armazenamento. Novos blocos não serão mais salvos no seu CryptDrive.
    Você pode deletar blocos do seu CryptDrive ou se inscrever como premium para aumentar o limite de espaço.", + "pinLimitReachedAlert": "Você alcançou o limite de armazenamento. Novos blocos não serão mais salvos no seu CryptDrive.
    Você pode deletar blocos do seu CryptDrive ou se inscrever como premium para aumentar o limite de espaço.", "pinLimitNotPinned": "Você alcançou o limite de armazenamento.
    Este bloco não está armazenado no seu CryptDrive.", "pinLimitDrive": "Você alcançou o limite de armazenamento.
    Você não pode criar novos blocos.", "importButtonTitle": "Importar um documento de um arquivo local", @@ -58,7 +57,7 @@ "user_accountName": "Nome da Conta", "clickToEdit": "Clique para Editar", "forgetPrompt": "Clicando OK você irá remover o endereço deste bloco de notas do armazenamento local, você tem certeza?", - "movedToTrash": "That pad has been moved to the trash.
    Access my Drive", + "movedToTrash": "That pad has been moved to the trash.
    Access my Drive", "shareButton": "Compartilhar", "shareSuccess": "Endereço copiado para o clipboard", "newButton": "Novo", @@ -141,7 +140,6 @@ "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.
    Registre-se (nenhuma informação pessoal será requerida) ou Faça login para guarda-lo no seu disco. Leia mais sobre contas registradas.", - "fm_alert_anonymous": "Ola! Você está utilizando o CryptPad anonimamente, isto é ok, mas seus blocos podem ser apagados se ficarem muito tempo inativo. Nós desativamos as funções avançadas nas contas anônimas para que isto fique claro para você Este não é um bom lugar apra salvar senhas! Entenda: Clicando aqui! Porque estamos fazendo isso e porque você deveria criar uma onta? Sign up and Clique e entenda!.", "fm_error_cantPin": "Erro interno do servidor. Por favor recarregue a página e tente novamente.", "fc_newfolder": "Nova pasta", "fc_rename": "Renomear", @@ -169,13 +167,13 @@ "login_invalPass": "É necessário uma senha", "login_unhandledError": "Um erro não esperado ocorreu :(", "register_importRecent": "Importar documentos da sua sessão não registrada", - "register_acceptTerms": "Eu aceito os termos de serviço", + "register_acceptTerms": "Eu aceito os termos de serviço", "register_passwordsDontMatch": "Senhas não coincidem!", "register_mustAcceptTerms": "Você precisa aceitar os termos de serviço.", "register_header": "Registre-se", "register_writtenPassword": "I have written down my username and password, proceed", "register_cancel": "Cancelar", - "register_warning": " Atenção", + "register_warning": "Atenção", "register_alreadyRegistered": "This user already exists, do you want to log in?", "settings_title": "Settings", "settings_save": "Save", @@ -215,21 +213,6 @@ "contact": "Contact", "terms": "ToS", "blog": "Blog", - "policy_title": "Política de privacidade do Cryptpad", - "policy_whatweknow": "O que nós sabemos sobre você", - "policy_whatweknow_p1": "Por ser uma aplicação hospedada na web, O Cryptpad tem acesso aos metadados expostos pelo protocolo HTTP. Isso inclui seu endereço IP, e vários cabeçalhos do HTTP que podem ser usados para identificar seu browser particular. Você pode ver que informações seu navegador está compartilhando ao visitar WhatIsMyBrowser.com.", - "policy_howweuse": "Como utilizamos o que nós aprendemos", - "policy_howweuse_p1": "Nos utilizamos estas informações para tomar melhores decisões sobre como promover o Cryptpad, ao avaliar quais dos nosso esforços passados foram mais bem sucedidos. Informações sobre sua localização nos ajudam a decidir se nós devemos considerar prover melhor suporte para idiomas além do inglês.", - "policy_howweuse_p2": "As informações sobre o seu navegador de internet (não importando se é um desktop ou um equipamento móvel) nos ajudam a tomar melhores decisões ao priorizar melhorias futuras. Nossa equipe de desenvolvimento é pequena, e nós tentamos fazer as melhores escolhas em pró de auxiliar a experiência de utilização do máximo de nossos usuários possíveis.", - "policy_whatwetell": "O que contamos a terceiros sobre você", - "policy_whatwetell_p1": "Nós não informamos terceiros a informação que armazenamos ou que provemos a você, salvo caso sejamos legalmente requisitados a faze-lo.", - "policy_links": "Links para outros sites", - "policy_links_p1": "Este site contém ligações para outros sites, incluindo aqueles produzidos por terceiros. Nós não nos responsabilizamos pelas práticas de privacidade ou o conteúdo destes sites. Como regra geral, links para páginas fora de nosso domínio são lançadas em novas janelas ou abas, para deixar claro a todos os visitantes que eles estão deixando o site Cryptpad.fr.", - "policy_ads": "Publicidade", - "policy_ads_p1": "Nós não disponibilizamos publicidade online, porém podemos prover links de acesso para obtenção de financiamento para auxiliar em nossa pesquisa e desenvolvimento.", - "policy_choices": "As escolhas que você tem", - "policy_choices_open": "Nosso código fonte é open source, portanto você sempre tem a opção de hospedar sua própria instância do Cryptpad.", - "policy_choices_vpn": "Se você deseja usar nosso site principal, porém não deseja expor seu endereço IP, Você pode se proteger utilizando o Navegador seguro Tor, ou uma VPN.", "tos_title": "Termos de serviço doCryptpad", "tos_legal": "Pedimos encarecidamente que, como usuário desta plataforma, você evite a prática de quaisquer atos ilegais e que evite a utilização maliciosa e/ou abusiva desta plataforma.", "tos_availability": "Nós esperamos que você ache este serviço útil, porém nós não podemos garantir a disponibilidade constante ou a alta performance do mesmo. Por favor, mantenha um backup dos seus dados como forma de segurança adicional.", @@ -259,7 +242,7 @@ "readme_cat3_l3": "With CryptPoll you can take quick votes, especially for scheduling meetings which fit with everybody's calendar", "feedback_about": "If you're reading this, you were probably curious why CryptPad is requesting web pages when you perform certain actions", "feedback_privacy": "We care about your privacy, and at the same time we want CryptPad to be very easy to use. We use this file to figure out which UI features matter to our users, by requesting it along with a parameter specifying which action was taken.", - "feedback_optout": "If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback", + "feedback_optout": "If you would like to opt out, visit your user settings page, where you'll find a checkbox to enable or disable user feedback.", "button_newkanban": "Novo Kanban", "button_newsheet": "Nova Planilha", "padNotPinned": "Esse pad vai expirar depois de 3 meses de inatividade. {0}login{1} ou {2}registrar-se{3} para preservá-lo.", @@ -528,7 +511,7 @@ "markdown_toc": "Conteúdo", "survey": "CryptPad enquete", "crowdfunding_popup_no": "Não agora", - "crowdfunding_popup_text": "

    Nós precisamos de sua ajuda!

    Para garantir que o CryptPad seja ativamente desenvolvido, considere dar suporte ao projeto pela página OpenCollective, onde você poderá ver nosso Roteiro e Metas de financiamento.", + "crowdfunding_popup_text": "

    Nós precisamos de sua ajuda!

    Para garantir que o CryptPad seja ativamente desenvolvido, considere dar suporte ao projeto pela página OpenCollective, onde você poderá ver nosso Roteiro e Metas de financiamento.", "crowdfunding_button2": "Ajuda CryptPad", "crowdfunding_button": "CryptPad suporte", "autostore_notAvailable": "Você precisa armazenar este bloco no seu CryptDrive antes de poder usar este recurso.", @@ -537,7 +520,7 @@ "autostore_error": "Erro inesperado: nós não conseguimos armazenar este bloco, por favor, tente novamente.", "autostore_hide": "Não armazene", "autostore_store": "Armazenamento", - "autostore_settings": "Você pode habilitar o armazenamento automático de bloco na página de Configurações!", + "autostore_settings": "Você pode habilitar o armazenamento automático de bloco na página de Configurações!", "autostore_notstored": "Isto {0} não está no seu CryptDrive. Quer armazena-lo agora?", "autostore_pad": "bloco", "autostore_sf": "Pasta", @@ -812,7 +795,7 @@ "support_formContentError": "Erro: conteúdo está vazio", "support_formTitleError": "Erro: Título está vazio", "support_formButton": "Enviar", - "support_formHint": "Use este formulário para entrar em contato com os administradores com segurança sobre questões e dúvidas.
    Observe que algumas dúvidas/questões já podem ter sido abordadas no Guia do usuário do CryptPad . Por favor, não crie um novo tíquete se você já tem um tíquete aberto sobre o mesmo problema. Em vez disso, responda à sua mensagem original com informações adicionais.", + "support_formHint": "Use este formulário para entrar em contato com os administradores com segurança sobre questões e dúvidas.
    Observe que algumas dúvidas/questões já podem ter sido abordadas no Guia do usuário do CryptPad . Por favor, não crie um novo tíquete se você já tem um tíquete aberto sobre o mesmo problema. Em vez disso, responda à sua mensagem original com informações adicionais.", "support_formTitle": "Novo Tíquete", "support_cat_new": "Novo tíquete", "support_disabledHint": "Esta instância do CryptPad ainda não está configurada para usar um formulário de suporte.", @@ -943,7 +926,7 @@ "settings_safeLinksHint": "O CryptPad inclui as chaves para descriptografar seus blocos em seus links. Qualquer pessoa com acesso ao seu histórico de navegação pode potencialmente ler seus dados. Isso inclui extensões de navegador intrusivas e navegadores que sincronizam seu histórico entre dispositivos. Ativar \"links seguros\" evita que as chaves entrem no seu histórico de navegação ou sejam exibidas na barra de endereço, sempre que possível. É altamente recomendável ativar esse recurso e usar o menu {0} Compartilhar.", "profile_login": "Você precisa fazer login para adicionar este usuário aos seus contatos", "dontShowAgain": "Não mostra de novo", - "safeLinks_error": "Este link foi copiado da barra de endereço do navegador e não fornece acesso ao documento. Use o menu Compartilhar para compartilhar diretamente com os contatos ou copie o link. Leia mais sobre o recurso Links Seguros .\n", + "safeLinks_error": "Este link foi copiado da barra de endereço do navegador e não fornece acesso ao documento. Use o menu Compartilhar para compartilhar diretamente com os contatos ou copie o link. Leia mais sobre o recurso Links Seguros .", "settings_safeLinksCheckbox": "Habilitar links seguros", "settings_safeLinksTitle": "Links Seguros", "settings_cat_security": "Confidencialidade", diff --git a/www/common/translations/messages.ro.json b/www/common/translations/messages.ro.json index 2d22b2642..a50d7c576 100644 --- a/www/common/translations/messages.ro.json +++ b/www/common/translations/messages.ro.json @@ -37,7 +37,7 @@ "user_accountName": "Nume cont", "clickToEdit": "Click pentru editare", "forgetPrompt": "Click-ul pe OK va muta acest pad la gunoi. Ești sigur?", - "movedToTrash": "Acest pad a fost mutat la gunoi.
    Acces la Drive-ul meu", + "movedToTrash": "Acest pad a fost mutat la gunoi.
    Acces la Drive-ul meu", "shareButton": "Distribuie", "shareSuccess": "Link copiat în clipboard", "newButton": "Nou", @@ -120,7 +120,6 @@ "fm_info_template": "Conține toate pad-urile stocate ca șabloane și pe care le poți refolosi atunci când creezi un nou pad.", "fm_info_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 (află de ce). Înscrie-te sau Loghează-te pentru a le salva.", - "fm_alert_anonymous": "Salut, momentan folosești CryptPad în mod anonim. Este ok, doar că fișierele tale vor fi șterse după o perioadă de inactivitate. Am dezactivat caracteristicile avansate ale drive-ului pentru utilizatorii anonimi pentru a face clar faptul că stocare documentelor acolo nu este o metodă sigură. Poți să citești mai multe despre motivarea noastră și despre ce de trebuie să te Înregistrezi si sa te Loghezi.", "fc_newfolder": "Folder nou", "fc_rename": "Redenumește", "fc_open": "Deschide", @@ -147,7 +146,7 @@ "login_invalPass": "Parolă cerută", "login_unhandledError": "O eroare neașteptată a avut loc emoticon_unhappy", "register_importRecent": "Importă istoricul pad-ului (Recomandat)", - "register_acceptTerms": "Accept termenii serviciului", + "register_acceptTerms": "Accept termenii serviciului", "register_passwordsDontMatch": "Parolele nu se potrivesc!", "register_mustAcceptTerms": "Trebuie să accepți termenii serviciului", "register_header": "Bine ai venit în CryptPad", @@ -187,21 +186,6 @@ "contact": "Contact", "terms": "ToS", "blog": "Blog", - "policy_title": "Politica de confidențialitate CryptPad", - "policy_whatweknow": "Ce știm despre tine", - "policy_whatweknow_p1": "Ca o aplicație care este găzduită online, CryptPad are acces la metadatele expuse de protocolul HTTP. Asta include adresa IP-ului tău, și alte titluri HTTP care pot fi folosite ca să identifice un browser. Poți să vezi ce informații împărtășește browser-ul tău vizitând WhatIsMyBrowser.com.", - "policy_howweuse": "Cum folosim ce aflăm", - "policy_howweuse_p1": "Folosim aceste informații pentru a lua decizii mai bune în promovarea CryptPad, prin evaluarea eforturilor trecute care au fost de succes. Informațiile despre locația ta ne ajută să aflăm dacă ar trebui să oferim suport pentru alte limbi, pe lângă engleză.", - "policy_howweuse_p2": "Informațiile despre browser-ul tău (dacă este bazat pe un sistem de operare desktop sau mobil) ne ajută să luăm decizii când prioritizăm viitoarele îmbunătățiri. Echipa noastră de dezvoltare este mică, și încercăm să facem alegeri care să îmbunătățească experiența câtor mai mulți utilizatori.", - "policy_whatwetell": "Ce le spunem altora despre tine", - "policy_whatwetell_p1": "Nu furnizăm informațiile obținute terților, decât dacă ne este cerut în mod legal.", - "policy_links": "Link-uri către alte site-uri", - "policy_links_p1": "Acest site conține link-uri către alte site-uri, incluzându-le pe cele produse de alte organizații. Nu suntem responsabili pentru practicile de intimitate sau pentru conținutul site-urilor externe. Ca regulă generală, link-urile către site-uri externe sunt deschise ntr-o fereastră noup, pentru a face clar faptul că părăsiți CryptPad.fr.", - "policy_ads": "Reclame", - "policy_ads_p1": "Nu afișăm nici o formă de publicitate online, dar s-ar putea să atașăm link-uri către instituțiile care ne finanțează cerecetarea.", - "policy_choices": "Ce alegeri ai", - "policy_choices_open": "Codul nostru este open source, așa că tu ai mereu posibilitatea de a-ți găzdui propria instanță de CryptPad.", - "policy_choices_vpn": "Dacă vrei să folosești instanța găzduită de noi, dar nu vrei să îți expui IP-ul, poți să îl protejezi folosind Tor browser bundle, sau VPN.", "tos_title": "CryptPad Termeni de Utilizare", "tos_legal": "Te rugăm să nu fii rău intenționat, abuziv, sau să faci orice ilegal.", "tos_availability": "Sperăm că o să găsești acest serviciu util, dar disponibilitatea sau performanța nu poate fi garantată. Te rugăm să îți exporți datele n mod regulat.", @@ -231,7 +215,7 @@ "readme_cat3_l3": "Cu CryptPoll poți să organizezi votări rapide, mai ales pentru a programa ntâlniri care se potrivesc calendarelor tuturor", "feedback_about": "Dacă citești asta, probabil că ești curios de ce CryptPad cere pagini web atunci când întreprinzi anumite acțiuni", "feedback_privacy": "Ne pasă de intimitatea ta, si în același timp vrem să păstrăm CryptPad ușor de folosit. Folosim acest fișier pentru a ne da seama care beneficii UI contează cel mai mult pentru utilizatori, cerându-l alături de un parametru specific atunci când acțiunea se desfășoară", - "feedback_optout": "Dacă vrei să ieși, vizitează setările de pe pagina ta de user, unde vei găsi o căsuță pentru a activa sau dezactiva feedback-ul de la user", + "feedback_optout": "Dacă vrei să ieși, vizitează setările de pe pagina ta de user, unde vei găsi o căsuță pentru a activa sau dezactiva feedback-ul de la user.", "type": { "pad": "Text", "code": "Cod", @@ -266,7 +250,6 @@ "forgotten": "Mutat în coșul de gunoi", "errorState": "Eroare critică: {0}", "userlist_offline": "Ești momentan offline, lista utilizatorilor nu este disponibilă.", - "newVersion": "CryptPad a fost updatat!
    Verifică ce e nou în noua versiune:
    Release notes for CryptPad {0}", "upgradeAccount": "Actualizare cont", "GB": "GB", "KB": "KB", @@ -397,7 +380,7 @@ "fm_deleteOwnedPad": "Ești sigur că vrei să ștergi definitiv acest pad de pe server?", "fm_deleteOwnedPads": "Ești sigur că vrei să ștergi definitiv aceste pad-uri de pe server?", "fm_info_recent": "Aceste documente au fost deschise sau modificate recent de către tine sau de către colaboratorii tăi.", - "fm_info_sharedFolder": "Acesta este un dosar partajat. Deoarece nu ești logat, îl poți vizualiza doar în modul citire.
    Înscrie-te sau Log in pentru a-l putea importa in CryptDrive-ul tău si a-l modifica.", + "fm_info_sharedFolder": "Acesta este un dosar partajat. Deoarece nu ești logat, îl poți vizualiza doar în modul citire.
    Înscrie-te sau Log in pentru a-l putea importa in CryptDrive-ul tău si a-l modifica.", "fm_info_owned": "Ești proprietarul pad-urilor afișate aici. Acest lucru înseamna că le poți șterge definitiv de pe server oricând vei dori. Dacă decizi să le ștergi, alți utilizatori nu le vor mai putea accesa.", "fm_error_cantPin": "O eroare internă de server a apărut. Te rugăm să reîncarci pagina și să încerci din nou.", "fm_viewListButton": "Vizualizează sub formă de listă", diff --git a/www/common/translations/messages.ru.json b/www/common/translations/messages.ru.json index 4793180e2..e257a47bd 100644 --- a/www/common/translations/messages.ru.json +++ b/www/common/translations/messages.ru.json @@ -57,7 +57,6 @@ "editor": "автор", "userlist_offline": "В данный момент вы не подключены, список пользователей недоступен.", "language": "Язык", - "newVersion": "CryptPad обновился!
    Посмотрите что нового в последней версии:
    Изменения в CryptPad {0}", "upgrade": "Обновление", "upgradeAccount": "Улучшить тарифный план", "MB": "Мб", @@ -67,7 +66,7 @@ "formattedGB": "{0} Гб", "formattedKB": "{0} Кб", "pinLimitReached": "У вас закончилось свободное место", - "pinLimitReachedAlert": "У вас закончилось свободное место. Новые документы не будут сохраняться в вашем CryptDrive.
    Вы можете удалить ненужные документы из вашего CryptDrive или оформить премиум-подписку и получить больше свободного места.", + "pinLimitReachedAlert": "У вас закончилось свободное место. Новые документы не будут сохраняться в вашем CryptDrive.
    Вы можете удалить ненужные документы из вашего CryptDrive или оформить премиум-подписку и получить больше свободного места.", "pinLimitReachedAlertNoAccounts": "У вас закончилось свободное место", "pinLimitNotPinned": "У вас закончилось свободное место.
    Этот документ не будет сохранён в вашем CryptDrive.", "pinLimitDrive": "У вас закончилось свободное место.
    Вы не можете создавать новые документы.", @@ -84,7 +83,7 @@ "saveTitle": "Сохранить заголовок (Ввод)", "forgetButton": "Удалить", "forgetPrompt": "Нажав ОК, вы удалите документ в корзину. Уверены?", - "movedToTrash": "Документ был удалён в корзину.
    Доступ к диску", + "movedToTrash": "Документ был удалён в корзину.
    Доступ к диску", "shareButton": "Поделиться", "shareSuccess": "Ссылка скопирована в буфер обмена", "userListButton": "Список пользователей", @@ -367,7 +366,7 @@ "settings_export_download": "Скачиваем и расшифровываем ваши документы...", "contacts_request": "{0} хотел бы добавить вас в список контактов. Принять ?", "contacts_confirmRemove": "Вы уверены, что хотите удалить 1{0}2 из ваших контактов?", - "register_acceptTerms": "Я принимаю 1 условия пользования", + "register_acceptTerms": "Я принимаю 1 условия пользования", "register_warning": "Мы не сможем восстановить ваши данные, если вы потеряете пароль, так как мы не имеем доступа к ним.", "settings_backupCategory": "Резервное копирование", "settings_backup": "Резервная копия", @@ -402,7 +401,6 @@ "settings_autostoreMaybe": "Вручную (всегда спрашивать)", "settings_userFeedbackTitle": "Обратная связь", "settings_userFeedbackHint2": "Содержимое вашего документа никогда не будет передаваться на сервер.", - "fm_alert_anonymous": "Здравствуйте, в настоящее время вы используете CryptPad анонимно, это нормально, но ваши документы могут быть удалены после периода бездействия. Мы отключили расширенные возможности хранилища для анонимных пользователей, потому что хотим донести до вас, что это небезопасное место для хранения. Вы можете 1читать далее2 о том, почему мы это делаем и почему вам стоит зарегистрироваться4 and 5Log in6.", "settings_resetPrompt": "Это действие удалит все документы с диска.
    Вы уверены, что хотите продолжить?
    Напишите \"Я люблю CryptPad\" для подтверждения.", "settings_importTitle": "Импортируйте последние документы данного браузера в ваше хранилище", "settings_importConfirm": "Вы уверены, что хотите импортировать последние документы из этого браузера в хранилище вашего пользователя?", @@ -637,12 +635,6 @@ "features_registered": "Зарегистрированный пользователь", "features_title": "Функции", "features": "Функции", - "policy_ads": "Реклама", - "policy_links": "Ссылки на другие сайты", - "policy_whatwetell": "Какую информацию о вас мы передаем другим", - "policy_howweuse": "Как мы используем информацию о вас", - "policy_whatweknow": "Что мы знаем о вас", - "policy_title": "Политика конфиденциальности CryptPad", "whatis_drive": "Порядок с Cryptdrive", "whatis_collaboration": "Конфиденциальное взаимодействие", "whatis_title": "Что такое CryptPad?", @@ -704,17 +696,8 @@ "settings_ownDrivePending": "Ваш аккаунт обновляется. Пожалуйста, не закрывайте и не обновляйте страницу пока процесс не закончится.", "settings_changePasswordHint": "Изменение пароля от аккаунта. Введите ваш текущий пароль и подтвердите новый пароль, введя его дважды.
    Мы не сможем сбросить ваш пароль, если вы его забудете, будьте осторожны!", "settings_changePasswordNewConfirm": "Подтвердите новый пароль", - "policy_whatwetell_p1": "Мы не предоставляем собранную информацию третьим лицам за исключением случаев, когда мы обязаны сделать это по законодательству.", - "policy_howweuse_p2": "Информация о вашем браузере (настольная или мобильная операционная система) помогает нам приоритизировать развитие функционала. Наша команда разработчиков маленькая и, принимая решения об улучшениях, мы стараемся охватить наибольшее число пользователей.", - "policy_howweuse_p1": "Данная информация помогает нам принимать решения о продвижении CryptPad и оценивать успешность наших действий. Информация о вашем местоположении помогает нам понять необходимость больших усилий для поддержки других языков.", - "policy_whatweknow_p1": "Так как приложение размещено в Интернете, CryptPad имеет доступ ко всем метаданным протокола HTTP. Это включает ваш IP адрес и различные HTTP заголовки, которые могут быть использованы для идентификации вашего браузера. Информацию, которую раскрывает ваш браузер, вы можете найти на сайте WhatIsMyBrowser.com.", "terms": "Пользовательское соглашение", "tos_availability": "Мы надеемся, что вам понравится наш сервис, но не можем гарантировать его доступность или производительность. Поэтому, пожалуйста, регулярно экспортируйте ваши данные.", "features_f_file0": "Работа с документами", - "policy_choices_vpn": "Если вы решили развернуть свой сервер, но хотите раскрывать ваш IP адрес, вы можете его защитить с помощью Tor браузера, or a VPN.", - "policy_choices_open": "Наш код открыт, поэтому вы всегда можете развернуть свой собственный сервер CryptPad.", - "policy_choices": "Ваш выбор", - "policy_ads_p1": "Мы не показываем онлайн рекламу, хотя можем давать ссылки на стороны, финансирующие наших исследования.", - "policy_links_p1": "Данный сайт содержит ссылки на другие сайты, в том числе созданные другими организациями. Мы не несем ответственности за обеспечение конфиденциальности или сдержимое сторонних сайтов. По умолчанию ссылки на сторонние сайты запускаются в новом окне браузера, чтобы предупредить об уходе с CryptPad.fr.", "about": "О нас" } diff --git a/www/common/translations/messages.sv.json b/www/common/translations/messages.sv.json index f79764fc6..6b286912c 100644 --- a/www/common/translations/messages.sv.json +++ b/www/common/translations/messages.sv.json @@ -53,7 +53,7 @@ "propertiesButton": "Egenskaper", "colorButtonTitle": "Ändra textfärgen i presentationsläge", "useTemplateCancel": "Starta tomt (Esc)", - "pinLimitReachedAlert": "Du har nått din lagringsgräns. Nya dokument kommer inte lagras i din CryptDrive.
    Du kan antingen ta bort dokument från din CryptDrive eller eller prenumerera på premium för att öka din lagringsgräns.", + "pinLimitReachedAlert": "Du har nått din lagringsgräns. Nya dokument kommer inte lagras i din CryptDrive.
    Du kan antingen ta bort dokument från din CryptDrive eller eller prenumerera på premium för att öka din lagringsgräns.", "anonymousStoreDisabled": "Administratören för denna CryptPad-instans har avaktiverat anonyma användare. Du måste logga in för att kunna använda CryptDrive.", "common_connectionLost": "Serveranslutning tappad
    Du är nu i skrivskyddat läge tills anslutningen är tillbaka.", "button_newcode": "Nytt kod-dokument", @@ -78,7 +78,7 @@ "userListButton": "Användarlista", "shareSuccess": "Länken är kopierad", "shareButton": "Dela", - "movedToTrash": "Dokumentet har flyttats till papperskorgen.
    Gå till min Drive", + "movedToTrash": "Dokumentet har flyttats till papperskorgen.
    Gå till min Drive", "forgetPrompt": "Om du klickar OK flyttas detta dokument till papperskorgen. Är du säker?", "forgetButton": "Radera", "saveTitle": "Spara titeln (enter)", @@ -105,7 +105,6 @@ "storageStatus": "Lagring:
    {0} använd av {1}", "upgradeAccount": "Uppgradera konto", "upgrade": "Uppgradera", - "newVersion": "CryptPad har uppdaterats!
    Se vad som är nytt i den senaste versionen:
    Release notes för CryptPad {0}", "language": "Språk", "userlist_offline": "Du är för närvarande offline, användarlistan är inte tillgänglig.", "editor": "redigerare", diff --git a/www/common/translations/messages.tr.json b/www/common/translations/messages.tr.json index 85522bc69..b51448f94 100644 --- a/www/common/translations/messages.tr.json +++ b/www/common/translations/messages.tr.json @@ -18,7 +18,6 @@ "code": "Kod", "pad": "Zengin metin biçimi" }, - "fm_alert_anonymous": "Merhaba, şu anda CryptPad'i anonim olarak kullanıyorsunuz, sorun değil, ancak padlariniz bir süre kullanılmadığında silinebilir. Anonim kullanıcılar için sürücünün gelişmiş özelliklerini devre dışı bıraktık, çünkü bir şeyleri depolamak için güvenli bir yer olmadığını açıkça belirtmek istiyoruz. Bunu neden yaptığımız hakkında ve neden Kayıt olmanız ve Giriş yapmanız gerektiği hakkında okuyabilirsiniz.", "main_catch_phrase": "Ekip iş birliği sistemi,
    şifreli ve açık kaynak", "main_title": "CryptPad: Tamamen Gizli, İşbirliğine Dayalı Gerçek Zamanlı Düzenleme" } diff --git a/www/common/translations/messages.zh.json b/www/common/translations/messages.zh.json index 0220f337f..586a83e24 100644 --- a/www/common/translations/messages.zh.json +++ b/www/common/translations/messages.zh.json @@ -37,7 +37,6 @@ "viewers": "檢視群", "editor": "編輯者", "language": "語言", - "newVersion": "CryptPad 已更新!
    檢查最新版本有什麼新功能:
    CryptPad新發佈記事 {0}", "upgrade": "昇級", "MB": "MB", "GB": "GB", @@ -46,7 +45,7 @@ "formattedGB": "{0} GB", "formattedKB": "{0} KB", "pinLimitReached": "你已達到儲存容量上限", - "pinLimitReachedAlert": "你已達到儲存容量上限,新檔案不會儲存到你的 CryptDrive.
    要嘛你可以自 CryptDrive 移除原有文件或是 昇級到付費版增加你的儲存容量。", + "pinLimitReachedAlert": "你已達到儲存容量上限,新檔案不會儲存到你的 CryptDrive.
    要嘛你可以自 CryptDrive 移除原有文件或是 昇級到付費版增加你的儲存容量。", "pinLimitNotPinned": "你已達到容量使用上限
    這個檔案無法儲存到你的 CryptDrive.", "pinLimitDrive": "你已達到容量使用上限
    你不能建立新的編輯檔案", "importButtonTitle": "從電腦上傳滙入檔案", @@ -58,7 +57,7 @@ "user_accountName": "帳號名稱", "clickToEdit": "點擊以編輯", "forgetPrompt": "點擊 OK 將把這個檔案移置垃圾筒,確定要這樣做嗎", - "movedToTrash": "這個檔案已被移置垃圾筒
    讀取我的雲端硬碟", + "movedToTrash": "這個檔案已被移置垃圾筒
    讀取我的雲端硬碟", "shareButton": "分享", "shareSuccess": "複製連結到剪貼版", "newButton": "新", @@ -142,7 +141,6 @@ "fm_info_template": "包含所有工作檔案已存成模版,便於讓你在建立新工作檔案時套用。", "fm_info_trash": "清空垃圾筒好讓 CryptDrive 多出一些空間", "fm_info_anonymous": "您没有登录,所以您的文档将在{0}天后过期。清除你的浏览器历史记录可能会使它们消失。
    注册 (无需个人信息) 或登录以无限期地把它们储存在你的硬盘里。 阅读更多关于注册帐户。", - "fm_alert_anonymous": "嗨你好, 你目前正以匿名方式在使用 CryptPad , 這也沒問題,不過你的東西過一段時間沒動靜後,就會自動被刪除。 匿名的用戶我們也取消其進階功能,因為我們要明確地讓用戶知道,這裏 不是一個安全存放東西的地方。你可以 進一步了解 關於 為何我們這樣作,以及為何你最好能夠註冊 以及 登錄使用。", "fm_error_cantPin": "內部伺服器出錯,請重新載入本頁並再試一次。", "fc_newfolder": "新資料夾", "fc_rename": "重新命名", @@ -170,7 +168,7 @@ "login_invalPass": "要求密碼", "login_unhandledError": "發生了未預期的錯誤 :(", "register_importRecent": "滙入檔案記錄 (建議)", - "register_acceptTerms": "我同意 服務條款", + "register_acceptTerms": "我同意 服務條款", "register_passwordsDontMatch": "密碼不相符!", "register_mustAcceptTerms": "你必須同意我們的服務條款。", "register_header": "歡迎來到 CryptPad", @@ -216,21 +214,6 @@ "contact": "聯繫", "terms": "服務條款", "blog": "Blog", - "policy_title": "CryptPad 隱私政策", - "policy_whatweknow": "我們會知道哪些關於你的資料", - "policy_whatweknow_p1": "作為一個網頁上的應用程式, CryptPad 可以接取 HTTP 協議所曝露的元數據。 這包括你的 IP 地址、各式其它的 HTTP 標頭,其用於識別你特定的瀏覽器。 你可以訪問 WhatIsMyBrowser.com這個網站,知道你的瀏覽器分享了哪些資訊。", - "policy_howweuse": "我們如何利用我們知道的東西", - "policy_howweuse_p1": "我們利用這些資訊評估過去成功的效果,以更佳地決定如何推廣 CryptPad。有關你地理位置的資訊讓我們知道是否該提供英語之外的語言版本支援", - "policy_howweuse_p2": "有關你的瀏覽器資訊 (是桌面還是手機操作系統) 有助於讓我們決定要優先哪些功能改善。我們開發團隊人很少,我們試著挑選盡可能地提昇更多用戶的使用體驗。", - "policy_whatwetell": "我們可以告訴別人關於你的哪些資料", - "policy_whatwetell_p1": "我們不會給第三人我們所收集的資訊,除非被依法要求配合。", - "policy_links": "其它網站連結", - "policy_links_p1": "本站含有其它網站的連結,包括其它組織的産品。我們無法對這些隱私實踐或任何本站以外的內容負責。一般而言,連到外站的連結會另啟新視窗,以明確讓你知道已離開了CryptPad.fr.", - "policy_ads": "廣告", - "policy_ads_p1": "我們不會放置任何線上廣告,但會提供一些資助我們研究的機構與團體的網址連結", - "policy_choices": "你有的選擇", - "policy_choices_open": "我們的代碼是開放的,你可以選擇自行在自己的機器上來架設自己的 CryptPad.", - "policy_choices_vpn": "如果你要使用我們架設的服務, 但不希望曝露自己的 IP 地址, 你可以利用Tor 瀏覽器套件來保護隱藏 IP 地址, 或是使用 VPN。", "tos_title": "CryptPad 服務條款", "tos_legal": "請不要惡意、濫用或從事非法活動。", "tos_availability": "希望你覺得我們的産品與服務對你有所幫助, 但我們並不能一直百分百保證它的表現穩定與可得性。請記得定期滙出你的資料。", @@ -260,7 +243,7 @@ "readme_cat3_l3": "利用 CryptPoll 你可以快速作個線上調查,尤其是調查每個人有空的會議時間。", "feedback_about": "如果你讀了這裏,也許會好奇為何當你執行某些動作時 CryptPad 會請求網頁資訊。", "feedback_privacy": "我們注重你的隱私,同時也要讓 CryptPad 容易使用。我們利用這個檔案來了解哪一種介面設計為用戶所重視,透過它來請求特別的功能參數。", - "feedback_optout": "如果欲退出客戶資料收集, 請到 用戶設定頁, 可以找到勾選項目來啟用或關閉用戶回饋功能。", + "feedback_optout": "如果欲退出客戶資料收集, 請到 用戶設定頁, 可以找到勾選項目來啟用或關閉用戶回饋功能。", "settings_cat_kanban": "看板", "themeButton": "主题", "languageButton": "语言", diff --git a/www/drive/inner.js b/www/drive/inner.js index db5eb4d99..e8586e8e0 100644 --- a/www/drive/inner.js +++ b/www/drive/inner.js @@ -218,6 +218,11 @@ define([ }; var toolbar = Toolbar.create(configTb); + var helpMenu = common.createHelpMenu(['drive']); + APP.help = helpMenu.menu; + $('#cp-app-drive-content-container').prepend(helpMenu.menu); + + var $displayName = APP.$bar.find('.' + Toolbar.constants.username); metadataMgr.onChange(function () { var name = metadataMgr.getUserData().name || Messages.anonymous; diff --git a/www/logout/main.js b/www/logout/main.js index d23bb8969..7211dfa84 100644 --- a/www/logout/main.js +++ b/www/logout/main.js @@ -1,4 +1,13 @@ -define(['/bower_components/localforage/dist/localforage.min.js'], function (localForage) { - localForage.clear(); - localStorage.clear(); +define([ + '/bower_components/localforage/dist/localforage.min.js', + '/common/outer/cache-store.js', + '/bower_components/nthen/index.js', +], function (localForage, Cache, nThen) { + nThen(function (w) { + localStorage.clear(); + localForage.clear(w()); + Cache.clear(w()); + }).nThen(function () { + window.location.href = '/login/'; + }); }); diff --git a/www/pad/inner.js b/www/pad/inner.js index 793d57b72..96f27c36a 100644 --- a/www/pad/inner.js +++ b/www/pad/inner.js @@ -710,6 +710,18 @@ define([ var el = e.currentTarget; if (!el || el.nodeName !== 'A') { return; } var href = el.getAttribute('href'); + if (/^#/.test(href)) { + try { + $inner.find('.cke_anchor[data-cke-realelement]').each(function (i, el) { + var i = editor.restoreRealElement($(el)); + var node = i.$; + if (node.id === href.slice(1)) { + el.scrollIntoView(); + } + }); + } catch (e) {} + return; + } if (href) { framework._.sfCommon.openUnsafeURL(href); } diff --git a/www/register/main.js b/www/register/main.js index 3c77d0f53..b241fd4e5 100644 --- a/www/register/main.js +++ b/www/register/main.js @@ -102,7 +102,11 @@ define([ setTimeout(function () { var span = h('span', [ - UI.setHTML(h('h2'), Messages.register_warning), // TODO remove the icon from this translation string and pass it separately + h('h2', [ + h('i.fa.fa-warning'), + ' ', + Messages.register_warning, + ]), Messages.register_warning_note ]); diff --git a/www/settings/inner.js b/www/settings/inner.js index 338b1ccc6..7152994fd 100644 --- a/www/settings/inner.js +++ b/www/settings/inner.js @@ -472,10 +472,6 @@ define([ }); }, true); - Messages.settings_deleteWarning = "Warning: it seems you're subscribed to a premium plan (paid or given by another user). Please cancel paid subscriptions before deleting your account as you won't be able to do it yourself once the account is deleted."; // XXX - Messages.settings_deleteContinue = "Delete my account"; // XXX - Messages.settings_deleteSubscription = "Manage my subscription"; // XXX - makeBlock('delete', function(cb) { // Msg.settings_deleteHint, .settings_deleteTitle if (!common.isLoggedIn()) { return cb(false); } diff --git a/www/support/inner.js b/www/support/inner.js index aee0e347a..f466e7693 100644 --- a/www/support/inner.js +++ b/www/support/inner.js @@ -12,6 +12,7 @@ define([ '/support/ui.js', '/api/config', '/customize/application_config.js', + '/customize/pages.js', 'css!/bower_components/bootstrap/dist/css/bootstrap.min.css', 'css!/bower_components/components-font-awesome/css/font-awesome.min.css', @@ -29,7 +30,8 @@ define([ h, Support, ApiConfig, - AppConfig + AppConfig, + Pages ) { var APP = window.APP = {}; @@ -168,6 +170,7 @@ define([ create['form'] = function () { var key = 'form'; var $div = makeBlock(key, true); // Msg.support_formHint, .support_formTitle, .support_formButton + Pages.documentationLink($div.find('a')[0], 'https://docs.cryptpad.fr/en/user_guide/index.html'); var form = APP.support.makeForm(); diff --git a/www/support/ui.js b/www/support/ui.js index a2b5da4a8..947a43d93 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -445,9 +445,6 @@ define([ }; ctx.FM = common.createFileManager(fmConfig); - ui.send = function (id, type, data, dest) { // XXX confirm that this is actually used - return send(ctx, id, type, data, dest); - }; ui.sendForm = function (id, form, dest) { return sendForm(ctx, id, form, dest); };