From 81b3f30d6d435fa3430a9e493efebb4b5d129046 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 24 Jul 2021 21:40:59 +0200 Subject: [PATCH 01/12] Readd spaces before punctuation in french --- public/locales/fr/index.yml | 2 +- public/locales/fr/privacy.yml | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/public/locales/fr/index.yml b/public/locales/fr/index.yml index ba922f2..83e59d2 100644 --- a/public/locales/fr/index.yml +++ b/public/locales/fr/index.yml @@ -7,7 +7,7 @@ selectCertificateDescription: | stopCamera: Arrêter l'appareil photo startCamera: Démarrer l'appareil photo openFile: Sélectionner un fichier -foundQrCode: Code QR trouvé! +foundQrCode: Code QR trouvé ! pickColor: Choisissez une couleur pickColorDescription: Choisissez une couleur de fond pour votre passe. colorWhite: blanc diff --git a/public/locales/fr/privacy.yml b/public/locales/fr/privacy.yml index cbcf051..d4beb43 100644 --- a/public/locales/fr/privacy.yml +++ b/public/locales/fr/privacy.yml @@ -49,9 +49,9 @@ logFilesTime: La date et l'heure de l'accès. logFilesIpAddress: Les adresses IP pseudonymisées rights: Vos droits rightsGranted: Conformément au RGPD, vous disposez des droits suivants -rightsAccess: Droit d'accès à vos données; Vous avez le droit de savoir quelles données ont été collectées à votre sujet et comment elles ont été traitées. -rightsErasure: Droit à l'oubli; Effacement de vos données personnelles. -rightsRectification: Droit de rectification; Vous avez le droit de corriger des données inexactes. -rightsPortability: Droit à la portabilité des données; Vous avez le droit de transférer vos données d'un système de traitement à un autre. +rightsAccess: Droit d'accès à vos données ; Vous avez le droit de savoir quelles données ont été collectées à votre sujet et comment elles ont été traitées. +rightsErasure: Droit à l'oubli ; Effacement de vos données personnelles. +rightsRectification: Droit de rectification ; Vous avez le droit de corriger des données inexactes. +rightsPortability: Droit à la portabilité des données ; Vous avez le droit de transférer vos données d'un système de traitement à un autre. thirdParties: Tiers liés appleSync: Apple peut synchroniser vos passes via iCloud. From 5c55a64b1085333b5a76e5df8e2013d8c4080a63 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 24 Jul 2021 21:55:34 +0200 Subject: [PATCH 02/12] Add dutch translation --- next-i18next.config.js | 3 +- pages/privacy.tsx | 3 +- public/locales/en/privacy.yml | 2 +- public/locales/fr/errors.yml | 5 ++- public/locales/fr/privacy.yml | 2 +- public/locales/nl-BE | 1 + public/locales/nl-NL | 1 + public/locales/nl/common.yml | 6 ++++ public/locales/nl/errors.yml | 17 +++++++++++ public/locales/nl/imprint.yml | 27 +++++++++++++++++ public/locales/nl/index.yml | 26 ++++++++++++++++ public/locales/nl/privacy.yml | 57 +++++++++++++++++++++++++++++++++++ 12 files changed, 144 insertions(+), 6 deletions(-) create mode 120000 public/locales/nl-BE create mode 120000 public/locales/nl-NL create mode 100644 public/locales/nl/common.yml create mode 100644 public/locales/nl/errors.yml create mode 100644 public/locales/nl/imprint.yml create mode 100644 public/locales/nl/index.yml create mode 100644 public/locales/nl/privacy.yml diff --git a/next-i18next.config.js b/next-i18next.config.js index b6d61db..170fde8 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -4,7 +4,8 @@ module.exports = { locales: [ 'en', 'de', 'de-DE', 'de-AT', 'de-LI', 'de-LU', 'de-CH', - 'fr', 'fr-BE', 'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC' + 'fr', 'fr-BE', 'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', + 'nl', 'nl-NL', 'nl-BE' ], localeExtension: 'yml', }, diff --git a/pages/privacy.tsx b/pages/privacy.tsx index 1920ac6..6aaff67 100644 --- a/pages/privacy.tsx +++ b/pages/privacy.tsx @@ -35,11 +35,10 @@ function Privacy(): JSX.Element {
  • {t('privacy:generalInfoProvider')} -   {t('privacy:privacyPolicy')} -   +   {t('privacy:andThe')}   diff --git a/public/locales/en/privacy.yml b/public/locales/en/privacy.yml index 65c62a4..553a9c4 100644 --- a/public/locales/en/privacy.yml +++ b/public/locales/en/privacy.yml @@ -21,7 +21,7 @@ dataPrivacyFaq: data privacy FAQ contact: Contact email: Email website: Website -process: Simplified of the process +process: Simplified explanation of the process processFirst: First, the following steps happen locally in your browser processSecond: Second, the following steps happen on our server processThird: Finally, the following steps happen locally in your browser diff --git a/public/locales/fr/errors.yml b/public/locales/fr/errors.yml index 3149029..680e039 100644 --- a/public/locales/fr/errors.yml +++ b/public/locales/fr/errors.yml @@ -2,7 +2,7 @@ noFileOrQrCode: Veuillez scanner un QR Code ou sélectionner un fichier signatureFailed: Erreur lors de la signature du pass sur le serveur decodingFailed: Échec du décodage du QR Code invalidColor: Couleur non valide -vaccinationInfo: Échec de la lecture des informations de vaccination +certificateData: Échec de la lecture des données du certificat nameMissing: Échec de la lecture du nom dobMissing: Échec de la lecture de la date de naissance invalidMedicalProduct: Produit vaccinal non valide @@ -12,3 +12,6 @@ invalidFileType: Type de fichier non valide couldNotDecode: Impossible de décoder le QR Code du fichier couldNotFindQrCode: Impossible de trouver le QR Code dans le fichier fourni invalidQrCode: QR Code non valide +certificateType: Aucun type de certificat valide n'a été trouvé +invalidTestResult: Résultat du test non valide +invalidTestType: Type de test non valide \ No newline at end of file diff --git a/public/locales/fr/privacy.yml b/public/locales/fr/privacy.yml index d4beb43..c4a4582 100644 --- a/public/locales/fr/privacy.yml +++ b/public/locales/fr/privacy.yml @@ -21,7 +21,7 @@ dataPrivacyFaq: FAQ sur la confidentialité des données contact: Contact email: Email website: Site web -process: Simplification du processus +process: Explication simplifiée du processus processFirst: Premièrement, les étapes suivantes se déroulent localement dans votre navigateur. processSecond: Ensuite, les étapes suivantes se déroulent sur notre serveur processThird: Enfin, les étapes suivantes se déroulent localement dans votre navigateur diff --git a/public/locales/nl-BE b/public/locales/nl-BE new file mode 120000 index 0000000..d5f5c2a --- /dev/null +++ b/public/locales/nl-BE @@ -0,0 +1 @@ +nl \ No newline at end of file diff --git a/public/locales/nl-NL b/public/locales/nl-NL new file mode 120000 index 0000000..d5f5c2a --- /dev/null +++ b/public/locales/nl-NL @@ -0,0 +1 @@ +nl \ No newline at end of file diff --git a/public/locales/nl/common.yml b/public/locales/nl/common.yml new file mode 100644 index 0000000..bde9e35 --- /dev/null +++ b/public/locales/nl/common.yml @@ -0,0 +1,6 @@ +title: CovidPass +subtitle: Voeg uw EU Digitaal COVID-certificaten toe aan uw favoriete wallet-apps. +privacyPolicy: Privacybeleid +donate: Doneer +gitHub: GitHub +imprint: Over \ No newline at end of file diff --git a/public/locales/nl/errors.yml b/public/locales/nl/errors.yml new file mode 100644 index 0000000..1614c80 --- /dev/null +++ b/public/locales/nl/errors.yml @@ -0,0 +1,17 @@ +noFileOrQrCode: Scan een QR-code of selecteer een bestand +signatureFailed: Fout bij het ondertekenen van de pass op de server +decodingFailed: Kan de payload van de QR-code niet decoderen +invalidColor: Ongeldige kleur +certificateData: Kan certificaatgegevens niet lezen +nameMissing: Kan naam niet lezen +dobMissing: Kan geboortedatum niet lezen +invalidMedicalProduct: Ongeldig medisch product +invalidCountryCode: Ongeldige landcode +invalidManufacturer: Ongeldige fabrikant +invalidFileType: Ongeldig bestandstype +couldNotDecode: Kon QR-code niet uit bestand decoderen +couldNotFindQrCode: Kon de QR-code niet vinden in het verstrekte bestand +invalidQrCode: Ongeldige QR-code +certificateType: Geen geldig certificaattype gevonden +invalidTestResult: Ongeldig testresultaat +invalidTestType: Ongeldig testtype \ No newline at end of file diff --git a/public/locales/nl/imprint.yml b/public/locales/nl/imprint.yml new file mode 100644 index 0000000..31609ed --- /dev/null +++ b/public/locales/nl/imprint.yml @@ -0,0 +1,27 @@ +heading: Informatie volgens § 5 TMG +contact: Contact +euDisputeResolution: EU-geschillenbeslechting +euDisputeResolutionParagraph: | + De Europese Commissie biedt een platform voor online geschillenbeslechting (OS) https://ec.europa.eu/consumers/odr. + U vindt ons e-mailadres in de conrtactgegevens hierboven. +consumerDisputeResolution: Beslechting van consumentengeschillen / universele arbitragecommissie +consumerDisputeResolutionParagraph: We zijn niet bereid of verplicht om deel te nemen aan geschillenbeslechtingsprocedures voor een arbitragecommissie voor consumenten. +liabilityForContents: Aansprakelijkheid voor inhoud +liabilityForContentsParagraph: | + Als dienstverlener zijn wij verantwoordelijk voor onze eigen inhoud op deze pagina's in overeenstemming met § 7 lid 1 TMG onder de algemene wetten. + Volgens §§ 8 tot 10 TMG zijn wij niet verplicht om verzonden of opgeslagen informatie te controleren of omstandigheden te onderzoeken die wijzen op illegale activiteiten. + Verplichtingen tot het verwijderen of blokkeren van het gebruik van informatie onder de algemene wetten blijven onaangetast. + Aansprakelijkheid ter zake is echter pas mogelijk vanaf het moment dat een concrete wetsovertreding bekend wordt. + Als we kennis krijgen van dergelijke inbreuken, zullen we de relevante inhoud onmiddellijk verwijderen. +liabilityForLinks: Aansprakelijkheid voor links +liabilityForLinksParagraph: | + Ons aanbod bevat links naar externe websites van derden, op wiens inhoud wij geen invloed hebben. + Daarom kunnen wij voor deze externe inhoud geen aansprakelijkheid aanvaarden. + De respectievelijke aanbieder of exploitant van de sites is altijd verantwoordelijk voor de inhoud van de gelinkte sites. + De gelinkte pagina's werden op het moment van linken gecontroleerd op mogelijke juridische overtredingen. + Illegale inhoud was op het moment van linken niet herkenbaar. + Een permanente controle van de inhoud van de gelinkte pagina's is echter niet redelijk zonder concreet bewijs van een overtreding van de wet. + Als we inbreuken vaststellen, zullen we dergelijke links onmiddellijk verwijderen. +credits: Credits +creditsSource: Met fragmenten van https://www.e-recht24.de/impressum-generator.html +creditsTranslation: Vertaald met https://www.DeepL.com/Translator (gratis versie) \ No newline at end of file diff --git a/public/locales/nl/index.yml b/public/locales/nl/index.yml new file mode 100644 index 0000000..847c658 --- /dev/null +++ b/public/locales/nl/index.yml @@ -0,0 +1,26 @@ +iosHint: Gebruik op iOS de Safari-browser. +errorClose: Sluiten +selectCertificate: Selecteer Certificaat +selectCertificateDescription: | + Scan de QR-code op uw certificaat of selecteer een screenshot of pdf-pagina met de QR-code. + Merk op dat het rechtstreeks vanaf de camera selecteren van een bestand niet wordt ondersteund. +stopCamera: Stop Camera +startCamera: Start Camera +openFile: Selecteer Bestand +foundQrCode: QR-code gevonden! +pickColor: Kies een kleur +pickColorDescription: Kies een achtergrondkleur voor je pas. +colorWhite: wit +colorBlack: zwart +colorGrey: grijs +colorGreen: groen +colorIndigo: indigo +colorBlue: blauw +colorPurple: paars +colorTeal: groenblauw +addToWallet: Toevoegen aan Wallet +dataPrivacyDescription: | + Gegevensprivacy is van bijzonder belang bij de verwerking van gezondheidsgerelateerde gegevens. + Om een weloverwogen beslissing te kunnen nemen, lees a.u.b. de +iAcceptThe: Ik accepteer het +privacyPolicy: Privacybeleid \ No newline at end of file diff --git a/public/locales/nl/privacy.yml b/public/locales/nl/privacy.yml new file mode 100644 index 0000000..a0e7b24 --- /dev/null +++ b/public/locales/nl/privacy.yml @@ -0,0 +1,57 @@ +gdprNotice: | + Ons privacybeleid is gebaseerd op de voorwaarden die worden gebruikt door de Europese wetgever + voor de vaststelling van de Algemene Verordening Gegevensbescherming (AVG). +generalInfo: Algemene informatie +generalInfoProcess: | + Het hele proces van het genereren van het pass-bestand gebeurt lokaal in uw browser. + Voor de ondertekeningsstap wordt alleen een gehashte weergave van uw gegevens naar de server gestuurd. +generalInfoStoring: Uw gegevens worden niet opgeslagen buiten de actieve browsersessie en de site maakt geen gebruik van cookies. +generalInfoThirdParties: Er worden geen gegevens naar derden verzonden. +generalInfoHttps: Wij verzenden uw gegevens veilig via https. +generalInfoLocation: Onze server wordt gehost in Neurenberg, Duitsland. +generalInfoGitHub: De broncode van deze site is beschikbaar op +generalInfoLockScreen: Standaard zijn Apple Wallet-passen toegankelijk vanaf het vergrendelingsscherm. Dit kan worden gewijzigd in de +settings: settings +generalInfoProvider: | + De serverprovider verwerkt gegevens om deze site ter beschikking te stellen. + Om beter te begrijpen welke maatregelen zij nemen om uw gegevens te beschermen, leest u ook hun +privacyPolicy: privacybeleid +andThe: en de +dataPrivacyFaq: veelgestelde vragen over gegevensprivacy +contact: Contact +email: E-mail +website: Website +process: Vereenvoudigde uitleg van het proces +processFirst: Ten eerste gebeuren de volgende stappen lokaal in uw browser +processSecond: Ten tweede gebeuren de volgende stappen op onze server +processThird: Ten slotte gebeuren de volgende stappen lokaal in uw browser +processRecognizing: Herkennen en extraheren van de QR-codegegevens van uw geselecteerde certificaat +processDecoding: Het decoderen van uw persoonlijke en gezondheidsgerelateerde gegevens uit de QR-code payload +processAssembling: Een onvolledig pasbestand samenstellen uit uw gegevens +processGenerating: Een bestand genereren dat hashes bevat van de gegevens die zijn opgeslagen in het pasbestand +processSending: Alleen het bestand met de hashes naar onze server verzenden +processReceiving: De hashes ontvangen en controleren die lokaal zijn gegenereerd +processSigning: Het bestand met de hashes ondertekenen +processSendingBack: De handtekening terugsturen +processCompleting: Het getekende pass-bestand samenstellen uit het onvolledige bestand dat lokaal is gegenereerd en de handtekening +processSaving: Het bestand op uw apparaat opslaan +locallyProcessedData: Lokaal verwerkte gegevens +the: Het +schema: Digitaal Covid Certificate Schema +specification: bevat een gedetailleerde specificatie van welke gegevens in de QR-code kunnen staan en in uw browser worden verwerkt. +serverProvider: Serverprovider +serverProviderIs: Onze serverprovider is +logFiles: De volgende gegevens kunnen worden verzameld en opgeslagen in de serverlogbestanden +logFilesBrowser: De gebruikte browsertypes en -versies +logFilesOs: Het besturingssysteem dat wordt gebruikt door het toegangssysteem +logFilesReferrer: De website van waaruit een toegangssysteem onze website bereikt (zogenaamde verwijzers) +logFilesTime: De datum en tijd van bezoek +logFilesIpAddress: De gepseudonimiseerde IP-adressen +rights: Jou rechten +rightsGranted: Conform de AVG heeft u de volgende rechten +rightsAccess: Recht op toegang tot uw gegevens; U hebt het recht om te weten welke gegevens over u zijn verzameld en hoe deze zijn verwerkt. +rightsErasure: Recht om vergeten te worden; Wissen van uw persoonsgegevens. +rightsRectification: Recht op rectificatie; U heeft het recht om onjuiste gegevens te corrigeren. +rightsPortability: Recht op gegevensoverdraagbaarheid; U heeft het recht om uw gegevens over te dragen van het ene verwerkingssysteem naar het andere. +thirdParties: Derden gekoppeld +appleSync: Apple kan uw passen synchroniseren via iCloud \ No newline at end of file From b0babdd4c7e34eb7bc65792bbf6466caa900e745 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 24 Jul 2021 22:06:00 +0200 Subject: [PATCH 03/12] Add Finnish translation --- next-i18next.config.js | 3 +- public/locales/fi-FI | 1 + public/locales/fi/common.yml | 5 ++++ public/locales/fi/errors.yml | 17 +++++++++++ public/locales/fi/imprint.yml | 27 +++++++++++++++++ public/locales/fi/index.yml | 26 ++++++++++++++++ public/locales/fi/privacy.yml | 56 +++++++++++++++++++++++++++++++++++ 7 files changed, 134 insertions(+), 1 deletion(-) create mode 120000 public/locales/fi-FI create mode 100644 public/locales/fi/common.yml create mode 100644 public/locales/fi/errors.yml create mode 100644 public/locales/fi/imprint.yml create mode 100644 public/locales/fi/index.yml create mode 100644 public/locales/fi/privacy.yml diff --git a/next-i18next.config.js b/next-i18next.config.js index 170fde8..00ff681 100644 --- a/next-i18next.config.js +++ b/next-i18next.config.js @@ -5,7 +5,8 @@ module.exports = { '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' + 'nl', 'nl-NL', 'nl-BE', + 'fi', 'fi-FI' ], localeExtension: 'yml', }, diff --git a/public/locales/fi-FI b/public/locales/fi-FI new file mode 120000 index 0000000..5f9399c --- /dev/null +++ b/public/locales/fi-FI @@ -0,0 +1 @@ +fi \ No newline at end of file diff --git a/public/locales/fi/common.yml b/public/locales/fi/common.yml new file mode 100644 index 0000000..70df300 --- /dev/null +++ b/public/locales/fi/common.yml @@ -0,0 +1,5 @@ +title: CovidPass +subtitle: Lisää EU:n koronatodistus suosikkilompakkosovellukseesi. +privacyPolicy: Tietosuojaseloste +gitHub: GitHub +imprint: Imprint \ No newline at end of file diff --git a/public/locales/fi/errors.yml b/public/locales/fi/errors.yml new file mode 100644 index 0000000..8e7bbe2 --- /dev/null +++ b/public/locales/fi/errors.yml @@ -0,0 +1,17 @@ +noFileOrQrCode: Skannaa QR koodi tai valitse tiedosto +signatureFailed: Virhe allekirjoitettaessa passia palvelimella +decodingFailed: QR-koodin hyötykuorman purkaminen epäonnistui +invalidColor: Väärä väri +certificateData: Varmenteen tietojen lukeminen epäonnistui +nameMissing: Nimen lukeminen epäonnistui +dobMissing: Syntymäaikaa ei onnistuttu lukemaan +invalidMedicalProduct: Virheellinen lääkevalmiste +invalidCountryCode: Virheellinen maakoodi +invalidManufacturer: Virheellinen valmistaja +invalidFileType: Virheellinen tiedostotyyppi +couldNotDecode: QR-koodia ei voitu purkaa tiedostosta +couldNotFindQrCode: QR-koodia ei löytynyt annetusta tiedostosta +invalidQrCode: Virheellinen QR-koodi +certificateType: Kelvollista varmennetyyppiä ei löytynyt +invalidTestResult: Virheellinen testitulos +invalidTestType: Virheellinen testityyppi \ No newline at end of file diff --git a/public/locales/fi/imprint.yml b/public/locales/fi/imprint.yml new file mode 100644 index 0000000..7055a98 --- /dev/null +++ b/public/locales/fi/imprint.yml @@ -0,0 +1,27 @@ +heading: TMG 5 §:n mukaiset tiedot +contact: Yhteystiedot +euDisputeResolution: EU:n riidanratkaisu +euDisputeResolutionParagraph: | + Euroopan komissio tarjoaa foorumin verkkovälitteistä riidanratkaisua varten https://ec.europa.eu/consumers/odr. + Sähköpostiosoitteemme löytyy yllä olevasta painatuksesta. +consumerDisputeResolution: Kuluttajariitojen ratkaiseminen / yleinen välimieslautakunta +consumerDisputeResolutionParagraph: Emme ole halukkaita tai velvollisia osallistumaan riidanratkaisumenettelyyn kuluttajasovittelulautakunnassa. +liabilityForContents: Vastuu sisällöstä +liabilityForContentsParagraph: | + Palveluntarjoajana olemme yleisten lakien 7 §:n 1 momentin TMG:n mukaisesti vastuussa näiden sivujen sisällöstä. + TMG:n 8-10 §:n mukaan emme ole velvollisia valvomaan siirrettyjä tai tallennettuja tietoja tai tutkimaan olosuhteita, jotka viittaavat laittomaan toimintaan. + Yleisten lakien mukaiset velvollisuudet poistaa tai estää tietojen käyttö säilyvät ennallaan. + Vastuu tässä suhteessa on kuitenkin mahdollista vasta siitä hetkestä alkaen, kun konkreettinen lain rikkominen tulee tietoon. + Jos saamme tietää tällaisista rikkomuksista, poistamme asianomaisen sisällön välittömästi. +liabilityForLinks: Vastuu linkeistä +liabilityForLinksParagraph: | + Tarjouksemme sisältää linkkejä kolmansien osapuolten ulkoisille verkkosivustoille, joiden sisältöön emme voi vaikuttaa. + Siksi emme voi ottaa vastuuta näistä ulkoisista sisällöistä. + Linkitettyjen sivustojen sisällöstä on aina vastuussa kyseisten sivustojen tarjoaja tai ylläpitäjä. + Linkitetyt sivut on tarkistettu mahdollisten lainrikkomusten varalta linkittämishetkellä. + Laitonta sisältöä ei ollut tunnistettavissa linkittämishetkellä. + Linkitettyjen sivujen sisällön jatkuva valvonta ei kuitenkaan ole järkevää ilman konkreettisia todisteita lainrikkomuksesta. + Jos saamme tietoiseksi rikkomuksista, poistamme tällaiset linkit välittömästi. +credits: Kiitokset +creditsSource: Otteita osoitteesta https://www.e-recht24.de/impressum-generator.html +creditsTranslation: Käännetty osoitteella https://www.DeepL.com/Translator (ilmainen versio). \ No newline at end of file diff --git a/public/locales/fi/index.yml b/public/locales/fi/index.yml new file mode 100644 index 0000000..b5f1c52 --- /dev/null +++ b/public/locales/fi/index.yml @@ -0,0 +1,26 @@ +iosHint: Käytä iOS:ssä Safari-selainta. +errorClose: Sulje +selectCertificate: Valitse todistus +selectCertificateDescription: | + Skannaa todistuksessa oleva QR-koodi tai valitse kuvakaappaus tai PDF-sivu, jossa on QR-koodi. + Huomaa, että tiedoston valitsemista suoraan kamerasta ei tueta. +stopCamera: Lopeta Kamera +startCamera: Käynnistä Kamera +openFile: Valitse Tiedosto +foundQrCode: QR koodi löytyi! +pickColor: Valitse väri +pickColorDescription: Valitse passisi taustaväri. +colorWhite: Valkoinen +colorBlack: Musta +colorGrey: Harmaa +colorGreen: Vihreä +colorIndigo: Indigonsininen +colorBlue: Sininen +colorPurple: Purppura +colorTeal: Sinivihreä +addToWallet: Lisää lompakkoon. +dataPrivacyDescription: | + Tietosuoja on erityisen tärkeää, kun käsitellään terveyteen liittyviä tietoja. + Jotta voisit tehdä tietoon perustuvan päätöksen, lue seuraavat tiedot +iAcceptThe: Hyväksyn +privacyPolicy: Tietosuojaselosteen \ No newline at end of file diff --git a/public/locales/fi/privacy.yml b/public/locales/fi/privacy.yml new file mode 100644 index 0000000..728d804 --- /dev/null +++ b/public/locales/fi/privacy.yml @@ -0,0 +1,56 @@ +gdprNotice: | + Tietosuojakäytäntömme perustuu Euroopan lainsäätäjän yleisen tietosuoja-asetuksen (GDPR) hyväksymisen yhteydessä käyttämiin termeihin. +generalInfo: Yleistä tietoa +generalInfoProcess: | + Koko passitiedoston luomisprosessi tapahtuu paikallisesti selaimessasi. + Allekirjoitusvaihetta varten palvelimelle lähetetään vain hashed versio tiedoistasi. +generalInfoStoring: Tietojasi ei tallenneta aktiivisen selainistunnon jälkeen, eikä sivusto käytä evästeitä. +generalInfoThirdParties: Tietoja ei lähetetä kolmansille osapuolille. +generalInfoHttps: Lähetämme tietosi turvallisesti https:n kautta. +generalInfoLocation: Palvelimemme sijaitsee Tuusulassa. +generalInfoGitHub: The source code of this site is available on +generalInfoLockScreen: Oletusarvoisesti Apple Wallet -passit ovat käytettävissä lukitusnäytöstä. Tämän voi muuttaa +settings: asetukissa +generalInfoProvider: | + Palveluntarjoaja käsittelee tietoja tämän sivuston tarjoamiseksi. + Jotta ymmärtäisit paremmin, mitä toimenpiteitä he toteuttavat tietojesi suojaamiseksi, lue myös heidän palveluntarjoajansa tiedot. +privacyPolicy: tietosuojakäytäntö +andThe: ja +dataPrivacyFaq: tietosuoja FAQ +contact: Yhteystiedot +email: Email +website: Verkkosivu +process: Prosessin yksinkertaistaminen +processFirst: Seuraavat vaiheet tapahtuvat ensin paikallisesti selaimessasi. +processSecond: Toiseksi palvelimellamme suoritetaan seuraavat vaiheet +processThird: Lopuksi seuraavat vaiheet tapahtuvat paikallisesti selaimessasi +processRecognizing: QR-koodin tietojen tunnistaminen ja poimiminen valitusta varmenteesta. +processDecoding: Henkilökohtaisten ja terveyteen liittyvien tietojen purkaminen QR-koodin hyötykuormasta. +processAssembling: Epätäydellisen syötetiedoston kokoaminen omista tiedoistasi +processGenerating: Luodaan tiedosto, joka sisältää passitiedostoon tallennettujen tietojen hashit. +processSending: Lähetetään palvelimellemme vain hasheja sisältävä tiedosto. +processReceiving: Paikallisesti luotujen hashien vastaanottaminen ja tarkistaminen. +processSigning: Hashit sisältävän tiedoston allekirjoittaminen +processSendingBack: Allekirjoituksen lähettäminen takaisin +processCompleting: Allekirjoitetun passitiedoston kokoaminen paikallisesti luodusta epätäydellisestä tiedostosta ja allekirjoituksesta. +processSaving: Tiedoston tallentaminen laitteeseen +locallyProcessedData: Paikallisesti käsitellyt tiedot +the: The +schema: Digitaalisen Covid-varmenteen skeema +specification: sisältää yksityiskohtaisen määrittelyn siitä, mitä tietoja QR-koodi voi sisältää ja mitä tietoja selaimesi käsittelee. +serverProvider: Palveluntarjoaja +serverProviderIs: Meidän palveluntarjoaja on +logFiles: Palvelimen lokitiedostoihin voidaan kerätä ja tallentaa seuraavia tietoja +logFilesBrowser: Käytetty selaintyyppi ja -versio +logFilesOs: Käyttöjärjestelmä +logFilesReferrer: Verkkosivusto, josta käyttäjä saapuu verkkosivustollemme (ns. viittaajat). +logFilesTime: Päivämäärä ja kellonaika +logFilesIpAddress: Pseudonymisoidut IP-osoitteet +rights: Sinun oikeutesi +rightsGranted: Yleisen tietosuoja-asetuksen mukaisesti sinulla on seuraavat oikeudet +rightsAccess: Oikeus tutustua tietoihin; Sinulla on oikeus tietää, mitä tietoja sinusta on kerätty ja miten niitä on käsitelty. +rightsErasure: Oikeus tulla unohdetuksi; henkilötietojesi poistaminen. +rightsRectification: Oikaisuoikeus; Sinulla on oikeus korjata virheelliset tiedot. +rightsPortability: Oikeus tietojen siirrettävyyteen; Sinulla on oikeus siirtää tietosi käsittelyjärjestelmästä toiseen. +thirdParties: Kolmannet osapuolet +appleSync: Apple saattaa synkronoida koronapassisi iCloudin kautta \ No newline at end of file From 8e38eb3550cb3b17a59e6bccd20c0ccfcf67d90c Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sat, 24 Jul 2021 22:56:42 +0200 Subject: [PATCH 04/12] Add camera access error message --- components/Alert.tsx | 2 +- components/Form.tsx | 13 ++++++++++++- public/locales/de/errors.yml | 3 ++- public/locales/en/errors.yml | 3 ++- public/locales/fi/errors.yml | 3 ++- public/locales/fr/errors.yml | 3 ++- public/locales/nl/errors.yml | 3 ++- 7 files changed, 23 insertions(+), 7 deletions(-) diff --git a/components/Alert.tsx b/components/Alert.tsx index 7ee7465..4fffdfb 100644 --- a/components/Alert.tsx +++ b/components/Alert.tsx @@ -10,7 +10,7 @@ function Alert(props: AlertProps): JSX.Element { return (
    - {props.errorMessage} + {props.errorMessage} diff --git a/components/Form.tsx b/components/Form.tsx index fee3978..65b8b91 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -29,6 +29,11 @@ function Form(): JSX.Element { // Check if there is a translation and replace message accordingly const setErrorMessage = (message: string) => { + if (message == undefined) { + _setErrorMessage(undefined); + return; + } + const translation = t('errors:'.concat(message)); _setErrorMessage(translation !== message ? translation : message); }; @@ -68,7 +73,13 @@ function Form(): JSX.Element { const codeReader = new BrowserQRCodeReader(); // Needs to be called before any camera can be accessed - await BrowserQRCodeReader.listVideoInputDevices(); + const deviceList = await BrowserQRCodeReader.listVideoInputDevices(); + + // Check access to camera device + if (deviceList.length == 0) { + setErrorMessage("noCameraAccess"); + return; + } // Get preview Element to show camera stream const previewElem: HTMLVideoElement = document.querySelector('#cameraPreview'); diff --git a/public/locales/de/errors.yml b/public/locales/de/errors.yml index 671a679..7760906 100644 --- a/public/locales/de/errors.yml +++ b/public/locales/de/errors.yml @@ -14,4 +14,5 @@ couldNotFindQrCode: QR-Code konnte in der ausgewählten Datei nicht gefunden wer invalidQrCode: Ungültiger QR-Code certificateType: Kein gültiger Zertifikatstyp gefunden invalidTestResult: Ungültiges Testergebnis -invalidTestType: Ungültiger Testtyp \ No newline at end of file +invalidTestType: Ungültiger Testtyp +noCameraAccess: Kein Zugriff auf die Kamera möglich. Überprüfe die Berechtigungen unter Einstellungen > Safari > Kamera. \ No newline at end of file diff --git a/public/locales/en/errors.yml b/public/locales/en/errors.yml index 828ec38..fa84e11 100644 --- a/public/locales/en/errors.yml +++ b/public/locales/en/errors.yml @@ -14,4 +14,5 @@ couldNotFindQrCode: Could not find QR Code in provided file invalidQrCode: Invalid QR code certificateType: No valid certificate type found invalidTestResult: Invalid test result -invalidTestType: Invalid test type \ No newline at end of file +invalidTestType: Invalid test type +noCameraAccess: Could not access camera. Check permissions under Settings > Safari > Camera. \ No newline at end of file diff --git a/public/locales/fi/errors.yml b/public/locales/fi/errors.yml index 8e7bbe2..2ea9638 100644 --- a/public/locales/fi/errors.yml +++ b/public/locales/fi/errors.yml @@ -14,4 +14,5 @@ couldNotFindQrCode: QR-koodia ei löytynyt annetusta tiedostosta invalidQrCode: Virheellinen QR-koodi certificateType: Kelvollista varmennetyyppiä ei löytynyt invalidTestResult: Virheellinen testitulos -invalidTestType: Virheellinen testityyppi \ No newline at end of file +invalidTestType: Virheellinen testityyppi +noCameraAccess: Kameraan ei päässyt käsiksi. Tarkista käyttöoikeudet kohdasta Asetukset > Safari > Kamera. \ No newline at end of file diff --git a/public/locales/fr/errors.yml b/public/locales/fr/errors.yml index 680e039..cdf690e 100644 --- a/public/locales/fr/errors.yml +++ b/public/locales/fr/errors.yml @@ -14,4 +14,5 @@ couldNotFindQrCode: Impossible de trouver le QR Code dans le fichier fourni invalidQrCode: QR Code non valide certificateType: Aucun type de certificat valide n'a été trouvé invalidTestResult: Résultat du test non valide -invalidTestType: Type de test non valide \ No newline at end of file +invalidTestType: Type de test non valide +noCameraAccess: Impossible d'accéder à la caméra. Vérifiez les autorisations sous Paramètres > Safari > Appareil photo. \ No newline at end of file diff --git a/public/locales/nl/errors.yml b/public/locales/nl/errors.yml index 1614c80..5b92d4a 100644 --- a/public/locales/nl/errors.yml +++ b/public/locales/nl/errors.yml @@ -14,4 +14,5 @@ couldNotFindQrCode: Kon de QR-code niet vinden in het verstrekte bestand invalidQrCode: Ongeldige QR-code certificateType: Geen geldig certificaattype gevonden invalidTestResult: Ongeldig testresultaat -invalidTestType: Ongeldig testtype \ No newline at end of file +invalidTestType: Ongeldig testtype +noCameraAccess: Kon geen toegang krijgen tot de camera. Controleer de machtigingen onder Instellingen > Safari > Camera. \ No newline at end of file From af77280202eeb78c0eca965e0e7e205717c6b5f1 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 01:19:10 +0200 Subject: [PATCH 05/12] Improve pass fields and add fallback romanization --- components/Form.tsx | 2 +- src/payload.ts | 115 ++++++++++++++++++++++++-------------------- tsconfig.json | 2 +- 3 files changed, 65 insertions(+), 54 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index 65b8b91..f7aa891 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -239,7 +239,7 @@ function Form(): JSX.Element { {t('index:addToWallet')}
    - + Date: Sun, 25 Jul 2021 01:23:12 +0200 Subject: [PATCH 06/12] Use es5 --- tsconfig.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 60cf981..35d51ea 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "target": "ES2018", + "target": "es5", "lib": [ "dom", "dom.iterable", From f291dcb76648eeec2ec3051c7d43f19f56cf3728 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 01:37:58 +0200 Subject: [PATCH 07/12] Differentiate camera access and permissions --- components/Form.tsx | 8 ++++++++ public/locales/en/errors.yml | 3 ++- public/locales/fi/errors.yml | 3 ++- public/locales/fr/errors.yml | 3 ++- public/locales/nl/errors.yml | 3 ++- 5 files changed, 16 insertions(+), 4 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index f7aa891..9e2932e 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -77,6 +77,14 @@ function Form(): JSX.Element { // Check access to camera device if (deviceList.length == 0) { + setErrorMessage("noCameraFound"); + return; + } + + // Check permissions to camera device + try { + navigator.mediaDevices.getUserMedia({video: true}); + } catch (e) { setErrorMessage("noCameraAccess"); return; } diff --git a/public/locales/en/errors.yml b/public/locales/en/errors.yml index fa84e11..cfea084 100644 --- a/public/locales/en/errors.yml +++ b/public/locales/en/errors.yml @@ -15,4 +15,5 @@ invalidQrCode: Invalid QR code certificateType: No valid certificate type found invalidTestResult: Invalid test result invalidTestType: Invalid test type -noCameraAccess: Could not access camera. Check permissions under Settings > Safari > Camera. \ No newline at end of file +noCameraAccess: Could not access camera. Check permissions under Settings > Safari > Camera. +noCameraFound: Could not find camera. \ No newline at end of file diff --git a/public/locales/fi/errors.yml b/public/locales/fi/errors.yml index 2ea9638..7159ffe 100644 --- a/public/locales/fi/errors.yml +++ b/public/locales/fi/errors.yml @@ -15,4 +15,5 @@ invalidQrCode: Virheellinen QR-koodi certificateType: Kelvollista varmennetyyppiä ei löytynyt invalidTestResult: Virheellinen testitulos invalidTestType: Virheellinen testityyppi -noCameraAccess: Kameraan ei päässyt käsiksi. Tarkista käyttöoikeudet kohdasta Asetukset > Safari > Kamera. \ No newline at end of file +noCameraAccess: Kameraan ei päässyt käsiksi. Tarkista käyttöoikeudet kohdasta Asetukset > Safari > Kamera. +noCameraFound: En löytänyt kameraa. \ No newline at end of file diff --git a/public/locales/fr/errors.yml b/public/locales/fr/errors.yml index cdf690e..4b6e6fc 100644 --- a/public/locales/fr/errors.yml +++ b/public/locales/fr/errors.yml @@ -15,4 +15,5 @@ invalidQrCode: QR Code non valide certificateType: Aucun type de certificat valide n'a été trouvé invalidTestResult: Résultat du test non valide invalidTestType: Type de test non valide -noCameraAccess: Impossible d'accéder à la caméra. Vérifiez les autorisations sous Paramètres > Safari > Appareil photo. \ No newline at end of file +noCameraAccess: Impossible d'accéder à la caméra. Vérifiez les autorisations sous Paramètres > Safari > Appareil photo. +noCameraFound: Impossible de trouver la caméra. \ No newline at end of file diff --git a/public/locales/nl/errors.yml b/public/locales/nl/errors.yml index 5b92d4a..cf7f86e 100644 --- a/public/locales/nl/errors.yml +++ b/public/locales/nl/errors.yml @@ -15,4 +15,5 @@ invalidQrCode: Ongeldige QR-code certificateType: Geen geldig certificaattype gevonden invalidTestResult: Ongeldig testresultaat invalidTestType: Ongeldig testtype -noCameraAccess: Kon geen toegang krijgen tot de camera. Controleer de machtigingen onder Instellingen > Safari > Camera. \ No newline at end of file +noCameraAccess: Kon geen toegang krijgen tot de camera. Controleer de machtigingen onder Instellingen > Safari > Camera. +noCameraFound: Ik kon de camera niet vinden. \ No newline at end of file From dbd076ae2112e641e9e5a8cabd5c1ddae718dbb8 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 01:39:31 +0200 Subject: [PATCH 08/12] Fix German error description --- public/locales/de/errors.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/public/locales/de/errors.yml b/public/locales/de/errors.yml index 7760906..84f374f 100644 --- a/public/locales/de/errors.yml +++ b/public/locales/de/errors.yml @@ -15,4 +15,5 @@ invalidQrCode: Ungültiger QR-Code certificateType: Kein gültiger Zertifikatstyp gefunden invalidTestResult: Ungültiges Testergebnis invalidTestType: Ungültiger Testtyp -noCameraAccess: Kein Zugriff auf die Kamera möglich. Überprüfe die Berechtigungen unter Einstellungen > Safari > Kamera. \ No newline at end of file +noCameraAccess: Kein Zugriff auf die Kamera möglich. Überprüfe die Berechtigungen unter Einstellungen > Safari > Kamera. +noCameraFound: Keine Kamera gefunden. \ No newline at end of file From 36e080cb3504cbcc685b35cd42a927e61fe00c80 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 01:53:02 +0200 Subject: [PATCH 09/12] Handle camera errors --- components/Form.tsx | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index 9e2932e..6115285 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -81,14 +81,6 @@ function Form(): JSX.Element { return; } - // Check permissions to camera device - try { - navigator.mediaDevices.getUserMedia({video: true}); - } catch (e) { - setErrorMessage("noCameraAccess"); - return; - } - // Get preview Element to show camera stream const previewElem: HTMLVideoElement = document.querySelector('#cameraPreview'); @@ -108,6 +100,9 @@ function Form(): JSX.Element { setGlobalControls(undefined); setIsCameraOpen(false); } + if (error !== undefined) { + setErrorMessage("noCameraAccess"); + } } ) ); From d93801501e31f68b01aca87f40477cbb22d7068d Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 02:14:09 +0200 Subject: [PATCH 10/12] Error to enforce Safari --- components/Form.tsx | 17 +++++++++++++++-- public/locales/de/errors.yml | 3 ++- public/locales/en/errors.yml | 3 ++- public/locales/fi/errors.yml | 3 ++- public/locales/fr/errors.yml | 3 ++- public/locales/nl/errors.yml | 3 ++- 6 files changed, 25 insertions(+), 7 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index 6115285..05e6b47 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -73,7 +73,14 @@ function Form(): JSX.Element { const codeReader = new BrowserQRCodeReader(); // Needs to be called before any camera can be accessed - const deviceList = await BrowserQRCodeReader.listVideoInputDevices(); + let deviceList: MediaDeviceInfo[]; + + try { + deviceList = await BrowserQRCodeReader.listVideoInputDevices(); + } catch (e) { + setErrorMessage('noCameraAccess'); + return; + } // Check access to camera device if (deviceList.length == 0) { @@ -101,7 +108,7 @@ function Form(): JSX.Element { setIsCameraOpen(false); } if (error !== undefined) { - setErrorMessage("noCameraAccess"); + setErrorMessage(error.message); } } ) @@ -115,6 +122,12 @@ function Form(): JSX.Element { event.preventDefault(); setLoading(true); + if(navigator.userAgent.match('CriOS')) { + setErrorMessage('safariSupportOnly'); + setLoading(false); + return; + } + if (!file && !qrCode) { setErrorMessage('noFileOrQrCode') setLoading(false); diff --git a/public/locales/de/errors.yml b/public/locales/de/errors.yml index 84f374f..6933e7a 100644 --- a/public/locales/de/errors.yml +++ b/public/locales/de/errors.yml @@ -16,4 +16,5 @@ certificateType: Kein gültiger Zertifikatstyp gefunden invalidTestResult: Ungültiges Testergebnis invalidTestType: Ungültiger Testtyp noCameraAccess: Kein Zugriff auf die Kamera möglich. Überprüfe die Berechtigungen unter Einstellungen > Safari > Kamera. -noCameraFound: Keine Kamera gefunden. \ No newline at end of file +noCameraFound: Keine Kamera gefunden. +safariSupportOnly: Bitte verwende unter iOS den Safari Browser. \ No newline at end of file diff --git a/public/locales/en/errors.yml b/public/locales/en/errors.yml index cfea084..0dcc155 100644 --- a/public/locales/en/errors.yml +++ b/public/locales/en/errors.yml @@ -16,4 +16,5 @@ certificateType: No valid certificate type found invalidTestResult: Invalid test result invalidTestType: Invalid test type noCameraAccess: Could not access camera. Check permissions under Settings > Safari > Camera. -noCameraFound: Could not find camera. \ No newline at end of file +noCameraFound: Could not find camera. +safariSupportOnly: On iOS, please use the Safari Browser. \ No newline at end of file diff --git a/public/locales/fi/errors.yml b/public/locales/fi/errors.yml index 7159ffe..35ab1fd 100644 --- a/public/locales/fi/errors.yml +++ b/public/locales/fi/errors.yml @@ -16,4 +16,5 @@ certificateType: Kelvollista varmennetyyppiä ei löytynyt invalidTestResult: Virheellinen testitulos invalidTestType: Virheellinen testityyppi noCameraAccess: Kameraan ei päässyt käsiksi. Tarkista käyttöoikeudet kohdasta Asetukset > Safari > Kamera. -noCameraFound: En löytänyt kameraa. \ No newline at end of file +noCameraFound: En löytänyt kameraa. +safariSupportOnly: Käytä iOS:ssä Safari-selainta. \ No newline at end of file diff --git a/public/locales/fr/errors.yml b/public/locales/fr/errors.yml index 4b6e6fc..dc3119e 100644 --- a/public/locales/fr/errors.yml +++ b/public/locales/fr/errors.yml @@ -16,4 +16,5 @@ certificateType: Aucun type de certificat valide n'a été trouvé invalidTestResult: Résultat du test non valide invalidTestType: Type de test non valide noCameraAccess: Impossible d'accéder à la caméra. Vérifiez les autorisations sous Paramètres > Safari > Appareil photo. -noCameraFound: Impossible de trouver la caméra. \ No newline at end of file +noCameraFound: Impossible de trouver la caméra. +safariSupportOnly: Sur iOS, veuillez utiliser le navigateur Safari. \ No newline at end of file diff --git a/public/locales/nl/errors.yml b/public/locales/nl/errors.yml index cf7f86e..1677032 100644 --- a/public/locales/nl/errors.yml +++ b/public/locales/nl/errors.yml @@ -16,4 +16,5 @@ certificateType: Geen geldig certificaattype gevonden invalidTestResult: Ongeldig testresultaat invalidTestType: Ongeldig testtype noCameraAccess: Kon geen toegang krijgen tot de camera. Controleer de machtigingen onder Instellingen > Safari > Camera. -noCameraFound: Ik kon de camera niet vinden. \ No newline at end of file +noCameraFound: Ik kon de camera niet vinden. +safariSupportOnly: Gebruik op iOS de Safari-browser. \ No newline at end of file From dc01566096de3d05aa83b82381ab888503c5abe2 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 02:25:39 +0200 Subject: [PATCH 11/12] Try other option for camera error --- components/Form.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/components/Form.tsx b/components/Form.tsx index 05e6b47..66549c5 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -70,7 +70,14 @@ function Form(): JSX.Element { // Show camera view async function showCameraView() { // Create new QR Code Reader - const codeReader = new BrowserQRCodeReader(); + let codeReader: BrowserQRCodeReader; + + try { + codeReader = new BrowserQRCodeReader(); + } catch (e) { + setErrorMessage('noCameraAccess'); + return; + } // Needs to be called before any camera can be accessed let deviceList: MediaDeviceInfo[]; From 4eb2dda807b05cccae03475828e7dc724e41cb23 Mon Sep 17 00:00:00 2001 From: Marvin Sextro Date: Sun, 25 Jul 2021 02:32:28 +0200 Subject: [PATCH 12/12] Simplify error handling --- components/Form.tsx | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/components/Form.tsx b/components/Form.tsx index 66549c5..e053b42 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -70,14 +70,7 @@ function Form(): JSX.Element { // Show camera view async function showCameraView() { // Create new QR Code Reader - let codeReader: BrowserQRCodeReader; - - try { - codeReader = new BrowserQRCodeReader(); - } catch (e) { - setErrorMessage('noCameraAccess'); - return; - } + const codeReader = new BrowserQRCodeReader(); // Needs to be called before any camera can be accessed let deviceList: MediaDeviceInfo[]; @@ -89,7 +82,7 @@ function Form(): JSX.Element { return; } - // Check access to camera device + // Check if camera device is present if (deviceList.length == 0) { setErrorMessage("noCameraFound"); return;