@zoreal/oauth2-js 0.1.20 → 0.1.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -89
- package/dist/index.cjs +1301 -1199
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +9 -2
- package/dist/index.d.ts +9 -2
- package/dist/index.js +1301 -1199
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -61,7 +61,7 @@ function unsafeClaims(idToken) {
|
|
|
61
61
|
|
|
62
62
|
// src/wire.ts
|
|
63
63
|
var WIRE_VERSION = 1;
|
|
64
|
-
var SDK_VERSION = "0.1.
|
|
64
|
+
var SDK_VERSION = "0.1.21";
|
|
65
65
|
var SDK_NAME = "@zoreal/oauth2-js";
|
|
66
66
|
var DEFAULT_ISSUER = "https://id.zoreal.com";
|
|
67
67
|
var POLL_INTERVAL_MS = 2e3;
|
|
@@ -229,1146 +229,218 @@ function isMobileUserAgent() {
|
|
|
229
229
|
return /android|iphone|ipad|ipod/i.test(navigator.userAgent);
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
-
// src/
|
|
233
|
-
var
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
232
|
+
// src/styles.ts
|
|
233
|
+
var PREFIX = "zrl";
|
|
234
|
+
var cx = (name) => `${PREFIX}-${name}`;
|
|
235
|
+
var STYLE_ELEMENT_ID = "zoreal-pairing-styles";
|
|
236
|
+
var LIGHT = `
|
|
237
|
+
--zrl-scrim: rgba(16, 18, 27, 0.45);
|
|
238
|
+
--zrl-surface: #ffffff;
|
|
239
|
+
--zrl-surface-sunken: #f6f7f9;
|
|
240
|
+
--zrl-ink: #16181c;
|
|
241
|
+
--zrl-ink-soft: #4a4f57;
|
|
242
|
+
--zrl-ink-mute: #6b7078;
|
|
243
|
+
--zrl-line: #e4e6ea;
|
|
244
|
+
--zrl-line-soft: #eef0f3;
|
|
245
|
+
--zrl-accent: #00b4d9;
|
|
246
|
+
--zrl-accent-soft: #dcf3fa;
|
|
247
|
+
--zrl-accent-ink: #04698a;
|
|
248
|
+
--zrl-urgent: #b4761a;
|
|
249
|
+
--zrl-qr-bg: #ffffff;
|
|
250
|
+
--zrl-qr-filter: none;
|
|
251
|
+
--zrl-qr-spent-filter: blur(3px);
|
|
252
|
+
--zrl-qr-blend: normal;
|
|
253
|
+
--zrl-shadow: 0 1px 2px rgba(16, 18, 27, 0.06), 0 20px 50px -12px rgba(16, 18, 27, 0.3);
|
|
254
|
+
--zrl-ring: rgba(16, 18, 27, 0.07);
|
|
255
|
+
/* The light on the QR well's edge. Brand blue on both grounds, a lighter
|
|
256
|
+
tint at the head; only its strength is themed, see the dark block. */
|
|
257
|
+
--zrl-beam: #00b4d9;
|
|
258
|
+
--zrl-beam-head: #7fe0f4;
|
|
259
|
+
--zrl-beam-line: 2px;
|
|
260
|
+
--zrl-glow-core: 4px;
|
|
261
|
+
--zrl-glow-reach: 24px;
|
|
262
|
+
--zrl-glow-blur: 8px;
|
|
263
|
+
--zrl-glow-opacity: 0.6;
|
|
264
|
+
`;
|
|
265
|
+
var DARK = `
|
|
266
|
+
--zrl-scrim: rgba(0, 0, 0, 0.62);
|
|
267
|
+
--zrl-surface: #17191d;
|
|
268
|
+
--zrl-surface-sunken: #1f2226;
|
|
269
|
+
--zrl-ink: #f4f5f7;
|
|
270
|
+
--zrl-ink-soft: #b3b8c0;
|
|
271
|
+
--zrl-ink-mute: #8b9199;
|
|
272
|
+
--zrl-line: #2c3036;
|
|
273
|
+
--zrl-line-soft: #24272c;
|
|
274
|
+
--zrl-accent: #34c9e8;
|
|
275
|
+
--zrl-accent-soft: #0d3b47;
|
|
276
|
+
--zrl-accent-ink: #7fdcf0;
|
|
277
|
+
--zrl-urgent: #e0a952;
|
|
278
|
+
/* The code is drawn light on the dark surface: the panel is transparent
|
|
279
|
+
and the image is inverted and screened, so only the modules and the
|
|
280
|
+
mark show. */
|
|
281
|
+
--zrl-qr-bg: transparent;
|
|
282
|
+
--zrl-qr-filter: invert(1);
|
|
283
|
+
--zrl-qr-spent-filter: invert(1) blur(3px);
|
|
284
|
+
--zrl-qr-blend: screen;
|
|
285
|
+
--zrl-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 20px 50px -12px rgba(0, 0, 0, 0.65);
|
|
286
|
+
--zrl-ring: rgba(255, 255, 255, 0.1);
|
|
287
|
+
/* A glow that reads on a white card disappears on a dark one: the light
|
|
288
|
+
here is brighter and wider, and its halo reaches further out. */
|
|
289
|
+
--zrl-beam: #22c8ec;
|
|
290
|
+
--zrl-beam-head: #c2f3fc;
|
|
291
|
+
--zrl-beam-line: 3px;
|
|
292
|
+
--zrl-glow-core: 6px;
|
|
293
|
+
--zrl-glow-reach: 32px;
|
|
294
|
+
--zrl-glow-blur: 10px;
|
|
295
|
+
--zrl-glow-opacity: 0.85;
|
|
296
|
+
`;
|
|
297
|
+
var CSS = `
|
|
298
|
+
.${PREFIX}-root { ${LIGHT} }
|
|
299
|
+
.${PREFIX}-root[data-theme="dark"] { ${DARK} }
|
|
300
|
+
@media (prefers-color-scheme: dark) {
|
|
301
|
+
.${PREFIX}-root[data-theme="auto"] { ${DARK} }
|
|
241
302
|
}
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
303
|
+
|
|
304
|
+
.${PREFIX}-scrim {
|
|
305
|
+
position: fixed;
|
|
306
|
+
inset: 0;
|
|
307
|
+
z-index: 2147483000;
|
|
308
|
+
display: grid;
|
|
309
|
+
place-items: center;
|
|
310
|
+
overflow-y: auto;
|
|
311
|
+
padding: 16px;
|
|
312
|
+
background: var(--zrl-scrim);
|
|
313
|
+
backdrop-filter: blur(3px);
|
|
314
|
+
-webkit-backdrop-filter: blur(3px);
|
|
315
|
+
font-family: inherit;
|
|
316
|
+
animation: ${PREFIX}-fade 200ms ease-out both;
|
|
246
317
|
}
|
|
247
318
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
319
|
+
.${PREFIX}-card {
|
|
320
|
+
position: relative;
|
|
321
|
+
box-sizing: border-box;
|
|
322
|
+
width: 100%;
|
|
323
|
+
max-width: 380px;
|
|
324
|
+
border-radius: 16px;
|
|
325
|
+
background: var(--zrl-surface);
|
|
326
|
+
color: var(--zrl-ink);
|
|
327
|
+
box-shadow: var(--zrl-shadow);
|
|
328
|
+
outline: 1px solid var(--zrl-ring);
|
|
329
|
+
outline-offset: -1px;
|
|
330
|
+
text-align: center;
|
|
331
|
+
animation: ${PREFIX}-rise 300ms cubic-bezier(0.23, 1, 0.32, 1) both;
|
|
258
332
|
}
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
333
|
+
|
|
334
|
+
.${PREFIX}-body { padding: 28px 24px 20px; }
|
|
335
|
+
|
|
336
|
+
.${PREFIX}-lockup { display: block; margin: 0 auto; color: var(--zrl-ink); }
|
|
337
|
+
|
|
338
|
+
.${PREFIX}-title {
|
|
339
|
+
margin: 18px 0 0;
|
|
340
|
+
font-size: 18px;
|
|
341
|
+
font-weight: 600;
|
|
342
|
+
letter-spacing: -0.01em;
|
|
343
|
+
line-height: 1.3;
|
|
344
|
+
color: var(--zrl-ink);
|
|
264
345
|
}
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
if (flow.v !== 1 || flow.requestId !== requestId) return null;
|
|
273
|
-
if (Date.now() - flow.createdAt > MAX_AGE_MS) return null;
|
|
274
|
-
return flow;
|
|
275
|
-
} catch {
|
|
276
|
-
return null;
|
|
277
|
-
}
|
|
346
|
+
|
|
347
|
+
.${PREFIX}-body-text {
|
|
348
|
+
margin: 6px auto 0;
|
|
349
|
+
max-width: 30ch;
|
|
350
|
+
font-size: 14px;
|
|
351
|
+
line-height: 1.55;
|
|
352
|
+
color: var(--zrl-ink-soft);
|
|
278
353
|
}
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
354
|
+
|
|
355
|
+
.${PREFIX}-qr-well {
|
|
356
|
+
position: relative;
|
|
357
|
+
display: grid;
|
|
358
|
+
place-items: center;
|
|
359
|
+
box-sizing: border-box;
|
|
360
|
+
width: 204px;
|
|
361
|
+
height: 204px;
|
|
362
|
+
margin: 20px auto 0;
|
|
363
|
+
padding: 12px;
|
|
364
|
+
border: 1px solid var(--zrl-line);
|
|
365
|
+
border-radius: var(--zrl-radius);
|
|
366
|
+
background: var(--zrl-qr-bg);
|
|
367
|
+
/* The light on the edge takes its shape from here and its colour and
|
|
368
|
+
strength from the theme tokens above. One lap in 4s on every tier. */
|
|
369
|
+
--zrl-radius: 16px;
|
|
370
|
+
--zrl-beam-time: 4s;
|
|
285
371
|
}
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
372
|
+
|
|
373
|
+
/* The light on the well's edge: a short comet running along the border, with
|
|
374
|
+
a soft glow outside it. Three overlays inside the well, each masked so the
|
|
375
|
+
comet can only ever paint where its mask allows, and the white interior lies
|
|
376
|
+
outside every mask: nothing here can reach the quiet zone a camera needs,
|
|
377
|
+
whatever the comet is doing. The mask is the padding box cut out of the
|
|
378
|
+
border box, a transparent layer clipped to the padding box intersected
|
|
379
|
+
with a solid one clipped to the border box. The prefixed form is for Chrome
|
|
380
|
+
before 120 and Safari before 15.4; the unprefixed one, declared after it,
|
|
381
|
+
wins everywhere else.
|
|
382
|
+
|
|
383
|
+
qr-beam keeps a thin ring on the border line: the comet itself.
|
|
384
|
+
qr-beam-glow is the glow: a wide band outside the well that blurs whatever
|
|
385
|
+
is inside it, and inside it qr-beam-glow-band keeps a 3px ring with a
|
|
386
|
+
second copy of the comet. The blur has to sit on the parent because a
|
|
387
|
+
filter is applied before a mask: blurred on the band itself, the glow
|
|
388
|
+
would be cut back to the band's own edge. On the parent it runs after the
|
|
389
|
+
band has clipped the comet thin and before the parent's mask cuts away the
|
|
390
|
+
inward half, which is what makes it fade outward and never over the QR.
|
|
391
|
+
All three share one containing block, the well's padding box, so the two
|
|
392
|
+
comets ride the same path; the spent badge is a later sibling and paints
|
|
393
|
+
above them. */
|
|
394
|
+
.${PREFIX}-qr-beam,
|
|
395
|
+
.${PREFIX}-qr-beam-glow,
|
|
396
|
+
.${PREFIX}-qr-beam-glow-band {
|
|
397
|
+
position: absolute;
|
|
398
|
+
inset: calc(0px - var(--zrl-beam-line));
|
|
399
|
+
border: var(--zrl-beam-line) solid transparent;
|
|
400
|
+
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-beam-line));
|
|
401
|
+
pointer-events: none;
|
|
402
|
+
-webkit-mask: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
|
|
403
|
+
-webkit-mask-clip: padding-box, border-box;
|
|
404
|
+
-webkit-mask-composite: source-in;
|
|
405
|
+
mask: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
|
|
406
|
+
mask-clip: padding-box, border-box;
|
|
407
|
+
mask-composite: intersect;
|
|
293
408
|
}
|
|
294
|
-
|
|
295
|
-
|
|
409
|
+
.${PREFIX}-qr-beam-glow {
|
|
410
|
+
inset: calc(0px - var(--zrl-glow-reach));
|
|
411
|
+
border-width: var(--zrl-glow-reach);
|
|
412
|
+
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-glow-reach));
|
|
413
|
+
filter: blur(var(--zrl-glow-blur));
|
|
414
|
+
opacity: var(--zrl-glow-opacity);
|
|
415
|
+
will-change: filter;
|
|
296
416
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
return hash === -1 ? href : href.slice(0, hash);
|
|
417
|
+
.${PREFIX}-qr-beam-glow-band {
|
|
418
|
+
inset: calc(0px - var(--zrl-glow-core));
|
|
419
|
+
border-width: var(--zrl-glow-core);
|
|
420
|
+
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-glow-core));
|
|
302
421
|
}
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
// src/i18n.ts
|
|
319
|
-
var en = {
|
|
320
|
-
title: "Scan to sign in",
|
|
321
|
-
titleIdentify: "Scan to verify your identity",
|
|
322
|
-
titlePresence: "Scan to prove you are a real human",
|
|
323
|
-
titleApprove: "Approve on your phone",
|
|
324
|
-
bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
|
|
325
|
-
bodyApprove: "Approve the login in your ZOREAL ID app.",
|
|
326
|
-
bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
|
|
327
|
-
waiting: "Waiting for scan",
|
|
328
|
-
waitingApproval: "Waiting for approval",
|
|
329
|
-
expiresIn: "Expires in {time}",
|
|
330
|
-
secured: "Proof-of-Human verification by ZOREAL",
|
|
331
|
-
noIdTitle: "No ZOREAL ID yet?",
|
|
332
|
-
noIdBody: "Scan the same code to download the app and create one for free. It only takes a minute.",
|
|
333
|
-
cancel: "Cancel",
|
|
334
|
-
close: "Close",
|
|
335
|
-
qrAlt: "QR code to sign in with ZOREAL",
|
|
336
|
-
buttonContinue: "Continue with ZOREAL"
|
|
337
|
-
};
|
|
338
|
-
var TRANSLATIONS = {
|
|
339
|
-
en,
|
|
340
|
-
sv: {
|
|
341
|
-
title: "Skanna f\xF6r att logga in",
|
|
342
|
-
titleIdentify: "Skanna f\xF6r att verifiera din identitet",
|
|
343
|
-
titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
|
|
344
|
-
titleApprove: "Godk\xE4nn p\xE5 telefonen",
|
|
345
|
-
bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
|
|
346
|
-
bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
|
|
347
|
-
bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
|
|
348
|
-
waiting: "V\xE4ntar p\xE5 skanning",
|
|
349
|
-
waitingApproval: "V\xE4ntar p\xE5 godk\xE4nnande",
|
|
350
|
-
expiresIn: "Upph\xF6r om {time}",
|
|
351
|
-
secured: "Proof-of-Human-verifiering av ZOREAL",
|
|
352
|
-
noIdTitle: "Har du inget ZOREAL ID?",
|
|
353
|
-
noIdBody: "Skanna samma kod f\xF6r att ladda ner appen och skapa ett gratis. Det tar bara en minut.",
|
|
354
|
-
cancel: "Avbryt",
|
|
355
|
-
close: "St\xE4ng",
|
|
356
|
-
qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
|
|
357
|
-
buttonContinue: "Forts\xE4tt med ZOREAL"
|
|
358
|
-
},
|
|
359
|
-
es: {
|
|
360
|
-
title: "Escanea para iniciar sesi\xF3n",
|
|
361
|
-
titleIdentify: "Escanea para verificar tu identidad",
|
|
362
|
-
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
363
|
-
titleApprove: "Apru\xE9balo en tu tel\xE9fono",
|
|
364
|
-
bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
|
|
365
|
-
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
366
|
-
bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
|
|
367
|
-
waiting: "Esperando el escaneo",
|
|
368
|
-
waitingApproval: "Esperando aprobaci\xF3n",
|
|
369
|
-
expiresIn: "Caduca en {time}",
|
|
370
|
-
secured: "Verificaci\xF3n Proof-of-Human de ZOREAL",
|
|
371
|
-
noIdTitle: "\xBFA\xFAn no tienes ZOREAL ID?",
|
|
372
|
-
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear una gratis. Solo toma un minuto.",
|
|
373
|
-
cancel: "Cancelar",
|
|
374
|
-
close: "Cerrar",
|
|
375
|
-
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
376
|
-
buttonContinue: "Continuar con ZOREAL"
|
|
377
|
-
},
|
|
378
|
-
pt: {
|
|
379
|
-
title: "Digitalize para entrar",
|
|
380
|
-
titleIdentify: "Digitalize para verificar a sua identidade",
|
|
381
|
-
titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
|
|
382
|
-
titleApprove: "Aprove no seu telefone",
|
|
383
|
-
bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
|
|
384
|
-
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
385
|
-
bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
|
|
386
|
-
waiting: "Aguardando digitaliza\xE7\xE3o",
|
|
387
|
-
waitingApproval: "Aguardando aprova\xE7\xE3o",
|
|
388
|
-
expiresIn: "Expira em {time}",
|
|
389
|
-
secured: "Verifica\xE7\xE3o Proof-of-Human da ZOREAL",
|
|
390
|
-
noIdTitle: "Ainda n\xE3o tem ZOREAL ID?",
|
|
391
|
-
noIdBody: "Digitalize o mesmo c\xF3digo para baixar o app e criar uma conta gr\xE1tis. Leva s\xF3 um minuto.",
|
|
392
|
-
cancel: "Cancelar",
|
|
393
|
-
close: "Fechar",
|
|
394
|
-
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
395
|
-
buttonContinue: "Continuar com ZOREAL"
|
|
396
|
-
},
|
|
397
|
-
fr: {
|
|
398
|
-
title: "Scannez pour vous connecter",
|
|
399
|
-
titleIdentify: "Scannez pour v\xE9rifier votre identit\xE9",
|
|
400
|
-
titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
|
|
401
|
-
titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
|
|
402
|
-
bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
|
|
403
|
-
bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
|
|
404
|
-
bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
|
|
405
|
-
waiting: "En attente du scan",
|
|
406
|
-
waitingApproval: "En attente d'approbation",
|
|
407
|
-
expiresIn: "Expire dans {time}",
|
|
408
|
-
secured: "V\xE9rification Proof-of-Human par ZOREAL",
|
|
409
|
-
noIdTitle: "Pas encore de ZOREAL ID ?",
|
|
410
|
-
noIdBody: "Scannez le m\xEAme code pour t\xE9l\xE9charger l'app et en cr\xE9er un gratuitement. Cela prend une minute.",
|
|
411
|
-
cancel: "Annuler",
|
|
412
|
-
close: "Fermer",
|
|
413
|
-
qrAlt: "Code QR pour se connecter avec ZOREAL",
|
|
414
|
-
buttonContinue: "Continuer avec ZOREAL"
|
|
415
|
-
},
|
|
416
|
-
de: {
|
|
417
|
-
title: "Zum Anmelden scannen",
|
|
418
|
-
titleIdentify: "Scannen, um Ihre Identit\xE4t zu verifizieren",
|
|
419
|
-
titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
|
|
420
|
-
titleApprove: "Auf dem Handy best\xE4tigen",
|
|
421
|
-
bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
|
|
422
|
-
bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
|
|
423
|
-
bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
|
|
424
|
-
waiting: "Warten auf Scan",
|
|
425
|
-
waitingApproval: "Warten auf Best\xE4tigung",
|
|
426
|
-
expiresIn: "L\xE4uft ab in {time}",
|
|
427
|
-
secured: "Proof-of-Human-Verifizierung von ZOREAL",
|
|
428
|
-
noIdTitle: "Noch keine ZOREAL ID?",
|
|
429
|
-
noIdBody: "Denselben Code scannen, um die App zu laden und kostenlos eine zu erstellen. Dauert nur eine Minute.",
|
|
430
|
-
cancel: "Abbrechen",
|
|
431
|
-
close: "Schlie\xDFen",
|
|
432
|
-
qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
|
|
433
|
-
buttonContinue: "Weiter mit ZOREAL"
|
|
434
|
-
},
|
|
435
|
-
ru: {
|
|
436
|
-
title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
|
|
437
|
-
titleIdentify: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C",
|
|
438
|
-
titlePresence: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u0439 \u0447\u0435\u043B\u043E\u0432\u0435\u043A",
|
|
439
|
-
titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
|
|
440
|
-
bodyScan: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u0439 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0447\u0435\u0440\u0435\u0437 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 ZOREAL ID.",
|
|
441
|
-
bodyApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 ZOREAL ID.",
|
|
442
|
-
bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435, \u0437\u0430\u0442\u0435\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434.",
|
|
443
|
-
waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
|
|
444
|
-
waitingApproval: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F",
|
|
445
|
-
expiresIn: "\u0418\u0441\u0442\u0435\u043A\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 {time}",
|
|
446
|
-
secured: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 Proof-of-Human \u043E\u0442 ZOREAL",
|
|
447
|
-
noIdTitle: "\u0415\u0449\u0451 \u043D\u0435\u0442 ZOREAL ID?",
|
|
448
|
-
noIdBody: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u0442\u043E\u0442 \u0436\u0435 \u043A\u043E\u0434, \u0447\u0442\u043E\u0431\u044B \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0438 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0435\u0433\u043E \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E. \u042D\u0442\u043E \u0437\u0430\u0439\u043C\u0451\u0442 \u043C\u0438\u043D\u0443\u0442\u0443.",
|
|
449
|
-
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
450
|
-
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
451
|
-
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
|
|
452
|
-
buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
|
|
453
|
-
},
|
|
454
|
-
ja: {
|
|
455
|
-
title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
|
|
456
|
-
titleIdentify: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u672C\u4EBA\u78BA\u8A8D",
|
|
457
|
-
titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
|
|
458
|
-
titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
|
|
459
|
-
bodyScan: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306E\u30AB\u30E1\u30E9\u307E\u305F\u306FZOREAL ID\u30A2\u30D7\u30EA\u3067\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
460
|
-
bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
461
|
-
bodyEnrolling: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067ZOREAL ID\u306E\u8A2D\u5B9A\u3092\u5B8C\u4E86\u3057\u3001\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
462
|
-
waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
|
|
463
|
-
waitingApproval: "\u627F\u8A8D\u5F85\u3061",
|
|
464
|
-
expiresIn: "\u6709\u52B9\u671F\u9650\u307E\u3067 {time}",
|
|
465
|
-
secured: "ZOREAL\u306B\u3088\u308BProof-of-Human\u8A8D\u8A3C",
|
|
466
|
-
noIdTitle: "ZOREAL ID\u3092\u304A\u6301\u3061\u3067\u306A\u3044\u3067\u3059\u304B\uFF1F",
|
|
467
|
-
noIdBody: "\u540C\u3058\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30A2\u30D7\u30EA\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3001\u7121\u6599\u3067\u4F5C\u6210\u3067\u304D\u307E\u3059\u30021\u5206\u307B\u3069\u3067\u5B8C\u4E86\u3057\u307E\u3059\u3002",
|
|
468
|
-
cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
469
|
-
close: "\u9589\u3058\u308B",
|
|
470
|
-
qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
|
|
471
|
-
buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
|
|
472
|
-
},
|
|
473
|
-
hi: {
|
|
474
|
-
title: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
|
|
475
|
-
titleIdentify: "\u0905\u092A\u0928\u0940 \u092A\u0939\u091A\u093E\u0928 \u0938\u0924\u094D\u092F\u093E\u092A\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
|
|
476
|
-
titlePresence: "\u092F\u0939 \u0938\u093E\u092C\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A \u090F\u0915 \u0935\u093E\u0938\u094D\u0924\u0935\u093F\u0915 \u0907\u0902\u0938\u093E\u0928 \u0939\u0948\u0902",
|
|
477
|
-
titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
|
|
478
|
-
bodyScan: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u0915\u0947 \u0915\u0948\u092E\u0930\u0947 \u092F\u093E ZOREAL ID \u0910\u092A \u0938\u0947 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964",
|
|
479
|
-
bodyApprove: "\u0905\u092A\u0928\u0947 ZOREAL ID \u0910\u092A \u092E\u0947\u0902 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
|
|
480
|
-
bodyEnrolling: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 ZOREAL ID \u0938\u0947\u091F\u0905\u092A \u092A\u0942\u0930\u093E \u0915\u0930\u0947\u0902, \u092B\u093F\u0930 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
|
|
481
|
-
waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
|
|
482
|
-
waitingApproval: "\u0938\u094D\u0935\u0940\u0915\u0943\u0924\u093F \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
|
|
483
|
-
expiresIn: "{time} \u092E\u0947\u0902 \u0938\u092E\u093E\u092A\u094D\u0924",
|
|
484
|
-
secured: "ZOREAL \u0926\u094D\u0935\u093E\u0930\u093E Proof-of-Human \u0938\u0924\u094D\u092F\u093E\u092A\u0928",
|
|
485
|
-
noIdTitle: "\u0905\u092D\u0940 \u0924\u0915 ZOREAL ID \u0928\u0939\u0940\u0902 \u0939\u0948?",
|
|
486
|
-
noIdBody: "\u0910\u092A \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u0914\u0930 \u092E\u0941\u092B\u094D\u0924 \u092E\u0947\u0902 \u090F\u0915 \u092C\u0928\u093E\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0935\u0939\u0940 \u0915\u094B\u0921 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964 \u0907\u0938\u092E\u0947\u0902 \u092C\u0938 \u090F\u0915 \u092E\u093F\u0928\u091F \u0932\u0917\u0924\u093E \u0939\u0948\u0964",
|
|
487
|
-
cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
|
|
488
|
-
close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
489
|
-
qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
|
|
490
|
-
buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
|
|
491
|
-
},
|
|
492
|
-
zhs: {
|
|
493
|
-
title: "\u626B\u7801\u767B\u5F55",
|
|
494
|
-
titleIdentify: "\u626B\u7801\u9A8C\u8BC1\u8EAB\u4EFD",
|
|
495
|
-
titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
|
|
496
|
-
titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
|
|
497
|
-
bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
|
|
498
|
-
bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
|
|
499
|
-
bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
|
|
500
|
-
waiting: "\u7B49\u5F85\u626B\u63CF",
|
|
501
|
-
waitingApproval: "\u7B49\u5F85\u6279\u51C6",
|
|
502
|
-
expiresIn: "{time} \u540E\u5931\u6548",
|
|
503
|
-
secured: "\u7531 ZOREAL \u63D0\u4F9B\u7684 Proof-of-Human \u9A8C\u8BC1",
|
|
504
|
-
noIdTitle: "\u8FD8\u6CA1\u6709 ZOREAL ID\uFF1F",
|
|
505
|
-
noIdBody: "\u626B\u63CF\u540C\u4E00\u4E2A\u4E8C\u7EF4\u7801\u5373\u53EF\u4E0B\u8F7D\u5E94\u7528\u5E76\u514D\u8D39\u521B\u5EFA\uFF0C\u53EA\u9700\u4E00\u5206\u949F\u3002",
|
|
506
|
-
cancel: "\u53D6\u6D88",
|
|
507
|
-
close: "\u5173\u95ED",
|
|
508
|
-
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
|
|
509
|
-
buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
|
|
510
|
-
},
|
|
511
|
-
zht: {
|
|
512
|
-
title: "\u6383\u78BC\u767B\u5165",
|
|
513
|
-
titleIdentify: "\u6383\u78BC\u9A57\u8B49\u8EAB\u5206",
|
|
514
|
-
titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
|
|
515
|
-
titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
|
|
516
|
-
bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
|
|
517
|
-
bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
|
|
518
|
-
bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
|
|
519
|
-
waiting: "\u7B49\u5F85\u6383\u63CF",
|
|
520
|
-
waitingApproval: "\u7B49\u5F85\u6838\u51C6",
|
|
521
|
-
expiresIn: "{time} \u5F8C\u5931\u6548",
|
|
522
|
-
secured: "\u7531 ZOREAL \u63D0\u4F9B\u7684 Proof-of-Human \u9A57\u8B49",
|
|
523
|
-
noIdTitle: "\u9084\u6C92\u6709 ZOREAL ID\uFF1F",
|
|
524
|
-
noIdBody: "\u6383\u63CF\u540C\u4E00\u500B QR code \u5373\u53EF\u4E0B\u8F09\u61C9\u7528\u7A0B\u5F0F\u4E26\u514D\u8CBB\u5EFA\u7ACB\uFF0C\u53EA\u9700\u4E00\u5206\u9418\u3002",
|
|
525
|
-
cancel: "\u53D6\u6D88",
|
|
526
|
-
close: "\u95DC\u9589",
|
|
527
|
-
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
|
|
528
|
-
buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
|
|
529
|
-
},
|
|
530
|
-
ar: {
|
|
531
|
-
title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
|
|
532
|
-
titleIdentify: "\u0627\u0645\u0633\u062D \u0644\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0647\u0648\u064A\u062A\u0643",
|
|
533
|
-
titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
|
|
534
|
-
titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
|
|
535
|
-
bodyScan: "\u0627\u0645\u0633\u062D \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0643\u0627\u0645\u064A\u0631\u0627 \u0647\u0627\u062A\u0641\u0643 \u0623\u0648 \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
|
|
536
|
-
bodyApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0641\u064A \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
|
|
537
|
-
bodyEnrolling: "\u0623\u0643\u0645\u0644 \u0625\u0639\u062F\u0627\u062F ZOREAL ID \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643\u060C \u062B\u0645 \u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644.",
|
|
538
|
-
waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
|
|
539
|
-
waitingApproval: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629",
|
|
540
|
-
expiresIn: "\u062A\u0646\u062A\u0647\u064A \u0627\u0644\u0635\u0644\u0627\u062D\u064A\u0629 \u062E\u0644\u0627\u0644 {time}",
|
|
541
|
-
secured: "\u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 Proof-of-Human \u0628\u0648\u0627\u0633\u0637\u0629 ZOREAL",
|
|
542
|
-
noIdTitle: "\u0644\u064A\u0633 \u0644\u062F\u064A\u0643 ZOREAL ID \u0628\u0639\u062F\u061F",
|
|
543
|
-
noIdBody: "\u0627\u0645\u0633\u062D \u0627\u0644\u0631\u0645\u0632 \u0646\u0641\u0633\u0647 \u0644\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0648\u0625\u0646\u0634\u0627\u0621 \u062D\u0633\u0627\u0628 \u0645\u062C\u0627\u0646\u064A. \u064A\u0633\u062A\u063A\u0631\u0642 \u0627\u0644\u0623\u0645\u0631 \u062F\u0642\u064A\u0642\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637.",
|
|
544
|
-
cancel: "\u0625\u0644\u063A\u0627\u0621",
|
|
545
|
-
close: "\u0625\u063A\u0644\u0627\u0642",
|
|
546
|
-
qrAlt: "\u0631\u0645\u0632 QR \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
|
|
547
|
-
buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
|
|
548
|
-
},
|
|
549
|
-
ko: {
|
|
550
|
-
title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
|
|
551
|
-
titleIdentify: "\uC2A4\uCE94\uD558\uC5EC \uC2E0\uC6D0 \uD655\uC778",
|
|
552
|
-
titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
|
|
553
|
-
titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
|
|
554
|
-
bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
|
|
555
|
-
bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
|
|
556
|
-
bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
|
|
557
|
-
waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
|
|
558
|
-
waitingApproval: "\uC2B9\uC778 \uB300\uAE30 \uC911",
|
|
559
|
-
expiresIn: "{time} \uD6C4 \uB9CC\uB8CC",
|
|
560
|
-
secured: "ZOREAL\uC758 Proof-of-Human \uC778\uC99D",
|
|
561
|
-
noIdTitle: "\uC544\uC9C1 ZOREAL ID\uAC00 \uC5C6\uC73C\uC2E0\uAC00\uC694?",
|
|
562
|
-
noIdBody: "\uAC19\uC740 \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD574 \uC571\uC744 \uB0B4\uB824\uBC1B\uACE0 \uBB34\uB8CC\uB85C \uB9CC\uB4DC\uC138\uC694. 1\uBD84\uC774\uBA74 \uB429\uB2C8\uB2E4.",
|
|
563
|
-
cancel: "\uCDE8\uC18C",
|
|
564
|
-
close: "\uB2EB\uAE30",
|
|
565
|
-
qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
|
|
566
|
-
buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
|
|
567
|
-
},
|
|
568
|
-
// Български
|
|
569
|
-
bg: {
|
|
570
|
-
title: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0437\u0430 \u0432\u0445\u043E\u0434",
|
|
571
|
-
titleIdentify: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0438\u0442\u0435 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0442\u0430 \u0441\u0438",
|
|
572
|
-
titlePresence: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435, \u0447\u0435 \u0441\u0442\u0435 \u0438\u0441\u0442\u0438\u043D\u0441\u043A\u0438 \u0447\u043E\u0432\u0435\u043A",
|
|
573
|
-
titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
|
|
574
|
-
bodyScan: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441 \u043A\u0430\u043C\u0435\u0440\u0430\u0442\u0430 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0441 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
|
|
575
|
-
bodyApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
|
|
576
|
-
bodyEnrolling: "\u0414\u043E\u0432\u044A\u0440\u0448\u0435\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430 \u043D\u0430 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438, \u0441\u043B\u0435\u0434 \u043A\u043E\u0435\u0442\u043E \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430.",
|
|
577
|
-
waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
|
|
578
|
-
waitingApproval: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435",
|
|
579
|
-
expiresIn: "\u0418\u0437\u0442\u0438\u0447\u0430 \u0441\u043B\u0435\u0434 {time}",
|
|
580
|
-
secured: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 Proof-of-Human \u043E\u0442 ZOREAL",
|
|
581
|
-
noIdTitle: "\u0412\u0441\u0435 \u043E\u0449\u0435 \u043D\u044F\u043C\u0430\u0442\u0435 ZOREAL ID?",
|
|
582
|
-
noIdBody: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441\u044A\u0449\u0438\u044F \u043A\u043E\u0434, \u0437\u0430 \u0434\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u0438 \u0434\u0430 \u0441\u0438 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0431\u0435\u0437\u043F\u043B\u0430\u0442\u0435\u043D \u0430\u043A\u0430\u0443\u043D\u0442. \u041E\u0442\u043D\u0435\u043C\u0430 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442\u0430.",
|
|
583
|
-
cancel: "\u041E\u0442\u043A\u0430\u0437",
|
|
584
|
-
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
585
|
-
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
|
|
586
|
-
buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
|
|
587
|
-
},
|
|
588
|
-
// বাংলা
|
|
589
|
-
bn: {
|
|
590
|
-
title: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
591
|
-
titleIdentify: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09B0\u09BF\u099A\u09AF\u09BC \u09AF\u09BE\u099A\u09BE\u0987 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
592
|
-
titlePresence: "\u0986\u09AA\u09A8\u09BF \u098F\u0995\u099C\u09A8 \u09AA\u09CD\u09B0\u0995\u09C3\u09A4 \u09AE\u09BE\u09A8\u09C1\u09B7 \u09A4\u09BE \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
593
|
-
titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
594
|
-
bodyScan: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7\u09B0 \u0995\u09CD\u09AF\u09BE\u09AE\u09C7\u09B0\u09BE \u09AC\u09BE ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
595
|
-
bodyApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA\u09C7 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
596
|
-
bodyEnrolling: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 ZOREAL ID \u09B8\u09C7\u099F\u0986\u09AA \u09B8\u09AE\u09CD\u09AA\u09C2\u09B0\u09CD\u09A3 \u0995\u09B0\u09C1\u09A8, \u09A4\u09BE\u09B0\u09AA\u09B0 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
597
|
-
waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
|
|
598
|
-
waitingApproval: "\u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
|
|
599
|
-
expiresIn: "{time} \u09AA\u09B0\u09C7 \u09AE\u09C7\u09AF\u09BC\u09BE\u09A6 \u09B6\u09C7\u09B7 \u09B9\u09AC\u09C7",
|
|
600
|
-
secured: "ZOREAL \u09A6\u09CD\u09AC\u09BE\u09B0\u09BE Proof-of-Human \u09AF\u09BE\u099A\u09BE\u0987\u0995\u09B0\u09A3",
|
|
601
|
-
noIdTitle: "\u098F\u0996\u09A8\u09CB ZOREAL ID \u09A8\u09C7\u0987?",
|
|
602
|
-
noIdBody: "\u0985\u09CD\u09AF\u09BE\u09AA \u09A1\u09BE\u0989\u09A8\u09B2\u09CB\u09A1 \u0995\u09B0\u09C7 \u09AC\u09BF\u09A8\u09BE\u09AE\u09C2\u09B2\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09A4\u09C7 \u098F\u0995\u0987 \u0995\u09CB\u09A1 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964 \u098F\u09A4\u09C7 \u09AE\u09BE\u09A4\u09CD\u09B0 \u098F\u0995 \u09AE\u09BF\u09A8\u09BF\u099F \u09B8\u09AE\u09AF\u09BC \u09B2\u09BE\u0997\u09C7\u0964",
|
|
603
|
-
cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
|
|
604
|
-
close: "\u09AC\u09A8\u09CD\u09A7",
|
|
605
|
-
qrAlt: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09BE\u09B0 \u099C\u09A8\u09CD\u09AF QR \u0995\u09CB\u09A1",
|
|
606
|
-
buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
|
|
607
|
-
},
|
|
608
|
-
// Bosanski
|
|
609
|
-
bs: {
|
|
610
|
-
title: "Skenirajte za prijavu",
|
|
611
|
-
titleIdentify: "Skenirajte da potvrdite svoj identitet",
|
|
612
|
-
titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
|
|
613
|
-
titleApprove: "Odobrite na svom telefonu",
|
|
614
|
-
bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
|
|
615
|
-
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
616
|
-
bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
|
|
617
|
-
waiting: "\u010Ceka se skeniranje",
|
|
618
|
-
waitingApproval: "\u010Ceka se odobrenje",
|
|
619
|
-
expiresIn: "Isti\u010De za {time}",
|
|
620
|
-
secured: "ZOREAL Proof-of-Human verifikacija",
|
|
621
|
-
noIdTitle: "Nemate ZOREAL ID?",
|
|
622
|
-
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga napravite. Traje samo minutu.",
|
|
623
|
-
cancel: "Otka\u017Ei",
|
|
624
|
-
close: "Zatvori",
|
|
625
|
-
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
626
|
-
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
627
|
-
},
|
|
628
|
-
// Čeština
|
|
629
|
-
cs: {
|
|
630
|
-
title: "P\u0159ihlaste se naskenov\xE1n\xEDm",
|
|
631
|
-
titleIdentify: "Naskenujte pro ov\u011B\u0159en\xED toto\u017Enosti",
|
|
632
|
-
titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
|
|
633
|
-
titleApprove: "Potvr\u010Fte v telefonu",
|
|
634
|
-
bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
|
|
635
|
-
bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
|
|
636
|
-
bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
|
|
637
|
-
waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
|
|
638
|
-
waitingApproval: "\u010Cek\xE1n\xED na potvrzen\xED",
|
|
639
|
-
expiresIn: "Vypr\u0161\xED za {time}",
|
|
640
|
-
secured: "Ov\u011B\u0159en\xED Proof-of-Human od ZOREAL",
|
|
641
|
-
noIdTitle: "Je\u0161t\u011B nem\xE1te ZOREAL ID?",
|
|
642
|
-
noIdBody: "Naskenov\xE1n\xEDm stejn\xE9ho k\xF3du si st\xE1hnete aplikaci a zdarma vytvo\u0159\xEDte ZOREAL ID. Zabere to jen minutu.",
|
|
643
|
-
cancel: "Zru\u0161it",
|
|
644
|
-
close: "Zav\u0159\xEDt",
|
|
645
|
-
qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
|
|
646
|
-
buttonContinue: "Pokra\u010Dovat se ZOREAL"
|
|
647
|
-
},
|
|
648
|
-
// Dansk
|
|
649
|
-
da: {
|
|
650
|
-
title: "Scan for at logge ind",
|
|
651
|
-
titleIdentify: "Scan for at bekr\xE6fte din identitet",
|
|
652
|
-
titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
|
|
653
|
-
titleApprove: "Godkend p\xE5 din telefon",
|
|
654
|
-
bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
|
|
655
|
-
bodyApprove: "Godkend login i din ZOREAL ID-app.",
|
|
656
|
-
bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
|
|
657
|
-
waiting: "Venter p\xE5 scanning",
|
|
658
|
-
waitingApproval: "Venter p\xE5 godkendelse",
|
|
659
|
-
expiresIn: "Udl\xF8ber om {time}",
|
|
660
|
-
secured: "Proof-of-Human-verificering af ZOREAL",
|
|
661
|
-
noIdTitle: "Har du ikke et ZOREAL ID endnu?",
|
|
662
|
-
noIdBody: "Scan den samme kode for at hente appen og oprette et gratis. Det tager kun et minut.",
|
|
663
|
-
cancel: "Annuller",
|
|
664
|
-
close: "Luk",
|
|
665
|
-
qrAlt: "QR-kode til at logge ind med ZOREAL",
|
|
666
|
-
buttonContinue: "Forts\xE6t med ZOREAL"
|
|
667
|
-
},
|
|
668
|
-
// Ελληνικά
|
|
669
|
-
el: {
|
|
670
|
-
title: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7",
|
|
671
|
-
titleIdentify: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B1\u03BB\u03AE\u03B8\u03B5\u03C5\u03C3\u03B7 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2",
|
|
672
|
-
titlePresence: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B4\u03B5\u03AF\u03BE\u03B5\u03C4\u03B5 \u03CC\u03C4\u03B9 \u03B5\u03AF\u03C3\u03C4\u03B5 \u03C0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC\u03C2 \u03AC\u03BD\u03B8\u03C1\u03C9\u03C0\u03BF\u03C2",
|
|
673
|
-
titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
|
|
674
|
-
bodyScan: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03BA\u03AC\u03BC\u03B5\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BA\u03B9\u03BD\u03B7\u03C4\u03BF\u03CD \u03C3\u03B1\u03C2 \u03AE \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
|
|
675
|
-
bodyApprove: "\u0395\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
|
|
676
|
-
bodyEnrolling: "\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03B7 \u03C1\u03CD\u03B8\u03BC\u03B9\u03C3\u03B7 \u03C4\u03BF\u03C5 ZOREAL ID \u03C3\u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2 \u03BA\u03B1\u03B9 \u03AD\u03C0\u03B5\u03B9\u03C4\u03B1 \u03B5\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7.",
|
|
677
|
-
waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
|
|
678
|
-
waitingApproval: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03AD\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7\u03C2",
|
|
679
|
-
expiresIn: "\u039B\u03AE\u03B3\u03B5\u03B9 \u03C3\u03B5 {time}",
|
|
680
|
-
secured: "\u0395\u03C0\u03B1\u03BB\u03AE\u03B8\u03B5\u03C5\u03C3\u03B7 Proof-of-Human \u03B1\u03C0\u03CC \u03C4\u03B7 ZOREAL",
|
|
681
|
-
noIdTitle: "\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B1\u03BA\u03CC\u03BC\u03B1 ZOREAL ID;",
|
|
682
|
-
noIdBody: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF\u03BD \u03AF\u03B4\u03B9\u03BF \u03BA\u03C9\u03B4\u03B9\u03BA\u03CC \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03B1\u03C4\u03B5\u03B2\u03AC\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03BA\u03B1\u03B9 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03B4\u03C9\u03C1\u03B5\u03AC\u03BD. \u03A7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C4\u03B1\u03B9 \u03BC\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03BB\u03B5\u03C0\u03C4\u03CC.",
|
|
683
|
-
cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
|
|
684
|
-
close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
|
|
685
|
-
qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
|
|
686
|
-
buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
|
|
687
|
-
},
|
|
688
|
-
// Español (LA)
|
|
689
|
-
"es-419": {
|
|
690
|
-
title: "Escanea para iniciar sesi\xF3n",
|
|
691
|
-
titleIdentify: "Escanea para verificar tu identidad",
|
|
692
|
-
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
693
|
-
titleApprove: "Aprueba desde tu celular",
|
|
694
|
-
bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
|
|
695
|
-
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
696
|
-
bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
|
|
697
|
-
waiting: "Esperando escaneo",
|
|
698
|
-
waitingApproval: "Esperando aprobaci\xF3n",
|
|
699
|
-
expiresIn: "Expira en {time}",
|
|
700
|
-
secured: "Verificaci\xF3n Proof-of-Human de ZOREAL",
|
|
701
|
-
noIdTitle: "\xBFTodav\xEDa no tienes ZOREAL ID?",
|
|
702
|
-
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear uno gratis. Solo toma un minuto.",
|
|
703
|
-
cancel: "Cancelar",
|
|
704
|
-
close: "Cerrar",
|
|
705
|
-
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
706
|
-
buttonContinue: "Continuar con ZOREAL"
|
|
707
|
-
},
|
|
708
|
-
// Suomi
|
|
709
|
-
fi: {
|
|
710
|
-
title: "Kirjaudu sis\xE4\xE4n skannaamalla",
|
|
711
|
-
titleIdentify: "Vahvista henkil\xF6llisyytesi skannaamalla",
|
|
712
|
-
titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
|
|
713
|
-
titleApprove: "Hyv\xE4ksy puhelimessasi",
|
|
714
|
-
bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
|
|
715
|
-
bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
|
|
716
|
-
bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
|
|
717
|
-
waiting: "Odotetaan skannausta",
|
|
718
|
-
waitingApproval: "Odotetaan hyv\xE4ksynt\xE4\xE4",
|
|
719
|
-
expiresIn: "Vanhenee {time} kuluttua",
|
|
720
|
-
secured: "ZOREALin Proof-of-Human-vahvistus",
|
|
721
|
-
noIdTitle: "Eik\xF6 sinulla ole viel\xE4 ZOREAL ID:t\xE4?",
|
|
722
|
-
noIdBody: "Skannaa sama koodi ladataksesi sovelluksen ja luodaksesi tunnuksen ilmaiseksi. Se vie vain minuutin.",
|
|
723
|
-
cancel: "Peruuta",
|
|
724
|
-
close: "Sulje",
|
|
725
|
-
qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
|
|
726
|
-
buttonContinue: "Jatka ZOREALilla"
|
|
727
|
-
},
|
|
728
|
-
// עברית
|
|
729
|
-
he: {
|
|
730
|
-
title: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8",
|
|
731
|
-
titleIdentify: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D0\u05DE\u05EA \u05D0\u05EA \u05D6\u05D4\u05D5\u05EA\u05DA",
|
|
732
|
-
titlePresence: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05DB\u05D9\u05D7 \u05E9\u05D0\u05EA\u05D4 \u05D0\u05D3\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9",
|
|
733
|
-
titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
|
|
734
|
-
bodyScan: "\u05E1\u05E8\u05D5\u05E7 \u05D1\u05D0\u05DE\u05E6\u05E2\u05D5\u05EA \u05DE\u05E6\u05DC\u05DE\u05EA \u05D4\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA \u05D0\u05D5 \u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID.",
|
|
735
|
-
bodyApprove: "\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D1\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID \u05E9\u05DC\u05DA.",
|
|
736
|
-
bodyEnrolling: "\u05E1\u05D9\u05D9\u05DD \u05DC\u05D4\u05D2\u05D3\u05D9\u05E8 \u05D0\u05EA ZOREAL ID \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA, \u05D5\u05D0\u05D6 \u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA.",
|
|
737
|
-
waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
|
|
738
|
-
waitingApproval: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8",
|
|
739
|
-
expiresIn: "\u05D9\u05E4\u05D5\u05D2 \u05D1\u05E2\u05D5\u05D3 {time}",
|
|
740
|
-
secured: "\u05D0\u05D9\u05DE\u05D5\u05EA Proof-of-Human \u05DE\u05D1\u05D9\u05EA ZOREAL",
|
|
741
|
-
noIdTitle: "\u05E2\u05D3\u05D9\u05D9\u05DF \u05D0\u05D9\u05DF \u05DC\u05DA ZOREAL ID?",
|
|
742
|
-
noIdBody: "\u05E1\u05E8\u05D5\u05E7 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D5 \u05D4\u05E7\u05D5\u05D3 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E8\u05D9\u05D3 \u05D0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05D5\u05DC\u05D9\u05E6\u05D5\u05E8 \u05D0\u05D7\u05D3 \u05D1\u05D7\u05D9\u05E0\u05DD. \u05D6\u05D4 \u05DC\u05D5\u05E7\u05D7 \u05E8\u05E7 \u05D3\u05E7\u05D4.",
|
|
743
|
-
cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
|
|
744
|
-
close: "\u05E1\u05D2\u05D5\u05E8",
|
|
745
|
-
qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
|
|
746
|
-
buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
|
|
747
|
-
},
|
|
748
|
-
// Hrvatski
|
|
749
|
-
hr: {
|
|
750
|
-
title: "Skenirajte za prijavu",
|
|
751
|
-
titleIdentify: "Skenirajte za potvrdu identiteta",
|
|
752
|
-
titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
|
|
753
|
-
titleApprove: "Odobrite na svom mobitelu",
|
|
754
|
-
bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
|
|
755
|
-
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
756
|
-
bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
|
|
757
|
-
waiting: "\u010Ceka se skeniranje",
|
|
758
|
-
waitingApproval: "\u010Ceka se odobrenje",
|
|
759
|
-
expiresIn: "Isti\u010De za {time}",
|
|
760
|
-
secured: "ZOREAL Proof-of-Human provjera",
|
|
761
|
-
noIdTitle: "Nemate ZOREAL ID?",
|
|
762
|
-
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga izradite. Traje samo minutu.",
|
|
763
|
-
cancel: "Odustani",
|
|
764
|
-
close: "Zatvori",
|
|
765
|
-
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
766
|
-
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
767
|
-
},
|
|
768
|
-
// Magyar
|
|
769
|
-
hu: {
|
|
770
|
-
title: "Bejelentkez\xE9s beolvas\xE1ssal",
|
|
771
|
-
titleIdentify: "Olvassa be a szem\xE9lyazonoss\xE1ga igazol\xE1s\xE1hoz",
|
|
772
|
-
titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
|
|
773
|
-
titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
|
|
774
|
-
bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
|
|
775
|
-
bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
|
|
776
|
-
bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
|
|
777
|
-
waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
|
|
778
|
-
waitingApproval: "V\xE1rakoz\xE1s j\xF3v\xE1hagy\xE1sra",
|
|
779
|
-
expiresIn: "Lej\xE1r {time} m\xFAlva",
|
|
780
|
-
secured: "Proof-of-Human hiteles\xEDt\xE9s a ZOREAL-t\xF3l",
|
|
781
|
-
noIdTitle: "M\xE9g nincs ZOREAL ID-je?",
|
|
782
|
-
noIdBody: "Olvassa be ugyanazt a k\xF3dot az alkalmaz\xE1s let\xF6lt\xE9s\xE9hez, \xE9s hozzon l\xE9tre egyet ingyenesen. Mind\xF6ssze egy percet vesz ig\xE9nybe.",
|
|
783
|
-
cancel: "M\xE9gse",
|
|
784
|
-
close: "Bez\xE1r\xE1s",
|
|
785
|
-
qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
|
|
786
|
-
buttonContinue: "Folytat\xE1s a ZOREAL-lal"
|
|
787
|
-
},
|
|
788
|
-
// Bahasa Indonesia
|
|
789
|
-
id: {
|
|
790
|
-
title: "Pindai untuk masuk",
|
|
791
|
-
titleIdentify: "Pindai untuk memverifikasi identitas Anda",
|
|
792
|
-
titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
|
|
793
|
-
titleApprove: "Setujui di ponsel Anda",
|
|
794
|
-
bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
|
|
795
|
-
bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
|
|
796
|
-
bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
|
|
797
|
-
waiting: "Menunggu pemindaian",
|
|
798
|
-
waitingApproval: "Menunggu persetujuan",
|
|
799
|
-
expiresIn: "Berakhir dalam {time}",
|
|
800
|
-
secured: "Verifikasi Proof-of-Human oleh ZOREAL",
|
|
801
|
-
noIdTitle: "Belum punya ZOREAL ID?",
|
|
802
|
-
noIdBody: "Pindai kode yang sama untuk mengunduh aplikasi dan membuat akun secara gratis. Hanya butuh waktu satu menit.",
|
|
803
|
-
cancel: "Batal",
|
|
804
|
-
close: "Tutup",
|
|
805
|
-
qrAlt: "Kode QR untuk masuk dengan ZOREAL",
|
|
806
|
-
buttonContinue: "Lanjutkan dengan ZOREAL"
|
|
807
|
-
},
|
|
808
|
-
// Italiano
|
|
809
|
-
it: {
|
|
810
|
-
title: "Scansiona per accedere",
|
|
811
|
-
titleIdentify: "Scansiona per verificare la tua identit\xE0",
|
|
812
|
-
titlePresence: "Scansiona per dimostrare di essere una persona reale",
|
|
813
|
-
titleApprove: "Approva sul tuo telefono",
|
|
814
|
-
bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
|
|
815
|
-
bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
|
|
816
|
-
bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
|
|
817
|
-
waiting: "In attesa della scansione",
|
|
818
|
-
waitingApproval: "In attesa di approvazione",
|
|
819
|
-
expiresIn: "Scade tra {time}",
|
|
820
|
-
secured: "Verifica Proof-of-Human di ZOREAL",
|
|
821
|
-
noIdTitle: "Non hai ancora uno ZOREAL ID?",
|
|
822
|
-
noIdBody: "Scansiona lo stesso codice per scaricare l'app e crearne uno gratis. Basta un minuto.",
|
|
823
|
-
cancel: "Annulla",
|
|
824
|
-
close: "Chiudi",
|
|
825
|
-
qrAlt: "Codice QR per accedere con ZOREAL",
|
|
826
|
-
buttonContinue: "Continua con ZOREAL"
|
|
827
|
-
},
|
|
828
|
-
// Bahasa Melayu
|
|
829
|
-
ms: {
|
|
830
|
-
title: "Imbas untuk log masuk",
|
|
831
|
-
titleIdentify: "Imbas untuk mengesahkan identiti anda",
|
|
832
|
-
titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
|
|
833
|
-
titleApprove: "Luluskan di telefon anda",
|
|
834
|
-
bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
|
|
835
|
-
bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
|
|
836
|
-
bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
|
|
837
|
-
waiting: "Menunggu imbasan",
|
|
838
|
-
waitingApproval: "Menunggu kelulusan",
|
|
839
|
-
expiresIn: "Tamat tempoh dalam {time}",
|
|
840
|
-
secured: "Pengesahan Proof-of-Human oleh ZOREAL",
|
|
841
|
-
noIdTitle: "Belum ada ZOREAL ID?",
|
|
842
|
-
noIdBody: "Imbas kod yang sama untuk memuat turun aplikasi dan cipta satu secara percuma. Hanya mengambil masa seminit.",
|
|
843
|
-
cancel: "Batal",
|
|
844
|
-
close: "Tutup",
|
|
845
|
-
qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
|
|
846
|
-
buttonContinue: "Teruskan dengan ZOREAL"
|
|
847
|
-
},
|
|
848
|
-
// Nederlands
|
|
849
|
-
nl: {
|
|
850
|
-
title: "Scan om in te loggen",
|
|
851
|
-
titleIdentify: "Scan om je identiteit te verifi\xEBren",
|
|
852
|
-
titlePresence: "Scan om te bewijzen dat je een echt mens bent",
|
|
853
|
-
titleApprove: "Keur goed op je telefoon",
|
|
854
|
-
bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
|
|
855
|
-
bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
|
|
856
|
-
bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
|
|
857
|
-
waiting: "Wachten op scan",
|
|
858
|
-
waitingApproval: "Wachten op goedkeuring",
|
|
859
|
-
expiresIn: "Verloopt over {time}",
|
|
860
|
-
secured: "Proof-of-Human-verificatie door ZOREAL",
|
|
861
|
-
noIdTitle: "Nog geen ZOREAL ID?",
|
|
862
|
-
noIdBody: "Scan dezelfde code om de app te downloaden en gratis een account aan te maken. Dit duurt maar een minuut.",
|
|
863
|
-
cancel: "Annuleren",
|
|
864
|
-
close: "Sluiten",
|
|
865
|
-
qrAlt: "QR-code om in te loggen met ZOREAL",
|
|
866
|
-
buttonContinue: "Doorgaan met ZOREAL"
|
|
867
|
-
},
|
|
868
|
-
// Norsk
|
|
869
|
-
no: {
|
|
870
|
-
title: "Skann for \xE5 logge inn",
|
|
871
|
-
titleIdentify: "Skann for \xE5 bekrefte identiteten din",
|
|
872
|
-
titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
|
|
873
|
-
titleApprove: "Godkjenn p\xE5 telefonen din",
|
|
874
|
-
bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
|
|
875
|
-
bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
|
|
876
|
-
bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
|
|
877
|
-
waiting: "Venter p\xE5 skanning",
|
|
878
|
-
waitingApproval: "Venter p\xE5 godkjenning",
|
|
879
|
-
expiresIn: "Utl\xF8per om {time}",
|
|
880
|
-
secured: "Proof-of-Human-verifisering av ZOREAL",
|
|
881
|
-
noIdTitle: "Har du ikke ZOREAL ID enn\xE5?",
|
|
882
|
-
noIdBody: "Skann den samme koden for \xE5 laste ned appen og opprette en gratis. Det tar bare et minutt.",
|
|
883
|
-
cancel: "Avbryt",
|
|
884
|
-
close: "Lukk",
|
|
885
|
-
qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
|
|
886
|
-
buttonContinue: "Fortsett med ZOREAL"
|
|
887
|
-
},
|
|
888
|
-
// Polski
|
|
889
|
-
pl: {
|
|
890
|
-
title: "Zeskanuj, aby si\u0119 zalogowa\u0107",
|
|
891
|
-
titleIdentify: "Zeskanuj, aby zweryfikowa\u0107 swoj\u0105 to\u017Csamo\u015B\u0107",
|
|
892
|
-
titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
|
|
893
|
-
titleApprove: "Zatwierd\u017A w telefonie",
|
|
894
|
-
bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
|
|
895
|
-
bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
|
|
896
|
-
bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
|
|
897
|
-
waiting: "Czekanie na skan",
|
|
898
|
-
waitingApproval: "Czekanie na zatwierdzenie",
|
|
899
|
-
expiresIn: "Wygasa za {time}",
|
|
900
|
-
secured: "Weryfikacja Proof-of-Human od ZOREAL",
|
|
901
|
-
noIdTitle: "Nie masz jeszcze ZOREAL ID?",
|
|
902
|
-
noIdBody: "Zeskanuj ten sam kod, aby pobra\u0107 aplikacj\u0119 i bezp\u0142atnie utworzy\u0107 ZOREAL ID. Zajmie to tylko minut\u0119.",
|
|
903
|
-
cancel: "Anuluj",
|
|
904
|
-
close: "Zamknij",
|
|
905
|
-
qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
|
|
906
|
-
buttonContinue: "Kontynuuj z ZOREAL"
|
|
907
|
-
},
|
|
908
|
-
// Português (BR)
|
|
909
|
-
"pt-br": {
|
|
910
|
-
title: "Escaneie para entrar",
|
|
911
|
-
titleIdentify: "Escaneie para verificar sua identidade",
|
|
912
|
-
titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
|
|
913
|
-
titleApprove: "Aprove no seu celular",
|
|
914
|
-
bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
|
|
915
|
-
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
916
|
-
bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
|
|
917
|
-
waiting: "Aguardando escaneamento",
|
|
918
|
-
waitingApproval: "Aguardando aprova\xE7\xE3o",
|
|
919
|
-
expiresIn: "Expira em {time}",
|
|
920
|
-
secured: "Verifica\xE7\xE3o Proof-of-Human da ZOREAL",
|
|
921
|
-
noIdTitle: "Ainda n\xE3o tem um ZOREAL ID?",
|
|
922
|
-
noIdBody: "Escaneie o mesmo c\xF3digo para baixar o app e criar um de gra\xE7a. Leva s\xF3 um minuto.",
|
|
923
|
-
cancel: "Cancelar",
|
|
924
|
-
close: "Fechar",
|
|
925
|
-
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
926
|
-
buttonContinue: "Continuar com ZOREAL"
|
|
927
|
-
},
|
|
928
|
-
// Română
|
|
929
|
-
ro: {
|
|
930
|
-
title: "Scana\u021Bi pentru conectare",
|
|
931
|
-
titleIdentify: "Scana\u021Bi pentru a v\u0103 verifica identitatea",
|
|
932
|
-
titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
|
|
933
|
-
titleApprove: "Aproba\u021Bi de pe telefon",
|
|
934
|
-
bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
|
|
935
|
-
bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
|
|
936
|
-
bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
|
|
937
|
-
waiting: "Se a\u0219teapt\u0103 scanarea",
|
|
938
|
-
waitingApproval: "Se a\u0219teapt\u0103 aprobarea",
|
|
939
|
-
expiresIn: "Expir\u0103 \xEEn {time}",
|
|
940
|
-
secured: "Verificare Proof-of-Human de la ZOREAL",
|
|
941
|
-
noIdTitle: "Nu ave\u021Bi \xEEnc\u0103 un ZOREAL ID?",
|
|
942
|
-
noIdBody: "Scana\u021Bi acela\u0219i cod pentru a desc\u0103rca aplica\u021Bia \u0219i a crea unul gratuit. Dureaz\u0103 doar un minut.",
|
|
943
|
-
cancel: "Anuleaz\u0103",
|
|
944
|
-
close: "\xCEnchide",
|
|
945
|
-
qrAlt: "Cod QR pentru conectare cu ZOREAL",
|
|
946
|
-
buttonContinue: "Continua\u021Bi cu ZOREAL"
|
|
947
|
-
},
|
|
948
|
-
// Српски
|
|
949
|
-
sr: {
|
|
950
|
-
title: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443",
|
|
951
|
-
titleIdentify: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u043F\u043E\u0442\u0432\u0440\u0434\u0438\u0442\u0435 \u0441\u0432\u043E\u0458 \u0438\u0434\u0435\u043D\u0442\u0438\u0442\u0435\u0442",
|
|
952
|
-
titlePresence: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0442\u0435 \u043F\u0440\u0430\u0432\u0430 \u043E\u0441\u043E\u0431\u0430",
|
|
953
|
-
titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
|
|
954
|
-
bodyScan: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u043C \u0441\u0432\u043E\u0433 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u043E\u043C ZOREAL ID.",
|
|
955
|
-
bodyApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u0443 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0438 ZOREAL ID.",
|
|
956
|
-
bodyEnrolling: "\u0414\u043E\u0432\u0440\u0448\u0438\u0442\u0435 \u043F\u043E\u0434\u0435\u0448\u0430\u0432\u0430\u045A\u0435 ZOREAL ID-\u0430 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443, \u043F\u0430 \u043E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443.",
|
|
957
|
-
waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
|
|
958
|
-
waitingApproval: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u043E\u0434\u043E\u0431\u0440\u0435\u045A\u0435",
|
|
959
|
-
expiresIn: "\u0418\u0441\u0442\u0438\u0447\u0435 \u0437\u0430 {time}",
|
|
960
|
-
secured: "ZOREAL Proof-of-Human \u0432\u0435\u0440\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0458\u0430",
|
|
961
|
-
noIdTitle: "\u041D\u0435\u043C\u0430\u0442\u0435 ZOREAL ID?",
|
|
962
|
-
noIdBody: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0438\u0441\u0442\u0438 \u043A\u043E\u0434 \u0434\u0430 \u043F\u0440\u0435\u0443\u0437\u043C\u0435\u0442\u0435 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0443 \u0438 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E \u0433\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u0435. \u0422\u0440\u0430\u0458\u0435 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442.",
|
|
963
|
-
cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
|
|
964
|
-
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
965
|
-
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
|
|
966
|
-
buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
|
|
967
|
-
},
|
|
968
|
-
// ไทย
|
|
969
|
-
th: {
|
|
970
|
-
title: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
|
|
971
|
-
titleIdentify: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E15\u0E31\u0E27\u0E15\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
972
|
-
titlePresence: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E1E\u0E34\u0E2A\u0E39\u0E08\u0E19\u0E4C\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E40\u0E1B\u0E47\u0E19\u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E08\u0E23\u0E34\u0E07",
|
|
973
|
-
titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
974
|
-
bodyScan: "\u0E2A\u0E41\u0E01\u0E19\u0E14\u0E49\u0E27\u0E22\u0E01\u0E25\u0E49\u0E2D\u0E07\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E2B\u0E23\u0E37\u0E2D\u0E41\u0E2D\u0E1B ZOREAL ID",
|
|
975
|
-
bodyApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E43\u0E19\u0E41\u0E2D\u0E1B ZOREAL ID \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
976
|
-
bodyEnrolling: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 ZOREAL ID \u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E43\u0E2B\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 \u0E41\u0E25\u0E49\u0E27\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
|
|
977
|
-
waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
|
|
978
|
-
waitingApproval: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34",
|
|
979
|
-
expiresIn: "\u0E2B\u0E21\u0E14\u0E2D\u0E32\u0E22\u0E38\u0E43\u0E19 {time}",
|
|
980
|
-
secured: "\u0E01\u0E32\u0E23\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E15\u0E31\u0E27\u0E15\u0E19 Proof-of-Human \u0E42\u0E14\u0E22 ZOREAL",
|
|
981
|
-
noIdTitle: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35 ZOREAL ID \u0E43\u0E0A\u0E48\u0E44\u0E2B\u0E21",
|
|
982
|
-
noIdBody: "\u0E2A\u0E41\u0E01\u0E19\u0E42\u0E04\u0E49\u0E14\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E2D\u0E1B\u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1F\u0E23\u0E35 \u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E19\u0E32\u0E17\u0E35\u0E40\u0E14\u0E35\u0E22\u0E27",
|
|
983
|
-
cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
|
|
984
|
-
close: "\u0E1B\u0E34\u0E14",
|
|
985
|
-
qrAlt: "\u0E04\u0E34\u0E27\u0E2D\u0E32\u0E23\u0E4C\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E14\u0E49\u0E27\u0E22 ZOREAL",
|
|
986
|
-
buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
|
|
987
|
-
},
|
|
988
|
-
// Tagalog
|
|
989
|
-
tl: {
|
|
990
|
-
title: "I-scan para mag-sign in",
|
|
991
|
-
titleIdentify: "I-scan para i-verify ang iyong pagkakakilanlan",
|
|
992
|
-
titlePresence: "I-scan para patunayang tunay kang tao",
|
|
993
|
-
titleApprove: "I-approve sa iyong telepono",
|
|
994
|
-
bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
|
|
995
|
-
bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
|
|
996
|
-
bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
|
|
997
|
-
waiting: "Naghihintay ng scan",
|
|
998
|
-
waitingApproval: "Naghihintay ng approval",
|
|
999
|
-
expiresIn: "Mag-e-expire sa {time}",
|
|
1000
|
-
secured: "Proof-of-Human verification mula sa ZOREAL",
|
|
1001
|
-
noIdTitle: "Wala ka pang ZOREAL ID?",
|
|
1002
|
-
noIdBody: "I-scan ang parehong code para i-download ang app at gumawa ng iyong ZOREAL ID nang libre. Isang minuto lang ito.",
|
|
1003
|
-
cancel: "Kanselahin",
|
|
1004
|
-
close: "Isara",
|
|
1005
|
-
qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
|
|
1006
|
-
buttonContinue: "Magpatuloy gamit ang ZOREAL"
|
|
1007
|
-
},
|
|
1008
|
-
// Türkçe
|
|
1009
|
-
tr: {
|
|
1010
|
-
title: "Giri\u015F i\xE7in taray\u0131n",
|
|
1011
|
-
titleIdentify: "Kimli\u011Finizi do\u011Frulamak i\xE7in taray\u0131n",
|
|
1012
|
-
titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
|
|
1013
|
-
titleApprove: "Telefonunuzdan onaylay\u0131n",
|
|
1014
|
-
bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
|
|
1015
|
-
bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
|
|
1016
|
-
bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
|
|
1017
|
-
waiting: "Tarama bekleniyor",
|
|
1018
|
-
waitingApproval: "Onay bekleniyor",
|
|
1019
|
-
expiresIn: "{time} i\xE7inde sona erer",
|
|
1020
|
-
secured: "ZOREAL taraf\u0131ndan Proof-of-Human do\u011Frulamas\u0131",
|
|
1021
|
-
noIdTitle: "Hen\xFCz ZOREAL ID'niz yok mu?",
|
|
1022
|
-
noIdBody: "Uygulamay\u0131 indirmek ve \xFCcretsiz bir tane olu\u015Fturmak i\xE7in ayn\u0131 kodu taray\u0131n. Sadece bir dakikan\u0131z\u0131 al\u0131r.",
|
|
1023
|
-
cancel: "\u0130ptal",
|
|
1024
|
-
close: "Kapat",
|
|
1025
|
-
qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
|
|
1026
|
-
buttonContinue: "ZOREAL ile devam et"
|
|
1027
|
-
},
|
|
1028
|
-
// Українська
|
|
1029
|
-
uk: {
|
|
1030
|
-
title: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443",
|
|
1031
|
-
titleIdentify: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043E\u0441\u043E\u0431\u0443",
|
|
1032
|
-
titlePresence: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u0434\u043E\u0432\u0435\u0441\u0442\u0438, \u0449\u043E \u0432\u0438 \u0441\u043F\u0440\u0430\u0432\u0436\u043D\u044F \u043B\u044E\u0434\u0438\u043D\u0430",
|
|
1033
|
-
titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
|
|
1034
|
-
bodyScan: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u044E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443 \u0430\u0431\u043E \u0434\u043E\u0434\u0430\u0442\u043A\u043E\u043C ZOREAL ID.",
|
|
1035
|
-
bodyApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434 \u0443 \u0434\u043E\u0434\u0430\u0442\u043A\u0443 ZOREAL ID.",
|
|
1036
|
-
bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0456\u0442\u044C \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456, \u0430 \u043F\u043E\u0442\u0456\u043C \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434.",
|
|
1037
|
-
waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
|
|
1038
|
-
waitingApproval: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F",
|
|
1039
|
-
expiresIn: "\u0421\u043F\u043B\u0438\u0432\u0430\u0454 \u0447\u0435\u0440\u0435\u0437 {time}",
|
|
1040
|
-
secured: "\u041F\u0435\u0440\u0435\u0432\u0456\u0440\u043A\u0430 Proof-of-Human \u0432\u0456\u0434 ZOREAL",
|
|
1041
|
-
noIdTitle: "\u0429\u0435 \u043D\u0435\u043C\u0430\u0454 ZOREAL ID?",
|
|
1042
|
-
noIdBody: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0442\u043E\u0439 \u0441\u0430\u043C\u0438\u0439 \u043A\u043E\u0434, \u0449\u043E\u0431 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0434\u043E\u0434\u0430\u0442\u043E\u043A \u0456 \u0431\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E \u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0439\u043E\u0433\u043E. \u0426\u0435 \u0437\u0430\u0439\u043C\u0435 \u043B\u0438\u0448\u0435 \u0445\u0432\u0438\u043B\u0438\u043D\u0443.",
|
|
1043
|
-
cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
1044
|
-
close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
|
|
1045
|
-
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
|
|
1046
|
-
buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
|
|
1047
|
-
},
|
|
1048
|
-
// اردو
|
|
1049
|
-
ur: {
|
|
1050
|
-
title: "\u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
1051
|
-
titleIdentify: "\u0627\u067E\u0646\u06CC \u0634\u0646\u0627\u062E\u062A \u06A9\u06CC \u062A\u0635\u062F\u06CC\u0642 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
1052
|
-
titlePresence: "\u06CC\u06C1 \u062B\u0627\u0628\u062A \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA \u06A9\u06C1 \u0622\u067E \u0627\u06CC\u06A9 \u062D\u0642\u06CC\u0642\u06CC \u0627\u0646\u0633\u0627\u0646 \u06C1\u06CC\u06BA",
|
|
1053
|
-
titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
|
|
1054
|
-
bodyScan: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u06A9\u06D2 \u06A9\u06CC\u0645\u0631\u06D2 \u06CC\u0627 ZOREAL ID \u0627\u06CC\u067E \u0633\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
1055
|
-
bodyApprove: "\u0627\u067E\u0646\u06CC ZOREAL ID \u0627\u06CC\u067E \u0645\u06CC\u06BA \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
|
|
1056
|
-
bodyEnrolling: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 ZOREAL ID \u06A9\u06CC \u0633\u06CC\u0679 \u0627\u067E \u0645\u06A9\u0645\u0644 \u06A9\u0631\u06CC\u06BA\u060C \u067E\u06BE\u0631 \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
|
|
1057
|
-
waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
|
|
1058
|
-
waitingApproval: "\u0645\u0646\u0638\u0648\u0631\u06CC \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
|
|
1059
|
-
expiresIn: "{time} \u0645\u06CC\u06BA \u062E\u062A\u0645 \u06C1\u0648\u06AF\u0627",
|
|
1060
|
-
secured: "ZOREAL \u06A9\u06CC \u062C\u0627\u0646\u0628 \u0633\u06D2 Proof-of-Human \u062A\u0635\u062F\u06CC\u0642",
|
|
1061
|
-
noIdTitle: "\u0627\u0628\u06BE\u06CC \u062A\u06A9 ZOREAL ID \u0646\u06C1\u06CC\u06BA \u06C1\u06D2\u061F",
|
|
1062
|
-
noIdBody: "\u0627\u06CC\u067E \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06A9\u0631\u0646\u06D2 \u0627\u0648\u0631 \u0645\u0641\u062A \u0645\u06CC\u06BA \u0627\u06CC\u06A9 \u0628\u0646\u0627\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0648\u06C1\u06CC \u06A9\u0648\u0688 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4 \u0627\u0633 \u0645\u06CC\u06BA \u0635\u0631\u0641 \u0627\u06CC\u06A9 \u0645\u0646\u0679 \u0644\u06AF\u062A\u0627 \u06C1\u06D2\u06D4",
|
|
1063
|
-
cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
|
|
1064
|
-
close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
|
|
1065
|
-
qrAlt: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 QR \u06A9\u0648\u0688",
|
|
1066
|
-
buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
|
|
1067
|
-
},
|
|
1068
|
-
// Tiếng Việt
|
|
1069
|
-
vi: {
|
|
1070
|
-
title: "Qu\xE9t \u0111\u1EC3 \u0111\u0103ng nh\u1EADp",
|
|
1071
|
-
titleIdentify: "Qu\xE9t \u0111\u1EC3 x\xE1c minh danh t\xEDnh c\u1EE7a b\u1EA1n",
|
|
1072
|
-
titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
|
|
1073
|
-
titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
|
|
1074
|
-
bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
|
|
1075
|
-
bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
|
|
1076
|
-
bodyEnrolling: "Ho\xE0n t\u1EA5t thi\u1EBFt l\u1EADp ZOREAL ID tr\xEAn \u0111i\u1EC7n tho\u1EA1i, sau \u0111\xF3 ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp.",
|
|
1077
|
-
waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
|
|
1078
|
-
waitingApproval: "\u0110ang ch\u1EDD ph\xEA duy\u1EC7t",
|
|
1079
|
-
expiresIn: "H\u1EBFt h\u1EA1n sau {time}",
|
|
1080
|
-
secured: "X\xE1c minh Proof-of-Human b\u1EDFi ZOREAL",
|
|
1081
|
-
noIdTitle: "Ch\u01B0a c\xF3 ZOREAL ID?",
|
|
1082
|
-
noIdBody: "Qu\xE9t c\xF9ng m\xE3 n\xE0y \u0111\u1EC3 t\u1EA3i \u1EE9ng d\u1EE5ng v\xE0 t\u1EA1o t\xE0i kho\u1EA3n mi\u1EC5n ph\xED. Ch\u1EC9 m\u1EA5t m\u1ED9t ph\xFAt.",
|
|
1083
|
-
cancel: "H\u1EE7y",
|
|
1084
|
-
close: "\u0110\xF3ng",
|
|
1085
|
-
qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
|
|
1086
|
-
buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
|
|
1087
|
-
}
|
|
1088
|
-
};
|
|
1089
|
-
var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
|
|
1090
|
-
var ALIASES = {
|
|
1091
|
-
nb: "no",
|
|
1092
|
-
// Bokmål — what we actually wrote
|
|
1093
|
-
nn: "no",
|
|
1094
|
-
// Nynorsk reader, served Bokmål: closer than English
|
|
1095
|
-
fil: "tl",
|
|
1096
|
-
// Filipino / Tagalog
|
|
1097
|
-
iw: "he",
|
|
1098
|
-
// superseded code for Hebrew, still emitted by some platforms
|
|
1099
|
-
in: "id"
|
|
1100
|
-
// superseded code for Indonesian
|
|
1101
|
-
};
|
|
1102
|
-
var LATAM = /* @__PURE__ */ new Set([
|
|
1103
|
-
"ar",
|
|
1104
|
-
"bo",
|
|
1105
|
-
"cl",
|
|
1106
|
-
"co",
|
|
1107
|
-
"cr",
|
|
1108
|
-
"cu",
|
|
1109
|
-
"do",
|
|
1110
|
-
"ec",
|
|
1111
|
-
"gt",
|
|
1112
|
-
"hn",
|
|
1113
|
-
"mx",
|
|
1114
|
-
"ni",
|
|
1115
|
-
"pa",
|
|
1116
|
-
"pe",
|
|
1117
|
-
"pr",
|
|
1118
|
-
"py",
|
|
1119
|
-
"sv",
|
|
1120
|
-
"uy",
|
|
1121
|
-
"ve",
|
|
1122
|
-
"419"
|
|
1123
|
-
]);
|
|
1124
|
-
function lookup(locale) {
|
|
1125
|
-
const tag = locale.toLowerCase().replace(/_/g, "-");
|
|
1126
|
-
const parts = tag.split("-");
|
|
1127
|
-
const primary = ALIASES[parts[0]] ?? parts[0];
|
|
1128
|
-
const region = parts[1];
|
|
1129
|
-
if (primary === "zh") {
|
|
1130
|
-
const simplified = /(^|-)(hans|cn|sg|my)(-|$)/.test(tag);
|
|
1131
|
-
return TRANSLATIONS[simplified ? "zhs" : "zht"];
|
|
1132
|
-
}
|
|
1133
|
-
if (primary === "es" && region && LATAM.has(region)) return TRANSLATIONS["es-419"];
|
|
1134
|
-
if (primary === "pt" && region === "br") return TRANSLATIONS["pt-br"];
|
|
1135
|
-
return TRANSLATIONS[tag] ?? TRANSLATIONS[primary];
|
|
1136
|
-
}
|
|
1137
|
-
function browserLocales() {
|
|
1138
|
-
if (typeof navigator === "undefined") return [];
|
|
1139
|
-
const nav = navigator;
|
|
1140
|
-
if (nav.languages && nav.languages.length) return [...nav.languages];
|
|
1141
|
-
return nav.language ? [nav.language] : [];
|
|
1142
|
-
}
|
|
1143
|
-
function strings(locale) {
|
|
1144
|
-
if (locale) return lookup(locale) ?? en;
|
|
1145
|
-
for (const candidate of browserLocales()) {
|
|
1146
|
-
const hit = lookup(candidate);
|
|
1147
|
-
if (hit) return hit;
|
|
1148
|
-
}
|
|
1149
|
-
return en;
|
|
1150
|
-
}
|
|
1151
|
-
function isRtl(locale) {
|
|
1152
|
-
const tag = locale ?? browserLocales()[0];
|
|
1153
|
-
if (!tag) return false;
|
|
1154
|
-
return RTL.has(tag.toLowerCase().replace(/_/g, "-").split("-")[0]);
|
|
1155
|
-
}
|
|
1156
|
-
function interpolate(template, time) {
|
|
1157
|
-
return template.replace("{time}", time);
|
|
1158
|
-
}
|
|
1159
|
-
|
|
1160
|
-
// src/styles.ts
|
|
1161
|
-
var PREFIX2 = "zrl";
|
|
1162
|
-
var cx = (name) => `${PREFIX2}-${name}`;
|
|
1163
|
-
var STYLE_ELEMENT_ID = "zoreal-pairing-styles";
|
|
1164
|
-
var LIGHT = `
|
|
1165
|
-
--zrl-scrim: rgba(16, 18, 27, 0.45);
|
|
1166
|
-
--zrl-surface: #ffffff;
|
|
1167
|
-
--zrl-surface-sunken: #f6f7f9;
|
|
1168
|
-
--zrl-ink: #16181c;
|
|
1169
|
-
--zrl-ink-soft: #4a4f57;
|
|
1170
|
-
--zrl-ink-mute: #6b7078;
|
|
1171
|
-
--zrl-line: #e4e6ea;
|
|
1172
|
-
--zrl-line-soft: #eef0f3;
|
|
1173
|
-
--zrl-accent: #00b4d9;
|
|
1174
|
-
--zrl-accent-soft: #dcf3fa;
|
|
1175
|
-
--zrl-accent-ink: #04698a;
|
|
1176
|
-
--zrl-urgent: #b4761a;
|
|
1177
|
-
--zrl-qr-bg: #ffffff;
|
|
1178
|
-
--zrl-qr-filter: none;
|
|
1179
|
-
--zrl-qr-spent-filter: blur(3px);
|
|
1180
|
-
--zrl-qr-blend: normal;
|
|
1181
|
-
--zrl-shadow: 0 1px 2px rgba(16, 18, 27, 0.06), 0 20px 50px -12px rgba(16, 18, 27, 0.3);
|
|
1182
|
-
--zrl-ring: rgba(16, 18, 27, 0.07);
|
|
1183
|
-
/* The light on the QR well's edge. Brand blue on both grounds, a lighter
|
|
1184
|
-
tint at the head; only its strength is themed, see the dark block. */
|
|
1185
|
-
--zrl-beam: #00b4d9;
|
|
1186
|
-
--zrl-beam-head: #7fe0f4;
|
|
1187
|
-
--zrl-beam-line: 2px;
|
|
1188
|
-
--zrl-glow-core: 4px;
|
|
1189
|
-
--zrl-glow-reach: 24px;
|
|
1190
|
-
--zrl-glow-blur: 8px;
|
|
1191
|
-
--zrl-glow-opacity: 0.6;
|
|
1192
|
-
`;
|
|
1193
|
-
var DARK = `
|
|
1194
|
-
--zrl-scrim: rgba(0, 0, 0, 0.62);
|
|
1195
|
-
--zrl-surface: #17191d;
|
|
1196
|
-
--zrl-surface-sunken: #1f2226;
|
|
1197
|
-
--zrl-ink: #f4f5f7;
|
|
1198
|
-
--zrl-ink-soft: #b3b8c0;
|
|
1199
|
-
--zrl-ink-mute: #8b9199;
|
|
1200
|
-
--zrl-line: #2c3036;
|
|
1201
|
-
--zrl-line-soft: #24272c;
|
|
1202
|
-
--zrl-accent: #34c9e8;
|
|
1203
|
-
--zrl-accent-soft: #0d3b47;
|
|
1204
|
-
--zrl-accent-ink: #7fdcf0;
|
|
1205
|
-
--zrl-urgent: #e0a952;
|
|
1206
|
-
/* The code is drawn light on the dark surface: the panel is transparent
|
|
1207
|
-
and the image is inverted and screened, so only the modules and the
|
|
1208
|
-
mark show. */
|
|
1209
|
-
--zrl-qr-bg: transparent;
|
|
1210
|
-
--zrl-qr-filter: invert(1);
|
|
1211
|
-
--zrl-qr-spent-filter: invert(1) blur(3px);
|
|
1212
|
-
--zrl-qr-blend: screen;
|
|
1213
|
-
--zrl-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 20px 50px -12px rgba(0, 0, 0, 0.65);
|
|
1214
|
-
--zrl-ring: rgba(255, 255, 255, 0.1);
|
|
1215
|
-
/* A glow that reads on a white card disappears on a dark one: the light
|
|
1216
|
-
here is brighter and wider, and its halo reaches further out. */
|
|
1217
|
-
--zrl-beam: #22c8ec;
|
|
1218
|
-
--zrl-beam-head: #c2f3fc;
|
|
1219
|
-
--zrl-beam-line: 3px;
|
|
1220
|
-
--zrl-glow-core: 6px;
|
|
1221
|
-
--zrl-glow-reach: 32px;
|
|
1222
|
-
--zrl-glow-blur: 10px;
|
|
1223
|
-
--zrl-glow-opacity: 0.85;
|
|
1224
|
-
`;
|
|
1225
|
-
var CSS = `
|
|
1226
|
-
.${PREFIX2}-root { ${LIGHT} }
|
|
1227
|
-
.${PREFIX2}-root[data-theme="dark"] { ${DARK} }
|
|
1228
|
-
@media (prefers-color-scheme: dark) {
|
|
1229
|
-
.${PREFIX2}-root[data-theme="auto"] { ${DARK} }
|
|
1230
|
-
}
|
|
1231
|
-
|
|
1232
|
-
.${PREFIX2}-scrim {
|
|
1233
|
-
position: fixed;
|
|
1234
|
-
inset: 0;
|
|
1235
|
-
z-index: 2147483000;
|
|
1236
|
-
display: grid;
|
|
1237
|
-
place-items: center;
|
|
1238
|
-
overflow-y: auto;
|
|
1239
|
-
padding: 16px;
|
|
1240
|
-
background: var(--zrl-scrim);
|
|
1241
|
-
backdrop-filter: blur(3px);
|
|
1242
|
-
-webkit-backdrop-filter: blur(3px);
|
|
1243
|
-
font-family: inherit;
|
|
1244
|
-
animation: ${PREFIX2}-fade 200ms ease-out both;
|
|
1245
|
-
}
|
|
1246
|
-
|
|
1247
|
-
.${PREFIX2}-card {
|
|
1248
|
-
position: relative;
|
|
1249
|
-
box-sizing: border-box;
|
|
1250
|
-
width: 100%;
|
|
1251
|
-
max-width: 380px;
|
|
1252
|
-
border-radius: 16px;
|
|
1253
|
-
background: var(--zrl-surface);
|
|
1254
|
-
color: var(--zrl-ink);
|
|
1255
|
-
box-shadow: var(--zrl-shadow);
|
|
1256
|
-
outline: 1px solid var(--zrl-ring);
|
|
1257
|
-
outline-offset: -1px;
|
|
1258
|
-
text-align: center;
|
|
1259
|
-
animation: ${PREFIX2}-rise 300ms cubic-bezier(0.23, 1, 0.32, 1) both;
|
|
1260
|
-
}
|
|
1261
|
-
|
|
1262
|
-
.${PREFIX2}-body { padding: 28px 24px 20px; }
|
|
1263
|
-
|
|
1264
|
-
.${PREFIX2}-lockup { display: block; margin: 0 auto; color: var(--zrl-ink); }
|
|
1265
|
-
|
|
1266
|
-
.${PREFIX2}-title {
|
|
1267
|
-
margin: 18px 0 0;
|
|
1268
|
-
font-size: 18px;
|
|
1269
|
-
font-weight: 600;
|
|
1270
|
-
letter-spacing: -0.01em;
|
|
1271
|
-
line-height: 1.3;
|
|
1272
|
-
color: var(--zrl-ink);
|
|
1273
|
-
}
|
|
1274
|
-
|
|
1275
|
-
.${PREFIX2}-body-text {
|
|
1276
|
-
margin: 6px auto 0;
|
|
1277
|
-
max-width: 30ch;
|
|
1278
|
-
font-size: 14px;
|
|
1279
|
-
line-height: 1.55;
|
|
1280
|
-
color: var(--zrl-ink-soft);
|
|
1281
|
-
}
|
|
1282
|
-
|
|
1283
|
-
.${PREFIX2}-qr-well {
|
|
1284
|
-
position: relative;
|
|
1285
|
-
display: grid;
|
|
1286
|
-
place-items: center;
|
|
1287
|
-
box-sizing: border-box;
|
|
1288
|
-
width: 204px;
|
|
1289
|
-
height: 204px;
|
|
1290
|
-
margin: 20px auto 0;
|
|
1291
|
-
padding: 12px;
|
|
1292
|
-
border: 1px solid var(--zrl-line);
|
|
1293
|
-
border-radius: var(--zrl-radius);
|
|
1294
|
-
background: var(--zrl-qr-bg);
|
|
1295
|
-
/* The light on the edge takes its shape from here and its colour and
|
|
1296
|
-
strength from the theme tokens above. One lap in 4s on every tier. */
|
|
1297
|
-
--zrl-radius: 16px;
|
|
1298
|
-
--zrl-beam-time: 4s;
|
|
1299
|
-
}
|
|
1300
|
-
|
|
1301
|
-
/* The light on the well's edge: a short comet running along the border, with
|
|
1302
|
-
a soft glow outside it. Three overlays inside the well, each masked so the
|
|
1303
|
-
comet can only ever paint where its mask allows, and the white interior lies
|
|
1304
|
-
outside every mask: nothing here can reach the quiet zone a camera needs,
|
|
1305
|
-
whatever the comet is doing. The mask is the padding box cut out of the
|
|
1306
|
-
border box, a transparent layer clipped to the padding box intersected
|
|
1307
|
-
with a solid one clipped to the border box. The prefixed form is for Chrome
|
|
1308
|
-
before 120 and Safari before 15.4; the unprefixed one, declared after it,
|
|
1309
|
-
wins everywhere else.
|
|
1310
|
-
|
|
1311
|
-
qr-beam keeps a thin ring on the border line: the comet itself.
|
|
1312
|
-
qr-beam-glow is the glow: a wide band outside the well that blurs whatever
|
|
1313
|
-
is inside it, and inside it qr-beam-glow-band keeps a 3px ring with a
|
|
1314
|
-
second copy of the comet. The blur has to sit on the parent because a
|
|
1315
|
-
filter is applied before a mask: blurred on the band itself, the glow
|
|
1316
|
-
would be cut back to the band's own edge. On the parent it runs after the
|
|
1317
|
-
band has clipped the comet thin and before the parent's mask cuts away the
|
|
1318
|
-
inward half, which is what makes it fade outward and never over the QR.
|
|
1319
|
-
All three share one containing block, the well's padding box, so the two
|
|
1320
|
-
comets ride the same path; the spent badge is a later sibling and paints
|
|
1321
|
-
above them. */
|
|
1322
|
-
.${PREFIX2}-qr-beam,
|
|
1323
|
-
.${PREFIX2}-qr-beam-glow,
|
|
1324
|
-
.${PREFIX2}-qr-beam-glow-band {
|
|
1325
|
-
position: absolute;
|
|
1326
|
-
inset: calc(0px - var(--zrl-beam-line));
|
|
1327
|
-
border: var(--zrl-beam-line) solid transparent;
|
|
1328
|
-
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-beam-line));
|
|
1329
|
-
pointer-events: none;
|
|
1330
|
-
-webkit-mask: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
|
|
1331
|
-
-webkit-mask-clip: padding-box, border-box;
|
|
1332
|
-
-webkit-mask-composite: source-in;
|
|
1333
|
-
mask: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
|
|
1334
|
-
mask-clip: padding-box, border-box;
|
|
1335
|
-
mask-composite: intersect;
|
|
1336
|
-
}
|
|
1337
|
-
.${PREFIX2}-qr-beam-glow {
|
|
1338
|
-
inset: calc(0px - var(--zrl-glow-reach));
|
|
1339
|
-
border-width: var(--zrl-glow-reach);
|
|
1340
|
-
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-glow-reach));
|
|
1341
|
-
filter: blur(var(--zrl-glow-blur));
|
|
1342
|
-
opacity: var(--zrl-glow-opacity);
|
|
1343
|
-
will-change: filter;
|
|
1344
|
-
}
|
|
1345
|
-
.${PREFIX2}-qr-beam-glow-band {
|
|
1346
|
-
inset: calc(0px - var(--zrl-glow-core));
|
|
1347
|
-
border-width: var(--zrl-glow-core);
|
|
1348
|
-
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-glow-core));
|
|
1349
|
-
}
|
|
1350
|
-
|
|
1351
|
-
/* At rest the edge holds a dim, even blue: a 1px line on the border and, from
|
|
1352
|
-
the glow band, a soft halo outside it. Hidden while the comet runs, so the
|
|
1353
|
-
border reads as the well's own line with a light passing over it; shown
|
|
1354
|
-
once the light has stopped. Every path below ends here, which is what
|
|
1355
|
-
makes them look the same at rest. */
|
|
1356
|
-
.${PREFIX2}-qr-beam::before,
|
|
1357
|
-
.${PREFIX2}-qr-beam-glow-band::before {
|
|
1358
|
-
content: '';
|
|
1359
|
-
position: absolute;
|
|
1360
|
-
inset: -50%;
|
|
1361
|
-
background: var(--zrl-beam);
|
|
1362
|
-
opacity: 0;
|
|
1363
|
-
transition: opacity 400ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
422
|
+
|
|
423
|
+
/* At rest the edge holds a dim, even blue: a 1px line on the border and, from
|
|
424
|
+
the glow band, a soft halo outside it. Hidden while the comet runs, so the
|
|
425
|
+
border reads as the well's own line with a light passing over it; shown
|
|
426
|
+
once the light has stopped. Every path below ends here, which is what
|
|
427
|
+
makes them look the same at rest. */
|
|
428
|
+
.${PREFIX}-qr-beam::before,
|
|
429
|
+
.${PREFIX}-qr-beam-glow-band::before {
|
|
430
|
+
content: '';
|
|
431
|
+
position: absolute;
|
|
432
|
+
inset: -50%;
|
|
433
|
+
background: var(--zrl-beam);
|
|
434
|
+
opacity: 0;
|
|
435
|
+
transition: opacity 400ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
1364
436
|
}
|
|
1365
437
|
|
|
1366
438
|
/* The moving light: an oversized square carrying a conic sweep, rotated
|
|
1367
439
|
whole. A transform animation runs on the compositor, so the light keeps
|
|
1368
440
|
moving while the page is busy; animating the gradient angle instead
|
|
1369
441
|
repaints every frame on the main thread and stutters. */
|
|
1370
|
-
.${
|
|
1371
|
-
.${
|
|
442
|
+
.${PREFIX}-qr-beam::after,
|
|
443
|
+
.${PREFIX}-qr-beam-glow-band::after {
|
|
1372
444
|
content: '';
|
|
1373
445
|
position: absolute;
|
|
1374
446
|
inset: -50%;
|
|
@@ -1379,7 +451,7 @@ var CSS = `
|
|
|
1379
451
|
var(--zrl-beam-head) 348deg,
|
|
1380
452
|
transparent 356deg 360deg
|
|
1381
453
|
);
|
|
1382
|
-
animation: ${
|
|
454
|
+
animation: ${PREFIX}-orbit var(--zrl-beam-time) linear infinite;
|
|
1383
455
|
will-change: transform;
|
|
1384
456
|
transition: opacity 400ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
1385
457
|
}
|
|
@@ -1387,15 +459,15 @@ var CSS = `
|
|
|
1387
459
|
/* Spent: the light stops where it is and fades, and the edge settles to the
|
|
1388
460
|
dim glow. Paused rather than removed, so it does not jump back to its start
|
|
1389
461
|
on the way out. */
|
|
1390
|
-
.${
|
|
1391
|
-
.${
|
|
462
|
+
.${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::after,
|
|
463
|
+
.${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after {
|
|
1392
464
|
animation-play-state: paused;
|
|
1393
465
|
opacity: 0;
|
|
1394
466
|
}
|
|
1395
|
-
.${
|
|
1396
|
-
.${
|
|
467
|
+
.${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
|
|
468
|
+
.${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
|
|
1397
469
|
|
|
1398
|
-
.${
|
|
470
|
+
.${PREFIX}-qr {
|
|
1399
471
|
display: block;
|
|
1400
472
|
width: 100%;
|
|
1401
473
|
height: 100%;
|
|
@@ -1410,17 +482,17 @@ var CSS = `
|
|
|
1410
482
|
/* Once the code is claimed the QR is spent. Blurring it out rather than
|
|
1411
483
|
swapping it keeps one object on screen through the state change, so the eye
|
|
1412
484
|
reads a transformation instead of two things trading places. */
|
|
1413
|
-
.${
|
|
485
|
+
.${PREFIX}-qr[data-spent="true"] { opacity: 0.2; filter: var(--zrl-qr-spent-filter); transform: scale(0.96); }
|
|
1414
486
|
|
|
1415
|
-
.${
|
|
487
|
+
.${PREFIX}-qr-overlay {
|
|
1416
488
|
position: absolute;
|
|
1417
489
|
inset: 0;
|
|
1418
490
|
display: grid;
|
|
1419
491
|
place-items: center;
|
|
1420
|
-
animation: ${
|
|
492
|
+
animation: ${PREFIX}-fade 200ms ease-out both;
|
|
1421
493
|
}
|
|
1422
494
|
|
|
1423
|
-
.${
|
|
495
|
+
.${PREFIX}-qr-badge {
|
|
1424
496
|
display: grid;
|
|
1425
497
|
place-items: center;
|
|
1426
498
|
width: 56px;
|
|
@@ -1430,7 +502,7 @@ var CSS = `
|
|
|
1430
502
|
color: var(--zrl-accent-ink);
|
|
1431
503
|
}
|
|
1432
504
|
|
|
1433
|
-
.${
|
|
505
|
+
.${PREFIX}-status {
|
|
1434
506
|
display: flex;
|
|
1435
507
|
align-items: center;
|
|
1436
508
|
justify-content: center;
|
|
@@ -1441,8 +513,8 @@ var CSS = `
|
|
|
1441
513
|
color: var(--zrl-ink);
|
|
1442
514
|
}
|
|
1443
515
|
|
|
1444
|
-
.${
|
|
1445
|
-
.${
|
|
516
|
+
.${PREFIX}-dot { position: relative; display: grid; place-items: center; width: 8px; height: 8px; }
|
|
517
|
+
.${PREFIX}-dot i {
|
|
1446
518
|
position: absolute;
|
|
1447
519
|
width: 8px;
|
|
1448
520
|
height: 8px;
|
|
@@ -1450,25 +522,25 @@ var CSS = `
|
|
|
1450
522
|
background: var(--zrl-accent);
|
|
1451
523
|
font-style: normal;
|
|
1452
524
|
}
|
|
1453
|
-
.${
|
|
525
|
+
.${PREFIX}-dot i:first-child { animation: ${PREFIX}-ping 1.8s cubic-bezier(0.23, 1, 0.32, 1) infinite; }
|
|
1454
526
|
|
|
1455
|
-
.${
|
|
527
|
+
.${PREFIX}-timer {
|
|
1456
528
|
margin: 4px 0 0;
|
|
1457
529
|
font-size: 12px;
|
|
1458
530
|
font-variant-numeric: tabular-nums;
|
|
1459
531
|
color: var(--zrl-ink-mute);
|
|
1460
532
|
transition: color 200ms ease-out;
|
|
1461
533
|
}
|
|
1462
|
-
.${
|
|
534
|
+
.${PREFIX}-timer[data-urgent="true"] { color: var(--zrl-urgent); }
|
|
1463
535
|
|
|
1464
|
-
.${
|
|
536
|
+
.${PREFIX}-help {
|
|
1465
537
|
padding: 14px 24px;
|
|
1466
538
|
border-top: 1px solid var(--zrl-line-soft);
|
|
1467
539
|
background: var(--zrl-surface-sunken);
|
|
1468
540
|
border-radius: 0;
|
|
1469
541
|
}
|
|
1470
|
-
.${
|
|
1471
|
-
.${
|
|
542
|
+
.${PREFIX}-help-title { margin: 0; font-size: 12px; font-weight: 600; color: var(--zrl-ink); }
|
|
543
|
+
.${PREFIX}-help-body {
|
|
1472
544
|
margin: 4px auto 0;
|
|
1473
545
|
max-width: 34ch;
|
|
1474
546
|
font-size: 12px;
|
|
@@ -1476,9 +548,9 @@ var CSS = `
|
|
|
1476
548
|
color: var(--zrl-ink-soft);
|
|
1477
549
|
}
|
|
1478
550
|
|
|
1479
|
-
.${
|
|
551
|
+
.${PREFIX}-footer { padding: 12px; border-top: 1px solid var(--zrl-line-soft); }
|
|
1480
552
|
|
|
1481
|
-
.${
|
|
553
|
+
.${PREFIX}-cancel {
|
|
1482
554
|
display: block;
|
|
1483
555
|
width: 100%;
|
|
1484
556
|
padding: 10px;
|
|
@@ -1492,10 +564,10 @@ var CSS = `
|
|
|
1492
564
|
cursor: pointer;
|
|
1493
565
|
transition: background-color 150ms ease-out, color 150ms ease-out, transform 150ms ease-out;
|
|
1494
566
|
}
|
|
1495
|
-
.${
|
|
1496
|
-
.${
|
|
567
|
+
.${PREFIX}-cancel:hover { background: var(--zrl-surface-sunken); color: var(--zrl-ink); }
|
|
568
|
+
.${PREFIX}-cancel:active { transform: scale(0.99); }
|
|
1497
569
|
|
|
1498
|
-
.${
|
|
570
|
+
.${PREFIX}-secured {
|
|
1499
571
|
display: flex;
|
|
1500
572
|
align-items: center;
|
|
1501
573
|
justify-content: center;
|
|
@@ -1507,9 +579,9 @@ var CSS = `
|
|
|
1507
579
|
border-radius: 6px;
|
|
1508
580
|
transition: color 150ms ease-out;
|
|
1509
581
|
}
|
|
1510
|
-
.${
|
|
582
|
+
.${PREFIX}-secured:hover { color: var(--zrl-ink); }
|
|
1511
583
|
|
|
1512
|
-
.${
|
|
584
|
+
.${PREFIX}-close {
|
|
1513
585
|
position: absolute;
|
|
1514
586
|
top: 12px;
|
|
1515
587
|
inset-inline-end: 12px;
|
|
@@ -1525,25 +597,25 @@ var CSS = `
|
|
|
1525
597
|
cursor: pointer;
|
|
1526
598
|
transition: background-color 150ms ease-out, color 150ms ease-out, transform 150ms ease-out;
|
|
1527
599
|
}
|
|
1528
|
-
.${
|
|
1529
|
-
.${
|
|
600
|
+
.${PREFIX}-close:hover { background: var(--zrl-surface-sunken); color: var(--zrl-ink); }
|
|
601
|
+
.${PREFIX}-close:active { transform: scale(0.95); }
|
|
1530
602
|
|
|
1531
|
-
.${
|
|
603
|
+
.${PREFIX}-card :focus-visible {
|
|
1532
604
|
outline: 2px solid var(--zrl-accent);
|
|
1533
605
|
outline-offset: 2px;
|
|
1534
606
|
}
|
|
1535
607
|
|
|
1536
|
-
@keyframes ${
|
|
1537
|
-
@keyframes ${
|
|
608
|
+
@keyframes ${PREFIX}-fade { from { opacity: 0 } to { opacity: 1 } }
|
|
609
|
+
@keyframes ${PREFIX}-rise {
|
|
1538
610
|
from { opacity: 0; transform: translateY(10px) scale(0.98) }
|
|
1539
611
|
to { opacity: 1; transform: none }
|
|
1540
612
|
}
|
|
1541
|
-
@keyframes ${
|
|
613
|
+
@keyframes ${PREFIX}-ping {
|
|
1542
614
|
0% { transform: scale(1); opacity: 0.5 }
|
|
1543
615
|
70%, 100% { transform: scale(2.6); opacity: 0 }
|
|
1544
616
|
}
|
|
1545
617
|
|
|
1546
|
-
@keyframes ${
|
|
618
|
+
@keyframes ${PREFIX}-orbit { to { transform: rotate(360deg) } }
|
|
1547
619
|
/* THE BUSY RING. The light of the QR well, around any control that is
|
|
1548
620
|
waiting on the provider: the button on a phone between the tap and the
|
|
1549
621
|
hand-over to the app. The well's sweep is a cone from the centre, which is
|
|
@@ -1560,13 +632,13 @@ var CSS = `
|
|
|
1560
632
|
straight fade from the head to nothing three tenths of the way back; the
|
|
1561
633
|
component sets each layer's length, offset and opacity. Shown only while
|
|
1562
634
|
busy. */
|
|
1563
|
-
.${
|
|
635
|
+
.${PREFIX}-ring {
|
|
1564
636
|
position: relative;
|
|
1565
637
|
display: inline-flex;
|
|
1566
638
|
vertical-align: middle;
|
|
1567
639
|
--zrl-beam-time: 4s;
|
|
1568
640
|
}
|
|
1569
|
-
.${
|
|
641
|
+
.${PREFIX}-ring-svg {
|
|
1570
642
|
position: absolute;
|
|
1571
643
|
inset: -4px;
|
|
1572
644
|
width: calc(100% + 8px);
|
|
@@ -1576,8 +648,18 @@ var CSS = `
|
|
|
1576
648
|
opacity: 0;
|
|
1577
649
|
transition: opacity 200ms ease-out;
|
|
1578
650
|
}
|
|
1579
|
-
.${
|
|
1580
|
-
|
|
651
|
+
.${PREFIX}-ring[data-busy="true"] > .${PREFIX}-ring-svg { opacity: 1; }
|
|
652
|
+
/* The same light as an overlay in the document body, placed over a site's
|
|
653
|
+
own control by the package itself (busy.ts): nothing of the site's
|
|
654
|
+
markup or CSS is touched, and neither an ancestor's overflow nor a
|
|
655
|
+
selector on the control's parent is affected. */
|
|
656
|
+
.${PREFIX}-ring-overlay {
|
|
657
|
+
position: fixed;
|
|
658
|
+
display: block;
|
|
659
|
+
z-index: 2147483000;
|
|
660
|
+
pointer-events: none;
|
|
661
|
+
}
|
|
662
|
+
.${PREFIX}-ring-svg rect {
|
|
1581
663
|
--zrl-l: var(--zrl-ring-len, 600px);
|
|
1582
664
|
x: 2px;
|
|
1583
665
|
y: 2px;
|
|
@@ -1588,46 +670,1060 @@ var CSS = `
|
|
|
1588
670
|
stroke-width: var(--zrl-beam-line);
|
|
1589
671
|
stroke-linecap: round;
|
|
1590
672
|
stroke-dashoffset: var(--zrl-s, 0px);
|
|
1591
|
-
animation: ${
|
|
673
|
+
animation: ${PREFIX}-dash var(--zrl-beam-time) linear infinite;
|
|
1592
674
|
}
|
|
1593
|
-
.${
|
|
1594
|
-
.${
|
|
675
|
+
.${PREFIX}-ring-head { stroke: var(--zrl-beam-head); }
|
|
676
|
+
.${PREFIX}-ring-halo {
|
|
1595
677
|
stroke-width: calc(var(--zrl-glow-core) * 2 + var(--zrl-beam-line));
|
|
1596
678
|
filter: blur(var(--zrl-glow-blur));
|
|
1597
679
|
}
|
|
1598
|
-
@keyframes ${
|
|
1599
|
-
from { stroke-dashoffset: var(--zrl-s, 0px); }
|
|
1600
|
-
to { stroke-dashoffset: calc(var(--zrl-s, 0px) - var(--zrl-l)); }
|
|
680
|
+
@keyframes ${PREFIX}-dash {
|
|
681
|
+
from { stroke-dashoffset: var(--zrl-s, 0px); }
|
|
682
|
+
to { stroke-dashoffset: calc(var(--zrl-s, 0px) - var(--zrl-l)); }
|
|
683
|
+
}
|
|
684
|
+
@media (prefers-reduced-motion: reduce) {
|
|
685
|
+
.${PREFIX}-ring-svg rect { animation: none; stroke-dasharray: none; opacity: 0.45; }
|
|
686
|
+
.${PREFIX}-ring-halo, .${PREFIX}-ring-head { display: none; }
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
|
|
690
|
+
@media (prefers-reduced-motion: reduce) {
|
|
691
|
+
.${PREFIX}-scrim,
|
|
692
|
+
.${PREFIX}-card,
|
|
693
|
+
.${PREFIX}-qr-overlay { animation: none }
|
|
694
|
+
.${PREFIX}-dot i:first-child { animation: none; opacity: 0.35 }
|
|
695
|
+
.${PREFIX}-qr,
|
|
696
|
+
.${PREFIX}-cancel,
|
|
697
|
+
.${PREFIX}-close,
|
|
698
|
+
.${PREFIX}-timer { transition: none }
|
|
699
|
+
/* No travelling light; the edge keeps its dim static glow instead. */
|
|
700
|
+
.${PREFIX}-qr-beam::after,
|
|
701
|
+
.${PREFIX}-qr-beam-glow-band::after { animation: none; opacity: 0 }
|
|
702
|
+
.${PREFIX}-qr-beam::before { opacity: 0.55 }
|
|
703
|
+
.${PREFIX}-qr-beam-glow-band::before { opacity: 0.7 }
|
|
704
|
+
}
|
|
705
|
+
`;
|
|
706
|
+
function ensureStyles() {
|
|
707
|
+
if (typeof document === "undefined") return;
|
|
708
|
+
if (document.getElementById(STYLE_ELEMENT_ID)) return;
|
|
709
|
+
const el2 = document.createElement("style");
|
|
710
|
+
el2.id = STYLE_ELEMENT_ID;
|
|
711
|
+
el2.textContent = CSS;
|
|
712
|
+
document.head.appendChild(el2);
|
|
713
|
+
}
|
|
714
|
+
|
|
715
|
+
// src/busy.ts
|
|
716
|
+
var SVG_NS = "http://www.w3.org/2000/svg";
|
|
717
|
+
var TAIL = 0.3;
|
|
718
|
+
var STACK = Array.from({ length: 12 }, (_, i) => 12 - i);
|
|
719
|
+
var HALO = [3, 2, 1];
|
|
720
|
+
function radiusOf(control) {
|
|
721
|
+
const value = parseFloat(getComputedStyle(control).borderTopLeftRadius);
|
|
722
|
+
return Number.isFinite(value) ? value : 8;
|
|
723
|
+
}
|
|
724
|
+
function holdBusy(control) {
|
|
725
|
+
if (typeof document === "undefined") return () => {
|
|
726
|
+
};
|
|
727
|
+
ensureStyles();
|
|
728
|
+
const hadDisabled = control.hasAttribute("disabled");
|
|
729
|
+
const hadBusy = control.getAttribute("aria-busy");
|
|
730
|
+
if (control instanceof HTMLButtonElement || control instanceof HTMLInputElement) {
|
|
731
|
+
control.disabled = true;
|
|
732
|
+
} else {
|
|
733
|
+
control.setAttribute("aria-disabled", "true");
|
|
734
|
+
}
|
|
735
|
+
control.setAttribute("aria-busy", "true");
|
|
736
|
+
const overlay = document.createElement("div");
|
|
737
|
+
overlay.className = `${cx("root")} ${cx("ring")} ${cx("ring-overlay")}`;
|
|
738
|
+
overlay.dataset.theme = "auto";
|
|
739
|
+
overlay.dataset.busy = "true";
|
|
740
|
+
overlay.setAttribute("aria-hidden", "true");
|
|
741
|
+
const svg2 = document.createElementNS(SVG_NS, "svg");
|
|
742
|
+
svg2.setAttribute("class", cx("ring-svg"));
|
|
743
|
+
const rx = radiusOf(control) + 2;
|
|
744
|
+
const layer = (name, len, alpha) => {
|
|
745
|
+
const rect = document.createElementNS(SVG_NS, "rect");
|
|
746
|
+
rect.setAttribute("class", cx(name));
|
|
747
|
+
rect.setAttribute("rx", String(rx));
|
|
748
|
+
rect.setAttribute("ry", String(rx));
|
|
749
|
+
rect.style.strokeDasharray = `calc(var(--zrl-l) * ${len}) calc(var(--zrl-l) * ${1 - len})`;
|
|
750
|
+
rect.style.setProperty("--zrl-s", `calc(var(--zrl-l) * ${-(TAIL - len)})`);
|
|
751
|
+
rect.style.opacity = alpha;
|
|
752
|
+
svg2.appendChild(rect);
|
|
753
|
+
return rect;
|
|
754
|
+
};
|
|
755
|
+
let measured = null;
|
|
756
|
+
for (const n of HALO) {
|
|
757
|
+
const rect = layer("ring-halo", TAIL * n / HALO.length, `calc(var(--zrl-glow-opacity) * 0.6 / ${n})`);
|
|
758
|
+
measured ?? (measured = rect);
|
|
759
|
+
}
|
|
760
|
+
for (const n of STACK) layer(n <= 2 ? "ring-head" : "ring-tail", TAIL * n / STACK.length, String(1 / n));
|
|
761
|
+
overlay.appendChild(svg2);
|
|
762
|
+
document.body.appendChild(overlay);
|
|
763
|
+
let frame = 0;
|
|
764
|
+
const place = () => {
|
|
765
|
+
frame = 0;
|
|
766
|
+
const box = control.getBoundingClientRect();
|
|
767
|
+
overlay.style.left = `${box.left}px`;
|
|
768
|
+
overlay.style.top = `${box.top}px`;
|
|
769
|
+
overlay.style.width = `${box.width}px`;
|
|
770
|
+
overlay.style.height = `${box.height}px`;
|
|
771
|
+
const length = typeof measured?.getTotalLength === "function" ? measured.getTotalLength() : 0;
|
|
772
|
+
if (length > 0) overlay.style.setProperty("--zrl-ring-len", `${length}px`);
|
|
773
|
+
};
|
|
774
|
+
const schedule = () => {
|
|
775
|
+
if (!frame) frame = requestAnimationFrame(place);
|
|
776
|
+
};
|
|
777
|
+
place();
|
|
778
|
+
const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(schedule);
|
|
779
|
+
observer?.observe(control);
|
|
780
|
+
window.addEventListener("scroll", schedule, true);
|
|
781
|
+
window.addEventListener("resize", schedule);
|
|
782
|
+
let released = false;
|
|
783
|
+
return () => {
|
|
784
|
+
if (released) return;
|
|
785
|
+
released = true;
|
|
786
|
+
if (frame) cancelAnimationFrame(frame);
|
|
787
|
+
observer?.disconnect();
|
|
788
|
+
window.removeEventListener("scroll", schedule, true);
|
|
789
|
+
window.removeEventListener("resize", schedule);
|
|
790
|
+
overlay.remove();
|
|
791
|
+
if (control instanceof HTMLButtonElement || control instanceof HTMLInputElement) {
|
|
792
|
+
control.disabled = hadDisabled;
|
|
793
|
+
} else {
|
|
794
|
+
control.removeAttribute("aria-disabled");
|
|
795
|
+
}
|
|
796
|
+
if (hadBusy === null) control.removeAttribute("aria-busy");
|
|
797
|
+
else control.setAttribute("aria-busy", hadBusy);
|
|
798
|
+
};
|
|
799
|
+
}
|
|
800
|
+
|
|
801
|
+
// src/intent.ts
|
|
802
|
+
var SIGN_IN_SCOPES = /* @__PURE__ */ new Set(["openid", "email", "profile.name"]);
|
|
803
|
+
function resolveIntent(intent, scope, acrValues) {
|
|
804
|
+
if (intent) return intent;
|
|
805
|
+
const scopes = (scope ?? "openid").split(/\s+/).filter(Boolean);
|
|
806
|
+
if (scopes.some((s) => !SIGN_IN_SCOPES.has(s))) return "identify";
|
|
807
|
+
const acr = typeof acrValues === "string" ? acrValues.split(/\s+/) : acrValues ?? [];
|
|
808
|
+
if (scopes.every((s) => s === "openid") && acr.includes("zoreal.live")) return "presence";
|
|
809
|
+
return "sign-in";
|
|
810
|
+
}
|
|
811
|
+
function titleFor(t, intent) {
|
|
812
|
+
if (intent === "identify") return t.titleIdentify;
|
|
813
|
+
if (intent === "presence") return t.titlePresence;
|
|
814
|
+
return t.title;
|
|
815
|
+
}
|
|
816
|
+
|
|
817
|
+
// src/return.ts
|
|
818
|
+
var PREFIX2 = "zoreal:oauth2:return:";
|
|
819
|
+
var DONE = "zoreal:oauth2:done:";
|
|
820
|
+
var MAX_AGE_MS = 10 * 60 * 1e3;
|
|
821
|
+
function storage() {
|
|
822
|
+
try {
|
|
823
|
+
return typeof localStorage === "undefined" ? null : localStorage;
|
|
824
|
+
} catch {
|
|
825
|
+
return null;
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
function saveReturnFlow(flow) {
|
|
829
|
+
try {
|
|
830
|
+
storage()?.setItem(PREFIX2 + flow.requestId, JSON.stringify(flow));
|
|
831
|
+
} catch {
|
|
832
|
+
}
|
|
833
|
+
}
|
|
834
|
+
function peekReturnFlow(requestId) {
|
|
835
|
+
const store = storage();
|
|
836
|
+
if (!store) return null;
|
|
837
|
+
const raw = store.getItem(PREFIX2 + requestId);
|
|
838
|
+
if (!raw) return null;
|
|
839
|
+
try {
|
|
840
|
+
const flow = JSON.parse(raw);
|
|
841
|
+
if (flow.v !== 1 || flow.requestId !== requestId) return null;
|
|
842
|
+
if (Date.now() - flow.createdAt > MAX_AGE_MS) return null;
|
|
843
|
+
return flow;
|
|
844
|
+
} catch {
|
|
845
|
+
return null;
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
function forgetReturnFlow(requestId) {
|
|
849
|
+
try {
|
|
850
|
+
storage()?.removeItem(PREFIX2 + requestId);
|
|
851
|
+
} catch {
|
|
852
|
+
}
|
|
853
|
+
if (pending === requestId) pending = null;
|
|
854
|
+
}
|
|
855
|
+
function markReturnDone(requestId) {
|
|
856
|
+
try {
|
|
857
|
+
const store = storage();
|
|
858
|
+
store?.setItem(DONE + requestId, String(Date.now()));
|
|
859
|
+
store?.removeItem(PREFIX2 + requestId);
|
|
860
|
+
} catch {
|
|
861
|
+
}
|
|
862
|
+
}
|
|
863
|
+
function isReturnDone(requestId) {
|
|
864
|
+
return storage()?.getItem(DONE + requestId) !== null && storage()?.getItem(DONE + requestId) !== void 0;
|
|
865
|
+
}
|
|
866
|
+
function returnToUrl() {
|
|
867
|
+
if (typeof window === "undefined") return void 0;
|
|
868
|
+
const { href } = window.location;
|
|
869
|
+
const hash = href.indexOf("#");
|
|
870
|
+
return hash === -1 ? href : href.slice(0, hash);
|
|
871
|
+
}
|
|
872
|
+
var RETURN_MARK = /(?:^|[#&])zoreal_return=([A-Za-z0-9]{32})(?:&|$)/;
|
|
873
|
+
var pending = null;
|
|
874
|
+
function pendingReturnId() {
|
|
875
|
+
if (pending) return pending;
|
|
876
|
+
if (typeof window === "undefined") return null;
|
|
877
|
+
const match = RETURN_MARK.exec(window.location.hash);
|
|
878
|
+
if (!match) return null;
|
|
879
|
+
pending = match[1];
|
|
880
|
+
try {
|
|
881
|
+
window.history.replaceState(window.history.state, "", returnToUrl());
|
|
882
|
+
} catch {
|
|
883
|
+
}
|
|
884
|
+
return pending;
|
|
885
|
+
}
|
|
886
|
+
|
|
887
|
+
// src/i18n.ts
|
|
888
|
+
var en = {
|
|
889
|
+
title: "Scan to sign in",
|
|
890
|
+
titleIdentify: "Scan to verify your identity",
|
|
891
|
+
titlePresence: "Scan to prove you are a real human",
|
|
892
|
+
titleApprove: "Approve on your phone",
|
|
893
|
+
bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
|
|
894
|
+
bodyApprove: "Approve the login in your ZOREAL ID app.",
|
|
895
|
+
bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
|
|
896
|
+
waiting: "Waiting for scan",
|
|
897
|
+
waitingApproval: "Waiting for approval",
|
|
898
|
+
expiresIn: "Expires in {time}",
|
|
899
|
+
secured: "Proof-of-Human verification by ZOREAL",
|
|
900
|
+
noIdTitle: "No ZOREAL ID yet?",
|
|
901
|
+
noIdBody: "Scan the same code to download the app and create one for free. It only takes a minute.",
|
|
902
|
+
cancel: "Cancel",
|
|
903
|
+
close: "Close",
|
|
904
|
+
qrAlt: "QR code to sign in with ZOREAL",
|
|
905
|
+
buttonContinue: "Continue with ZOREAL"
|
|
906
|
+
};
|
|
907
|
+
var TRANSLATIONS = {
|
|
908
|
+
en,
|
|
909
|
+
sv: {
|
|
910
|
+
title: "Skanna f\xF6r att logga in",
|
|
911
|
+
titleIdentify: "Skanna f\xF6r att verifiera din identitet",
|
|
912
|
+
titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
|
|
913
|
+
titleApprove: "Godk\xE4nn p\xE5 telefonen",
|
|
914
|
+
bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
|
|
915
|
+
bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
|
|
916
|
+
bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
|
|
917
|
+
waiting: "V\xE4ntar p\xE5 skanning",
|
|
918
|
+
waitingApproval: "V\xE4ntar p\xE5 godk\xE4nnande",
|
|
919
|
+
expiresIn: "Upph\xF6r om {time}",
|
|
920
|
+
secured: "Proof-of-Human-verifiering av ZOREAL",
|
|
921
|
+
noIdTitle: "Har du inget ZOREAL ID?",
|
|
922
|
+
noIdBody: "Skanna samma kod f\xF6r att ladda ner appen och skapa ett gratis. Det tar bara en minut.",
|
|
923
|
+
cancel: "Avbryt",
|
|
924
|
+
close: "St\xE4ng",
|
|
925
|
+
qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
|
|
926
|
+
buttonContinue: "Forts\xE4tt med ZOREAL"
|
|
927
|
+
},
|
|
928
|
+
es: {
|
|
929
|
+
title: "Escanea para iniciar sesi\xF3n",
|
|
930
|
+
titleIdentify: "Escanea para verificar tu identidad",
|
|
931
|
+
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
932
|
+
titleApprove: "Apru\xE9balo en tu tel\xE9fono",
|
|
933
|
+
bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
|
|
934
|
+
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
935
|
+
bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
|
|
936
|
+
waiting: "Esperando el escaneo",
|
|
937
|
+
waitingApproval: "Esperando aprobaci\xF3n",
|
|
938
|
+
expiresIn: "Caduca en {time}",
|
|
939
|
+
secured: "Verificaci\xF3n Proof-of-Human de ZOREAL",
|
|
940
|
+
noIdTitle: "\xBFA\xFAn no tienes ZOREAL ID?",
|
|
941
|
+
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear una gratis. Solo toma un minuto.",
|
|
942
|
+
cancel: "Cancelar",
|
|
943
|
+
close: "Cerrar",
|
|
944
|
+
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
945
|
+
buttonContinue: "Continuar con ZOREAL"
|
|
946
|
+
},
|
|
947
|
+
pt: {
|
|
948
|
+
title: "Digitalize para entrar",
|
|
949
|
+
titleIdentify: "Digitalize para verificar a sua identidade",
|
|
950
|
+
titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
|
|
951
|
+
titleApprove: "Aprove no seu telefone",
|
|
952
|
+
bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
|
|
953
|
+
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
954
|
+
bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
|
|
955
|
+
waiting: "Aguardando digitaliza\xE7\xE3o",
|
|
956
|
+
waitingApproval: "Aguardando aprova\xE7\xE3o",
|
|
957
|
+
expiresIn: "Expira em {time}",
|
|
958
|
+
secured: "Verifica\xE7\xE3o Proof-of-Human da ZOREAL",
|
|
959
|
+
noIdTitle: "Ainda n\xE3o tem ZOREAL ID?",
|
|
960
|
+
noIdBody: "Digitalize o mesmo c\xF3digo para baixar o app e criar uma conta gr\xE1tis. Leva s\xF3 um minuto.",
|
|
961
|
+
cancel: "Cancelar",
|
|
962
|
+
close: "Fechar",
|
|
963
|
+
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
964
|
+
buttonContinue: "Continuar com ZOREAL"
|
|
965
|
+
},
|
|
966
|
+
fr: {
|
|
967
|
+
title: "Scannez pour vous connecter",
|
|
968
|
+
titleIdentify: "Scannez pour v\xE9rifier votre identit\xE9",
|
|
969
|
+
titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
|
|
970
|
+
titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
|
|
971
|
+
bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
|
|
972
|
+
bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
|
|
973
|
+
bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
|
|
974
|
+
waiting: "En attente du scan",
|
|
975
|
+
waitingApproval: "En attente d'approbation",
|
|
976
|
+
expiresIn: "Expire dans {time}",
|
|
977
|
+
secured: "V\xE9rification Proof-of-Human par ZOREAL",
|
|
978
|
+
noIdTitle: "Pas encore de ZOREAL ID ?",
|
|
979
|
+
noIdBody: "Scannez le m\xEAme code pour t\xE9l\xE9charger l'app et en cr\xE9er un gratuitement. Cela prend une minute.",
|
|
980
|
+
cancel: "Annuler",
|
|
981
|
+
close: "Fermer",
|
|
982
|
+
qrAlt: "Code QR pour se connecter avec ZOREAL",
|
|
983
|
+
buttonContinue: "Continuer avec ZOREAL"
|
|
984
|
+
},
|
|
985
|
+
de: {
|
|
986
|
+
title: "Zum Anmelden scannen",
|
|
987
|
+
titleIdentify: "Scannen, um Ihre Identit\xE4t zu verifizieren",
|
|
988
|
+
titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
|
|
989
|
+
titleApprove: "Auf dem Handy best\xE4tigen",
|
|
990
|
+
bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
|
|
991
|
+
bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
|
|
992
|
+
bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
|
|
993
|
+
waiting: "Warten auf Scan",
|
|
994
|
+
waitingApproval: "Warten auf Best\xE4tigung",
|
|
995
|
+
expiresIn: "L\xE4uft ab in {time}",
|
|
996
|
+
secured: "Proof-of-Human-Verifizierung von ZOREAL",
|
|
997
|
+
noIdTitle: "Noch keine ZOREAL ID?",
|
|
998
|
+
noIdBody: "Denselben Code scannen, um die App zu laden und kostenlos eine zu erstellen. Dauert nur eine Minute.",
|
|
999
|
+
cancel: "Abbrechen",
|
|
1000
|
+
close: "Schlie\xDFen",
|
|
1001
|
+
qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
|
|
1002
|
+
buttonContinue: "Weiter mit ZOREAL"
|
|
1003
|
+
},
|
|
1004
|
+
ru: {
|
|
1005
|
+
title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
|
|
1006
|
+
titleIdentify: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C",
|
|
1007
|
+
titlePresence: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0434\u043E\u043A\u0430\u0437\u0430\u0442\u044C, \u0447\u0442\u043E \u0432\u044B \u0440\u0435\u0430\u043B\u044C\u043D\u044B\u0439 \u0447\u0435\u043B\u043E\u0432\u0435\u043A",
|
|
1008
|
+
titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
|
|
1009
|
+
bodyScan: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u0439 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0447\u0435\u0440\u0435\u0437 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 ZOREAL ID.",
|
|
1010
|
+
bodyApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 ZOREAL ID.",
|
|
1011
|
+
bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0438\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0443 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435, \u0437\u0430\u0442\u0435\u043C \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u0432\u0445\u043E\u0434.",
|
|
1012
|
+
waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
|
|
1013
|
+
waitingApproval: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043D\u0438\u044F",
|
|
1014
|
+
expiresIn: "\u0418\u0441\u0442\u0435\u043A\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 {time}",
|
|
1015
|
+
secured: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 Proof-of-Human \u043E\u0442 ZOREAL",
|
|
1016
|
+
noIdTitle: "\u0415\u0449\u0451 \u043D\u0435\u0442 ZOREAL ID?",
|
|
1017
|
+
noIdBody: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u0442\u043E\u0442 \u0436\u0435 \u043A\u043E\u0434, \u0447\u0442\u043E\u0431\u044B \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0438 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0435\u0433\u043E \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E. \u042D\u0442\u043E \u0437\u0430\u0439\u043C\u0451\u0442 \u043C\u0438\u043D\u0443\u0442\u0443.",
|
|
1018
|
+
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
1019
|
+
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
1020
|
+
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
|
|
1021
|
+
buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
|
|
1022
|
+
},
|
|
1023
|
+
ja: {
|
|
1024
|
+
title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
|
|
1025
|
+
titleIdentify: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u672C\u4EBA\u78BA\u8A8D",
|
|
1026
|
+
titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
|
|
1027
|
+
titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
|
|
1028
|
+
bodyScan: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306E\u30AB\u30E1\u30E9\u307E\u305F\u306FZOREAL ID\u30A2\u30D7\u30EA\u3067\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
1029
|
+
bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
1030
|
+
bodyEnrolling: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067ZOREAL ID\u306E\u8A2D\u5B9A\u3092\u5B8C\u4E86\u3057\u3001\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
1031
|
+
waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
|
|
1032
|
+
waitingApproval: "\u627F\u8A8D\u5F85\u3061",
|
|
1033
|
+
expiresIn: "\u6709\u52B9\u671F\u9650\u307E\u3067 {time}",
|
|
1034
|
+
secured: "ZOREAL\u306B\u3088\u308BProof-of-Human\u8A8D\u8A3C",
|
|
1035
|
+
noIdTitle: "ZOREAL ID\u3092\u304A\u6301\u3061\u3067\u306A\u3044\u3067\u3059\u304B\uFF1F",
|
|
1036
|
+
noIdBody: "\u540C\u3058\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30A2\u30D7\u30EA\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3001\u7121\u6599\u3067\u4F5C\u6210\u3067\u304D\u307E\u3059\u30021\u5206\u307B\u3069\u3067\u5B8C\u4E86\u3057\u307E\u3059\u3002",
|
|
1037
|
+
cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
1038
|
+
close: "\u9589\u3058\u308B",
|
|
1039
|
+
qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
|
|
1040
|
+
buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
|
|
1041
|
+
},
|
|
1042
|
+
hi: {
|
|
1043
|
+
title: "\u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
|
|
1044
|
+
titleIdentify: "\u0905\u092A\u0928\u0940 \u092A\u0939\u091A\u093E\u0928 \u0938\u0924\u094D\u092F\u093E\u092A\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
|
|
1045
|
+
titlePresence: "\u092F\u0939 \u0938\u093E\u092C\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902 \u0915\u093F \u0906\u092A \u090F\u0915 \u0935\u093E\u0938\u094D\u0924\u0935\u093F\u0915 \u0907\u0902\u0938\u093E\u0928 \u0939\u0948\u0902",
|
|
1046
|
+
titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
|
|
1047
|
+
bodyScan: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u0915\u0947 \u0915\u0948\u092E\u0930\u0947 \u092F\u093E ZOREAL ID \u0910\u092A \u0938\u0947 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964",
|
|
1048
|
+
bodyApprove: "\u0905\u092A\u0928\u0947 ZOREAL ID \u0910\u092A \u092E\u0947\u0902 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
|
|
1049
|
+
bodyEnrolling: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 ZOREAL ID \u0938\u0947\u091F\u0905\u092A \u092A\u0942\u0930\u093E \u0915\u0930\u0947\u0902, \u092B\u093F\u0930 \u0932\u0949\u0917\u093F\u0928 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
|
|
1050
|
+
waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
|
|
1051
|
+
waitingApproval: "\u0938\u094D\u0935\u0940\u0915\u0943\u0924\u093F \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
|
|
1052
|
+
expiresIn: "{time} \u092E\u0947\u0902 \u0938\u092E\u093E\u092A\u094D\u0924",
|
|
1053
|
+
secured: "ZOREAL \u0926\u094D\u0935\u093E\u0930\u093E Proof-of-Human \u0938\u0924\u094D\u092F\u093E\u092A\u0928",
|
|
1054
|
+
noIdTitle: "\u0905\u092D\u0940 \u0924\u0915 ZOREAL ID \u0928\u0939\u0940\u0902 \u0939\u0948?",
|
|
1055
|
+
noIdBody: "\u0910\u092A \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u0914\u0930 \u092E\u0941\u092B\u094D\u0924 \u092E\u0947\u0902 \u090F\u0915 \u092C\u0928\u093E\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0935\u0939\u0940 \u0915\u094B\u0921 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964 \u0907\u0938\u092E\u0947\u0902 \u092C\u0938 \u090F\u0915 \u092E\u093F\u0928\u091F \u0932\u0917\u0924\u093E \u0939\u0948\u0964",
|
|
1056
|
+
cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
|
|
1057
|
+
close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
1058
|
+
qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
|
|
1059
|
+
buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
|
|
1060
|
+
},
|
|
1061
|
+
zhs: {
|
|
1062
|
+
title: "\u626B\u7801\u767B\u5F55",
|
|
1063
|
+
titleIdentify: "\u626B\u7801\u9A8C\u8BC1\u8EAB\u4EFD",
|
|
1064
|
+
titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
|
|
1065
|
+
titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
|
|
1066
|
+
bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
|
|
1067
|
+
bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
|
|
1068
|
+
bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
|
|
1069
|
+
waiting: "\u7B49\u5F85\u626B\u63CF",
|
|
1070
|
+
waitingApproval: "\u7B49\u5F85\u6279\u51C6",
|
|
1071
|
+
expiresIn: "{time} \u540E\u5931\u6548",
|
|
1072
|
+
secured: "\u7531 ZOREAL \u63D0\u4F9B\u7684 Proof-of-Human \u9A8C\u8BC1",
|
|
1073
|
+
noIdTitle: "\u8FD8\u6CA1\u6709 ZOREAL ID\uFF1F",
|
|
1074
|
+
noIdBody: "\u626B\u63CF\u540C\u4E00\u4E2A\u4E8C\u7EF4\u7801\u5373\u53EF\u4E0B\u8F7D\u5E94\u7528\u5E76\u514D\u8D39\u521B\u5EFA\uFF0C\u53EA\u9700\u4E00\u5206\u949F\u3002",
|
|
1075
|
+
cancel: "\u53D6\u6D88",
|
|
1076
|
+
close: "\u5173\u95ED",
|
|
1077
|
+
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
|
|
1078
|
+
buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
|
|
1079
|
+
},
|
|
1080
|
+
zht: {
|
|
1081
|
+
title: "\u6383\u78BC\u767B\u5165",
|
|
1082
|
+
titleIdentify: "\u6383\u78BC\u9A57\u8B49\u8EAB\u5206",
|
|
1083
|
+
titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
|
|
1084
|
+
titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
|
|
1085
|
+
bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
|
|
1086
|
+
bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
|
|
1087
|
+
bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
|
|
1088
|
+
waiting: "\u7B49\u5F85\u6383\u63CF",
|
|
1089
|
+
waitingApproval: "\u7B49\u5F85\u6838\u51C6",
|
|
1090
|
+
expiresIn: "{time} \u5F8C\u5931\u6548",
|
|
1091
|
+
secured: "\u7531 ZOREAL \u63D0\u4F9B\u7684 Proof-of-Human \u9A57\u8B49",
|
|
1092
|
+
noIdTitle: "\u9084\u6C92\u6709 ZOREAL ID\uFF1F",
|
|
1093
|
+
noIdBody: "\u6383\u63CF\u540C\u4E00\u500B QR code \u5373\u53EF\u4E0B\u8F09\u61C9\u7528\u7A0B\u5F0F\u4E26\u514D\u8CBB\u5EFA\u7ACB\uFF0C\u53EA\u9700\u4E00\u5206\u9418\u3002",
|
|
1094
|
+
cancel: "\u53D6\u6D88",
|
|
1095
|
+
close: "\u95DC\u9589",
|
|
1096
|
+
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
|
|
1097
|
+
buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
|
|
1098
|
+
},
|
|
1099
|
+
ar: {
|
|
1100
|
+
title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
|
|
1101
|
+
titleIdentify: "\u0627\u0645\u0633\u062D \u0644\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0647\u0648\u064A\u062A\u0643",
|
|
1102
|
+
titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
|
|
1103
|
+
titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
|
|
1104
|
+
bodyScan: "\u0627\u0645\u0633\u062D \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0643\u0627\u0645\u064A\u0631\u0627 \u0647\u0627\u062A\u0641\u0643 \u0623\u0648 \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
|
|
1105
|
+
bodyApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0641\u064A \u062A\u0637\u0628\u064A\u0642 ZOREAL ID.",
|
|
1106
|
+
bodyEnrolling: "\u0623\u0643\u0645\u0644 \u0625\u0639\u062F\u0627\u062F ZOREAL ID \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643\u060C \u062B\u0645 \u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644.",
|
|
1107
|
+
waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
|
|
1108
|
+
waitingApproval: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0648\u0627\u0641\u0642\u0629",
|
|
1109
|
+
expiresIn: "\u062A\u0646\u062A\u0647\u064A \u0627\u0644\u0635\u0644\u0627\u062D\u064A\u0629 \u062E\u0644\u0627\u0644 {time}",
|
|
1110
|
+
secured: "\u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 Proof-of-Human \u0628\u0648\u0627\u0633\u0637\u0629 ZOREAL",
|
|
1111
|
+
noIdTitle: "\u0644\u064A\u0633 \u0644\u062F\u064A\u0643 ZOREAL ID \u0628\u0639\u062F\u061F",
|
|
1112
|
+
noIdBody: "\u0627\u0645\u0633\u062D \u0627\u0644\u0631\u0645\u0632 \u0646\u0641\u0633\u0647 \u0644\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0648\u0625\u0646\u0634\u0627\u0621 \u062D\u0633\u0627\u0628 \u0645\u062C\u0627\u0646\u064A. \u064A\u0633\u062A\u063A\u0631\u0642 \u0627\u0644\u0623\u0645\u0631 \u062F\u0642\u064A\u0642\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637.",
|
|
1113
|
+
cancel: "\u0625\u0644\u063A\u0627\u0621",
|
|
1114
|
+
close: "\u0625\u063A\u0644\u0627\u0642",
|
|
1115
|
+
qrAlt: "\u0631\u0645\u0632 QR \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
|
|
1116
|
+
buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
|
|
1117
|
+
},
|
|
1118
|
+
ko: {
|
|
1119
|
+
title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
|
|
1120
|
+
titleIdentify: "\uC2A4\uCE94\uD558\uC5EC \uC2E0\uC6D0 \uD655\uC778",
|
|
1121
|
+
titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
|
|
1122
|
+
titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
|
|
1123
|
+
bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
|
|
1124
|
+
bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
|
|
1125
|
+
bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
|
|
1126
|
+
waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
|
|
1127
|
+
waitingApproval: "\uC2B9\uC778 \uB300\uAE30 \uC911",
|
|
1128
|
+
expiresIn: "{time} \uD6C4 \uB9CC\uB8CC",
|
|
1129
|
+
secured: "ZOREAL\uC758 Proof-of-Human \uC778\uC99D",
|
|
1130
|
+
noIdTitle: "\uC544\uC9C1 ZOREAL ID\uAC00 \uC5C6\uC73C\uC2E0\uAC00\uC694?",
|
|
1131
|
+
noIdBody: "\uAC19\uC740 \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD574 \uC571\uC744 \uB0B4\uB824\uBC1B\uACE0 \uBB34\uB8CC\uB85C \uB9CC\uB4DC\uC138\uC694. 1\uBD84\uC774\uBA74 \uB429\uB2C8\uB2E4.",
|
|
1132
|
+
cancel: "\uCDE8\uC18C",
|
|
1133
|
+
close: "\uB2EB\uAE30",
|
|
1134
|
+
qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
|
|
1135
|
+
buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
|
|
1136
|
+
},
|
|
1137
|
+
// Български
|
|
1138
|
+
bg: {
|
|
1139
|
+
title: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0437\u0430 \u0432\u0445\u043E\u0434",
|
|
1140
|
+
titleIdentify: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0438\u0442\u0435 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0442\u0430 \u0441\u0438",
|
|
1141
|
+
titlePresence: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435, \u0447\u0435 \u0441\u0442\u0435 \u0438\u0441\u0442\u0438\u043D\u0441\u043A\u0438 \u0447\u043E\u0432\u0435\u043A",
|
|
1142
|
+
titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
|
|
1143
|
+
bodyScan: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441 \u043A\u0430\u043C\u0435\u0440\u0430\u0442\u0430 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0441 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
|
|
1144
|
+
bodyApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID.",
|
|
1145
|
+
bodyEnrolling: "\u0414\u043E\u0432\u044A\u0440\u0448\u0435\u0442\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u0442\u0430 \u043D\u0430 ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438, \u0441\u043B\u0435\u0434 \u043A\u043E\u0435\u0442\u043E \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u0432\u0445\u043E\u0434\u0430.",
|
|
1146
|
+
waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
|
|
1147
|
+
waitingApproval: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0436\u0434\u0435\u043D\u0438\u0435",
|
|
1148
|
+
expiresIn: "\u0418\u0437\u0442\u0438\u0447\u0430 \u0441\u043B\u0435\u0434 {time}",
|
|
1149
|
+
secured: "\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430 Proof-of-Human \u043E\u0442 ZOREAL",
|
|
1150
|
+
noIdTitle: "\u0412\u0441\u0435 \u043E\u0449\u0435 \u043D\u044F\u043C\u0430\u0442\u0435 ZOREAL ID?",
|
|
1151
|
+
noIdBody: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441\u044A\u0449\u0438\u044F \u043A\u043E\u0434, \u0437\u0430 \u0434\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u0438 \u0434\u0430 \u0441\u0438 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0431\u0435\u0437\u043F\u043B\u0430\u0442\u0435\u043D \u0430\u043A\u0430\u0443\u043D\u0442. \u041E\u0442\u043D\u0435\u043C\u0430 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442\u0430.",
|
|
1152
|
+
cancel: "\u041E\u0442\u043A\u0430\u0437",
|
|
1153
|
+
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
1154
|
+
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
|
|
1155
|
+
buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
|
|
1156
|
+
},
|
|
1157
|
+
// বাংলা
|
|
1158
|
+
bn: {
|
|
1159
|
+
title: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
1160
|
+
titleIdentify: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09B0\u09BF\u099A\u09AF\u09BC \u09AF\u09BE\u099A\u09BE\u0987 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
1161
|
+
titlePresence: "\u0986\u09AA\u09A8\u09BF \u098F\u0995\u099C\u09A8 \u09AA\u09CD\u09B0\u0995\u09C3\u09A4 \u09AE\u09BE\u09A8\u09C1\u09B7 \u09A4\u09BE \u09AA\u09CD\u09B0\u09AE\u09BE\u09A3 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
1162
|
+
titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
1163
|
+
bodyScan: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7\u09B0 \u0995\u09CD\u09AF\u09BE\u09AE\u09C7\u09B0\u09BE \u09AC\u09BE ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
1164
|
+
bodyApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA\u09C7 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
1165
|
+
bodyEnrolling: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 ZOREAL ID \u09B8\u09C7\u099F\u0986\u09AA \u09B8\u09AE\u09CD\u09AA\u09C2\u09B0\u09CD\u09A3 \u0995\u09B0\u09C1\u09A8, \u09A4\u09BE\u09B0\u09AA\u09B0 \u09B2\u0997\u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
|
|
1166
|
+
waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
|
|
1167
|
+
waitingApproval: "\u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
|
|
1168
|
+
expiresIn: "{time} \u09AA\u09B0\u09C7 \u09AE\u09C7\u09AF\u09BC\u09BE\u09A6 \u09B6\u09C7\u09B7 \u09B9\u09AC\u09C7",
|
|
1169
|
+
secured: "ZOREAL \u09A6\u09CD\u09AC\u09BE\u09B0\u09BE Proof-of-Human \u09AF\u09BE\u099A\u09BE\u0987\u0995\u09B0\u09A3",
|
|
1170
|
+
noIdTitle: "\u098F\u0996\u09A8\u09CB ZOREAL ID \u09A8\u09C7\u0987?",
|
|
1171
|
+
noIdBody: "\u0985\u09CD\u09AF\u09BE\u09AA \u09A1\u09BE\u0989\u09A8\u09B2\u09CB\u09A1 \u0995\u09B0\u09C7 \u09AC\u09BF\u09A8\u09BE\u09AE\u09C2\u09B2\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09A4\u09C7 \u098F\u0995\u0987 \u0995\u09CB\u09A1 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964 \u098F\u09A4\u09C7 \u09AE\u09BE\u09A4\u09CD\u09B0 \u098F\u0995 \u09AE\u09BF\u09A8\u09BF\u099F \u09B8\u09AE\u09AF\u09BC \u09B2\u09BE\u0997\u09C7\u0964",
|
|
1172
|
+
cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
|
|
1173
|
+
close: "\u09AC\u09A8\u09CD\u09A7",
|
|
1174
|
+
qrAlt: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09BE\u09B0 \u099C\u09A8\u09CD\u09AF QR \u0995\u09CB\u09A1",
|
|
1175
|
+
buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
|
|
1176
|
+
},
|
|
1177
|
+
// Bosanski
|
|
1178
|
+
bs: {
|
|
1179
|
+
title: "Skenirajte za prijavu",
|
|
1180
|
+
titleIdentify: "Skenirajte da potvrdite svoj identitet",
|
|
1181
|
+
titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
|
|
1182
|
+
titleApprove: "Odobrite na svom telefonu",
|
|
1183
|
+
bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
|
|
1184
|
+
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
1185
|
+
bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
|
|
1186
|
+
waiting: "\u010Ceka se skeniranje",
|
|
1187
|
+
waitingApproval: "\u010Ceka se odobrenje",
|
|
1188
|
+
expiresIn: "Isti\u010De za {time}",
|
|
1189
|
+
secured: "ZOREAL Proof-of-Human verifikacija",
|
|
1190
|
+
noIdTitle: "Nemate ZOREAL ID?",
|
|
1191
|
+
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga napravite. Traje samo minutu.",
|
|
1192
|
+
cancel: "Otka\u017Ei",
|
|
1193
|
+
close: "Zatvori",
|
|
1194
|
+
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
1195
|
+
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
1196
|
+
},
|
|
1197
|
+
// Čeština
|
|
1198
|
+
cs: {
|
|
1199
|
+
title: "P\u0159ihlaste se naskenov\xE1n\xEDm",
|
|
1200
|
+
titleIdentify: "Naskenujte pro ov\u011B\u0159en\xED toto\u017Enosti",
|
|
1201
|
+
titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
|
|
1202
|
+
titleApprove: "Potvr\u010Fte v telefonu",
|
|
1203
|
+
bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
|
|
1204
|
+
bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
|
|
1205
|
+
bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
|
|
1206
|
+
waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
|
|
1207
|
+
waitingApproval: "\u010Cek\xE1n\xED na potvrzen\xED",
|
|
1208
|
+
expiresIn: "Vypr\u0161\xED za {time}",
|
|
1209
|
+
secured: "Ov\u011B\u0159en\xED Proof-of-Human od ZOREAL",
|
|
1210
|
+
noIdTitle: "Je\u0161t\u011B nem\xE1te ZOREAL ID?",
|
|
1211
|
+
noIdBody: "Naskenov\xE1n\xEDm stejn\xE9ho k\xF3du si st\xE1hnete aplikaci a zdarma vytvo\u0159\xEDte ZOREAL ID. Zabere to jen minutu.",
|
|
1212
|
+
cancel: "Zru\u0161it",
|
|
1213
|
+
close: "Zav\u0159\xEDt",
|
|
1214
|
+
qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
|
|
1215
|
+
buttonContinue: "Pokra\u010Dovat se ZOREAL"
|
|
1216
|
+
},
|
|
1217
|
+
// Dansk
|
|
1218
|
+
da: {
|
|
1219
|
+
title: "Scan for at logge ind",
|
|
1220
|
+
titleIdentify: "Scan for at bekr\xE6fte din identitet",
|
|
1221
|
+
titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
|
|
1222
|
+
titleApprove: "Godkend p\xE5 din telefon",
|
|
1223
|
+
bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
|
|
1224
|
+
bodyApprove: "Godkend login i din ZOREAL ID-app.",
|
|
1225
|
+
bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
|
|
1226
|
+
waiting: "Venter p\xE5 scanning",
|
|
1227
|
+
waitingApproval: "Venter p\xE5 godkendelse",
|
|
1228
|
+
expiresIn: "Udl\xF8ber om {time}",
|
|
1229
|
+
secured: "Proof-of-Human-verificering af ZOREAL",
|
|
1230
|
+
noIdTitle: "Har du ikke et ZOREAL ID endnu?",
|
|
1231
|
+
noIdBody: "Scan den samme kode for at hente appen og oprette et gratis. Det tager kun et minut.",
|
|
1232
|
+
cancel: "Annuller",
|
|
1233
|
+
close: "Luk",
|
|
1234
|
+
qrAlt: "QR-kode til at logge ind med ZOREAL",
|
|
1235
|
+
buttonContinue: "Forts\xE6t med ZOREAL"
|
|
1236
|
+
},
|
|
1237
|
+
// Ελληνικά
|
|
1238
|
+
el: {
|
|
1239
|
+
title: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7",
|
|
1240
|
+
titleIdentify: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B1\u03BB\u03AE\u03B8\u03B5\u03C5\u03C3\u03B7 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2",
|
|
1241
|
+
titlePresence: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03B1\u03C0\u03BF\u03B4\u03B5\u03AF\u03BE\u03B5\u03C4\u03B5 \u03CC\u03C4\u03B9 \u03B5\u03AF\u03C3\u03C4\u03B5 \u03C0\u03C1\u03B1\u03B3\u03BC\u03B1\u03C4\u03B9\u03BA\u03CC\u03C2 \u03AC\u03BD\u03B8\u03C1\u03C9\u03C0\u03BF\u03C2",
|
|
1242
|
+
titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
|
|
1243
|
+
bodyScan: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03BC\u03B5 \u03C4\u03B7\u03BD \u03BA\u03AC\u03BC\u03B5\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BA\u03B9\u03BD\u03B7\u03C4\u03BF\u03CD \u03C3\u03B1\u03C2 \u03AE \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
|
|
1244
|
+
bodyApprove: "\u0395\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID.",
|
|
1245
|
+
bodyEnrolling: "\u039F\u03BB\u03BF\u03BA\u03BB\u03B7\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03B7 \u03C1\u03CD\u03B8\u03BC\u03B9\u03C3\u03B7 \u03C4\u03BF\u03C5 ZOREAL ID \u03C3\u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2 \u03BA\u03B1\u03B9 \u03AD\u03C0\u03B5\u03B9\u03C4\u03B1 \u03B5\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7.",
|
|
1246
|
+
waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
|
|
1247
|
+
waitingApproval: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03AD\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7\u03C2",
|
|
1248
|
+
expiresIn: "\u039B\u03AE\u03B3\u03B5\u03B9 \u03C3\u03B5 {time}",
|
|
1249
|
+
secured: "\u0395\u03C0\u03B1\u03BB\u03AE\u03B8\u03B5\u03C5\u03C3\u03B7 Proof-of-Human \u03B1\u03C0\u03CC \u03C4\u03B7 ZOREAL",
|
|
1250
|
+
noIdTitle: "\u0394\u03B5\u03BD \u03AD\u03C7\u03B5\u03C4\u03B5 \u03B1\u03BA\u03CC\u03BC\u03B1 ZOREAL ID;",
|
|
1251
|
+
noIdBody: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF\u03BD \u03AF\u03B4\u03B9\u03BF \u03BA\u03C9\u03B4\u03B9\u03BA\u03CC \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03B1\u03C4\u03B5\u03B2\u03AC\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03BA\u03B1\u03B9 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03B4\u03C9\u03C1\u03B5\u03AC\u03BD. \u03A7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C4\u03B1\u03B9 \u03BC\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03BB\u03B5\u03C0\u03C4\u03CC.",
|
|
1252
|
+
cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
|
|
1253
|
+
close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
|
|
1254
|
+
qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
|
|
1255
|
+
buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
|
|
1256
|
+
},
|
|
1257
|
+
// Español (LA)
|
|
1258
|
+
"es-419": {
|
|
1259
|
+
title: "Escanea para iniciar sesi\xF3n",
|
|
1260
|
+
titleIdentify: "Escanea para verificar tu identidad",
|
|
1261
|
+
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
1262
|
+
titleApprove: "Aprueba desde tu celular",
|
|
1263
|
+
bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
|
|
1264
|
+
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
1265
|
+
bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
|
|
1266
|
+
waiting: "Esperando escaneo",
|
|
1267
|
+
waitingApproval: "Esperando aprobaci\xF3n",
|
|
1268
|
+
expiresIn: "Expira en {time}",
|
|
1269
|
+
secured: "Verificaci\xF3n Proof-of-Human de ZOREAL",
|
|
1270
|
+
noIdTitle: "\xBFTodav\xEDa no tienes ZOREAL ID?",
|
|
1271
|
+
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear uno gratis. Solo toma un minuto.",
|
|
1272
|
+
cancel: "Cancelar",
|
|
1273
|
+
close: "Cerrar",
|
|
1274
|
+
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
1275
|
+
buttonContinue: "Continuar con ZOREAL"
|
|
1276
|
+
},
|
|
1277
|
+
// Suomi
|
|
1278
|
+
fi: {
|
|
1279
|
+
title: "Kirjaudu sis\xE4\xE4n skannaamalla",
|
|
1280
|
+
titleIdentify: "Vahvista henkil\xF6llisyytesi skannaamalla",
|
|
1281
|
+
titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
|
|
1282
|
+
titleApprove: "Hyv\xE4ksy puhelimessasi",
|
|
1283
|
+
bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
|
|
1284
|
+
bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
|
|
1285
|
+
bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
|
|
1286
|
+
waiting: "Odotetaan skannausta",
|
|
1287
|
+
waitingApproval: "Odotetaan hyv\xE4ksynt\xE4\xE4",
|
|
1288
|
+
expiresIn: "Vanhenee {time} kuluttua",
|
|
1289
|
+
secured: "ZOREALin Proof-of-Human-vahvistus",
|
|
1290
|
+
noIdTitle: "Eik\xF6 sinulla ole viel\xE4 ZOREAL ID:t\xE4?",
|
|
1291
|
+
noIdBody: "Skannaa sama koodi ladataksesi sovelluksen ja luodaksesi tunnuksen ilmaiseksi. Se vie vain minuutin.",
|
|
1292
|
+
cancel: "Peruuta",
|
|
1293
|
+
close: "Sulje",
|
|
1294
|
+
qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
|
|
1295
|
+
buttonContinue: "Jatka ZOREALilla"
|
|
1296
|
+
},
|
|
1297
|
+
// עברית
|
|
1298
|
+
he: {
|
|
1299
|
+
title: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8",
|
|
1300
|
+
titleIdentify: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D0\u05DE\u05EA \u05D0\u05EA \u05D6\u05D4\u05D5\u05EA\u05DA",
|
|
1301
|
+
titlePresence: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05DB\u05D9\u05D7 \u05E9\u05D0\u05EA\u05D4 \u05D0\u05D3\u05DD \u05D0\u05DE\u05D9\u05EA\u05D9",
|
|
1302
|
+
titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
|
|
1303
|
+
bodyScan: "\u05E1\u05E8\u05D5\u05E7 \u05D1\u05D0\u05DE\u05E6\u05E2\u05D5\u05EA \u05DE\u05E6\u05DC\u05DE\u05EA \u05D4\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA \u05D0\u05D5 \u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID.",
|
|
1304
|
+
bodyApprove: "\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D1\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID \u05E9\u05DC\u05DA.",
|
|
1305
|
+
bodyEnrolling: "\u05E1\u05D9\u05D9\u05DD \u05DC\u05D4\u05D2\u05D3\u05D9\u05E8 \u05D0\u05EA ZOREAL ID \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA, \u05D5\u05D0\u05D6 \u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA.",
|
|
1306
|
+
waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
|
|
1307
|
+
waitingApproval: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05D0\u05D9\u05E9\u05D5\u05E8",
|
|
1308
|
+
expiresIn: "\u05D9\u05E4\u05D5\u05D2 \u05D1\u05E2\u05D5\u05D3 {time}",
|
|
1309
|
+
secured: "\u05D0\u05D9\u05DE\u05D5\u05EA Proof-of-Human \u05DE\u05D1\u05D9\u05EA ZOREAL",
|
|
1310
|
+
noIdTitle: "\u05E2\u05D3\u05D9\u05D9\u05DF \u05D0\u05D9\u05DF \u05DC\u05DA ZOREAL ID?",
|
|
1311
|
+
noIdBody: "\u05E1\u05E8\u05D5\u05E7 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D5 \u05D4\u05E7\u05D5\u05D3 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E8\u05D9\u05D3 \u05D0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05D5\u05DC\u05D9\u05E6\u05D5\u05E8 \u05D0\u05D7\u05D3 \u05D1\u05D7\u05D9\u05E0\u05DD. \u05D6\u05D4 \u05DC\u05D5\u05E7\u05D7 \u05E8\u05E7 \u05D3\u05E7\u05D4.",
|
|
1312
|
+
cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
|
|
1313
|
+
close: "\u05E1\u05D2\u05D5\u05E8",
|
|
1314
|
+
qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
|
|
1315
|
+
buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
|
|
1316
|
+
},
|
|
1317
|
+
// Hrvatski
|
|
1318
|
+
hr: {
|
|
1319
|
+
title: "Skenirajte za prijavu",
|
|
1320
|
+
titleIdentify: "Skenirajte za potvrdu identiteta",
|
|
1321
|
+
titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
|
|
1322
|
+
titleApprove: "Odobrite na svom mobitelu",
|
|
1323
|
+
bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
|
|
1324
|
+
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
1325
|
+
bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
|
|
1326
|
+
waiting: "\u010Ceka se skeniranje",
|
|
1327
|
+
waitingApproval: "\u010Ceka se odobrenje",
|
|
1328
|
+
expiresIn: "Isti\u010De za {time}",
|
|
1329
|
+
secured: "ZOREAL Proof-of-Human provjera",
|
|
1330
|
+
noIdTitle: "Nemate ZOREAL ID?",
|
|
1331
|
+
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga izradite. Traje samo minutu.",
|
|
1332
|
+
cancel: "Odustani",
|
|
1333
|
+
close: "Zatvori",
|
|
1334
|
+
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
1335
|
+
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
1336
|
+
},
|
|
1337
|
+
// Magyar
|
|
1338
|
+
hu: {
|
|
1339
|
+
title: "Bejelentkez\xE9s beolvas\xE1ssal",
|
|
1340
|
+
titleIdentify: "Olvassa be a szem\xE9lyazonoss\xE1ga igazol\xE1s\xE1hoz",
|
|
1341
|
+
titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
|
|
1342
|
+
titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
|
|
1343
|
+
bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
|
|
1344
|
+
bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
|
|
1345
|
+
bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
|
|
1346
|
+
waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
|
|
1347
|
+
waitingApproval: "V\xE1rakoz\xE1s j\xF3v\xE1hagy\xE1sra",
|
|
1348
|
+
expiresIn: "Lej\xE1r {time} m\xFAlva",
|
|
1349
|
+
secured: "Proof-of-Human hiteles\xEDt\xE9s a ZOREAL-t\xF3l",
|
|
1350
|
+
noIdTitle: "M\xE9g nincs ZOREAL ID-je?",
|
|
1351
|
+
noIdBody: "Olvassa be ugyanazt a k\xF3dot az alkalmaz\xE1s let\xF6lt\xE9s\xE9hez, \xE9s hozzon l\xE9tre egyet ingyenesen. Mind\xF6ssze egy percet vesz ig\xE9nybe.",
|
|
1352
|
+
cancel: "M\xE9gse",
|
|
1353
|
+
close: "Bez\xE1r\xE1s",
|
|
1354
|
+
qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
|
|
1355
|
+
buttonContinue: "Folytat\xE1s a ZOREAL-lal"
|
|
1356
|
+
},
|
|
1357
|
+
// Bahasa Indonesia
|
|
1358
|
+
id: {
|
|
1359
|
+
title: "Pindai untuk masuk",
|
|
1360
|
+
titleIdentify: "Pindai untuk memverifikasi identitas Anda",
|
|
1361
|
+
titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
|
|
1362
|
+
titleApprove: "Setujui di ponsel Anda",
|
|
1363
|
+
bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
|
|
1364
|
+
bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
|
|
1365
|
+
bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
|
|
1366
|
+
waiting: "Menunggu pemindaian",
|
|
1367
|
+
waitingApproval: "Menunggu persetujuan",
|
|
1368
|
+
expiresIn: "Berakhir dalam {time}",
|
|
1369
|
+
secured: "Verifikasi Proof-of-Human oleh ZOREAL",
|
|
1370
|
+
noIdTitle: "Belum punya ZOREAL ID?",
|
|
1371
|
+
noIdBody: "Pindai kode yang sama untuk mengunduh aplikasi dan membuat akun secara gratis. Hanya butuh waktu satu menit.",
|
|
1372
|
+
cancel: "Batal",
|
|
1373
|
+
close: "Tutup",
|
|
1374
|
+
qrAlt: "Kode QR untuk masuk dengan ZOREAL",
|
|
1375
|
+
buttonContinue: "Lanjutkan dengan ZOREAL"
|
|
1376
|
+
},
|
|
1377
|
+
// Italiano
|
|
1378
|
+
it: {
|
|
1379
|
+
title: "Scansiona per accedere",
|
|
1380
|
+
titleIdentify: "Scansiona per verificare la tua identit\xE0",
|
|
1381
|
+
titlePresence: "Scansiona per dimostrare di essere una persona reale",
|
|
1382
|
+
titleApprove: "Approva sul tuo telefono",
|
|
1383
|
+
bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
|
|
1384
|
+
bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
|
|
1385
|
+
bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
|
|
1386
|
+
waiting: "In attesa della scansione",
|
|
1387
|
+
waitingApproval: "In attesa di approvazione",
|
|
1388
|
+
expiresIn: "Scade tra {time}",
|
|
1389
|
+
secured: "Verifica Proof-of-Human di ZOREAL",
|
|
1390
|
+
noIdTitle: "Non hai ancora uno ZOREAL ID?",
|
|
1391
|
+
noIdBody: "Scansiona lo stesso codice per scaricare l'app e crearne uno gratis. Basta un minuto.",
|
|
1392
|
+
cancel: "Annulla",
|
|
1393
|
+
close: "Chiudi",
|
|
1394
|
+
qrAlt: "Codice QR per accedere con ZOREAL",
|
|
1395
|
+
buttonContinue: "Continua con ZOREAL"
|
|
1396
|
+
},
|
|
1397
|
+
// Bahasa Melayu
|
|
1398
|
+
ms: {
|
|
1399
|
+
title: "Imbas untuk log masuk",
|
|
1400
|
+
titleIdentify: "Imbas untuk mengesahkan identiti anda",
|
|
1401
|
+
titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
|
|
1402
|
+
titleApprove: "Luluskan di telefon anda",
|
|
1403
|
+
bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
|
|
1404
|
+
bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
|
|
1405
|
+
bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
|
|
1406
|
+
waiting: "Menunggu imbasan",
|
|
1407
|
+
waitingApproval: "Menunggu kelulusan",
|
|
1408
|
+
expiresIn: "Tamat tempoh dalam {time}",
|
|
1409
|
+
secured: "Pengesahan Proof-of-Human oleh ZOREAL",
|
|
1410
|
+
noIdTitle: "Belum ada ZOREAL ID?",
|
|
1411
|
+
noIdBody: "Imbas kod yang sama untuk memuat turun aplikasi dan cipta satu secara percuma. Hanya mengambil masa seminit.",
|
|
1412
|
+
cancel: "Batal",
|
|
1413
|
+
close: "Tutup",
|
|
1414
|
+
qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
|
|
1415
|
+
buttonContinue: "Teruskan dengan ZOREAL"
|
|
1416
|
+
},
|
|
1417
|
+
// Nederlands
|
|
1418
|
+
nl: {
|
|
1419
|
+
title: "Scan om in te loggen",
|
|
1420
|
+
titleIdentify: "Scan om je identiteit te verifi\xEBren",
|
|
1421
|
+
titlePresence: "Scan om te bewijzen dat je een echt mens bent",
|
|
1422
|
+
titleApprove: "Keur goed op je telefoon",
|
|
1423
|
+
bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
|
|
1424
|
+
bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
|
|
1425
|
+
bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
|
|
1426
|
+
waiting: "Wachten op scan",
|
|
1427
|
+
waitingApproval: "Wachten op goedkeuring",
|
|
1428
|
+
expiresIn: "Verloopt over {time}",
|
|
1429
|
+
secured: "Proof-of-Human-verificatie door ZOREAL",
|
|
1430
|
+
noIdTitle: "Nog geen ZOREAL ID?",
|
|
1431
|
+
noIdBody: "Scan dezelfde code om de app te downloaden en gratis een account aan te maken. Dit duurt maar een minuut.",
|
|
1432
|
+
cancel: "Annuleren",
|
|
1433
|
+
close: "Sluiten",
|
|
1434
|
+
qrAlt: "QR-code om in te loggen met ZOREAL",
|
|
1435
|
+
buttonContinue: "Doorgaan met ZOREAL"
|
|
1436
|
+
},
|
|
1437
|
+
// Norsk
|
|
1438
|
+
no: {
|
|
1439
|
+
title: "Skann for \xE5 logge inn",
|
|
1440
|
+
titleIdentify: "Skann for \xE5 bekrefte identiteten din",
|
|
1441
|
+
titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
|
|
1442
|
+
titleApprove: "Godkjenn p\xE5 telefonen din",
|
|
1443
|
+
bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
|
|
1444
|
+
bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
|
|
1445
|
+
bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
|
|
1446
|
+
waiting: "Venter p\xE5 skanning",
|
|
1447
|
+
waitingApproval: "Venter p\xE5 godkjenning",
|
|
1448
|
+
expiresIn: "Utl\xF8per om {time}",
|
|
1449
|
+
secured: "Proof-of-Human-verifisering av ZOREAL",
|
|
1450
|
+
noIdTitle: "Har du ikke ZOREAL ID enn\xE5?",
|
|
1451
|
+
noIdBody: "Skann den samme koden for \xE5 laste ned appen og opprette en gratis. Det tar bare et minutt.",
|
|
1452
|
+
cancel: "Avbryt",
|
|
1453
|
+
close: "Lukk",
|
|
1454
|
+
qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
|
|
1455
|
+
buttonContinue: "Fortsett med ZOREAL"
|
|
1456
|
+
},
|
|
1457
|
+
// Polski
|
|
1458
|
+
pl: {
|
|
1459
|
+
title: "Zeskanuj, aby si\u0119 zalogowa\u0107",
|
|
1460
|
+
titleIdentify: "Zeskanuj, aby zweryfikowa\u0107 swoj\u0105 to\u017Csamo\u015B\u0107",
|
|
1461
|
+
titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
|
|
1462
|
+
titleApprove: "Zatwierd\u017A w telefonie",
|
|
1463
|
+
bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
|
|
1464
|
+
bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
|
|
1465
|
+
bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
|
|
1466
|
+
waiting: "Czekanie na skan",
|
|
1467
|
+
waitingApproval: "Czekanie na zatwierdzenie",
|
|
1468
|
+
expiresIn: "Wygasa za {time}",
|
|
1469
|
+
secured: "Weryfikacja Proof-of-Human od ZOREAL",
|
|
1470
|
+
noIdTitle: "Nie masz jeszcze ZOREAL ID?",
|
|
1471
|
+
noIdBody: "Zeskanuj ten sam kod, aby pobra\u0107 aplikacj\u0119 i bezp\u0142atnie utworzy\u0107 ZOREAL ID. Zajmie to tylko minut\u0119.",
|
|
1472
|
+
cancel: "Anuluj",
|
|
1473
|
+
close: "Zamknij",
|
|
1474
|
+
qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
|
|
1475
|
+
buttonContinue: "Kontynuuj z ZOREAL"
|
|
1476
|
+
},
|
|
1477
|
+
// Português (BR)
|
|
1478
|
+
"pt-br": {
|
|
1479
|
+
title: "Escaneie para entrar",
|
|
1480
|
+
titleIdentify: "Escaneie para verificar sua identidade",
|
|
1481
|
+
titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
|
|
1482
|
+
titleApprove: "Aprove no seu celular",
|
|
1483
|
+
bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
|
|
1484
|
+
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
1485
|
+
bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
|
|
1486
|
+
waiting: "Aguardando escaneamento",
|
|
1487
|
+
waitingApproval: "Aguardando aprova\xE7\xE3o",
|
|
1488
|
+
expiresIn: "Expira em {time}",
|
|
1489
|
+
secured: "Verifica\xE7\xE3o Proof-of-Human da ZOREAL",
|
|
1490
|
+
noIdTitle: "Ainda n\xE3o tem um ZOREAL ID?",
|
|
1491
|
+
noIdBody: "Escaneie o mesmo c\xF3digo para baixar o app e criar um de gra\xE7a. Leva s\xF3 um minuto.",
|
|
1492
|
+
cancel: "Cancelar",
|
|
1493
|
+
close: "Fechar",
|
|
1494
|
+
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
1495
|
+
buttonContinue: "Continuar com ZOREAL"
|
|
1496
|
+
},
|
|
1497
|
+
// Română
|
|
1498
|
+
ro: {
|
|
1499
|
+
title: "Scana\u021Bi pentru conectare",
|
|
1500
|
+
titleIdentify: "Scana\u021Bi pentru a v\u0103 verifica identitatea",
|
|
1501
|
+
titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
|
|
1502
|
+
titleApprove: "Aproba\u021Bi de pe telefon",
|
|
1503
|
+
bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
|
|
1504
|
+
bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
|
|
1505
|
+
bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
|
|
1506
|
+
waiting: "Se a\u0219teapt\u0103 scanarea",
|
|
1507
|
+
waitingApproval: "Se a\u0219teapt\u0103 aprobarea",
|
|
1508
|
+
expiresIn: "Expir\u0103 \xEEn {time}",
|
|
1509
|
+
secured: "Verificare Proof-of-Human de la ZOREAL",
|
|
1510
|
+
noIdTitle: "Nu ave\u021Bi \xEEnc\u0103 un ZOREAL ID?",
|
|
1511
|
+
noIdBody: "Scana\u021Bi acela\u0219i cod pentru a desc\u0103rca aplica\u021Bia \u0219i a crea unul gratuit. Dureaz\u0103 doar un minut.",
|
|
1512
|
+
cancel: "Anuleaz\u0103",
|
|
1513
|
+
close: "\xCEnchide",
|
|
1514
|
+
qrAlt: "Cod QR pentru conectare cu ZOREAL",
|
|
1515
|
+
buttonContinue: "Continua\u021Bi cu ZOREAL"
|
|
1516
|
+
},
|
|
1517
|
+
// Српски
|
|
1518
|
+
sr: {
|
|
1519
|
+
title: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443",
|
|
1520
|
+
titleIdentify: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u043F\u043E\u0442\u0432\u0440\u0434\u0438\u0442\u0435 \u0441\u0432\u043E\u0458 \u0438\u0434\u0435\u043D\u0442\u0438\u0442\u0435\u0442",
|
|
1521
|
+
titlePresence: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u0434\u043E\u043A\u0430\u0436\u0435\u0442\u0435 \u0434\u0430 \u0441\u0442\u0435 \u043F\u0440\u0430\u0432\u0430 \u043E\u0441\u043E\u0431\u0430",
|
|
1522
|
+
titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
|
|
1523
|
+
bodyScan: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u043C \u0441\u0432\u043E\u0433 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0438\u043B\u0438 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u043E\u043C ZOREAL ID.",
|
|
1524
|
+
bodyApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u0443 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0438 ZOREAL ID.",
|
|
1525
|
+
bodyEnrolling: "\u0414\u043E\u0432\u0440\u0448\u0438\u0442\u0435 \u043F\u043E\u0434\u0435\u0448\u0430\u0432\u0430\u045A\u0435 ZOREAL ID-\u0430 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443, \u043F\u0430 \u043E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043F\u0440\u0438\u0458\u0430\u0432\u0443.",
|
|
1526
|
+
waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
|
|
1527
|
+
waitingApproval: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u043E\u0434\u043E\u0431\u0440\u0435\u045A\u0435",
|
|
1528
|
+
expiresIn: "\u0418\u0441\u0442\u0438\u0447\u0435 \u0437\u0430 {time}",
|
|
1529
|
+
secured: "ZOREAL Proof-of-Human \u0432\u0435\u0440\u0438\u0444\u0438\u043A\u0430\u0446\u0438\u0458\u0430",
|
|
1530
|
+
noIdTitle: "\u041D\u0435\u043C\u0430\u0442\u0435 ZOREAL ID?",
|
|
1531
|
+
noIdBody: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0438\u0441\u0442\u0438 \u043A\u043E\u0434 \u0434\u0430 \u043F\u0440\u0435\u0443\u0437\u043C\u0435\u0442\u0435 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0443 \u0438 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E \u0433\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u0435. \u0422\u0440\u0430\u0458\u0435 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442.",
|
|
1532
|
+
cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
|
|
1533
|
+
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
1534
|
+
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
|
|
1535
|
+
buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
|
|
1536
|
+
},
|
|
1537
|
+
// ไทย
|
|
1538
|
+
th: {
|
|
1539
|
+
title: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
|
|
1540
|
+
titleIdentify: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E15\u0E31\u0E27\u0E15\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
1541
|
+
titlePresence: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E1E\u0E34\u0E2A\u0E39\u0E08\u0E19\u0E4C\u0E27\u0E48\u0E32\u0E04\u0E38\u0E13\u0E40\u0E1B\u0E47\u0E19\u0E21\u0E19\u0E38\u0E29\u0E22\u0E4C\u0E08\u0E23\u0E34\u0E07",
|
|
1542
|
+
titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
1543
|
+
bodyScan: "\u0E2A\u0E41\u0E01\u0E19\u0E14\u0E49\u0E27\u0E22\u0E01\u0E25\u0E49\u0E2D\u0E07\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E2B\u0E23\u0E37\u0E2D\u0E41\u0E2D\u0E1B ZOREAL ID",
|
|
1544
|
+
bodyApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E43\u0E19\u0E41\u0E2D\u0E1B ZOREAL ID \u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
1545
|
+
bodyEnrolling: "\u0E15\u0E31\u0E49\u0E07\u0E04\u0E48\u0E32 ZOREAL ID \u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13\u0E43\u0E2B\u0E49\u0E40\u0E2A\u0E23\u0E47\u0E08\u0E2A\u0E34\u0E49\u0E19 \u0E41\u0E25\u0E49\u0E27\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
|
|
1546
|
+
waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
|
|
1547
|
+
waitingApproval: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34",
|
|
1548
|
+
expiresIn: "\u0E2B\u0E21\u0E14\u0E2D\u0E32\u0E22\u0E38\u0E43\u0E19 {time}",
|
|
1549
|
+
secured: "\u0E01\u0E32\u0E23\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E15\u0E31\u0E27\u0E15\u0E19 Proof-of-Human \u0E42\u0E14\u0E22 ZOREAL",
|
|
1550
|
+
noIdTitle: "\u0E22\u0E31\u0E07\u0E44\u0E21\u0E48\u0E21\u0E35 ZOREAL ID \u0E43\u0E0A\u0E48\u0E44\u0E2B\u0E21",
|
|
1551
|
+
noIdBody: "\u0E2A\u0E41\u0E01\u0E19\u0E42\u0E04\u0E49\u0E14\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E2D\u0E1B\u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1F\u0E23\u0E35 \u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E19\u0E32\u0E17\u0E35\u0E40\u0E14\u0E35\u0E22\u0E27",
|
|
1552
|
+
cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
|
|
1553
|
+
close: "\u0E1B\u0E34\u0E14",
|
|
1554
|
+
qrAlt: "\u0E04\u0E34\u0E27\u0E2D\u0E32\u0E23\u0E4C\u0E42\u0E04\u0E49\u0E14\u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E14\u0E49\u0E27\u0E22 ZOREAL",
|
|
1555
|
+
buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
|
|
1556
|
+
},
|
|
1557
|
+
// Tagalog
|
|
1558
|
+
tl: {
|
|
1559
|
+
title: "I-scan para mag-sign in",
|
|
1560
|
+
titleIdentify: "I-scan para i-verify ang iyong pagkakakilanlan",
|
|
1561
|
+
titlePresence: "I-scan para patunayang tunay kang tao",
|
|
1562
|
+
titleApprove: "I-approve sa iyong telepono",
|
|
1563
|
+
bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
|
|
1564
|
+
bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
|
|
1565
|
+
bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
|
|
1566
|
+
waiting: "Naghihintay ng scan",
|
|
1567
|
+
waitingApproval: "Naghihintay ng approval",
|
|
1568
|
+
expiresIn: "Mag-e-expire sa {time}",
|
|
1569
|
+
secured: "Proof-of-Human verification mula sa ZOREAL",
|
|
1570
|
+
noIdTitle: "Wala ka pang ZOREAL ID?",
|
|
1571
|
+
noIdBody: "I-scan ang parehong code para i-download ang app at gumawa ng iyong ZOREAL ID nang libre. Isang minuto lang ito.",
|
|
1572
|
+
cancel: "Kanselahin",
|
|
1573
|
+
close: "Isara",
|
|
1574
|
+
qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
|
|
1575
|
+
buttonContinue: "Magpatuloy gamit ang ZOREAL"
|
|
1576
|
+
},
|
|
1577
|
+
// Türkçe
|
|
1578
|
+
tr: {
|
|
1579
|
+
title: "Giri\u015F i\xE7in taray\u0131n",
|
|
1580
|
+
titleIdentify: "Kimli\u011Finizi do\u011Frulamak i\xE7in taray\u0131n",
|
|
1581
|
+
titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
|
|
1582
|
+
titleApprove: "Telefonunuzdan onaylay\u0131n",
|
|
1583
|
+
bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
|
|
1584
|
+
bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
|
|
1585
|
+
bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
|
|
1586
|
+
waiting: "Tarama bekleniyor",
|
|
1587
|
+
waitingApproval: "Onay bekleniyor",
|
|
1588
|
+
expiresIn: "{time} i\xE7inde sona erer",
|
|
1589
|
+
secured: "ZOREAL taraf\u0131ndan Proof-of-Human do\u011Frulamas\u0131",
|
|
1590
|
+
noIdTitle: "Hen\xFCz ZOREAL ID'niz yok mu?",
|
|
1591
|
+
noIdBody: "Uygulamay\u0131 indirmek ve \xFCcretsiz bir tane olu\u015Fturmak i\xE7in ayn\u0131 kodu taray\u0131n. Sadece bir dakikan\u0131z\u0131 al\u0131r.",
|
|
1592
|
+
cancel: "\u0130ptal",
|
|
1593
|
+
close: "Kapat",
|
|
1594
|
+
qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
|
|
1595
|
+
buttonContinue: "ZOREAL ile devam et"
|
|
1596
|
+
},
|
|
1597
|
+
// Українська
|
|
1598
|
+
uk: {
|
|
1599
|
+
title: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443",
|
|
1600
|
+
titleIdentify: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043E\u0441\u043E\u0431\u0443",
|
|
1601
|
+
titlePresence: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u0434\u043E\u0432\u0435\u0441\u0442\u0438, \u0449\u043E \u0432\u0438 \u0441\u043F\u0440\u0430\u0432\u0436\u043D\u044F \u043B\u044E\u0434\u0438\u043D\u0430",
|
|
1602
|
+
titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
|
|
1603
|
+
bodyScan: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u043A\u0430\u043C\u0435\u0440\u043E\u044E \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443 \u0430\u0431\u043E \u0434\u043E\u0434\u0430\u0442\u043A\u043E\u043C ZOREAL ID.",
|
|
1604
|
+
bodyApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434 \u0443 \u0434\u043E\u0434\u0430\u0442\u043A\u0443 ZOREAL ID.",
|
|
1605
|
+
bodyEnrolling: "\u0417\u0430\u0432\u0435\u0440\u0448\u0456\u0442\u044C \u043D\u0430\u043B\u0430\u0448\u0442\u0443\u0432\u0430\u043D\u043D\u044F ZOREAL ID \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456, \u0430 \u043F\u043E\u0442\u0456\u043C \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0432\u0445\u0456\u0434.",
|
|
1606
|
+
waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
|
|
1607
|
+
waitingApproval: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0436\u0435\u043D\u043D\u044F",
|
|
1608
|
+
expiresIn: "\u0421\u043F\u043B\u0438\u0432\u0430\u0454 \u0447\u0435\u0440\u0435\u0437 {time}",
|
|
1609
|
+
secured: "\u041F\u0435\u0440\u0435\u0432\u0456\u0440\u043A\u0430 Proof-of-Human \u0432\u0456\u0434 ZOREAL",
|
|
1610
|
+
noIdTitle: "\u0429\u0435 \u043D\u0435\u043C\u0430\u0454 ZOREAL ID?",
|
|
1611
|
+
noIdBody: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0442\u043E\u0439 \u0441\u0430\u043C\u0438\u0439 \u043A\u043E\u0434, \u0449\u043E\u0431 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0434\u043E\u0434\u0430\u0442\u043E\u043A \u0456 \u0431\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E \u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0439\u043E\u0433\u043E. \u0426\u0435 \u0437\u0430\u0439\u043C\u0435 \u043B\u0438\u0448\u0435 \u0445\u0432\u0438\u043B\u0438\u043D\u0443.",
|
|
1612
|
+
cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
1613
|
+
close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
|
|
1614
|
+
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
|
|
1615
|
+
buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
|
|
1616
|
+
},
|
|
1617
|
+
// اردو
|
|
1618
|
+
ur: {
|
|
1619
|
+
title: "\u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
1620
|
+
titleIdentify: "\u0627\u067E\u0646\u06CC \u0634\u0646\u0627\u062E\u062A \u06A9\u06CC \u062A\u0635\u062F\u06CC\u0642 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
1621
|
+
titlePresence: "\u06CC\u06C1 \u062B\u0627\u0628\u062A \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA \u06A9\u06C1 \u0622\u067E \u0627\u06CC\u06A9 \u062D\u0642\u06CC\u0642\u06CC \u0627\u0646\u0633\u0627\u0646 \u06C1\u06CC\u06BA",
|
|
1622
|
+
titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
|
|
1623
|
+
bodyScan: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u06A9\u06D2 \u06A9\u06CC\u0645\u0631\u06D2 \u06CC\u0627 ZOREAL ID \u0627\u06CC\u067E \u0633\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4",
|
|
1624
|
+
bodyApprove: "\u0627\u067E\u0646\u06CC ZOREAL ID \u0627\u06CC\u067E \u0645\u06CC\u06BA \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
|
|
1625
|
+
bodyEnrolling: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 ZOREAL ID \u06A9\u06CC \u0633\u06CC\u0679 \u0627\u067E \u0645\u06A9\u0645\u0644 \u06A9\u0631\u06CC\u06BA\u060C \u067E\u06BE\u0631 \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
|
|
1626
|
+
waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
|
|
1627
|
+
waitingApproval: "\u0645\u0646\u0638\u0648\u0631\u06CC \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
|
|
1628
|
+
expiresIn: "{time} \u0645\u06CC\u06BA \u062E\u062A\u0645 \u06C1\u0648\u06AF\u0627",
|
|
1629
|
+
secured: "ZOREAL \u06A9\u06CC \u062C\u0627\u0646\u0628 \u0633\u06D2 Proof-of-Human \u062A\u0635\u062F\u06CC\u0642",
|
|
1630
|
+
noIdTitle: "\u0627\u0628\u06BE\u06CC \u062A\u06A9 ZOREAL ID \u0646\u06C1\u06CC\u06BA \u06C1\u06D2\u061F",
|
|
1631
|
+
noIdBody: "\u0627\u06CC\u067E \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06A9\u0631\u0646\u06D2 \u0627\u0648\u0631 \u0645\u0641\u062A \u0645\u06CC\u06BA \u0627\u06CC\u06A9 \u0628\u0646\u0627\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0648\u06C1\u06CC \u06A9\u0648\u0688 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4 \u0627\u0633 \u0645\u06CC\u06BA \u0635\u0631\u0641 \u0627\u06CC\u06A9 \u0645\u0646\u0679 \u0644\u06AF\u062A\u0627 \u06C1\u06D2\u06D4",
|
|
1632
|
+
cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
|
|
1633
|
+
close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
|
|
1634
|
+
qrAlt: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 QR \u06A9\u0648\u0688",
|
|
1635
|
+
buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
|
|
1636
|
+
},
|
|
1637
|
+
// Tiếng Việt
|
|
1638
|
+
vi: {
|
|
1639
|
+
title: "Qu\xE9t \u0111\u1EC3 \u0111\u0103ng nh\u1EADp",
|
|
1640
|
+
titleIdentify: "Qu\xE9t \u0111\u1EC3 x\xE1c minh danh t\xEDnh c\u1EE7a b\u1EA1n",
|
|
1641
|
+
titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
|
|
1642
|
+
titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
|
|
1643
|
+
bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
|
|
1644
|
+
bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
|
|
1645
|
+
bodyEnrolling: "Ho\xE0n t\u1EA5t thi\u1EBFt l\u1EADp ZOREAL ID tr\xEAn \u0111i\u1EC7n tho\u1EA1i, sau \u0111\xF3 ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp.",
|
|
1646
|
+
waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
|
|
1647
|
+
waitingApproval: "\u0110ang ch\u1EDD ph\xEA duy\u1EC7t",
|
|
1648
|
+
expiresIn: "H\u1EBFt h\u1EA1n sau {time}",
|
|
1649
|
+
secured: "X\xE1c minh Proof-of-Human b\u1EDFi ZOREAL",
|
|
1650
|
+
noIdTitle: "Ch\u01B0a c\xF3 ZOREAL ID?",
|
|
1651
|
+
noIdBody: "Qu\xE9t c\xF9ng m\xE3 n\xE0y \u0111\u1EC3 t\u1EA3i \u1EE9ng d\u1EE5ng v\xE0 t\u1EA1o t\xE0i kho\u1EA3n mi\u1EC5n ph\xED. Ch\u1EC9 m\u1EA5t m\u1ED9t ph\xFAt.",
|
|
1652
|
+
cancel: "H\u1EE7y",
|
|
1653
|
+
close: "\u0110\xF3ng",
|
|
1654
|
+
qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
|
|
1655
|
+
buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
|
|
1656
|
+
}
|
|
1657
|
+
};
|
|
1658
|
+
var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
|
|
1659
|
+
var ALIASES = {
|
|
1660
|
+
nb: "no",
|
|
1661
|
+
// Bokmål — what we actually wrote
|
|
1662
|
+
nn: "no",
|
|
1663
|
+
// Nynorsk reader, served Bokmål: closer than English
|
|
1664
|
+
fil: "tl",
|
|
1665
|
+
// Filipino / Tagalog
|
|
1666
|
+
iw: "he",
|
|
1667
|
+
// superseded code for Hebrew, still emitted by some platforms
|
|
1668
|
+
in: "id"
|
|
1669
|
+
// superseded code for Indonesian
|
|
1670
|
+
};
|
|
1671
|
+
var LATAM = /* @__PURE__ */ new Set([
|
|
1672
|
+
"ar",
|
|
1673
|
+
"bo",
|
|
1674
|
+
"cl",
|
|
1675
|
+
"co",
|
|
1676
|
+
"cr",
|
|
1677
|
+
"cu",
|
|
1678
|
+
"do",
|
|
1679
|
+
"ec",
|
|
1680
|
+
"gt",
|
|
1681
|
+
"hn",
|
|
1682
|
+
"mx",
|
|
1683
|
+
"ni",
|
|
1684
|
+
"pa",
|
|
1685
|
+
"pe",
|
|
1686
|
+
"pr",
|
|
1687
|
+
"py",
|
|
1688
|
+
"sv",
|
|
1689
|
+
"uy",
|
|
1690
|
+
"ve",
|
|
1691
|
+
"419"
|
|
1692
|
+
]);
|
|
1693
|
+
function lookup(locale) {
|
|
1694
|
+
const tag = locale.toLowerCase().replace(/_/g, "-");
|
|
1695
|
+
const parts = tag.split("-");
|
|
1696
|
+
const primary = ALIASES[parts[0]] ?? parts[0];
|
|
1697
|
+
const region = parts[1];
|
|
1698
|
+
if (primary === "zh") {
|
|
1699
|
+
const simplified = /(^|-)(hans|cn|sg|my)(-|$)/.test(tag);
|
|
1700
|
+
return TRANSLATIONS[simplified ? "zhs" : "zht"];
|
|
1701
|
+
}
|
|
1702
|
+
if (primary === "es" && region && LATAM.has(region)) return TRANSLATIONS["es-419"];
|
|
1703
|
+
if (primary === "pt" && region === "br") return TRANSLATIONS["pt-br"];
|
|
1704
|
+
return TRANSLATIONS[tag] ?? TRANSLATIONS[primary];
|
|
1705
|
+
}
|
|
1706
|
+
function browserLocales() {
|
|
1707
|
+
if (typeof navigator === "undefined") return [];
|
|
1708
|
+
const nav = navigator;
|
|
1709
|
+
if (nav.languages && nav.languages.length) return [...nav.languages];
|
|
1710
|
+
return nav.language ? [nav.language] : [];
|
|
1601
1711
|
}
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1712
|
+
function strings(locale) {
|
|
1713
|
+
if (locale) return lookup(locale) ?? en;
|
|
1714
|
+
for (const candidate of browserLocales()) {
|
|
1715
|
+
const hit = lookup(candidate);
|
|
1716
|
+
if (hit) return hit;
|
|
1717
|
+
}
|
|
1718
|
+
return en;
|
|
1605
1719
|
}
|
|
1606
|
-
|
|
1607
|
-
|
|
1608
|
-
|
|
1609
|
-
|
|
1610
|
-
.${PREFIX2}-card,
|
|
1611
|
-
.${PREFIX2}-qr-overlay { animation: none }
|
|
1612
|
-
.${PREFIX2}-dot i:first-child { animation: none; opacity: 0.35 }
|
|
1613
|
-
.${PREFIX2}-qr,
|
|
1614
|
-
.${PREFIX2}-cancel,
|
|
1615
|
-
.${PREFIX2}-close,
|
|
1616
|
-
.${PREFIX2}-timer { transition: none }
|
|
1617
|
-
/* No travelling light; the edge keeps its dim static glow instead. */
|
|
1618
|
-
.${PREFIX2}-qr-beam::after,
|
|
1619
|
-
.${PREFIX2}-qr-beam-glow-band::after { animation: none; opacity: 0 }
|
|
1620
|
-
.${PREFIX2}-qr-beam::before { opacity: 0.55 }
|
|
1621
|
-
.${PREFIX2}-qr-beam-glow-band::before { opacity: 0.7 }
|
|
1720
|
+
function isRtl(locale) {
|
|
1721
|
+
const tag = locale ?? browserLocales()[0];
|
|
1722
|
+
if (!tag) return false;
|
|
1723
|
+
return RTL.has(tag.toLowerCase().replace(/_/g, "-").split("-")[0]);
|
|
1622
1724
|
}
|
|
1623
|
-
|
|
1624
|
-
|
|
1625
|
-
if (typeof document === "undefined") return;
|
|
1626
|
-
if (document.getElementById(STYLE_ELEMENT_ID)) return;
|
|
1627
|
-
const el2 = document.createElement("style");
|
|
1628
|
-
el2.id = STYLE_ELEMENT_ID;
|
|
1629
|
-
el2.textContent = CSS;
|
|
1630
|
-
document.head.appendChild(el2);
|
|
1725
|
+
function interpolate(template, time) {
|
|
1726
|
+
return template.replace("{time}", time);
|
|
1631
1727
|
}
|
|
1632
1728
|
|
|
1633
1729
|
// src/modal.ts
|
|
@@ -1644,9 +1740,9 @@ function el(tag, className, text) {
|
|
|
1644
1740
|
if (text !== void 0) node.textContent = text;
|
|
1645
1741
|
return node;
|
|
1646
1742
|
}
|
|
1647
|
-
var
|
|
1743
|
+
var SVG_NS2 = "http://www.w3.org/2000/svg";
|
|
1648
1744
|
function svg(viewBox, attrs = {}) {
|
|
1649
|
-
const node = document.createElementNS(
|
|
1745
|
+
const node = document.createElementNS(SVG_NS2, "svg");
|
|
1650
1746
|
node.setAttribute("viewBox", viewBox);
|
|
1651
1747
|
node.setAttribute("focusable", "false");
|
|
1652
1748
|
node.setAttribute("aria-hidden", "true");
|
|
@@ -1654,7 +1750,7 @@ function svg(viewBox, attrs = {}) {
|
|
|
1654
1750
|
return node;
|
|
1655
1751
|
}
|
|
1656
1752
|
function path(d, attrs = {}) {
|
|
1657
|
-
const node = document.createElementNS(
|
|
1753
|
+
const node = document.createElementNS(SVG_NS2, "path");
|
|
1658
1754
|
node.setAttribute("d", d);
|
|
1659
1755
|
for (const [k, v] of Object.entries(attrs)) node.setAttribute(k, v);
|
|
1660
1756
|
return node;
|
|
@@ -1692,7 +1788,7 @@ function lockup(height) {
|
|
|
1692
1788
|
node.setAttribute("role", "img");
|
|
1693
1789
|
node.setAttribute("aria-label", "ZOREAL");
|
|
1694
1790
|
node.appendChild(path(WORDMARK, { fill: "currentColor" }));
|
|
1695
|
-
const g = document.createElementNS(
|
|
1791
|
+
const g = document.createElementNS(SVG_NS2, "g");
|
|
1696
1792
|
g.setAttribute("fill", ZOREAL_BLUE);
|
|
1697
1793
|
g.setAttribute("fill-rule", "evenodd");
|
|
1698
1794
|
for (const d of MARK_PATHS) g.appendChild(path(d));
|
|
@@ -2011,10 +2107,13 @@ function startLogin(options) {
|
|
|
2011
2107
|
let stopRefresh = () => {
|
|
2012
2108
|
};
|
|
2013
2109
|
controller.signal.addEventListener("abort", () => stopRefresh());
|
|
2110
|
+
const releaseControl = options.control ? holdBusy(options.control) : () => {
|
|
2111
|
+
};
|
|
2014
2112
|
const teardown = () => {
|
|
2015
2113
|
stopRefresh();
|
|
2016
2114
|
modal?.close();
|
|
2017
2115
|
modal = null;
|
|
2116
|
+
releaseControl();
|
|
2018
2117
|
};
|
|
2019
2118
|
const run = async () => {
|
|
2020
2119
|
const verifier = generateVerifier();
|
|
@@ -2240,6 +2339,8 @@ function resumeLogin(options) {
|
|
|
2240
2339
|
forgetReturnFlow(id);
|
|
2241
2340
|
const issuer = options.issuer ?? saved.issuer;
|
|
2242
2341
|
const controller = new AbortController();
|
|
2342
|
+
const releaseControl = options.control ? holdBusy(options.control) : () => {
|
|
2343
|
+
};
|
|
2243
2344
|
const promise = (async () => {
|
|
2244
2345
|
const code = await pollUntilApproved(
|
|
2245
2346
|
issuer,
|
|
@@ -2274,6 +2375,7 @@ function resumeLogin(options) {
|
|
|
2274
2375
|
markReturnDone(id);
|
|
2275
2376
|
return response;
|
|
2276
2377
|
})();
|
|
2378
|
+
promise.then(releaseControl, releaseControl);
|
|
2277
2379
|
promise.catch(() => {
|
|
2278
2380
|
});
|
|
2279
2381
|
return {
|