From 1a0c1313b8d80549a0529c788afbdeb4053b4a58 Mon Sep 17 00:00:00 2001 From: jpa Date: Fri, 22 Nov 2024 10:27:30 +0100 Subject: [PATCH 1/4] Changed Terms and conditions translations and added missing translations --- src/components/TermsAndPrivacy/Privacy.tsx | 56 +++----- src/components/TermsAndPrivacy/Terms.tsx | 159 ++++++--------------- src/i18n/locales/ca.json | 103 +++++++++++-- src/i18n/locales/en.json | 94 ++++++++++++ src/i18n/locales/es.json | 94 ++++++++++++ 5 files changed, 342 insertions(+), 164 deletions(-) diff --git a/src/components/TermsAndPrivacy/Privacy.tsx b/src/components/TermsAndPrivacy/Privacy.tsx index f9a5cb710..93cfd3af1 100644 --- a/src/components/TermsAndPrivacy/Privacy.tsx +++ b/src/components/TermsAndPrivacy/Privacy.tsx @@ -1,39 +1,33 @@ import { Box, Heading, Link, List, ListItem, Text } from '@chakra-ui/react' +import { t } from 'i18next' const Privacy = () => ( <> - Privacy Policy + {t('privacyPolicy.title')} - - This document outlines the privacy practices for Vocdoni Association ("Vocdoni") concerning the use of its - websites and services. - + {t('privacyPolicy.description')} - 1. Information Collection + {t('privacyPolicy.section1Title')} - 1.1 Vocdoni may collect user personal data such as name, organization name, size, type and - email addresses when provided as the organization's contact email, though using personal email addresses for - this purpose is not recommended. + 1.1 {t('privacyPolicy.section1.item1')} - 1.2 User consent may be required for the use of certain personal data, which can be - withdrawn at any time using Vocdoni's contact details provided below. + 1.2 {t('privacyPolicy.section1.item2')} - 1.3 Additional personal information may be collected and processed as necessary to deliver - services, fulfill contractual obligations, or comply with legal requirements. + 1.3 {t('privacyPolicy.section1.item3')} @@ -41,57 +35,45 @@ const Privacy = () => ( - 2. Method of Collection + {t('privacyPolicy.section2Title')} - - Vocdoni processes personal information provided directly by users through various means, including registration - on any Vocdoni website, service procurement, or communications. - + {t('privacyPolicy.section2.description')} - 3. Use of Information + {t('privacyPolicy.section3Title')} - - The collected information is used to provide and manage services, conduct marketing and business activities, and - support customer service and marketing efforts. - + {t('privacyPolicy.section3.description')} - 4. Information Sharing + {t('privacyPolicy.section4Title')} - - Vocdoni may share personal information with other companies within the Vocdoni Association or third-party - service providers assisting with our services. - + {t('privacyPolicy.section4.description')} - 5. Information Security + {t('privacyPolicy.section5Title')} - Vocdoni commits to securing collected personal information with appropriate measures. + {t('privacyPolicy.section5.description')} - 6. Rights of Users + {t('privacyPolicy.section6Title')} - - Users have rights to access, correct, delete, and restrict the processing of their data, among other rights - outlined herein. - + {t('privacyPolicy.section6.description')} - 7. Contacting Vocdoni + {t('privacyPolicy.section7Title')} - For further details on our data practices or to exercise your rights, please contact us at{' '} + {t('privacyPolicy.section7.description')}{' '} privacy@vocdoni.org diff --git a/src/components/TermsAndPrivacy/Terms.tsx b/src/components/TermsAndPrivacy/Terms.tsx index c145f69b6..92f07b267 100644 --- a/src/components/TermsAndPrivacy/Terms.tsx +++ b/src/components/TermsAndPrivacy/Terms.tsx @@ -1,165 +1,86 @@ import { Heading, ListItem, Text, UnorderedList } from '@chakra-ui/react' +import { t } from 'i18next' const Terms = () => ( <> - Terms and Conditions for Vocdoni Association + {t('terms.title')} - 1. General Information + {t('terms.section1Title')} - - The Vocdoni Association, headquartered in Switzerland, operates the app.vocdoni.io and onvote.app platforms. Our - mission is to provide secure and private digital voting solutions through a distributed architecture. - - - These platforms prioritize user privacy and data security, ensuring compliance with the European Union's General - Data Protection Regulation (GDPR). - + {t('terms.section1.description1')} + {t('terms.section1.description2')} - 2. Data Collection and Storage + {t('terms.section2Title')} - We emphasize user data security. Here is an overview: + {t('terms.section2.description')} - - Information Collected: We collect and process personal data necessary for service provision. - This includes data provided by voting organizers and voters to verify identities, manage voting events, and - facilitate the overall voting process. - - - Encrypted Storage: All personal data is stored in encrypted form, ensuring that no personal - data is stored in plain text or accessible without proper authorization. - - - Public Metadata: Metadata and information submitted by voting organizers may be publicly - accessible on the InterPlanetary File System (IPFS). Organizers are responsible for compliance with applicable - data protection laws. - - - Additional Data Collection: In certain cases, we collect additional data to fulfill legal - obligations or provide specialized services. This data is collected with the user's explicit consent or as - required by applicable laws. - + {t('terms.section2.item1')} + {t('terms.section2.item2')} + {t('terms.section2.item3')} + {t('terms.section2.item4')} - 3. Data Use and Compliance + {t('terms.section3Title')} - - Purpose Limitation: Personal data is processed solely for providing and improving our services - or fulfilling legal obligations. We do not process personal data for unrelated purposes. - - - User Consent: Where necessary, we seek explicit user consent for data processing activities. - Consent may be withdrawn at any time by contacting us using the details provided below. - - - Marketing: We do not use collected data for marketing purposes without explicit user consent. - Consent can be managed through user account settings. - + {t('terms.section3.item1')} + {t('terms.section3.item2')} + {t('terms.section3.item3')} - 4. Data Sharing + {t('terms.section4Title')} - - Third-Party Disclosure: Personal data is not shared with third parties except where required by - law, for providing services (e.g., secure storage or customer support), or with the user's explicit consent. - - - Data Processors: Third-party data processors are bound by data processing agreements that - include confidentiality obligations consistent with GDPR requirements. - - - Cross-Border Transfers: Any cross-border data transfers include adequate protection measures to - ensure GDPR compliance. - + {t('terms.section4.item1')} + {t('terms.section4.item2')} + {t('terms.section4.item3')} - 5. Security Measures + {t('terms.section5Title')} - - The Vocdoni Association employs strong security measures to protect personal data. Only authorized personnel have - access to user data, and they are obligated to handle it confidentially. - - - In the event of a data breach that affects personal data, we will promptly notify affected individuals and - relevant authorities as required by applicable laws. - + {t('terms.section5.description1')} + {t('terms.section5.description2')} - 6. User Rights + {t('terms.section6Title')} - - Access: Obtain information on the processing of personal data and access the data we hold. - - - Correction: Request the correction of inaccurate or incomplete personal data. - - - Deletion: Request the deletion of personal data under certain circumstances. - - - Restriction: Request that we restrict processing of personal data in specific situations. - - - Portability: Receive personal data in a structured format or request its transfer to a third - party. - - - Objection: Object to processing of personal data based on legitimate interests. - - - Complaint: Lodge a complaint with the relevant data protection authority. - + {t('terms.section6.item1')} + {t('terms.section6.item2')} + {t('terms.section6.item3')} + {t('terms.section6.item4')} + {t('terms.section6.item5')} + {t('terms.section6.item6')} + {t('terms.section6.item7')} - - To exercise these rights, contact us using the details provided below. We will respond promptly and fulfill your - request as required by GDPR. - + {t('terms.section6.description')} - 7. Disclaimer + {t('terms.section7Title')} - - The Vocdoni Association is not responsible for information submitted by end-users or organizers. Voting organizers - must comply with applicable data protection laws. - - We do not track user data beyond what is essential for providing secure services. + {t('terms.section7.description1')} + {t('terms.section7.description2')} - 8. Limitation of Liability + {t('terms.section8Title')} - - Indirect Damages: The Vocdoni Association shall not be liable for indirect, consequential, or - incidental damages arising from the use of our services. - - - Force Majeure: The Vocdoni Association is not responsible for delays or interruptions in - service resulting from events beyond our reasonable control, including acts of God, natural disasters, or - technical failures. - + {t('terms.section8.item1')} + {t('terms.section8.item2')} - 9. Contact Information + {t('terms.section9Title')} - - For any queries regarding these Terms and Conditions or to exercise your data rights, please contact us at info - (at) vocdoni.org. We will respond promptly to address any concerns or complaints. - - - - By continuing to use app.vocdoni.io or onvote.app, you confirm your acceptance of these terms and your agreement - to abide by them. - + {t('terms.section9.description1')} + {t('terms.section9.description2')} ) diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 9a393b14b..ff30684a4 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -832,6 +832,7 @@ "feature_unavailable": "Ups... el teu <2>pla {{ plan, lowercase }} no suporta {{ feature }}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, + "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Informes i anàlisis avançades", @@ -869,6 +870,40 @@ "view_features": "View all features" }, "privacy_policy": "Privacy Policy", + "privacyPolicy": { + "description": "Aquest document descriu les pràctiques de privacitat de l'Associació Vocdoni (\"Vocdoni\") pel que fa a l'ús dels seus llocs web i serveis.", + "section1": { + "item1": "Vocdoni pot recollir dades personals dels usuaris, com ara el nom, el nom de l'organització, la seva mida, tipus i adreces de correu electrònic proporcionades com a correu de contacte de l'organització, tot i que no es recomana utilitzar adreces de correu personals per a aquest propòsit.", + "item2": "Pot ser necessari el consentiment de l'usuari per utilitzar algunes dades personals, consentiment que pot ser revocat en qualsevol moment utilitzant les dades de contacte de Vocdoni indicades a continuació.", + "item3": "Informació personal addicional pot ser recopilada i processada segons sigui necessari per prestar serveis, complir obligacions contractuals o complir amb requisits legals." + }, + "section1Title": "1. Recollida d'Informació", + "section2": { + "description": "Vocdoni processa la informació personal proporcionada directament pels usuaris mitjançant diversos mitjans, incloent-hi el registre en qualsevol lloc web de Vocdoni, l'adquisició de serveis o les comunicacions." + }, + "section2Title": "2. Mètode de Recollida", + "section3": { + "description": "La informació recollida s'utilitza per proporcionar i gestionar serveis, dur a terme activitats de màrqueting i negocis, i donar suport als esforços d'atenció al client i màrqueting." + }, + "section3Title": "3. Ús de la Informació", + "section4": { + "description": "Vocdoni pot compartir informació personal amb altres empreses dins de l'Associació Vocdoni o amb proveïdors de serveis externs que col·laborin amb els nostres serveis." + }, + "section4Title": "4. Compartició d'Informació", + "section5": { + "description": "Vocdoni es compromet a protegir la informació personal recollida amb mesures adequades." + }, + "section5Title": "5. Seguretat de la Informació", + "section6": { + "description": "Els usuaris tenen dret a accedir, corregir, eliminar i restringir el processament de les seves dades, entre altres drets descrits en aquest document." + }, + "section6Title": "6. Drets dels Usuaris", + "section7": { + "description": "Per a més detalls sobre les nostres pràctiques de dades o per exercir els vostres drets, poseu-vos en contacte amb nosaltres a privacy@vocdoni.org." + }, + "section7Title": "7. Contactar amb Vocdoni", + "title": "Política de Privacitat" + }, "process": { "census": "Cens", "census_strategies": { @@ -1073,15 +1108,67 @@ "label": "Surname", "required": "Surname is required" }, - "team": { - "expiration": "Expiració", - "member_name": "Nom", - "member_role": "Rol", - "pending_members": "Invitacions pendents", - "team_members": "Membres de l'equip", - "title": "Equip" + "team": "Equip", + "teams": "Teams", + "terms": { + "title": "Termes i Condicions de l'Associació Vocdoni", + "section1Title": "1. Informació General", + "section1": { + "description1": "L'Associació Vocdoni, amb seu a Suïssa, opera les plataformes app.vocdoni.io i onvote.app.", + "description2": "Aquestes plataformes prioritzen la privacitat de l'usuari i la seguretat de les dades, garantint el compliment del Reglament General de Protecció de Dades (GDPR) de la Unió Europea." + }, + "section2Title": "2. Recollida i Emmagatzematge de Dades", + "section2": { + "description": "Donem prioritat a la seguretat de les dades dels usuaris. A continuació, un resum:", + "item1": "Recollim i processem dades personals necessàries per a la prestació de serveis.", + "item2": "Totes les dades personals es guarden en forma xifrada, garantint que no hi hagi dades personals en text pla.", + "item3": "Els metadades proporcionades pels organitzadors de votacions poden ser accessibles públicament a l'IPFS.", + "item4": "Es poden recollir dades addicionals per complir amb obligacions legals o prestar serveis especialitzats." + }, + "section3Title": "3. Ús de Dades i Compliment", + "section3": { + "item1": "Les dades personals es processen únicament per proporcionar i millorar els nostres serveis.", + "item2": "Sol·licitem el consentiment explícit de l'usuari per a activitats de processament de dades.", + "item3": "No utilitzem les dades recollides per a finalitats de màrqueting sense el consentiment explícit de l'usuari." + }, + "section4Title": "4. Compartició de Dades", + "section4": { + "item1": "Les dades personals no es comparteixen amb tercers, excepte quan ho exigeixi la llei.", + "item2": "Els processadors de dades externs estan subjectes a acords de confidencialitat.", + "item3": "Qualsevol transferència internacional de dades inclou mesures de protecció adequades." + }, + "section5Title": "5. Mesures de Seguretat", + "section5": { + "description1": "L'Associació Vocdoni aplica mesures fortes de seguretat per protegir les dades personals.", + "description2": "En cas d'una violació de dades, notificarem ràpidament les persones afectades." + }, + "section6Title": "6. Drets dels Usuaris", + "section6": { + "item1": "Accés: Obtenir informació sobre el processament de dades personals.", + "item2": "Correcció: Sol·licitar la correcció de dades personals inexactes.", + "item3": "Eliminació: Sol·licitar l'eliminació de dades personals en determinades circumstàncies.", + "item4": "Restricció: Sol·licitar que restringim el processament de dades personals.", + "item5": "Portabilitat: Rebre dades personals en un format estructurat.", + "item6": "Oposició: Oposar-se al processament basat en interessos legítims.", + "item7": "Queixa: Presentar una queixa davant l'autoritat de protecció de dades corresponent.", + "description": "Per exercir aquests drets, poseu-vos en contacte amb nosaltres utilitzant les dades a continuació." + }, + "section7Title": "7. Exempció de Responsabilitat", + "section7": { + "description1": "L'Associació Vocdoni no és responsable de la informació proporcionada pels usuaris.", + "description2": "No rastregem dades dels usuaris més enllà del que és essencial." + }, + "section8Title": "8. Limitació de Responsabilitat", + "section8": { + "item1": "Danys Indirectes: L'Associació Vocdoni no serà responsable de danys indirectes.", + "item2": "Força Major: L'Associació Vocdoni no és responsable de retards causats per esdeveniments fora del nostre control." + }, + "section9Title": "9. Informació de Contacte", + "section9": { + "description1": "Per a qualsevol consulta sobre aquests Termes i Condicions, poseu-vos en contacte amb nosaltres a info (at) vocdoni.org.", + "description2": "En continuar utilitzant els nostres serveis, confirmeu la vostra acceptació d'aquests termes." + } }, - "teams": "Equips", "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Condicions d'ús", "tier_upgrade": { diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 38c3b02ca..bc15d664b 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -823,6 +823,7 @@ "feature_unavailable": "Oops ... your <2>free plan doesn't support {{feature}}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, + "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Advanced reporting and analytics", @@ -859,6 +860,40 @@ "view_features": "View all features" }, "privacy_policy": "Privacy Policy", + "privacyPolicy": { + "description": "This document outlines the privacy practices for Vocdoni Association (\"Vocdoni\") concerning the use of its websites and services.", + "section1": { + "item1": "Vocdoni may collect user personal data such as name, organization name, size, type and email addresses when provided as the organization's contact email, though using personal email addresses for this purpose is not recommended.", + "item2": "User consent may be required for the use of certain personal data, which can be withdrawn at any time using Vocdoni's contact details provided below.", + "item3": "Additional personal information may be collected and processed as necessary to deliver services, fulfill contractual obligations, or comply with legal requirements." + }, + "section1Title": "1. Information Collection", + "section2": { + "description": "Vocdoni processes personal information provided directly by users through various means, including registration on any Vocdoni website, service procurement, or communications." + }, + "section2Title": "2. Method of Collection", + "section3": { + "description": "The collected information is used to provide and manage services, conduct marketing and business activities, and support customer service and marketing efforts." + }, + "section3Title": "3. Use of Information", + "section4": { + "description": "Vocdoni may share personal information with other companies within the Vocdoni Association or third-party service providers assisting with our services." + }, + "section4Title": "4. Information Sharing", + "section5": { + "description": "Vocdoni commits to securing collected personal information with appropriate measures." + }, + "section5Title": "5. Information Security", + "section6": { + "description": "Users have rights to access, correct, delete, and restrict the processing of their data, among other rights outlined herein." + }, + "section6Title": "6. Rights of Users", + "section7": { + "description": "For further details on our data practices or to exercise your rights, please contact us at privacy@vocdoni.org." + }, + "section7Title": "7. Contacting Vocdoni", + "title": "Privacy Policy" + }, "process": { "census": "Census", "census_strategies": { @@ -1069,6 +1104,65 @@ "title": "Team" }, "teams": "Teams", + "terms": { + "title": "Terms and Conditions for Vocdoni Association", + "section1Title": "1. General Information", + "section1": { + "description1": "The Vocdoni Association, headquartered in Switzerland, operates the app.vocdoni.io and onvote.app platforms.", + "description2": "These platforms prioritize user privacy and data security, ensuring compliance with the European Union's General Data Protection Regulation (GDPR)." + }, + "section2Title": "2. Data Collection and Storage", + "section2": { + "description": "We emphasize user data security. Here is an overview:", + "item1": "We collect and process personal data necessary for service provision.", + "item2": "All personal data is stored in encrypted form, ensuring that no personal data is stored in plain text.", + "item3": "Metadata submitted by voting organizers may be publicly accessible on IPFS.", + "item4": "Additional data may be collected to fulfill legal obligations or provide specialized services." + }, + "section3Title": "3. Data Use and Compliance", + "section3": { + "item1": "Personal data is processed solely for providing and improving our services.", + "item2": "We seek explicit user consent for data processing activities.", + "item3": "We do not use collected data for marketing purposes without explicit user consent." + }, + "section4Title": "4. Data Sharing", + "section4": { + "item1": "Personal data is not shared with third parties except where required by law.", + "item2": "Third-party data processors are bound by confidentiality agreements.", + "item3": "Any cross-border data transfers include adequate protection measures." + }, + "section5Title": "5. Security Measures", + "section5": { + "description1": "The Vocdoni Association employs strong security measures to protect personal data.", + "description2": "In the event of a data breach, we will promptly notify affected individuals." + }, + "section6Title": "6. User Rights", + "section6": { + "item1": "Access: Obtain information on the processing of personal data.", + "item2": "Correction: Request the correction of inaccurate personal data.", + "item3": "Deletion: Request the deletion of personal data under certain circumstances.", + "item4": "Restriction: Request that we restrict processing of personal data.", + "item5": "Portability: Receive personal data in a structured format.", + "item6": "Objection: Object to processing based on legitimate interests.", + "item7": "Complaint: Lodge a complaint with the relevant data authority.", + "description": "To exercise these rights, contact us using the details below." + }, + "section7Title": "7. Disclaimer", + "section7": { + "description1": "The Vocdoni Association is not responsible for information submitted by users.", + "description2": "We do not track user data beyond what is essential." + }, + "section8Title": "8. Limitation of Liability", + "section8": { + "item1": "Indirect Damages: The Vocdoni Association shall not be liable for indirect damages.", + "item2": "Force Majeure: The Vocdoni Association is not responsible for delays caused by events beyond our control." + }, + "section9Title": "9. Contact Information", + "section9": { + "description1": "For any queries regarding these Terms and Conditions, please contact us at info (at) vocdoni.org.", + "description2": "By continuing to use our services, you confirm your acceptance of these terms." + } + }, "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Terms of Use", "tier_upgrade": { diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 714f177c2..c5c2592d0 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -832,6 +832,7 @@ "feature_unavailable": "Oops ... your <2>free plan doesn't support {{feature}}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, + "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Informes y análisis avanzados", @@ -869,6 +870,40 @@ "view_features": "Ver todas las características" }, "privacy_policy": "Privacy Policy", + "privacyPolicy": { + "description": "Este documento describe las prácticas de privacidad de la Asociación Vocdoni (\"Vocdoni\") con respecto al uso de sus sitios web y servicios.", + "section1": { + "item1": "Vocdoni puede recopilar datos personales de los usuarios, como nombre, nombre de la organización, tamaño, tipo y direcciones de correo electrónico proporcionadas como correo de contacto de la organización, aunque no se recomienda usar direcciones de correo personales para este propósito.", + "item2": "Puede requerirse el consentimiento del usuario para el uso de ciertos datos personales, el cual puede ser retirado en cualquier momento utilizando los datos de contacto de Vocdoni proporcionados a continuación.", + "item3": "Información personal adicional puede ser recopilada y procesada según sea necesario para prestar servicios, cumplir con obligaciones contractuales o cumplir con requisitos legales." + }, + "section1Title": "1. Recopilación de Información", + "section2": { + "description": "Vocdoni procesa la información personal proporcionada directamente por los usuarios a través de diversos medios, incluyendo el registro en cualquier sitio web de Vocdoni, la adquisición de servicios o las comunicaciones." + }, + "section2Title": "2. Método de Recopilación", + "section3": { + "description": "La información recopilada se utiliza para proporcionar y gestionar servicios, realizar actividades de marketing y negocios, y apoyar los esfuerzos de atención al cliente y marketing." + }, + "section3Title": "3. Uso de la Información", + "section4": { + "description": "Vocdoni puede compartir información personal con otras empresas dentro de la Asociación Vocdoni o con proveedores de servicios externos que colaboren con nuestros servicios." + }, + "section4Title": "4. Compartición de Información", + "section5": { + "description": "Vocdoni se compromete a proteger la información personal recopilada con medidas apropiadas." + }, + "section5Title": "5. Seguridad de la Información", + "section6": { + "description": "Los usuarios tienen derecho a acceder, corregir, eliminar y restringir el procesamiento de sus datos, entre otros derechos descritos en este documento." + }, + "section6Title": "6. Derechos de los Usuarios", + "section7": { + "description": "Para más detalles sobre nuestras prácticas de datos o para ejercer sus derechos, por favor contáctenos en privacy@vocdoni.org." + }, + "section7Title": "7. Contactar con Vocdoni", + "title": "Política de Privacidad" + }, "process": { "census": "Censo", "census_strategies": { @@ -1082,6 +1117,65 @@ "title": "Equipo" }, "teams": "Teams", + "terms": { + "title": "Términos y Condiciones de la Asociación Vocdoni", + "section1Title": "1. Información General", + "section1": { + "description1": "La Asociación Vocdoni, con sede en Suiza, opera las plataformas app.vocdoni.io y onvote.app.", + "description2": "Estas plataformas priorizan la privacidad del usuario y la seguridad de los datos, asegurando el cumplimiento del Reglamento General de Protección de Datos (GDPR) de la Unión Europea." + }, + "section2Title": "2. Recopilación y Almacenamiento de Datos", + "section2": { + "description": "Damos prioridad a la seguridad de los datos de los usuarios. Aquí hay un resumen:", + "item1": "Recopilamos y procesamos datos personales necesarios para la prestación de servicios.", + "item2": "Todos los datos personales se almacenan en forma encriptada, asegurando que no haya datos personales en texto plano.", + "item3": "Los metadatos proporcionados por los organizadores de votaciones pueden ser accesibles públicamente en IPFS.", + "item4": "Se pueden recopilar datos adicionales para cumplir con obligaciones legales o prestar servicios especializados." + }, + "section3Title": "3. Uso de Datos y Cumplimiento", + "section3": { + "item1": "Los datos personales se procesan únicamente para proporcionar y mejorar nuestros servicios.", + "item2": "Solicitamos el consentimiento explícito del usuario para actividades de procesamiento de datos.", + "item3": "No utilizamos los datos recopilados para fines de marketing sin el consentimiento explícito del usuario." + }, + "section4Title": "4. Compartición de Datos", + "section4": { + "item1": "Los datos personales no se comparten con terceros, excepto cuando lo exija la ley.", + "item2": "Los procesadores de datos externos están sujetos a acuerdos de confidencialidad.", + "item3": "Cualquier transferencia internacional de datos incluye medidas de protección adecuadas." + }, + "section5Title": "5. Medidas de Seguridad", + "section5": { + "description1": "La Asociación Vocdoni emplea fuertes medidas de seguridad para proteger los datos personales.", + "description2": "En caso de una violación de datos, notificaremos rápidamente a las personas afectadas." + }, + "section6Title": "6. Derechos de los Usuarios", + "section6": { + "item1": "Acceso: Obtener información sobre el procesamiento de datos personales.", + "item2": "Corrección: Solicitar la corrección de datos personales inexactos.", + "item3": "Eliminación: Solicitar la eliminación de datos personales en ciertas circunstancias.", + "item4": "Restricción: Solicitar que restrinjamos el procesamiento de datos personales.", + "item5": "Portabilidad: Recibir datos personales en un formato estructurado.", + "item6": "Oposición: Oponerse al procesamiento basado en intereses legítimos.", + "item7": "Queja: Presentar una queja ante la autoridad de protección de datos correspondiente.", + "description": "Para ejercer estos derechos, contáctenos utilizando los detalles a continuación." + }, + "section7Title": "7. Exención de Responsabilidad", + "section7": { + "description1": "La Asociación Vocdoni no es responsable de la información proporcionada por los usuarios.", + "description2": "No rastreamos datos de los usuarios más allá de lo esencial." + }, + "section8Title": "8. Limitación de Responsabilidad", + "section8": { + "item1": "Daños Indirectos: La Asociación Vocdoni no será responsable de daños indirectos.", + "item2": "Fuerza Mayor: La Asociación Vocdoni no es responsable de retrasos causados por eventos fuera de nuestro control." + }, + "section9Title": "9. Información de Contacto", + "section9": { + "description1": "Para cualquier consulta sobre estos Términos y Condiciones, contáctenos en info (at) vocdoni.org.", + "description2": "Al continuar utilizando nuestros servicios, confirma su aceptación de estos términos." + } + }, "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Condiciones de uso", "tier_upgrade": { From 617867eb590e82f4d2f29d095ed295e4a687a701 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=92scar=20Casajuana?= Date: Thu, 5 Dec 2024 13:14:07 +0100 Subject: [PATCH 2/4] Fix how i18next was being used in terms and conditions --- src/components/TermsAndPrivacy/Privacy.tsx | 153 +++++++++++---------- src/components/TermsAndPrivacy/Terms.tsx | 152 ++++++++++---------- 2 files changed, 156 insertions(+), 149 deletions(-) diff --git a/src/components/TermsAndPrivacy/Privacy.tsx b/src/components/TermsAndPrivacy/Privacy.tsx index 93cfd3af1..d137dc1d9 100644 --- a/src/components/TermsAndPrivacy/Privacy.tsx +++ b/src/components/TermsAndPrivacy/Privacy.tsx @@ -1,86 +1,89 @@ import { Box, Heading, Link, List, ListItem, Text } from '@chakra-ui/react' -import { t } from 'i18next' +import { useTranslation } from 'react-i18next' -const Privacy = () => ( - <> - - - {t('privacyPolicy.title')} - - {t('privacyPolicy.description')} - +const Privacy = () => { + const { t } = useTranslation() + return ( + <> + + + {t('privacyPolicy.title')} + + {t('privacyPolicy.description')} + - - - {t('privacyPolicy.section1Title')} - - - - - 1.1 {t('privacyPolicy.section1.item1')} - - - - - 1.2 {t('privacyPolicy.section1.item2')} - - - - - 1.3 {t('privacyPolicy.section1.item3')} - - - - + + + {t('privacyPolicy.section1Title')} + + + + + 1.1 {t('privacyPolicy.section1.item1')} + + + + + 1.2 {t('privacyPolicy.section1.item2')} + + + + + 1.3 {t('privacyPolicy.section1.item3')} + + + + - - - {t('privacyPolicy.section2Title')} - - {t('privacyPolicy.section2.description')} - + + + {t('privacyPolicy.section2Title')} + + {t('privacyPolicy.section2.description')} + - - - {t('privacyPolicy.section3Title')} - - {t('privacyPolicy.section3.description')} - + + + {t('privacyPolicy.section3Title')} + + {t('privacyPolicy.section3.description')} + - - - {t('privacyPolicy.section4Title')} - - {t('privacyPolicy.section4.description')} - + + + {t('privacyPolicy.section4Title')} + + {t('privacyPolicy.section4.description')} + - - - {t('privacyPolicy.section5Title')} - - {t('privacyPolicy.section5.description')} - + + + {t('privacyPolicy.section5Title')} + + {t('privacyPolicy.section5.description')} + - - - {t('privacyPolicy.section6Title')} - - {t('privacyPolicy.section6.description')} - + + + {t('privacyPolicy.section6Title')} + + {t('privacyPolicy.section6.description')} + - - - {t('privacyPolicy.section7Title')} - - - {t('privacyPolicy.section7.description')}{' '} - - privacy@vocdoni.org - - . - - - -) + + + {t('privacyPolicy.section7Title')} + + + {t('privacyPolicy.section7.description')}{' '} + + privacy@vocdoni.org + + . + + + + ) +} export default Privacy diff --git a/src/components/TermsAndPrivacy/Terms.tsx b/src/components/TermsAndPrivacy/Terms.tsx index 92f07b267..1d0da2206 100644 --- a/src/components/TermsAndPrivacy/Terms.tsx +++ b/src/components/TermsAndPrivacy/Terms.tsx @@ -1,87 +1,91 @@ import { Heading, ListItem, Text, UnorderedList } from '@chakra-ui/react' -import { t } from 'i18next' +import { useTranslation } from 'react-i18next' -const Terms = () => ( - <> - - {t('terms.title')} - +const Terms = () => { + const { t } = useTranslation() - - {t('terms.section1Title')} - - {t('terms.section1.description1')} - {t('terms.section1.description2')} + return ( + <> + + {t('terms.title')} + - - {t('terms.section2Title')} - - {t('terms.section2.description')} - - {t('terms.section2.item1')} - {t('terms.section2.item2')} - {t('terms.section2.item3')} - {t('terms.section2.item4')} - + + {t('terms.section1Title')} + + {t('terms.section1.description1')} + {t('terms.section1.description2')} - - {t('terms.section3Title')} - - - {t('terms.section3.item1')} - {t('terms.section3.item2')} - {t('terms.section3.item3')} - + + {t('terms.section2Title')} + + {t('terms.section2.description')} + + {t('terms.section2.item1')} + {t('terms.section2.item2')} + {t('terms.section2.item3')} + {t('terms.section2.item4')} + - - {t('terms.section4Title')} - - - {t('terms.section4.item1')} - {t('terms.section4.item2')} - {t('terms.section4.item3')} - + + {t('terms.section3Title')} + + + {t('terms.section3.item1')} + {t('terms.section3.item2')} + {t('terms.section3.item3')} + - - {t('terms.section5Title')} - - {t('terms.section5.description1')} - {t('terms.section5.description2')} + + {t('terms.section4Title')} + + + {t('terms.section4.item1')} + {t('terms.section4.item2')} + {t('terms.section4.item3')} + - - {t('terms.section6Title')} - - - {t('terms.section6.item1')} - {t('terms.section6.item2')} - {t('terms.section6.item3')} - {t('terms.section6.item4')} - {t('terms.section6.item5')} - {t('terms.section6.item6')} - {t('terms.section6.item7')} - - {t('terms.section6.description')} + + {t('terms.section5Title')} + + {t('terms.section5.description1')} + {t('terms.section5.description2')} - - {t('terms.section7Title')} - - {t('terms.section7.description1')} - {t('terms.section7.description2')} + + {t('terms.section6Title')} + + + {t('terms.section6.item1')} + {t('terms.section6.item2')} + {t('terms.section6.item3')} + {t('terms.section6.item4')} + {t('terms.section6.item5')} + {t('terms.section6.item6')} + {t('terms.section6.item7')} + + {t('terms.section6.description')} - - {t('terms.section8Title')} - - - {t('terms.section8.item1')} - {t('terms.section8.item2')} - + + {t('terms.section7Title')} + + {t('terms.section7.description1')} + {t('terms.section7.description2')} - - {t('terms.section9Title')} - - {t('terms.section9.description1')} - {t('terms.section9.description2')} - -) + + {t('terms.section8Title')} + + + {t('terms.section8.item1')} + {t('terms.section8.item2')} + + + + {t('terms.section9Title')} + + {t('terms.section9.description1')} + {t('terms.section9.description2')} + + ) +} export default Terms From 93d827e5c201a51b09eba82ae2c8168a635733a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=92scar=20Casajuana?= Date: Thu, 5 Dec 2024 13:16:19 +0100 Subject: [PATCH 3/4] Ran yarn translations and fixed some issues --- src/i18n/locales/ca.json | 36 +++++++++++++++++++++--------------- src/i18n/locales/en.json | 27 +++++++++++++-------------- src/i18n/locales/es.json | 27 +++++++++++++-------------- 3 files changed, 47 insertions(+), 43 deletions(-) diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index ff30684a4..21fd91ab9 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -832,7 +832,6 @@ "feature_unavailable": "Ups... el teu <2>pla {{ plan, lowercase }} no suporta {{ feature }}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, - "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Informes i anàlisis avançades", @@ -1108,16 +1107,21 @@ "label": "Surname", "required": "Surname is required" }, - "team": "Equip", + "team": { + "expiration": "Expiració", + "member_name": "Nom", + "member_role": "Rol", + "pending_members": "Invitacions pendents", + "team_members": "Membres de l'equip", + "title": "Equip" + }, "teams": "Teams", "terms": { - "title": "Termes i Condicions de l'Associació Vocdoni", - "section1Title": "1. Informació General", "section1": { "description1": "L'Associació Vocdoni, amb seu a Suïssa, opera les plataformes app.vocdoni.io i onvote.app.", "description2": "Aquestes plataformes prioritzen la privacitat de l'usuari i la seguretat de les dades, garantint el compliment del Reglament General de Protecció de Dades (GDPR) de la Unió Europea." }, - "section2Title": "2. Recollida i Emmagatzematge de Dades", + "section1Title": "1. Informació General", "section2": { "description": "Donem prioritat a la seguretat de les dades dels usuaris. A continuació, un resum:", "item1": "Recollim i processem dades personals necessàries per a la prestació de serveis.", @@ -1125,49 +1129,51 @@ "item3": "Els metadades proporcionades pels organitzadors de votacions poden ser accessibles públicament a l'IPFS.", "item4": "Es poden recollir dades addicionals per complir amb obligacions legals o prestar serveis especialitzats." }, - "section3Title": "3. Ús de Dades i Compliment", + "section2Title": "2. Recollida i Emmagatzematge de Dades", "section3": { "item1": "Les dades personals es processen únicament per proporcionar i millorar els nostres serveis.", "item2": "Sol·licitem el consentiment explícit de l'usuari per a activitats de processament de dades.", "item3": "No utilitzem les dades recollides per a finalitats de màrqueting sense el consentiment explícit de l'usuari." }, - "section4Title": "4. Compartició de Dades", + "section3Title": "3. Ús de Dades i Compliment", "section4": { "item1": "Les dades personals no es comparteixen amb tercers, excepte quan ho exigeixi la llei.", "item2": "Els processadors de dades externs estan subjectes a acords de confidencialitat.", "item3": "Qualsevol transferència internacional de dades inclou mesures de protecció adequades." }, - "section5Title": "5. Mesures de Seguretat", + "section4Title": "4. Compartició de Dades", "section5": { "description1": "L'Associació Vocdoni aplica mesures fortes de seguretat per protegir les dades personals.", "description2": "En cas d'una violació de dades, notificarem ràpidament les persones afectades." }, - "section6Title": "6. Drets dels Usuaris", + "section5Title": "5. Mesures de Seguretat", "section6": { + "description": "Per exercir aquests drets, poseu-vos en contacte amb nosaltres utilitzant les dades a continuació.", "item1": "Accés: Obtenir informació sobre el processament de dades personals.", "item2": "Correcció: Sol·licitar la correcció de dades personals inexactes.", "item3": "Eliminació: Sol·licitar l'eliminació de dades personals en determinades circumstàncies.", "item4": "Restricció: Sol·licitar que restringim el processament de dades personals.", "item5": "Portabilitat: Rebre dades personals en un format estructurat.", "item6": "Oposició: Oposar-se al processament basat en interessos legítims.", - "item7": "Queixa: Presentar una queixa davant l'autoritat de protecció de dades corresponent.", - "description": "Per exercir aquests drets, poseu-vos en contacte amb nosaltres utilitzant les dades a continuació." + "item7": "Queixa: Presentar una queixa davant l'autoritat de protecció de dades corresponent." }, - "section7Title": "7. Exempció de Responsabilitat", + "section6Title": "6. Drets dels Usuaris", "section7": { "description1": "L'Associació Vocdoni no és responsable de la informació proporcionada pels usuaris.", "description2": "No rastregem dades dels usuaris més enllà del que és essencial." }, - "section8Title": "8. Limitació de Responsabilitat", + "section7Title": "7. Exempció de Responsabilitat", "section8": { "item1": "Danys Indirectes: L'Associació Vocdoni no serà responsable de danys indirectes.", "item2": "Força Major: L'Associació Vocdoni no és responsable de retards causats per esdeveniments fora del nostre control." }, - "section9Title": "9. Informació de Contacte", + "section8Title": "8. Limitació de Responsabilitat", "section9": { "description1": "Per a qualsevol consulta sobre aquests Termes i Condicions, poseu-vos en contacte amb nosaltres a info (at) vocdoni.org.", "description2": "En continuar utilitzant els nostres serveis, confirmeu la vostra acceptació d'aquests termes." - } + }, + "section9Title": "9. Informació de Contacte", + "title": "Termes i Condicions de l'Associació Vocdoni" }, "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Condicions d'ús", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index bc15d664b..c8065b603 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -823,7 +823,6 @@ "feature_unavailable": "Oops ... your <2>free plan doesn't support {{feature}}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, - "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Advanced reporting and analytics", @@ -1105,13 +1104,11 @@ }, "teams": "Teams", "terms": { - "title": "Terms and Conditions for Vocdoni Association", - "section1Title": "1. General Information", "section1": { "description1": "The Vocdoni Association, headquartered in Switzerland, operates the app.vocdoni.io and onvote.app platforms.", "description2": "These platforms prioritize user privacy and data security, ensuring compliance with the European Union's General Data Protection Regulation (GDPR)." }, - "section2Title": "2. Data Collection and Storage", + "section1Title": "1. General Information", "section2": { "description": "We emphasize user data security. Here is an overview:", "item1": "We collect and process personal data necessary for service provision.", @@ -1119,49 +1116,51 @@ "item3": "Metadata submitted by voting organizers may be publicly accessible on IPFS.", "item4": "Additional data may be collected to fulfill legal obligations or provide specialized services." }, - "section3Title": "3. Data Use and Compliance", + "section2Title": "2. Data Collection and Storage", "section3": { "item1": "Personal data is processed solely for providing and improving our services.", "item2": "We seek explicit user consent for data processing activities.", "item3": "We do not use collected data for marketing purposes without explicit user consent." }, - "section4Title": "4. Data Sharing", + "section3Title": "3. Data Use and Compliance", "section4": { "item1": "Personal data is not shared with third parties except where required by law.", "item2": "Third-party data processors are bound by confidentiality agreements.", "item3": "Any cross-border data transfers include adequate protection measures." }, - "section5Title": "5. Security Measures", + "section4Title": "4. Data Sharing", "section5": { "description1": "The Vocdoni Association employs strong security measures to protect personal data.", "description2": "In the event of a data breach, we will promptly notify affected individuals." }, - "section6Title": "6. User Rights", + "section5Title": "5. Security Measures", "section6": { + "description": "To exercise these rights, contact us using the details below.", "item1": "Access: Obtain information on the processing of personal data.", "item2": "Correction: Request the correction of inaccurate personal data.", "item3": "Deletion: Request the deletion of personal data under certain circumstances.", "item4": "Restriction: Request that we restrict processing of personal data.", "item5": "Portability: Receive personal data in a structured format.", "item6": "Objection: Object to processing based on legitimate interests.", - "item7": "Complaint: Lodge a complaint with the relevant data authority.", - "description": "To exercise these rights, contact us using the details below." + "item7": "Complaint: Lodge a complaint with the relevant data authority." }, - "section7Title": "7. Disclaimer", + "section6Title": "6. User Rights", "section7": { "description1": "The Vocdoni Association is not responsible for information submitted by users.", "description2": "We do not track user data beyond what is essential." }, - "section8Title": "8. Limitation of Liability", + "section7Title": "7. Disclaimer", "section8": { "item1": "Indirect Damages: The Vocdoni Association shall not be liable for indirect damages.", "item2": "Force Majeure: The Vocdoni Association is not responsible for delays caused by events beyond our control." }, - "section9Title": "9. Contact Information", + "section8Title": "8. Limitation of Liability", "section9": { "description1": "For any queries regarding these Terms and Conditions, please contact us at info (at) vocdoni.org.", "description2": "By continuing to use our services, you confirm your acceptance of these terms." - } + }, + "section9Title": "9. Contact Information", + "title": "Terms and Conditions for Vocdoni Association" }, "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Terms of Use", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index c5c2592d0..8f75af7be 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -832,7 +832,6 @@ "feature_unavailable": "Oops ... your <2>free plan doesn't support {{feature}}.", "satisfaction_rate": "97% satisfaction rate, for only 9€/month." }, - "personalization": "personalization", "preview": "Preview", "pricing": { "advanced_analytitcs": "Informes y análisis avanzados", @@ -1118,13 +1117,11 @@ }, "teams": "Teams", "terms": { - "title": "Términos y Condiciones de la Asociación Vocdoni", - "section1Title": "1. Información General", "section1": { "description1": "La Asociación Vocdoni, con sede en Suiza, opera las plataformas app.vocdoni.io y onvote.app.", "description2": "Estas plataformas priorizan la privacidad del usuario y la seguridad de los datos, asegurando el cumplimiento del Reglamento General de Protección de Datos (GDPR) de la Unión Europea." }, - "section2Title": "2. Recopilación y Almacenamiento de Datos", + "section1Title": "1. Información General", "section2": { "description": "Damos prioridad a la seguridad de los datos de los usuarios. Aquí hay un resumen:", "item1": "Recopilamos y procesamos datos personales necesarios para la prestación de servicios.", @@ -1132,49 +1129,51 @@ "item3": "Los metadatos proporcionados por los organizadores de votaciones pueden ser accesibles públicamente en IPFS.", "item4": "Se pueden recopilar datos adicionales para cumplir con obligaciones legales o prestar servicios especializados." }, - "section3Title": "3. Uso de Datos y Cumplimiento", + "section2Title": "2. Recopilación y Almacenamiento de Datos", "section3": { "item1": "Los datos personales se procesan únicamente para proporcionar y mejorar nuestros servicios.", "item2": "Solicitamos el consentimiento explícito del usuario para actividades de procesamiento de datos.", "item3": "No utilizamos los datos recopilados para fines de marketing sin el consentimiento explícito del usuario." }, - "section4Title": "4. Compartición de Datos", + "section3Title": "3. Uso de Datos y Cumplimiento", "section4": { "item1": "Los datos personales no se comparten con terceros, excepto cuando lo exija la ley.", "item2": "Los procesadores de datos externos están sujetos a acuerdos de confidencialidad.", "item3": "Cualquier transferencia internacional de datos incluye medidas de protección adecuadas." }, - "section5Title": "5. Medidas de Seguridad", + "section4Title": "4. Compartición de Datos", "section5": { "description1": "La Asociación Vocdoni emplea fuertes medidas de seguridad para proteger los datos personales.", "description2": "En caso de una violación de datos, notificaremos rápidamente a las personas afectadas." }, - "section6Title": "6. Derechos de los Usuarios", + "section5Title": "5. Medidas de Seguridad", "section6": { + "description": "Para ejercer estos derechos, contáctenos utilizando los detalles a continuación.", "item1": "Acceso: Obtener información sobre el procesamiento de datos personales.", "item2": "Corrección: Solicitar la corrección de datos personales inexactos.", "item3": "Eliminación: Solicitar la eliminación de datos personales en ciertas circunstancias.", "item4": "Restricción: Solicitar que restrinjamos el procesamiento de datos personales.", "item5": "Portabilidad: Recibir datos personales en un formato estructurado.", "item6": "Oposición: Oponerse al procesamiento basado en intereses legítimos.", - "item7": "Queja: Presentar una queja ante la autoridad de protección de datos correspondiente.", - "description": "Para ejercer estos derechos, contáctenos utilizando los detalles a continuación." + "item7": "Queja: Presentar una queja ante la autoridad de protección de datos correspondiente." }, - "section7Title": "7. Exención de Responsabilidad", + "section6Title": "6. Derechos de los Usuarios", "section7": { "description1": "La Asociación Vocdoni no es responsable de la información proporcionada por los usuarios.", "description2": "No rastreamos datos de los usuarios más allá de lo esencial." }, - "section8Title": "8. Limitación de Responsabilidad", + "section7Title": "7. Exención de Responsabilidad", "section8": { "item1": "Daños Indirectos: La Asociación Vocdoni no será responsable de daños indirectos.", "item2": "Fuerza Mayor: La Asociación Vocdoni no es responsable de retrasos causados por eventos fuera de nuestro control." }, - "section9Title": "9. Información de Contacto", + "section8Title": "8. Limitación de Responsabilidad", "section9": { "description1": "Para cualquier consulta sobre estos Términos y Condiciones, contáctenos en info (at) vocdoni.org.", "description2": "Al continuar utilizando nuestros servicios, confirma su aceptación de estos términos." - } + }, + "section9Title": "9. Información de Contacto", + "title": "Términos y Condiciones de la Asociación Vocdoni" }, "terms_and_conditions": "Terms and Conditions", "terms_of_use": "Condiciones de uso", From 49fbafd8f847bd2a65e2086d33c0b4b35d3cee4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=92scar=20Casajuana?= Date: Thu, 5 Dec 2024 13:20:02 +0100 Subject: [PATCH 4/4] Fixed terms link --- src/components/ProcessCreate/Steps/Confirm.tsx | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/src/components/ProcessCreate/Steps/Confirm.tsx b/src/components/ProcessCreate/Steps/Confirm.tsx index a94e178e8..5cb2f1895 100644 --- a/src/components/ProcessCreate/Steps/Confirm.tsx +++ b/src/components/ProcessCreate/Steps/Confirm.tsx @@ -40,12 +40,13 @@ import { import { useEffect, useMemo, useState } from 'react' import { FormProvider, useForm } from 'react-hook-form' import { Trans, useTranslation } from 'react-i18next' -import { useNavigate } from 'react-router-dom' +import { Link as RouterLink, useNavigate } from 'react-router-dom' import { IElection, IElectionWithTokenResponse } from 'vocdoni-admin-sdk' import { CensusMeta } from '~components/Process/Census/CensusType' import { StampsUnionTypes } from '~components/ProcessCreate/Census/Gitcoin/StampsUnionType' import { CensusGitcoinValues } from '~components/ProcessCreate/StepForm/CensusGitcoin' import { DefaultCensusSize } from '~constants' +import { Routes } from '~src/router/routes' import { useCspAdmin } from '../Census/Csp/use-csp' import Preview from '../Confirm/Preview' import { CostPreview } from '../CostPreview' @@ -320,17 +321,7 @@ export const Confirm = () => { - ), + customLink: , }} />