@oxy.so/core 1.16.0 → 1.18.1

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.
Files changed (109) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/HttpService.js +30 -1
  3. package/dist/cjs/crypto/identityLink.js +18 -0
  4. package/dist/cjs/i18n/locales/ar-SA.json +78 -3
  5. package/dist/cjs/i18n/locales/ca-ES.json +78 -3
  6. package/dist/cjs/i18n/locales/de-DE.json +78 -3
  7. package/dist/cjs/i18n/locales/en-US.json +75 -28
  8. package/dist/cjs/i18n/locales/es-ES.json +75 -28
  9. package/dist/cjs/i18n/locales/fr-FR.json +78 -3
  10. package/dist/cjs/i18n/locales/it-IT.json +78 -3
  11. package/dist/cjs/i18n/locales/ja-JP.json +78 -3
  12. package/dist/cjs/i18n/locales/ko-KR.json +78 -3
  13. package/dist/cjs/i18n/locales/locales/ar-SA.json +78 -3
  14. package/dist/cjs/i18n/locales/locales/ca-ES.json +78 -3
  15. package/dist/cjs/i18n/locales/locales/de-DE.json +78 -3
  16. package/dist/cjs/i18n/locales/locales/en-US.json +75 -28
  17. package/dist/cjs/i18n/locales/locales/es-ES.json +75 -28
  18. package/dist/cjs/i18n/locales/locales/fr-FR.json +78 -3
  19. package/dist/cjs/i18n/locales/locales/it-IT.json +78 -3
  20. package/dist/cjs/i18n/locales/locales/ja-JP.json +78 -3
  21. package/dist/cjs/i18n/locales/locales/ko-KR.json +78 -3
  22. package/dist/cjs/i18n/locales/locales/pt-PT.json +78 -3
  23. package/dist/cjs/i18n/locales/locales/zh-CN.json +78 -3
  24. package/dist/cjs/i18n/locales/pt-PT.json +78 -3
  25. package/dist/cjs/i18n/locales/zh-CN.json +78 -3
  26. package/dist/cjs/index.js +9 -42
  27. package/dist/cjs/mixins/OxyServices.auth.js +110 -17
  28. package/dist/cjs/mixins/OxyServices.identity.js +128 -8
  29. package/dist/cjs/mixins/OxyServices.user.js +42 -7
  30. package/dist/cjs/utils/authWebUrl.js +4 -5
  31. package/dist/esm/.tsbuildinfo +1 -1
  32. package/dist/esm/HttpService.js +30 -1
  33. package/dist/esm/crypto/identityLink.js +15 -0
  34. package/dist/esm/i18n/locales/ar-SA.json +78 -3
  35. package/dist/esm/i18n/locales/ca-ES.json +78 -3
  36. package/dist/esm/i18n/locales/de-DE.json +78 -3
  37. package/dist/esm/i18n/locales/en-US.json +75 -28
  38. package/dist/esm/i18n/locales/es-ES.json +75 -28
  39. package/dist/esm/i18n/locales/fr-FR.json +78 -3
  40. package/dist/esm/i18n/locales/it-IT.json +78 -3
  41. package/dist/esm/i18n/locales/ja-JP.json +78 -3
  42. package/dist/esm/i18n/locales/ko-KR.json +78 -3
  43. package/dist/esm/i18n/locales/locales/ar-SA.json +78 -3
  44. package/dist/esm/i18n/locales/locales/ca-ES.json +78 -3
  45. package/dist/esm/i18n/locales/locales/de-DE.json +78 -3
  46. package/dist/esm/i18n/locales/locales/en-US.json +75 -28
  47. package/dist/esm/i18n/locales/locales/es-ES.json +75 -28
  48. package/dist/esm/i18n/locales/locales/fr-FR.json +78 -3
  49. package/dist/esm/i18n/locales/locales/it-IT.json +78 -3
  50. package/dist/esm/i18n/locales/locales/ja-JP.json +78 -3
  51. package/dist/esm/i18n/locales/locales/ko-KR.json +78 -3
  52. package/dist/esm/i18n/locales/locales/pt-PT.json +78 -3
  53. package/dist/esm/i18n/locales/locales/zh-CN.json +78 -3
  54. package/dist/esm/i18n/locales/pt-PT.json +78 -3
  55. package/dist/esm/i18n/locales/zh-CN.json +78 -3
  56. package/dist/esm/index.js +4 -4
  57. package/dist/esm/mixins/OxyServices.auth.js +110 -17
  58. package/dist/esm/mixins/OxyServices.identity.js +128 -8
  59. package/dist/esm/mixins/OxyServices.user.js +42 -7
  60. package/dist/esm/utils/authWebUrl.js +4 -5
  61. package/dist/types/.tsbuildinfo +1 -1
  62. package/dist/types/HttpService.d.ts +21 -0
  63. package/dist/types/crypto/identityLink.d.ts +8 -0
  64. package/dist/types/index.d.ts +2 -5
  65. package/dist/types/mixins/OxyServices.auth.d.ts +68 -25
  66. package/dist/types/mixins/OxyServices.identity.d.ts +34 -34
  67. package/dist/types/mixins/OxyServices.user.d.ts +29 -6
  68. package/dist/types/models/interfaces.d.ts +67 -13
  69. package/dist/types/server/securityHeaders.d.ts +3 -3
  70. package/dist/types/utils/authWebUrl.d.ts +4 -5
  71. package/package.json +3 -3
  72. package/src/HttpService.ts +35 -1
  73. package/src/__tests__/serviceIdentityWhenAnonymous.test.ts +159 -0
  74. package/src/crypto/__tests__/identityLink.test.ts +18 -0
  75. package/src/crypto/__tests__/identityProof.test.ts +6 -6
  76. package/src/crypto/identityLink.ts +18 -0
  77. package/src/i18n/locales/ar-SA.json +78 -3
  78. package/src/i18n/locales/ca-ES.json +78 -3
  79. package/src/i18n/locales/de-DE.json +78 -3
  80. package/src/i18n/locales/en-US.json +75 -28
  81. package/src/i18n/locales/es-ES.json +75 -28
  82. package/src/i18n/locales/fr-FR.json +78 -3
  83. package/src/i18n/locales/it-IT.json +78 -3
  84. package/src/i18n/locales/ja-JP.json +78 -3
  85. package/src/i18n/locales/ko-KR.json +78 -3
  86. package/src/i18n/locales/pt-PT.json +78 -3
  87. package/src/i18n/locales/zh-CN.json +78 -3
  88. package/src/index.ts +6 -48
  89. package/src/mixins/OxyServices.auth.ts +127 -24
  90. package/src/mixins/OxyServices.identity.ts +126 -8
  91. package/src/mixins/OxyServices.user.ts +51 -10
  92. package/src/mixins/__tests__/identityLink.test.ts +89 -0
  93. package/src/mixins/__tests__/notifications.read.test.ts +82 -0
  94. package/src/mixins/__tests__/preSessionSkipAuth.test.ts +1 -1
  95. package/src/mixins/__tests__/webauthnAuth.test.ts +75 -1
  96. package/src/models/interfaces.ts +67 -12
  97. package/src/server/securityHeaders.ts +3 -3
  98. package/src/utils/authWebUrl.ts +4 -5
  99. package/dist/cjs/crypto/identityMove.js +0 -142
  100. package/dist/cjs/crypto/webIdentityCarrier.js +0 -325
  101. package/dist/esm/crypto/identityMove.js +0 -128
  102. package/dist/esm/crypto/webIdentityCarrier.js +0 -303
  103. package/dist/types/crypto/identityMove.d.ts +0 -75
  104. package/dist/types/crypto/webIdentityCarrier.d.ts +0 -150
  105. package/src/crypto/__tests__/identityMove.test.ts +0 -146
  106. package/src/crypto/__tests__/webIdentityCarrier.test.ts +0 -169
  107. package/src/crypto/__tests__/webIdentityRecoveryMaterial.test.ts +0 -117
  108. package/src/crypto/identityMove.ts +0 -167
  109. package/src/crypto/webIdentityCarrier.ts +0 -394
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Créez votre identité dans Commons",
51
51
  "createAccount": "Créer un compte",
