@oxy.so/core 1.13.0 → 1.18.0

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 (117) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/crypto/identityLink.js +18 -0
  3. package/dist/cjs/i18n/locales/ar-SA.json +105 -85
  4. package/dist/cjs/i18n/locales/ca-ES.json +107 -87
  5. package/dist/cjs/i18n/locales/de-DE.json +105 -85
  6. package/dist/cjs/i18n/locales/en-US.json +105 -164
  7. package/dist/cjs/i18n/locales/es-ES.json +104 -163
  8. package/dist/cjs/i18n/locales/fr-FR.json +105 -85
  9. package/dist/cjs/i18n/locales/it-IT.json +105 -85
  10. package/dist/cjs/i18n/locales/ja-JP.json +105 -85
  11. package/dist/cjs/i18n/locales/ko-KR.json +105 -85
  12. package/dist/cjs/i18n/locales/locales/ar-SA.json +105 -85
  13. package/dist/cjs/i18n/locales/locales/ca-ES.json +107 -87
  14. package/dist/cjs/i18n/locales/locales/de-DE.json +105 -85
  15. package/dist/cjs/i18n/locales/locales/en-US.json +105 -164
  16. package/dist/cjs/i18n/locales/locales/es-ES.json +104 -163
  17. package/dist/cjs/i18n/locales/locales/fr-FR.json +105 -85
  18. package/dist/cjs/i18n/locales/locales/it-IT.json +105 -85
  19. package/dist/cjs/i18n/locales/locales/ja-JP.json +105 -85
  20. package/dist/cjs/i18n/locales/locales/ko-KR.json +105 -85
  21. package/dist/cjs/i18n/locales/locales/pt-PT.json +105 -85
  22. package/dist/cjs/i18n/locales/locales/zh-CN.json +106 -86
  23. package/dist/cjs/i18n/locales/pt-PT.json +105 -85
  24. package/dist/cjs/i18n/locales/zh-CN.json +106 -86
  25. package/dist/cjs/index.js +10 -43
  26. package/dist/cjs/mixins/OxyServices.auth.js +54 -16
  27. package/dist/cjs/mixins/OxyServices.identity.js +128 -8
  28. package/dist/cjs/mixins/OxyServices.user.js +42 -7
  29. package/dist/cjs/server/securityHeaders.js +19 -1
  30. package/dist/cjs/session/accountDialogController.js +37 -142
  31. package/dist/cjs/utils/authWebUrl.js +6 -6
  32. package/dist/cjs/utils/oauthPkce.js +5 -1
  33. package/dist/esm/.tsbuildinfo +1 -1
  34. package/dist/esm/crypto/identityLink.js +15 -0
  35. package/dist/esm/i18n/locales/ar-SA.json +105 -85
  36. package/dist/esm/i18n/locales/ca-ES.json +107 -87
  37. package/dist/esm/i18n/locales/de-DE.json +105 -85
  38. package/dist/esm/i18n/locales/en-US.json +105 -164
  39. package/dist/esm/i18n/locales/es-ES.json +104 -163
  40. package/dist/esm/i18n/locales/fr-FR.json +105 -85
  41. package/dist/esm/i18n/locales/it-IT.json +105 -85
  42. package/dist/esm/i18n/locales/ja-JP.json +105 -85
  43. package/dist/esm/i18n/locales/ko-KR.json +105 -85
  44. package/dist/esm/i18n/locales/locales/ar-SA.json +105 -85
  45. package/dist/esm/i18n/locales/locales/ca-ES.json +107 -87
  46. package/dist/esm/i18n/locales/locales/de-DE.json +105 -85
  47. package/dist/esm/i18n/locales/locales/en-US.json +105 -164
  48. package/dist/esm/i18n/locales/locales/es-ES.json +104 -163
  49. package/dist/esm/i18n/locales/locales/fr-FR.json +105 -85
  50. package/dist/esm/i18n/locales/locales/it-IT.json +105 -85
  51. package/dist/esm/i18n/locales/locales/ja-JP.json +105 -85
  52. package/dist/esm/i18n/locales/locales/ko-KR.json +105 -85
  53. package/dist/esm/i18n/locales/locales/pt-PT.json +105 -85
  54. package/dist/esm/i18n/locales/locales/zh-CN.json +106 -86
  55. package/dist/esm/i18n/locales/pt-PT.json +105 -85
  56. package/dist/esm/i18n/locales/zh-CN.json +106 -86
  57. package/dist/esm/index.js +5 -5
  58. package/dist/esm/mixins/OxyServices.auth.js +55 -17
  59. package/dist/esm/mixins/OxyServices.identity.js +128 -8
  60. package/dist/esm/mixins/OxyServices.user.js +42 -7
  61. package/dist/esm/server/securityHeaders.js +19 -1
  62. package/dist/esm/session/accountDialogController.js +37 -142
  63. package/dist/esm/utils/authWebUrl.js +5 -5
  64. package/dist/esm/utils/oauthPkce.js +5 -1
  65. package/dist/types/.tsbuildinfo +1 -1
  66. package/dist/types/crypto/identityLink.d.ts +8 -0
  67. package/dist/types/index.d.ts +5 -8
  68. package/dist/types/mixins/OxyServices.auth.d.ts +35 -25
  69. package/dist/types/mixins/OxyServices.identity.d.ts +34 -34
  70. package/dist/types/mixins/OxyServices.user.d.ts +29 -6
  71. package/dist/types/models/interfaces.d.ts +46 -13
  72. package/dist/types/server/securityHeaders.d.ts +9 -12
  73. package/dist/types/session/accountDialogController.d.ts +29 -98
  74. package/dist/types/utils/authWebUrl.d.ts +5 -5
  75. package/dist/types/utils/oauthPkce.d.ts +10 -0
  76. package/package.json +3 -3
  77. package/src/crypto/__tests__/identityLink.test.ts +18 -0
  78. package/src/crypto/__tests__/identityProof.test.ts +6 -6
  79. package/src/crypto/identityLink.ts +18 -0
  80. package/src/i18n/locales/ar-SA.json +105 -85
  81. package/src/i18n/locales/ca-ES.json +107 -87
  82. package/src/i18n/locales/de-DE.json +105 -85
  83. package/src/i18n/locales/en-US.json +105 -164
  84. package/src/i18n/locales/es-ES.json +104 -163
  85. package/src/i18n/locales/fr-FR.json +105 -85
  86. package/src/i18n/locales/it-IT.json +105 -85
  87. package/src/i18n/locales/ja-JP.json +105 -85
  88. package/src/i18n/locales/ko-KR.json +105 -85
  89. package/src/i18n/locales/pt-PT.json +105 -85
  90. package/src/i18n/locales/zh-CN.json +106 -86
  91. package/src/index.ts +8 -51
  92. package/src/mixins/OxyServices.auth.ts +72 -24
  93. package/src/mixins/OxyServices.identity.ts +126 -8
  94. package/src/mixins/OxyServices.user.ts +51 -10
  95. package/src/mixins/__tests__/identityLink.test.ts +89 -0
  96. package/src/mixins/__tests__/notifications.read.test.ts +82 -0
  97. package/src/mixins/__tests__/preSessionSkipAuth.test.ts +1 -1
  98. package/src/mixins/__tests__/webauthnAuth.test.ts +75 -1
  99. package/src/models/interfaces.ts +46 -12
  100. package/src/server/__tests__/securityHeaders.test.ts +17 -0
  101. package/src/server/securityHeaders.ts +29 -1
  102. package/src/session/__tests__/accountDialogController.test.ts +42 -184
  103. package/src/session/accountDialogController.ts +50 -185
  104. package/src/utils/__tests__/oauthPkce.test.ts +7 -0
  105. package/src/utils/authWebUrl.ts +5 -5
  106. package/src/utils/oauthPkce.ts +16 -1
  107. package/dist/cjs/crypto/identityMove.js +0 -142
  108. package/dist/cjs/crypto/webIdentityCarrier.js +0 -325
  109. package/dist/esm/crypto/identityMove.js +0 -128
  110. package/dist/esm/crypto/webIdentityCarrier.js +0 -303
  111. package/dist/types/crypto/identityMove.d.ts +0 -75
  112. package/dist/types/crypto/webIdentityCarrier.d.ts +0 -150
  113. package/src/crypto/__tests__/identityMove.test.ts +0 -146
  114. package/src/crypto/__tests__/webIdentityCarrier.test.ts +0 -169
  115. package/src/crypto/__tests__/webIdentityRecoveryMaterial.test.ts +0 -117
  116. package/src/crypto/identityMove.ts +0 -167
  117. package/src/crypto/webIdentityCarrier.ts +0 -394
