@zoreal/oauth2-js 0.1.14 → 0.1.15

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/dist/index.cjs CHANGED
@@ -60,7 +60,7 @@ function unsafeClaims(idToken) {
60
60
 
61
61
  // src/wire.ts
62
62
  var WIRE_VERSION = 1;
63
- var SDK_VERSION = "0.1.14";
63
+ var SDK_VERSION = "0.1.15";
64
64
  var SDK_NAME = "@zoreal/oauth2-js";
65
65
  var DEFAULT_ISSUER = "https://id.zoreal.com";
66
66
  var POLL_INTERVAL_MS = 2e3;
@@ -212,6 +212,7 @@ var en = {
212
212
  titlePresence: "Scan to prove you are a real human",
213
213
  titleApprove: "Approve on your phone",
214
214
  bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
215
+ bodyLink: "Approve this sign-in in the ZOREAL ID app on this phone.",
215
216
  bodyApprove: "Approve the login in your ZOREAL ID app.",
216
217
  bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
217
218
  waiting: "Waiting for scan",
@@ -223,7 +224,8 @@ var en = {
223
224
  cancel: "Cancel",
224
225
  close: "Close",
225
226
  qrAlt: "QR code to sign in with ZOREAL",
226
- buttonContinue: "Continue with ZOREAL"
227
+ buttonContinue: "Continue with ZOREAL",
228
+ openApp: "Open ZOREAL ID"
227
229
  };
228
230
  var TRANSLATIONS = {
229
231
  en,
@@ -233,6 +235,7 @@ var TRANSLATIONS = {
233
235
  titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
234
236
  titleApprove: "Godk\xE4nn p\xE5 telefonen",
235
237
  bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
238
+ bodyLink: "Godk\xE4nn inloggningen i ZOREAL ID-appen p\xE5 den h\xE4r telefonen.",
236
239
  bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
237
240
  bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
238
241
  waiting: "V\xE4ntar p\xE5 skanning",
@@ -244,7 +247,8 @@ var TRANSLATIONS = {
244
247
  cancel: "Avbryt",
245
248
  close: "St\xE4ng",
246
249
  qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
247
- buttonContinue: "Forts\xE4tt med ZOREAL"
250
+ buttonContinue: "Forts\xE4tt med ZOREAL",
251
+ openApp: "\xD6ppna ZOREAL ID"
248
252
  },
249
253
  es: {
250
254
  title: "Escanea para iniciar sesi\xF3n",
@@ -252,6 +256,7 @@ var TRANSLATIONS = {
252
256
  titlePresence: "Escanea para demostrar que eres una persona real",
253
257
  titleApprove: "Apru\xE9balo en tu tel\xE9fono",
254
258
  bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
259
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
255
260
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
256
261
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
257
262
  waiting: "Esperando el escaneo",
@@ -263,7 +268,8 @@ var TRANSLATIONS = {
263
268
  cancel: "Cancelar",
264
269
  close: "Cerrar",
265
270
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
266
- buttonContinue: "Continuar con ZOREAL"
271
+ buttonContinue: "Continuar con ZOREAL",
272
+ openApp: "Abrir ZOREAL ID"
267
273
  },
268
274
  pt: {
269
275
  title: "Digitalize para entrar",
@@ -271,6 +277,7 @@ var TRANSLATIONS = {
271
277
  titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
272
278
  titleApprove: "Aprove no seu telefone",
273
279
  bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
280
+ bodyLink: "Aprove este in\xEDcio de sess\xE3o na app ZOREAL ID neste telem\xF3vel.",
274
281
  bodyApprove: "Aprove o login no app ZOREAL ID.",
275
282
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
276
283
  waiting: "Aguardando digitaliza\xE7\xE3o",
@@ -282,7 +289,8 @@ var TRANSLATIONS = {
282
289
  cancel: "Cancelar",
283
290
  close: "Fechar",
284
291
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
285
- buttonContinue: "Continuar com ZOREAL"
292
+ buttonContinue: "Continuar com ZOREAL",
293
+ openApp: "Abrir ZOREAL ID"
286
294
  },
287
295
  fr: {
288
296
  title: "Scannez pour vous connecter",
@@ -290,6 +298,7 @@ var TRANSLATIONS = {
290
298
  titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
291
299
  titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
292
300
  bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
301
+ bodyLink: "Approuvez cette connexion dans l'app ZOREAL ID sur ce t\xE9l\xE9phone.",
293
302
  bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
294
303
  bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
295
304
  waiting: "En attente du scan",
@@ -301,7 +310,8 @@ var TRANSLATIONS = {
301
310
  cancel: "Annuler",
302
311
  close: "Fermer",
303
312
  qrAlt: "Code QR pour se connecter avec ZOREAL",
304
- buttonContinue: "Continuer avec ZOREAL"
313
+ buttonContinue: "Continuer avec ZOREAL",
314
+ openApp: "Ouvrir ZOREAL ID"
305
315
  },
306
316
  de: {
307
317
  title: "Zum Anmelden scannen",
@@ -309,6 +319,7 @@ var TRANSLATIONS = {
309
319
  titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
310
320
  titleApprove: "Auf dem Handy best\xE4tigen",
311
321
  bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
322
+ bodyLink: "Best\xE4tigen Sie diese Anmeldung in der ZOREAL ID-App auf diesem Telefon.",
312
323
  bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
313
324
  bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
314
325
  waiting: "Warten auf Scan",
@@ -320,7 +331,8 @@ var TRANSLATIONS = {
320
331
  cancel: "Abbrechen",
321
332
  close: "Schlie\xDFen",
322
333
  qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
323
- buttonContinue: "Weiter mit ZOREAL"
334
+ buttonContinue: "Weiter mit ZOREAL",
335
+ openApp: "ZOREAL ID \xF6ffnen"
324
336
  },
325
337
  ru: {
326
338
  title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
@@ -328,6 +340,7 @@ var TRANSLATIONS = {
328
340
  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",
329
341
  titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
330
342
  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.",
343
+ bodyLink: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0438 ZOREAL ID \u043D\u0430 \u044D\u0442\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435.",
331
344
  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.",
332
345
  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.",
333
346
  waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
@@ -339,7 +352,8 @@ var TRANSLATIONS = {
339
352
  cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
340
353
  close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
341
354
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
342
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
355
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL",
356
+ openApp: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C ZOREAL ID"
343
357
  },
344
358
  ja: {
345
359
  title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
@@ -347,6 +361,7 @@ var TRANSLATIONS = {
347
361
  titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
348
362
  titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
349
363
  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",
364
+ bodyLink: "\u3053\u306E\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u306EZOREAL ID\u30A2\u30D7\u30EA\u3067\u3053\u306E\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
350
365
  bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
351
366
  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",
352
367
  waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
@@ -358,7 +373,8 @@ var TRANSLATIONS = {
358
373
  cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
359
374
  close: "\u9589\u3058\u308B",
360
375
  qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
361
- buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
376
+ buttonContinue: "ZOREAL\u3067\u7D9A\u884C",
377
+ openApp: "ZOREAL ID\u3092\u958B\u304F"
362
378
  },
363
379
  hi: {
364
380
  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",
@@ -366,6 +382,7 @@ var TRANSLATIONS = {
366
382
  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",
367
383
  titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
368
384
  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",
385
+ bodyLink: "\u0907\u0938 \u092B\u093C\u094B\u0928 \u092A\u0930 ZOREAL ID \u0910\u092A \u092E\u0947\u0902 \u0907\u0938 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u094B \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902\u0964",
369
386
  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",
370
387
  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",
371
388
  waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
@@ -377,7 +394,8 @@ var TRANSLATIONS = {
377
394
  cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
378
395
  close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
379
396
  qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
380
- buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
397
+ buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
398
+ openApp: "ZOREAL ID \u0916\u094B\u0932\u0947\u0902"
381
399
  },
382
400
  zhs: {
383
401
  title: "\u626B\u7801\u767B\u5F55",
@@ -385,6 +403,7 @@ var TRANSLATIONS = {
385
403
  titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
386
404
  titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
387
405
  bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
406
+ bodyLink: "\u8BF7\u5728\u672C\u624B\u673A\u7684 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u6B64\u6B21\u767B\u5F55\u3002",
388
407
  bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
389
408
  bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
390
409
  waiting: "\u7B49\u5F85\u626B\u63CF",
@@ -396,7 +415,8 @@ var TRANSLATIONS = {
396
415
  cancel: "\u53D6\u6D88",
397
416
  close: "\u5173\u95ED",
398
417
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
399
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
418
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED",
419
+ openApp: "\u6253\u5F00 ZOREAL ID"
400
420
  },
401
421
  zht: {
402
422
  title: "\u6383\u78BC\u767B\u5165",
@@ -404,6 +424,7 @@ var TRANSLATIONS = {
404
424
  titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
405
425
  titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
406
426
  bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
427
+ bodyLink: "\u8ACB\u5728\u672C\u624B\u6A5F\u7684 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u6B64\u6B21\u767B\u5165\u3002",
407
428
  bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
408
429
  bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
409
430
  waiting: "\u7B49\u5F85\u6383\u63CF",
@@ -415,7 +436,8 @@ var TRANSLATIONS = {
415
436
  cancel: "\u53D6\u6D88",
416
437
  close: "\u95DC\u9589",
417
438
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
418
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
439
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C",
440
+ openApp: "\u958B\u555F ZOREAL ID"
419
441
  },
420
442
  ar: {
421
443
  title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
@@ -423,6 +445,7 @@ var TRANSLATIONS = {
423
445
  titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
424
446
  titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
425
447
  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.",
448
+ bodyLink: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0647\u0630\u0627 \u0641\u064A \u062A\u0637\u0628\u064A\u0642 ZOREAL ID \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0647\u0627\u062A\u0641.",
426
449
  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.",
427
450
  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.",
428
451
  waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
@@ -434,7 +457,8 @@ var TRANSLATIONS = {
434
457
  cancel: "\u0625\u0644\u063A\u0627\u0621",
435
458
  close: "\u0625\u063A\u0644\u0627\u0642",
436
459
  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",
437
- buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
460
+ buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
461
+ openApp: "\u0641\u062A\u062D ZOREAL ID"
438
462
  },
439
463
  ko: {
440
464
  title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
@@ -442,6 +466,7 @@ var TRANSLATIONS = {
442
466
  titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
443
467
  titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
444
468
  bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
469
+ bodyLink: "\uC774 \uD734\uB300\uD3F0\uC758 ZOREAL ID \uC571\uC5D0\uC11C \uC774 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
445
470
  bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
446
471
  bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
447
472
  waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
@@ -453,7 +478,8 @@ var TRANSLATIONS = {
453
478
  cancel: "\uCDE8\uC18C",
454
479
  close: "\uB2EB\uAE30",
455
480
  qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
456
- buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
481
+ buttonContinue: "ZOREAL\uB85C \uACC4\uC18D",
482
+ openApp: "ZOREAL ID \uC5F4\uAE30"
457
483
  },
458
484
  // Български
459
485
  bg: {
@@ -462,6 +488,7 @@ var TRANSLATIONS = {
462
488
  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",
463
489
  titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
464
490
  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.",
491
+ bodyLink: "\u041E\u0434\u043E\u0431\u0440\u0435\u0442\u0435 \u0442\u043E\u0437\u0438 \u0432\u0445\u043E\u0434 \u0432 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E ZOREAL ID \u043D\u0430 \u0442\u043E\u0437\u0438 \u0442\u0435\u043B\u0435\u0444\u043E\u043D.",
465
492
  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.",
466
493
  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.",
467
494
  waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
@@ -473,7 +500,8 @@ var TRANSLATIONS = {
473
500
  cancel: "\u041E\u0442\u043A\u0430\u0437",
474
501
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
475
502
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
476
- buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
503
+ buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL",
504
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
477
505
  },
478
506
  // বাংলা
479
507
  bn: {
@@ -482,6 +510,7 @@ var TRANSLATIONS = {
482
510
  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",
483
511
  titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
484
512
  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",
513
+ bodyLink: "\u098F\u0987 \u09AB\u09CB\u09A8\u09C7\u09B0 ZOREAL ID \u0985\u09CD\u09AF\u09BE\u09AA\u09C7 \u098F\u0987 \u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8\u0964",
485
514
  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",
486
515
  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",
487
516
  waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
@@ -493,7 +522,8 @@ var TRANSLATIONS = {
493
522
  cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
494
523
  close: "\u09AC\u09A8\u09CD\u09A7",
495
524
  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",
496
- buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
525
+ buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
526
+ openApp: "ZOREAL ID \u0996\u09C1\u09B2\u09C1\u09A8"
497
527
  },
498
528
  // Bosanski
499
529
  bs: {
@@ -502,6 +532,7 @@ var TRANSLATIONS = {
502
532
  titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
503
533
  titleApprove: "Odobrite na svom telefonu",
504
534
  bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
535
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
505
536
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
506
537
  bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
507
538
  waiting: "\u010Ceka se skeniranje",
@@ -513,7 +544,8 @@ var TRANSLATIONS = {
513
544
  cancel: "Otka\u017Ei",
514
545
  close: "Zatvori",
515
546
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
516
- buttonContinue: "Nastavi sa ZOREAL-om"
547
+ buttonContinue: "Nastavi sa ZOREAL-om",
548
+ openApp: "Otvori ZOREAL ID"
517
549
  },
518
550
  // Čeština
519
551
  cs: {
@@ -522,6 +554,7 @@ var TRANSLATIONS = {
522
554
  titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
523
555
  titleApprove: "Potvr\u010Fte v telefonu",
524
556
  bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
557
+ bodyLink: "Schvalte toto p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID na tomto telefonu.",
525
558
  bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
526
559
  bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
527
560
  waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
@@ -533,7 +566,8 @@ var TRANSLATIONS = {
533
566
  cancel: "Zru\u0161it",
534
567
  close: "Zav\u0159\xEDt",
535
568
  qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
536
- buttonContinue: "Pokra\u010Dovat se ZOREAL"
569
+ buttonContinue: "Pokra\u010Dovat se ZOREAL",
570
+ openApp: "Otev\u0159\xEDt ZOREAL ID"
537
571
  },
538
572
  // Dansk
539
573
  da: {
@@ -542,6 +576,7 @@ var TRANSLATIONS = {
542
576
  titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
543
577
  titleApprove: "Godkend p\xE5 din telefon",
544
578
  bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
579
+ bodyLink: "Godkend dette login i ZOREAL ID-appen p\xE5 denne telefon.",
545
580
  bodyApprove: "Godkend login i din ZOREAL ID-app.",
546
581
  bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
547
582
  waiting: "Venter p\xE5 scanning",
@@ -553,7 +588,8 @@ var TRANSLATIONS = {
553
588
  cancel: "Annuller",
554
589
  close: "Luk",
555
590
  qrAlt: "QR-kode til at logge ind med ZOREAL",
556
- buttonContinue: "Forts\xE6t med ZOREAL"
591
+ buttonContinue: "Forts\xE6t med ZOREAL",
592
+ openApp: "\xC5bn ZOREAL ID"
557
593
  },
558
594
  // Ελληνικά
559
595
  el: {
@@ -562,6 +598,7 @@ var TRANSLATIONS = {
562
598
  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",
563
599
  titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
564
600
  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.",
601
+ bodyLink: "\u0395\u03B3\u03BA\u03C1\u03AF\u03BD\u03B5\u03C4\u03B5 \u03B1\u03C5\u03C4\u03AE \u03C4\u03B7 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03C3\u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE ZOREAL ID \u03C3\u03B5 \u03B1\u03C5\u03C4\u03CC \u03C4\u03BF \u03C4\u03B7\u03BB\u03AD\u03C6\u03C9\u03BD\u03BF.",
565
602
  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.",
566
603
  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.",
567
604
  waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
@@ -573,7 +610,8 @@ var TRANSLATIONS = {
573
610
  cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
574
611
  close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
575
612
  qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
576
- buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
613
+ buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL",
614
+ openApp: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 ZOREAL ID"
577
615
  },
578
616
  // Español (LA)
579
617
  "es-419": {
@@ -582,6 +620,7 @@ var TRANSLATIONS = {
582
620
  titlePresence: "Escanea para demostrar que eres una persona real",
583
621
  titleApprove: "Aprueba desde tu celular",
584
622
  bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
623
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
585
624
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
586
625
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
587
626
  waiting: "Esperando escaneo",
@@ -593,7 +632,8 @@ var TRANSLATIONS = {
593
632
  cancel: "Cancelar",
594
633
  close: "Cerrar",
595
634
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
596
- buttonContinue: "Continuar con ZOREAL"
635
+ buttonContinue: "Continuar con ZOREAL",
636
+ openApp: "Abrir ZOREAL ID"
597
637
  },
598
638
  // Suomi
599
639
  fi: {
@@ -602,6 +642,7 @@ var TRANSLATIONS = {
602
642
  titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
603
643
  titleApprove: "Hyv\xE4ksy puhelimessasi",
604
644
  bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
645
+ bodyLink: "Hyv\xE4ksy t\xE4m\xE4 kirjautuminen ZOREAL ID -sovelluksessa t\xE4ll\xE4 puhelimella.",
605
646
  bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
606
647
  bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
607
648
  waiting: "Odotetaan skannausta",
@@ -613,7 +654,8 @@ var TRANSLATIONS = {
613
654
  cancel: "Peruuta",
614
655
  close: "Sulje",
615
656
  qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
616
- buttonContinue: "Jatka ZOREALilla"
657
+ buttonContinue: "Jatka ZOREALilla",
658
+ openApp: "Avaa ZOREAL ID"
617
659
  },
618
660
  // עברית
619
661
  he: {
@@ -622,6 +664,7 @@ var TRANSLATIONS = {
622
664
  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",
623
665
  titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
624
666
  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.",
667
+ bodyLink: "\u05D0\u05E9\u05E8 \u05D0\u05EA \u05D4\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05D4\u05D6\u05D5 \u05D1\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D9\u05EA ZOREAL ID \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05D4\u05D6\u05D4.",
625
668
  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.",
626
669
  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.",
627
670
  waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
@@ -633,7 +676,8 @@ var TRANSLATIONS = {
633
676
  cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
634
677
  close: "\u05E1\u05D2\u05D5\u05E8",
635
678
  qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
636
- buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
679
+ buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL",
680
+ openApp: "\u05E4\u05EA\u05D7 \u05D0\u05EA ZOREAL ID"
637
681
  },
638
682
  // Hrvatski
639
683
  hr: {
@@ -642,6 +686,7 @@ var TRANSLATIONS = {
642
686
  titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
643
687
  titleApprove: "Odobrite na svom mobitelu",
644
688
  bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
689
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
645
690
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
646
691
  bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
647
692
  waiting: "\u010Ceka se skeniranje",
@@ -653,7 +698,8 @@ var TRANSLATIONS = {
653
698
  cancel: "Odustani",
654
699
  close: "Zatvori",
655
700
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
656
- buttonContinue: "Nastavi sa ZOREAL-om"
701
+ buttonContinue: "Nastavi sa ZOREAL-om",
702
+ openApp: "Otvori ZOREAL ID"
657
703
  },
658
704
  // Magyar
659
705
  hu: {
@@ -662,6 +708,7 @@ var TRANSLATIONS = {
662
708
  titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
663
709
  titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
664
710
  bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
711
+ bodyLink: "Hagyja j\xF3v\xE1 ezt a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban ezen a telefonon.",
665
712
  bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
666
713
  bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
667
714
  waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
@@ -673,7 +720,8 @@ var TRANSLATIONS = {
673
720
  cancel: "M\xE9gse",
674
721
  close: "Bez\xE1r\xE1s",
675
722
  qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
676
- buttonContinue: "Folytat\xE1s a ZOREAL-lal"
723
+ buttonContinue: "Folytat\xE1s a ZOREAL-lal",
724
+ openApp: "ZOREAL ID megnyit\xE1sa"
677
725
  },
678
726
  // Bahasa Indonesia
679
727
  id: {
@@ -682,6 +730,7 @@ var TRANSLATIONS = {
682
730
  titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
683
731
  titleApprove: "Setujui di ponsel Anda",
684
732
  bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
733
+ bodyLink: "Setujui masuk ini di aplikasi ZOREAL ID pada ponsel ini.",
685
734
  bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
686
735
  bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
687
736
  waiting: "Menunggu pemindaian",
@@ -693,7 +742,8 @@ var TRANSLATIONS = {
693
742
  cancel: "Batal",
694
743
  close: "Tutup",
695
744
  qrAlt: "Kode QR untuk masuk dengan ZOREAL",
696
- buttonContinue: "Lanjutkan dengan ZOREAL"
745
+ buttonContinue: "Lanjutkan dengan ZOREAL",
746
+ openApp: "Buka ZOREAL ID"
697
747
  },
698
748
  // Italiano
699
749
  it: {
@@ -702,6 +752,7 @@ var TRANSLATIONS = {
702
752
  titlePresence: "Scansiona per dimostrare di essere una persona reale",
703
753
  titleApprove: "Approva sul tuo telefono",
704
754
  bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
755
+ bodyLink: "Approva questo accesso nell'app ZOREAL ID su questo telefono.",
705
756
  bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
706
757
  bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
707
758
  waiting: "In attesa della scansione",
@@ -713,7 +764,8 @@ var TRANSLATIONS = {
713
764
  cancel: "Annulla",
714
765
  close: "Chiudi",
715
766
  qrAlt: "Codice QR per accedere con ZOREAL",
716
- buttonContinue: "Continua con ZOREAL"
767
+ buttonContinue: "Continua con ZOREAL",
768
+ openApp: "Apri ZOREAL ID"
717
769
  },
718
770
  // Bahasa Melayu
719
771
  ms: {
@@ -722,6 +774,7 @@ var TRANSLATIONS = {
722
774
  titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
723
775
  titleApprove: "Luluskan di telefon anda",
724
776
  bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
777
+ bodyLink: "Luluskan log masuk ini dalam aplikasi ZOREAL ID pada telefon ini.",
725
778
  bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
726
779
  bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
727
780
  waiting: "Menunggu imbasan",
@@ -733,7 +786,8 @@ var TRANSLATIONS = {
733
786
  cancel: "Batal",
734
787
  close: "Tutup",
735
788
  qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
736
- buttonContinue: "Teruskan dengan ZOREAL"
789
+ buttonContinue: "Teruskan dengan ZOREAL",
790
+ openApp: "Buka ZOREAL ID"
737
791
  },
738
792
  // Nederlands
739
793
  nl: {
@@ -742,6 +796,7 @@ var TRANSLATIONS = {
742
796
  titlePresence: "Scan om te bewijzen dat je een echt mens bent",
743
797
  titleApprove: "Keur goed op je telefoon",
744
798
  bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
799
+ bodyLink: "Keur deze aanmelding goed in de ZOREAL ID-app op deze telefoon.",
745
800
  bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
746
801
  bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
747
802
  waiting: "Wachten op scan",
@@ -753,7 +808,8 @@ var TRANSLATIONS = {
753
808
  cancel: "Annuleren",
754
809
  close: "Sluiten",
755
810
  qrAlt: "QR-code om in te loggen met ZOREAL",
756
- buttonContinue: "Doorgaan met ZOREAL"
811
+ buttonContinue: "Doorgaan met ZOREAL",
812
+ openApp: "ZOREAL ID openen"
757
813
  },
758
814
  // Norsk
759
815
  no: {
@@ -762,6 +818,7 @@ var TRANSLATIONS = {
762
818
  titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
763
819
  titleApprove: "Godkjenn p\xE5 telefonen din",
764
820
  bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
821
+ bodyLink: "Godkjenn denne innloggingen i ZOREAL ID-appen p\xE5 denne telefonen.",
765
822
  bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
766
823
  bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
767
824
  waiting: "Venter p\xE5 skanning",
@@ -773,7 +830,8 @@ var TRANSLATIONS = {
773
830
  cancel: "Avbryt",
774
831
  close: "Lukk",
775
832
  qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
776
- buttonContinue: "Fortsett med ZOREAL"
833
+ buttonContinue: "Fortsett med ZOREAL",
834
+ openApp: "\xC5pne ZOREAL ID"
777
835
  },
778
836
  // Polski
779
837
  pl: {
@@ -782,6 +840,7 @@ var TRANSLATIONS = {
782
840
  titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
783
841
  titleApprove: "Zatwierd\u017A w telefonie",
784
842
  bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
843
+ bodyLink: "Zatwierd\u017A to logowanie w aplikacji ZOREAL ID na tym telefonie.",
785
844
  bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
786
845
  bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
787
846
  waiting: "Czekanie na skan",
@@ -793,7 +852,8 @@ var TRANSLATIONS = {
793
852
  cancel: "Anuluj",
794
853
  close: "Zamknij",
795
854
  qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
796
- buttonContinue: "Kontynuuj z ZOREAL"
855
+ buttonContinue: "Kontynuuj z ZOREAL",
856
+ openApp: "Otw\xF3rz ZOREAL ID"
797
857
  },
798
858
  // Português (BR)
799
859
  "pt-br": {
@@ -802,6 +862,7 @@ var TRANSLATIONS = {
802
862
  titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
803
863
  titleApprove: "Aprove no seu celular",
804
864
  bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
865
+ bodyLink: "Aprove este login no app ZOREAL ID neste celular.",
805
866
  bodyApprove: "Aprove o login no app ZOREAL ID.",
806
867
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
807
868
  waiting: "Aguardando escaneamento",
@@ -813,7 +874,8 @@ var TRANSLATIONS = {
813
874
  cancel: "Cancelar",
814
875
  close: "Fechar",
815
876
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
816
- buttonContinue: "Continuar com ZOREAL"
877
+ buttonContinue: "Continuar com ZOREAL",
878
+ openApp: "Abrir ZOREAL ID"
817
879
  },
818
880
  // Română
819
881
  ro: {
@@ -822,6 +884,7 @@ var TRANSLATIONS = {
822
884
  titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
823
885
  titleApprove: "Aproba\u021Bi de pe telefon",
824
886
  bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
887
+ bodyLink: "Aproba\u021Bi aceast\u0103 conectare \xEEn aplica\u021Bia ZOREAL ID de pe acest telefon.",
825
888
  bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
826
889
  bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
827
890
  waiting: "Se a\u0219teapt\u0103 scanarea",
@@ -833,7 +896,8 @@ var TRANSLATIONS = {
833
896
  cancel: "Anuleaz\u0103",
834
897
  close: "\xCEnchide",
835
898
  qrAlt: "Cod QR pentru conectare cu ZOREAL",
836
- buttonContinue: "Continua\u021Bi cu ZOREAL"
899
+ buttonContinue: "Continua\u021Bi cu ZOREAL",
900
+ openApp: "Deschide\u021Bi ZOREAL ID"
837
901
  },
838
902
  // Српски
839
903
  sr: {
@@ -842,6 +906,7 @@ var TRANSLATIONS = {
842
906
  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",
843
907
  titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
844
908
  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.",
909
+ bodyLink: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043E\u0432\u0443 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u0443 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0438 ZOREAL ID \u043D\u0430 \u043E\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443.",
845
910
  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.",
846
911
  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.",
847
912
  waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
@@ -853,7 +918,8 @@ var TRANSLATIONS = {
853
918
  cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
854
919
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
855
920
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
856
- buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
921
+ buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C",
922
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
857
923
  },
858
924
  // ไทย
859
925
  th: {
@@ -862,6 +928,7 @@ var TRANSLATIONS = {
862
928
  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",
863
929
  titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
864
930
  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",
931
+ bodyLink: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E01\u0E32\u0E23\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A\u0E19\u0E35\u0E49\u0E43\u0E19\u0E41\u0E2D\u0E1B ZOREAL ID \u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E40\u0E04\u0E23\u0E37\u0E48\u0E2D\u0E07\u0E19\u0E35\u0E49",
865
932
  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",
866
933
  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",
867
934
  waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
@@ -873,7 +940,8 @@ var TRANSLATIONS = {
873
940
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
874
941
  close: "\u0E1B\u0E34\u0E14",
875
942
  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",
876
- buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
943
+ buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL",
944
+ openApp: "\u0E40\u0E1B\u0E34\u0E14 ZOREAL ID"
877
945
  },
878
946
  // Tagalog
879
947
  tl: {
@@ -882,6 +950,7 @@ var TRANSLATIONS = {
882
950
  titlePresence: "I-scan para patunayang tunay kang tao",
883
951
  titleApprove: "I-approve sa iyong telepono",
884
952
  bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
953
+ bodyLink: "Aprubahan ang pag-sign in na ito sa ZOREAL ID app sa teleponong ito.",
885
954
  bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
886
955
  bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
887
956
  waiting: "Naghihintay ng scan",
@@ -893,7 +962,8 @@ var TRANSLATIONS = {
893
962
  cancel: "Kanselahin",
894
963
  close: "Isara",
895
964
  qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
896
- buttonContinue: "Magpatuloy gamit ang ZOREAL"
965
+ buttonContinue: "Magpatuloy gamit ang ZOREAL",
966
+ openApp: "Buksan ang ZOREAL ID"
897
967
  },
898
968
  // Türkçe
899
969
  tr: {
@@ -902,6 +972,7 @@ var TRANSLATIONS = {
902
972
  titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
903
973
  titleApprove: "Telefonunuzdan onaylay\u0131n",
904
974
  bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
975
+ bodyLink: "Bu giri\u015Fi bu telefondaki ZOREAL ID uygulamas\u0131nda onaylay\u0131n.",
905
976
  bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
906
977
  bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
907
978
  waiting: "Tarama bekleniyor",
@@ -913,7 +984,8 @@ var TRANSLATIONS = {
913
984
  cancel: "\u0130ptal",
914
985
  close: "Kapat",
915
986
  qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
916
- buttonContinue: "ZOREAL ile devam et"
987
+ buttonContinue: "ZOREAL ile devam et",
988
+ openApp: "ZOREAL ID'yi a\xE7"
917
989
  },
918
990
  // Українська
919
991
  uk: {
@@ -922,6 +994,7 @@ var TRANSLATIONS = {
922
994
  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",
923
995
  titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
924
996
  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.",
997
+ bodyLink: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u0446\u0435\u0439 \u0432\u0445\u0456\u0434 \u0443 \u0437\u0430\u0441\u0442\u043E\u0441\u0443\u043D\u043A\u0443 ZOREAL ID \u043D\u0430 \u0446\u044C\u043E\u043C\u0443 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456.",
925
998
  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.",
926
999
  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.",
927
1000
  waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
@@ -933,7 +1006,8 @@ var TRANSLATIONS = {
933
1006
  cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
934
1007
  close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
935
1008
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
936
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
1009
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL",
1010
+ openApp: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 ZOREAL ID"
937
1011
  },
938
1012
  // اردو
939
1013
  ur: {
@@ -942,6 +1016,7 @@ var TRANSLATIONS = {
942
1016
  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",
943
1017
  titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
944
1018
  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",
1019
+ bodyLink: "\u0627\u0633 \u0641\u0648\u0646 \u067E\u0631 ZOREAL ID \u0627\u06CC\u067E \u0645\u06CC\u06BA \u0627\u0633 \u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u06CC \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA\u06D4",
945
1020
  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",
946
1021
  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",
947
1022
  waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
@@ -953,7 +1028,8 @@ var TRANSLATIONS = {
953
1028
  cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
954
1029
  close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
955
1030
  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",
956
- buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
1031
+ buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA",
1032
+ openApp: "ZOREAL ID \u06A9\u06BE\u0648\u0644\u06CC\u06BA"
957
1033
  },
958
1034
  // Tiếng Việt
959
1035
  vi: {
@@ -962,6 +1038,7 @@ var TRANSLATIONS = {
962
1038
  titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
963
1039
  titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
964
1040
  bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
1041
+ bodyLink: "Ph\xEA duy\u1EC7t l\u1EA7n \u0111\u0103ng nh\u1EADp n\xE0y trong \u1EE9ng d\u1EE5ng ZOREAL ID tr\xEAn \u0111i\u1EC7n tho\u1EA1i n\xE0y.",
965
1042
  bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
966
1043
  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.",
967
1044
  waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
@@ -973,7 +1050,8 @@ var TRANSLATIONS = {
973
1050
  cancel: "H\u1EE7y",
974
1051
  close: "\u0110\xF3ng",
975
1052
  qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
976
- buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
1053
+ buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL",
1054
+ openApp: "M\u1EDF ZOREAL ID"
977
1055
  }
978
1056
  };
979
1057
  var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
@@ -1278,12 +1356,58 @@ var CSS = `
1278
1356
  dim glow. Paused rather than removed, so it does not jump back to its start
1279
1357
  on the way out. */
1280
1358
  .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::after,
1281
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after {
1359
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after,
1360
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::after,
1361
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::after {
1282
1362
  animation-play-state: paused;
1283
1363
  opacity: 0;
1284
1364
  }
1285
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1286
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1365
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before,
1366
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1367
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before,
1368
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1369
+
1370
+ /* Same device: no code to scan. A round well with the mark carries the same
1371
+ light while the sign-in is being created, and settles once the link below
1372
+ it is ready to tap. A circle keeps the sweep even all the way round. */
1373
+ .${PREFIX}-link-well {
1374
+ position: relative;
1375
+ display: grid;
1376
+ place-items: center;
1377
+ box-sizing: border-box;
1378
+ width: 112px;
1379
+ height: 112px;
1380
+ margin: 20px auto 0;
1381
+ border: 1px solid var(--zrl-line);
1382
+ border-radius: 999px;
1383
+ background: var(--zrl-surface-sunken);
1384
+ --zrl-radius: 56px;
1385
+ --zrl-beam-time: 4s;
1386
+ }
1387
+ .${PREFIX}-link-well svg { position: relative; }
1388
+
1389
+ /* The control that opens the app: a real link, because a browser hands a
1390
+ link to an app only from a tap. It has no address until the sign-in
1391
+ exists, and reads as disabled until then. */
1392
+ .${PREFIX}-open {
1393
+ display: block;
1394
+ box-sizing: border-box;
1395
+ width: 100%;
1396
+ margin: 20px 0 0;
1397
+ padding: 12px 16px;
1398
+ border-radius: 12px;
1399
+ background: var(--zrl-accent);
1400
+ color: #ffffff;
1401
+ font: inherit;
1402
+ font-size: 15px;
1403
+ font-weight: 600;
1404
+ text-align: center;
1405
+ text-decoration: none;
1406
+ cursor: pointer;
1407
+ transition: opacity 200ms ease-out, transform 150ms ease-out;
1408
+ }
1409
+ .${PREFIX}-open:active { transform: scale(0.99); }
1410
+ .${PREFIX}-open[aria-disabled="true"] { opacity: 0.45; cursor: default; pointer-events: none; }
1287
1411
 
1288
1412
  .${PREFIX}-qr {
1289
1413
  display: block;
@@ -1513,6 +1637,15 @@ var MARK_PATHS = [
1513
1637
  "M49.4,39.9c-3.3.6-6.9,0-10-1.8l-.8-.5h0c-.8-.5-1.1-1.5-.6-2.3s1.5-1.1,2.3-.6l.8.5c2.8,1.6,6,1.9,9,1.2,1-.3,2-.7,3-1.2h0c.8-.5,1.8-.2,2.3.6.5.9.2,1.9-.6,2.4,0,0-.1,0-.2,0-.2.1-.5.3-.7.4-1.4.7-2.8,1.1-4.4,1.4Z",
1514
1638
  "M35.8,34c-.5.8-1.5,1.1-2.3.6s-1.1-1.5-.6-2.3,1.5-1.1,2.3-.6,1.1,1.5.6,2.3Z"
1515
1639
  ];
1640
+ function markOnly(size) {
1641
+ const node = svg("0 0 76 76", { width: String(size), height: String(size) });
1642
+ const g = document.createElementNS(SVG_NS, "g");
1643
+ g.setAttribute("fill", ZOREAL_BLUE);
1644
+ g.setAttribute("fill-rule", "evenodd");
1645
+ for (const d of MARK_PATHS) g.appendChild(path(d));
1646
+ node.appendChild(g);
1647
+ return node;
1648
+ }
1516
1649
  function lockup(height) {
1517
1650
  const node = svg("0 0 240 58.5", {
1518
1651
  height: String(height),
@@ -1553,13 +1686,17 @@ function mountPairingModal(state, options) {
1553
1686
  const title = el("h2", cx("title"));
1554
1687
  title.id = titleId;
1555
1688
  const bodyText = el("p", cx("body-text"));
1689
+ const linkMode = state.appLink === true;
1690
+ const light = () => {
1691
+ const glow = el("span", cx("qr-beam-glow"));
1692
+ glow.setAttribute("aria-hidden", "true");
1693
+ glow.appendChild(el("span", cx("qr-beam-glow-band")));
1694
+ const beam = el("span", cx("qr-beam"));
1695
+ beam.setAttribute("aria-hidden", "true");
1696
+ return [glow, beam];
1697
+ };
1556
1698
  const well = el("div", cx("qr-well"));
1557
- const glow = el("span", cx("qr-beam-glow"));
1558
- glow.setAttribute("aria-hidden", "true");
1559
- glow.appendChild(el("span", cx("qr-beam-glow-band")));
1560
- const beam = el("span", cx("qr-beam"));
1561
- beam.setAttribute("aria-hidden", "true");
1562
- well.append(glow, beam);
1699
+ well.append(...light());
1563
1700
  const qr = el("img", cx("qr"));
1564
1701
  qr.alt = t.qrAlt;
1565
1702
  qr.width = 180;
@@ -1576,7 +1713,14 @@ function mountPairingModal(state, options) {
1576
1713
  const statusLabel = el("span");
1577
1714
  status.append(dot, statusLabel);
1578
1715
  const timer = el("p", cx("timer"));
1579
- body.append(mark, title, bodyText, well, status, timer);
1716
+ const linkWell = el("div", cx("link-well"));
1717
+ linkWell.append(...light(), markOnly(48));
1718
+ const open = el("a", cx("open"), t.openApp);
1719
+ open.target = "_blank";
1720
+ open.rel = "noopener";
1721
+ open.setAttribute("aria-disabled", "true");
1722
+ if (linkMode) body.append(mark, title, bodyText, linkWell, open, status, timer);
1723
+ else body.append(mark, title, bodyText, well, status, timer);
1580
1724
  const help = el("div", cx("help"));
1581
1725
  help.append(el("p", cx("help-title"), t.noIdTitle), el("p", cx("help-body"), t.noIdBody));
1582
1726
  const footer = el("div", cx("footer"));
@@ -1588,10 +1732,17 @@ function mountPairingModal(state, options) {
1588
1732
  secured.rel = "noopener";
1589
1733
  secured.append(strokeIcon(13, ["M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z", "m9 12 2 2 4-4"]), document.createTextNode(t.secured));
1590
1734
  footer.append(cancelBtn, secured);
1591
- card.append(closeBtn, body, help, footer);
1735
+ if (linkMode) card.append(closeBtn, body, footer);
1736
+ else card.append(closeBtn, body, help, footer);
1592
1737
  scrim.appendChild(card);
1593
- const serverMs = typeof state.expiresIn === "number" ? state.expiresIn * 1e3 : Infinity;
1594
- const deadline = Date.now() + Math.min(timeoutMs, serverMs);
1738
+ let deadline = Date.now() + timeoutMs;
1739
+ let serverBound = false;
1740
+ const bindDeadline = (s) => {
1741
+ if (serverBound || typeof s.expiresIn !== "number") return;
1742
+ serverBound = true;
1743
+ deadline = Date.now() + Math.min(timeoutMs, s.expiresIn * 1e3);
1744
+ };
1745
+ bindDeadline(state);
1595
1746
  let shown = state.qrUrl;
1596
1747
  let loading = null;
1597
1748
  const spent = () => qr.dataset.spent === "true";
@@ -1617,9 +1768,19 @@ function mountPairingModal(state, options) {
1617
1768
  };
1618
1769
  const paint = (s) => {
1619
1770
  const settled = s.status === "claimed" || s.status === "enrolling";
1771
+ bindDeadline(s);
1620
1772
  title.textContent = settled ? t.titleApprove : titleFor(t, options.intent ?? "sign-in");
1621
- bodyText.textContent = s.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : t.bodyScan;
1773
+ bodyText.textContent = s.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : linkMode ? t.bodyLink : t.bodyScan;
1622
1774
  statusLabel.textContent = settled ? t.waitingApproval : t.waiting;
1775
+ status.style.display = linkMode && !settled ? "none" : "";
1776
+ if (linkMode) {
1777
+ if (s.pairUrl && !open.hasAttribute("href")) {
1778
+ open.href = s.pairUrl;
1779
+ open.removeAttribute("aria-disabled");
1780
+ linkWell.dataset.ready = "true";
1781
+ }
1782
+ return;
1783
+ }
1623
1784
  qr.dataset.spent = String(settled);
1624
1785
  well.dataset.spent = String(settled);
1625
1786
  overlay.style.display = settled ? "" : "none";
@@ -1708,6 +1869,18 @@ function startLogin(options) {
1708
1869
  const state = generateState();
1709
1870
  const nonce = generateState();
1710
1871
  try {
1872
+ if ((options.pairingUI ?? "modal") === "modal" && useAppLink) {
1873
+ modal = mountPairingModal(
1874
+ { status: "pending", appLink: true, intent, cancel },
1875
+ {
1876
+ onCancel: cancel,
1877
+ intent,
1878
+ locale: options.locale,
1879
+ theme: options.theme,
1880
+ timeoutMs: options.pairingTimeoutMs
1881
+ }
1882
+ );
1883
+ }
1711
1884
  const started = await startPairing(
1712
1885
  issuer,
1713
1886
  {
@@ -1752,7 +1925,9 @@ function startLogin(options) {
1752
1925
  let lastPolled = { status: "pending", expiresIn: started.expires_in };
1753
1926
  const initial = withSurface(lastPolled);
1754
1927
  options.onState?.(initial);
1755
- if ((options.pairingUI ?? "modal") === "modal" && !useAppLink) {
1928
+ if (modal) {
1929
+ modal.update(initial);
1930
+ } else if ((options.pairingUI ?? "modal") === "modal") {
1756
1931
  modal = mountPairingModal(initial, {
1757
1932
  onCancel: cancel,
1758
1933
  intent,
@@ -1761,9 +1936,6 @@ function startLogin(options) {
1761
1936
  timeoutMs: options.pairingTimeoutMs
1762
1937
  });
1763
1938
  }
1764
- if (useAppLink && typeof window !== "undefined") {
1765
- window.location.assign(started.pair_url);
1766
- }
1767
1939
  if (qrRefreshSeconds !== void 0) {
1768
1940
  const periodMs = qrRefreshSeconds * 1e3;
1769
1941
  let due = Date.now() + periodMs;