52
52
  "backToSignInLink": "Vous avez déjà un compte ? Connectez-vous",
53
- "webSubtitle": "Pas de mot de passe. Votre appareil crée une clé d’accès et votre compte reçoit une phrase de récupération que vous seul conservez."
53
+ "webSubtitle": "Sans mot de passe : votre appareil crée une passkey, et un e-mail de récupération vous permet de revenir si vous la perdez.",
54
+ "username": {
55
+ "label": "Nom d'utilisateur",
56
+ "placeholder": "votrenom",
57
+ "required": "Choisissez un nom d'utilisateur.",
58
+ "taken": "Ce nom d'utilisateur est déjà pris."
59
+ },
60
+ "email": {
61
+ "title": "Votre e-mail de récupération",
62
+ "subtitle": "Si vous perdez votre passkey, nous vous y envoyons un code pour revenir. Il ne sert à rien d'autre.",
63
+ "label": "E-mail",
64
+ "placeholder": "vous@exemple.com",
65
+ "invalid": "Saisissez une adresse e-mail valide."
66
+ },
67
+ "passkey": {
68
+ "title": "Créez votre passkey",
69
+ "subtitle": "Elle sert à vous connecter : empreinte, visage ou verrouillage d'écran. Rien à retenir.",
70
+ "action": "Créer la passkey"
71
+ },
72
+ "commonsInstead": "Vous voulez garder votre propre clé ? Utilisez Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "Chargement des comptes...",
@@ -225,7 +244,63 @@
225
244
  "help": "Aide et commentaires",
226
245
  "signOut": "Se déconnecter",
227
246
  "privacy": "Politique de confidentialité",