@@ -1,53 +1,48 @@
1
1
  {
2
2
  "signin": {
3
3
  "title": "로그인",
4
- "subtitle": "계속하려면 로그인하세요",
4
+ "subtitle": "Oxy 계정 사용",
5
5
  "addAccountTitle": "다른 계정 추가",
6
6
  "addAccountSubtitle": "다른 계정으로 로그인",
7
7
  "username": {
8
8
  "label": "사용자 이름",
9
- "placeholder": "사용자 이름을 입력하세요",
10
- "helper": "3-30자, 영문과 숫자만",
11
- "required": "사용자 이름을 입력해주세요.",
12
- "minLength": "사용자 이름은 최소 3자 이상이어야 합니다."
13
- },
14
- "password": {
15
- "label": "비밀번호",
16
- "placeholder": "비밀번호를 입력하세요",
17
- "required": "비밀번호를 입력해주세요.",
18
- "hint": "로그인하려면 비밀번호를 입력하세요"
9
+ "placeholder": "yourname",
10
+ "required": "사용자 이름을 입력해주세요."
19
11
  },
20
12
  "actions": {
21
13
  "continue": "계속",
22
- "back": "뒤로",
23
- "signIn": "로그인",
24
- "verify": "확인",
25
- "openAccountSwitcher": "다른 계정으로 전환",
26
- "openAccountSwitcherSubtitle": "{{count}}개의 다른 계정 사용 가능",
27
- "openAccountSwitcherSubtitle_singular": "1개의 다른 계정 사용 가능",
28
- "openAccountSwitcherSubtitle_zero": "저장된 계정 검토",
29
- "manageAccounts": "저장된 계정 관리",
30
- "manageAccountsSubtitle": "세션 검토, 제거 또는 로그아웃",
31
- "loadingOtherAccounts": "다른 계정 로드 중…",
32
- "switchAccountFailed": "계정을 전환할 수 없습니다. 다시 시도해주세요."
14
+ "back": "뒤로"
33
15
  },
34
- "forgotPrompt": "비밀번호를 잊으셨나요?",
35
- "security": {
36
- "dataSecure": "데이터가 암호화되어 안전합니다"
37
- },
38
- "currentlySignedInAs": "현재 로그인 중:",
39
- "alreadySignedInWith": "이미 로그인 중:",
40
- "alreadySignedIn": "이미 로그인됨",
41
- "alreadySignedInMessage": "이 계정은 이미 로그인되어 있습니다. 이 계정으로 계속하시겠습니까?",
42
- "continueWithAccount": "계속",
43
- "currentAccount": "현재",
44
- "or": "또는",
45
- "viewAllAccounts": "{{count}}개 더 보기",
46
16
  "createAccountLink": "Oxy가 처음이신가요? 계정 만들기",
47
17
  "status": {
48
- "accountSwitched": "{{name}} 사용 중",
49
18
  "signingIn": "로그인 중…"
50
- }
19
+ },
20
+ "subtitleToApp": "{{app}}(으)로 계속",
21
+ "orContinueWith": "또는 다음으로 계속",
22
+ "qr": {
23
+ "caption": "Commons로 스캔하여 로그인",
24
+ "renew": "새 코드 표시"
25
+ },
26
+ "methods": {
27
+ "passkey": "패스키로 로그인"
28
+ },
29
+ "errors": {
30
+ "rateLimited": "시도 횟수가 너무 많습니다. {{seconds}}초 후에 다시 시도하세요.",
31
+ "passkeyCancelled": "패스키 요청을 닫았습니다. 준비되면 다시 시도하세요.",
32
+ "passkeyFailed": "패스키를 완료할 수 없습니다. 다시 시도하세요."
33
+ },
34
+ "chooser": {
35
+ "subtitleToApp": "{{app}}(으)로 계속"
36
+ },
37
+ "terms": {
38
+ "before": "계속하면 다음에 동의하게 됩니다:",
39
+ "termsLink": "서비스 약관",
40
+ "and": "및",
41
+ "privacyLink": "개인정보처리방침"
42
+ },
43
+ "noAccount": "계정이 없으신가요?",
44
+ "createAccount": "계정 만들기",
45
+ "recoverLink": "패스키를 잃어버리셨나요? 계정 복구"
51
46
  },
