Compare commits
17 Commits
ecaa891a40
...
240f73ab5f
Author | SHA1 | Date |
---|---|---|
Marvin Sextro | 240f73ab5f | |
Marvin Sextro | d07c6ae232 | |
Marvin Sextro | 0c0ddf2a47 | |
Marvin Sextro | 22c00b4052 | |
Marvin Sextro | 790bdf4494 | |
Marvin Sextro | 1aee8b8d86 | |
nilaallj | 9b0a0a4b81 | |
Marvin Sextro | 50d3830fec | |
Hauke Tönjes | 586811c55c | |
Marvin Sextro | 4f749442d6 | |
Marvin Sextro | c8897532da | |
Hauke Tönjes | cc7fddb2af | |
Marvin Sextro | 8cd341d3ce | |
Mikael Bendiksen | 980da14ef7 | |
Mikael Bendiksen | 5281ff52ca | |
Marvin Sextro | de82c494ad | |
Marvin Sextro | 7a9197be85 |
|
@ -1,24 +1,22 @@
|
||||||
import {useTranslation} from 'next-i18next';
|
|
||||||
|
|
||||||
interface AlertProps {
|
interface AlertProps {
|
||||||
onClose: () => void;
|
onClose: () => void;
|
||||||
errorMessage: string;
|
message: string;
|
||||||
|
isWarning: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Alert(props: AlertProps): JSX.Element {
|
function Alert(props: AlertProps): JSX.Element {
|
||||||
const { t } = useTranslation(['index', 'errors']);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="bg-red-100 border border-red-400 text-red-700 px-4 py-3 mt-5 rounded relative" role="alert">
|
<div className={`${props.isWarning ? "bg-yellow-100 border border-yellow-400 text-yellow-700" : "bg-red-100 border border-red-400 text-red-700"} px-4 py-3 mt-5 rounded-md relative flex justify-between items-center`} role="alert">
|
||||||
<span className="block sm:inline pr-6" id="message">{props.errorMessage}</span>
|
<span className={`${props.isWarning ? "" : "pr-7"} block sm:inline text-lg`} id="message">{props.message}</span>
|
||||||
<span className="absolute top-0 bottom-0 right-0 px-4 py-3" onClick={props.onClose}>
|
{
|
||||||
<svg className="fill-current h-6 w-6 text-red-500" role="button" xmlns="http://www.w3.org/2000/svg"
|
!props.isWarning &&
|
||||||
viewBox="0 0 20 20">
|
<span className="absolute top-0 right-0 p-1 m-2" onClick={props.onClose}>
|
||||||
<title>{t('index:errorClose')}</title>
|
<svg className="text-red-500 fill-current h-6 w-6" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
<path
|
<path fill="currentColor"
|
||||||
d="M14.348 14.849a1.2 1.2 0 0 1-1.697 0L10 11.819l-2.651 3.029a1.2 1.2 0 1 1-1.697-1.697l2.758-3.15-2.759-3.152a1.2 1.2 0 1 1 1.697-1.697L10 8.183l2.651-3.031a1.2 1.2 0 1 1 1.697 1.697l-2.758 3.152 2.758 3.15a1.2 1.2 0 0 1 0 1.698z"/>
|
d="M6.2253 4.81108C5.83477 4.42056 5.20161 4.42056 4.81108 4.81108C4.42056 5.20161 4.42056 5.83477 4.81108 6.2253L10.5858 12L4.81114 17.7747C4.42062 18.1652 4.42062 18.7984 4.81114 19.1889C5.20167 19.5794 5.83483 19.5794 6.22535 19.1889L12 13.4142L17.7747 19.1889C18.1652 19.5794 18.7984 19.5794 19.1889 19.1889C19.5794 18.7984 19.5794 18.1652 19.1889 17.7747L13.4142 12L19.189 6.2253C19.5795 5.83477 19.5795 5.20161 19.189 4.81108C18.7985 4.42056 18.1653 4.42056 17.7748 4.81108L12 10.5858L6.2253 4.81108Z" />
|
||||||
</svg>
|
</svg>
|
||||||
</span>
|
</span>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +1,8 @@
|
||||||
import {useTranslation} from 'next-i18next';
|
|
||||||
|
|
||||||
interface CheckProps {
|
interface CheckProps {
|
||||||
text: string;
|
text: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
function Check(props: CheckProps): JSX.Element {
|
function Check(props: CheckProps): JSX.Element {
|
||||||
const { t } = useTranslation(["index"]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li className="flex flex-row space-x-4 items-center">
|
<li className="flex flex-row space-x-4 items-center">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" className="h-5 w-5 mx-2 fill-current text-green-500" viewBox="0 0 20 20" fill="currentColor">
|
<svg xmlns="http://www.w3.org/2000/svg" className="h-5 w-5 mx-2 fill-current text-green-500" viewBox="0 0 20 20" fill="currentColor">
|
||||||
|
|
|
@ -60,6 +60,21 @@ function Form(): JSX.Element {
|
||||||
}
|
}
|
||||||
}, [inputFile])
|
}, [inputFile])
|
||||||
|
|
||||||
|
// Whether Safari is used or not
|
||||||
|
let [isSafari, setIsSafari] = useState<boolean>(false);
|
||||||
|
|
||||||
|
// Check if Safari is used
|
||||||
|
useEffect(() => {
|
||||||
|
const navigator = window.navigator;
|
||||||
|
setIsSafari(
|
||||||
|
navigator.vendor &&
|
||||||
|
navigator.vendor.indexOf('Apple') > -1 &&
|
||||||
|
navigator.userAgent &&
|
||||||
|
navigator.userAgent.indexOf('CriOS') == -1 &&
|
||||||
|
navigator.userAgent.indexOf('FxiOS') == -1
|
||||||
|
)
|
||||||
|
}, []);
|
||||||
|
|
||||||
// Show file Dialog
|
// Show file Dialog
|
||||||
async function showFileDialog() {
|
async function showFileDialog() {
|
||||||
inputFile.current.click();
|
inputFile.current.click();
|
||||||
|
@ -102,7 +117,7 @@ function Form(): JSX.Element {
|
||||||
// Start decoding from video device
|
// Start decoding from video device
|
||||||
await codeReader.decodeFromVideoDevice(undefined,
|
await codeReader.decodeFromVideoDevice(undefined,
|
||||||
previewElem,
|
previewElem,
|
||||||
(result, error, controls) => {
|
(result, _error, controls) => {
|
||||||
if (result !== undefined) {
|
if (result !== undefined) {
|
||||||
setQrCode(result);
|
setQrCode(result);
|
||||||
setFile(undefined);
|
setFile(undefined);
|
||||||
|
@ -113,9 +128,6 @@ function Form(): JSX.Element {
|
||||||
setGlobalControls(undefined);
|
setGlobalControls(undefined);
|
||||||
setIsCameraOpen(false);
|
setIsCameraOpen(false);
|
||||||
}
|
}
|
||||||
if (error !== undefined) {
|
|
||||||
setErrorMessage(error.message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
@ -164,6 +176,9 @@ function Form(): JSX.Element {
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<form className="space-y-5" id="form" onSubmit={addToWallet}>
|
<form className="space-y-5" id="form" onSubmit={addToWallet}>
|
||||||
|
{
|
||||||
|
!isSafari && <Alert isWarning={true} message={t('iosHint')} onClose={() => {}}/>
|
||||||
|
}
|
||||||
<Card step="1" heading={t('index:selectCertificate')} content={
|
<Card step="1" heading={t('index:selectCertificate')} content={
|
||||||
<div className="space-y-5">
|
<div className="space-y-5">
|
||||||
<p>{t('index:selectCertificateDescription')}</p>
|
<p>{t('index:selectCertificateDescription')}</p>
|
||||||
|
@ -171,13 +186,13 @@ function Form(): JSX.Element {
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={isCameraOpen ? hideCameraView : showCameraView}
|
onClick={isCameraOpen ? hideCameraView : showCameraView}
|
||||||
className="focus:outline-none h-20 bg-gray-500 hover:bg-gray-700 text-white font-semibold rounded-md">
|
className="focus:outline-none h-20 bg-gray-400 dark:bg-gray-600 hover:bg-gray-500 text-white font-semibold rounded-md">
|
||||||
{isCameraOpen ? t('index:stopCamera') : t('index:startCamera')}
|
{isCameraOpen ? t('index:stopCamera') : t('index:startCamera')}
|
||||||
</button>
|
</button>
|
||||||
<button
|
<button
|
||||||
type="button"
|
type="button"
|
||||||
onClick={showFileDialog}
|
onClick={showFileDialog}
|
||||||
className="focus:outline-none h-20 bg-gray-500 hover:bg-gray-700 text-white font-semibold rounded-md">
|
className="focus:outline-none h-20 bg-gray-400 dark:bg-gray-600 hover:bg-gray-500 text-white font-semibold rounded-md">
|
||||||
{t('index:openFile')}
|
{t('index:openFile')}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -195,7 +210,7 @@ function Form(): JSX.Element {
|
||||||
<div className="flex items-center space-x-1">
|
<div className="flex items-center space-x-1">
|
||||||
<svg className="h-4 w-4 text-green-600" fill="none" viewBox="0 0 24 24"
|
<svg className="h-4 w-4 text-green-600" fill="none" viewBox="0 0 24 24"
|
||||||
stroke="currentColor">
|
stroke="currentColor">
|
||||||
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="2" d="M9 5l7 7-7 7"/>
|
<path strokeLinecap="round" strokeLinejoin="round" strokeWidth="3" d="M9 5l7 7-7 7"/>
|
||||||
</svg>
|
</svg>
|
||||||
<span className="w-full truncate">
|
<span className="w-full truncate">
|
||||||
{
|
{
|
||||||
|
@ -264,7 +279,7 @@ function Form(): JSX.Element {
|
||||||
</form>
|
</form>
|
||||||
<canvas id="canvas" style={{display: "none"}}/>
|
<canvas id="canvas" style={{display: "none"}}/>
|
||||||
{
|
{
|
||||||
errorMessage && <Alert errorMessage={errorMessage} onClose={() => setErrorMessage(undefined)}/>
|
errorMessage && <Alert isWarning={false} message={errorMessage} onClose={() => setErrorMessage(undefined)}/>
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
|
|
|
@ -24,7 +24,7 @@ function Page(props: PageProps): JSX.Element {
|
||||||
{props.content}
|
{props.content}
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
<nav className="nav flex pt-4 flex-row space-x-4 justify-center text-md font-bold flex-wrap">
|
<nav className="nav flex flex-row space-x-4 justify-center text-md font-bold flex-wrap">
|
||||||
<a href="https://ko-fi.com/marvinsxtr" className="hover:underline">{t('common:donate')}</a>
|
<a href="https://ko-fi.com/marvinsxtr" className="hover:underline">{t('common:donate')}</a>
|
||||||
<a href="https://github.com/marvinsxtr/covidpass" className="hover:underline">{t('common:gitHub')}</a>
|
<a href="https://github.com/marvinsxtr/covidpass" className="hover:underline">{t('common:gitHub')}</a>
|
||||||
<Link href="/privacy"><a className="hover:underline">{t('common:privacyPolicy')}</a></Link>
|
<Link href="/privacy"><a className="hover:underline">{t('common:privacyPolicy')}</a></Link>
|
||||||
|
|
|
@ -1,6 +1,3 @@
|
||||||
/// <reference types="next" />
|
/// <reference types="next" />
|
||||||
/// <reference types="next/types/global" />
|
/// <reference types="next/types/global" />
|
||||||
/// <reference types="next/image-types/global" />
|
/// <reference types="next/image-types/global" />
|
||||||
|
|
||||||
// NOTE: This file should not be edited
|
|
||||||
// see https://nextjs.org/docs/basic-features/typescript for more information.
|
|
||||||
|
|
|
@ -9,7 +9,10 @@ module.exports = {
|
||||||
'fi', 'fi-FI',
|
'fi', 'fi-FI',
|
||||||
'el', 'el-GR', 'el-CY',
|
'el', 'el-GR', 'el-CY',
|
||||||
'it', 'it-IT', 'it-CH',
|
'it', 'it-IT', 'it-CH',
|
||||||
'es', 'es-ES'
|
'es', 'es-ES',
|
||||||
|
'no', 'no-NO',
|
||||||
|
'nb', 'nb-NO',
|
||||||
|
'sv', 'sv-SE', 'sv-FI'
|
||||||
],
|
],
|
||||||
localeExtension: 'yml',
|
localeExtension: 'yml',
|
||||||
},
|
},
|
||||||
|
|
|
@ -17,7 +17,7 @@
|
||||||
"do-not-zip": "^1.0.0",
|
"do-not-zip": "^1.0.0",
|
||||||
"file-saver": "^2.0.5",
|
"file-saver": "^2.0.5",
|
||||||
"jsqr": "^1.4.0",
|
"jsqr": "^1.4.0",
|
||||||
"next": "^11.1.0",
|
"next": "12",
|
||||||
"next-i18next": "^8.5.1",
|
"next-i18next": "^8.5.1",
|
||||||
"next-seo": "^4.26.0",
|
"next-seo": "^4.26.0",
|
||||||
"node-fetch": "^2.6.1",
|
"node-fetch": "^2.6.1",
|
||||||
|
|
|
@ -12,14 +12,10 @@ function Imprint(): JSX.Element {
|
||||||
<Card step="§" heading={t('common:imprint')} content={
|
<Card step="§" heading={t('common:imprint')} content={
|
||||||
<div className="space-y-3">
|
<div className="space-y-3">
|
||||||
<p className="font-bold">{t('imprint:heading')}</p>
|
<p className="font-bold">{t('imprint:heading')}</p>
|
||||||
<p>
|
<p>Marvin Sextro</p>
|
||||||
Marvin Sextro<br />
|
|
||||||
Wilhelm-Busch-Str. 8A<br />
|
|
||||||
30167 Hannover<br />
|
|
||||||
</p>
|
|
||||||
<p className="font-bold">{t('imprint:contact')}</p>
|
<p className="font-bold">{t('imprint:contact')}</p>
|
||||||
<p>
|
<p>
|
||||||
<a href="mailto:marvin.sextro@gmail.com" className="underline">marvin.sextro@gmail.com</a>
|
<a href="mailto:covidpass@marvinsextro.de" className="underline">covidpass@marvinsextro.de</a>
|
||||||
</p>
|
</p>
|
||||||
<p className="font-bold">{t('imprint:euDisputeResolution')}</p>
|
<p className="font-bold">{t('imprint:euDisputeResolution')}</p>
|
||||||
<p>{t('imprint:euDisputeResolutionParagraph')}</p>
|
<p>{t('imprint:euDisputeResolutionParagraph')}</p>
|
||||||
|
|
|
@ -40,9 +40,8 @@ function Index(): JSX.Element {
|
||||||
<Page content={
|
<Page content={
|
||||||
<div className="space-y-5">
|
<div className="space-y-5">
|
||||||
<Card content={
|
<Card content={
|
||||||
<p>{t('common:subtitle')} {t('index:iosHint')}</p>
|
<p>{t('common:subtitle')}</p>
|
||||||
}/>
|
}/>
|
||||||
|
|
||||||
<Form/>
|
<Form/>
|
||||||
</div>
|
</div>
|
||||||
}/>
|
}/>
|
||||||
|
|
|
@ -49,12 +49,11 @@ function Privacy(): JSX.Element {
|
||||||
</div>
|
</div>
|
||||||
<p className="font-bold">{t('privacy:contact')}</p>
|
<p className="font-bold">{t('privacy:contact')}</p>
|
||||||
<p>
|
<p>
|
||||||
Marvin Sextro<br/>
|
Marvin Sextro
|
||||||
Wilhelm-Busch-Str. 8A<br/>
|
<br/>
|
||||||
30167 Hannover<br/>
|
|
||||||
{t('privacy:email')}:
|
{t('privacy:email')}:
|
||||||
|
|
||||||
<a href="mailto:marvin.sextro@gmail.com">marvin.sextro@gmail.com</a>
|
<a href="mailto:covidpass@marvinsextro.de" className="underline">covidpass@marvinsextro.de</a>
|
||||||
<br/>
|
<br/>
|
||||||
{t('privacy:website')}:
|
{t('privacy:website')}:
|
||||||
|
|
||||||
|
@ -137,9 +136,9 @@ function Privacy(): JSX.Element {
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
PayPal:
|
Ko-fi:
|
||||||
|
|
||||||
<a href="https://www.paypal.com/de/webapps/mpp/ua/privacy-full?locale.x=en_EN" className="underline">
|
<a href="https://more.ko-fi.com/privacy" className="underline">
|
||||||
{t('common:privacyPolicy')}
|
{t('common:privacyPolicy')}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Bitte verwende unter iOS den Safari Browser.
|
iosHint: Bitte verwende unter iOS den Safari Browser.
|
||||||
errorClose: Schließen
|
errorClose: Schließen
|
||||||
selectCertificate: Zertifikat auswählen
|
selectCertificate: Zertifikat auswählen
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Scanne den QR-Code auf Deinem Zertifikat oder wähle einen Screenshot oder eine PDF-Datei mit dem QR-Code.
|
||||||
Scanne den QR-Code auf Deinem Zertifikat oder wähle einen Screenshot oder eine PDF-Datei mit dem QR-Code.
|
|
||||||
Bitte beachte, dass die Auswahl einer Datei direkt von der Kamera nicht unterstützt wird.
|
|
||||||
stopCamera: Kamera stoppen
|
stopCamera: Kamera stoppen
|
||||||
startCamera: Kamera starten
|
startCamera: Kamera starten
|
||||||
openFile: Datei auswählen
|
openFile: Datei auswählen
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Στο iOS, παρακαλώ χρησιμοποιήστε τον περιηγητή Safari.
|
iosHint: Στο iOS, παρακαλώ χρησιμοποιήστε τον περιηγητή Safari.
|
||||||
errorClose: Κλείσιμο
|
errorClose: Κλείσιμο
|
||||||
selectCertificate: Επιλογή Πιστοποιητικού
|
selectCertificate: Επιλογή Πιστοποιητικού
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Παρακαλώ σαρώστε τον κωδικό QR του πιστοποιητικού σας ή επιλέξτε ένα στιγμιότυπο οθόνης ή την σελίδα PDF με τον κωδικό QR.
|
||||||
Παρακαλώ σαρώστε τον κωδικό QR του πιστοποιητικού σας ή επιλέξτε ένα στιγμιότυπο οθόνης ή την σελίδα PDF με τον κωδικό QR.
|
|
||||||
Λάβετε υπόψη πως η απευθείας επιλογή κάποιου αρχείου μέσω της κάμερας, δεν υποστηρίζεται.
|
|
||||||
stopCamera: Τερματισμός Κάμερας
|
stopCamera: Τερματισμός Κάμερας
|
||||||
startCamera: Εκκίνηση Κάμερας
|
startCamera: Εκκίνηση Κάμερας
|
||||||
openFile: Επιλογή Αρχείου
|
openFile: Επιλογή Αρχείου
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: On iOS, please use the Safari Browser.
|
iosHint: On iOS, please use the Safari Browser.
|
||||||
errorClose: Close
|
errorClose: Close
|
||||||
selectCertificate: Select Certificate
|
selectCertificate: Select Certificate
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Please scan the QR code on your certificate or select a screenshot or PDF page with the QR code.
|
||||||
Please scan the QR code on your certificate or select a screenshot or PDF page with the QR code.
|
|
||||||
Note that selecting a file directly from camera is not supported.
|
|
||||||
stopCamera: Stop Camera
|
stopCamera: Stop Camera
|
||||||
startCamera: Start Camera
|
startCamera: Start Camera
|
||||||
openFile: Select File
|
openFile: Select File
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: En iOS, Por favor use el navegador Safari.
|
iosHint: En iOS, Por favor use el navegador Safari.
|
||||||
errorClose: Cerrar
|
errorClose: Cerrar
|
||||||
selectCertificate: Seleccione Certificado
|
selectCertificate: Seleccione Certificado
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Escanee el código QR de su certificado, o seleccione una captura de pantalla o un PDF que contenga el código QR.
|
||||||
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
|
stopCamera: Detener Cámara
|
||||||
startCamera: Iniciar Cámara
|
startCamera: Iniciar Cámara
|
||||||
openFile: Seleccione archivo
|
openFile: Seleccione archivo
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Käytä iOS:ssä Safari-selainta.
|
iosHint: Käytä iOS:ssä Safari-selainta.
|
||||||
errorClose: Sulje
|
errorClose: Sulje
|
||||||
selectCertificate: Valitse todistus
|
selectCertificate: Valitse todistus
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Skannaa todistuksessa oleva QR-koodi tai valitse kuvakaappaus tai PDF-sivu, jossa on QR-koodi.
|
||||||
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
|
stopCamera: Lopeta Kamera
|
||||||
startCamera: Käynnistä Kamera
|
startCamera: Käynnistä Kamera
|
||||||
openFile: Valitse Tiedosto
|
openFile: Valitse Tiedosto
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Sur iOS, veuillez utiliser le navigateur Safari.
|
iosHint: Sur iOS, veuillez utiliser le navigateur Safari.
|
||||||
errorClose: Fermez
|
errorClose: Fermez
|
||||||
selectCertificate: Sélectionner le certificat
|
selectCertificate: Sélectionner le certificat
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Veuillez scanner le QR Code de votre certificat ou sélectionner une capture d'écran ou une page PDF avec le QR Code.
|
||||||
Veuillez scanner le QR Code de votre certificat ou sélectionner une capture d'écran ou une page PDF avec le QR Code.
|
|
||||||
Notez que la sélection d'un fichier directement à partir de l'appareil photo n'est pas prise en charge.
|
|
||||||
stopCamera: Arrêter l'appareil photo
|
stopCamera: Arrêter l'appareil photo
|
||||||
startCamera: Démarrer l'appareil photo
|
startCamera: Démarrer l'appareil photo
|
||||||
openFile: Sélectionner un fichier
|
openFile: Sélectionner un fichier
|
||||||
|
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Su iOS, si prega di utilizzare il browser Safari.
|
iosHint: Su iOS, si prega di utilizzare il browser Safari.
|
||||||
errorClose: Chiudi
|
errorClose: Chiudi
|
||||||
selectCertificate: Seleziona il certificato
|
selectCertificate: Seleziona il certificato
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Scannerizza il codice QR sul tuo certificato o seleziona uno screenshot o una pagina PDF con il codice QR.
|
||||||
Scannerizza il codice QR sul tuo certificato o seleziona uno screenshot o una pagina PDF con il codice QR.
|
|
||||||
Nota che la selezione di un file direttamente dalla fotocamera non è supportata.
|
|
||||||
stopCamera: Blocca Fotocamera
|
stopCamera: Blocca Fotocamera
|
||||||
startCamera: Avvia Fotocamera
|
startCamera: Avvia Fotocamera
|
||||||
openFile: Seleziona un File
|
openFile: Seleziona un File
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
nb
|
|
@ -0,0 +1,6 @@
|
||||||
|
title: CovidPass
|
||||||
|
subtitle: Legg til EUs digitale COVID -sertifikater i favorittlommebokappene dine.
|
||||||
|
privacyPolicy: Privacy Policy
|
||||||
|
donate: Sponsor
|
||||||
|
gitHub: GitHub
|
||||||
|
imprint: Avtrykk
|
|
@ -0,0 +1,20 @@
|
||||||
|
noFileOrQrCode: Vennligst skann en QR-kode, eller velg en fil
|
||||||
|
signatureFailed: Feil under signering av pass på server
|
||||||
|
decodingFailed: Kunne ikke dekode nyttelast for QR-kode
|
||||||
|
invalidColor: Ugyldig farge
|
||||||
|
certificateData: Kunne ikke lese sertifikatdata
|
||||||
|
nameMissing: Kunne ikke lese navnet
|
||||||
|
dobMissing: Kunne ikke lese fødselsdatoen
|
||||||
|
invalidMedicalProduct: Ugyldig medisinsk produkt
|
||||||
|
invalidCountryCode: Ugyldig landskode
|
||||||
|
invalidManufacturer: Ugyldig produsent
|
||||||
|
invalidFileType: Ugyldig filtype
|
||||||
|
couldNotDecode: Kunne ikke dekode QR-koden fra filen
|
||||||
|
couldNotFindQrCode: Kunne ikke finne QR-koden i den medfølgende filen
|
||||||
|
invalidQrCode: Ugyldig QR-kode
|
||||||
|
certificateType: Fant ingen gyldig sertifikattype
|
||||||
|
invalidTestResult: Ugyldig testresultat
|
||||||
|
invalidTestType: Ugyldig testtype
|
||||||
|
noCameraAccess: Fikk ikke tilgang til kameraet. Kontroller tillatelser under Innstillinger > Safari > Kamera.
|
||||||
|
noCameraFound: Fant ikke kamera.
|
||||||
|
safariSupportOnly: På iOS, vennligst bruk Safari nettleseren.
|
|
@ -0,0 +1,27 @@
|
||||||
|
heading: Informasjon i henhold til § 5 TMG
|
||||||
|
contact: Kontakt
|
||||||
|
euDisputeResolution: EU Konfliktløsning
|
||||||
|
euDisputeResolutionParagraph: |
|
||||||
|
Europakommisjonen tilbyr en plattform for online konfliktløsning (OS) https://ec.europa.eu/consumers/odr.
|
||||||
|
Du finner e-postadressen vår i avtrykket ovenfor.
|
||||||
|
consumerDisputeResolution: Forbrukerkonfliktløsning
|
||||||
|
consumerDisputeResolutionParagraph: Vi er ikke villige eller forpliktet til å delta i konfliktløsningssaker for et forbrukernemnd.
|
||||||
|
liabilityForContents: Ansvar for innholdet
|
||||||
|
liabilityForContentsParagraph: |
|
||||||
|
Som tjenesteleverandør er vi ansvarlig for vårt eget innhold på disse sidene i henhold til § 7 avsnitt 1 TMG under de generelle lovene.
|
||||||
|
I henhold til §§ 8 til 10 TMG er vi ikke forpliktet til å overvåke overført eller lagret informasjon eller å undersøke omstendigheter som indikerer ulovlig aktivitet.
|
||||||
|
Forpliktelser til å fjerne eller blokkere bruk av informasjon i henhold til de generelle lovene forblir upåvirket.
|
||||||
|
Ansvar i denne forbindelse er imidlertid bare mulig fra det tidspunkt et konkret brudd på loven blir kjent.
|
||||||
|
Hvis vi blir klar over slike overtredelser, fjerner vi det relevante innholdet umiddelbart.
|
||||||
|
liabilityForLinks: Ansvar for lenker
|
||||||
|
liabilityForLinksParagraph: |
|
||||||
|
Vårt tilbud inneholder lenker til eksterne nettsteder til tredjeparter, hvis innhold vi ikke har innflytelse på.
|
||||||
|
Derfor kan vi ikke påta oss noe ansvar for dette eksterne innholdet.
|
||||||
|
Den respektive leverandøren eller operatøren av nettstedene er alltid ansvarlig for innholdet på de koblede nettstedene.
|
||||||
|
De koblede sidene ble sjekket for mulige lovbrudd på tidspunktet for koblingen.
|
||||||
|
Ulovlig innhold var ikke gjenkjennelig på tidspunktet for koblingen.
|
||||||
|
En permanent kontroll av innholdet på de lenkete sidene er imidlertid ikke rimelig uten konkrete bevis på brudd på loven.
|
||||||
|
Hvis vi blir klar over brudd, vil vi fjerne slike lenker umiddelbart.
|
||||||
|
credits: Kreditere
|
||||||
|
creditsSource: Med utdrag fra https://www.e-recht24.de/impressum-generator.html
|
||||||
|
creditsTranslation: Oversatt med https://www.DeepL.com/Translator (free version)
|
|
@ -0,0 +1,27 @@
|
||||||
|
iosHint: På iOS, vennligst bruk Safari nettleseren.
|
||||||
|
errorClose: Lukk
|
||||||
|
selectCertificate: Velg Sertifikat
|
||||||
|
selectCertificateDescription: Skann QR-koden på sertifikatet ditt, eller velg et skjermbilde eller en PDF med QR-koden.
|
||||||
|
stopCamera: Stopp Kamera
|
||||||
|
startCamera: Start Kamera
|
||||||
|
openFile: Velg Fil
|
||||||
|
foundQrCode: Fant QR-kode!
|
||||||
|
pickColor: Velg en farge
|
||||||
|
pickColorDescription: Velg en bakgrunnsfarge for passet ditt.
|
||||||
|
colorWhite: hvit
|
||||||
|
colorBlack: svart
|
||||||
|
colorGrey: grå
|
||||||
|
colorGreen: grønn
|
||||||
|
colorIndigo: mørkeblå
|
||||||
|
colorBlue: blå
|
||||||
|
colorPurple: lilla
|
||||||
|
colorTeal: blågrønn
|
||||||
|
addToWallet: Legg til i Lommebok
|
||||||
|
dataPrivacyDescription: |
|
||||||
|
Personvern er av spesiell betydning ved behandling av helserelaterte data.
|
||||||
|
For å ta en informert beslutning, vennligst les
|
||||||
|
iAcceptThe: Jeg godtar
|
||||||
|
privacyPolicy: Personvernerklæring
|
||||||
|
createdOnDevice: Laget på enheten din
|
||||||
|
openSourceTransparent: Åpen kildekode og gjennomsiktig
|
||||||
|
hostedInEU: Driftet i EU
|
|
@ -0,0 +1,57 @@
|
||||||
|
gdprNotice: |
|
||||||
|
Personvernerklæringen vår er basert på vilkårene som brukes av den europeiske lovgiveren
|
||||||
|
for vedtakelsen av General Data Protection Regulation (GDPR).
|
||||||
|
generalInfo: Generell informasjon
|
||||||
|
generalInfoProcess: |
|
||||||
|
Hele prosessen med å generere passfilen skjer lokalt i nettleseren din.
|
||||||
|
For signeringstrinnet sendes bare en hash representasjon av dataene dine til serveren.
|
||||||
|
generalInfoStoring: Dine data lagres ikke utover den aktive nettlesersessionen, og nettsten bruker ikke informasjonskapsler.
|
||||||
|
generalInfoThirdParties: Ingen data blir sendt til tredjeparter.
|
||||||
|
generalInfoHttps: Vi overfører dataene dine sikkert over https.
|
||||||
|
generalInfoLocation: Serveren vår ligger i Nuremberg, Germany.
|
||||||
|
generalInfoGitHub: Kildekoden til dette nettstedet er tilgjengelig på
|
||||||
|
generalInfoLockScreen: Som standard er Apple Wallet pass tilgjengelig fra låseskjermen. Dette kan endres i
|
||||||
|
settings: innstillinger
|
||||||
|
generalInfoProvider: |
|
||||||
|
Serverleverandøren behandler data for å tilby dette nettstedet.
|
||||||
|
For å bedre forstå hvilke tiltak de tar for å beskytte dataene dine, vennligst les også deres
|
||||||
|
privacyPolicy: personvernerklæring
|
||||||
|
andThe: og
|
||||||
|
dataPrivacyFaq: vanlige spørsmål om personvern
|
||||||
|
contact: Kontakt
|
||||||
|
email: Epost
|
||||||
|
website: Webside
|
||||||
|
process: Forenklet forklaring av prosessen
|
||||||
|
processFirst: Først skjer følgende trinn lokalt i nettleseren din
|
||||||
|
processSecond: Så skjer følgende trinn på serveren vår
|
||||||
|
processThird: Til slutt skjer følgende trinn lokalt i nettleseren din
|
||||||
|
processRecognizing: Gjenkjenne og trekke ut QR-kodedataene fra det valgte sertifikatet
|
||||||
|
processDecoding: Dekoding av dine personlige og helserelaterte data fra QR-kode
|
||||||
|
processAssembling: Montering av en ufullstendig pass-fil ut av dataene dine
|
||||||
|
processGenerating: Generere en fil som inneholder hashes av dataene som er lagret i passfilen
|
||||||
|
processSending: Sender bare filen som inneholder hasjene til serveren vår
|
||||||
|
processReceiving: Motta og sjekke hashene som ble generert lokalt
|
||||||
|
processSigning: Signerer filen som inneholder hasjene
|
||||||
|
processSendingBack: Sender signaturen tilbake
|
||||||
|
processCompleting: Montering av den signerte passfilen fra den ufullstendige filen generert lokalt og signaturen
|
||||||
|
processSaving: Lagrer filen på enheten din
|
||||||
|
locallyProcessedData: Lokalt behandlede data
|
||||||
|
the:
|
||||||
|
schema: Skjema for digitalt Covid -sertifikat
|
||||||
|
specification: inneholder en detaljert spesifikasjon av hvilke data som kan finnes i QR -koden og vil bli behandlet i nettleseren din.
|
||||||
|
serverProvider: Serverleverandør
|
||||||
|
serverProviderIs: Serverleverandøren vår er
|
||||||
|
logFiles: Følgende data kan samles inn og lagres i serverloggfilene
|
||||||
|
logFilesBrowser: Nettlesertypene og versjonene som brukes
|
||||||
|
logFilesOs: Operativsystemet som brukes av tilgangssystemet
|
||||||
|
logFilesReferrer: Nettstedet som et tilgangssystem kommer til nettstedet vårt fra (såkalte henvisninger)
|
||||||
|
logFilesTime: Dato og klokkeslett for tilgang
|
||||||
|
logFilesIpAddress: De pseudonymiserte IP-adressene
|
||||||
|
rights: Dine rettigheter
|
||||||
|
rightsGranted: I samsvar med GDPR har du følgende rettigheter
|
||||||
|
rightsAccess: Rett til tilgang til dataene dine; Du har rett til å vite hvilke data som er samlet om deg og hvordan de ble behandlet.
|
||||||
|
rightsErasure: Rett til å bli glemt; Sletting av dine personlige data.
|
||||||
|
rightsRectification: Rett til å rette opp; Du har rett til å korrigere unøyaktige data.
|
||||||
|
rightsPortability: Rett til dataportabilitet; Du har rett til å overføre dataene dine fra et behandlingssystem til et annet.
|
||||||
|
thirdParties: Tredjeparter knyttet til
|
||||||
|
appleSync: Apple kan synkronisere passene dine via iCloud
|
|
@ -1,9 +1,7 @@
|
||||||
iosHint: Gebruik op iOS de Safari-browser.
|
iosHint: Gebruik op iOS de Safari-browser.
|
||||||
errorClose: Sluiten
|
errorClose: Sluiten
|
||||||
selectCertificate: Selecteer Certificaat
|
selectCertificate: Selecteer Certificaat
|
||||||
selectCertificateDescription: |
|
selectCertificateDescription: Scan de QR-code op uw certificaat of selecteer een screenshot of pdf-pagina met de QR-code.
|
||||||
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
|
stopCamera: Stop Camera
|
||||||
startCamera: Start Camera
|
startCamera: Start Camera
|
||||||
openFile: Selecteer Bestand
|
openFile: Selecteer Bestand
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
nb
|
|
@ -0,0 +1 @@
|
||||||
|
no
|
|
@ -0,0 +1 @@
|
||||||
|
sv
|
|
@ -0,0 +1 @@
|
||||||
|
sv
|
|
@ -0,0 +1,6 @@
|
||||||
|
title: CovidPass
|
||||||
|
subtitle: Lägg till digitala Covid-certifikat från EU i din favoritplånboksapp.
|
||||||
|
privacyPolicy: Integritetspolicy
|
||||||
|
donate: Sponsra
|
||||||
|
gitHub: GitHub
|
||||||
|
imprint: Juridisk info
|
|
@ -0,0 +1,20 @@
|
||||||
|
noFileOrQrCode: Vänligen skanna en QR-kod eller välj en fil
|
||||||
|
signatureFailed: Fel vid pass-signering på server
|
||||||
|
decodingFailed: Misslyckades att avkoda QR-kodens nyttolast
|
||||||
|
invalidColor: Ogiltig färg
|
||||||
|
certificateData: Misslyckades att läsa in certifikatdata
|
||||||
|
nameMissing: Inläsning av namn misslyckades
|
||||||
|
dobMissing: Inläsning av födelsedatum misslyckades
|
||||||
|
invalidMedicalProduct: Ogiltig medicinsk produkt
|
||||||
|
invalidCountryCode: Ogiltig landskod
|
||||||
|
invalidManufacturer: Ogiltig tillverkare
|
||||||
|
invalidFileType: Ogiltig filtyp
|
||||||
|
couldNotDecode: Kunde inte avkoda QR-kod från fil
|
||||||
|
couldNotFindQrCode: Kunde inte hitta QR-kod i försedd fil
|
||||||
|
invalidQrCode: Ogiltig QR-kod
|
||||||
|
certificateType: Ingen giltig certifikatstyp hittades
|
||||||
|
invalidTestResult: Ogiltigt testreultat
|
||||||
|
invalidTestType: Ogiltig testtyp
|
||||||
|
noCameraAccess: Nekades tillgång till kamera. Kontrollera behörigheter under Inställningar > Safari > Kamera.
|
||||||
|
noCameraFound: Kunde inte hitta kamera.
|
||||||
|
safariSupportOnly: På iOS, vänligen använd Safari som webbläsare.
|
|
@ -0,0 +1,26 @@
|
||||||
|
heading: Information i enlighet med § 5 Tyska telemedielagen (TMG)
|
||||||
|
contact: Kontakt
|
||||||
|
euDisputeResolution: Tvistlösning inom EU
|
||||||
|
euDisputeResolutionParagraph: |
|
||||||
|
Europeiska kommissionen tillhandahåller en plattform för tvistlösning online via https://ec.europa.eu/consumers/odr.
|
||||||
|
Du hittar vår e-postadress i stycket ovan.
|
||||||
|
consumerDisputeResolution: Konsumenttvistlösning / Allmän sklijenämnd
|
||||||
|
consumerDisputeResolutionParagraph: Vi är inte villiga eller ålagda att delta i tvistlösningsärenden inför en konsumentskiljenämnd.
|
||||||
|
liabilityForContents: Ansvar för innehåll
|
||||||
|
liabilityForContentsParagraph: |
|
||||||
|
Som tjänsteleverantör är vi ansvariga för vårt eget innehåll på dessa sidor i enlighet med § 7 paragraf 1 TMG under de almänna lagarna.
|
||||||
|
Enligt §§ 8 till 10 TMG är vi inte skyldiga att övervaka överförd eller lagrad information eller undersöka omständligheter som påvisar olaglig verksamhet.
|
||||||
|
Skyldigheter att radera eller blockera användande av information under de allmänna lagarna förblir opåverkade.
|
||||||
|
Dock är ansvar i detta avseende endast möjligt från den tidpunkt en konkret överträdelse av lagen blir känd. Om vi blir medvetna om en sådan överträdelse kommer vi obedelbart ta bort den information som är relevant i sammanhanget.
|
||||||
|
liabilityForLinks: Ansvar för länkar
|
||||||
|
liabilityForLinksParagraph: |
|
||||||
|
Vårt erbjudande innehåller länkar till tredjeparters externa webbplatser, vars innehåll vi inte har inflytande över.
|
||||||
|
Vi kan därför inte åta oss något ansvar för dessa externa innehåll.
|
||||||
|
Leverantören eller operatören för respektive länkad webbplats är alltid ansvariga för dess respektive innehåll.
|
||||||
|
De länkade sidorna kontrollerades för eventuella lagliga överträdelser vid den tidpunkt de länkades.
|
||||||
|
Inget olagligt innehåll kunde påvisas vid tidpunkten för länkning.
|
||||||
|
Permanenta kontroller av de länkade webbplatsernas innehåll är dock inte rimliga utan konkreta bevis för lagbrott.
|
||||||
|
Om vi blir medvetna om några överträdelser kommer vi omedelbart radera länkarna ifråga.
|
||||||
|
credits: Erkännanden
|
||||||
|
creditsSource: Med utdrag från https://www.e-recht24.de/impressum-generator.html
|
||||||
|
creditsTranslation: Översatt med https://www.DeepL.com/Translator (gratis version)
|
|
@ -0,0 +1,27 @@
|
||||||
|
iosHint: På iOS, vänligen använd Safari som webbläsare.
|
||||||
|
errorClose: Stäng
|
||||||
|
selectCertificate: Välj certifikat
|
||||||
|
selectCertificateDescription: Vänligen skanna QR-koden på ditt certifikat eller välj en skärmdump eller PDF-fil som innehåller QR-koden.
|
||||||
|
stopCamera: Stäng kamera
|
||||||
|
startCamera: Öppna kamera
|
||||||
|
openFile: Välj fil
|
||||||
|
foundQrCode: QR-kod hittad!
|
||||||
|
pickColor: Välj en färg
|
||||||
|
pickColorDescription: Välj en bakgrundsfärg till ditt pass.
|
||||||
|
colorWhite: vit
|
||||||
|
colorBlack: svart
|
||||||
|
colorGrey: grå
|
||||||
|
colorGreen: grön
|
||||||
|
colorIndigo: indigo
|
||||||
|
colorBlue: blå
|
||||||
|
colorPurple: lila
|
||||||
|
colorTeal: turkos
|
||||||
|
addToWallet: Lägg till i Plånbok
|
||||||
|
dataPrivacyDescription: |
|
||||||
|
Datasekretess är av särskild vikt vid bearbetning av hälsorelaterad data.
|
||||||
|
För att du ska kunna fatta ett välgrundat beslut, vänligen läs
|
||||||
|
iAcceptThe: Jag godtar
|
||||||
|
privacyPolicy: integritetspolicyn
|
||||||
|
createdOnDevice: Skapad på din enhet
|
||||||
|
openSourceTransparent: Öppen källkod och transparent
|
||||||
|
hostedInEU: Drivs från EU
|
|
@ -0,0 +1,56 @@
|
||||||
|
gdprNotice: |
|
||||||
|
Vår integritetspolicy är baserad på de villkår som används av den europeiska lagstiftaren för verkställandet av den allmänna dataskyddsförordningen (GDPR).
|
||||||
|
generalInfo: Allmän information
|
||||||
|
generalInfoProcess: |
|
||||||
|
Hela den process som genererar passfilen sker lokalt i din webbläsare.
|
||||||
|
Under signeringen skickas endast en kondenserad motsvarighet av din data till servern.
|
||||||
|
generalInfoStoring: Din data sparas inte utanför den aktiva webbläsarsessionen och sidan använder sig inte av cookies.
|
||||||
|
generalInfoThirdParties: Ingen data skickas till tredjeparter.
|
||||||
|
generalInfoHttps: Vi överför din data säkert över HTTPS.
|
||||||
|
generalInfoLocation: Vår server är baserad i Nürnberg, Tyskland.
|
||||||
|
generalInfoGitHub: Källkoden till denna sida finns tillgänglig på
|
||||||
|
generalInfoLockScreen: Som standrad är kuponger i Apple Plånbok tillgängliga från låsskärmen. Detta kan ändras i
|
||||||
|
settings: Inställningar
|
||||||
|
generalInfoProvider: |
|
||||||
|
Tjänsteleverantören processerar data som sedan används av sidan.
|
||||||
|
För att bättre förstå vilka åtgärder de vidtar för att skydda din data, vänligen läs deras
|
||||||
|
privacyPolicy: integritetspolicy
|
||||||
|
andThe: samt deras
|
||||||
|
dataPrivacyFaq: FAQ om datasekretess
|
||||||
|
contact: Kontakt
|
||||||
|
email: E-post
|
||||||
|
website: Hemsida
|
||||||
|
process: Förenklad förklaring av processen
|
||||||
|
processFirst: Först genomförs följande steg lokalt i din webbläsare
|
||||||
|
processSecond: Sedan genomförs följande steg på vår server
|
||||||
|
processThird: Slutligen genomförs följande steg lokalt i din webbläsare
|
||||||
|
processRecognizing: Datan från QR-koden i ditt valda certifikat identifieras och extraheras
|
||||||
|
processDecoding: Din personliga hälsorelaterade data från QR-kodens nyttolast avkodas
|
||||||
|
processAssembling: En ofullständig passfil sätts ihop genom din data
|
||||||
|
processGenerating: En fil med kondenseringar av den data som finns lagrad i passfilen genereras
|
||||||
|
processSending: Endast den fil som innehåller kondenseringarna skickas till vår server
|
||||||
|
processReceiving: De kondenseringar som genererades lokalt tas emot och kontrolleras
|
||||||
|
processSigning: Filen som innehåller kondenseringarna signeras
|
||||||
|
processSendingBack: Signaturen skickas tillbaka
|
||||||
|
processCompleting: En signerad passfil sätts ihop genom signaturen samt den ofullständiga, lokalt genererade filen
|
||||||
|
processSaving: Filen sparas på din enhet
|
||||||
|
locallyProcessedData: Lokalt behandlad data
|
||||||
|
the:
|
||||||
|
schema: Digital Covid Certificate Schema
|
||||||
|
specification: innehåller en detaljerad specifikation av den data som finns i QR-koden och som kommer att bearbetas i din webbläsare.
|
||||||
|
serverProvider: Serverleverantör
|
||||||
|
serverProviderIs: Vår serverleverantör är
|
||||||
|
logFiles: Följande data kan komma att samlas in och sparas i serverns loggfiler.
|
||||||
|
logFilesBrowser: Webbläsartyper och versioner
|
||||||
|
logFilesOs: Operativsystemet som används av den klient som begär tillgång
|
||||||
|
logFilesReferrer: Den webbsida från vilken den klient som begärt tillgång har nått vår webbsida (så kallade hänvisare)
|
||||||
|
logFilesTime: Datum och tid för tillgång
|
||||||
|
logFilesIpAddress: Den pseudonymiserade IP-adressen
|
||||||
|
rights: Dina rättigheter
|
||||||
|
rightsGranted: I enlighet med GDPR har du följande rättigheter
|
||||||
|
rightsAccess: Rätt till åtkomst av din data; Du har rätt att få veta vilken data som som har samlats in om dig samt hur den har bearbetats.
|
||||||
|
rightsErasure: Rätten att bli bortglömd; Du har rätt till att få din personliga data raderad.
|
||||||
|
rightsRectification: Rätt att göra invändningar; Du har rätt till att korrigera felaktiga data.
|
||||||
|
rightsPortability: Rätt till dataportabilitet; Du har rätt till överförning av din data från ett bearbetningssystem till ett annat.
|
||||||
|
thirdParties: Länkar till tredjeparter
|
||||||
|
appleSync: Apple kan komma att synkronisera dina pass via iCloud
|
|
@ -16,7 +16,8 @@
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
"isolatedModules": true,
|
"isolatedModules": true,
|
||||||
"jsx": "preserve"
|
"jsx": "preserve",
|
||||||
|
"incremental": true
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"next-env.d.ts",
|
"next-env.d.ts",
|
||||||
|
|
Loading…
Reference in New Issue