@zoreal/oauth2-react 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -2
- package/dist/index.cjs +242 -118
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +26 -2
- package/dist/index.d.ts +26 -2
- package/dist/index.js +241 -118
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -27,6 +27,7 @@ __export(index_exports, {
|
|
|
27
27
|
ZorealOAuthProvider: () => ZorealOAuthProvider,
|
|
28
28
|
hasGrantedAllScopesZoreal: () => hasGrantedAllScopesZoreal,
|
|
29
29
|
hasGrantedAnyScopeZoreal: () => hasGrantedAnyScopeZoreal,
|
|
30
|
+
resolveIntent: () => resolveIntent,
|
|
30
31
|
useZorealAutoLogin: () => useZorealAutoLogin,
|
|
31
32
|
useZorealLogin: () => useZorealLogin,
|
|
32
33
|
useZorealOAuth: () => useZorealOAuth,
|
|
@@ -39,7 +40,7 @@ var import_react2 = require("react");
|
|
|
39
40
|
|
|
40
41
|
// src/wire.ts
|
|
41
42
|
var WIRE_VERSION = 1;
|
|
42
|
-
var SDK_VERSION = "0.2.
|
|
43
|
+
var SDK_VERSION = "0.2.13";
|
|
43
44
|
var DEFAULT_ISSUER = "https://id.zoreal.com";
|
|
44
45
|
var POLL_INTERVAL_MS = 2e3;
|
|
45
46
|
var POLL_INTERVAL_ENROLLING_MS = 5e3;
|
|
@@ -119,6 +120,8 @@ function ZorealLockup({ height = 22, className }) {
|
|
|
119
120
|
// src/i18n.ts
|
|
120
121
|
var en = {
|
|
121
122
|
title: "Scan to sign in",
|
|
123
|
+
titleIdentify: "Scan to verify your identity",
|
|
124
|
+
titlePresence: "Scan to prove you are a real human",
|
|
122
125
|
titleApprove: "Approve on your phone",
|
|
123
126
|
bodyScan: "Scan with your phone camera or the ZOREAL ID app.",
|
|
124
127
|
bodyApprove: "Approve the login in your ZOREAL ID app.",
|
|
@@ -131,12 +134,15 @@ var en = {
|
|
|
131
134
|
noIdBody: "Scan the same code to download the app and create one for free. It only takes a minute.",
|
|
132
135
|
cancel: "Cancel",
|
|
133
136
|
close: "Close",
|
|
134
|
-
qrAlt: "QR code to sign in with ZOREAL"
|
|
137
|
+
qrAlt: "QR code to sign in with ZOREAL",
|
|
138
|
+
buttonContinue: "Continue with ZOREAL"
|
|
135
139
|
};
|
|
136
140
|
var TRANSLATIONS = {
|
|
137
141
|
en,
|
|
138
142
|
sv: {
|
|
139
143
|
title: "Skanna f\xF6r att logga in",
|
|
144
|
+
titleIdentify: "Skanna f\xF6r att verifiera din identitet",
|
|
145
|
+
titlePresence: "Skanna f\xF6r att bevisa att du \xE4r en riktig m\xE4nniska",
|
|
140
146
|
titleApprove: "Godk\xE4nn p\xE5 telefonen",
|
|
141
147
|
bodyScan: "Skanna med telefonens kamera eller ZOREAL ID-appen.",
|
|
142
148
|
bodyApprove: "Godk\xE4nn inloggningen i ZOREAL ID-appen.",
|
|
@@ -149,10 +155,13 @@ var TRANSLATIONS = {
|
|
|
149
155
|
noIdBody: "Skanna samma kod f\xF6r att ladda ner appen och skapa ett gratis. Det tar bara en minut.",
|
|
150
156
|
cancel: "Avbryt",
|
|
151
157
|
close: "St\xE4ng",
|
|
152
|
-
qrAlt: "QR-kod f\xF6r att logga in med ZOREAL"
|
|
158
|
+
qrAlt: "QR-kod f\xF6r att logga in med ZOREAL",
|
|
159
|
+
buttonContinue: "Forts\xE4tt med ZOREAL"
|
|
153
160
|
},
|
|
154
161
|
es: {
|
|
155
162
|
title: "Escanea para iniciar sesi\xF3n",
|
|
163
|
+
titleIdentify: "Escanea para verificar tu identidad",
|
|
164
|
+
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
156
165
|
titleApprove: "Apru\xE9balo en tu tel\xE9fono",
|
|
157
166
|
bodyScan: "Escanea con la c\xE1mara de tu tel\xE9fono o con la app ZOREAL ID.",
|
|
158
167
|
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
@@ -165,10 +174,13 @@ var TRANSLATIONS = {
|
|
|
165
174
|
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear una gratis. Solo toma un minuto.",
|
|
166
175
|
cancel: "Cancelar",
|
|
167
176
|
close: "Cerrar",
|
|
168
|
-
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL"
|
|
177
|
+
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
178
|
+
buttonContinue: "Continuar con ZOREAL"
|
|
169
179
|
},
|
|
170
180
|
pt: {
|
|
171
181
|
title: "Digitalize para entrar",
|
|
182
|
+
titleIdentify: "Digitalize para verificar a sua identidade",
|
|
183
|
+
titlePresence: "Digitalize para provar que \xE9 uma pessoa real",
|
|
172
184
|
titleApprove: "Aprove no seu telefone",
|
|
173
185
|
bodyScan: "Digitalize com a c\xE2mara do seu telefone ou com a app ZOREAL ID.",
|
|
174
186
|
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
@@ -181,10 +193,13 @@ var TRANSLATIONS = {
|
|
|
181
193
|
noIdBody: "Digitalize o mesmo c\xF3digo para baixar o app e criar uma conta gr\xE1tis. Leva s\xF3 um minuto.",
|
|
182
194
|
cancel: "Cancelar",
|
|
183
195
|
close: "Fechar",
|
|
184
|
-
qrAlt: "C\xF3digo QR para entrar com ZOREAL"
|
|
196
|
+
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
197
|
+
buttonContinue: "Continuar com ZOREAL"
|
|
185
198
|
},
|
|
186
199
|
fr: {
|
|
187
200
|
title: "Scannez pour vous connecter",
|
|
201
|
+
titleIdentify: "Scannez pour v\xE9rifier votre identit\xE9",
|
|
202
|
+
titlePresence: "Scannez pour prouver que vous \xEAtes bien un humain",
|
|
188
203
|
titleApprove: "Approuvez sur votre t\xE9l\xE9phone",
|
|
189
204
|
bodyScan: "Scannez avec l'appareil photo de votre t\xE9l\xE9phone ou l'app ZOREAL ID.",
|
|
190
205
|
bodyApprove: "Approuvez la connexion dans votre app ZOREAL ID.",
|
|
@@ -197,10 +212,13 @@ var TRANSLATIONS = {
|
|
|
197
212
|
noIdBody: "Scannez le m\xEAme code pour t\xE9l\xE9charger l'app et en cr\xE9er un gratuitement. Cela prend une minute.",
|
|
198
213
|
cancel: "Annuler",
|
|
199
214
|
close: "Fermer",
|
|
200
|
-
qrAlt: "Code QR pour se connecter avec ZOREAL"
|
|
215
|
+
qrAlt: "Code QR pour se connecter avec ZOREAL",
|
|
216
|
+
buttonContinue: "Continuer avec ZOREAL"
|
|
201
217
|
},
|
|
202
218
|
de: {
|
|
203
219
|
title: "Zum Anmelden scannen",
|
|
220
|
+
titleIdentify: "Scannen, um Ihre Identit\xE4t zu verifizieren",
|
|
221
|
+
titlePresence: "Scannen, um zu beweisen, dass Sie ein echter Mensch sind",
|
|
204
222
|
titleApprove: "Auf dem Handy best\xE4tigen",
|
|
205
223
|
bodyScan: "Mit der Handykamera oder der ZOREAL ID App scannen.",
|
|
206
224
|
bodyApprove: "Anmeldung in der ZOREAL ID App best\xE4tigen.",
|
|
@@ -213,10 +231,13 @@ var TRANSLATIONS = {
|
|
|
213
231
|
noIdBody: "Denselben Code scannen, um die App zu laden und kostenlos eine zu erstellen. Dauert nur eine Minute.",
|
|
214
232
|
cancel: "Abbrechen",
|
|
215
233
|
close: "Schlie\xDFen",
|
|
216
|
-
qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL"
|
|
234
|
+
qrAlt: "QR-Code f\xFCr die Anmeldung mit ZOREAL",
|
|
235
|
+
buttonContinue: "Weiter mit ZOREAL"
|
|
217
236
|
},
|
|
218
237
|
ru: {
|
|
219
238
|
title: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u0432\u043E\u0439\u0442\u0438",
|
|
239
|
+
titleIdentify: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435, \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C \u043B\u0438\u0447\u043D\u043E\u0441\u0442\u044C",
|
|
240
|
+
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",
|
|
220
241
|
titleApprove: "\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0435",
|
|
221
242
|
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.",
|
|
222
243
|
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.",
|
|
@@ -229,10 +250,13 @@ var TRANSLATIONS = {
|
|
|
229
250
|
noIdBody: "\u041E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u0443\u0439\u0442\u0435 \u0442\u043E\u0442 \u0436\u0435 \u043A\u043E\u0434, \u0447\u0442\u043E\u0431\u044B \u0441\u043A\u0430\u0447\u0430\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0438 \u0441\u043E\u0437\u0434\u0430\u0442\u044C \u0435\u0433\u043E \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E. \u042D\u0442\u043E \u0437\u0430\u0439\u043C\u0451\u0442 \u043C\u0438\u043D\u0443\u0442\u0443.",
|
|
230
251
|
cancel: "\u041E\u0442\u043C\u0435\u043D\u0430",
|
|
231
252
|
close: "\u0417\u0430\u043A\u0440\u044B\u0442\u044C",
|
|
232
|
-
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0430 \u0447\u0435\u0440\u0435\u0437 ZOREAL"
|
|
253
|
+
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"
|
|
233
255
|
},
|
|
234
256
|
ja: {
|
|
235
257
|
title: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30ED\u30B0\u30A4\u30F3",
|
|
258
|
+
titleIdentify: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u672C\u4EBA\u78BA\u8A8D",
|
|
259
|
+
titlePresence: "\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u5B9F\u5728\u306E\u4EBA\u7269\u3067\u3042\u308B\u3053\u3068\u3092\u8A3C\u660E",
|
|
236
260
|
titleApprove: "\u30B9\u30DE\u30FC\u30C8\u30D5\u30A9\u30F3\u3067\u627F\u8A8D",
|
|
237
261
|
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",
|
|
238
262
|
bodyApprove: "ZOREAL ID\u30A2\u30D7\u30EA\u3067\u30ED\u30B0\u30A4\u30F3\u3092\u627F\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002",
|
|
@@ -245,10 +269,13 @@ var TRANSLATIONS = {
|
|
|
245
269
|
noIdBody: "\u540C\u3058\u30B3\u30FC\u30C9\u3092\u30B9\u30AD\u30E3\u30F3\u3057\u3066\u30A2\u30D7\u30EA\u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\u3057\u3001\u7121\u6599\u3067\u4F5C\u6210\u3067\u304D\u307E\u3059\u30021\u5206\u307B\u3069\u3067\u5B8C\u4E86\u3057\u307E\u3059\u3002",
|
|
246
270
|
cancel: "\u30AD\u30E3\u30F3\u30BB\u30EB",
|
|
247
271
|
close: "\u9589\u3058\u308B",
|
|
248
|
-
qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9"
|
|
272
|
+
qrAlt: "ZOREAL\u3067\u30ED\u30B0\u30A4\u30F3\u3059\u308B\u305F\u3081\u306EQR\u30B3\u30FC\u30C9",
|
|
273
|
+
buttonContinue: "ZOREAL\u3067\u7D9A\u884C"
|
|
249
274
|
},
|
|
250
275
|
hi: {
|
|
251
276
|
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",
|
|
277
|
+
titleIdentify: "\u0905\u092A\u0928\u0940 \u092A\u0939\u091A\u093E\u0928 \u0938\u0924\u094D\u092F\u093E\u092A\u093F\u0924 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902",
|
|
278
|
+
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",
|
|
252
279
|
titleApprove: "\u0905\u092A\u0928\u0947 \u092B\u094B\u0928 \u092A\u0930 \u0938\u094D\u0935\u0940\u0915\u0943\u0924 \u0915\u0930\u0947\u0902",
|
|
253
280
|
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",
|
|
254
281
|
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",
|
|
@@ -261,10 +288,13 @@ var TRANSLATIONS = {
|
|
|
261
288
|
noIdBody: "\u0910\u092A \u0921\u093E\u0909\u0928\u0932\u094B\u0921 \u0915\u0930\u0928\u0947 \u0914\u0930 \u092E\u0941\u092B\u094D\u0924 \u092E\u0947\u0902 \u090F\u0915 \u092C\u0928\u093E\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0935\u0939\u0940 \u0915\u094B\u0921 \u0938\u094D\u0915\u0948\u0928 \u0915\u0930\u0947\u0902\u0964 \u0907\u0938\u092E\u0947\u0902 \u092C\u0938 \u090F\u0915 \u092E\u093F\u0928\u091F \u0932\u0917\u0924\u093E \u0939\u0948\u0964",
|
|
262
289
|
cancel: "\u0930\u0926\u094D\u0926 \u0915\u0930\u0947\u0902",
|
|
263
290
|
close: "\u092C\u0902\u0926 \u0915\u0930\u0947\u0902",
|
|
264
|
-
qrAlt: "ZOREAL \u0938\u0947 \u0938\u093E\u0907\u0928 \u0907\u0928 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F QR \u0915\u094B\u0921"
|
|
291
|
+
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"
|
|
265
293
|
},
|
|
266
294
|
zhs: {
|
|
267
295
|
title: "\u626B\u7801\u767B\u5F55",
|
|
296
|
+
titleIdentify: "\u626B\u7801\u9A8C\u8BC1\u8EAB\u4EFD",
|
|
297
|
+
titlePresence: "\u626B\u7801\u8BC1\u660E\u60A8\u662F\u771F\u4EBA",
|
|
268
298
|
titleApprove: "\u5728\u624B\u673A\u4E0A\u6279\u51C6",
|
|
269
299
|
bodyScan: "\u4F7F\u7528\u624B\u673A\u76F8\u673A\u6216 ZOREAL ID \u5E94\u7528\u626B\u63CF\u3002",
|
|
270
300
|
bodyApprove: "\u8BF7\u5728 ZOREAL ID \u5E94\u7528\u4E2D\u6279\u51C6\u767B\u5F55\u3002",
|
|
@@ -277,10 +307,13 @@ var TRANSLATIONS = {
|
|
|
277
307
|
noIdBody: "\u626B\u63CF\u540C\u4E00\u4E2A\u4E8C\u7EF4\u7801\u5373\u53EF\u4E0B\u8F7D\u5E94\u7528\u5E76\u514D\u8D39\u521B\u5EFA\uFF0C\u53EA\u9700\u4E00\u5206\u949F\u3002",
|
|
278
308
|
cancel: "\u53D6\u6D88",
|
|
279
309
|
close: "\u5173\u95ED",
|
|
280
|
-
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801"
|
|
310
|
+
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5F55\u7684\u4E8C\u7EF4\u7801",
|
|
311
|
+
buttonContinue: "\u4F7F\u7528 ZOREAL \u7EE7\u7EED"
|
|
281
312
|
},
|
|
282
313
|
zht: {
|
|
283
314
|
title: "\u6383\u78BC\u767B\u5165",
|
|
315
|
+
titleIdentify: "\u6383\u78BC\u9A57\u8B49\u8EAB\u5206",
|
|
316
|
+
titlePresence: "\u6383\u78BC\u8B49\u660E\u60A8\u662F\u771F\u4EBA",
|
|
284
317
|
titleApprove: "\u5728\u624B\u6A5F\u4E0A\u6838\u51C6",
|
|
285
318
|
bodyScan: "\u4F7F\u7528\u624B\u6A5F\u76F8\u6A5F\u6216 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u6383\u63CF\u3002",
|
|
286
319
|
bodyApprove: "\u8ACB\u5728 ZOREAL ID \u61C9\u7528\u7A0B\u5F0F\u4E2D\u6838\u51C6\u767B\u5165\u3002",
|
|
@@ -293,10 +326,13 @@ var TRANSLATIONS = {
|
|
|
293
326
|
noIdBody: "\u6383\u63CF\u540C\u4E00\u500B QR code \u5373\u53EF\u4E0B\u8F09\u61C9\u7528\u7A0B\u5F0F\u4E26\u514D\u8CBB\u5EFA\u7ACB\uFF0C\u53EA\u9700\u4E00\u5206\u9418\u3002",
|
|
294
327
|
cancel: "\u53D6\u6D88",
|
|
295
328
|
close: "\u95DC\u9589",
|
|
296
|
-
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code"
|
|
329
|
+
qrAlt: "\u4F7F\u7528 ZOREAL \u767B\u5165\u7684 QR code",
|
|
330
|
+
buttonContinue: "\u4F7F\u7528 ZOREAL \u7E7C\u7E8C"
|
|
297
331
|
},
|
|
298
332
|
ar: {
|
|
299
333
|
title: "\u0627\u0645\u0633\u062D \u0644\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644",
|
|
334
|
+
titleIdentify: "\u0627\u0645\u0633\u062D \u0644\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0647\u0648\u064A\u062A\u0643",
|
|
335
|
+
titlePresence: "\u0627\u0645\u0633\u062D \u0644\u0625\u062B\u0628\u0627\u062A \u0623\u0646\u0643 \u0625\u0646\u0633\u0627\u0646 \u062D\u0642\u064A\u0642\u064A",
|
|
300
336
|
titleApprove: "\u0648\u0627\u0641\u0642 \u0639\u0644\u0649 \u0647\u0627\u062A\u0641\u0643",
|
|
301
337
|
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.",
|
|
302
338
|
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.",
|
|
@@ -309,10 +345,13 @@ var TRANSLATIONS = {
|
|
|
309
345
|
noIdBody: "\u0627\u0645\u0633\u062D \u0627\u0644\u0631\u0645\u0632 \u0646\u0641\u0633\u0647 \u0644\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0648\u0625\u0646\u0634\u0627\u0621 \u062D\u0633\u0627\u0628 \u0645\u062C\u0627\u0646\u064A. \u064A\u0633\u062A\u063A\u0631\u0642 \u0627\u0644\u0623\u0645\u0631 \u062F\u0642\u064A\u0642\u0629 \u0648\u0627\u062D\u062F\u0629 \u0641\u0642\u0637.",
|
|
310
346
|
cancel: "\u0625\u0644\u063A\u0627\u0621",
|
|
311
347
|
close: "\u0625\u063A\u0644\u0627\u0642",
|
|
312
|
-
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"
|
|
348
|
+
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"
|
|
313
350
|
},
|
|
314
351
|
ko: {
|
|
315
352
|
title: "\uC2A4\uCE94\uD558\uC5EC \uB85C\uADF8\uC778",
|
|
353
|
+
titleIdentify: "\uC2A4\uCE94\uD558\uC5EC \uC2E0\uC6D0 \uD655\uC778",
|
|
354
|
+
titlePresence: "\uC2A4\uCE94\uD558\uC5EC \uC2E4\uC81C \uC0AC\uB78C\uC784\uC744 \uC99D\uBA85",
|
|
316
355
|
titleApprove: "\uD734\uB300\uD3F0\uC5D0\uC11C \uC2B9\uC778",
|
|
317
356
|
bodyScan: "\uD734\uB300\uD3F0 \uCE74\uBA54\uB77C \uB610\uB294 ZOREAL ID \uC571\uC73C\uB85C \uC2A4\uCE94\uD558\uC138\uC694.",
|
|
318
357
|
bodyApprove: "ZOREAL ID \uC571\uC5D0\uC11C \uB85C\uADF8\uC778\uC744 \uC2B9\uC778\uD558\uC138\uC694.",
|
|
@@ -325,11 +364,14 @@ var TRANSLATIONS = {
|
|
|
325
364
|
noIdBody: "\uAC19\uC740 \uCF54\uB4DC\uB97C \uC2A4\uCE94\uD574 \uC571\uC744 \uB0B4\uB824\uBC1B\uACE0 \uBB34\uB8CC\uB85C \uB9CC\uB4DC\uC138\uC694. 1\uBD84\uC774\uBA74 \uB429\uB2C8\uB2E4.",
|
|
326
365
|
cancel: "\uCDE8\uC18C",
|
|
327
366
|
close: "\uB2EB\uAE30",
|
|
328
|
-
qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC"
|
|
367
|
+
qrAlt: "ZOREAL\uB85C \uB85C\uADF8\uC778\uD558\uAE30 \uC704\uD55C QR \uCF54\uB4DC",
|
|
368
|
+
buttonContinue: "ZOREAL\uB85C \uACC4\uC18D"
|
|
329
369
|
},
|
|
330
370
|
// Български
|
|
331
371
|
bg: {
|
|
332
372
|
title: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0437\u0430 \u0432\u0445\u043E\u0434",
|
|
373
|
+
titleIdentify: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435, \u0437\u0430 \u0434\u0430 \u043F\u043E\u0442\u0432\u044A\u0440\u0434\u0438\u0442\u0435 \u0441\u0430\u043C\u043E\u043B\u0438\u0447\u043D\u043E\u0441\u0442\u0442\u0430 \u0441\u0438",
|
|
374
|
+
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",
|
|
333
375
|
titleApprove: "\u041F\u043E\u0442\u0432\u044A\u0440\u0434\u0435\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0430 \u0441\u0438",
|
|
334
376
|
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.",
|
|
335
377
|
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.",
|
|
@@ -342,11 +384,14 @@ var TRANSLATIONS = {
|
|
|
342
384
|
noIdBody: "\u0421\u043A\u0430\u043D\u0438\u0440\u0430\u0439\u0442\u0435 \u0441\u044A\u0449\u0438\u044F \u043A\u043E\u0434, \u0437\u0430 \u0434\u0430 \u0438\u0437\u0442\u0435\u0433\u043B\u0438\u0442\u0435 \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u0438 \u0434\u0430 \u0441\u0438 \u0441\u044A\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u0431\u0435\u0437\u043F\u043B\u0430\u0442\u0435\u043D \u0430\u043A\u0430\u0443\u043D\u0442. \u041E\u0442\u043D\u0435\u043C\u0430 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442\u0430.",
|
|
343
385
|
cancel: "\u041E\u0442\u043A\u0430\u0437",
|
|
344
386
|
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
345
|
-
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u0432\u0445\u043E\u0434 \u0441\u044A\u0441 ZOREAL"
|
|
387
|
+
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"
|
|
346
389
|
},
|
|
347
390
|
// বাংলা
|
|
348
391
|
bn: {
|
|
349
392
|
title: "\u09B8\u09BE\u0987\u09A8 \u0987\u09A8 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
393
|
+
titleIdentify: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AA\u09B0\u09BF\u099A\u09AF\u09BC \u09AF\u09BE\u099A\u09BE\u0987 \u0995\u09B0\u09A4\u09C7 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
394
|
+
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",
|
|
350
395
|
titleApprove: "\u0986\u09AA\u09A8\u09BE\u09B0 \u09AB\u09CB\u09A8\u09C7 \u0985\u09A8\u09C1\u09AE\u09CB\u09A6\u09A8 \u0995\u09B0\u09C1\u09A8",
|
|
351
396
|
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",
|
|
352
397
|
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",
|
|
@@ -359,11 +404,14 @@ var TRANSLATIONS = {
|
|
|
359
404
|
noIdBody: "\u0985\u09CD\u09AF\u09BE\u09AA \u09A1\u09BE\u0989\u09A8\u09B2\u09CB\u09A1 \u0995\u09B0\u09C7 \u09AC\u09BF\u09A8\u09BE\u09AE\u09C2\u09B2\u09CD\u09AF\u09C7 \u098F\u0995\u099F\u09BF \u09A4\u09C8\u09B0\u09BF \u0995\u09B0\u09A4\u09C7 \u098F\u0995\u0987 \u0995\u09CB\u09A1 \u09B8\u09CD\u0995\u09CD\u09AF\u09BE\u09A8 \u0995\u09B0\u09C1\u09A8\u0964 \u098F\u09A4\u09C7 \u09AE\u09BE\u09A4\u09CD\u09B0 \u098F\u0995 \u09AE\u09BF\u09A8\u09BF\u099F \u09B8\u09AE\u09AF\u09BC \u09B2\u09BE\u0997\u09C7\u0964",
|
|
360
405
|
cancel: "\u09AC\u09BE\u09A4\u09BF\u09B2",
|
|
361
406
|
close: "\u09AC\u09A8\u09CD\u09A7",
|
|
362
|
-
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"
|
|
407
|
+
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"
|
|
363
409
|
},
|
|
364
410
|
// Bosanski
|
|
365
411
|
bs: {
|
|
366
412
|
title: "Skenirajte za prijavu",
|
|
413
|
+
titleIdentify: "Skenirajte da potvrdite svoj identitet",
|
|
414
|
+
titlePresence: "Skenirajte da doka\u017Eete da ste stvarna osoba",
|
|
367
415
|
titleApprove: "Odobrite na svom telefonu",
|
|
368
416
|
bodyScan: "Skenirajte kamerom svog telefona ili aplikacijom ZOREAL ID.",
|
|
369
417
|
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
@@ -376,11 +424,14 @@ var TRANSLATIONS = {
|
|
|
376
424
|
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga napravite. Traje samo minutu.",
|
|
377
425
|
cancel: "Otka\u017Ei",
|
|
378
426
|
close: "Zatvori",
|
|
379
|
-
qrAlt: "QR kod za prijavu putem ZOREAL-a"
|
|
427
|
+
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
428
|
+
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
380
429
|
},
|
|
381
430
|
// Čeština
|
|
382
431
|
cs: {
|
|
383
432
|
title: "P\u0159ihlaste se naskenov\xE1n\xEDm",
|
|
433
|
+
titleIdentify: "Naskenujte pro ov\u011B\u0159en\xED toto\u017Enosti",
|
|
434
|
+
titlePresence: "Naskenujte a proka\u017Ete, \u017Ee jste skute\u010Dn\xFD \u010Dlov\u011Bk",
|
|
384
435
|
titleApprove: "Potvr\u010Fte v telefonu",
|
|
385
436
|
bodyScan: "Naskenujte fotoapar\xE1tem telefonu nebo aplikac\xED ZOREAL ID.",
|
|
386
437
|
bodyApprove: "Potvr\u010Fte p\u0159ihl\xE1\u0161en\xED v aplikaci ZOREAL ID.",
|
|
@@ -393,11 +444,14 @@ var TRANSLATIONS = {
|
|
|
393
444
|
noIdBody: "Naskenov\xE1n\xEDm stejn\xE9ho k\xF3du si st\xE1hnete aplikaci a zdarma vytvo\u0159\xEDte ZOREAL ID. Zabere to jen minutu.",
|
|
394
445
|
cancel: "Zru\u0161it",
|
|
395
446
|
close: "Zav\u0159\xEDt",
|
|
396
|
-
qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL"
|
|
447
|
+
qrAlt: "QR k\xF3d pro p\u0159ihl\xE1\u0161en\xED pomoc\xED ZOREAL",
|
|
448
|
+
buttonContinue: "Pokra\u010Dovat se ZOREAL"
|
|
397
449
|
},
|
|
398
450
|
// Dansk
|
|
399
451
|
da: {
|
|
400
452
|
title: "Scan for at logge ind",
|
|
453
|
+
titleIdentify: "Scan for at bekr\xE6fte din identitet",
|
|
454
|
+
titlePresence: "Scan for at bevise, at du er et rigtigt menneske",
|
|
401
455
|
titleApprove: "Godkend p\xE5 din telefon",
|
|
402
456
|
bodyScan: "Scan med telefonens kamera eller ZOREAL ID-appen.",
|
|
403
457
|
bodyApprove: "Godkend login i din ZOREAL ID-app.",
|
|
@@ -410,11 +464,14 @@ var TRANSLATIONS = {
|
|
|
410
464
|
noIdBody: "Scan den samme kode for at hente appen og oprette et gratis. Det tager kun et minut.",
|
|
411
465
|
cancel: "Annuller",
|
|
412
466
|
close: "Luk",
|
|
413
|
-
qrAlt: "QR-kode til at logge ind med ZOREAL"
|
|
467
|
+
qrAlt: "QR-kode til at logge ind med ZOREAL",
|
|
468
|
+
buttonContinue: "Forts\xE6t med ZOREAL"
|
|
414
469
|
},
|
|
415
470
|
// Ελληνικά
|
|
416
471
|
el: {
|
|
417
472
|
title: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7",
|
|
473
|
+
titleIdentify: "\u03A3\u03AC\u03C1\u03C9\u03C3\u03B7 \u03B3\u03B9\u03B1 \u03B5\u03C0\u03B1\u03BB\u03AE\u03B8\u03B5\u03C5\u03C3\u03B7 \u03C4\u03B1\u03C5\u03C4\u03CC\u03C4\u03B7\u03C4\u03B1\u03C2",
|
|
474
|
+
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",
|
|
418
475
|
titleApprove: "\u0388\u03B3\u03BA\u03C1\u03B9\u03C3\u03B7 \u03B1\u03C0\u03CC \u03C4\u03BF \u03BA\u03B9\u03BD\u03B7\u03C4\u03CC \u03C3\u03B1\u03C2",
|
|
419
476
|
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.",
|
|
420
477
|
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.",
|
|
@@ -427,11 +484,14 @@ var TRANSLATIONS = {
|
|
|
427
484
|
noIdBody: "\u03A3\u03B1\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF\u03BD \u03AF\u03B4\u03B9\u03BF \u03BA\u03C9\u03B4\u03B9\u03BA\u03CC \u03B3\u03B9\u03B1 \u03BD\u03B1 \u03BA\u03B1\u03C4\u03B5\u03B2\u03AC\u03C3\u03B5\u03C4\u03B5 \u03C4\u03B7\u03BD \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03BA\u03B1\u03B9 \u03BD\u03B1 \u03B4\u03B7\u03BC\u03B9\u03BF\u03C5\u03C1\u03B3\u03AE\u03C3\u03B5\u03C4\u03B5 \u03AD\u03BD\u03B1 \u03B4\u03C9\u03C1\u03B5\u03AC\u03BD. \u03A7\u03C1\u03B5\u03B9\u03AC\u03B6\u03B5\u03C4\u03B1\u03B9 \u03BC\u03CC\u03BD\u03BF \u03AD\u03BD\u03B1 \u03BB\u03B5\u03C0\u03C4\u03CC.",
|
|
428
485
|
cancel: "\u0386\u03BA\u03C5\u03C1\u03BF",
|
|
429
486
|
close: "\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF",
|
|
430
|
-
qrAlt: "\u039A\u03C9\u03B4\u03B9\u03BA\u03CC\u03C2 QR \u03B3\u03B9\u03B1 \u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7 \u03BC\u03B5 ZOREAL"
|
|
487
|
+
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"
|
|
431
489
|
},
|
|
432
490
|
// Español (LA)
|
|
433
491
|
"es-419": {
|
|
434
492
|
title: "Escanea para iniciar sesi\xF3n",
|
|
493
|
+
titleIdentify: "Escanea para verificar tu identidad",
|
|
494
|
+
titlePresence: "Escanea para demostrar que eres una persona real",
|
|
435
495
|
titleApprove: "Aprueba desde tu celular",
|
|
436
496
|
bodyScan: "Escanea con la c\xE1mara de tu celular o con la app ZOREAL ID.",
|
|
437
497
|
bodyApprove: "Aprueba el inicio de sesi\xF3n en tu app ZOREAL ID.",
|
|
@@ -444,11 +504,14 @@ var TRANSLATIONS = {
|
|
|
444
504
|
noIdBody: "Escanea el mismo c\xF3digo para descargar la app y crear uno gratis. Solo toma un minuto.",
|
|
445
505
|
cancel: "Cancelar",
|
|
446
506
|
close: "Cerrar",
|
|
447
|
-
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL"
|
|
507
|
+
qrAlt: "C\xF3digo QR para iniciar sesi\xF3n con ZOREAL",
|
|
508
|
+
buttonContinue: "Continuar con ZOREAL"
|
|
448
509
|
},
|
|
449
510
|
// Suomi
|
|
450
511
|
fi: {
|
|
451
512
|
title: "Kirjaudu sis\xE4\xE4n skannaamalla",
|
|
513
|
+
titleIdentify: "Vahvista henkil\xF6llisyytesi skannaamalla",
|
|
514
|
+
titlePresence: "Todista skannaamalla, ett\xE4 olet oikea ihminen",
|
|
452
515
|
titleApprove: "Hyv\xE4ksy puhelimessasi",
|
|
453
516
|
bodyScan: "Skannaa puhelimesi kameralla tai ZOREAL ID -sovelluksella.",
|
|
454
517
|
bodyApprove: "Hyv\xE4ksy kirjautuminen ZOREAL ID -sovelluksessasi.",
|
|
@@ -461,11 +524,14 @@ var TRANSLATIONS = {
|
|
|
461
524
|
noIdBody: "Skannaa sama koodi ladataksesi sovelluksen ja luodaksesi tunnuksen ilmaiseksi. Se vie vain minuutin.",
|
|
462
525
|
cancel: "Peruuta",
|
|
463
526
|
close: "Sulje",
|
|
464
|
-
qrAlt: "QR-koodi ZOREAL-kirjautumista varten"
|
|
527
|
+
qrAlt: "QR-koodi ZOREAL-kirjautumista varten",
|
|
528
|
+
buttonContinue: "Jatka ZOREALilla"
|
|
465
529
|
},
|
|
466
530
|
// עברית
|
|
467
531
|
he: {
|
|
468
532
|
title: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8",
|
|
533
|
+
titleIdentify: "\u05E1\u05E8\u05D5\u05E7 \u05DB\u05D3\u05D9 \u05DC\u05D0\u05DE\u05EA \u05D0\u05EA \u05D6\u05D4\u05D5\u05EA\u05DA",
|
|
534
|
+
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",
|
|
469
535
|
titleApprove: "\u05D0\u05E9\u05E8 \u05D1\u05D8\u05DC\u05E4\u05D5\u05DF \u05E9\u05DC\u05DA",
|
|
470
536
|
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.",
|
|
471
537
|
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.",
|
|
@@ -478,11 +544,14 @@ var TRANSLATIONS = {
|
|
|
478
544
|
noIdBody: "\u05E1\u05E8\u05D5\u05E7 \u05D0\u05EA \u05D0\u05D5\u05EA\u05D5 \u05D4\u05E7\u05D5\u05D3 \u05DB\u05D3\u05D9 \u05DC\u05D4\u05D5\u05E8\u05D9\u05D3 \u05D0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05D5\u05DC\u05D9\u05E6\u05D5\u05E8 \u05D0\u05D7\u05D3 \u05D1\u05D7\u05D9\u05E0\u05DD. \u05D6\u05D4 \u05DC\u05D5\u05E7\u05D7 \u05E8\u05E7 \u05D3\u05E7\u05D4.",
|
|
479
545
|
cancel: "\u05D1\u05D9\u05D8\u05D5\u05DC",
|
|
480
546
|
close: "\u05E1\u05D2\u05D5\u05E8",
|
|
481
|
-
qrAlt: "\u05E7\u05D5\u05D3 QR \u05DC\u05D4\u05EA\u05D7\u05D1\u05E8\u05D5\u05EA \u05E2\u05DD ZOREAL"
|
|
547
|
+
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"
|
|
482
549
|
},
|
|
483
550
|
// Hrvatski
|
|
484
551
|
hr: {
|
|
485
552
|
title: "Skenirajte za prijavu",
|
|
553
|
+
titleIdentify: "Skenirajte za potvrdu identiteta",
|
|
554
|
+
titlePresence: "Skenirajte kako biste dokazali da ste stvarna osoba",
|
|
486
555
|
titleApprove: "Odobrite na svom mobitelu",
|
|
487
556
|
bodyScan: "Skenirajte kamerom svog mobitela ili aplikacijom ZOREAL ID.",
|
|
488
557
|
bodyApprove: "Odobrite prijavu u aplikaciji ZOREAL ID.",
|
|
@@ -495,11 +564,14 @@ var TRANSLATIONS = {
|
|
|
495
564
|
noIdBody: "Skenirajte isti kod da preuzmete aplikaciju i besplatno ga izradite. Traje samo minutu.",
|
|
496
565
|
cancel: "Odustani",
|
|
497
566
|
close: "Zatvori",
|
|
498
|
-
qrAlt: "QR kod za prijavu putem ZOREAL-a"
|
|
567
|
+
qrAlt: "QR kod za prijavu putem ZOREAL-a",
|
|
568
|
+
buttonContinue: "Nastavi sa ZOREAL-om"
|
|
499
569
|
},
|
|
500
570
|
// Magyar
|
|
501
571
|
hu: {
|
|
502
572
|
title: "Bejelentkez\xE9s beolvas\xE1ssal",
|
|
573
|
+
titleIdentify: "Olvassa be a szem\xE9lyazonoss\xE1ga igazol\xE1s\xE1hoz",
|
|
574
|
+
titlePresence: "Olvassa be annak igazol\xE1s\xE1hoz, hogy val\xF3di ember",
|
|
503
575
|
titleApprove: "J\xF3v\xE1hagy\xE1s a telefonj\xE1n",
|
|
504
576
|
bodyScan: "Olvassa be a telefonja kamer\xE1j\xE1val, vagy a ZOREAL ID alkalmaz\xE1ssal.",
|
|
505
577
|
bodyApprove: "Hagyja j\xF3v\xE1 a bejelentkez\xE9st a ZOREAL ID alkalmaz\xE1sban.",
|
|
@@ -512,11 +584,14 @@ var TRANSLATIONS = {
|
|
|
512
584
|
noIdBody: "Olvassa be ugyanazt a k\xF3dot az alkalmaz\xE1s let\xF6lt\xE9s\xE9hez, \xE9s hozzon l\xE9tre egyet ingyenesen. Mind\xF6ssze egy percet vesz ig\xE9nybe.",
|
|
513
585
|
cancel: "M\xE9gse",
|
|
514
586
|
close: "Bez\xE1r\xE1s",
|
|
515
|
-
qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez"
|
|
587
|
+
qrAlt: "QR-k\xF3d a ZOREAL-lal val\xF3 bejelentkez\xE9shez",
|
|
588
|
+
buttonContinue: "Folytat\xE1s a ZOREAL-lal"
|
|
516
589
|
},
|
|
517
590
|
// Bahasa Indonesia
|
|
518
591
|
id: {
|
|
519
592
|
title: "Pindai untuk masuk",
|
|
593
|
+
titleIdentify: "Pindai untuk memverifikasi identitas Anda",
|
|
594
|
+
titlePresence: "Pindai untuk membuktikan bahwa Anda manusia sungguhan",
|
|
520
595
|
titleApprove: "Setujui di ponsel Anda",
|
|
521
596
|
bodyScan: "Pindai dengan kamera ponsel atau aplikasi ZOREAL ID.",
|
|
522
597
|
bodyApprove: "Setujui proses masuk di aplikasi ZOREAL ID Anda.",
|
|
@@ -529,11 +604,14 @@ var TRANSLATIONS = {
|
|
|
529
604
|
noIdBody: "Pindai kode yang sama untuk mengunduh aplikasi dan membuat akun secara gratis. Hanya butuh waktu satu menit.",
|
|
530
605
|
cancel: "Batal",
|
|
531
606
|
close: "Tutup",
|
|
532
|
-
qrAlt: "Kode QR untuk masuk dengan ZOREAL"
|
|
607
|
+
qrAlt: "Kode QR untuk masuk dengan ZOREAL",
|
|
608
|
+
buttonContinue: "Lanjutkan dengan ZOREAL"
|
|
533
609
|
},
|
|
534
610
|
// Italiano
|
|
535
611
|
it: {
|
|
536
612
|
title: "Scansiona per accedere",
|
|
613
|
+
titleIdentify: "Scansiona per verificare la tua identit\xE0",
|
|
614
|
+
titlePresence: "Scansiona per dimostrare di essere una persona reale",
|
|
537
615
|
titleApprove: "Approva sul tuo telefono",
|
|
538
616
|
bodyScan: "Scansiona con la fotocamera del telefono o con l'app ZOREAL ID.",
|
|
539
617
|
bodyApprove: "Approva l'accesso nell'app ZOREAL ID.",
|
|
@@ -546,11 +624,14 @@ var TRANSLATIONS = {
|
|
|
546
624
|
noIdBody: "Scansiona lo stesso codice per scaricare l'app e crearne uno gratis. Basta un minuto.",
|
|
547
625
|
cancel: "Annulla",
|
|
548
626
|
close: "Chiudi",
|
|
549
|
-
qrAlt: "Codice QR per accedere con ZOREAL"
|
|
627
|
+
qrAlt: "Codice QR per accedere con ZOREAL",
|
|
628
|
+
buttonContinue: "Continua con ZOREAL"
|
|
550
629
|
},
|
|
551
630
|
// Bahasa Melayu
|
|
552
631
|
ms: {
|
|
553
632
|
title: "Imbas untuk log masuk",
|
|
633
|
+
titleIdentify: "Imbas untuk mengesahkan identiti anda",
|
|
634
|
+
titlePresence: "Imbas untuk membuktikan anda manusia sebenar",
|
|
554
635
|
titleApprove: "Luluskan di telefon anda",
|
|
555
636
|
bodyScan: "Imbas dengan kamera telefon atau aplikasi ZOREAL ID.",
|
|
556
637
|
bodyApprove: "Luluskan log masuk dalam aplikasi ZOREAL ID anda.",
|
|
@@ -563,11 +644,14 @@ var TRANSLATIONS = {
|
|
|
563
644
|
noIdBody: "Imbas kod yang sama untuk memuat turun aplikasi dan cipta satu secara percuma. Hanya mengambil masa seminit.",
|
|
564
645
|
cancel: "Batal",
|
|
565
646
|
close: "Tutup",
|
|
566
|
-
qrAlt: "Kod QR untuk log masuk dengan ZOREAL"
|
|
647
|
+
qrAlt: "Kod QR untuk log masuk dengan ZOREAL",
|
|
648
|
+
buttonContinue: "Teruskan dengan ZOREAL"
|
|
567
649
|
},
|
|
568
650
|
// Nederlands
|
|
569
651
|
nl: {
|
|
570
652
|
title: "Scan om in te loggen",
|
|
653
|
+
titleIdentify: "Scan om je identiteit te verifi\xEBren",
|
|
654
|
+
titlePresence: "Scan om te bewijzen dat je een echt mens bent",
|
|
571
655
|
titleApprove: "Keur goed op je telefoon",
|
|
572
656
|
bodyScan: "Scan met de camera van je telefoon of de ZOREAL ID-app.",
|
|
573
657
|
bodyApprove: "Keur de aanmelding goed in je ZOREAL ID-app.",
|
|
@@ -580,11 +664,14 @@ var TRANSLATIONS = {
|
|
|
580
664
|
noIdBody: "Scan dezelfde code om de app te downloaden en gratis een account aan te maken. Dit duurt maar een minuut.",
|
|
581
665
|
cancel: "Annuleren",
|
|
582
666
|
close: "Sluiten",
|
|
583
|
-
qrAlt: "QR-code om in te loggen met ZOREAL"
|
|
667
|
+
qrAlt: "QR-code om in te loggen met ZOREAL",
|
|
668
|
+
buttonContinue: "Doorgaan met ZOREAL"
|
|
584
669
|
},
|
|
585
670
|
// Norsk
|
|
586
671
|
no: {
|
|
587
672
|
title: "Skann for \xE5 logge inn",
|
|
673
|
+
titleIdentify: "Skann for \xE5 bekrefte identiteten din",
|
|
674
|
+
titlePresence: "Skann for \xE5 bevise at du er et ekte menneske",
|
|
588
675
|
titleApprove: "Godkjenn p\xE5 telefonen din",
|
|
589
676
|
bodyScan: "Skann med telefonens kamera eller ZOREAL ID-appen.",
|
|
590
677
|
bodyApprove: "Godkjenn innloggingen i ZOREAL ID-appen din.",
|
|
@@ -597,11 +684,14 @@ var TRANSLATIONS = {
|
|
|
597
684
|
noIdBody: "Skann den samme koden for \xE5 laste ned appen og opprette en gratis. Det tar bare et minutt.",
|
|
598
685
|
cancel: "Avbryt",
|
|
599
686
|
close: "Lukk",
|
|
600
|
-
qrAlt: "QR-kode for \xE5 logge inn med ZOREAL"
|
|
687
|
+
qrAlt: "QR-kode for \xE5 logge inn med ZOREAL",
|
|
688
|
+
buttonContinue: "Fortsett med ZOREAL"
|
|
601
689
|
},
|
|
602
690
|
// Polski
|
|
603
691
|
pl: {
|
|
604
692
|
title: "Zeskanuj, aby si\u0119 zalogowa\u0107",
|
|
693
|
+
titleIdentify: "Zeskanuj, aby zweryfikowa\u0107 swoj\u0105 to\u017Csamo\u015B\u0107",
|
|
694
|
+
titlePresence: "Zeskanuj, aby udowodni\u0107, \u017Ce jeste\u015B prawdziwym cz\u0142owiekiem",
|
|
605
695
|
titleApprove: "Zatwierd\u017A w telefonie",
|
|
606
696
|
bodyScan: "Zeskanuj aparatem telefonu lub aplikacj\u0105 ZOREAL ID.",
|
|
607
697
|
bodyApprove: "Zatwierd\u017A logowanie w aplikacji ZOREAL ID.",
|
|
@@ -614,11 +704,14 @@ var TRANSLATIONS = {
|
|
|
614
704
|
noIdBody: "Zeskanuj ten sam kod, aby pobra\u0107 aplikacj\u0119 i bezp\u0142atnie utworzy\u0107 ZOREAL ID. Zajmie to tylko minut\u0119.",
|
|
615
705
|
cancel: "Anuluj",
|
|
616
706
|
close: "Zamknij",
|
|
617
|
-
qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL"
|
|
707
|
+
qrAlt: "Kod QR do logowania za pomoc\u0105 ZOREAL",
|
|
708
|
+
buttonContinue: "Kontynuuj z ZOREAL"
|
|
618
709
|
},
|
|
619
710
|
// Português (BR)
|
|
620
711
|
"pt-br": {
|
|
621
712
|
title: "Escaneie para entrar",
|
|
713
|
+
titleIdentify: "Escaneie para verificar sua identidade",
|
|
714
|
+
titlePresence: "Escaneie para provar que voc\xEA \xE9 uma pessoa real",
|
|
622
715
|
titleApprove: "Aprove no seu celular",
|
|
623
716
|
bodyScan: "Escaneie com a c\xE2mera do seu celular ou com o app ZOREAL ID.",
|
|
624
717
|
bodyApprove: "Aprove o login no app ZOREAL ID.",
|
|
@@ -631,11 +724,14 @@ var TRANSLATIONS = {
|
|
|
631
724
|
noIdBody: "Escaneie o mesmo c\xF3digo para baixar o app e criar um de gra\xE7a. Leva s\xF3 um minuto.",
|
|
632
725
|
cancel: "Cancelar",
|
|
633
726
|
close: "Fechar",
|
|
634
|
-
qrAlt: "C\xF3digo QR para entrar com ZOREAL"
|
|
727
|
+
qrAlt: "C\xF3digo QR para entrar com ZOREAL",
|
|
728
|
+
buttonContinue: "Continuar com ZOREAL"
|
|
635
729
|
},
|
|
636
730
|
// Română
|
|
637
731
|
ro: {
|
|
638
732
|
title: "Scana\u021Bi pentru conectare",
|
|
733
|
+
titleIdentify: "Scana\u021Bi pentru a v\u0103 verifica identitatea",
|
|
734
|
+
titlePresence: "Scana\u021Bi pentru a dovedi c\u0103 sunte\u021Bi o persoan\u0103 real\u0103",
|
|
639
735
|
titleApprove: "Aproba\u021Bi de pe telefon",
|
|
640
736
|
bodyScan: "Scana\u021Bi cu camera telefonului sau cu aplica\u021Bia ZOREAL ID.",
|
|
641
737
|
bodyApprove: "Aproba\u021Bi conectarea \xEEn aplica\u021Bia ZOREAL ID.",
|
|
@@ -648,11 +744,14 @@ var TRANSLATIONS = {
|
|
|
648
744
|
noIdBody: "Scana\u021Bi acela\u0219i cod pentru a desc\u0103rca aplica\u021Bia \u0219i a crea unul gratuit. Dureaz\u0103 doar un minut.",
|
|
649
745
|
cancel: "Anuleaz\u0103",
|
|
650
746
|
close: "\xCEnchide",
|
|
651
|
-
qrAlt: "Cod QR pentru conectare cu ZOREAL"
|
|
747
|
+
qrAlt: "Cod QR pentru conectare cu ZOREAL",
|
|
748
|
+
buttonContinue: "Continua\u021Bi cu ZOREAL"
|
|
652
749
|
},
|
|
653
750
|
// Српски
|
|
654
751
|
sr: {
|
|
655
752
|
title: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443",
|
|
753
|
+
titleIdentify: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0434\u0430 \u043F\u043E\u0442\u0432\u0440\u0434\u0438\u0442\u0435 \u0441\u0432\u043E\u0458 \u0438\u0434\u0435\u043D\u0442\u0438\u0442\u0435\u0442",
|
|
754
|
+
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",
|
|
656
755
|
titleApprove: "\u041E\u0434\u043E\u0431\u0440\u0438\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u043C \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0443",
|
|
657
756
|
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.",
|
|
658
757
|
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.",
|
|
@@ -665,11 +764,14 @@ var TRANSLATIONS = {
|
|
|
665
764
|
noIdBody: "\u0421\u043A\u0435\u043D\u0438\u0440\u0430\u0458\u0442\u0435 \u0438\u0441\u0442\u0438 \u043A\u043E\u0434 \u0434\u0430 \u043F\u0440\u0435\u0443\u0437\u043C\u0435\u0442\u0435 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0443 \u0438 \u0431\u0435\u0441\u043F\u043B\u0430\u0442\u043D\u043E \u0433\u0430 \u043D\u0430\u043F\u0440\u0430\u0432\u0438\u0442\u0435. \u0422\u0440\u0430\u0458\u0435 \u0441\u0430\u043C\u043E \u043C\u0438\u043D\u0443\u0442.",
|
|
666
765
|
cancel: "\u041E\u0442\u043A\u0430\u0436\u0438",
|
|
667
766
|
close: "\u0417\u0430\u0442\u0432\u043E\u0440\u0438",
|
|
668
|
-
qrAlt: "QR \u043A\u043E\u0434 \u0437\u0430 \u043F\u0440\u0438\u0458\u0430\u0432\u0443 \u043F\u0440\u0435\u043A\u043E ZOREAL-\u0430"
|
|
767
|
+
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"
|
|
669
769
|
},
|
|
670
770
|
// ไทย
|
|
671
771
|
th: {
|
|
672
772
|
title: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E02\u0E49\u0E32\u0E2A\u0E39\u0E48\u0E23\u0E30\u0E1A\u0E1A",
|
|
773
|
+
titleIdentify: "\u0E2A\u0E41\u0E01\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E22\u0E37\u0E19\u0E22\u0E31\u0E19\u0E15\u0E31\u0E27\u0E15\u0E19\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
774
|
+
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",
|
|
673
775
|
titleApprove: "\u0E2D\u0E19\u0E38\u0E21\u0E31\u0E15\u0E34\u0E1A\u0E19\u0E42\u0E17\u0E23\u0E28\u0E31\u0E1E\u0E17\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13",
|
|
674
776
|
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",
|
|
675
777
|
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",
|
|
@@ -682,11 +784,14 @@ var TRANSLATIONS = {
|
|
|
682
784
|
noIdBody: "\u0E2A\u0E41\u0E01\u0E19\u0E42\u0E04\u0E49\u0E14\u0E40\u0E14\u0E35\u0E22\u0E27\u0E01\u0E31\u0E19\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E14\u0E32\u0E27\u0E19\u0E4C\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E2D\u0E1B\u0E41\u0E25\u0E30\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E1A\u0E31\u0E0D\u0E0A\u0E35\u0E1F\u0E23\u0E35 \u0E43\u0E0A\u0E49\u0E40\u0E27\u0E25\u0E32\u0E40\u0E1E\u0E35\u0E22\u0E07\u0E19\u0E32\u0E17\u0E35\u0E40\u0E14\u0E35\u0E22\u0E27",
|
|
683
785
|
cancel: "\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01",
|
|
684
786
|
close: "\u0E1B\u0E34\u0E14",
|
|
685
|
-
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"
|
|
787
|
+
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"
|
|
686
789
|
},
|
|
687
790
|
// Tagalog
|
|
688
791
|
tl: {
|
|
689
792
|
title: "I-scan para mag-sign in",
|
|
793
|
+
titleIdentify: "I-scan para i-verify ang iyong pagkakakilanlan",
|
|
794
|
+
titlePresence: "I-scan para patunayang tunay kang tao",
|
|
690
795
|
titleApprove: "I-approve sa iyong telepono",
|
|
691
796
|
bodyScan: "I-scan gamit ang camera ng iyong telepono o ang ZOREAL ID app.",
|
|
692
797
|
bodyApprove: "I-approve ang login sa iyong ZOREAL ID app.",
|
|
@@ -699,11 +804,14 @@ var TRANSLATIONS = {
|
|
|
699
804
|
noIdBody: "I-scan ang parehong code para i-download ang app at gumawa ng iyong ZOREAL ID nang libre. Isang minuto lang ito.",
|
|
700
805
|
cancel: "Kanselahin",
|
|
701
806
|
close: "Isara",
|
|
702
|
-
qrAlt: "QR code para mag-sign in gamit ang ZOREAL"
|
|
807
|
+
qrAlt: "QR code para mag-sign in gamit ang ZOREAL",
|
|
808
|
+
buttonContinue: "Magpatuloy gamit ang ZOREAL"
|
|
703
809
|
},
|
|
704
810
|
// Türkçe
|
|
705
811
|
tr: {
|
|
706
812
|
title: "Giri\u015F i\xE7in taray\u0131n",
|
|
813
|
+
titleIdentify: "Kimli\u011Finizi do\u011Frulamak i\xE7in taray\u0131n",
|
|
814
|
+
titlePresence: "Ger\xE7ek bir insan oldu\u011Funuzu kan\u0131tlamak i\xE7in taray\u0131n",
|
|
707
815
|
titleApprove: "Telefonunuzdan onaylay\u0131n",
|
|
708
816
|
bodyScan: "Telefonunuzun kameras\u0131yla veya ZOREAL ID uygulamas\u0131yla taray\u0131n.",
|
|
709
817
|
bodyApprove: "Giri\u015Fi ZOREAL ID uygulaman\u0131zdan onaylay\u0131n.",
|
|
@@ -716,11 +824,14 @@ var TRANSLATIONS = {
|
|
|
716
824
|
noIdBody: "Uygulamay\u0131 indirmek ve \xFCcretsiz bir tane olu\u015Fturmak i\xE7in ayn\u0131 kodu taray\u0131n. Sadece bir dakikan\u0131z\u0131 al\u0131r.",
|
|
717
825
|
cancel: "\u0130ptal",
|
|
718
826
|
close: "Kapat",
|
|
719
|
-
qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu"
|
|
827
|
+
qrAlt: "ZOREAL ile giri\u015F yapmak i\xE7in QR kodu",
|
|
828
|
+
buttonContinue: "ZOREAL ile devam et"
|
|
720
829
|
},
|
|
721
830
|
// Українська
|
|
722
831
|
uk: {
|
|
723
832
|
title: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443",
|
|
833
|
+
titleIdentify: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435, \u0449\u043E\u0431 \u043F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438 \u043E\u0441\u043E\u0431\u0443",
|
|
834
|
+
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",
|
|
724
835
|
titleApprove: "\u041F\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u044C\u0442\u0435 \u043D\u0430 \u0442\u0435\u043B\u0435\u0444\u043E\u043D\u0456",
|
|
725
836
|
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.",
|
|
726
837
|
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.",
|
|
@@ -733,11 +844,14 @@ var TRANSLATIONS = {
|
|
|
733
844
|
noIdBody: "\u0421\u043A\u0430\u043D\u0443\u0439\u0442\u0435 \u0442\u043E\u0439 \u0441\u0430\u043C\u0438\u0439 \u043A\u043E\u0434, \u0449\u043E\u0431 \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u0434\u043E\u0434\u0430\u0442\u043E\u043A \u0456 \u0431\u0435\u0437\u043A\u043E\u0448\u0442\u043E\u0432\u043D\u043E \u0441\u0442\u0432\u043E\u0440\u0438\u0442\u0438 \u0439\u043E\u0433\u043E. \u0426\u0435 \u0437\u0430\u0439\u043C\u0435 \u043B\u0438\u0448\u0435 \u0445\u0432\u0438\u043B\u0438\u043D\u0443.",
|
|
734
845
|
cancel: "\u0421\u043A\u0430\u0441\u0443\u0432\u0430\u0442\u0438",
|
|
735
846
|
close: "\u0417\u0430\u043A\u0440\u0438\u0442\u0438",
|
|
736
|
-
qrAlt: "QR-\u043A\u043E\u0434 \u0434\u043B\u044F \u0432\u0445\u043E\u0434\u0443 \u0447\u0435\u0440\u0435\u0437 ZOREAL"
|
|
847
|
+
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"
|
|
737
849
|
},
|
|
738
850
|
// اردو
|
|
739
851
|
ur: {
|
|
740
852
|
title: "\u0644\u0627\u06AF \u0627\u0650\u0646 \u06A9\u0631\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
853
|
+
titleIdentify: "\u0627\u067E\u0646\u06CC \u0634\u0646\u0627\u062E\u062A \u06A9\u06CC \u062A\u0635\u062F\u06CC\u0642 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA",
|
|
854
|
+
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",
|
|
741
855
|
titleApprove: "\u0627\u067E\u0646\u06D2 \u0641\u0648\u0646 \u067E\u0631 \u0645\u0646\u0638\u0648\u0631\u06CC \u062F\u06CC\u06BA",
|
|
742
856
|
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",
|
|
743
857
|
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",
|
|
@@ -750,11 +864,14 @@ var TRANSLATIONS = {
|
|
|
750
864
|
noIdBody: "\u0627\u06CC\u067E \u0688\u0627\u0624\u0646 \u0644\u0648\u0688 \u06A9\u0631\u0646\u06D2 \u0627\u0648\u0631 \u0645\u0641\u062A \u0645\u06CC\u06BA \u0627\u06CC\u06A9 \u0628\u0646\u0627\u0646\u06D2 \u06A9\u06D2 \u0644\u06CC\u06D2 \u0648\u06C1\u06CC \u06A9\u0648\u0688 \u0627\u0633\u06A9\u06CC\u0646 \u06A9\u0631\u06CC\u06BA\u06D4 \u0627\u0633 \u0645\u06CC\u06BA \u0635\u0631\u0641 \u0627\u06CC\u06A9 \u0645\u0646\u0679 \u0644\u06AF\u062A\u0627 \u06C1\u06D2\u06D4",
|
|
751
865
|
cancel: "\u0645\u0646\u0633\u0648\u062E \u06A9\u0631\u06CC\u06BA",
|
|
752
866
|
close: "\u0628\u0646\u062F \u06A9\u0631\u06CC\u06BA",
|
|
753
|
-
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"
|
|
867
|
+
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"
|
|
754
869
|
},
|
|
755
870
|
// Tiếng Việt
|
|
756
871
|
vi: {
|
|
757
872
|
title: "Qu\xE9t \u0111\u1EC3 \u0111\u0103ng nh\u1EADp",
|
|
873
|
+
titleIdentify: "Qu\xE9t \u0111\u1EC3 x\xE1c minh danh t\xEDnh c\u1EE7a b\u1EA1n",
|
|
874
|
+
titlePresence: "Qu\xE9t \u0111\u1EC3 ch\u1EE9ng minh b\u1EA1n l\xE0 ng\u01B0\u1EDDi th\u1EADt",
|
|
758
875
|
titleApprove: "Ph\xEA duy\u1EC7t tr\xEAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a b\u1EA1n",
|
|
759
876
|
bodyScan: "Qu\xE9t b\u1EB1ng camera \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c \u1EE9ng d\u1EE5ng ZOREAL ID.",
|
|
760
877
|
bodyApprove: "Ph\xEA duy\u1EC7t \u0111\u0103ng nh\u1EADp trong \u1EE9ng d\u1EE5ng ZOREAL ID c\u1EE7a b\u1EA1n.",
|
|
@@ -767,7 +884,8 @@ var TRANSLATIONS = {
|
|
|
767
884
|
noIdBody: "Qu\xE9t c\xF9ng m\xE3 n\xE0y \u0111\u1EC3 t\u1EA3i \u1EE9ng d\u1EE5ng v\xE0 t\u1EA1o t\xE0i kho\u1EA3n mi\u1EC5n ph\xED. Ch\u1EC9 m\u1EA5t m\u1ED9t ph\xFAt.",
|
|
768
885
|
cancel: "H\u1EE7y",
|
|
769
886
|
close: "\u0110\xF3ng",
|
|
770
|
-
qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL"
|
|
887
|
+
qrAlt: "M\xE3 QR \u0111\u1EC3 \u0111\u0103ng nh\u1EADp b\u1EB1ng ZOREAL",
|
|
888
|
+
buttonContinue: "Ti\u1EBFp t\u1EE5c v\u1EDBi ZOREAL"
|
|
771
889
|
}
|
|
772
890
|
};
|
|
773
891
|
var RTL = /* @__PURE__ */ new Set(["ar", "he", "iw", "ur"]);
|
|
@@ -841,6 +959,22 @@ function interpolate(template, time) {
|
|
|
841
959
|
return template.replace("{time}", time);
|
|
842
960
|
}
|
|
843
961
|
|
|
962
|
+
// src/intent.ts
|
|
963
|
+
var SIGN_IN_SCOPES = /* @__PURE__ */ new Set(["openid", "email", "profile.name"]);
|
|
964
|
+
function resolveIntent(intent, scope, acrValues) {
|
|
965
|
+
if (intent) return intent;
|
|
966
|
+
const scopes = (scope ?? "openid").split(/\s+/).filter(Boolean);
|
|
967
|
+
if (scopes.some((s) => !SIGN_IN_SCOPES.has(s))) return "identify";
|
|
968
|
+
const acr = typeof acrValues === "string" ? acrValues.split(/\s+/) : acrValues ?? [];
|
|
969
|
+
if (scopes.every((s) => s === "openid") && acr.includes("zoreal.live")) return "presence";
|
|
970
|
+
return "sign-in";
|
|
971
|
+
}
|
|
972
|
+
function titleFor(t, intent) {
|
|
973
|
+
if (intent === "identify") return t.titleIdentify;
|
|
974
|
+
if (intent === "presence") return t.titlePresence;
|
|
975
|
+
return t.title;
|
|
976
|
+
}
|
|
977
|
+
|
|
844
978
|
// src/styles.ts
|
|
845
979
|
var PREFIX = "zrl";
|
|
846
980
|
var cx = (name) => `${PREFIX}-${name}`;
|
|
@@ -859,8 +993,20 @@ var LIGHT = `
|
|
|
859
993
|
--zrl-accent-ink: #04698a;
|
|
860
994
|
--zrl-urgent: #b4761a;
|
|
861
995
|
--zrl-qr-bg: #ffffff;
|
|
996
|
+
--zrl-qr-filter: none;
|
|
997
|
+
--zrl-qr-spent-filter: blur(3px);
|
|
998
|
+
--zrl-qr-blend: normal;
|
|
862
999
|
--zrl-shadow: 0 1px 2px rgba(16, 18, 27, 0.06), 0 20px 50px -12px rgba(16, 18, 27, 0.3);
|
|
863
1000
|
--zrl-ring: rgba(16, 18, 27, 0.07);
|
|
1001
|
+
/* The light on the QR well's edge. Brand blue on both grounds, a lighter
|
|
1002
|
+
tint at the head; only its strength is themed, see the dark block. */
|
|
1003
|
+
--zrl-beam: #00b4d9;
|
|
1004
|
+
--zrl-beam-head: #7fe0f4;
|
|
1005
|
+
--zrl-beam-line: 2px;
|
|
1006
|
+
--zrl-glow-core: 4px;
|
|
1007
|
+
--zrl-glow-reach: 24px;
|
|
1008
|
+
--zrl-glow-blur: 8px;
|
|
1009
|
+
--zrl-glow-opacity: 0.6;
|
|
864
1010
|
`;
|
|
865
1011
|
var DARK = `
|
|
866
1012
|
--zrl-scrim: rgba(0, 0, 0, 0.62);
|
|
@@ -875,12 +1021,24 @@ var DARK = `
|
|
|
875
1021
|
--zrl-accent-soft: #0d3b47;
|
|
876
1022
|
--zrl-accent-ink: #7fdcf0;
|
|
877
1023
|
--zrl-urgent: #e0a952;
|
|
878
|
-
/* The
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
--zrl-qr-bg:
|
|
1024
|
+
/* The code is drawn light on the dark surface: the panel is transparent
|
|
1025
|
+
and the image is inverted and screened, so only the modules and the
|
|
1026
|
+
mark show. */
|
|
1027
|
+
--zrl-qr-bg: transparent;
|
|
1028
|
+
--zrl-qr-filter: invert(1);
|
|
1029
|
+
--zrl-qr-spent-filter: invert(1) blur(3px);
|
|
1030
|
+
--zrl-qr-blend: screen;
|
|
882
1031
|
--zrl-shadow: 0 1px 2px rgba(0, 0, 0, 0.4), 0 20px 50px -12px rgba(0, 0, 0, 0.65);
|
|
883
1032
|
--zrl-ring: rgba(255, 255, 255, 0.1);
|
|
1033
|
+
/* A glow that reads on a white card disappears on a dark one: the light
|
|
1034
|
+
here is brighter and wider, and its halo reaches further out. */
|
|
1035
|
+
--zrl-beam: #22c8ec;
|
|
1036
|
+
--zrl-beam-head: #c2f3fc;
|
|
1037
|
+
--zrl-beam-line: 3px;
|
|
1038
|
+
--zrl-glow-core: 6px;
|
|
1039
|
+
--zrl-glow-reach: 32px;
|
|
1040
|
+
--zrl-glow-blur: 10px;
|
|
1041
|
+
--zrl-glow-opacity: 0.85;
|
|
884
1042
|
`;
|
|
885
1043
|
var CSS = `
|
|
886
1044
|
.${PREFIX}-root { ${LIGHT} }
|
|
@@ -952,16 +1110,10 @@ var CSS = `
|
|
|
952
1110
|
border: 1px solid var(--zrl-line);
|
|
953
1111
|
border-radius: var(--zrl-radius);
|
|
954
1112
|
background: var(--zrl-qr-bg);
|
|
955
|
-
/* The light on the edge takes its shape
|
|
956
|
-
|
|
957
|
-
it at the head, no other hue. */
|
|
1113
|
+
/* The light on the edge takes its shape from here and its colour and
|
|
1114
|
+
strength from the theme tokens above. One lap in 4s on every tier. */
|
|
958
1115
|
--zrl-radius: 16px;
|
|
959
|
-
--zrl-beam: #00b4d9;
|
|
960
|
-
--zrl-beam-head: #7fe0f4;
|
|
961
|
-
--zrl-beam-size: 100px;
|
|
962
1116
|
--zrl-beam-time: 4s;
|
|
963
|
-
--zrl-glow-reach: 20px;
|
|
964
|
-
--zrl-glow-core: 3px;
|
|
965
1117
|
}
|
|
966
1118
|
|
|
967
1119
|
/* The light on the well's edge: a short comet running along the border, with
|
|
@@ -974,7 +1126,7 @@ var CSS = `
|
|
|
974
1126
|
before 120 and Safari before 15.4; the unprefixed one, declared after it,
|
|
975
1127
|
wins everywhere else.
|
|
976
1128
|
|
|
977
|
-
qr-beam keeps a
|
|
1129
|
+
qr-beam keeps a thin ring on the border line: the comet itself.
|
|
978
1130
|
qr-beam-glow is the glow: a wide band outside the well that blurs whatever
|
|
979
1131
|
is inside it, and inside it qr-beam-glow-band keeps a 3px ring with a
|
|
980
1132
|
second copy of the comet. The blur has to sit on the parent because a
|
|
@@ -989,9 +1141,9 @@ var CSS = `
|
|
|
989
1141
|
.${PREFIX}-qr-beam-glow,
|
|
990
1142
|
.${PREFIX}-qr-beam-glow-band {
|
|
991
1143
|
position: absolute;
|
|
992
|
-
inset: -
|
|
993
|
-
border:
|
|
994
|
-
border-radius: var(--zrl-radius);
|
|
1144
|
+
inset: calc(0px - var(--zrl-beam-line));
|
|
1145
|
+
border: var(--zrl-beam-line) solid transparent;
|
|
1146
|
+
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-beam-line));
|
|
995
1147
|
pointer-events: none;
|
|
996
1148
|
-webkit-mask: linear-gradient(transparent, transparent), linear-gradient(#fff, #fff);
|
|
997
1149
|
-webkit-mask-clip: padding-box, border-box;
|
|
@@ -1004,8 +1156,9 @@ var CSS = `
|
|
|
1004
1156
|
inset: calc(0px - var(--zrl-glow-reach));
|
|
1005
1157
|
border-width: var(--zrl-glow-reach);
|
|
1006
1158
|
border-radius: calc(var(--zrl-radius) - 1px + var(--zrl-glow-reach));
|
|
1007
|
-
filter: blur(
|
|
1008
|
-
opacity:
|
|
1159
|
+
filter: blur(var(--zrl-glow-blur));
|
|
1160
|
+
opacity: var(--zrl-glow-opacity);
|
|
1161
|
+
will-change: filter;
|
|
1009
1162
|
}
|
|
1010
1163
|
.${PREFIX}-qr-beam-glow-band {
|
|
1011
1164
|
inset: calc(0px - var(--zrl-glow-core));
|
|
@@ -1028,20 +1181,24 @@ var CSS = `
|
|
|
1028
1181
|
transition: opacity 400ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
1029
1182
|
}
|
|
1030
1183
|
|
|
1031
|
-
/* The moving light
|
|
1032
|
-
|
|
1184
|
+
/* The moving light: an oversized square carrying a conic sweep, rotated
|
|
1185
|
+
whole. A transform animation runs on the compositor, so the light keeps
|
|
1186
|
+
moving while the page is busy; animating the gradient angle instead
|
|
1187
|
+
repaints every frame on the main thread and stutters. */
|
|
1033
1188
|
.${PREFIX}-qr-beam::after,
|
|
1034
1189
|
.${PREFIX}-qr-beam-glow-band::after {
|
|
1035
1190
|
content: '';
|
|
1036
1191
|
position: absolute;
|
|
1037
1192
|
inset: -50%;
|
|
1038
1193
|
background: conic-gradient(
|
|
1039
|
-
from
|
|
1040
|
-
transparent 0deg
|
|
1041
|
-
var(--zrl-beam)
|
|
1194
|
+
from 0deg,
|
|
1195
|
+
transparent 0deg 220deg,
|
|
1196
|
+
var(--zrl-beam) 330deg,
|
|
1197
|
+
var(--zrl-beam-head) 348deg,
|
|
1042
1198
|
transparent 356deg 360deg
|
|
1043
1199
|
);
|
|
1044
|
-
animation: ${PREFIX}-orbit
|
|
1200
|
+
animation: ${PREFIX}-orbit var(--zrl-beam-time) linear infinite;
|
|
1201
|
+
will-change: transform;
|
|
1045
1202
|
transition: opacity 400ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
1046
1203
|
}
|
|
1047
1204
|
|
|
@@ -1061,6 +1218,8 @@ var CSS = `
|
|
|
1061
1218
|
width: 100%;
|
|
1062
1219
|
height: 100%;
|
|
1063
1220
|
border-radius: 8px;
|
|
1221
|
+
filter: var(--zrl-qr-filter);
|
|
1222
|
+
mix-blend-mode: var(--zrl-qr-blend);
|
|
1064
1223
|
transition: filter 300ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
1065
1224
|
opacity 300ms cubic-bezier(0.23, 1, 0.32, 1),
|
|
1066
1225
|
transform 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
|
@@ -1069,7 +1228,7 @@ var CSS = `
|
|
|
1069
1228
|
/* Once the code is claimed the QR is spent. Blurring it out rather than
|
|
1070
1229
|
swapping it keeps one object on screen through the state change, so the eye
|
|
1071
1230
|
reads a transformation instead of two things trading places. */
|
|
1072
|
-
.${PREFIX}-qr[data-spent="true"] { opacity: 0.2; filter:
|
|
1231
|
+
.${PREFIX}-qr[data-spent="true"] { opacity: 0.2; filter: var(--zrl-qr-spent-filter); transform: scale(0.96); }
|
|
1073
1232
|
|
|
1074
1233
|
.${PREFIX}-qr-overlay {
|
|
1075
1234
|
position: absolute;
|
|
@@ -1162,7 +1321,11 @@ var CSS = `
|
|
|
1162
1321
|
margin: 6px 0 0;
|
|
1163
1322
|
font-size: 12px;
|
|
1164
1323
|
color: var(--zrl-ink-mute);
|
|
1324
|
+
text-decoration: none;
|
|
1325
|
+
border-radius: 6px;
|
|
1326
|
+
transition: color 150ms ease-out;
|
|
1165
1327
|
}
|
|
1328
|
+
.${PREFIX}-secured:hover { color: var(--zrl-ink); }
|
|
1166
1329
|
|
|
1167
1330
|
.${PREFIX}-close {
|
|
1168
1331
|
position: absolute;
|
|
@@ -1198,53 +1361,7 @@ var CSS = `
|
|
|
1198
1361
|
70%, 100% { transform: scale(2.6); opacity: 0 }
|
|
1199
1362
|
}
|
|
1200
1363
|
|
|
1201
|
-
/* Three ways to move the light, one look at rest.
|
|
1202
|
-
Where offset-path takes a rect() (Chrome 116, Firefox 122, Safari 18) the
|
|
1203
|
-
comet rides the edge. Before that, a conic gradient turns inside the same
|
|
1204
|
-
masks instead: on a registered custom property where @property exists, and
|
|
1205
|
-
by rotating an oversized square where it does not, since an untyped custom
|
|
1206
|
-
property cannot interpolate and the light would snap once a cycle.
|
|
1207
|
-
There is no direct query for @property support. transition-behavior
|
|
1208
|
-
shipped after it in every engine (Chrome 117 vs 85, Firefox 129 vs 128,
|
|
1209
|
-
Safari 17.4 vs 16.4), so it stands in: a yes is never wrong, and a no only
|
|
1210
|
-
sends a capable browser down the transform tier, which looks the same.
|
|
1211
|
-
inherits: false so the angle stays on the element that animates it and
|
|
1212
|
-
never reaches the host page or the well. */
|
|
1213
|
-
@property --zrl-angle {
|
|
1214
|
-
syntax: '<angle>';
|
|
1215
|
-
inherits: false;
|
|
1216
|
-
initial-value: 0deg;
|
|
1217
|
-
}
|
|
1218
1364
|
@keyframes ${PREFIX}-orbit { to { transform: rotate(360deg) } }
|
|
1219
|
-
@keyframes ${PREFIX}-orbit-angle { to { --zrl-angle: 360deg } }
|
|
1220
|
-
@keyframes ${PREFIX}-beam { to { offset-distance: 100% } }
|
|
1221
|
-
@supports (transition-behavior: allow-discrete) {
|
|
1222
|
-
.${PREFIX}-qr-beam::after {
|
|
1223
|
-
inset: -1px;
|
|
1224
|
-
animation-name: ${PREFIX}-orbit-angle;
|
|
1225
|
-
}
|
|
1226
|
-
.${PREFIX}-qr-beam-glow-band::after {
|
|
1227
|
-
inset: calc(0px - var(--zrl-glow-core));
|
|
1228
|
-
animation-name: ${PREFIX}-orbit-angle;
|
|
1229
|
-
}
|
|
1230
|
-
}
|
|
1231
|
-
/* The comet: a square that rides the well's edge on a rounded-rect path, its
|
|
1232
|
-
anchor a little ahead of centre, turned to face the way it travels, and
|
|
1233
|
-
masked down to what its overlay allows. The gradient runs against the
|
|
1234
|
-
direction of travel: a light head, the blue body, nothing behind. One lap
|
|
1235
|
-
in 4s, linear: continuous motion has no ease. */
|
|
1236
|
-
@supports (offset-path: rect(0 auto auto 0)) {
|
|
1237
|
-
.${PREFIX}-qr-beam::after,
|
|
1238
|
-
.${PREFIX}-qr-beam-glow-band::after {
|
|
1239
|
-
inset: auto;
|
|
1240
|
-
width: var(--zrl-beam-size);
|
|
1241
|
-
height: var(--zrl-beam-size);
|
|
1242
|
-
background: linear-gradient(to left, var(--zrl-beam-head), var(--zrl-beam), transparent);
|
|
1243
|
-
offset-path: rect(0 auto auto 0 round calc(var(--zrl-radius) - 1px));
|
|
1244
|
-
offset-anchor: 60% 50%;
|
|
1245
|
-
animation: ${PREFIX}-beam var(--zrl-beam-time) linear infinite;
|
|
1246
|
-
}
|
|
1247
|
-
}
|
|
1248
1365
|
|
|
1249
1366
|
@media (prefers-reduced-motion: reduce) {
|
|
1250
1367
|
.${PREFIX}-scrim,
|
|
@@ -1295,7 +1412,8 @@ function PairingModal({
|
|
|
1295
1412
|
onCancel,
|
|
1296
1413
|
locale,
|
|
1297
1414
|
theme = "auto",
|
|
1298
|
-
timeoutMs = DEFAULT_PAIRING_TIMEOUT_MS
|
|
1415
|
+
timeoutMs = DEFAULT_PAIRING_TIMEOUT_MS,
|
|
1416
|
+
intent = "sign-in"
|
|
1299
1417
|
}) {
|
|
1300
1418
|
const t = strings(locale);
|
|
1301
1419
|
const titleId = (0, import_react.useId)();
|
|
@@ -1368,7 +1486,7 @@ function PairingModal({
|
|
|
1368
1486
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { ref: closeRef, type: "button", className: cx("close"), "aria-label": t.close, onClick: onCancel, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(IconClose, {}) }),
|
|
1369
1487
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("body"), children: [
|
|
1370
1488
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(ZorealLockup, { height: 44, className: cx("lockup") }),
|
|
1371
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { id: titleId, className: cx("title"), children: settled ? t.titleApprove : t
|
|
1489
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("h2", { id: titleId, className: cx("title"), children: settled ? t.titleApprove : titleFor(t, intent) }),
|
|
1372
1490
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx("body-text"), children: body }),
|
|
1373
1491
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("qr-well"), "data-spent": settled, children: [
|
|
1374
1492
|
/* @__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") }) }),
|
|
@@ -1391,7 +1509,7 @@ function PairingModal({
|
|
|
1391
1509
|
] }),
|
|
1392
1510
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx("footer"), children: [
|
|
1393
1511
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)("button", { type: "button", className: cx("cancel"), onClick: onCancel, children: t.cancel }),
|
|
1394
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("
|
|
1512
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("a", { className: cx("secured"), href: "https://zoreal.com", target: "_blank", rel: "noopener", children: [
|
|
1395
1513
|
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(IconShield, {}),
|
|
1396
1514
|
t.secured
|
|
1397
1515
|
] })
|
|
@@ -1432,6 +1550,7 @@ function ZorealOAuthProvider({
|
|
|
1432
1550
|
{
|
|
1433
1551
|
state: pairing.state,
|
|
1434
1552
|
qrUrl: pairing.qrUrl,
|
|
1553
|
+
intent: pairing.intent,
|
|
1435
1554
|
onCancel: pairing.cancel,
|
|
1436
1555
|
locale,
|
|
1437
1556
|
theme,
|
|
@@ -1683,6 +1802,7 @@ function useZorealFlow(options) {
|
|
|
1683
1802
|
const nonce = generateState();
|
|
1684
1803
|
const display = resolveDisplay(opts.display);
|
|
1685
1804
|
const useAppLink = display === "link";
|
|
1805
|
+
const intent = resolveIntent(opts.intent, opts.scope, opts.acr_values);
|
|
1686
1806
|
try {
|
|
1687
1807
|
const started = await startPairing(issuer, {
|
|
1688
1808
|
client_id: clientId,
|
|
@@ -1713,6 +1833,7 @@ function useZorealFlow(options) {
|
|
|
1713
1833
|
const surface = {
|
|
1714
1834
|
pairUrl: started.pair_url,
|
|
1715
1835
|
appLink: useAppLink,
|
|
1836
|
+
intent,
|
|
1716
1837
|
cancel,
|
|
1717
1838
|
// The app link has no QR and therefore no cadence to report.
|
|
1718
1839
|
...useAppLink ? null : { qrRefreshSeconds }
|
|
@@ -1728,7 +1849,7 @@ function useZorealFlow(options) {
|
|
|
1728
1849
|
};
|
|
1729
1850
|
setPairing(active);
|
|
1730
1851
|
if (!useAppLink) {
|
|
1731
|
-
publishRef.current?.({ state: active.state, qrUrl, cancel });
|
|
1852
|
+
publishRef.current?.({ state: active.state, qrUrl, intent, cancel });
|
|
1732
1853
|
}
|
|
1733
1854
|
opts.onPairingStateChange?.(active.state);
|
|
1734
1855
|
if (useAppLink) {
|
|
@@ -1744,7 +1865,7 @@ function useZorealFlow(options) {
|
|
|
1744
1865
|
(p) => p && p.requestId === started.request_id ? { ...p, qrUrl, state: enriched } : p
|
|
1745
1866
|
);
|
|
1746
1867
|
if (!useAppLink) {
|
|
1747
|
-
publishRef.current?.({ state: enriched, qrUrl, cancel });
|
|
1868
|
+
publishRef.current?.({ state: enriched, qrUrl, intent, cancel });
|
|
1748
1869
|
}
|
|
1749
1870
|
opts.onPairingStateChange?.(enriched);
|
|
1750
1871
|
},
|
|
@@ -1819,7 +1940,7 @@ function useZorealLogin(options) {
|
|
|
1819
1940
|
// src/ZorealLogin.tsx
|
|
1820
1941
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
1821
1942
|
var TEXTS = {
|
|
1822
|
-
continue_with:
|
|
1943
|
+
continue_with: null,
|
|
1823
1944
|
signin_with: "Sign in with ZOREAL",
|
|
1824
1945
|
signup_with: "Sign up with ZOREAL",
|
|
1825
1946
|
signin: "Sign in",
|
|
@@ -1846,6 +1967,8 @@ function ZorealLogin(props) {
|
|
|
1846
1967
|
flow = "browser-direct",
|
|
1847
1968
|
...request
|
|
1848
1969
|
} = props;
|
|
1970
|
+
const { locale } = useZorealOAuth();
|
|
1971
|
+
const label = TEXTS[text] ?? strings(locale).buttonContinue;
|
|
1849
1972
|
const { login } = useZorealFlow({
|
|
1850
1973
|
...request,
|
|
1851
1974
|
flow,
|
|
@@ -1884,7 +2007,7 @@ function ZorealLogin(props) {
|
|
|
1884
2007
|
},
|
|
1885
2008
|
children: [
|
|
1886
2009
|
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ZorealMark, { size: Math.round(s.font * 1.25) }),
|
|
1887
|
-
type === "standard" &&
|
|
2010
|
+
type === "standard" && label
|
|
1888
2011
|
]
|
|
1889
2012
|
}
|
|
1890
2013
|
) });
|
|
@@ -1937,6 +2060,7 @@ function hasGrantedAnyScopeZoreal(response, firstScope, ...restScopes) {
|
|
|
1937
2060
|
ZorealOAuthProvider,
|
|
1938
2061
|
hasGrantedAllScopesZoreal,
|
|
1939
2062
|
hasGrantedAnyScopeZoreal,
|
|
2063
|
+
resolveIntent,
|
|
1940
2064
|
useZorealAutoLogin,
|
|
1941
2065
|
useZorealLogin,
|
|
1942
2066
|
useZorealOAuth,
|