52
47
  "signup": {
53
48
  "title": "계정 만들기",
@@ -55,56 +50,28 @@
55
50
  "createInCommons": "Commons에서 나의 아이덴티티 만들기",
56
51
  "createAccount": "계정 만들기",
57
52
  "backToSignInLink": "이미 계정이 있으신가요? 로그인",
58
- "welcome": {
59
- "title": "Oxy에 오신 것을 환영합니다!",
60
- "subtitle": "몇 단계만으로 계정을 만드세요",
61
- "haveAccount": "이미 계정이 있으신가요?",
62
- "signInCta": "로그인"
63
- },
64
- "identity": {
65
- "title": "당신은 누구인가요?",
66
- "subtitle": "사용자 이름을 선택하고 이메일을 입력하세요"
67
- },
53
+ "webSubtitle": "비밀번호가 없습니다. 기기가 패스키를 만들고, 잃어버리면 복구 이메일로 다시 들어올 수 있습니다.",
68
54
  "username": {
69
- "helper": "3-30자, 영문과 숫자만",
70
- "required": "사용자 이름을 입력해주세요",
71
- "minLength": "사용자 이름은 최소 3자 이상이어야 합니다"
55
+ "label": "사용자 이름",
56
+ "placeholder": "yourname",
57
+ "required": "사용자 이름을 정하세요.",
58
+ "taken": "이미 사용 중인 사용자 이름입니다."
72
59
  },
73
60
  "email": {
74
- "required": "이메일 주소를 입력해주세요",
75
- "invalid": "유효한 이메일 주소를 입력해주세요",
76
- "helper": "이메일을 공유하지 않습니다"
77
- },
78
- "security": {
79
- "title": "계정 보호",
80
- "subtitle": "계정을 보호하기 위한 강력한 비밀번호를 만드세요"
61
+ "title": "복구 이메일",
62
+ "subtitle": "패스키를 잃어버리면 다시 들어올 수 있도록 여기로 코드를 보냅니다. 다른 용도로는 쓰지 않습니다.",
63
+ "label": "이메일",
64
+ "placeholder": "you@example.com",
65
+ "invalid": "올바른 이메일 주소를 입력하세요."
81
66
  },
82
- "password": {
83
- "helper": "최소 8자",
84
- "required": "비밀번호를 입력해주세요",
85
- "minLength": "비밀번호는 최소 8자 이상이어야 합니다",
86
- "confirmRequired": "비밀번호를 확인해주세요",
87
- "mismatch": "비밀번호가 일치하지 않습니다",
88
- "confirmHint": "확인을 위해 비밀번호를 다시 입력하세요"
67
+ "passkey": {
68
+ "title": "패스키 만들기",
69
+ "subtitle": "지문, 얼굴 또는 화면 잠금으로 로그인합니다. 기억할 것은 없습니다.",
70
+ "action": "패스키 만들기"
89
71
  },
90
- "summary": {
91
- "title": "거의 완료되었습니다!",
92
- "subtitle": "정보를 검토하고 계정을 만드세요",
93
- "sectionTitle": "계정 정보",
94
- "fields": {
95
- "username": "사용자 이름",
96
- "email": "이메일",
97
- "password": "비밀번호"
98
- },
99
- "notSet": "설정되지 않음",
100
- "securityTip": "더 강력한 보안을 위해 계정을 만든 후 계정 설정에서 생체 인증을 활성화하세요.",
101
- "legalReminder": "계정을 만들면 서비스 약관 및 개인정보 보호정책에 동의하는 것입니다."
102
- }
72
+ "commonsInstead": "직접 키를 보관하고 싶으신가요? Commons 사용하기"
103
73
  },
104
74
  "accountSwitcher": {
105
- "sections": {
106
- "yourAccounts": "내 계정"
107
- },
108
75
  "loading": "계정을 불러오는 중...",
109
76
  "qrHeadline": "Oxy ID로 로그인",
110
77
  "signInWithOxy": "Oxy로 로그인",
@@ -136,10 +103,7 @@
136
103
  "claimFailed": "로그인이 승인되었지만 완료하지 못했습니다. 다시 시도해 주세요.",
137
104
  "generic": "로그인하지 못했습니다. 다시 시도해 주세요."
138
105
  },
139
- "linkOpenFailed": "링크를 열 수 없습니다. 다시 시도해 주세요.",
140
- "continueWithPasskey": "계속",
141
- "passkeyHint": "지문, 얼굴 또는 기기 PIN을 사용하세요.",
142
- "otherDeviceCommons": "다른 기기의 계정인가요? Commons로 스캔하세요"
106
+ "linkOpenFailed": "링크를 열 수 없습니다. 다시 시도해 주세요."
143
107
  },
