From 915c41e9b5a5baac299c31e53a9d70fd8de9de0b Mon Sep 17 00:00:00 2001 From: Manuel Conde Date: Fri, 30 Jul 2021 10:55:19 +0200 Subject: [PATCH 1/3] Spanish translation --- next-i18next.config.js | 5 +-- public/locales/es/common.yml | 6 ++++ public/locales/es/errors.yml | 20 ++++++++++++ public/locales/es/imprint.yml | 27 +++++++++++++++++ public/locales/es/index.yml | 29 ++++++++++++++++++ public/locales/es/privacy.yml | 57 +++++++++++++++++++++++++++++++++++ 6 files changed, 142 insertions(+), 2 deletions(-) create mode 100644 public/locales/es/common.yml create mode 100644 public/locales/es/errors.yml create mode 100644 public/locales/es/imprint.yml create mode 100644 public/locales/es/index.yml create mode 100644 public/locales/es/privacy.yml diff --git a/next-i18next.config.js b/next-i18next.config.js index edbb523..644d63c 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -2,13 +2,14 @@ module.exports = { i18n: { defaultLocale: 'en', locales: [ - 'en', + 'en', 'de', 'de-DE', 'de-AT', 'de-LI', 'de-LU', 'de-CH', 'fr', 'fr-BE', 'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', 'nl', 'nl-NL', 'nl-BE', 'fi', 'fi-FI', 'el', 'el-GR', 'el-CY', - 'it', 'it-IT', 'it-CH' + 'it', 'it-IT', 'it-CH', + 'es' ], localeExtension: 'yml', }, diff --git a/public/locales/es/common.yml b/public/locales/es/common.yml new file mode 100644 index 0000000..022004a --- /dev/null +++ b/public/locales/es/common.yml @@ -0,0 +1,6 @@ +title: CovidPass +subtitle: Añade tu Certificado Digital Europeo COVID a tu aplicación favorita de Cartera para tu móvil. +privacyPolicy: Política de Privacidad +donate: Esponsor +gitHub: GitHub +imprint: Legal \ No newline at end of file diff --git a/public/locales/es/errors.yml b/public/locales/es/errors.yml new file mode 100644 index 0000000..927b559 --- /dev/null +++ b/public/locales/es/errors.yml @@ -0,0 +1,20 @@ +noFileOrQrCode: Por favor, escanea un código QR o selecciona un archivo +signatureFailed: Error durante la firma de clave en el servidor +decodingFailed: Error al decodificar los datos del código QR +invalidColor: Color no válido +certificateData: Error al leer los datos del certificado +nameMissing: Error al leer el nombre +dobMissing: Error al leer la fecha de nacimiento +invalidMedicalProduct: Producto médico no válido +invalidCountryCode: Código de país no válido +invalidManufacturer: Manufacturador no válido +invalidFileType: Tipo de archivo no válido +couldNotDecode: No se puede decodificar el código QR del archivo +couldNotFindQrCode: No se puede encontrar el código QR en el archivo +invalidQrCode: Código QR no válido +certificateType: No se encontró un tipo de certificado válido +invalidTestResult: Resultado del test no válido +invalidTestType: Tipo de test no válido +noCameraAccess: No se puede acceder a la cámara. Compruebe los permisos en Ajustes > Safari > Cámara. +noCameraFound: No se puede encontrar la cámara. +safariSupportOnly: En iOS, Por favor use el navegador Safari. \ No newline at end of file diff --git a/public/locales/es/imprint.yml b/public/locales/es/imprint.yml new file mode 100644 index 0000000..bc6a20e --- /dev/null +++ b/public/locales/es/imprint.yml @@ -0,0 +1,27 @@ +heading: Información de acuerdo con artículo 5 TMG +contact: Contacto +euDisputeResolution: Resolución de disputa de UE +euDisputeResolutionParagraph: | + La Comisión Europea proporciona una plataforma para la resolución de disputas (OS) en línea https://ec.europa.eu/consumers/odr. + Puede encontrar nuestra dirección de correo electrónico en el punto anterior. +consumerDisputeResolution: Resolución de disputas del consumidor / junta de arbitraje universal +consumerDisputeResolutionParagraph: No estamos dispuestos ni obligados a participar en procedimientos de resolución de disputas ante una junta de arbitraje de consumidores. +liabilityForContents: Responsabilidad de los contenidos +liabilityForContentsParagraph: | + Como proveedor de servicios, somos responsables de nuestro propio contenido en estas páginas de acuerdo con el artículo 7 párrafo 1 TMG bajo las leyes generales. + De acuerdo con artículo 8 a 10 TMG, no estamos obligados a monitorear la información transmitida o almacenada ni a investigar circunstancias que indiquen una actividad ilegal. + Las obligaciones de eliminar o bloquear el uso de información según las leyes generales no se ven afectadas. + Sin embargo, la responsabilidad a este respecto solo es posible a partir del momento en que se conoce una infracción concreta de la ley. + Si nos damos cuenta de dichas infracciones, eliminaremos el contenido relevante de inmediato. +liabilityForLinks: Responsabilidad de los enlaces +liabilityForLinksParagraph: | + Nuestra oferta contiene enlaces a sitios web externos de terceros, sobre cuyos contenidos no tenemos influencia. + Por lo tanto, no podemos asumir ninguna responsabilidad por estos contenidos externos. + El respectivo proveedor u operador de los sitios siempre es responsable del contenido de los sitios vinculados. + Las páginas vinculadas se revisaron para detectar posibles violaciones legales en el momento de la vinculación. + No se encontraron contenidos ilegales en el momento de la vinculación. + Sin embargo, un control permanente de los contenidos de las páginas enlazadas no es razonable sin evidencia concreta de una violación de la ley. + Si nos damos cuenta de alguna infracción, eliminaremos dichos enlaces de inmediato. +credits: Créditos +creditsSource: Con extractos de https://www.e-recht24.de/impressum-generator.html +creditsTranslation: Salvo colaboraciones, se ha traducido con https://www.DeepL.com/Translator (versión gratuita) \ No newline at end of file diff --git a/public/locales/es/index.yml b/public/locales/es/index.yml new file mode 100644 index 0000000..267cde3 --- /dev/null +++ b/public/locales/es/index.yml @@ -0,0 +1,29 @@ +iosHint: En iOS, Por favor use el navegador Safari. +errorClose: Cerrar +selectCertificate: Seleccione Certificado +selectCertificateDescription: | + Escanee el código QR de su certificado, o seleccione una captura de pantalla o un PDF que contenga el código QR. + Tenga en cuenta que no se admite la selección de un archivo directamente desde la cámara. +stopCamera: Detener Cámara +startCamera: Iniciar Cámara +openFile: Seleccione archivo +foundQrCode: ¡Se encontró el código QR! +pickColor: Seleccione un Color +pickColorDescription: Seleccione un color de fondo para su pasaporte en la cartera. +colorWhite: blanco +colorBlack: negro +colorGrey: gris +colorGreen: verde +colorIndigo: índigo +colorBlue: azul +colorPurple: morado +colorTeal: verde azulado +addToWallet: Añadir a la Cartera +dataPrivacyDescription: | + La privacidad de los datos es de especial importancia cuando se procesan datos relacionados con la salud. + Para que pueda tomar una decisión informada, lea la +iAcceptThe: Acepto la +privacyPolicy: Política de Privacidad +createdOnDevice: Creado en su dispositivo +openSourceTransparent: Open source y transparente +hostedInEU: Alojado en la UE \ No newline at end of file diff --git a/public/locales/es/privacy.yml b/public/locales/es/privacy.yml new file mode 100644 index 0000000..a5d792a --- /dev/null +++ b/public/locales/es/privacy.yml @@ -0,0 +1,57 @@ +gdprNotice: | + Nuestra política de privacidad se basa en los términos utilizados por el legislador europeo. + para la adopción del Reglamento General de Protección de Datos (RGPD). +generalInfo: Información general +generalInfoProcess: | + Todo el proceso de generación del pasaporte ocurre localmente en su navegador. + Para el proceso de firma, solo se envía al servidor una representación hash de sus datos. +generalInfoStoring: Sus datos no se almacenan más allá de la sesión activa del navegador y el sitio no utiliza cookies. +generalInfoThirdParties: No se envían datos a terceros. +generalInfoHttps: Transmitimos datos de forma segura a través de https. +generalInfoLocation: Nuestro servidor está alojado en Nuremberg, Alemania. +generalInfoGitHub: El código fuente de este sitio está disponible en +generalInfoLockScreen: De forma predeterminada, se puede acceder a la Cartera de Apple desde la pantalla de bloqueo. Esto se puede cambiar en +settings: ajustes +generalInfoProvider: | + El proveedor del servidor procesa datos para proporcionar este sitio. + Para comprender mejor las medidas que toman para proteger sus datos, lea también su +privacyPolicy: política de privacidad +andThe: y las +dataPrivacyFaq: FAQ de privacidad de datos +contact: Contacto +email: E-mail +website: Website +process: Explicación simplificada del proceso +processFirst: Primero, los siguientes pasos ocurren localmente en su navegador +processSecond: Segundo, los siguientes pasos ocurren en nuestro servidor +processThird: Finalmente, los siguientes pasos ocurren localmente en su navegador +processRecognizing: Reconocer y extraer los datos del código QR de su certificado seleccionado +processDecoding: Decodificación de sus datos personales y de salud a partir de los datos del código QR +processAssembling: Creación de un archivo de pasaporte incompleto a partir de sus datos +processGenerating: Generación de un archivo que contiene hashes de los datos almacenados en el archivo de pasaporte. +processSending: Envío únicamente del archivo que contiene los hashes a nuestro servidor +processReceiving: Recepción y verificación de los hashes que se generaron localmente +processSigning: Firma del archivo que contiene los hashes +processSendingBack: Devolución de la firma +processCompleting: Creación de un archivo de pasaporte válido firmado a partir del archivo incompleto generado localmente y la firma +processSaving: Guardado del archivo en su dispositivo +locallyProcessedData: Datos procesados ​​localmente +the: el +schema: Esquema de Certificado Digital COVID +specification: contiene una especificación detallada de qué datos pueden incluirse en el código QR y que se procesarán en su navegador. +serverProvider: Proveedor del servidor +serverProviderIs: Nuestro proveedor del servidor es +logFiles: Los siguientes datos pueden recopilarse y almacenarse en los archivos de registro del servidor +logFilesBrowser: Los tipos y versiones de navegador utilizados +logFilesOs: El sistema operativo utilizado por usted +logFilesReferrer: El sitio web desde el que usted llega a nuestro sitio web (también denominados referentes) +logFilesTime: La fecha y hora de acceso +logFilesIpAddress: Las direcciones IP seudonimizadas +rights: Sus derechos +rightsGranted: De acuerdo con el RGPD, tiene los siguientes derechos +rightsAccess: Derecho de acceso a sus datos; tiene derecho a saber qué datos se han recopilado sobre usted y cómo se procesaron. +rightsErasure: Derecho al olvido; eliminación de sus datos personales. +rightsRectification: Derecho de rectificación; tiene derecho a corregir los datos inexactos. +rightsPortability: Derecho a la portabilidad de datos; tiene derecho a transferir sus datos de un sistema de procesamiento a otro. +thirdParties: Terceros vinculados +appleSync: Apple puede sincronizar sus pasaportes a través de iCloud From 1ad3f615e5faf2bd1ed9f524c061ee603d66ab2d Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 31 Jul 2021 02:06:02 +0200 Subject: [PATCH 2/3] Integrate Spanish translation --- next-i18next.config.js | 2 +- public/locales/es-ES | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 public/locales/es-ES diff --git a/next-i18next.config.js b/next-i18next.config.js index 644d63c..42e5ade 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -9,7 +9,7 @@ module.exports = { 'fi', 'fi-FI', 'el', 'el-GR', 'el-CY', 'it', 'it-IT', 'it-CH', - 'es' + 'es', 'es-ES' ], localeExtension: 'yml', }, diff --git a/public/locales/es-ES b/public/locales/es-ES new file mode 120000 index 0000000..6c43814 --- /dev/null +++ b/public/locales/es-ES @@ -0,0 +1 @@ +es \ No newline at end of file From bf786682854f663816712fb56e85755d08f0a87f Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 31 Jul 2021 02:11:15 +0200 Subject: [PATCH 3/3] Minor layout fix --- components/Form.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index 5d80bc5..be9206b 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -234,7 +234,7 @@ function Form(): JSX.Element { -