From 5414fe14de1fb290929b615f076cf93f81cda4aa Mon Sep 17 00:00:00 2001 From: Weblate Date: Sun, 12 Sep 2021 02:18:47 +0200 Subject: [PATCH 1/4] Translated using Weblate (Spanish) Currently translated at 47.4% (675 of 1424 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/es/ Translated using Weblate (Spanish) Currently translated at 46.0% (656 of 1424 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/es/ Translated using Weblate (Spanish) Currently translated at 46.0% (656 of 1424 strings) Translation: CryptPad/App Translate-URL: http://weblate.cryptpad.fr/projects/cryptpad/app/es/ --- www/common/translations/messages.es.json | 59 ++++++++++++++++++------ 1 file changed, 44 insertions(+), 15 deletions(-) diff --git a/www/common/translations/messages.es.json b/www/common/translations/messages.es.json index f185ea637..e78d2bcef 100644 --- a/www/common/translations/messages.es.json +++ b/www/common/translations/messages.es.json @@ -20,7 +20,7 @@ "synchronizing": "Sincronizando", "reconnecting": "Reconectando", "readonly": "Sólo lectura", - "anonymous": "Anónimo", + "anonymous": "Invitado", "users": "Usuarios", "viewer": "espectador", "viewers": "espectadores", @@ -124,7 +124,7 @@ "login_invalUser": "Nombre de usuario requerido", "login_invalPass": "Contraseña requerida", "login_unhandledError": "Ha ocurrido un error inesperado :(", - "register_importRecent": "Importar documentos de su sesión no registrada", + "register_importRecent": "Importar documentos de su sesión de invitado", "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", @@ -167,7 +167,7 @@ "settings_import": "Importar", "settings_importConfirm": "¿Seguro que quieres importar tus pads recientes a tu cuenta CryptDrive?", "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_about": "Si estas leyendo esto, quizás sientas curiosidad por saber por qué CryptPad solicita páginas cuando realizas ciertas 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.", "fm_searchName": "Buscar", @@ -294,7 +294,7 @@ "topbar_whatIsCryptpad": "Qué es CryptPad", "header_homeTitle": "Volver a la página de inicio", "userListButton": "Lista de usuarios", - "userAccountButton": "Tu cuenta", + "userAccountButton": "Menú de usuario", "canvas_saveToDrive": "Guardar esta imagen como archivo en tu CryptDrive", "canvas_currentBrush": "Pincel actual", "fm_viewListButton": "Lista", @@ -306,13 +306,13 @@ "button_newkanban": "Nuevo Kanban", "button_newsheet": "Nueva Hoja", "padNotPinned": "Esta nota expirará luego de 3 meses de inactividad, {0}ingresar{1} o {2}registrarse{3}para conservar.", - "anonymousStoreDisabled": "El webmaster de esta instancia de CryptPad a deshabilitado al almacenamiento para usuarios anónimos. Debes ingresar para poder usar CrytDrive.", + "anonymousStoreDisabled": "El administrador de esta instancia de CryptPad ha deshabilitado al almacenamiento para usuarios anónimos. Debes iniciar sesión para poder usar CryptDrive.", "expiredError": "Este pad ha expirado y ya no está disponible.", - "deletedError": "Esta nota ha sido borrada por su dueño y ya no está disponible.", + "deletedError": "Este documento ha sido borrado y ya no se encuentra disponible.", "inactiveError": "Esta nota ha sido eliminada por inactividad. Presione Esc para crear una nueva nota.", "chainpadError": "Ha ocurrido un error crítico al actualizar su contenido. Esta página esta en modo de sólo lectura, para asegurarse que no perderá su trabajo.
HitEscpara continuar y ver esta nota, o recargar para editar nuevamente.", "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.", + "errorCopy": " Aún puedes acceder esta versión en modo lectura persionando Esc.", "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.", "deletedFromServer": "Nota borrada", @@ -527,7 +527,7 @@ "whatis_drive": "Organización con CryptDrive", "features": "Caracteristicas", "features_title": "Características", - "features_anon": "No registrado", + "features_anon": "Invitado", "features_registered": "Registrado", "features_premium": "Premium", "features_f_apps": "Acceso a todas las aplicaciones", @@ -539,7 +539,7 @@ "features_f_cryptdrive0_note": "Posibilidad de almacenar los pads visitados en su navegador para poder abrirlos más tarde", "features_f_storage0": "Tiempo de almacenamiento limitado", "features_f_storage0_note": "Los documentos se eliminan después de {0} días de inactividad", - "features_f_anon": "Todas las funciones de usuario anónimo", + "features_f_anon": "Todas las funciones de invitado", "features_f_anon_note": "Con funcionalidad adicional", "features_f_cryptdrive1": "Funcionalidad completa de CryptDrive", "features_f_cryptdrive1_note": "Carpetas, compartir carpetas, plantillas, tareas", @@ -570,7 +570,7 @@ "creation_404": "Este pad ya no existe. Utilice el siguiente formulario para crear un nuevo pad.", "creation_owned1": "Un objeto propiedad puede ser destruido cuando el propietario lo desee. La destrucción de un objeto propio hace que no esté disponible en los CryptDrives de otros usuarios.", "settings_padNotifTitle": "Notificaciones de comentarios", - "password_info": "El bloc que intentas abrir no existe o está protegido con una contraseña. Ingrese la contraseña correcta para acceder a su contenido.", + "password_info": "El documento que intenta abrir no existe o está protegido con una contraseña. Ingrese la contraseña correcta para acceder a su contenido.", "creation_newPadModalDescription": "Haz click en un tipo de documento para crearlo. Tú también puedes presionar Tab para seleccionar el tipo y presiona Enter para confirmar.", "toolbar_degraded": "Actualmente hay más de {0} editores en este documento. La lista de usuarios y el chat están desactivados para mejorar el rendimiento.", "oo_lostEdits": "Lamentablemente, las ediciones recientes no guardadas no se pueden recuperar después de sincronizar el nuevo contenido.", @@ -582,14 +582,14 @@ "properties_addPassword": "Añadir una contraseña", "password_submit": "Enviar", "password_placeholder": "Escriba la contraseña aquí...", - "password_error": "¡No se ha encontrado el pad!
Este error puede ser causado por dos factores: o la contraseña no es válida, o el pad ha sido borrado del servidor.", + "password_error": "No se ha encontrado el documento
Este error puede ser causado por dos factores: la contraseña no es válida o el pad ha sido borrado del servidor.", "creation_passwordValue": "Contraseña", "creation_expiration": "Fecha de vencimiento", "creation_noOwner": "Sin propietario", "creation_owners": "Propietarios", "creation_create": "Crear", "creation_newTemplate": "Nueva plantilla", - "creation_noTemplate": "Sin plantilla", + "creation_noTemplate": "Documento vacío", "creation_password": "Contraseña\n", "creation_expireMonths": "Mes(es)", "creation_expireDays": "Día(s)", @@ -601,8 +601,8 @@ "sharedFolders_forget": "Este bloc sólo se almacena en una carpeta compartida, no puedes moverlo a la papelera. Puedes usar tu CryptDrive si quieres borrarlo.", "share_mediatagCopy": "Copiar mediatag al portapapeles", "share_contactCategory": "Contactos", - "share_linkCopy": "Copiar", - "share_linkOpen": "Previsualizar", + "share_linkCopy": "Copiar enlace", + "share_linkOpen": "Abrir enlace", "share_linkView": "Ver", "share_linkEdit": "Editar", "share_linkAccess": "Permisos de acceso", @@ -646,5 +646,34 @@ "convertFolderToSF_SFParent": "Esta carpeta no puede ser convertida a una carpeta compartida en su actual localización. Mueva la carpeta fuera de la carperta compartida para continuar.", "sharedFolders_share": "Comparte este enlace con otros usuarios registrados para darles accesso a la carpeta compartida. Una vez que ellos/as abran este enlace, la carpeta compartida será añadida a sus CryptDrive.", "sharedFolders_create": "Crear una carpeta compartida", - "sharedFolders_duplicate": "Algunos de los documentos que intentaste mover ya estaban compartidos en la carpeta de destino" + "sharedFolders_duplicate": "Algunos de los documentos que intentaste mover ya estaban compartidos en la carpeta de destino", + "admin_flushCacheTitle": "Vaciar caché HTTP", + "admin_updateLimitDone": "Actualización correcta", + "admin_updateLimitButton": "Actualizar cuotas", + "admin_updateLimitHint": "Forzar una actualización de los límites de almacenamiento del usuario se puede hacer en cualquier momento, pero sólo es necesario en caso de error", + "crowdfunding_button2": "Ayuda a CryptPad", + "autostore_pad": "bloc", + "settings_padOpenLinkTitle": "Abrir links con un click", + "fm_expirablePad": "Expiración: {0}", + "crowdfunding_button": "Apoya a CryptPad", + "autostore_file": "archivo", + "admin_diskUsageButton": "Generar informe", + "admin_diskUsageHint": "Cantidad de almacenamiento gastado por diversos recursos de CryptPad", + "admin_diskUsageTitle": "Almacenamiento usado", + "timeoutError": "Algún error ha cortado la conexión al servidor.
PulsaEsc para recargar la página.", + "contact_email": "Correo electrónico", + "contact_chat": "Chat", + "contact_bug": "Informe de error", + "contact_devHint": "Para sugerencias de funciones, mejoras de usabilidad o para simplemente agradecer.", + "contact_dev": "Contactar a los desarrolladores", + "contact_adminHint": "Para cualquier problema relacionado con su cuenta, límites de almacenamiento o disponibilidad del servicio.\n", + "contact_admin": "Contactar a los administradores", + "footer_tos": "Términos de Servicio", + "footer_legal": "Legal", + "footer_donate": "Donar", + "footer_team": "Colaboradores", + "footer_product": "Producto", + "admin_flushCacheDone": "Vaciado de caché exitoso", + "admin_flushCacheButton": "Vaciar caché", + "admin_flushCacheHint": "Obligar a usuarios a descargar los recursos más nuevos para el cliente (sólo si su servidor está en modo actualizado o “fresh mode”)" } From 4c915f9e5a31e2f90d21897e4b7d1b3b7f07f547 Mon Sep 17 00:00:00 2001 From: yflory Date: Wed, 22 Sep 2021 14:05:05 +0200 Subject: [PATCH 2/4] Don't show the upload button until we're ready to draw files in the file picker --- www/secureiframe/inner.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/www/secureiframe/inner.js b/www/secureiframe/inner.js index 18970c47b..0ae5d6ae8 100644 --- a/www/secureiframe/inner.js +++ b/www/secureiframe/inner.js @@ -171,7 +171,7 @@ define([ $block.append(h('p', text)); // Add filter input - var $filter = $(h('p.cp-modal-form')).appendTo($block); + var $filter = $(h('p.cp-modal-form')).hide().appendTo($block); var to; var $input = $('', { type: 'text', @@ -211,6 +211,7 @@ define([ updateContainer = function () { var filter = $input.val().trim(); var todo = function (err, list) { + $filter.show(); if (err) { return void console.error(err); } $container.html(''); Object.keys(list).forEach(function (id) { From ca95af082d5e88bffff8f8bb01e6ed045b8cf3df Mon Sep 17 00:00:00 2001 From: yflory Date: Thu, 23 Sep 2021 13:27:34 +0200 Subject: [PATCH 3/4] Fix scrambled data in sheets on reconnect --- www/common/onlyoffice/inner.js | 8 ++++++++ www/common/outer/onlyoffice.js | 2 ++ 2 files changed, 10 insertions(+) diff --git a/www/common/onlyoffice/inner.js b/www/common/onlyoffice/inner.js index 591eccc2c..195991db9 100644 --- a/www/common/onlyoffice/inner.js +++ b/www/common/onlyoffice/inner.js @@ -1156,6 +1156,14 @@ define([ }; var handleChanges = function (obj, send) { + if (APP.history) { + send({ + type: "unSaveLock", + index: ooChannel.cpIndex, + time: +new Date() + }); + return; + } // Add a new entry to the pendingChanges object. // If we can't send the patch within 30s, force a page reload var uid = Util.uid(); diff --git a/www/common/outer/onlyoffice.js b/www/common/outer/onlyoffice.js index b5c3e7ba1..dbde5e199 100644 --- a/www/common/outer/onlyoffice.js +++ b/www/common/outer/onlyoffice.js @@ -87,8 +87,10 @@ define([ chan.wc = wc; chan.sendMsg = function (msg, cb) { cb = cb || function () {}; + var hash = msg.slice(0, 64); wc.bcast(msg).then(function () { chan.history.push(msg); + chan.lastKnownHash = hash; cb(); }, function (err) { cb({error: err}); From 7ae5654b8394d87fa376285e5eea6078ceca0ac4 Mon Sep 17 00:00:00 2001 From: ansuz Date: Mon, 27 Sep 2021 15:24:53 +0530 Subject: [PATCH 4/4] guard against type errors in contextual chat while in no-drive mode --- www/common/outer/messenger.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/www/common/outer/messenger.js b/www/common/outer/messenger.js index 981d9f8de..85400adc0 100644 --- a/www/common/outer/messenger.js +++ b/www/common/outer/messenger.js @@ -617,11 +617,11 @@ define([ return void cb({error: 'NO_SUCH_CHANNEL'}); } - var proxy = ctx.store.proxy; + var proxy = ctx.store.proxy || {}; var msg = [Types.message, proxy.curvePublic, +new Date(), payload]; if (!channel.isFriendChat) { var name = proxy[Constants.displayNameKey] || - Messages.anonymous + '#' + proxy.uid.slice(0,5); + Messages.anonymous + '#' + (proxy.uid || ctx.store.noDriveUid).slice(0,5); msg.push(name); } var msgStr = JSON.stringify(msg);