144
108
  "common": {
145
109
  "actions": {
@@ -280,7 +244,63 @@
280
244
  "help": "도움말 및 피드백",
281
245
  "signOut": "로그아웃",
282
246
  "privacy": "개인정보 처리방침",
283
- "terms": "서비스 약관",
284
- "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를 연결하지 못했습니다. 다시 시도하세요."
285
305
  }
286
306
  }
@@ -1,53 +1,48 @@
1
1
  {
2
2
  "signin": {
3
3
  "title": "Iniciar sessão",
4
- "subtitle": "Inicie sessão para continuar",
4
+ "subtitle": "Usa a tua conta Oxy",
5
5
  "addAccountTitle": "Adicionar outra conta",
6
6
  "addAccountSubtitle": "Iniciar sessão com outra conta",
7
7
  "username": {
8
8
  "label": "Nome de utilizador",
9
- "placeholder": "Introduza o seu nome de utilizador",
10
- "helper": "3-30 caracteres, apenas letras e números",
11
- "required": "Por favor, introduza o seu nome de utilizador.",
12
- "minLength": "O nome de utilizador deve ter pelo menos 3 caracteres."
13
- },
14
- "password": {
15
- "label": "Palavra-passe",
16
- "placeholder": "Introduza a sua palavra-passe",
17
- "required": "Por favor, introduza a sua palavra-passe.",
18
- "hint": "Introduza a sua palavra-passe para iniciar sessão"
9
+ "placeholder": "oteunome",
10
+ "required": "Por favor, introduza o seu nome de utilizador."
19
11
  },
20
12
  "actions": {
21
13
  "continue": "Continuar",
22
- "back": "Voltar",
23
- "signIn": "Iniciar sessão",
24
- "verify": "Verificar",
25
- "openAccountSwitcher": "Mudar para outra conta",
26
- "openAccountSwitcherSubtitle": "{{count}} outras contas disponíveis",
27
- "openAccountSwitcherSubtitle_singular": "1 outra conta disponível",
28
- "openAccountSwitcherSubtitle_zero": "Revise as suas contas guardadas",
29
- "manageAccounts": "Gerir contas guardadas",
30
- "manageAccountsSubtitle": "Rever sessões, remover ou terminar sessão",
31
- "loadingOtherAccounts": "A carregar outras contas…",
32
- "switchAccountFailed": "Não foi possível mudar de conta. Por favor, tente novamente."
14
+ "back": "Voltar"
33
15
  },
34
- "forgotPrompt": "Esqueceu-se da palavra-passe?",
35
- "security": {
36
- "dataSecure": "Os seus dados estão encriptados e seguros"
37
- },
38
- "currentlySignedInAs": "Atualmente com sessão iniciada como",
39
- "alreadySignedInWith": "Já tem sessão iniciada com",
40
- "alreadySignedIn": "Já tem sessão iniciada",
41
- "alreadySignedInMessage": "Esta conta já tem sessão iniciada. Continuar com esta conta?",
42
- "continueWithAccount": "Continuar",
43
- "currentAccount": "Atual",
44
- "or": "ou",
45
- "viewAllAccounts": "Ver mais {{count}}",
46
16
  "createAccountLink": "Novo no Oxy? Crie uma conta",
47
17
  "status": {
48
- "accountSwitched": "Agora a usar {{name}}",
49
18
  "signingIn": "A iniciar sessão…"
50
- }
19
+ },
20
+ "subtitleToApp": "para continuar para {{app}}",
21
+ "orContinueWith": "ou continua com",
22
+ "qr": {
23
+ "caption": "Lê com o Commons para entrar",
24
+ "renew": "Mostrar um código novo"
25
+ },
26
+ "methods": {
27
+ "passkey": "Entrar com uma chave de acesso"
28
+ },
29
+ "errors": {
30
+ "rateLimited": "Demasiadas tentativas. Tenta novamente dentro de {{seconds}} s.",
31
+ "passkeyCancelled": "Fechaste o pedido da chave de acesso. Tenta novamente quando quiseres.",
32
+ "passkeyFailed": "Não foi possível concluir a chave de acesso. Tenta novamente."
33
+ },
34
+ "chooser": {
35
+ "subtitleToApp": "para continuar para {{app}}"
36
+ },
37
+ "terms": {
38
+ "before": "Ao continuar, aceitas os nossos",
39
+ "termsLink": "Termos de serviço",
40
+ "and": "e a",
41
+ "privacyLink": "Política de privacidade"
42
+ },
43
+ "noAccount": "Não tens conta?",
44
+ "createAccount": "Criar conta",
45
+ "recoverLink": "Perdeste a chave de acesso? Recupera a tua conta"
51
46
  },
