From 4ec02b0ad8233eca2a91b4701b5b2391c52ea430 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 16 Mar 2022 11:22:09 +0530 Subject: [PATCH 01/10] abort loading if promises are not supported in sframe --- www/common/sframe-boot2.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/www/common/sframe-boot2.js b/www/common/sframe-boot2.js index 2870be392..0ef4fae80 100644 --- a/www/common/sframe-boot2.js +++ b/www/common/sframe-boot2.js @@ -43,5 +43,12 @@ define([ throw e; }; + if (typeof(Promise) !== 'function') { + return void setTimeout(function () { + var s = "Internet Explorer is not supported anymore, including by Microsoft.\n\nMost of CryptPad's collaborative functionality requires a modern browser to work.\n\nWe recommend Mozilla Firefox."; + window.alert(s); + }); + } + require([document.querySelector('script[data-bootload]').getAttribute('data-bootload')]); }); From edcd88d9b7fce8d206cea5cc275f8eca7392a23c Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 16 Mar 2022 16:58:01 +0530 Subject: [PATCH 02/10] display a clear notice that we can't reset passwords --- customize.dist/pages/login.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/customize.dist/pages/login.js b/customize.dist/pages/login.js index 45d3a3707..8f60c61ed 100644 --- a/customize.dist/pages/login.js +++ b/customize.dist/pages/login.js @@ -41,6 +41,11 @@ define([ ]), h('div.col-md-3') ]), + h('div.row', [ + h('div.col-md-3'), + h('div.col-md-6', Msg.register_warning_note,), + h('div.col-md-3'), + ]), ]), Pages.infopageFooter(), ])]; From baa3abf587f00c5f5d00234ca29a8b0fb8121373 Mon Sep 17 00:00:00 2001 From: ansuz Date: Wed, 16 Mar 2022 17:03:50 +0530 Subject: [PATCH 03/10] lint compliance --- customize.dist/pages/login.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/customize.dist/pages/login.js b/customize.dist/pages/login.js index 8f60c61ed..9ff9b6746 100644 --- a/customize.dist/pages/login.js +++ b/customize.dist/pages/login.js @@ -43,7 +43,7 @@ define([ ]), h('div.row', [ h('div.col-md-3'), - h('div.col-md-6', Msg.register_warning_note,), + h('div.col-md-6', Msg.register_warning_note), h('div.col-md-3'), ]), ]), From 15bf92a6271e15181393af3bdd087c6697f7a977 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 17 Mar 2022 00:06:07 +0100 Subject: [PATCH 04/10] Translated using Weblate (Japanese) Currently translated at 100.0% (1449 of 1449 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/ja/ --- www/common/translations/messages.ja.json | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/www/common/translations/messages.ja.json b/www/common/translations/messages.ja.json index 281d52255..7d54199ed 100644 --- a/www/common/translations/messages.ja.json +++ b/www/common/translations/messages.ja.json @@ -1075,7 +1075,7 @@ "form_isPublic": "回答は公開されています", "form_makePublic": "回答を公開", "form_invalidQuestion": "質問{0}", - "info_privacyFlavour": "プライバシーポリシーに、データの取り扱い方を記載しています。", + "info_privacyFlavour": "このインスタンスのプライバシーポリシー", "toolbar_tools": "ツール", "toolbar_savetodrive": "画像として保存", "comments_error": "ここにはコメントを追加できません", @@ -1427,5 +1427,27 @@ "bounce_danger": "クリックしたリンクは、ウェブページではなく、悪質かもしれないコードやデータに結びついています。\n\n(\"{0}\")\n\nセキュリティー上の理由で、CryptPadはこのデータをブロックしています。OKをクリックするとタブが閉じます。", "bounce_confirm": "このページから退出しようとしています: {0}\n\n次のページを開いてよろしいですか?:{1}", "form_condition_hasnot": "含まない", - "form_condition_has": "含む" + "form_condition_has": "含む", + "admin_archiveNote": "メモ", + "ui_saved": "{0}保存済", + "ui_openDirectly": "この機能は、CryptPadが別のウェブサイトに埋め込まれている場合は利用できません。このドキュメントを新しいタブで開きますか?", + "support_cat_abuse": "悪用を報告", + "support_cat_document": "ドキュメント", + "support_cat_drives": "ドライブまたはチーム", + "support_warning_other": "問題の性質は何でしょうか?関連する情報をできるだけ多く提供していただけると、問題の早期解決につながる可能性が高まります", + "support_warning_abuse": "利用規約に違反しているコンテンツを報告してください。問題のドキュメントあるいはユーザーのプロフィールへのリンクを提供し、違反の内容を記入してください。どのようにこのコンテンツを発見したか、また、それがどう振る舞うかについての情報を追加で提供すると、管理者が、今後同様の違反を起こらないようにするのを助けることができます", + "support_warning_bug": "どのブラウザーで問題が生じているか、また、拡張機能をインストールしているかを指定してください。できるだけ詳細な情報と、問題を再現する過程を提供してください", + "support_warning_document": "どのドキュメントの種類が問題の原因であるかを特定し、ドキュメントの識別子あるいはリンクを提供してください", + "support_warning_drives": "管理者は、名称でフォルダやドキュメントを特定することができません。共有フォルダの場合は、ドキュメントの識別子を提供してください", + "support_warning_account": "管理者にパスワードを再設定することはできません。ログイン情報を無くしてしまった場合、ログイン中であれば、新しいアカウントにデータを移行することができます", + "support_warning_prompt": "問題に最も関係のあるカテゴリーを選択してください。管理者による問題の分類と、どの情報を提供すべきかについての提案に役立ちます", + "info_sourceFlavour": "CryptPadのソースコード", + "info_termsFlavour": "このインスタンスの利用規約", + "footer_source": "ソースコード", + "admin_jurisdictionHint": "このインスタンスの暗号化されたデータが保管されている国", + "admin_jurisdictionTitle": "運営されている場所", + "admin_descriptionHint": "cryptpad.orgにある公開インスタンスのリストに表示される、このインスタンスの説明文", + "admin_descriptionTitle": "インスタンスの説明文", + "admin_nameHint": "cryptpad.orgにある公開インスタンスのリストに表示される、このインスタンスの名称", + "admin_nameTitle": "インスタンス名" } From 362801a15d3a269e9fa4bbff75d104daf7e3cf35 Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 17 Mar 2022 10:54:22 +0100 Subject: [PATCH 05/10] Fix document ID in drive history mode --- www/common/inner/common-modal.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/common/inner/common-modal.js b/www/common/inner/common-modal.js index 2226c7b9b..7bbe7bdbc 100644 --- a/www/common/inner/common-modal.js +++ b/www/common/inner/common-modal.js @@ -61,9 +61,9 @@ define([ // If this is a file, don't try to look for metadata if (opts.channel && opts.channel.length > 32) { return; } - if (opts.channel) { data.channel = opts.channel; } Modal.loadMetadata(Env, data, waitFor); }).nThen(function () { + if (opts.channel) { data.channel = opts.channel; } cb(void 0, data); }); }; From 30818dfc1d9622b21bee88c9ab30a51361696e90 Mon Sep 17 00:00:00 2001 From: Weblate Date: Mon, 21 Mar 2022 12:31:21 +0100 Subject: [PATCH 06/10] Translated using Weblate (English) Currently translated at 100.0% (1452 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/en/ Translated using Weblate (English) Currently translated at 100.0% (1451 of 1451 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/en/ Translated using Weblate (English) Currently translated at 100.0% (1450 of 1450 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/en/ --- www/common/translations/messages.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/www/common/translations/messages.json b/www/common/translations/messages.json index 5811a6307..e6a1faaee 100644 --- a/www/common/translations/messages.json +++ b/www/common/translations/messages.json @@ -1449,5 +1449,8 @@ "support_cat_drives": "Drive or team", "support_cat_document": "Document", "support_cat_abuse": "Report abuse", - "ui_openDirectly": "This functionality is not available when CryptPad is embedded in another site. Open this document in a new tab?" + "ui_openDirectly": "This functionality is not available when CryptPad is embedded in another site. Open this document in a new tab?", + "support_cat_debugging": "Debug data", + "support_debuggingDataTitle": "Account debugging information", + "support_debuggingDataHint": "The following information is included in support tickets you submit. None of it allows administrators to access or decrypt your documents. This information is encrypted such that only administrators can read it." } From d45bb335376f05046e5055499d624cd0f81184f0 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 21 Mar 2022 17:22:23 +0530 Subject: [PATCH 07/10] include accountName in support ticket data --- www/support/ui.js | 1 + 1 file changed, 1 insertion(+) diff --git a/www/support/ui.js b/www/support/ui.js index 3e69660a4..18eff628e 100644 --- a/www/support/ui.js +++ b/www/support/ui.js @@ -21,6 +21,7 @@ define([ data.sender = { name: user.name, + accountName: privateData.accountName, drive: privateData.driveChannel, channel: privateData.support, curvePublic: user.curvePublic, From fa0240976e52e048c65e948468b4991b943ff7e4 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 21 Mar 2022 17:38:20 +0530 Subject: [PATCH 08/10] avoid passing HTML strings to alert --- www/common/drive-ui.js | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/www/common/drive-ui.js b/www/common/drive-ui.js index 33966140a..86ea3889d 100644 --- a/www/common/drive-ui.js +++ b/www/common/drive-ui.js @@ -2893,7 +2893,8 @@ define([ var onCreated = function (err, info) { if (err) { if (err === E_OVER_LIMIT) { - return void UI.alert(Messages.pinLimitDrive, null, true); + var content = h('span', UIElements.fixInlineBRs(Messages.pinLimitDrive)); + return void UI.alert(content); } return void UI.alert(Messages.fm_error_cantPin); } @@ -4382,16 +4383,14 @@ define([ var stringifyPath = function (path) { if (!Array.isArray(path)) { return; } - var $div = $('
'); - var i = 0; + var div = h('div'); var space = 10; - path.forEach(function (s) { + path.forEach(function (s, i) { if (i === 0) { s = getPrettyName(s); } - $div.append($('', {'style': 'margin: 0 0 0 ' + i * space + 'px;'}).text(s)); - $div.append($('
')); - i++; + div.appendChild(h('span', { style: 'margin: 0 0 0 ' + i * space + 'px', }, s)); + div.appendChild(h(('br'))); }); - return $div.html(); + return div; }; // Disable middle click in the context menu to avoid opening /drive/inner.html# in new tabs @@ -4863,8 +4862,11 @@ define([ if (paths.length !== 1 || pPath.length !== 4) { return; } var element = manager.find(pPath.slice(0,3)); // element containing the oldpath var sPath = stringifyPath(element.path); - UI.alert('' + Messages.fm_originalPath + ":
" + sPath, undefined, true); - return; + return void UI.alert(h('span', [ + h('strong', Messages.fm_originalPath), + h('br'), + sPath, + ])); } if (paths.length !== 1) { return; } el = manager.find(paths[0].path); From be7957eccb732615d9ffeffa77a1fb406bf296ed Mon Sep 17 00:00:00 2001 From: Weblate Date: Tue, 22 Mar 2022 03:25:43 +0100 Subject: [PATCH 09/10] Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ Translated using Weblate (Portuguese (Brazil)) Currently translated at 97.5% (1417 of 1452 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/pt_BR/ --- www/common/translations/messages.pt-br.json | 38 ++++++++++----------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/www/common/translations/messages.pt-br.json b/www/common/translations/messages.pt-br.json index 35be44497..6e981481b 100644 --- a/www/common/translations/messages.pt-br.json +++ b/www/common/translations/messages.pt-br.json @@ -6,10 +6,10 @@ "poll": "Enquete", "slide": "Apresentação", "drive": "Drive", - "whiteboard": "Whiteboard", + "whiteboard": "Quadro Branco", "file": "File", "media": "Media", - "kanban": "Placa de Assinatura", + "kanban": "Kanban", "todo": "Por fazer", "contacts": "Contatos", "sheet": "Planilha", @@ -27,9 +27,9 @@ "deleted": "Deletado", "disconnected": "Desconectado", "synchronizing": "Sincronizando", - "reconnecting": "Reconectando...", + "reconnecting": "Reconectando", "readonly": "Somente leitura", - "anonymous": "Convidado", + "anonymous": "Anônimo", "users": "Usuários", "viewer": "vizualizações", "viewers": "leitores", @@ -99,7 +99,7 @@ "poll_userPlaceholder": "Seu nome", "poll_removeOption": "Você tem certeza que deseja remover esta opção?", "poll_removeUser": "Você tem certeza que quer remover este usuário?", - "poll_descriptionHint": "Descrição", + "poll_descriptionHint": "Descreva sua enquete e use o botão ✓ (publish) quando estiver pronto.\nA descrição pode ser escrita usando sintaxe de marcação e você pode incorporar elementos de mídia do seu CryptDrive.\nQualquer pessoa com o link pode alterar a descrição, mas isto não é aconselhável.", "canvas_clear": "Limpar", "canvas_delete": "Deletar seleção", "canvas_width": "Largura", @@ -133,9 +133,9 @@ "fm_unknownFolderError": "O diretório selecionado ou visitado por último não existe mais. Abrindo diretório superior...", "fm_contextMenuError": "Incapaz de abrir o menu de contextualização para este elementos. Se o problema persistir, tente recarregar a página.", "fm_selectError": "Incapaz de selecionar o elemento marcado. Se o problema persistir, tente recarregar a página.", - "fm_categoryError": "Incapaz de abrir a categoria selecionada, Exibindo diretório raiz", + "fm_categoryError": "Incapaz de abrir a categoria selecionada. Exibindo diretório raiz.", "fm_info_root": "Crie quantos diretórios aninhados aqui desejar para organizar seus arquivos..", - "fm_info_trash": "Empty your trash to free space in your CryptDrive.", + "fm_info_trash": "Esvazie sua lixeira para liberar espaço no seu 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_error_cantPin": "Erro interno do servidor. Por favor recarregue a página e tente novamente.", "fc_newfolder": "Nova pasta", @@ -171,14 +171,14 @@ "register_writtenPassword": "I have written down my username and password, proceed", "register_cancel": "Cancelar", "register_warning": "Atenção", - "register_alreadyRegistered": "This user already exists, do you want to log in?", - "settings_title": "Settings", - "settings_save": "Save", + "register_alreadyRegistered": "Este usuário já existe, quer fazer login?", + "settings_title": "Configurações", + "settings_save": "Salvar", "settings_backup": "Backup", - "settings_restore": "Restore", - "settings_reset": "Remove all the files and folders from your CryptDrive", + "settings_restore": "Restaurar", + "settings_reset": "Remover todos os arquivos e pastas do seu CryptDrive", "settings_resetPrompt": "Esta ação removerá todos os documentos de sua unidade.
Você tem certeza que quer continuar?
Digite \"Eu amo o CryptPad\" para confirmar.", - "settings_resetDone": "Your drive is now empty!", + "settings_resetDone": "Seu disco está vazio!", "settings_resetError": "Incorrect verification text. Your CryptDrive has not been changed.", "settings_resetTips": "Tips in CryptDrive", "settings_resetTipsButton": "Reset the available tips in CryptDrive", @@ -187,7 +187,7 @@ "settings_import": "Import", "settings_importConfirm": "Você tem certeza de que quer importar documentos recentes deste navegador para o CryptDrive de sua conta de usuário?", "settings_importDone": "Import completed", - "settings_userFeedbackHint1": "CryptPad provides some very basic feedback to the server, to let us know how to improve your experience.", + "settings_userFeedbackHint1": "CryptPad fornece feedback básicos para o servidor, para sabermos como melhorar sua experiência. ", "settings_userFeedbackHint2": "O conteúdo de seus documentos nunca será compartilhado com o servidor.", "settings_userFeedback": "Enable user feedback", "settings_anonymous": "You are not logged in. Settings here are specific to this browser.", @@ -214,7 +214,7 @@ "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.", "tos_e2ee": "Os documentos do CryptPad podem ser modificados por qualquer um que conseguir adivinhar ou obter de qualquer forma o seu identificador único. Nós recomendamos que você utilize criptografia ponto a ponto de mensagens (e2ee) sempre que possível para compartilhar suas URL's. Nós não assumimos qualquer responsabilidade sobre chaves e/ou URL’s e seus respectivos conteúdos vazadas para o público.", - "tos_logs": "Os Metadados providos pelo seu navegador para nosso servidor podem ser armazenados com o propósito de manter o serviço em funcionamento", + "tos_logs": "Os metadados providos pelo seu navegador para o servidor podem ser armazenados com o propósito de manter o serviço em funcionamento.", "tos_3rdparties": "Nós não disponibilizamos dados individuais para terceiros, salvo quando requisitado legalmente.", "header_logoTitle": "Go to the main page", "edit": "edit", @@ -225,8 +225,8 @@ "padNotPinned": "Esse documento vai expirar depois de 3 meses de inatividade. Faça {0}login{1} ou clique em {2}registrar-se{3} para preservá-lo.", "anonymousStoreDisabled": "O administrador desta instância do CryptPad desabilitou o armazenamento para convidados. Faça login para acessar seu próprio CryptDrive.", "expiredError": "Este documento atingiu seu tempo de validade e não está mais disponível.", - "deletedError": "Este documento foi deletado e não está mais disponível.", - "inactiveError": "Este documento foi eliminado devido à inatividade. Pressione Esc para criar um novo documento.", + "deletedError": "Este documento foi apagado e não está mais disponível.", + "inactiveError": "Este documento foi apagado devido à inatividade. Pressione Esc para criar um novo documento.", "chainpadError": "Ocorreu um erro crítico ao atualizar seu conteúdo. Esta página está em modo somente leitura para que você não perca seu trabalho.
Pressione Esc para continuar a visualizar este documento, ou recarregue para tentar editar novamente.", "invalidHashError": "O documento requerido por você, apresenta uma URL inválida.", "errorCopy": " Você pode continuar usando esta versão em modo somente leitura pressionando Esc.", @@ -552,7 +552,7 @@ "creation_owned1": "Um item proprietário pode ser destruído quando o dono quiser. Destruindo um item proprietário o faz indisponível para outros usuários de CryptDrives.", "creation_owned": "Documento proprietário", "creation_404": "Este documento não mais existe. Use o seguinte formulário para criar um novo.", - "help_genericMore": "Aprenda mais sobre como CryptPad pode trabalhar para você lendo nossa Documentação.", + "help_genericMore": "Aprenda mais sobre como CryptPad pode trabalhar para você lendo nossa Documentação", "header_homeTitle": "Vá para a página do CryptPad", "four04_pageNotFound": "Nós não encontramos a página que você procura.", "features_f_subscribe_note": "Conta registrada precisa de assinatura", @@ -1196,7 +1196,7 @@ "loading_state_2": "Atualizar conteúdo", "loading_state_1": "Carregar unidade", "notification_fileSharedTeam": "{0} compartilhou um arquivo com a equipe {2}: {1}", - "info_imprintFlavour": "Informação jurídica sobre os administradores desta instância.", + "info_imprintFlavour": "Informação jurídica sobre os administradores desta instância", "premiumOnly": "A criação de novos documentos neste aplicativo está atualmente limitada aos assinantes em {0}. Esta é uma aplicação experimental de acesso antecipado para fins de teste. Em breve estará disponível para todos em {0}.", "form_required_on": "Necessário", "form_viewAllAnswers": "Ver todas as respostas ({0})", From 19f4d48ae6c30c91c3bbadc7652cc1eca386893f Mon Sep 17 00:00:00 2001 From: ansuz Date: Tue, 22 Mar 2022 11:43:47 +0530 Subject: [PATCH 10/10] reuse a preexisting key on the admin panel --- www/admin/inner.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/www/admin/inner.js b/www/admin/inner.js index b9acc0607..74169a074 100644 --- a/www/admin/inner.js +++ b/www/admin/inner.js @@ -424,7 +424,7 @@ define([ var input = h('input.cp-listing-info', { type: 'text', value: APP.instanceStatus.instanceJurisdiction || '', - placeholder: Messages.admin_jurisdictionPlaceholder, + placeholder: Messages.admin_jurisdictionPlaceholder || Messages.owner_unknownUser, // XXX }); var $input = $(input); var innerDiv = h('div.cp-admin-setjurisdiction-form', input);