From 812d8f87708a3075ccf0c1e5aea7ac902afa85b2 Mon Sep 17 00:00:00 2001 From: yflory Date: Fri, 27 Mar 2020 15:47:59 +0100 Subject: [PATCH 1/5] Deprecate 'skip PCS' feature --- www/common/common-ui-elements.js | 45 +----- www/common/sframe-app-framework.js | 6 - www/common/sframe-common.js | 5 +- www/common/toolbar3.js | 2 +- www/poll/inner.js | 7 - www/settings/inner.js | 246 ----------------------------- 6 files changed, 4 insertions(+), 307 deletions(-) diff --git a/www/common/common-ui-elements.js b/www/common/common-ui-elements.js index 60a3bcfc5..22836a234 100644 --- a/www/common/common-ui-elements.js +++ b/www/common/common-ui-elements.js @@ -2796,18 +2796,6 @@ define([ var $advanced; - var $advancedContainer = $('
'); - var priv = common.getMetadataMgr().getPrivateData(); - var c = (priv.settings.general && priv.settings.general.creation) || {}; - if (AppConfig.displayCreationScreen && common.isLoggedIn() && c.skip) { - var $cboxLabel = $(UI.createCheckbox('cp-app-toolbar-creation-advanced', - Messages.creation_newPadModalAdvanced, true)) - .appendTo($advancedContainer); - $advanced = $cboxLabel.find('input'); - $description.append('
'); - $description.append(Messages.creation_newPadModalDescriptionAdvanced); - } - var $container = $('
'); var i = 0; var types = AppConfig.availablePadTypes.filter(function (p) { @@ -2872,7 +2860,7 @@ define([ }); - $modal.find('.cp-modal').append($container).append($advancedContainer); + $modal.find('.cp-modal').append($container); window.setTimeout(function () { $modal.show(); $modal.focus(); @@ -3117,15 +3105,6 @@ define([ right ]); - var settings = h('div.cp-creation-remember', [ - UI.createCheckbox('cp-creation-remember', Messages.dontShowAgain, false), - createHelper('/settings/#creation', Messages.creation_settings), - h('div.cp-creation-remember-help.cp-creation-slider', [ - h('span.fa.fa-exclamation-circle.cp-creation-warning'), - Messages.creation_rememberHelp - ]) - ]); - var createDiv = h('div.cp-creation-create'); var $create = $(createDiv); @@ -3134,7 +3113,6 @@ define([ owned, expire, password, - settings, templates, createDiv ])).appendTo($creation); @@ -3282,16 +3260,6 @@ define([ $creation.focus(); }); - // Display settings help when checkbox checked - $creation.find('#cp-creation-remember').on('change', function () { - if ($(this).is(':checked')) { - $creation.find('.cp-creation-remember-help:not(.active)').addClass('active'); - return; - } - $creation.find('.cp-creation-remember-help').removeClass('active'); - $creation.focus(); - }); - // Keyboard shortcuts $creation.find('#cp-creation-expire-val').keydown(function (e) { if (e.which === 9) { @@ -3309,9 +3277,6 @@ define([ if (!cfg.owned && typeof cfg.owned !== "undefined") { $creation.find('#cp-creation-owned').prop('checked', false); } - if (cfg.skip) { - $creation.find('#cp-creation-remember').prop('checked', true).trigger('change'); - } UIElements.setExpirationValue(cfg.expire, $creation); // Create the pad @@ -3354,14 +3319,6 @@ define([ var create = function () { var val = getFormValues(); - var skip = $('#cp-creation-remember').is(':checked'); - common.setAttribute(['general', 'creation', 'skip'], skip, function (e) { - if (e) { return void console.error(e); } - }); - common.setAttribute(['general', 'creation', 'noTemplate'], skip, function (e) { - if (e) { return void console.error(e); } - }); - common.setAttribute(['general', 'creation', 'owned'], val.owned, function (e) { if (e) { return void console.error(e); } }); diff --git a/www/common/sframe-app-framework.js b/www/common/sframe-app-framework.js index a90877ff1..e1378bbac 100644 --- a/www/common/sframe-app-framework.js +++ b/www/common/sframe-app-framework.js @@ -402,12 +402,6 @@ define([ Thumb.initPadThumbnails(common, options.thumbnail); } } - - var skipTemp = Util.find(privateDat, ['settings', 'general', 'creation', 'noTemplate']); - var skipCreation = Util.find(privateDat, ['settings', 'general', 'creation', 'skip']); - if (newPad && (!AppConfig.displayCreationScreen || (!skipTemp && skipCreation))) { - common.openTemplatePicker(); - } }); }; var onConnectionChange = function (info) { diff --git a/www/common/sframe-common.js b/www/common/sframe-common.js index 8d04c6263..be85f2fdc 100644 --- a/www/common/sframe-common.js +++ b/www/common/sframe-common.js @@ -293,10 +293,9 @@ define([ var priv = ctx.metadataMgr.getPrivateData(); if (priv.isNewFile) { var c = (priv.settings.general && priv.settings.general.creation) || {}; - var skip = !AppConfig.displayCreationScreen || (c.skip && !priv.forceCreationScreen); // If this is a new file but we have a hash in the URL and pad creation screen is // not displayed, then display an error... - if (priv.isDeleted && (!funcs.isLoggedIn() || skip)) { + if (priv.isDeleted && !funcs.isLoggedIn()) { UI.errorLoadingScreen(Messages.inactiveError, false, function () { UI.addLoadingScreen(); return void funcs.createPad({}, waitFor()); @@ -305,7 +304,7 @@ define([ } // Otherwise, if we don't display the screen, it means it is not a deleted pad // so we can continue and start realtime... - if (!funcs.isLoggedIn() || skip) { + if (!funcs.isLoggedIn()) { return void funcs.createPad(c, waitFor()); } // If we display the pad creation screen, it will handle deleted pads directly diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js index 13f7b9f50..db1d0288e 100644 --- a/www/common/toolbar3.js +++ b/www/common/toolbar3.js @@ -941,7 +941,7 @@ MessengerUI, Messages) { id: 'cp-app-toolbar-creation-advanced', href: origin }, - content: ' ' + Messages.creation_appMenuName + content: ' ' + Messages.creation_appMenuName // XXX change value }); var dropdownConfig = { text: '', // Button initial text diff --git a/www/poll/inner.js b/www/poll/inner.js index 38ed1b79c..5c9f9f182 100644 --- a/www/poll/inner.js +++ b/www/poll/inner.js @@ -1066,13 +1066,6 @@ define([ common.openPadChat(function () {}); UI.removeLoadingScreen(); - var privateDat = metadataMgr.getPrivateData(); - var skipTemp = Util.find(privateDat, - ['settings', 'general', 'creation', 'noTemplate']); - var skipCreation = Util.find(privateDat, ['settings', 'general', 'creation', 'skip']); - if (isNew && (!AppConfig.displayCreationScreen || (!skipTemp && skipCreation))) { - common.openTemplatePicker(); - } }; var onError = function (info) { diff --git a/www/settings/inner.js b/www/settings/inner.js index 7dbe8b3ce..5541277ed 100644 --- a/www/settings/inner.js +++ b/www/settings/inner.js @@ -62,12 +62,6 @@ define([ 'cp-settings-safe-links', 'cp-settings-userfeedback', ], - 'creation': [ - 'cp-settings-creation-owned', - 'cp-settings-creation-expire', - 'cp-settings-creation-skip', - 'cp-settings-creation-template' - ], 'drive': [ 'cp-settings-drive-duplicate', 'cp-settings-thumbnails', @@ -101,9 +95,6 @@ define([ } }; - if (!AppConfig.displayCreationScreen) { - delete categories.creation; - } if (AppConfig.disableFeedback) { var feedbackIdx = categories.account.indexOf('cp-settings-userfeedback'); categories.account.splice(feedbackIdx, 1); @@ -610,242 +601,6 @@ define([ cb($cbox); }, true); - // Pad Creation settings - - var setHTML = function (e, html) { - e.innerHTML = html; - return e; - }; - create['creation-owned'] = function () { - if (!common.isLoggedIn()) { return; } - var owned = h('div.cp-settings-creation-owned.cp-sidebarlayout-element', [ - h('label', [ - Messages.creation_ownedTitle - ]), - setHTML(h('p.cp-sidebarlayout-description'), - Messages.creation_owned1 + '
' + Messages.creation_owned2), - h('input#cp-creation-owned-true.cp-creation-owned-value', { - type: 'radio', - name: 'cp-creation-owned', - value: 1, - checked: 'checked' - }), - h('label', { 'for': 'cp-creation-owned-true' }, Messages.creation_ownedTrue), - h('input#cp-creation-owned-false.cp-creation-owned-value', { - type: 'radio', - name: 'cp-creation-owned', - value: 0, - }), - h('label', { 'for': 'cp-creation-owned-false' }, Messages.creation_ownedFalse), - h('span.fa.fa-check', {title: Messages.saved}), - h('span.fa.fa-spinner.fa-pulse'), - ]); - - var $owned = $(owned); - - var $ok = $owned.find('.fa-check').hide(); - var $spinner = $owned.find('.fa-spinner').hide(); - - $owned.find('input').change(function () { - $spinner.show(); - $ok.hide(); - var val = parseInt($owned.find('[name="cp-creation-owned"]:checked').val()); - common.setAttribute(['general', 'creation', 'owned'], val, function (e) { - if (e) { return void console.error(e); } - $spinner.hide(); - $ok.show(); - }); - }); - common.getAttribute(['general', 'creation', 'owned'], function (e, val) { - if (!val && typeof val !== "undefined") { - $owned.find('#cp-creation-owned-false').attr('checked', true); - } - }); - - return $owned; - }; - create['creation-expire'] = function () { - if (!common.isLoggedIn()) { return; } - var expire = h('div.cp-settings-creation-expire.cp-sidebarlayout-element', [ - h('label', [ - Messages.creation_expireTitle - ]), - setHTML(h('p.cp-sidebarlayout-description'), - Messages.creation_expire1 + '
' + Messages.creation_expire2), - h('input#cp-creation-expire-false.cp-creation-expire-value', { - type: 'radio', - name: 'cp-creation-expire', - value: 0, - checked: 'checked' - }), - h('label', { 'for': 'cp-creation-expire-false' }, Messages.creation_expireFalse), - h('input#cp-creation-expire-true.cp-creation-expire-value', { - type: 'radio', - name: 'cp-creation-expire', - value: 1 - }), - h('label', { 'for': 'cp-creation-expire-true' }, [ - Messages.creation_expireTrue, - h('span.cp-creation-expire-picker', [ - h('input#cp-creation-expire-val', { - type: "number", - min: 1, - max: 100, - value: 3 - }), - h('select#cp-creation-expire-unit', [ - h('option', { value: 'hour' }, Messages.creation_expireHours), - h('option', { value: 'day' }, Messages.creation_expireDays), - h('option', { - value: 'month', - selected: 'selected' - }, Messages.creation_expireMonths) - ]) - ]) - ]), - h('span.fa.fa-check', {title: Messages.saved}), - h('span.fa.fa-spinner.fa-pulse'), - ]); - - var $expire = $(expire); - - var $ok = $expire.find('.fa-check').hide(); - var $spinner = $expire.find('.fa-spinner').hide(); - - var getValue = function () { - if(!parseInt($expire.find('[name="cp-creation-expire"]:checked').val())) { return 0; } - var unit = 0; - switch ($expire.find('#cp-creation-expire-unit').val()) { - case "hour" : unit = 3600; break; - case "day" : unit = 3600 * 24; break; - case "month": unit = 3600 * 24 * 30; break; - default: unit = 0; - } - return ($expire.find('#cp-creation-expire-val').val() || 0) * unit; - }; - $expire.find('input, select').change(function () { - $spinner.show(); - $ok.hide(); - common.setAttribute(['general', 'creation', 'expire'], getValue(), function (e) { - if (e) { return void console.error(e); } - $spinner.hide(); - $ok.show(); - }); - }); - common.getAttribute(['general', 'creation', 'expire'], function (e, val) { - UIElements.setExpirationValue(val, $expire); - }); - - return $expire; - }; - create['creation-skip'] = function () { - if (!common.isLoggedIn()) { return; } - var skip = h('div.cp-settings-creation-skip.cp-sidebarlayout-element', [ - h('label', [ - Messages.settings_creationSkip - ]), - setHTML(h('p.cp-sidebarlayout-description'), Messages.settings_creationSkipHint), - h('input#cp-creation-skip-true.cp-creation-skip-value', { - type: 'radio', - name: 'cp-creation-skip', - value: 1, - }), - h('label', { 'for': 'cp-creation-skip-true' }, Messages.settings_creationSkipTrue), - h('input#cp-creation-skip-false.cp-creation-skip-value', { - type: 'radio', - name: 'cp-creation-skip', - value: 0, - checked: 'checked' - }), - h('label', { 'for': 'cp-creation-skip-false' }, Messages.settings_creationSkipFalse), - h('span.fa.fa-check', {title: Messages.saved}), - h('span.fa.fa-spinner.fa-pulse'), - ]); - - var $div = $(skip); - - var $ok = $div.find('.fa-check').hide(); - var $spinner = $div.find('.fa-spinner').hide(); - - $div.find('input').change(function () { - $spinner.show(); - $ok.hide(); - var val = parseInt($div.find('[name="cp-creation-skip"]:checked').val()); - // If we don't skip the pad creation screen, we dont' need settings to hide the templates - // modal - if (!val) { - $('.cp-settings-creation-template').addClass('cp-settings-creation-skipped'); - } else { - $('.cp-settings-creation-template').removeClass('cp-settings-creation-skipped'); - } - common.setAttribute(['general', 'creation', 'skip'], val, function (e) { - if (e) { return void console.error(e); } - $spinner.hide(); - $ok.show(); - }); - }); - common.getAttribute(['general', 'creation', 'skip'], function (e, val) { - if (val) { - $div.find('#cp-creation-skip-true').attr('checked', true); - return; - } - // If we don't skip the pad creation screen, we dont' need settings to hide the templates - // modal - $('.cp-settings-creation-template').addClass('cp-settings-creation-skipped'); - }); - - return $div; - }; - create['creation-template'] = function () { - var skip = h('div.cp-settings-creation-template.cp-sidebarlayout-element', [ - h('label', [ - Messages.settings_templateSkip - ]), - setHTML(h('p.cp-sidebarlayout-description'), Messages.settings_templateSkipHint), - h('input#cp-creation-template-true.cp-creation-template-value', { - type: 'radio', - name: 'cp-creation-template', - value: 1, - }), - h('label', { 'for': 'cp-creation-template-true' }, Messages.settings_creationSkipTrue), - h('input#cp-creation-template-false.cp-creation-template-value', { - type: 'radio', - name: 'cp-creation-template', - value: 0, - checked: 'checked' - }), - h('label', { 'for': 'cp-creation-template-false' }, Messages.settings_creationSkipFalse), - h('span.fa.fa-check', {title: Messages.saved}), - h('span.fa.fa-spinner.fa-pulse'), - ]); - - var $div = $(skip); - - var $ok = $div.find('.fa-check').hide(); - var $spinner = $div.find('.fa-spinner').hide(); - - $div.find('input').change(function () { - $spinner.show(); - $ok.hide(); - var val = parseInt($div.find('[name="cp-creation-template"]:checked').val()); - common.setAttribute(['general', 'creation', 'noTemplate'], val, function (e) { - if (e) { return void console.error(e); } - $spinner.hide(); - $ok.show(); - }); - }); - common.getAttribute(['general', 'creation', 'noTemplate'], function (e, val) { - if (val) { - $div.find('#cp-creation-template-true').attr('checked', true); - } - }); - - return $div; - }; - - - - // Drive settings create['drive-duplicate'] = function () { @@ -1720,7 +1475,6 @@ define([ if (key === 'cursor') { $category.append($('', {'class': 'fa fa-i-cursor' })); } if (key === 'code') { $category.append($('', {'class': 'fa fa-file-code-o' })); } if (key === 'pad') { $category.append($('', {'class': 'fa fa-file-word-o' })); } - if (key === 'creation') { $category.append($('', {'class': 'fa fa-plus-circle' })); } if (key === 'security') { $category.append($('', {'class': 'fa fa-lock' })); } if (key === 'subscription') { $category.append($('', {'class': 'fa fa-star-o' })); } From d802173325a8ad9084a64956e7bda76987765b41 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 6 Apr 2020 10:18:11 -0400 Subject: [PATCH 2/5] remove an invalid line --- lib/storage/file.js | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/storage/file.js b/lib/storage/file.js index 255f74016..2d27ce185 100644 --- a/lib/storage/file.js +++ b/lib/storage/file.js @@ -1044,7 +1044,6 @@ module.exports.create = function (conf, _cb) { getWeakLock: function (channelName, _cb) { var cb = Util.once(Util.mkAsync(_cb)); - //if (!isValidChannelId(channelName)) { return void cb(new Error('EINVAL')); } // XXX schedule.unordered(channelName, cb); }, From 8370f3121c07416e78660d590374ed51f9e5d1c3 Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 6 Apr 2020 16:26:29 +0200 Subject: [PATCH 3/5] Remove XXX --- www/common/toolbar3.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/toolbar3.js b/www/common/toolbar3.js index db1d0288e..13f7b9f50 100644 --- a/www/common/toolbar3.js +++ b/www/common/toolbar3.js @@ -941,7 +941,7 @@ MessengerUI, Messages) { id: 'cp-app-toolbar-creation-advanced', href: origin }, - content: ' ' + Messages.creation_appMenuName // XXX change value + content: ' ' + Messages.creation_appMenuName }); var dropdownConfig = { text: '', // Button initial text From 6ea958c7bdc34bf63ee6fa4f64123785a3837067 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 6 Apr 2020 16:27:15 +0200 Subject: [PATCH 4/5] Translated using Weblate (Finnish) Currently translated at 72.2% (899 of 1246 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/fi/ --- www/common/translations/messages.fi.json | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/www/common/translations/messages.fi.json b/www/common/translations/messages.fi.json index 2743d44a8..8a4e36139 100644 --- a/www/common/translations/messages.fi.json +++ b/www/common/translations/messages.fi.json @@ -281,7 +281,7 @@ "profile_description": "Kuvaus", "profile_fieldSaved": "Uusi arvo tallennettu: {0}", "profile_viewMyProfile": "Näytä oma profiili", - "userlist_addAsFriendTitle": "Lähetä ystäväpyyntö käyttäjälle \"{0}\"", + "userlist_addAsFriendTitle": "Lähetä kontaktipyyntö käyttäjälle \"{0}\"", "contacts_title": "Yhteystiedot", "contacts_addError": "Virhe lisätessä yhteystietoa listaan", "contacts_added": "Yhteystietopyyntö hyväksytty.", @@ -301,7 +301,7 @@ "contacts_confirmRemoveHistory": "Oletko varma, että haluat tyhjentää keskusteluhistorian pysyvästi? Tietoja ei voida palauttaa", "contacts_removeHistoryServerError": "Keskusteluhistorian poistamisessa tapahtui virhe. Yritä myöhemmin uudelleen", "contacts_fetchHistory": "Hae vanhempia viestejä", - "contacts_friends": "Kaverit", + "contacts_friends": "Kontaktit", "contacts_rooms": "Keskusteluhuoneet", "contacts_leaveRoom": "Lähde keskusteluhuoneesta", "contacts_online": "Toinen käyttäjä tästä keskusteluhuoneesta on online-tilassa", @@ -354,7 +354,7 @@ "fm_info_root": "Voit luoda haluamasi määrän sisäkkäisiä kansioita tiedostojesi järjestämiseen.", "fm_info_unsorted": "Sisältää kaikki käyttämäsi tiedostot, joita ei ole vielä lajiteltu \"Tiedostot\"-näkymässä tai siirretty roskakoriin.", "fm_info_template": "Sisältää kaikki mallipohjiksi tallennetut padit, joita voit käyttää uudelleen luodessasi uuden padin.", - "fm_info_recent": "Näytä viimeksi muokatut tai avatut padit.", + "fm_info_recent": "Tässä näytetään sinun tai yhteistyökumppaniesi äskettäin avaamat tai muokkaamat padit.", "fm_info_trash": "Tyhjennä roskakorisi vapauttaaksesi CryptDrive-tallennustilaa.", "fm_info_allFiles": "Sisältää kaikki tiedostot \"Dokumentit\"- \"Lajittelemattomat\"- ja \"Roskakori\"-näkymistä. Et voi siirtää tai poistaa tiedostoja täältä.", "fm_info_anonymous": "Et ole kirjautunut sisään. Padisi vanhenevat kolmen kuukauden kuluttua ((lue lisää)). Padit säilytetään paikallisesti selaimessasi, joten selaimen historiatietojen tyhjentäminen saattaa hävittää ne.
Rekisteröidy tai kirjaudu sisään säilyttääksesi padisi palvelimella.
", @@ -513,7 +513,7 @@ "settings_pinningError": "Jokin meni pieleen", "settings_usageAmount": "Kiinnitetyt padisi käyttävät {0}Mt", "settings_logoutEverywhereButton": "Kirjaudu ulos", - "settings_logoutEverywhereTitle": "Kirjaudu ulos kaikkialta", + "settings_logoutEverywhereTitle": "Sulje etäistunnot", "settings_logoutEverywhere": "Pakota uloskirjautuminen kaikista web-sessioista", "settings_logoutEverywhereConfirm": "Oletko varma? Joudut kirjautumaan kaikilla laitteillasi uudelleen sisään.", "settings_driveDuplicateTitle": "Omistettujen padien kaksoiskappaleet", @@ -534,8 +534,8 @@ "settings_creationSkipFalse": "Näytä", "settings_templateSkip": "Ohita mallipohjan valinta-dialogi", "settings_templateSkipHint": "Luodessasi uutta padia sinulta kysytään, haluatko käyttää mallipohjaa, jos sinulla on tallennettuja mallipohjia tälle padityypille. Tällä asetuksella voit valita, ettei mallipohjan valinta-dialogia näytetä ja siten mallipohjia ei koskaan käytetä.", - "settings_ownDriveTitle": "Ota käyttöön viimeisimmät tiliominaisuudet", - "settings_ownDriveHint": "Teknisistä syistä vanhemmilla käyttäjätileillä ei suoraan ole pääsyä CryptPadin uusimpiin ominaisuuksiin. Ilmainen päivitys uuteen käyttäjätiliin valmistelee CryptDrivesi tulevia ominaisuuksia varten häiritsemättä tavanomaista toimintaasi.", + "settings_ownDriveTitle": "Päivitä käyttäjätili", + "settings_ownDriveHint": "Vanhemmilla käyttäjätileillä ei ole teknisistä syistä pääsyä CryptPadin uusimpiin ominaisuuksiin. Ilmainen päivitys uuteen käyttäjätiliin valmistelee CryptDrivesi tulevia ominaisuuksia varten häiritsemättä tavanomaista toimintaasi.", "settings_ownDriveButton": "Päivitä käyttäjätilisi", "settings_ownDriveConfirm": "Käyttäjätilin päivitykseen voi mennä jonkin aikaa. Joudut kirjautumaan uudelleen sisään kaikilla laitteillasi. Oletko varma, että haluat aloittaa päivityksen?", "settings_ownDrivePending": "Käyttäjätiliäsi päivitetään. Ole hyvä, äläkä sulje tai lataa tätä sivua uudelleen, ennen kuin toimenpide on valmis.", @@ -850,7 +850,7 @@ "features_f_social": "Sosiaaliset sovellukset", "features_f_social_note": "Luo käyttäjäprofiili, käytä avatar-kuvaa, keskustele yhteystietojen kanssa", "features_f_file1": "Lataa ja jaa tiedostoja", - "features_f_file1_note": "Jaa tiedostoja kavereidesi kanssa tai upota ne padeihisi", + "features_f_file1_note": "Jaa tiedostoja kontaktiesi kanssa tai upota ne padeihisi", "features_f_storage1": "Pysyvä tallennustila (50Mt)", "features_f_storage1_note": "CryptDriveen tallennettuja padeja ei koskaan poisteta käyttämättömyyden takia", "features_f_register": "Rekisteröidy ilmaiseksi", @@ -953,7 +953,7 @@ "a": "Rekisteröityneille käyttäjille on tarjolla joitakin toimintoja, jotka eivät ole saatavilla rekisteröitymättömille käyttäjille. Löydät nämä toiminnot luomastamme kaaviosta." }, "share": { - "q": "Miten jaan salattuja padeja kavereideni kanssa?", + "q": "Miten jaan salattuja padeja kontaktieni kanssa?", "a": "CryptPad laittaa URL-osoitteessa padisi salaisen salausavaimen #-merkin jälkeen. Tämän merkin jälkeen laitettuja tietoja ei lähetetä palvelimelle, joten emme pääse koskaan käyttämään salausavaimiasi. Jakaessasi linkin padiin jaat oikeuden lukea ja käyttää sitä." }, "remove": { @@ -985,7 +985,7 @@ "title": "Muita kysymyksiä", "pay": { "q": "Miksi minun täytyisi maksaa, kun niin monet toiminnot ovat ilmaisia?", - "a": "Annamme tukijoillemme lisätallennustilaa ja mahdollisuuden kasvattaa kavereiden tallennustilakiintiöitä (lue lisää).

Näiden lyhytaikaisten etujen lisäksi premium-tilaus auttaa rahoittamaan CryptPadin jatkuvaa, aktiivista kehitystyötä. Tähän kuuluu bugien korjaamista, uusien ominaisuuksien lisäämistä ja CryptPad-instanssien pystyttämisen ja ylläpidon helpottamista. Lisäksi autat näyttämään muille palveluntarjoajille, että ihmiset ovat valmiita tukemaan yksityisyyttä parantavia teknologioita. Toivomme, että käyttäjätietojen myymiseen perustuvat liiketoimintamallit jäävät lopulta menneeseen.

Lopuksi, tarjoamme suurimman osan CryptPadin toiminnallisuudesta ilmaiseksi, koska uskomme yksityisyyden kuuluvan kaikille - ei vain niille, joilla on varaa maksaa siitä. Tukemalla meitä autat tarjoamaan heikommassa asemassa oleville väestöille pääsyn näihin peruspalveluihin." + "a": "Annamme tukijoillemme lisätallennustilaa ja mahdollisuuden kasvattaa kontaktien tallennustilakiintiöitä (lue lisää).

Näiden lyhytaikaisten etujen lisäksi premium-tilaus auttaa rahoittamaan CryptPadin jatkuvaa, aktiivista kehitystyötä. Tähän kuuluu bugien korjaamista, uusien ominaisuuksien lisäämistä ja CryptPad-instanssien pystyttämisen ja ylläpidon helpottamista. Lisäksi autat näyttämään muille palveluntarjoajille, että ihmiset ovat valmiita tukemaan yksityisyyttä parantavia teknologioita. Toivomme, että käyttäjätietojen myymiseen perustuvat liiketoimintamallit jäävät lopulta menneeseen.

Lopuksi, tarjoamme suurimman osan CryptPadin toiminnallisuudesta ilmaiseksi, koska uskomme yksityisyyden kuuluvan kaikille - ei vain niille, joilla on varaa maksaa siitä. Tukemalla meitä autat tarjoamaan heikommassa asemassa oleville väestöille pääsyn näihin peruspalveluihin." }, "goal": { "q": "Mitkä ovat tavoitteenne?", @@ -1047,7 +1047,7 @@ "colors": "Vaihda tekstin ja taustan väriä ja -painikkeilla" }, "poll": { - "decisions": "Tee päätöksiä luotettujen ystävien kesken", + "decisions": "Tee päätöksiä luotettujen kontaktien kesken", "options": "Ehdota vaihtoehtoja ja tuo ilmi mielipiteesi", "choices": "Napsauta sarakkeesi soluja valitaksesi kyllä- (), ehkä- (~), tai ei () -vaihtoehdon", "submit": "Napsauta Lähetä tehdäksesi valintasi näkyviksi muille" @@ -1058,12 +1058,12 @@ "embed": "Upota kuvia kovalevyltäsi tai CryptDrivestasi ja vie ne PNG-tiedostomuodossa kovalevyllesi tai CryptDriveesi " }, "kanban": { - "add": "Lisää uusia tauluja oikeassa yläkulmassa olevalla -painikkeella", - "task": "Siirrä kohtia raahaamalla ja pudottamalla ne yhdestä taulusta toiseen", - "color": "Vaihda värejä napsauttamalla taulun otsikon vieressä olevaa värillistä osaa" + "add": "Lisää uusia kortteja ja tauluja -painikkeella", + "task": "Siirrä kohtia raahaamalla ja pudottamalla, raahaa roskakoriin poistaaksesi", + "color": "Muokkaa otsikoita, sisältöä, tunnisteita ja värejä korttien ja taulujen otsikoiden vieressä olevalla span class=\"fa fa-pencil\">
-painikkeella" } }, "driveReadmeTitle": "Mikä on CryptPad?", "readme_welcome": "Tervetuloa CryptPadiin!", - "readme_p1": "Tervetuloa CryptPadiin, täällä voit tehdä muistiinpanoja yksin tai ystäviesi kanssa." + "readme_p1": "Tervetuloa CryptPadiin, täällä voit tehdä muistiinpanoja yksin tai kontaktiesi kanssa." } From 3f126f1bec00fbd40c8d3ecfef30e1aec8ba4d93 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 6 Apr 2020 16:27:15 +0200 Subject: [PATCH 5/5] Translated using Weblate (German) Currently translated at 100.0% (1246 of 1246 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/de/ --- www/common/translations/messages.de.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/translations/messages.de.json b/www/common/translations/messages.de.json index 415e38448..86e2300e4 100644 --- a/www/common/translations/messages.de.json +++ b/www/common/translations/messages.de.json @@ -938,7 +938,7 @@ "creation_expiration": "Ablaufdatum", "creation_passwordValue": "Passwort", "creation_propertiesTitle": "Verfügbarkeit", - "creation_appMenuName": "Fortgeschrittener Modus (Strg + E)", + "creation_appMenuName": "Neues Pad (Strg + E)", "creation_newPadModalDescription": "Klicke auf einen Pad-Typ, um das entsprechende Pad zu erstellen. Du kannst auch die Tab-Taste für die Auswahl und die Enter-Taste zum Bestätigen benutzen.", "creation_newPadModalDescriptionAdvanced": "Du kannst das Kästchen markieren (oder den Wert mit der Leertaste ändern), um den Dialog bei der Pad-Erstellung anzuzeigen (für eigene oder auslaufende Dokumente etc.).", "creation_newPadModalAdvanced": "Dialog bei der Pad-Erstellung anzeigen",