52
47
  "signup": {
53
48
  "title": "Crie a sua conta",
@@ -55,56 +50,28 @@
55
50
  "createInCommons": "Crie a sua identidade no Commons",
56
51
  "createAccount": "Criar conta",
57
52
  "backToSignInLink": "Já tem uma conta? Inicie sessão",
58
- "welcome": {
59
- "title": "Bem-vindo ao Oxy!",
60
- "subtitle": "Crie a sua conta em poucos passos",
61
- "haveAccount": "Já tem uma conta?",
62
- "signInCta": "Iniciar sessão"
63
- },
64
- "identity": {
65
- "title": "Quem é?",
66
- "subtitle": "Escolha o seu nome de utilizador e introduza o seu email"
67
- },
53
+ "webSubtitle": "Sem palavra-passe: o teu dispositivo cria uma passkey e um email de recuperação devolve-te o acesso se a perderes.",
68
54
  "username": {
69
- "helper": "3-30 caracteres, apenas letras e números",
70
- "required": "Por favor, introduza um nome de utilizador",
71
- "minLength": "O nome de utilizador deve ter pelo menos 3 caracteres"
55
+ "label": "Nome de utilizador",
56
+ "placeholder": "oteunome",
57
+ "required": "Escolhe um nome de utilizador.",
58
+ "taken": "Esse nome de utilizador já está em uso."
72
59
  },
73
60
  "email": {
74
- "required": "Por favor, introduza um endereço de email",
75
- "invalid": "Por favor, introduza um endereço de email válido",
76
- "helper": "Nunca partilharemos o seu email"
77
- },
78
- "security": {
79
- "title": "Proteja a sua conta",
80
- "subtitle": "Crie uma palavra-passe forte para proteger a sua conta"
61
+ "title": "O teu email de recuperação",
62
+ "subtitle": "Se perderes a passkey, enviamos-te aqui um código para voltares a entrar. Não é usado para mais nada.",
63
+ "label": "Email",
64
+ "placeholder": "tu@exemplo.pt",
65
+ "invalid": "Escreve um email válido."
81
66
  },
82
- "password": {
83
- "helper": "Pelo menos 8 caracteres",
84
- "required": "Por favor, introduza uma palavra-passe",
85
- "minLength": "A palavra-passe deve ter pelo menos 8 caracteres",
86
- "confirmRequired": "Por favor, confirme a sua palavra-passe",
87
- "mismatch": "As palavras-passe não coincidem",
88
- "confirmHint": "Reintroduza a sua palavra-passe para confirmar"
67
+ "passkey": {
68
+ "title": "Cria a tua passkey",
69
+ "subtitle": "É com ela que inicias sessão: impressão digital, rosto ou bloqueio do ecrã. Nada para memorizar.",
70
+ "action": "Criar passkey"
89
71
  },
90
- "summary": {
91
- "title": "Quase lá!",
92
- "subtitle": "Revise as suas informações e crie a sua conta",
93
- "sectionTitle": "Informações da conta",
94
- "fields": {
95
- "username": "Nome de utilizador",
96
- "email": "Email",
97
- "password": "Palavra-passe"
98
- },
99
- "notSet": "Não definido",
100
- "securityTip": "Para maior segurança, ative a autenticação biométrica nas Definições da conta após criar a sua conta.",
101
- "legalReminder": "Ao criar uma conta, concorda com os nossos Termos de Serviço e Política de Privacidade."
102
- }
72
+ "commonsInstead": "Queres guardar a tua própria chave? Usa o Commons"
103
73
  },
104
74
  "accountSwitcher": {
105
- "sections": {
106
- "yourAccounts": "As suas contas"
107
- },
108
75
  "loading": "A carregar contas...",
109
76
  "qrHeadline": "Inicie sessão com a sua identidade Oxy",
110
77
  "signInWithOxy": "Iniciar sessão com Oxy",
@@ -136,10 +103,7 @@
136
103
  "claimFailed": "O início de sessão foi aprovado, mas não conseguimos concluí-lo. Tente novamente.",
137
104
  "generic": "Não foi possível iniciar sessão. Tente novamente."
138
105
  },
139
- "linkOpenFailed": "Não foi possível abrir a ligação. Tente novamente.",
140
- "continueWithPasskey": "Continuar",
141
- "passkeyHint": "Use a impressão digital, o rosto ou o PIN do dispositivo.",
142
- "otherDeviceCommons": "Conta noutro dispositivo? Digitalize com o Commons"
106
+ "linkOpenFailed": "Não foi possível abrir a ligação. Tente novamente."
143
107
  },