228
- "terms": "Conditions d'utilisation",
229
- "identity": "Votre identité"
247
+ "terms": "Conditions d'utilisation"
248
+ },
249
+ "recover": {
250
+ "title": "Récupérez votre compte",
251
+ "subtitle": "Saisissez votre nom d'utilisateur ou votre e-mail de récupération. Nous enverrons un code à l'e-mail de récupération du compte.",
252
+ "identifier": {
253
+ "label": "Nom d'utilisateur ou e-mail",
254
+ "placeholder": "votrenom",
255
+ "required": "Saisissez votre nom d'utilisateur ou votre e-mail."
256
+ },
257
+ "commonsNote": "Votre compte utilise Commons ? Récupérez-le dans Commons avec votre phrase de récupération.",
258
+ "passkey": {
259
+ "title": "Ajoutez une nouvelle passkey",
260
+ "subtitle": "Pour @{{username}}. Retirez les passkeys perdues plus tard dans les réglages de sécurité de votre compte.",
261
+ "action": "Créer la passkey"
262
+ },
263
+ "backToSignIn": "Revenir à la connexion"
264
+ },
265
+ "emailCode": {
266
+ "title": "Consultez vos e-mails",
267
+ "sentTo": "Nous avons envoyé un code à 6 chiffres à {{email}}.",
268
+ "sentIfAccount": "Si ce compte a un e-mail de récupération, nous y avons envoyé un code à 6 chiffres.",
269
+ "label": "Code",
270
+ "resend": "Envoyer un nouveau code",
271
+ "resent": "Nous avons envoyé un nouveau code.",
272
+ "changeEmail": "Utiliser un autre e-mail",
273
+ "errors": {
274
+ "codeInvalid": "Ce code n'est pas bon, ou il a expiré.",
275
+ "tooManyAttempts": "Trop de codes erronés. Demandez-en un nouveau.",
276
+ "expired": "Trop de temps a passé. Recommencez.",
277
+ "unavailable": "Oxy ne peut pas envoyer d'e-mails pour le moment. Réessayez plus tard.",
278
+ "rateLimited": "Trop de codes. Réessayez plus tard."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Confirmez avec votre passkey. @{{username}} et tout son contenu sont supprimés définitivement.",
284
+ "action": "Supprimer avec la passkey",
285
+ "done": "Votre compte est supprimé.",
286
+ "closeWindow": "Vous pouvez fermer cette fenêtre.",
287
+ "commons": "Ce compte utilise Commons : supprimez-le dans Oxy Commons, Réglages > Supprimer le compte, avec sa clé."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Associer Commons",
292
+ "subtitle": "Gardez votre propre clé : associez Commons et ce compte n'appartient qu'à vous. Son e-mail de récupération est supprimé, et votre phrase de récupération dans Commons vous permet d'y revenir.",
293
+ "scan": "Sur votre téléphone, ouvrez Commons, choisissez « J’ai un compte Oxy sur le web » et scannez ce code.",
294
+ "waiting": "En attente de Commons…",
295
+ "compareTitle": "Vérifiez le code",
296
+ "compare": "Commons affiche le même code. Sinon, annulez.",
297
+ "confirm": "Oui, associer Commons",
298
+ "cancel": "Annuler",
299
+ "doneTitle": "Commons est associé",
300
+ "done": "Ce compte est désormais en autogarde. Son e-mail de récupération a été supprimé : votre phrase de récupération dans Commons vous permet d’y revenir.",
301
+ "already": "Ce compte utilise déjà Commons.",
302
+ "expired": "Ce code a expiré.",
303
+ "renew": "Afficher un nouveau code",
304
+ "failed": "Commons n'a pas pu être associé. Réessayez."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Crea la tua identità in Commons",
51
51
  "createAccount": "Crea account",
52
52
  "backToSignInLink": "Hai già un account? Accedi",
53
- "webSubtitle": "Nessuna password. Il tuo dispositivo crea una passkey e il tuo account riceve una frase di recupero che conservi solo tu."
53
+ "webSubtitle": "Niente password: il tuo dispositivo crea una passkey e un'email di recupero ti fa rientrare se la perdi.",
54
+ "username": {
55
+ "label": "Nome utente",
56
+ "placeholder": "iltuonome",
57
+ "required": "Scegli un nome utente.",
58
+ "taken": "Questo nome utente è già in uso."
59
+ },
60
+ "email": {
61
+ "title": "La tua email di recupero",
62
+ "subtitle": "Se perdi la passkey, ti mandiamo qui un codice per rientrare. Non viene usata per nient’altro.",
63
+ "label": "Email",
64
+ "placeholder": "tu@esempio.it",
65
+ "invalid": "Inserisci un'email valida."
66
+ },
67
+ "passkey": {
68
+ "title": "Crea la tua passkey",
69
+ "subtitle": "La usi per accedere: impronta, volto o blocco schermo. Niente da ricordare.",
70
+ "action": "Crea passkey"
71
+ },
72
+ "commonsInstead": "Vuoi tenere la tua chiave? Usa Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "Caricamento account...",
@@ -225,7 +244,63 @@
225
244
  "help": "Aiuto e feedback",
226
245
  "signOut": "Esci",
227
246
  "privacy": "Informativa sulla privacy",
228
- "terms": "Termini di servizio",
229
- "identity": "La tua identità"
247
+ "terms": "Termini di servizio"
248
+ },
249
+ "recover": {
250
+ "title": "Recupera il tuo account",
251
+ "subtitle": "Inserisci il nome utente o l'email di recupero. Invieremo un codice all'email di recupero dell'account.",
252
+ "identifier": {
253
+ "label": "Nome utente o email",
254
+ "placeholder": "iltuonome",
255
+ "required": "Inserisci il nome utente o l’email."
256
+ },
257
+ "commonsNote": "Il tuo account usa Commons? Recuperalo in Commons con la frase di recupero.",
258
+ "passkey": {
259
+ "title": "Aggiungi una nuova passkey",
260
+ "subtitle": "Per @{{username}}. Rimuovi più tardi le passkey perse nelle impostazioni di sicurezza dell'account.",
261
+ "action": "Crea passkey"
262
+ },
263
+ "backToSignIn": "Torna all'accesso"
264
+ },
265
+ "emailCode": {
266
+ "title": "Controlla la tua email",
267
+ "sentTo": "Abbiamo inviato un codice di 6 cifre a {{email}}.",
268
+ "sentIfAccount": "Se questo account ha un'email di recupero, le abbiamo inviato un codice di 6 cifre.",
269
+ "label": "Codice",
270
+ "resend": "Invia un nuovo codice",
271
+ "resent": "Abbiamo inviato un nuovo codice.",
272
+ "changeEmail": "Usa un'altra email",
273
+ "errors": {
274
+ "codeInvalid": "Il codice non è corretto o è scaduto.",
275
+ "tooManyAttempts": "Troppi codici errati. Chiedine uno nuovo.",
276
+ "expired": "È passato troppo tempo. Ricomincia.",
277
+ "unavailable": "Oxy non può inviare email ora. Riprova più tardi.",
278
+ "rateLimited": "Troppi codici. Riprova più tardi."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Conferma con la tua passkey. @{{username}} e tutto il suo contenuto vengono eliminati per sempre.",
284
+ "action": "Elimina con passkey",
285
+ "done": "Il tuo account è stato eliminato.",
286
+ "closeWindow": "Puoi chiudere questa finestra.",
287
+ "commons": "Questo account usa Commons: eliminalo in Oxy Commons, Impostazioni > Elimina account, con la sua chiave."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Collega Commons",
292
+ "subtitle": "Tieni la tua chiave: collega Commons e questo account sarà solo tuo. La sua email di recupero viene eliminata e la frase di recupero in Commons è il modo per rientrare.",
293
+ "scan": "Sul telefono, apri Commons, scegli «Ho un account Oxy sul web» e scansiona questo codice.",
294
+ "waiting": "In attesa di Commons…",
295
+ "compareTitle": "Controlla il codice",
296
+ "compare": "Commons mostra lo stesso codice. Se non è così, annulla.",
297
+ "confirm": "Sì, collega Commons",
298
+ "cancel": "Annulla",
299
+ "doneTitle": "Commons è collegato",
300
+ "done": "Questo account ora è in autocustodia. La sua email di recupero è stata eliminata: la frase di recupero in Commons è il modo per rientrare.",
301
+ "already": "Questo account usa già Commons.",
302
+ "expired": "Questo codice è scaduto.",
303
+ "renew": "Mostra un nuovo codice",
304
+ "failed": "Non è stato possibile collegare Commons. Riprova."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Commonsであなたのアイデンティティを作成",
51
51
  "createAccount": "アカウントを作成",
52
52
  "backToSignInLink": "すでにアカウントをお持ちですか?サインイン",
53
- "webSubtitle": "パスワードは不要です。デバイスがパスキーを作成し、アカウントにはあなただけが保管する復元フレーズが付きます。"
53
+ "webSubtitle": "パスワードは不要です。デバイスがパスキーを作成し、なくした場合は復旧用メールで戻れます。",
54
+ "username": {
55
+ "label": "ユーザー名",
56
+ "placeholder": "yourname",
57
+ "required": "ユーザー名を選んでください。",
58
+ "taken": "そのユーザー名は使われています。"
59
+ },
60
+ "email": {
61
+ "title": "復旧用メール",
62
+ "subtitle": "パスキーをなくしたとき、戻るためのコードをここに送ります。それ以外には使いません。",
63
+ "label": "メール",
64
+ "placeholder": "you@example.com",
65
+ "invalid": "有効なメールアドレスを入力してください。"
66
+ },
67
+ "passkey": {
68
+ "title": "パスキーを作成",
69
+ "subtitle": "指紋、顔、画面ロックでサインインします。覚えることは何もありません。",
70
+ "action": "パスキーを作成"
71
+ },
72
+ "commonsInstead": "自分の鍵を持ちたいですか? Commons を使う"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "アカウントを読み込み中...",
@@ -225,7 +244,63 @@
225
244
  "help": "ヘルプとフィードバック",
226
245
  "signOut": "サインアウト",
227
246
  "privacy": "プライバシーポリシー",
228
- "terms": "利用規約",
229
- "identity": "あなたのアイデンティティ"
247
+ "terms": "利用規約"
248
+ },
249
+ "recover": {
250
+ "title": "アカウントを復旧",
251
+ "subtitle": "ユーザー名か復旧用メールを入力してください。アカウントの復旧用メールにコードを送ります。",
252
+ "identifier": {
253
+ "label": "ユーザー名またはメール",
254
+ "placeholder": "yourname",
255
+ "required": "ユーザー名かメールを入力してください。"
256
+ },
257
+ "commonsNote": "Commons を使うアカウントですか? Commons で復旧フレーズを使って復旧してください。",
258
+ "passkey": {
259
+ "title": "新しいパスキーを追加",
260
+ "subtitle": "@{{username}} 用。なくしたパスキーは後でアカウントのセキュリティ設定から削除できます。",
261
+ "action": "パスキーを作成"
262
+ },
263
+ "backToSignIn": "サインインに戻る"
264
+ },
265
+ "emailCode": {
266
+ "title": "メールを確認",
267
+ "sentTo": "{{email}} に6桁のコードを送りました。",
268
+ "sentIfAccount": "このアカウントに復旧用メールがあれば、6桁のコードを送りました。",
269
+ "label": "コード",
270
+ "resend": "新しいコードを送る",
271
+ "resent": "新しいコードを送りました。",
272
+ "changeEmail": "別のメールを使う",
273
+ "errors": {
274
+ "codeInvalid": "コードが正しくないか、有効期限が切れています。",
275
+ "tooManyAttempts": "間違ったコードが多すぎます。新しいコードを請求してください。",
276
+ "expired": "時間がかかりすぎました。最初からやり直してください。",
277
+ "unavailable": "現在 Oxy はメールを送信できません。後でもう一度お試しください。",
278
+ "rateLimited": "コードが多すぎます。後でもう一度お試しください。"
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "パスキーで確認してください。@{{username}} とそのすべてが完全に削除されます。",
284
+ "action": "パスキーで削除",
285
+ "done": "アカウントを削除しました。",
286
+ "closeWindow": "このウィンドウは閉じてかまいません。",
287
+ "commons": "このアカウントは Commons を使っています。Oxy Commons の 設定 > アカウントを削除 から、その鍵で削除してください。"
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Commons をリンク",
292
+ "subtitle": "自分の鍵を持ちましょう。Commons をリンクすると、このアカウントはあなただけのものになります。復旧用メールは削除され、Commons の復旧フレーズで戻れるようになります。",
293
+ "scan": "スマートフォンで Commons を開き、「Web に Oxy アカウントがあります」を選んで、このコードをスキャンしてください。",
294
+ "waiting": "Commons を待っています…",
295
+ "compareTitle": "コードを確認",
296
+ "compare": "Commons に同じコードが表示されます。違う場合はキャンセルしてください。",
297
+ "confirm": "はい、Commons をリンク",
298
+ "cancel": "キャンセル",
299
+ "doneTitle": "Commons をリンクしました",
300
+ "done": "このアカウントは自己管理になりました。復旧用メールは削除されました。Commons の復旧フレーズで戻れます。",
301
+ "already": "このアカウントはすでに Commons を使っています。",
302
+ "expired": "このコードは期限切れです。",
303
+ "renew": "新しいコードを表示",
304
+ "failed": "Commons をリンクできませんでした。もう一度お試しください。"
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Commons에서 나의 아이덴티티 만들기",
51
51
  "createAccount": "계정 만들기",
52
52
  "backToSignInLink": "이미 계정이 있으신가요? 로그인",
53
- "webSubtitle": "비밀번호가 없습니다. 기기가 패스키를 만들고, 계정에는 본인만 보관하는 복구 문구가 생깁니다."
53
+ "webSubtitle": "비밀번호가 없습니다. 기기가 패스키를 만들고, 잃어버리면 복구 이메일로 다시 들어올 수 있습니다.",
54
+ "username": {
55
+ "label": "사용자 이름",
56
+ "placeholder": "yourname",
57
+ "required": "사용자 이름을 정하세요.",
58
+ "taken": "이미 사용 중인 사용자 이름입니다."
59
+ },
60
+ "email": {
61
+ "title": "복구 이메일",
62
+ "subtitle": "패스키를 잃어버리면 다시 들어올 수 있도록 여기로 코드를 보냅니다. 다른 용도로는 쓰지 않습니다.",
63
+ "label": "이메일",
64
+ "placeholder": "you@example.com",
65
+ "invalid": "올바른 이메일 주소를 입력하세요."
66
+ },
67
+ "passkey": {
68
+ "title": "패스키 만들기",
69
+ "subtitle": "지문, 얼굴 또는 화면 잠금으로 로그인합니다. 기억할 것은 없습니다.",
70
+ "action": "패스키 만들기"
71
+ },
72
+ "commonsInstead": "직접 키를 보관하고 싶으신가요? Commons 사용하기"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "계정을 불러오는 중...",
@@ -225,7 +244,63 @@
225
244
  "help": "도움말 및 피드백",
226
245
  "signOut": "로그아웃",
227
246
  "privacy": "개인정보 처리방침",
228
- "terms": "서비스 약관",
229
- "identity": "내 아이덴티티"
247
+ "terms": "서비스 약관"
248
+ },
249
+ "recover": {
250
+ "title": "계정 복구",
251
+ "subtitle": "사용자 이름이나 복구 이메일을 입력하세요. 계정의 복구 이메일로 코드를 보냅니다.",
252
+ "identifier": {
253
+ "label": "사용자 이름 또는 이메일",
254
+ "placeholder": "yourname",
255
+ "required": "사용자 이름이나 이메일을 입력하세요."
256
+ },
257
+ "commonsNote": "Commons를 쓰는 계정인가요? Commons에서 복구 문구로 복구하세요.",
258
+ "passkey": {
259
+ "title": "새 패스키 추가",
260
+ "subtitle": "@{{username}}용. 잃어버린 패스키는 나중에 계정 보안 설정에서 삭제하세요.",
261
+ "action": "패스키 만들기"
262
+ },
263
+ "backToSignIn": "로그인으로 돌아가기"
264
+ },
265
+ "emailCode": {
266
+ "title": "이메일을 확인하세요",
267
+ "sentTo": "{{email}}(으)로 6자리 코드를 보냈습니다.",
268
+ "sentIfAccount": "이 계정에 복구 이메일이 있다면 6자리 코드를 보냈습니다.",
269
+ "label": "코드",
270
+ "resend": "새 코드 보내기",
271
+ "resent": "새 코드를 보냈습니다.",
272
+ "changeEmail": "다른 이메일 사용",
273
+ "errors": {
274
+ "codeInvalid": "코드가 올바르지 않거나 만료되었습니다.",
275
+ "tooManyAttempts": "틀린 코드가 너무 많습니다. 새 코드를 요청하세요.",
276
+ "expired": "시간이 너무 오래 걸렸습니다. 다시 시작하세요.",
277
+ "unavailable": "지금은 Oxy가 이메일을 보낼 수 없습니다. 나중에 다시 시도하세요.",
278
+ "rateLimited": "코드가 너무 많습니다. 나중에 다시 시도하세요."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "패스키로 확인하세요. @{{username}}과(와) 그 안의 모든 것이 영구적으로 삭제됩니다.",
284
+ "action": "패스키로 삭제",
285
+ "done": "계정이 삭제되었습니다.",
286
+ "closeWindow": "이 창을 닫아도 됩니다.",
287
+ "commons": "이 계정은 Commons를 사용합니다. Oxy Commons의 설정 > 계정 삭제에서 해당 키로 삭제하세요."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Commons 연결",
292
+ "subtitle": "직접 키를 보관하세요. Commons를 연결하면 이 계정은 오직 당신의 것이 됩니다. 복구 이메일은 삭제되고, Commons의 복구 문구로 다시 들어올 수 있습니다.",
293
+ "scan": "휴대폰에서 Commons를 열고 “웹에 Oxy 계정이 있어요”를 선택한 다음 이 코드를 스캔하세요.",
294
+ "waiting": "Commons를 기다리는 중…",
295
+ "compareTitle": "코드 확인",
296
+ "compare": "Commons에 같은 코드가 표시됩니다. 다르면 취소하세요.",
297
+ "confirm": "네, Commons 연결",
298
+ "cancel": "취소",
299
+ "doneTitle": "Commons가 연결되었습니다",
300
+ "done": "이 계정은 이제 자기 보관 계정입니다. 복구 이메일은 삭제되었습니다. Commons의 복구 문구로 다시 들어올 수 있습니다.",
301
+ "already": "이 계정은 이미 Commons를 사용합니다.",
302
+ "expired": "이 코드는 만료되었습니다.",
303
+ "renew": "새 코드 보기",
304
+ "failed": "Commons를 연결하지 못했습니다. 다시 시도하세요."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "أنشئ هويتك في Commons",
51
51
  "createAccount": "إنشاء حساب",
52
52
  "backToSignInLink": "لديك حساب بالفعل؟ سجّل الدخول",
53
- "webSubtitle": "بلا كلمة مرور. ينشئ جهازك مفتاح مرور، ويحصل حسابك على عبارة استرداد تحتفظ بها أنت وحدك."
53
+ "webSubtitle": "بلا كلمة مرور: ينشئ جهازك مفتاح مرور، ويعيدك بريد الاسترداد إذا فقدته.",
54
+ "username": {
55
+ "label": "اسم المستخدم",
56
+ "placeholder": "yourname",
57
+ "required": "اختر اسم مستخدم.",
58
+ "taken": "اسم المستخدم هذا مستخدم بالفعل."
59
+ },
60
+ "email": {
61
+ "title": "بريد الاسترداد",
62
+ "subtitle": "إذا فقدت مفتاح المرور، نرسل إلى هنا رمزًا لتعود. لا يُستخدم لأي شيء آخر.",
63
+ "label": "البريد الإلكتروني",
64
+ "placeholder": "you@example.com",
65
+ "invalid": "أدخل بريدًا إلكترونيًا صالحًا."
66
+ },
67
+ "passkey": {
68
+ "title": "أنشئ مفتاح المرور",
69
+ "subtitle": "تسجّل الدخول به: ببصمتك أو وجهك أو قفل الشاشة. لا شيء تتذكره.",
70
+ "action": "إنشاء مفتاح مرور"
71
+ },
72
+ "commonsInstead": "تريد الاحتفاظ بمفتاحك بنفسك؟ استخدم Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "جارٍ تحميل الحسابات...",
@@ -225,7 +244,63 @@
225
244
  "help": "المساعدة والملاحظات",
226
245
  "signOut": "تسجيل الخروج",
227
246
  "privacy": "سياسة الخصوصية",
228
- "terms": "شروط الخدمة",
229
- "identity": "هويتك"
247
+ "terms": "شروط الخدمة"
248
+ },
249
+ "recover": {
250
+ "title": "استرد حسابك",
251
+ "subtitle": "أدخل اسم المستخدم أو بريد الاسترداد. سنرسل رمزًا إلى بريد الاسترداد الخاص بالحساب.",
252
+ "identifier": {
253
+ "label": "اسم المستخدم أو البريد",
254
+ "placeholder": "yourname",
255
+ "required": "أدخل اسم المستخدم أو البريد."
256
+ },
257
+ "commonsNote": "هل يستخدم حسابك Commons؟ استرده في Commons بعبارة الاسترداد.",
258
+ "passkey": {
259
+ "title": "أضف مفتاح مرور جديدًا",
260
+ "subtitle": "لـ @{{username}}. أزل مفاتيح المرور المفقودة لاحقًا من إعدادات أمان حسابك.",
261
+ "action": "إنشاء مفتاح مرور"
262
+ },
263
+ "backToSignIn": "العودة إلى تسجيل الدخول"
264
+ },
265
+ "emailCode": {
266
+ "title": "تحقق من بريدك",
267
+ "sentTo": "أرسلنا رمزًا من 6 أرقام إلى {{email}}.",
268
+ "sentIfAccount": "إذا كان لهذا الحساب بريد استرداد، فقد أرسلنا إليه رمزًا من 6 أرقام.",
269
+ "label": "الرمز",
270
+ "resend": "أرسل رمزًا جديدًا",
271
+ "resent": "أرسلنا رمزًا جديدًا.",
272
+ "changeEmail": "استخدم بريدًا آخر",
273
+ "errors": {
274
+ "codeInvalid": "الرمز غير صحيح أو انتهت صلاحيته.",
275
+ "tooManyAttempts": "رموز خاطئة كثيرة. اطلب رمزًا جديدًا.",
276
+ "expired": "استغرق الأمر وقتًا طويلًا. ابدأ من جديد.",
277
+ "unavailable": "لا يستطيع Oxy إرسال البريد الآن. حاول لاحقًا.",
278
+ "rateLimited": "رموز كثيرة. حاول لاحقًا."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "أكّد بمفتاح المرور. سيُحذف @{{username}} وكل ما فيه نهائيًا.",
284
+ "action": "الحذف بمفتاح المرور",
285
+ "done": "حُذف حسابك.",
286
+ "closeWindow": "يمكنك إغلاق هذه النافذة.",
287
+ "commons": "يستخدم هذا الحساب Commons: احذفه في Oxy Commons من الإعدادات > حذف الحساب، بمفتاحه."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "اربط Commons",
292
+ "subtitle": "احتفظ بمفتاحك: اربط Commons ليصبح هذا الحساب لك وحدك. يُحذف بريد الاسترداد الخاص به، وتصبح عبارة الاسترداد في Commons طريقك للعودة.",
293
+ "scan": "على هاتفك، افتح Commons واختر «لدي حساب Oxy على الويب» ثم امسح هذا الرمز.",
294
+ "waiting": "بانتظار Commons…",
295
+ "compareTitle": "تحقق من الرمز",
296
+ "compare": "يعرض Commons الرمز نفسه. إن لم يكن كذلك، ألغِ العملية.",
297
+ "confirm": "نعم، اربط Commons",
298
+ "cancel": "إلغاء",
299
+ "doneTitle": "تم ربط Commons",
300
+ "done": "أصبح هذا الحساب ذاتي الحفظ. حُذف بريد الاسترداد الخاص به: عبارة الاسترداد في Commons هي طريقك للعودة.",
301
+ "already": "يستخدم هذا الحساب Commons بالفعل.",
302
+ "expired": "انتهت صلاحية هذا الرمز.",
303
+ "renew": "اعرض رمزًا جديدًا",
304
+ "failed": "تعذّر ربط Commons. حاول مجددًا."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Crea la teva identitat a Commons",
51
51
  "createAccount": "Crear compte",
52
52
  "backToSignInLink": "Ja tens compte? Inicia sessió",
53
- "webSubtitle": "Sense contrasenya. El teu dispositiu crea una passkey i el teu compte rep una frase de recuperació que només guardes tu."
53
+ "webSubtitle": "Sense contrasenya: el teu dispositiu crea una passkey i un correu de recuperació et torna l'accés si la perds.",
54
+ "username": {
55
+ "label": "Nom d'usuari",
56
+ "placeholder": "elteunom",
57
+ "required": "Tria un nom d'usuari.",
58
+ "taken": "Aquest nom d'usuari ja està agafat."
59
+ },
60
+ "email": {
61
+ "title": "El teu correu de recuperació",
62
+ "subtitle": "Si perds la passkey, t'hi enviem un codi per tornar a entrar. No s'utilitza per a res més.",
63
+ "label": "Correu",
64
+ "placeholder": "tu@exemple.com",
65
+ "invalid": "Escriu un correu vàlid."
66
+ },
67
+ "passkey": {
68
+ "title": "Crea la teva passkey",
69
+ "subtitle": "Hi inicies la sessió: l'empremta, la cara o el bloqueig de pantalla. No cal recordar res.",
70
+ "action": "Crea la passkey"
71
+ },
72
+ "commonsInstead": "Vols guardar la teva pròpia clau? Fes servir Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "S'estan carregant els comptes...",
@@ -225,7 +244,63 @@
225
244
  "help": "Ajuda i comentaris",
226
245
  "signOut": "Tancar sessió",
227
246
  "privacy": "Política de privacitat",
228
- "terms": "Condicions del servei",
229
- "identity": "La teva identitat"
247
+ "terms": "Condicions del servei"
248
+ },
249
+ "recover": {
250
+ "title": "Recupera el compte",
251
+ "subtitle": "Escriu el nom d'usuari o el correu de recuperació. Enviarem un codi al correu de recuperació del compte.",
252
+ "identifier": {
253
+ "label": "Usuari o correu",
254
+ "placeholder": "elteunom",
255
+ "required": "Escriu l'usuari o el correu."
256
+ },
257
+ "commonsNote": "El teu compte fa servir Commons? Recupera-lo a Commons amb la frase de recuperació.",
258
+ "passkey": {
259
+ "title": "Afegeix una passkey nova",
260
+ "subtitle": "Per a @{{username}}. Treu les passkeys perdudes més tard a la configuració de seguretat del compte.",
261
+ "action": "Crea la passkey"
262
+ },
263
+ "backToSignIn": "Torna a iniciar la sessió"
264
+ },
265
+ "emailCode": {
266
+ "title": "Mira el correu",
267
+ "sentTo": "Hem enviat un codi de 6 xifres a {{email}}.",
268
+ "sentIfAccount": "Si aquest compte té un correu de recuperació, li hem enviat un codi de 6 xifres.",
269
+ "label": "Codi",
270
+ "resend": "Envia un codi nou",
271
+ "resent": "T'hem enviat un codi nou.",
272
+ "changeEmail": "Fes servir un altre correu",
273
+ "errors": {
274
+ "codeInvalid": "Aquest codi no és correcte o ha caducat.",
275
+ "tooManyAttempts": "Massa codis incorrectes. Demana-ne un de nou.",
276
+ "expired": "Ha passat massa temps. Torna a començar.",
277
+ "unavailable": "Oxy no pot enviar correus ara. Torna-ho a provar més tard.",
278
+ "rateLimited": "Massa codis. Torna-ho a provar més tard."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Confirma amb la passkey. @{{username}} i tot el que conté s'eliminen per sempre.",
284
+ "action": "Elimina amb passkey",
285
+ "done": "El teu compte s'ha eliminat.",
286
+ "closeWindow": "Pots tancar aquesta finestra.",
287
+ "commons": "Aquest compte fa servir Commons: elimina'l a Oxy Commons, Configuració > Elimina el compte, amb la seva clau."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Vincula Commons",
292
+ "subtitle": "Guarda la teva pròpia clau: vincula Commons i aquest compte serà només teu. El seu correu de recuperació s'elimina, i la frase de recuperació de Commons és com hi tornes a entrar.",
293
+ "scan": "Al mòbil, obre Commons, tria «Tinc un compte d'Oxy al web» i escaneja aquest codi.",
294
+ "waiting": "Esperant Commons…",
295
+ "compareTitle": "Comprova el codi",
296
+ "compare": "Commons mostra el mateix codi. Si no és així, cancel·la.",
297
+ "confirm": "Sí, vincula Commons",
298
+ "cancel": "Cancel·la",
299
+ "doneTitle": "Commons està vinculat",
300
+ "done": "Aquest compte ara és d'autocustòdia. El seu correu de recuperació s'ha eliminat: la frase de recuperació de Commons és com hi tornes a entrar.",
301
+ "already": "Aquest compte ja fa servir Commons.",
302
+ "expired": "Aquest codi ha caducat.",
303
+ "renew": "Mostra un codi nou",
304
+ "failed": "No s'ha pogut vincular Commons. Torna-ho a provar."
230
305
  }
231
306
  }