@zoreal/oauth2-react 0.2.13 → 0.2.14

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
@@ -40,7 +40,7 @@ var import_react2 = require("react");
40
40
 
41
41
  // src/wire.ts
42
42
  var WIRE_VERSION = 1;
43
- var SDK_VERSION = "0.2.13";
43
+ var SDK_VERSION = "0.2.14";
44
44
  var DEFAULT_ISSUER = "https://id.zoreal.com";
45
45
  var POLL_INTERVAL_MS = 2e3;
46
46
  var POLL_INTERVAL_ENROLLING_MS = 5e3;
@@ -124,6 +124,7 @@ var en = {
124
124
  titlePresence: "Scan to prove you are a real human",
125
125
  titleApprove: "Approve on your phone",
126
126
  bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
127
+ bodyLink: "Approve this sign-in in the ZOREAL ID app on this phone.",
127
128
  bodyApprove: "Approve the login in your ZOREAL ID app.",
128
129
  bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
129
130
  waiting: "Waiting for scan",
@@ -135,7 +136,8 @@ var en = {
135
136
  cancel: "Cancel",
136
137
  close: "Close",
137
138
  qrAlt: "QR code to sign in with ZOREAL",
138
- buttonContinue: "Continue with ZOREAL"
139
+ buttonContinue: "Continue with ZOREAL",
140
+ openApp: "Open ZOREAL ID"
139
141
  };
140
142
  var TRANSLATIONS = {
141
143
  en,
@@ -145,6 +147,7 @@ var TRANSLATIONS = {
145
147
  titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
146
148
  titleApprove: "Godk\xE4nn p\xE5 telefonen",
147
149
  bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
150
+ bodyLink: "Godk\xE4nn inloggningen i ZOREAL ID-appen p\xE5 den h\xE4r telefonen.",
148
151
  bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
149
152
  bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
150
153
  waiting: "V\xE4ntar p\xE5 skanning",
@@ -156,7 +159,8 @@ var TRANSLATIONS = {
156
159
  cancel: "Avbryt",
157
160
  close: "St\xE4ng",
158
161
  qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
159
- buttonContinue: "Forts\xE4tt med ZOREAL"
162
+ buttonContinue: "Forts\xE4tt med ZOREAL",
163
+ openApp: "\xD6ppna ZOREAL ID"
160
164
  },
161
165
  es: {
162
166
  title: "Escanea para iniciar sesi\xF3n",
@@ -164,6 +168,7 @@ var TRANSLATIONS = {
164
168
  titlePresence: "Escanea para demostrar que eres una persona real",
165
169
  titleApprove: "Apru\xE9balo en tu tel\xE9fono",
166
170
  bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
171
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
167
172
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
168
173
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
169
174
  waiting: "Esperando el escaneo",
@@ -175,7 +180,8 @@ var TRANSLATIONS = {
175
180
  cancel: "Cancelar",
176
181
  close: "Cerrar",
177
182
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
178
- buttonContinue: "Continuar con ZOREAL"
183
+ buttonContinue: "Continuar con ZOREAL",
184
+ openApp: "Abrir ZOREAL ID"
179
185
  },
180
186
  pt: {
181
187
  title: "Digitalize para entrar",
@@ -183,6 +189,7 @@ var TRANSLATIONS = {
183
189
  titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
184
190
  titleApprove: "Aprove no seu telefone",
185
191
  bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
192
+ bodyLink: "Aprove este in\xEDcio de sess\xE3o na app ZOREAL ID neste telem\xF3vel.",
186
193
  bodyApprove: "Aprove o login no app ZOREAL ID.",
187
194
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
188
195
  waiting: "Aguardando digitaliza\xE7\xE3o",
@@ -194,7 +201,8 @@ var TRANSLATIONS = {
194
201
  cancel: "Cancelar",
195
202
  close: "Fechar",
196
203
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
197
- buttonContinue: "Continuar com ZOREAL"
204
+ buttonContinue: "Continuar com ZOREAL",
205
+ openApp: "Abrir ZOREAL ID"
198
206
  },
199
207
  fr: {
200
208
  title: "Scannez pour vous connecter",
@@ -202,6 +210,7 @@ var TRANSLATIONS = {
202
210
  titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
203
211
  titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
204
212
  bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
213
+ bodyLink: "Approuvez cette connexion dans l'app ZOREAL ID sur ce t\xE9l\xE9phone.",
205
214
  bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
206
215
  bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
207
216
  waiting: "En attente du scan",
@@ -213,7 +222,8 @@ var TRANSLATIONS = {
213
222
  cancel: "Annuler",
214
223
  close: "Fermer",
215
224
  qrAlt: "Code QR pour se connecter avec ZOREAL",
216
- buttonContinue: "Continuer avec ZOREAL"
225
+ buttonContinue: "Continuer avec ZOREAL",
226
+ openApp: "Ouvrir ZOREAL ID"
217
227
  },
218
228
  de: {
219
229
  title: "Zum Anmelden scannen",
@@ -221,6 +231,7 @@ var TRANSLATIONS = {
221
231
  titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
222
232
  titleApprove: "Auf dem Handy best\xE4tigen",
223
233
  bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
234
+ bodyLink: "Best\xE4tigen Sie diese Anmeldung in der ZOREAL ID-App auf diesem Telefon.",
224
235
  bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
225
236
  bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
226
237
  waiting: "Warten auf Scan",
@@ -232,7 +243,8 @@ var TRANSLATIONS = {
232
243
  cancel: "Abbrechen",
233
244
  close: "Schlie\xDFen",
234
245
  qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
235
- buttonContinue: "Weiter mit ZOREAL"
246
+ buttonContinue: "Weiter mit ZOREAL",
247
+ openApp: "ZOREAL ID \xF6ffnen"
236
248
  },
237
249
  ru: {
238
250
  title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
@@ -240,6 +252,7 @@ var TRANSLATIONS = {
240
252
  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",
241
253
  titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
242
254
  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.",
255
+ 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.",
243
256
  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.",
244
257
  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.",
245
258
  waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
@@ -251,7 +264,8 @@ var TRANSLATIONS = {
251
264
  cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
252
265
  close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
253
266
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
254
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
267
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL",
268
+ openApp: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C ZOREAL ID"
255
269
  },
256
270
  ja: {
257
271
  title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
@@ -259,6 +273,7 @@ var TRANSLATIONS = {
259
273
  titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
260
274
  titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
261
275
  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",
276
+ 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",
262
277
  bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
263
278
  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",
264
279
  waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
@@ -270,7 +285,8 @@ var TRANSLATIONS = {
270
285
  cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
271
286
  close: "\u9589\u3058\u308B",
272
287
  qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
273
- buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
288
+ buttonContinue: "ZOREAL\u3067\u7D9A\u884C",
289
+ openApp: "ZOREAL ID\u3092\u958B\u304F"
274
290
  },
275
291
  hi: {
276
292
  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",
@@ -278,6 +294,7 @@ var TRANSLATIONS = {
278
294
  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",
279
295
  titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
280
296
  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",
297
+ 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",
281
298
  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",
282
299
  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",
283
300
  waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
@@ -289,7 +306,8 @@ var TRANSLATIONS = {
289
306
  cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
290
307
  close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
291
308
  qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
292
- buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
309
+ buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
310
+ openApp: "ZOREAL ID \u0916\u094B\u0932\u0947\u0902"
293
311
  },
294
312
  zhs: {
295
313
  title: "\u626B\u7801\u767B\u5F55",
@@ -297,6 +315,7 @@ var TRANSLATIONS = {
297
315
  titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
298
316
  titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
299
317
  bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
318
+ bodyLink: "\u8BF7\u5728\u672C\u624B\u673A\u7684 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u6B64\u6B21\u767B\u5F55\u3002",
300
319
  bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
301
320
  bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
302
321
  waiting: "\u7B49\u5F85\u626B\u63CF",
@@ -308,7 +327,8 @@ var TRANSLATIONS = {
308
327
  cancel: "\u53D6\u6D88",
309
328
  close: "\u5173\u95ED",
310
329
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
311
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
330
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED",
331
+ openApp: "\u6253\u5F00 ZOREAL ID"
312
332
  },
313
333
  zht: {
314
334
  title: "\u6383\u78BC\u767B\u5165",
@@ -316,6 +336,7 @@ var TRANSLATIONS = {
316
336
  titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
317
337
  titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
318
338
  bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
339
+ bodyLink: "\u8ACB\u5728\u672C\u624B\u6A5F\u7684 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u6B64\u6B21\u767B\u5165\u3002",
319
340
  bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
320
341
  bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
321
342
  waiting: "\u7B49\u5F85\u6383\u63CF",
@@ -327,7 +348,8 @@ var TRANSLATIONS = {
327
348
  cancel: "\u53D6\u6D88",
328
349
  close: "\u95DC\u9589",
329
350
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
330
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
351
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C",
352
+ openApp: "\u958B\u555F ZOREAL ID"
331
353
  },
332
354
  ar: {
333
355
  title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
@@ -335,6 +357,7 @@ var TRANSLATIONS = {
335
357
  titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
336
358
  titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
337
359
  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.",
360
+ 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.",
338
361
  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.",
339
362
  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.",
340
363
  waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
@@ -346,7 +369,8 @@ var TRANSLATIONS = {
346
369
  cancel: "\u0625\u0644\u063A\u0627\u0621",
347
370
  close: "\u0625\u063A\u0644\u0627\u0642",
348
371
  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",
349
- buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
372
+ buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
373
+ openApp: "\u0641\u062A\u062D ZOREAL ID"
350
374
  },
351
375
  ko: {
352
376
  title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
@@ -354,6 +378,7 @@ var TRANSLATIONS = {
354
378
  titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
355
379
  titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
356
380
  bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
381
+ bodyLink: "\uC774 \uD734\uB300\uD3F0\uC758 ZOREAL ID \uC571\uC5D0\uC11C \uC774 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
357
382
  bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
358
383
  bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
359
384
  waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
@@ -365,7 +390,8 @@ var TRANSLATIONS = {
365
390
  cancel: "\uCDE8\uC18C",
366
391
  close: "\uB2EB\uAE30",
367
392
  qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
368
- buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
393
+ buttonContinue: "ZOREAL\uB85C \uACC4\uC18D",
394
+ openApp: "ZOREAL ID \uC5F4\uAE30"
369
395
  },
370
396
  // Български
371
397
  bg: {
@@ -374,6 +400,7 @@ var TRANSLATIONS = {
374
400
  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",
375
401
  titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
376
402
  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.",
403
+ 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.",
377
404
  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.",
378
405
  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.",
379
406
  waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
@@ -385,7 +412,8 @@ var TRANSLATIONS = {
385
412
  cancel: "\u041E\u0442\u043A\u0430\u0437",
386
413
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
387
414
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
388
- buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
415
+ buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL",
416
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
389
417
  },
390
418
  // বাংলা
391
419
  bn: {
@@ -394,6 +422,7 @@ var TRANSLATIONS = {
394
422
  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",
395
423
  titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
396
424
  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",
425
+ 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",
397
426
  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",
398
427
  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",
399
428
  waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
@@ -405,7 +434,8 @@ var TRANSLATIONS = {
405
434
  cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
406
435
  close: "\u09AC\u09A8\u09CD\u09A7",
407
436
  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",
408
- buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
437
+ buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
438
+ openApp: "ZOREAL ID \u0996\u09C1\u09B2\u09C1\u09A8"
409
439
  },
410
440
  // Bosanski
411
441
  bs: {
@@ -414,6 +444,7 @@ var TRANSLATIONS = {
414
444
  titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
415
445
  titleApprove: "Odobrite na svom telefonu",
416
446
  bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
447
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
417
448
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
418
449
  bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
419
450
  waiting: "\u010Ceka se skeniranje",
@@ -425,7 +456,8 @@ var TRANSLATIONS = {
425
456
  cancel: "Otka\u017Ei",
426
457
  close: "Zatvori",
427
458
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
428
- buttonContinue: "Nastavi sa ZOREAL-om"
459
+ buttonContinue: "Nastavi sa ZOREAL-om",
460
+ openApp: "Otvori ZOREAL ID"
429
461
  },
430
462
  // Čeština
431
463
  cs: {
@@ -434,6 +466,7 @@ var TRANSLATIONS = {
434
466
  titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
435
467
  titleApprove: "Potvr\u010Fte v telefonu",
436
468
  bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
469
+ bodyLink: "Schvalte toto p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID na tomto telefonu.",
437
470
  bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
438
471
  bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
439
472
  waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
@@ -445,7 +478,8 @@ var TRANSLATIONS = {
445
478
  cancel: "Zru\u0161it",
446
479
  close: "Zav\u0159\xEDt",
447
480
  qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
448
- buttonContinue: "Pokra\u010Dovat se ZOREAL"
481
+ buttonContinue: "Pokra\u010Dovat se ZOREAL",
482
+ openApp: "Otev\u0159\xEDt ZOREAL ID"
449
483
  },
450
484
  // Dansk
451
485
  da: {
@@ -454,6 +488,7 @@ var TRANSLATIONS = {
454
488
  titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
455
489
  titleApprove: "Godkend p\xE5 din telefon",
456
490
  bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
491
+ bodyLink: "Godkend dette login i ZOREAL ID-appen p\xE5 denne telefon.",
457
492
  bodyApprove: "Godkend login i din ZOREAL ID-app.",
458
493
  bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
459
494
  waiting: "Venter p\xE5 scanning",
@@ -465,7 +500,8 @@ var TRANSLATIONS = {
465
500
  cancel: "Annuller",
466
501
  close: "Luk",
467
502
  qrAlt: "QR-kode til at logge ind med ZOREAL",
468
- buttonContinue: "Forts\xE6t med ZOREAL"
503
+ buttonContinue: "Forts\xE6t med ZOREAL",
504
+ openApp: "\xC5bn ZOREAL ID"
469
505
  },
470
506
  // Ελληνικά
471
507
  el: {
@@ -474,6 +510,7 @@ var TRANSLATIONS = {
474
510
  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",
475
511
  titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
476
512
  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.",
513
+ 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.",
477
514
  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.",
478
515
  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.",
479
516
  waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
@@ -485,7 +522,8 @@ var TRANSLATIONS = {
485
522
  cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
486
523
  close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
487
524
  qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
488
- buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
525
+ buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL",
526
+ openApp: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 ZOREAL ID"
489
527
  },
490
528
  // Español (LA)
491
529
  "es-419": {
@@ -494,6 +532,7 @@ var TRANSLATIONS = {
494
532
  titlePresence: "Escanea para demostrar que eres una persona real",
495
533
  titleApprove: "Aprueba desde tu celular",
496
534
  bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
535
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
497
536
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
498
537
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
499
538
  waiting: "Esperando escaneo",
@@ -505,7 +544,8 @@ var TRANSLATIONS = {
505
544
  cancel: "Cancelar",
506
545
  close: "Cerrar",
507
546
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
508
- buttonContinue: "Continuar con ZOREAL"
547
+ buttonContinue: "Continuar con ZOREAL",
548
+ openApp: "Abrir ZOREAL ID"
509
549
  },
510
550
  // Suomi
511
551
  fi: {
@@ -514,6 +554,7 @@ var TRANSLATIONS = {
514
554
  titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
515
555
  titleApprove: "Hyv\xE4ksy puhelimessasi",
516
556
  bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
557
+ bodyLink: "Hyv\xE4ksy t\xE4m\xE4 kirjautuminen ZOREAL ID -sovelluksessa t\xE4ll\xE4 puhelimella.",
517
558
  bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
518
559
  bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
519
560
  waiting: "Odotetaan skannausta",
@@ -525,7 +566,8 @@ var TRANSLATIONS = {
525
566
  cancel: "Peruuta",
526
567
  close: "Sulje",
527
568
  qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
528
- buttonContinue: "Jatka ZOREALilla"
569
+ buttonContinue: "Jatka ZOREALilla",
570
+ openApp: "Avaa ZOREAL ID"
529
571
  },
530
572
  // עברית
531
573
  he: {
@@ -534,6 +576,7 @@ var TRANSLATIONS = {
534
576
  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",
535
577
  titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
536
578
  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.",
579
+ 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.",
537
580
  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.",
538
581
  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.",
539
582
  waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
@@ -545,7 +588,8 @@ var TRANSLATIONS = {
545
588
  cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
546
589
  close: "\u05E1\u05D2\u05D5\u05E8",
547
590
  qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
548
- buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
591
+ buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL",
592
+ openApp: "\u05E4\u05EA\u05D7 \u05D0\u05EA ZOREAL ID"
549
593
  },
550
594
  // Hrvatski
551
595
  hr: {
@@ -554,6 +598,7 @@ var TRANSLATIONS = {
554
598
  titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
555
599
  titleApprove: "Odobrite na svom mobitelu",
556
600
  bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
601
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
557
602
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
558
603
  bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
559
604
  waiting: "\u010Ceka se skeniranje",
@@ -565,7 +610,8 @@ var TRANSLATIONS = {
565
610
  cancel: "Odustani",
566
611
  close: "Zatvori",
567
612
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
568
- buttonContinue: "Nastavi sa ZOREAL-om"
613
+ buttonContinue: "Nastavi sa ZOREAL-om",
614
+ openApp: "Otvori ZOREAL ID"
569
615
  },
570
616
  // Magyar
571
617
  hu: {
@@ -574,6 +620,7 @@ var TRANSLATIONS = {
574
620
  titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
575
621
  titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
576
622
  bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
623
+ bodyLink: "Hagyja j\xF3v\xE1 ezt a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban ezen a telefonon.",
577
624
  bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
578
625
  bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
579
626
  waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
@@ -585,7 +632,8 @@ var TRANSLATIONS = {
585
632
  cancel: "M\xE9gse",
586
633
  close: "Bez\xE1r\xE1s",
587
634
  qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
588
- buttonContinue: "Folytat\xE1s a ZOREAL-lal"
635
+ buttonContinue: "Folytat\xE1s a ZOREAL-lal",
636
+ openApp: "ZOREAL ID megnyit\xE1sa"
589
637
  },
590
638
  // Bahasa Indonesia
591
639
  id: {
@@ -594,6 +642,7 @@ var TRANSLATIONS = {
594
642
  titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
595
643
  titleApprove: "Setujui di ponsel Anda",
596
644
  bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
645
+ bodyLink: "Setujui masuk ini di aplikasi ZOREAL ID pada ponsel ini.",
597
646
  bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
598
647
  bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
599
648
  waiting: "Menunggu pemindaian",
@@ -605,7 +654,8 @@ var TRANSLATIONS = {
605
654
  cancel: "Batal",
606
655
  close: "Tutup",
607
656
  qrAlt: "Kode QR untuk masuk dengan ZOREAL",
608
- buttonContinue: "Lanjutkan dengan ZOREAL"
657
+ buttonContinue: "Lanjutkan dengan ZOREAL",
658
+ openApp: "Buka ZOREAL ID"
609
659
  },
610
660
  // Italiano
611
661
  it: {
@@ -614,6 +664,7 @@ var TRANSLATIONS = {
614
664
  titlePresence: "Scansiona per dimostrare di essere una persona reale",
615
665
  titleApprove: "Approva sul tuo telefono",
616
666
  bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
667
+ bodyLink: "Approva questo accesso nell'app ZOREAL ID su questo telefono.",
617
668
  bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
618
669
  bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
619
670
  waiting: "In attesa della scansione",
@@ -625,7 +676,8 @@ var TRANSLATIONS = {
625
676
  cancel: "Annulla",
626
677
  close: "Chiudi",
627
678
  qrAlt: "Codice QR per accedere con ZOREAL",
628
- buttonContinue: "Continua con ZOREAL"
679
+ buttonContinue: "Continua con ZOREAL",
680
+ openApp: "Apri ZOREAL ID"
629
681
  },
630
682
  // Bahasa Melayu
631
683
  ms: {
@@ -634,6 +686,7 @@ var TRANSLATIONS = {
634
686
  titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
635
687
  titleApprove: "Luluskan di telefon anda",
636
688
  bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
689
+ bodyLink: "Luluskan log masuk ini dalam aplikasi ZOREAL ID pada telefon ini.",
637
690
  bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
638
691
  bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
639
692
  waiting: "Menunggu imbasan",
@@ -645,7 +698,8 @@ var TRANSLATIONS = {
645
698
  cancel: "Batal",
646
699
  close: "Tutup",
647
700
  qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
648
- buttonContinue: "Teruskan dengan ZOREAL"
701
+ buttonContinue: "Teruskan dengan ZOREAL",
702
+ openApp: "Buka ZOREAL ID"
649
703
  },
650
704
  // Nederlands
651
705
  nl: {
@@ -654,6 +708,7 @@ var TRANSLATIONS = {
654
708
  titlePresence: "Scan om te bewijzen dat je een echt mens bent",
655
709
  titleApprove: "Keur goed op je telefoon",
656
710
  bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
711
+ bodyLink: "Keur deze aanmelding goed in de ZOREAL ID-app op deze telefoon.",
657
712
  bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
658
713
  bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
659
714
  waiting: "Wachten op scan",
@@ -665,7 +720,8 @@ var TRANSLATIONS = {
665
720
  cancel: "Annuleren",
666
721
  close: "Sluiten",
667
722
  qrAlt: "QR-code om in te loggen met ZOREAL",
668
- buttonContinue: "Doorgaan met ZOREAL"
723
+ buttonContinue: "Doorgaan met ZOREAL",
724
+ openApp: "ZOREAL ID openen"
669
725
  },
670
726
  // Norsk
671
727
  no: {
@@ -674,6 +730,7 @@ var TRANSLATIONS = {
674
730
  titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
675
731
  titleApprove: "Godkjenn p\xE5 telefonen din",
676
732
  bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
733
+ bodyLink: "Godkjenn denne innloggingen i ZOREAL ID-appen p\xE5 denne telefonen.",
677
734
  bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
678
735
  bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
679
736
  waiting: "Venter p\xE5 skanning",
@@ -685,7 +742,8 @@ var TRANSLATIONS = {
685
742
  cancel: "Avbryt",
686
743
  close: "Lukk",
687
744
  qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
688
- buttonContinue: "Fortsett med ZOREAL"
745
+ buttonContinue: "Fortsett med ZOREAL",
746
+ openApp: "\xC5pne ZOREAL ID"
689
747
  },
690
748
  // Polski
691
749
  pl: {
@@ -694,6 +752,7 @@ var TRANSLATIONS = {
694
752
  titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
695
753
  titleApprove: "Zatwierd\u017A w telefonie",
696
754
  bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
755
+ bodyLink: "Zatwierd\u017A to logowanie w aplikacji ZOREAL ID na tym telefonie.",
697
756
  bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
698
757
  bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
699
758
  waiting: "Czekanie na skan",
@@ -705,7 +764,8 @@ var TRANSLATIONS = {
705
764
  cancel: "Anuluj",
706
765
  close: "Zamknij",
707
766
  qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
708
- buttonContinue: "Kontynuuj z ZOREAL"
767
+ buttonContinue: "Kontynuuj z ZOREAL",
768
+ openApp: "Otw\xF3rz ZOREAL ID"
709
769
  },
710
770
  // Português (BR)
711
771
  "pt-br": {
@@ -714,6 +774,7 @@ var TRANSLATIONS = {
714
774
  titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
715
775
  titleApprove: "Aprove no seu celular",
716
776
  bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
777
+ bodyLink: "Aprove este login no app ZOREAL ID neste celular.",
717
778
  bodyApprove: "Aprove o login no app ZOREAL ID.",
718
779
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
719
780
  waiting: "Aguardando escaneamento",
@@ -725,7 +786,8 @@ var TRANSLATIONS = {
725
786
  cancel: "Cancelar",
726
787
  close: "Fechar",
727
788
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
728
- buttonContinue: "Continuar com ZOREAL"
789
+ buttonContinue: "Continuar com ZOREAL",
790
+ openApp: "Abrir ZOREAL ID"
729
791
  },
730
792
  // Română
731
793
  ro: {
@@ -734,6 +796,7 @@ var TRANSLATIONS = {
734
796
  titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
735
797
  titleApprove: "Aproba\u021Bi de pe telefon",
736
798
  bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
799
+ bodyLink: "Aproba\u021Bi aceast\u0103 conectare \xEEn aplica\u021Bia ZOREAL ID de pe acest telefon.",
737
800
  bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
738
801
  bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
739
802
  waiting: "Se a\u0219teapt\u0103 scanarea",
@@ -745,7 +808,8 @@ var TRANSLATIONS = {
745
808
  cancel: "Anuleaz\u0103",
746
809
  close: "\xCEnchide",
747
810
  qrAlt: "Cod QR pentru conectare cu ZOREAL",
748
- buttonContinue: "Continua\u021Bi cu ZOREAL"
811
+ buttonContinue: "Continua\u021Bi cu ZOREAL",
812
+ openApp: "Deschide\u021Bi ZOREAL ID"
749
813
  },
750
814
  // Српски
751
815
  sr: {
@@ -754,6 +818,7 @@ var TRANSLATIONS = {
754
818
  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",
755
819
  titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
756
820
  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.",
821
+ 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.",
757
822
  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.",
758
823
  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.",
759
824
  waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
@@ -765,7 +830,8 @@ var TRANSLATIONS = {
765
830
  cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
766
831
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
767
832
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
768
- buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
833
+ buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C",
834
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
769
835
  },
770
836
  // ไทย
771
837
  th: {
@@ -774,6 +840,7 @@ var TRANSLATIONS = {
774
840
  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",
775
841
  titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
776
842
  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",
843
+ 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",
777
844
  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",
778
845
  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",
779
846
  waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
@@ -785,7 +852,8 @@ var TRANSLATIONS = {
785
852
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
786
853
  close: "\u0E1B\u0E34\u0E14",
787
854
  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",
788
- buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
855
+ buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL",
856
+ openApp: "\u0E40\u0E1B\u0E34\u0E14 ZOREAL ID"
789
857
  },
790
858
  // Tagalog
791
859
  tl: {
@@ -794,6 +862,7 @@ var TRANSLATIONS = {
794
862
  titlePresence: "I-scan para patunayang tunay kang tao",
795
863
  titleApprove: "I-approve sa iyong telepono",
796
864
  bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
865
+ bodyLink: "Aprubahan ang pag-sign in na ito sa ZOREAL ID app sa teleponong ito.",
797
866
  bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
798
867
  bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
799
868
  waiting: "Naghihintay ng scan",
@@ -805,7 +874,8 @@ var TRANSLATIONS = {
805
874
  cancel: "Kanselahin",
806
875
  close: "Isara",
807
876
  qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
808
- buttonContinue: "Magpatuloy gamit ang ZOREAL"
877
+ buttonContinue: "Magpatuloy gamit ang ZOREAL",
878
+ openApp: "Buksan ang ZOREAL ID"
809
879
  },
810
880
  // Türkçe
811
881
  tr: {
@@ -814,6 +884,7 @@ var TRANSLATIONS = {
814
884
  titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
815
885
  titleApprove: "Telefonunuzdan onaylay\u0131n",
816
886
  bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
887
+ bodyLink: "Bu giri\u015Fi bu telefondaki ZOREAL ID uygulamas\u0131nda onaylay\u0131n.",
817
888
  bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
818
889
  bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
819
890
  waiting: "Tarama bekleniyor",
@@ -825,7 +896,8 @@ var TRANSLATIONS = {
825
896
  cancel: "\u0130ptal",
826
897
  close: "Kapat",
827
898
  qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
828
- buttonContinue: "ZOREAL ile devam et"
899
+ buttonContinue: "ZOREAL ile devam et",
900
+ openApp: "ZOREAL ID'yi a\xE7"
829
901
  },
830
902
  // Українська
831
903
  uk: {
@@ -834,6 +906,7 @@ var TRANSLATIONS = {
834
906
  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",
835
907
  titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
836
908
  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.",
909
+ 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.",
837
910
  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.",
838
911
  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.",
839
912
  waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
@@ -845,7 +918,8 @@ var TRANSLATIONS = {
845
918
  cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
846
919
  close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
847
920
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
848
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
921
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL",
922
+ openApp: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 ZOREAL ID"
849
923
  },
850
924
  // اردو
851
925
  ur: {
@@ -854,6 +928,7 @@ var TRANSLATIONS = {
854
928
  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",
855
929
  titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
856
930
  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",
931
+ 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",
857
932
  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",
858
933
  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",
859
934
  waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
@@ -865,7 +940,8 @@ var TRANSLATIONS = {
865
940
  cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
866
941
  close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
867
942
  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",
868
- buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
943
+ buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA",
944
+ openApp: "ZOREAL ID \u06A9\u06BE\u0648\u0644\u06CC\u06BA"
869
945
  },
870
946
  // Tiếng Việt
871
947
  vi: {
@@ -874,6 +950,7 @@ var TRANSLATIONS = {
874
950
  titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
875
951
  titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
876
952
  bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
953
+ 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.",
877
954
  bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
878
955
  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.",
879
956
  waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
@@ -885,7 +962,8 @@ var TRANSLATIONS = {
885
962
  cancel: "H\u1EE7y",
886
963
  close: "\u0110\xF3ng",
887
964
  qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
888
- buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
965
+ buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL",
966
+ openApp: "M\u1EDF ZOREAL ID"
889
967
  }
890
968
  };
891
969
  var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
@@ -1206,12 +1284,58 @@ var CSS = `
1206
1284
  dim glow. Paused rather than removed, so it does not jump back to its start
1207
1285
  on the way out. */
1208
1286
  .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::after,
1209
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after {
1287
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after,
1288
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::after,
1289
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::after {
1210
1290
  animation-play-state: paused;
1211
1291
  opacity: 0;
1212
1292
  }
1213
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1214
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1293
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before,
1294
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1295
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before,
1296
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1297
+
1298
+ /* Same device: no code to scan. A round well with the mark carries the same
1299
+ light while the sign-in is being created, and settles once the link below
1300
+ it is ready to tap. A circle keeps the sweep even all the way round. */
1301
+ .${PREFIX}-link-well {
1302
+ position: relative;
1303
+ display: grid;
1304
+ place-items: center;
1305
+ box-sizing: border-box;
1306
+ width: 112px;
1307
+ height: 112px;
1308
+ margin: 20px auto 0;
1309
+ border: 1px solid var(--zrl-line);
1310
+ border-radius: 999px;
1311
+ background: var(--zrl-surface-sunken);
1312
+ --zrl-radius: 56px;
1313
+ --zrl-beam-time: 4s;
1314
+ }
1315
+ .${PREFIX}-link-well svg { position: relative; }
1316
+
1317
+ /* The control that opens the app: a real link, because a browser hands a
1318
+ link to an app only from a tap. It has no address until the sign-in
1319
+ exists, and reads as disabled until then. */
1320
+ .${PREFIX}-open {
1321
+ display: block;
1322
+ box-sizing: border-box;
1323
+ width: 100%;
1324
+ margin: 20px 0 0;
1325
+ padding: 12px 16px;
1326
+ border-radius: 12px;
1327
+ background: var(--zrl-accent);
1328
+ color: #ffffff;
1329
+ font: inherit;
1330
+ font-size: 15px;
1331
+ font-weight: 600;
1332
+ text-align: center;
1333
+ text-decoration: none;
1334
+ cursor: pointer;
1335
+ transition: opacity 200ms ease-out, transform 150ms ease-out;
1336
+ }
1337
+ .${PREFIX}-open:active { transform: scale(0.99); }
1338
+ .${PREFIX}-open[aria-disabled="true"] { opacity: 0.45; cursor: default; pointer-events: none; }
1215
1339
 
1216
1340
  .${PREFIX}-qr {
1217
1341
  display: block;
@@ -1421,9 +1545,11 @@ function PairingModal({
1421
1545
  const deadlineRef = (0, import_react.useRef)(0);
1422
1546
  const [remaining, setRemaining] = (0, import_react.useState)(Math.round(timeoutMs / 1e3));
1423
1547
  const settled = state.status === "claimed" || state.status === "enrolling";
1548
+ const linkMode = state.appLink === true;
1549
+ const ready = linkMode && Boolean(state.pairUrl);
1424
1550
  const [frameUrl, setFrameUrl] = (0, import_react.useState)(qrUrl);
1425
1551
  (0, import_react.useEffect)(() => {
1426
- if (settled || frameUrl === qrUrl) return;
1552
+ if (linkMode || settled || frameUrl === qrUrl) return;
1427
1553
  let abandoned = false;
1428
1554
  const next = new Image();
1429
1555
  next.onload = () => {
@@ -1437,7 +1563,7 @@ function PairingModal({
1437
1563
  next.onload = null;
1438
1564
  next.onerror = null;
1439
1565
  };
1440
- }, [qrUrl, settled, frameUrl]);
1566
+ }, [qrUrl, settled, frameUrl, linkMode]);
1441
1567
  const onCancelRef = (0, import_react.useRef)(onCancel);
1442
1568
  onCancelRef.current = onCancel;
1443
1569
  (0, import_react.useEffect)(() => {
@@ -1471,7 +1597,7 @@ function PairingModal({
1471
1597
  };
1472
1598
  }, []);
1473
1599
  if (typeof document === "undefined") return null;
1474
- const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : t.bodyScan;
1600
+ const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : linkMode ? t.bodyLink : t.bodyScan;
1475
1601
  return (0, import_react_dom.createPortal)(
1476
1602
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: `${cx("root")} ${cx("scrim")}`, "data-theme": theme, onClick: onCancel, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
1477
1603
  "div",
@@ -1488,13 +1614,30 @@ function PairingModal({
1488
1614
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ZorealLockup, { height: 44, className: cx("lockup") }),
1489
1615
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { id: titleId, className: cx("title"), children: settled ? t.titleApprove : titleFor(t, intent) }),
1490
1616
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("body-text"), children: body }),
1491
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("qr-well"), "data-spent": settled, children: [
1617
+ linkMode ? /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(import_jsx_runtime3.Fragment, { children: [
1618
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("link-well"), "data-ready": ready, children: [
1619
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow-band") }) }),
1620
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam"), "aria-hidden": true }),
1621
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ZorealMark, { size: 48 })
1622
+ ] }),
1623
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1624
+ "a",
1625
+ {
1626
+ className: cx("open"),
1627
+ href: ready ? state.pairUrl : void 0,
1628
+ target: "_blank",
1629
+ rel: "noopener",
1630
+ "aria-disabled": ready ? void 0 : true,
1631
+ children: t.openApp
1632
+ }
1633
+ )
1634
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("qr-well"), "data-spent": settled, children: [
1492
1635
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam-glow-band") }) }),
1493
1636
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-beam"), "aria-hidden": true }),
1494
1637
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("img", { className: cx("qr"), "data-spent": settled, src: frameUrl, alt: t.qrAlt, width: 180, height: 180 }),
1495
1638
  settled && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-overlay"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx("qr-badge"), children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(IconPhone, {}) }) })
1496
1639
  ] }),
1497
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("status"), children: [
1640
+ (!linkMode || settled) && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("status"), children: [
1498
1641
  /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("span", { className: cx("dot"), children: [
1499
1642
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", {}),
1500
1643
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", {})
@@ -1503,7 +1646,7 @@ function PairingModal({
1503
1646
  ] }),
1504
1647
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("timer"), "data-urgent": remaining <= URGENT_SECONDS, children: interpolate(t.expiresIn, mmss(remaining)) })
1505
1648
  ] }),
1506
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("help"), children: [
1649
+ !linkMode && /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("help"), children: [
1507
1650
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("help-title"), children: t.noIdTitle }),
1508
1651
  /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("help-body"), children: t.noIdBody })
1509
1652
  ] }),
@@ -1804,6 +1947,18 @@ function useZorealFlow(options) {
1804
1947
  const useAppLink = display === "link";
1805
1948
  const intent = resolveIntent(opts.intent, opts.scope, opts.acr_values);
1806
1949
  try {
1950
+ if (useAppLink) {
1951
+ const cancel = () => {
1952
+ controller.abort();
1953
+ publishRef.current?.(null);
1954
+ };
1955
+ publishRef.current?.({
1956
+ state: { status: "pending", appLink: true, intent, cancel },
1957
+ qrUrl: "",
1958
+ intent,
1959
+ cancel
1960
+ });
1961
+ }
1807
1962
  const started = await startPairing(issuer, {
1808
1963
  client_id: clientId,
1809
1964
  scope: opts.scope ?? "openid",
@@ -1848,13 +2003,8 @@ function useZorealFlow(options) {
1848
2003
  cancel
1849
2004
  };
1850
2005
  setPairing(active);
1851
- if (!useAppLink) {
1852
- publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1853
- }
2006
+ publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1854
2007
  opts.onPairingStateChange?.(active.state);
1855
- if (useAppLink) {
1856
- window.location.assign(started.pair_url);
1857
- }
1858
2008
  code = await pollUntilApproved(
1859
2009
  issuer,
1860
2010
  started.request_id,
@@ -1864,9 +2014,7 @@ function useZorealFlow(options) {
1864
2014
  setPairing(
1865
2015
  (p) => p && p.requestId === started.request_id ? { ...p, qrUrl, state: enriched } : p
1866
2016
  );
1867
- if (!useAppLink) {
1868
- publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1869
- }
2017
+ publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1870
2018
  opts.onPairingStateChange?.(enriched);
1871
2019
  },
1872
2020
  controller.signal,