144
108
  "common": {
145
109
  "actions": {
@@ -280,7 +244,63 @@
280
244
  "help": "Ajuda e feedback",
281
245
  "signOut": "Terminar sessão",
282
246
  "privacy": "Política de privacidade",
283
- "terms": "Termos de serviço",
284
- "identity": "A sua identidade"
247
+ "terms": "Termos de serviço"
248
+ },
249
+ "recover": {
250
+ "title": "Recupera a tua conta",
251
+ "subtitle": "Escreve o teu nome de utilizador ou o email de recuperação. Enviamos um código para o email de recuperação da conta.",
252
+ "identifier": {
253
+ "label": "Utilizador ou email",
254
+ "placeholder": "oteunome",
255
+ "required": "Escreve o teu utilizador ou email."
256
+ },
257
+ "commonsNote": "A tua conta usa o Commons? Recupera-a no Commons com a tua frase de recuperação.",
258
+ "passkey": {
259
+ "title": "Adiciona uma nova passkey",
260
+ "subtitle": "Para @{{username}}. Remove as passkeys perdidas mais tarde nas definições de segurança da conta.",
261
+ "action": "Criar passkey"
262
+ },
263
+ "backToSignIn": "Voltar a iniciar sessão"
264
+ },
265
+ "emailCode": {
266
+ "title": "Vê o teu email",
267
+ "sentTo": "Enviámos um código de 6 dígitos para {{email}}.",
268
+ "sentIfAccount": "Se esta conta tiver um email de recuperação, enviámos-lhe um código de 6 dígitos.",
269
+ "label": "Código",
270
+ "resend": "Enviar um novo código",
271
+ "resent": "Enviámos um novo código.",
272
+ "changeEmail": "Usar outro email",
273
+ "errors": {
274
+ "codeInvalid": "Esse código não está certo ou expirou.",
275
+ "tooManyAttempts": "Demasiados códigos errados. Pede um novo.",
276
+ "expired": "Passou demasiado tempo. Recomeça.",
277
+ "unavailable": "O Oxy não consegue enviar emails agora. Tenta mais tarde.",
278
+ "rateLimited": "Demasiados códigos. Tenta mais tarde."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Confirma com a tua passkey. @{{username}} e tudo o que contém são eliminados para sempre.",
284
+ "action": "Eliminar com passkey",
285
+ "done": "A tua conta foi eliminada.",
286
+ "closeWindow": "Podes fechar esta janela.",
287
+ "commons": "Esta conta usa o Commons: elimina-a no Oxy Commons, Definições > Eliminar conta, com a sua chave."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Associar o Commons",
292
+ "subtitle": "Guarda a tua própria chave: associa o Commons e esta conta passa a ser só tua. O email de recuperação é eliminado e a tua frase de recuperação no Commons é como voltas a entrar.",
293
+ "scan": "No telemóvel, abre o Commons, escolhe «Tenho uma conta Oxy na web» e digitaliza este código.",
294
+ "waiting": "À espera do Commons…",
295
+ "compareTitle": "Verifica o código",
296
+ "compare": "O Commons mostra o mesmo código. Se não mostrar, cancela.",
297
+ "confirm": "Sim, associar o Commons",
298
+ "cancel": "Cancelar",
299
+ "doneTitle": "O Commons está associado",
300
+ "done": "Esta conta passou a ser de autocustódia. O email de recuperação foi eliminado: a tua frase de recuperação no Commons é como voltas a entrar.",
301
+ "already": "Esta conta já usa o Commons.",
302
+ "expired": "Este código expirou.",
303
+ "renew": "Mostrar um novo código",
304
+ "failed": "Não foi possível associar o Commons. Tenta de novo."
285
305
  }
286
306
  }