@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.js CHANGED
@@ -5,7 +5,7 @@ import { createContext, useContext, useMemo, useState as useState2 } from "react
5
5
 
6
6
  // src/wire.ts
7
7
  var WIRE_VERSION = 1;
8
- var SDK_VERSION = "0.2.13";
8
+ var SDK_VERSION = "0.2.14";
9
9
  var DEFAULT_ISSUER = "https://id.zoreal.com";
10
10
  var POLL_INTERVAL_MS = 2e3;
11
11
  var POLL_INTERVAL_ENROLLING_MS = 5e3;
@@ -89,6 +89,7 @@ var en = {
89
89
  titlePresence: "Scan to prove you are a real human",
90
90
  titleApprove: "Approve on your phone",
91
91
  bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
92
+ bodyLink: "Approve this sign-in in the ZOREAL ID app on this phone.",
92
93
  bodyApprove: "Approve the login in your ZOREAL ID app.",
93
94
  bodyEnrolling: "Finish setting up ZOREAL ID on your phone, then approve the login.",
94
95
  waiting: "Waiting for scan",
@@ -100,7 +101,8 @@ var en = {
100
101
  cancel: "Cancel",
101
102
  close: "Close",
102
103
  qrAlt: "QR code to sign in with ZOREAL",
103
- buttonContinue: "Continue with ZOREAL"
104
+ buttonContinue: "Continue with ZOREAL",
105
+ openApp: "Open ZOREAL ID"
104
106
  };
105
107
  var TRANSLATIONS = {
106
108
  en,
@@ -110,6 +112,7 @@ var TRANSLATIONS = {
110
112
  titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
111
113
  titleApprove: "Godk\xE4nn p\xE5 telefonen",
112
114
  bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
115
+ bodyLink: "Godk\xE4nn inloggningen i ZOREAL ID-appen p\xE5 den h\xE4r telefonen.",
113
116
  bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
114
117
  bodyEnrolling: "Slutf\xF6r konfigurationen av ZOREAL ID p\xE5 telefonen och godk\xE4nn sedan inloggningen.",
115
118
  waiting: "V\xE4ntar p\xE5 skanning",
@@ -121,7 +124,8 @@ var TRANSLATIONS = {
121
124
  cancel: "Avbryt",
122
125
  close: "St\xE4ng",
123
126
  qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
124
- buttonContinue: "Forts\xE4tt med ZOREAL"
127
+ buttonContinue: "Forts\xE4tt med ZOREAL",
128
+ openApp: "\xD6ppna ZOREAL ID"
125
129
  },
126
130
  es: {
127
131
  title: "Escanea para iniciar sesi\xF3n",
@@ -129,6 +133,7 @@ var TRANSLATIONS = {
129
133
  titlePresence: "Escanea para demostrar que eres una persona real",
130
134
  titleApprove: "Apru\xE9balo en tu tel\xE9fono",
131
135
  bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
136
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
132
137
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
133
138
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu tel\xE9fono y luego aprueba el inicio de sesi\xF3n.",
134
139
  waiting: "Esperando el escaneo",
@@ -140,7 +145,8 @@ var TRANSLATIONS = {
140
145
  cancel: "Cancelar",
141
146
  close: "Cerrar",
142
147
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
143
- buttonContinue: "Continuar con ZOREAL"
148
+ buttonContinue: "Continuar con ZOREAL",
149
+ openApp: "Abrir ZOREAL ID"
144
150
  },
145
151
  pt: {
146
152
  title: "Digitalize para entrar",
@@ -148,6 +154,7 @@ var TRANSLATIONS = {
148
154
  titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
149
155
  titleApprove: "Aprove no seu telefone",
150
156
  bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
157
+ bodyLink: "Aprove este in\xEDcio de sess\xE3o na app ZOREAL ID neste telem\xF3vel.",
151
158
  bodyApprove: "Aprove o login no app ZOREAL ID.",
152
159
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu telefone e depois aprove o login.",
153
160
  waiting: "Aguardando digitaliza\xE7\xE3o",
@@ -159,7 +166,8 @@ var TRANSLATIONS = {
159
166
  cancel: "Cancelar",
160
167
  close: "Fechar",
161
168
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
162
- buttonContinue: "Continuar com ZOREAL"
169
+ buttonContinue: "Continuar com ZOREAL",
170
+ openApp: "Abrir ZOREAL ID"
163
171
  },
164
172
  fr: {
165
173
  title: "Scannez pour vous connecter",
@@ -167,6 +175,7 @@ var TRANSLATIONS = {
167
175
  titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
168
176
  titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
169
177
  bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
178
+ bodyLink: "Approuvez cette connexion dans l'app ZOREAL ID sur ce t\xE9l\xE9phone.",
170
179
  bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
171
180
  bodyEnrolling: "Terminez la configuration de ZOREAL ID sur votre t\xE9l\xE9phone, puis approuvez la connexion.",
172
181
  waiting: "En attente du scan",
@@ -178,7 +187,8 @@ var TRANSLATIONS = {
178
187
  cancel: "Annuler",
179
188
  close: "Fermer",
180
189
  qrAlt: "Code QR pour se connecter avec ZOREAL",
181
- buttonContinue: "Continuer avec ZOREAL"
190
+ buttonContinue: "Continuer avec ZOREAL",
191
+ openApp: "Ouvrir ZOREAL ID"
182
192
  },
183
193
  de: {
184
194
  title: "Zum Anmelden scannen",
@@ -186,6 +196,7 @@ var TRANSLATIONS = {
186
196
  titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
187
197
  titleApprove: "Auf dem Handy best\xE4tigen",
188
198
  bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
199
+ bodyLink: "Best\xE4tigen Sie diese Anmeldung in der ZOREAL ID-App auf diesem Telefon.",
189
200
  bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
190
201
  bodyEnrolling: "ZOREAL ID auf dem Handy fertig einrichten und dann die Anmeldung best\xE4tigen.",
191
202
  waiting: "Warten auf Scan",
@@ -197,7 +208,8 @@ var TRANSLATIONS = {
197
208
  cancel: "Abbrechen",
198
209
  close: "Schlie\xDFen",
199
210
  qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
200
- buttonContinue: "Weiter mit ZOREAL"
211
+ buttonContinue: "Weiter mit ZOREAL",
212
+ openApp: "ZOREAL ID \xF6ffnen"
201
213
  },
202
214
  ru: {
203
215
  title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
@@ -205,6 +217,7 @@ var TRANSLATIONS = {
205
217
  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",
206
218
  titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
207
219
  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.",
220
+ 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.",
208
221
  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.",
209
222
  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.",
210
223
  waiting: "\u041E\u0436\u0438\u0434\u0430\u043D\u0438\u0435 \u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F",
@@ -216,7 +229,8 @@ var TRANSLATIONS = {
216
229
  cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
217
230
  close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
218
231
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
219
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL"
232
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C \u0441 ZOREAL",
233
+ openApp: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C ZOREAL ID"
220
234
  },
221
235
  ja: {
222
236
  title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
@@ -224,6 +238,7 @@ var TRANSLATIONS = {
224
238
  titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
225
239
  titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
226
240
  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",
241
+ 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",
227
242
  bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
228
243
  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",
229
244
  waiting: "\u30B9\u30AD\u30E3\u30F3\u5F85\u3061",
@@ -235,7 +250,8 @@ var TRANSLATIONS = {
235
250
  cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
236
251
  close: "\u9589\u3058\u308B",
237
252
  qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
238
- buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
253
+ buttonContinue: "ZOREAL\u3067\u7D9A\u884C",
254
+ openApp: "ZOREAL ID\u3092\u958B\u304F"
239
255
  },
240
256
  hi: {
241
257
  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",
@@ -243,6 +259,7 @@ var TRANSLATIONS = {
243
259
  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",
244
260
  titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
245
261
  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",
262
+ 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",
246
263
  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",
247
264
  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",
248
265
  waiting: "\u0938\u094D\u0915\u0948\u0928 \u0915\u0940 \u092A\u094D\u0930\u0924\u0940\u0915\u094D\u0937\u093E \u0939\u0948",
@@ -254,7 +271,8 @@ var TRANSLATIONS = {
254
271
  cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
255
272
  close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
256
273
  qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921",
257
- buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902"
274
+ buttonContinue: "ZOREAL \u0915\u0947 \u0938\u093E\u0925 \u091C\u093E\u0930\u0940 \u0930\u0916\u0947\u0902",
275
+ openApp: "ZOREAL ID \u0916\u094B\u0932\u0947\u0902"
258
276
  },
259
277
  zhs: {
260
278
  title: "\u626B\u7801\u767B\u5F55",
@@ -262,6 +280,7 @@ var TRANSLATIONS = {
262
280
  titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
263
281
  titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
264
282
  bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
283
+ bodyLink: "\u8BF7\u5728\u672C\u624B\u673A\u7684 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u6B64\u6B21\u767B\u5F55\u3002",
265
284
  bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
266
285
  bodyEnrolling: "\u8BF7\u5728\u624B\u673A\u4E0A\u5B8C\u6210 ZOREAL ID \u8BBE\u7F6E\uFF0C\u7136\u540E\u6279\u51C6\u767B\u5F55\u3002",
267
286
  waiting: "\u7B49\u5F85\u626B\u63CF",
@@ -273,7 +292,8 @@ var TRANSLATIONS = {
273
292
  cancel: "\u53D6\u6D88",
274
293
  close: "\u5173\u95ED",
275
294
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
276
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
295
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED",
296
+ openApp: "\u6253\u5F00 ZOREAL ID"
277
297
  },
278
298
  zht: {
279
299
  title: "\u6383\u78BC\u767B\u5165",
@@ -281,6 +301,7 @@ var TRANSLATIONS = {
281
301
  titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
282
302
  titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
283
303
  bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
304
+ bodyLink: "\u8ACB\u5728\u672C\u624B\u6A5F\u7684 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u6B64\u6B21\u767B\u5165\u3002",
284
305
  bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
285
306
  bodyEnrolling: "\u8ACB\u5728\u624B\u6A5F\u4E0A\u5B8C\u6210 ZOREAL ID \u8A2D\u5B9A\uFF0C\u7136\u5F8C\u6838\u51C6\u767B\u5165\u3002",
286
307
  waiting: "\u7B49\u5F85\u6383\u63CF",
@@ -292,7 +313,8 @@ var TRANSLATIONS = {
292
313
  cancel: "\u53D6\u6D88",
293
314
  close: "\u95DC\u9589",
294
315
  qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
295
- buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
316
+ buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C",
317
+ openApp: "\u958B\u555F ZOREAL ID"
296
318
  },
297
319
  ar: {
298
320
  title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
@@ -300,6 +322,7 @@ var TRANSLATIONS = {
300
322
  titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
301
323
  titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
302
324
  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.",
325
+ 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.",
303
326
  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.",
304
327
  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.",
305
328
  waiting: "\u0641\u064A \u0627\u0646\u062A\u0638\u0627\u0631 \u0627\u0644\u0645\u0633\u062D",
@@ -311,7 +334,8 @@ var TRANSLATIONS = {
311
334
  cancel: "\u0625\u0644\u063A\u0627\u0621",
312
335
  close: "\u0625\u063A\u0644\u0627\u0642",
313
336
  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",
314
- buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL"
337
+ buttonContinue: "\u0627\u0644\u0645\u062A\u0627\u0628\u0639\u0629 \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 ZOREAL",
338
+ openApp: "\u0641\u062A\u062D ZOREAL ID"
315
339
  },
316
340
  ko: {
317
341
  title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
@@ -319,6 +343,7 @@ var TRANSLATIONS = {
319
343
  titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
320
344
  titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
321
345
  bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
346
+ bodyLink: "\uC774 \uD734\uB300\uD3F0\uC758 ZOREAL ID \uC571\uC5D0\uC11C \uC774 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
322
347
  bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
323
348
  bodyEnrolling: "\uD734\uB300\uD3F0\uC5D0\uC11C ZOREAL ID \uC124\uC815\uC744 \uC644\uB8CC\uD55C \uD6C4 \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
324
349
  waiting: "\uC2A4\uCE94 \uB300\uAE30 \uC911",
@@ -330,7 +355,8 @@ var TRANSLATIONS = {
330
355
  cancel: "\uCDE8\uC18C",
331
356
  close: "\uB2EB\uAE30",
332
357
  qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
333
- buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
358
+ buttonContinue: "ZOREAL\uB85C \uACC4\uC18D",
359
+ openApp: "ZOREAL ID \uC5F4\uAE30"
334
360
  },
335
361
  // Български
336
362
  bg: {
@@ -339,6 +365,7 @@ var TRANSLATIONS = {
339
365
  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",
340
366
  titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
341
367
  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.",
368
+ 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.",
342
369
  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.",
343
370
  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.",
344
371
  waiting: "\u0418\u0437\u0447\u0430\u043A\u0432\u0430\u043D\u0435 \u043D\u0430 \u0441\u043A\u0430\u043D\u0438\u0440\u0430\u043D\u0435",
@@ -350,7 +377,8 @@ var TRANSLATIONS = {
350
377
  cancel: "\u041E\u0442\u043A\u0430\u0437",
351
378
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
352
379
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL",
353
- buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL"
380
+ buttonContinue: "\u041F\u0440\u043E\u0434\u044A\u043B\u0436\u0438 \u0441\u044A\u0441 ZOREAL",
381
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
354
382
  },
355
383
  // বাংলা
356
384
  bn: {
@@ -359,6 +387,7 @@ var TRANSLATIONS = {
359
387
  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",
360
388
  titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
361
389
  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",
390
+ 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",
362
391
  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",
363
392
  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",
364
393
  waiting: "\u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8\u09C7\u09B0 \u0985\u09AA\u09C7\u0995\u09CD\u09B7\u09BE\u09AF\u09BC",
@@ -370,7 +399,8 @@ var TRANSLATIONS = {
370
399
  cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
371
400
  close: "\u09AC\u09A8\u09CD\u09A7",
372
401
  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",
373
- buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8"
402
+ buttonContinue: "ZOREAL \u09A6\u09BF\u09AF\u09BC\u09C7 \u099A\u09BE\u09B2\u09BF\u09AF\u09BC\u09C7 \u09AF\u09BE\u09A8",
403
+ openApp: "ZOREAL ID \u0996\u09C1\u09B2\u09C1\u09A8"
374
404
  },
375
405
  // Bosanski
376
406
  bs: {
@@ -379,6 +409,7 @@ var TRANSLATIONS = {
379
409
  titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
380
410
  titleApprove: "Odobrite na svom telefonu",
381
411
  bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
412
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
382
413
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
383
414
  bodyEnrolling: "Zavr\u0161ite pode\u0161avanje ZOREAL ID-a na svom telefonu, a zatim odobrite prijavu.",
384
415
  waiting: "\u010Ceka se skeniranje",
@@ -390,7 +421,8 @@ var TRANSLATIONS = {
390
421
  cancel: "Otka\u017Ei",
391
422
  close: "Zatvori",
392
423
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
393
- buttonContinue: "Nastavi sa ZOREAL-om"
424
+ buttonContinue: "Nastavi sa ZOREAL-om",
425
+ openApp: "Otvori ZOREAL ID"
394
426
  },
395
427
  // Čeština
396
428
  cs: {
@@ -399,6 +431,7 @@ var TRANSLATIONS = {
399
431
  titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
400
432
  titleApprove: "Potvr\u010Fte v telefonu",
401
433
  bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
434
+ bodyLink: "Schvalte toto p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID na tomto telefonu.",
402
435
  bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
403
436
  bodyEnrolling: "Dokon\u010Dete nastaven\xED ZOREAL ID v telefonu a pot\xE9 potvr\u010Fte p\u0159ihl\xE1\u0161en\xED.",
404
437
  waiting: "\u010Cek\xE1n\xED na naskenov\xE1n\xED",
@@ -410,7 +443,8 @@ var TRANSLATIONS = {
410
443
  cancel: "Zru\u0161it",
411
444
  close: "Zav\u0159\xEDt",
412
445
  qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
413
- buttonContinue: "Pokra\u010Dovat se ZOREAL"
446
+ buttonContinue: "Pokra\u010Dovat se ZOREAL",
447
+ openApp: "Otev\u0159\xEDt ZOREAL ID"
414
448
  },
415
449
  // Dansk
416
450
  da: {
@@ -419,6 +453,7 @@ var TRANSLATIONS = {
419
453
  titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
420
454
  titleApprove: "Godkend p\xE5 din telefon",
421
455
  bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
456
+ bodyLink: "Godkend dette login i ZOREAL ID-appen p\xE5 denne telefon.",
422
457
  bodyApprove: "Godkend login i din ZOREAL ID-app.",
423
458
  bodyEnrolling: "F\xE6rdigg\xF8r ops\xE6tningen af ZOREAL ID p\xE5 din telefon, og godkend derefter login.",
424
459
  waiting: "Venter p\xE5 scanning",
@@ -430,7 +465,8 @@ var TRANSLATIONS = {
430
465
  cancel: "Annuller",
431
466
  close: "Luk",
432
467
  qrAlt: "QR-kode til at logge ind med ZOREAL",
433
- buttonContinue: "Forts\xE6t med ZOREAL"
468
+ buttonContinue: "Forts\xE6t med ZOREAL",
469
+ openApp: "\xC5bn ZOREAL ID"
434
470
  },
435
471
  // Ελληνικά
436
472
  el: {
@@ -439,6 +475,7 @@ var TRANSLATIONS = {
439
475
  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",
440
476
  titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
441
477
  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.",
478
+ 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.",
442
479
  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.",
443
480
  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.",
444
481
  waiting: "\u0391\u03BD\u03B1\u03BC\u03BF\u03BD\u03AE \u03C3\u03AC\u03C1\u03C9\u03C3\u03B7\u03C2",
@@ -450,7 +487,8 @@ var TRANSLATIONS = {
450
487
  cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
451
488
  close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
452
489
  qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL",
453
- buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL"
490
+ buttonContinue: "\u03A3\u03C5\u03BD\u03AD\u03C7\u03B5\u03B9\u03B1 \u03BC\u03B5 ZOREAL",
491
+ openApp: "\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 ZOREAL ID"
454
492
  },
455
493
  // Español (LA)
456
494
  "es-419": {
@@ -459,6 +497,7 @@ var TRANSLATIONS = {
459
497
  titlePresence: "Escanea para demostrar que eres una persona real",
460
498
  titleApprove: "Aprueba desde tu celular",
461
499
  bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
500
+ bodyLink: "Aprueba este inicio de sesi\xF3n en la app ZOREAL ID de este tel\xE9fono.",
462
501
  bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
463
502
  bodyEnrolling: "Termina de configurar ZOREAL ID en tu celular y luego aprueba el inicio de sesi\xF3n.",
464
503
  waiting: "Esperando escaneo",
@@ -470,7 +509,8 @@ var TRANSLATIONS = {
470
509
  cancel: "Cancelar",
471
510
  close: "Cerrar",
472
511
  qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
473
- buttonContinue: "Continuar con ZOREAL"
512
+ buttonContinue: "Continuar con ZOREAL",
513
+ openApp: "Abrir ZOREAL ID"
474
514
  },
475
515
  // Suomi
476
516
  fi: {
@@ -479,6 +519,7 @@ var TRANSLATIONS = {
479
519
  titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
480
520
  titleApprove: "Hyv\xE4ksy puhelimessasi",
481
521
  bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
522
+ bodyLink: "Hyv\xE4ksy t\xE4m\xE4 kirjautuminen ZOREAL ID -sovelluksessa t\xE4ll\xE4 puhelimella.",
482
523
  bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
483
524
  bodyEnrolling: "Viimeistele ZOREAL ID -sovelluksen k\xE4ytt\xF6\xF6notto puhelimellasi ja hyv\xE4ksy sitten kirjautuminen.",
484
525
  waiting: "Odotetaan skannausta",
@@ -490,7 +531,8 @@ var TRANSLATIONS = {
490
531
  cancel: "Peruuta",
491
532
  close: "Sulje",
492
533
  qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
493
- buttonContinue: "Jatka ZOREALilla"
534
+ buttonContinue: "Jatka ZOREALilla",
535
+ openApp: "Avaa ZOREAL ID"
494
536
  },
495
537
  // עברית
496
538
  he: {
@@ -499,6 +541,7 @@ var TRANSLATIONS = {
499
541
  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",
500
542
  titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
501
543
  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.",
544
+ 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.",
502
545
  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.",
503
546
  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.",
504
547
  waiting: "\u05DE\u05DE\u05EA\u05D9\u05DF \u05DC\u05E1\u05E8\u05D9\u05E7\u05D4",
@@ -510,7 +553,8 @@ var TRANSLATIONS = {
510
553
  cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
511
554
  close: "\u05E1\u05D2\u05D5\u05E8",
512
555
  qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL",
513
- buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL"
556
+ buttonContinue: "\u05D4\u05DE\u05E9\u05DA \u05E2\u05DD ZOREAL",
557
+ openApp: "\u05E4\u05EA\u05D7 \u05D0\u05EA ZOREAL ID"
514
558
  },
515
559
  // Hrvatski
516
560
  hr: {
@@ -519,6 +563,7 @@ var TRANSLATIONS = {
519
563
  titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
520
564
  titleApprove: "Odobrite na svom mobitelu",
521
565
  bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
566
+ bodyLink: "Odobrite ovu prijavu u aplikaciji ZOREAL ID na ovom telefonu.",
522
567
  bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
523
568
  bodyEnrolling: "Dovr\u0161ite postavljanje ZOREAL ID-a na svom mobitelu, a zatim odobrite prijavu.",
524
569
  waiting: "\u010Ceka se skeniranje",
@@ -530,7 +575,8 @@ var TRANSLATIONS = {
530
575
  cancel: "Odustani",
531
576
  close: "Zatvori",
532
577
  qrAlt: "QR kod za prijavu putem ZOREAL-a",
533
- buttonContinue: "Nastavi sa ZOREAL-om"
578
+ buttonContinue: "Nastavi sa ZOREAL-om",
579
+ openApp: "Otvori ZOREAL ID"
534
580
  },
535
581
  // Magyar
536
582
  hu: {
@@ -539,6 +585,7 @@ var TRANSLATIONS = {
539
585
  titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
540
586
  titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
541
587
  bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
588
+ bodyLink: "Hagyja j\xF3v\xE1 ezt a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban ezen a telefonon.",
542
589
  bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
543
590
  bodyEnrolling: "Fejezze be a ZOREAL ID be\xE1ll\xEDt\xE1s\xE1t a telefonj\xE1n, majd hagyja j\xF3v\xE1 a bejelentkez\xE9st.",
544
591
  waiting: "V\xE1rakoz\xE1s beolvas\xE1sra",
@@ -550,7 +597,8 @@ var TRANSLATIONS = {
550
597
  cancel: "M\xE9gse",
551
598
  close: "Bez\xE1r\xE1s",
552
599
  qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
553
- buttonContinue: "Folytat\xE1s a ZOREAL-lal"
600
+ buttonContinue: "Folytat\xE1s a ZOREAL-lal",
601
+ openApp: "ZOREAL ID megnyit\xE1sa"
554
602
  },
555
603
  // Bahasa Indonesia
556
604
  id: {
@@ -559,6 +607,7 @@ var TRANSLATIONS = {
559
607
  titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
560
608
  titleApprove: "Setujui di ponsel Anda",
561
609
  bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
610
+ bodyLink: "Setujui masuk ini di aplikasi ZOREAL ID pada ponsel ini.",
562
611
  bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
563
612
  bodyEnrolling: "Selesaikan pengaturan ZOREAL ID di ponsel Anda, lalu setujui proses masuk.",
564
613
  waiting: "Menunggu pemindaian",
@@ -570,7 +619,8 @@ var TRANSLATIONS = {
570
619
  cancel: "Batal",
571
620
  close: "Tutup",
572
621
  qrAlt: "Kode QR untuk masuk dengan ZOREAL",
573
- buttonContinue: "Lanjutkan dengan ZOREAL"
622
+ buttonContinue: "Lanjutkan dengan ZOREAL",
623
+ openApp: "Buka ZOREAL ID"
574
624
  },
575
625
  // Italiano
576
626
  it: {
@@ -579,6 +629,7 @@ var TRANSLATIONS = {
579
629
  titlePresence: "Scansiona per dimostrare di essere una persona reale",
580
630
  titleApprove: "Approva sul tuo telefono",
581
631
  bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
632
+ bodyLink: "Approva questo accesso nell'app ZOREAL ID su questo telefono.",
582
633
  bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
583
634
  bodyEnrolling: "Completa la configurazione di ZOREAL ID sul telefono, poi approva l'accesso.",
584
635
  waiting: "In attesa della scansione",
@@ -590,7 +641,8 @@ var TRANSLATIONS = {
590
641
  cancel: "Annulla",
591
642
  close: "Chiudi",
592
643
  qrAlt: "Codice QR per accedere con ZOREAL",
593
- buttonContinue: "Continua con ZOREAL"
644
+ buttonContinue: "Continua con ZOREAL",
645
+ openApp: "Apri ZOREAL ID"
594
646
  },
595
647
  // Bahasa Melayu
596
648
  ms: {
@@ -599,6 +651,7 @@ var TRANSLATIONS = {
599
651
  titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
600
652
  titleApprove: "Luluskan di telefon anda",
601
653
  bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
654
+ bodyLink: "Luluskan log masuk ini dalam aplikasi ZOREAL ID pada telefon ini.",
602
655
  bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
603
656
  bodyEnrolling: "Selesaikan persediaan ZOREAL ID di telefon anda, kemudian luluskan log masuk.",
604
657
  waiting: "Menunggu imbasan",
@@ -610,7 +663,8 @@ var TRANSLATIONS = {
610
663
  cancel: "Batal",
611
664
  close: "Tutup",
612
665
  qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
613
- buttonContinue: "Teruskan dengan ZOREAL"
666
+ buttonContinue: "Teruskan dengan ZOREAL",
667
+ openApp: "Buka ZOREAL ID"
614
668
  },
615
669
  // Nederlands
616
670
  nl: {
@@ -619,6 +673,7 @@ var TRANSLATIONS = {
619
673
  titlePresence: "Scan om te bewijzen dat je een echt mens bent",
620
674
  titleApprove: "Keur goed op je telefoon",
621
675
  bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
676
+ bodyLink: "Keur deze aanmelding goed in de ZOREAL ID-app op deze telefoon.",
622
677
  bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
623
678
  bodyEnrolling: "Rond het instellen van ZOREAL ID op je telefoon af en keur daarna de aanmelding goed.",
624
679
  waiting: "Wachten op scan",
@@ -630,7 +685,8 @@ var TRANSLATIONS = {
630
685
  cancel: "Annuleren",
631
686
  close: "Sluiten",
632
687
  qrAlt: "QR-code om in te loggen met ZOREAL",
633
- buttonContinue: "Doorgaan met ZOREAL"
688
+ buttonContinue: "Doorgaan met ZOREAL",
689
+ openApp: "ZOREAL ID openen"
634
690
  },
635
691
  // Norsk
636
692
  no: {
@@ -639,6 +695,7 @@ var TRANSLATIONS = {
639
695
  titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
640
696
  titleApprove: "Godkjenn p\xE5 telefonen din",
641
697
  bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
698
+ bodyLink: "Godkjenn denne innloggingen i ZOREAL ID-appen p\xE5 denne telefonen.",
642
699
  bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
643
700
  bodyEnrolling: "Fullf\xF8r oppsettet av ZOREAL ID p\xE5 telefonen din, og godkjenn deretter innloggingen.",
644
701
  waiting: "Venter p\xE5 skanning",
@@ -650,7 +707,8 @@ var TRANSLATIONS = {
650
707
  cancel: "Avbryt",
651
708
  close: "Lukk",
652
709
  qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
653
- buttonContinue: "Fortsett med ZOREAL"
710
+ buttonContinue: "Fortsett med ZOREAL",
711
+ openApp: "\xC5pne ZOREAL ID"
654
712
  },
655
713
  // Polski
656
714
  pl: {
@@ -659,6 +717,7 @@ var TRANSLATIONS = {
659
717
  titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
660
718
  titleApprove: "Zatwierd\u017A w telefonie",
661
719
  bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
720
+ bodyLink: "Zatwierd\u017A to logowanie w aplikacji ZOREAL ID na tym telefonie.",
662
721
  bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
663
722
  bodyEnrolling: "Doko\u0144cz konfiguracj\u0119 ZOREAL ID w telefonie, a nast\u0119pnie zatwierd\u017A logowanie.",
664
723
  waiting: "Czekanie na skan",
@@ -670,7 +729,8 @@ var TRANSLATIONS = {
670
729
  cancel: "Anuluj",
671
730
  close: "Zamknij",
672
731
  qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
673
- buttonContinue: "Kontynuuj z ZOREAL"
732
+ buttonContinue: "Kontynuuj z ZOREAL",
733
+ openApp: "Otw\xF3rz ZOREAL ID"
674
734
  },
675
735
  // Português (BR)
676
736
  "pt-br": {
@@ -679,6 +739,7 @@ var TRANSLATIONS = {
679
739
  titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
680
740
  titleApprove: "Aprove no seu celular",
681
741
  bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
742
+ bodyLink: "Aprove este login no app ZOREAL ID neste celular.",
682
743
  bodyApprove: "Aprove o login no app ZOREAL ID.",
683
744
  bodyEnrolling: "Termine de configurar o ZOREAL ID no seu celular e depois aprove o login.",
684
745
  waiting: "Aguardando escaneamento",
@@ -690,7 +751,8 @@ var TRANSLATIONS = {
690
751
  cancel: "Cancelar",
691
752
  close: "Fechar",
692
753
  qrAlt: "C\xF3digo QR para entrar com ZOREAL",
693
- buttonContinue: "Continuar com ZOREAL"
754
+ buttonContinue: "Continuar com ZOREAL",
755
+ openApp: "Abrir ZOREAL ID"
694
756
  },
695
757
  // Română
696
758
  ro: {
@@ -699,6 +761,7 @@ var TRANSLATIONS = {
699
761
  titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
700
762
  titleApprove: "Aproba\u021Bi de pe telefon",
701
763
  bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
764
+ bodyLink: "Aproba\u021Bi aceast\u0103 conectare \xEEn aplica\u021Bia ZOREAL ID de pe acest telefon.",
702
765
  bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
703
766
  bodyEnrolling: "Finaliza\u021Bi configurarea ZOREAL ID pe telefon, apoi aproba\u021Bi conectarea.",
704
767
  waiting: "Se a\u0219teapt\u0103 scanarea",
@@ -710,7 +773,8 @@ var TRANSLATIONS = {
710
773
  cancel: "Anuleaz\u0103",
711
774
  close: "\xCEnchide",
712
775
  qrAlt: "Cod QR pentru conectare cu ZOREAL",
713
- buttonContinue: "Continua\u021Bi cu ZOREAL"
776
+ buttonContinue: "Continua\u021Bi cu ZOREAL",
777
+ openApp: "Deschide\u021Bi ZOREAL ID"
714
778
  },
715
779
  // Српски
716
780
  sr: {
@@ -719,6 +783,7 @@ var TRANSLATIONS = {
719
783
  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",
720
784
  titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
721
785
  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.",
786
+ 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.",
722
787
  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.",
723
788
  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.",
724
789
  waiting: "\u0427\u0435\u043A\u0430 \u0441\u0435 \u0441\u043A\u0435\u043D\u0438\u0440\u0430\u045A\u0435",
@@ -730,7 +795,8 @@ var TRANSLATIONS = {
730
795
  cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
731
796
  close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
732
797
  qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430",
733
- buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C"
798
+ buttonContinue: "\u041D\u0430\u0441\u0442\u0430\u0432\u0438 \u0441\u0430 ZOREAL-\u043E\u043C",
799
+ openApp: "\u041E\u0442\u0432\u043E\u0440\u0438 ZOREAL ID"
734
800
  },
735
801
  // ไทย
736
802
  th: {
@@ -739,6 +805,7 @@ var TRANSLATIONS = {
739
805
  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",
740
806
  titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
741
807
  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",
808
+ 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",
742
809
  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",
743
810
  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",
744
811
  waiting: "\u0E23\u0E2D\u0E01\u0E32\u0E23\u0E2A\u0E41\u0E01\u0E19",
@@ -750,7 +817,8 @@ var TRANSLATIONS = {
750
817
  cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
751
818
  close: "\u0E1B\u0E34\u0E14",
752
819
  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",
753
- buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL"
820
+ buttonContinue: "\u0E14\u0E33\u0E40\u0E19\u0E34\u0E19\u0E01\u0E32\u0E23\u0E15\u0E48\u0E2D\u0E14\u0E49\u0E27\u0E22 ZOREAL",
821
+ openApp: "\u0E40\u0E1B\u0E34\u0E14 ZOREAL ID"
754
822
  },
755
823
  // Tagalog
756
824
  tl: {
@@ -759,6 +827,7 @@ var TRANSLATIONS = {
759
827
  titlePresence: "I-scan para patunayang tunay kang tao",
760
828
  titleApprove: "I-approve sa iyong telepono",
761
829
  bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
830
+ bodyLink: "Aprubahan ang pag-sign in na ito sa ZOREAL ID app sa teleponong ito.",
762
831
  bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
763
832
  bodyEnrolling: "Tapusin muna ang pag-set up ng ZOREAL ID sa iyong telepono, pagkatapos ay i-approve ang login.",
764
833
  waiting: "Naghihintay ng scan",
@@ -770,7 +839,8 @@ var TRANSLATIONS = {
770
839
  cancel: "Kanselahin",
771
840
  close: "Isara",
772
841
  qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
773
- buttonContinue: "Magpatuloy gamit ang ZOREAL"
842
+ buttonContinue: "Magpatuloy gamit ang ZOREAL",
843
+ openApp: "Buksan ang ZOREAL ID"
774
844
  },
775
845
  // Türkçe
776
846
  tr: {
@@ -779,6 +849,7 @@ var TRANSLATIONS = {
779
849
  titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
780
850
  titleApprove: "Telefonunuzdan onaylay\u0131n",
781
851
  bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
852
+ bodyLink: "Bu giri\u015Fi bu telefondaki ZOREAL ID uygulamas\u0131nda onaylay\u0131n.",
782
853
  bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
783
854
  bodyEnrolling: "Telefonunuzda ZOREAL ID kurulumunu tamamlay\u0131n, ard\u0131ndan giri\u015Fi onaylay\u0131n.",
784
855
  waiting: "Tarama bekleniyor",
@@ -790,7 +861,8 @@ var TRANSLATIONS = {
790
861
  cancel: "\u0130ptal",
791
862
  close: "Kapat",
792
863
  qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
793
- buttonContinue: "ZOREAL ile devam et"
864
+ buttonContinue: "ZOREAL ile devam et",
865
+ openApp: "ZOREAL ID'yi a\xE7"
794
866
  },
795
867
  // Українська
796
868
  uk: {
@@ -799,6 +871,7 @@ var TRANSLATIONS = {
799
871
  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",
800
872
  titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
801
873
  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.",
874
+ 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.",
802
875
  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.",
803
876
  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.",
804
877
  waiting: "\u041E\u0447\u0456\u043A\u0443\u0432\u0430\u043D\u043D\u044F \u0441\u043A\u0430\u043D\u0443\u0432\u0430\u043D\u043D\u044F",
@@ -810,7 +883,8 @@ var TRANSLATIONS = {
810
883
  cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
811
884
  close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
812
885
  qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL",
813
- buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL"
886
+ buttonContinue: "\u041F\u0440\u043E\u0434\u043E\u0432\u0436\u0438\u0442\u0438 \u0437 ZOREAL",
887
+ openApp: "\u0412\u0456\u0434\u043A\u0440\u0438\u0442\u0438 ZOREAL ID"
814
888
  },
815
889
  // اردو
816
890
  ur: {
@@ -819,6 +893,7 @@ var TRANSLATIONS = {
819
893
  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",
820
894
  titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
821
895
  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",
896
+ 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",
822
897
  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",
823
898
  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",
824
899
  waiting: "\u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0627 \u0627\u0646\u062A\u0638\u0627\u0631",
@@ -830,7 +905,8 @@ var TRANSLATIONS = {
830
905
  cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
831
906
  close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
832
907
  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",
833
- buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA"
908
+ buttonContinue: "ZOREAL \u06A9\u06D2 \u0633\u0627\u062A\u06BE \u062C\u0627\u0631\u06CC \u0631\u06A9\u06BE\u06CC\u06BA",
909
+ openApp: "ZOREAL ID \u06A9\u06BE\u0648\u0644\u06CC\u06BA"
834
910
  },
835
911
  // Tiếng Việt
836
912
  vi: {
@@ -839,6 +915,7 @@ var TRANSLATIONS = {
839
915
  titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
840
916
  titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
841
917
  bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
918
+ 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.",
842
919
  bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
843
920
  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.",
844
921
  waiting: "\u0110ang ch\u1EDD qu\xE9t m\xE3",
@@ -850,7 +927,8 @@ var TRANSLATIONS = {
850
927
  cancel: "H\u1EE7y",
851
928
  close: "\u0110\xF3ng",
852
929
  qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
853
- buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
930
+ buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL",
931
+ openApp: "M\u1EDF ZOREAL ID"
854
932
  }
855
933
  };
856
934
  var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
@@ -1171,12 +1249,58 @@ var CSS = `
1171
1249
  dim glow. Paused rather than removed, so it does not jump back to its start
1172
1250
  on the way out. */
1173
1251
  .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::after,
1174
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after {
1252
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::after,
1253
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::after,
1254
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::after {
1175
1255
  animation-play-state: paused;
1176
1256
  opacity: 0;
1177
1257
  }
1178
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1179
- .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1258
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam::before,
1259
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam::before { opacity: 0.55; }
1260
+ .${PREFIX}-qr-well[data-spent="true"] .${PREFIX}-qr-beam-glow-band::before,
1261
+ .${PREFIX}-link-well[data-ready="true"] .${PREFIX}-qr-beam-glow-band::before { opacity: 0.7; }
1262
+
1263
+ /* Same device: no code to scan. A round well with the mark carries the same
1264
+ light while the sign-in is being created, and settles once the link below
1265
+ it is ready to tap. A circle keeps the sweep even all the way round. */
1266
+ .${PREFIX}-link-well {
1267
+ position: relative;
1268
+ display: grid;
1269
+ place-items: center;
1270
+ box-sizing: border-box;
1271
+ width: 112px;
1272
+ height: 112px;
1273
+ margin: 20px auto 0;
1274
+ border: 1px solid var(--zrl-line);
1275
+ border-radius: 999px;
1276
+ background: var(--zrl-surface-sunken);
1277
+ --zrl-radius: 56px;
1278
+ --zrl-beam-time: 4s;
1279
+ }
1280
+ .${PREFIX}-link-well svg { position: relative; }
1281
+
1282
+ /* The control that opens the app: a real link, because a browser hands a
1283
+ link to an app only from a tap. It has no address until the sign-in
1284
+ exists, and reads as disabled until then. */
1285
+ .${PREFIX}-open {
1286
+ display: block;
1287
+ box-sizing: border-box;
1288
+ width: 100%;
1289
+ margin: 20px 0 0;
1290
+ padding: 12px 16px;
1291
+ border-radius: 12px;
1292
+ background: var(--zrl-accent);
1293
+ color: #ffffff;
1294
+ font: inherit;
1295
+ font-size: 15px;
1296
+ font-weight: 600;
1297
+ text-align: center;
1298
+ text-decoration: none;
1299
+ cursor: pointer;
1300
+ transition: opacity 200ms ease-out, transform 150ms ease-out;
1301
+ }
1302
+ .${PREFIX}-open:active { transform: scale(0.99); }
1303
+ .${PREFIX}-open[aria-disabled="true"] { opacity: 0.45; cursor: default; pointer-events: none; }
1180
1304
 
1181
1305
  .${PREFIX}-qr {
1182
1306
  display: block;
@@ -1354,7 +1478,7 @@ function ensureStyles() {
1354
1478
  }
1355
1479
 
1356
1480
  // src/PairingModal.tsx
1357
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
1481
+ import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
1358
1482
  var DEFAULT_PAIRING_TIMEOUT_MS = 12e4;
1359
1483
  var URGENT_SECONDS = 20;
1360
1484
  function mmss(totalSeconds) {
@@ -1386,9 +1510,11 @@ function PairingModal({
1386
1510
  const deadlineRef = useRef(0);
1387
1511
  const [remaining, setRemaining] = useState(Math.round(timeoutMs / 1e3));
1388
1512
  const settled = state.status === "claimed" || state.status === "enrolling";
1513
+ const linkMode = state.appLink === true;
1514
+ const ready = linkMode && Boolean(state.pairUrl);
1389
1515
  const [frameUrl, setFrameUrl] = useState(qrUrl);
1390
1516
  useEffect(() => {
1391
- if (settled || frameUrl === qrUrl) return;
1517
+ if (linkMode || settled || frameUrl === qrUrl) return;
1392
1518
  let abandoned = false;
1393
1519
  const next = new Image();
1394
1520
  next.onload = () => {
@@ -1402,7 +1528,7 @@ function PairingModal({
1402
1528
  next.onload = null;
1403
1529
  next.onerror = null;
1404
1530
  };
1405
- }, [qrUrl, settled, frameUrl]);
1531
+ }, [qrUrl, settled, frameUrl, linkMode]);
1406
1532
  const onCancelRef = useRef(onCancel);
1407
1533
  onCancelRef.current = onCancel;
1408
1534
  useEffect(() => {
@@ -1436,7 +1562,7 @@ function PairingModal({
1436
1562
  };
1437
1563
  }, []);
1438
1564
  if (typeof document === "undefined") return null;
1439
- const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : t.bodyScan;
1565
+ const body = state.status === "enrolling" ? t.bodyEnrolling : settled ? t.bodyApprove : linkMode ? t.bodyLink : t.bodyScan;
1440
1566
  return createPortal(
1441
1567
  /* @__PURE__ */ jsx3("div", { className: `${cx("root")} ${cx("scrim")}`, "data-theme": theme, onClick: onCancel, children: /* @__PURE__ */ jsxs3(
1442
1568
  "div",
@@ -1453,13 +1579,30 @@ function PairingModal({
1453
1579
  /* @__PURE__ */ jsx3(ZorealLockup, { height: 44, className: cx("lockup") }),
1454
1580
  /* @__PURE__ */ jsx3("h2", { id: titleId, className: cx("title"), children: settled ? t.titleApprove : titleFor(t, intent) }),
1455
1581
  /* @__PURE__ */ jsx3("p", { className: cx("body-text"), children: body }),
1456
- /* @__PURE__ */ jsxs3("div", { className: cx("qr-well"), "data-spent": settled, children: [
1582
+ linkMode ? /* @__PURE__ */ jsxs3(Fragment, { children: [
1583
+ /* @__PURE__ */ jsxs3("div", { className: cx("link-well"), "data-ready": ready, children: [
1584
+ /* @__PURE__ */ jsx3("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ jsx3("span", { className: cx("qr-beam-glow-band") }) }),
1585
+ /* @__PURE__ */ jsx3("span", { className: cx("qr-beam"), "aria-hidden": true }),
1586
+ /* @__PURE__ */ jsx3(ZorealMark, { size: 48 })
1587
+ ] }),
1588
+ /* @__PURE__ */ jsx3(
1589
+ "a",
1590
+ {
1591
+ className: cx("open"),
1592
+ href: ready ? state.pairUrl : void 0,
1593
+ target: "_blank",
1594
+ rel: "noopener",
1595
+ "aria-disabled": ready ? void 0 : true,
1596
+ children: t.openApp
1597
+ }
1598
+ )
1599
+ ] }) : /* @__PURE__ */ jsxs3("div", { className: cx("qr-well"), "data-spent": settled, children: [
1457
1600
  /* @__PURE__ */ jsx3("span", { className: cx("qr-beam-glow"), "aria-hidden": true, children: /* @__PURE__ */ jsx3("span", { className: cx("qr-beam-glow-band") }) }),
1458
1601
  /* @__PURE__ */ jsx3("span", { className: cx("qr-beam"), "aria-hidden": true }),
1459
1602
  /* @__PURE__ */ jsx3("img", { className: cx("qr"), "data-spent": settled, src: frameUrl, alt: t.qrAlt, width: 180, height: 180 }),
1460
1603
  settled && /* @__PURE__ */ jsx3("span", { className: cx("qr-overlay"), children: /* @__PURE__ */ jsx3("span", { className: cx("qr-badge"), children: /* @__PURE__ */ jsx3(IconPhone, {}) }) })
1461
1604
  ] }),
1462
- /* @__PURE__ */ jsxs3("div", { className: cx("status"), children: [
1605
+ (!linkMode || settled) && /* @__PURE__ */ jsxs3("div", { className: cx("status"), children: [
1463
1606
  /* @__PURE__ */ jsxs3("span", { className: cx("dot"), children: [
1464
1607
  /* @__PURE__ */ jsx3("i", {}),
1465
1608
  /* @__PURE__ */ jsx3("i", {})
@@ -1468,7 +1611,7 @@ function PairingModal({
1468
1611
  ] }),
1469
1612
  /* @__PURE__ */ jsx3("p", { className: cx("timer"), "data-urgent": remaining <= URGENT_SECONDS, children: interpolate(t.expiresIn, mmss(remaining)) })
1470
1613
  ] }),
1471
- /* @__PURE__ */ jsxs3("div", { className: cx("help"), children: [
1614
+ !linkMode && /* @__PURE__ */ jsxs3("div", { className: cx("help"), children: [
1472
1615
  /* @__PURE__ */ jsx3("p", { className: cx("help-title"), children: t.noIdTitle }),
1473
1616
  /* @__PURE__ */ jsx3("p", { className: cx("help-body"), children: t.noIdBody })
1474
1617
  ] }),
@@ -1769,6 +1912,18 @@ function useZorealFlow(options) {
1769
1912
  const useAppLink = display === "link";
1770
1913
  const intent = resolveIntent(opts.intent, opts.scope, opts.acr_values);
1771
1914
  try {
1915
+ if (useAppLink) {
1916
+ const cancel = () => {
1917
+ controller.abort();
1918
+ publishRef.current?.(null);
1919
+ };
1920
+ publishRef.current?.({
1921
+ state: { status: "pending", appLink: true, intent, cancel },
1922
+ qrUrl: "",
1923
+ intent,
1924
+ cancel
1925
+ });
1926
+ }
1772
1927
  const started = await startPairing(issuer, {
1773
1928
  client_id: clientId,
1774
1929
  scope: opts.scope ?? "openid",
@@ -1813,13 +1968,8 @@ function useZorealFlow(options) {
1813
1968
  cancel
1814
1969
  };
1815
1970
  setPairing(active);
1816
- if (!useAppLink) {
1817
- publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1818
- }
1971
+ publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
1819
1972
  opts.onPairingStateChange?.(active.state);
1820
- if (useAppLink) {
1821
- window.location.assign(started.pair_url);
1822
- }
1823
1973
  code = await pollUntilApproved(
1824
1974
  issuer,
1825
1975
  started.request_id,
@@ -1829,9 +1979,7 @@ function useZorealFlow(options) {
1829
1979
  setPairing(
1830
1980
  (p) => p && p.requestId === started.request_id ? { ...p, qrUrl, state: enriched } : p
1831
1981
  );
1832
- if (!useAppLink) {
1833
- publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1834
- }
1982
+ publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
1835
1983
  opts.onPairingStateChange?.(enriched);
1836
1984
  },
1837
1985
  controller.signal,