@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,66 +1,56 @@
1
1
  {
2
2
  "signin": {
3
3
  "title": "Iniciar sesión",
4
- "subtitle": "Inicia sesión para continuar",
4
+ "subtitle": "Usa tu cuenta de Oxy",
5
5
  "chooser": {
6
6
  "title": "Elige una cuenta",
7
7
  "subtitle": "Continúa con una de tus cuentas o usa otra.",
8
- "signedIn": "Sesión activa",
9
8
  "useAnother": "Usar otra cuenta",
10
- "continueAs": "Continuar como {{name}}"
9
+ "continueAs": "Continuar como {{name}}",
10
+ "subtitleToApp": "para continuar en {{app}}"
11
11
  },
12
- "addAccountTitle": "Agregar otra cuenta",
12
+ "addAccountTitle": "Añadir otra cuenta",
13
13
  "addAccountSubtitle": "Inicia sesión con otra cuenta",
14
14
  "username": {
15
15
  "label": "Usuario",
16
- "placeholder": "Introduce tu usuario",
17
- "helper": "3-30 caracteres, solo letras y números",
18
- "required": "Por favor, introduce tu usuario.",
19
- "minLength": "El usuario debe tener al menos 3 caracteres."
20
- },
21
- "password": {
22
- "label": "Contraseña",
23
- "placeholder": "Introduce tu contraseña",
24
- "required": "Por favor, introduce tu contraseña.",
25
- "hint": "Introduce tu contraseña para iniciar sesión"
16
+ "placeholder": "tunombre",
17
+ "required": "Por favor, introduce tu usuario."
26
18
  },
27
19
  "actions": {
28
20
  "continue": "Continuar",
29
- "back": "Atrás",
30
- "signIn": "Entrar",
31
- "verify": "Verificar",
32
- "openAccountSwitcher": "Cambiar a otra cuenta",
33
- "openAccountSwitcherSubtitle": "{{count}} otras cuentas disponibles",
34
- "openAccountSwitcherSubtitle_singular": "1 otra cuenta disponible",
35
- "openAccountSwitcherSubtitle_zero": "Revisa tus cuentas guardadas",
36
- "manageAccounts": "Gestionar cuentas guardadas",
37
- "manageAccountsSubtitle": "Revisar sesiones, eliminar o cerrar sesión",
38
- "loadingOtherAccounts": "Cargando otras cuentas…",
39
- "switchAccountFailed": "No pudimos cambiar de cuenta. Inténtalo de nuevo."
40
- },
41
- "forgotPrompt": "¿Olvidaste tu contraseña?",
42
- "security": {
43
- "dataSecure": "Tus datos están cifrados y seguros"
44
- },
45
- "currentlySignedInAs": "Actualmente has iniciado sesión como",
46
- "alreadySignedInWith": "Ya has iniciado sesión con",
47
- "alreadySignedIn": "Ya has iniciado sesión",
48
- "alreadySignedInMessage": "Esta cuenta ya ha iniciado sesión. ¿Continuar con esta cuenta?",
49
- "continueWithAccount": "Continuar",
50
- "currentAccount": "Actual",
51
- "or": "o",
52
- "viewAllAccounts": "Ver {{count}} más",
21
+ "back": "Atrás"
22
+ },
53
23
  "createAccountLink": "¿Nuevo en Oxy? Crea una cuenta",
54
24
  "status": {
55
- "accountSwitched": "Ahora usando {{name}}",
56
25
  "signingIn": "Iniciando sesión…"
57
26
  },
58
27
  "errors": {
59
28
  "notConfigured": "El inicio de sesión no está disponible",
60
29
  "notConfiguredDescription": "{{app}} todavía no está configurada para iniciar sesión. Contacta con quien desarrolla la app.",
61
30
  "failed": "No se pudo iniciar sesión",
62
- "failedDescription": "Algo ha ido mal. Inténtalo de nuevo."
63
- }
31
+ "failedDescription": "Algo ha ido mal. Inténtalo de nuevo.",
32
+ "rateLimited": "Demasiados intentos. Vuelve a probar en {{seconds}} s.",
33
+ "passkeyCancelled": "Has cerrado la passkey. Vuelve a intentarlo cuando quieras.",
34
+ "passkeyFailed": "No se pudo completar la passkey. Inténtalo de nuevo."
35
+ },
36
+ "subtitleToApp": "para continuar en {{app}}",
37
+ "orContinueWith": "o continúa con",
38
+ "qr": {
39
+ "caption": "Escanea con Commons para entrar",
40
+ "renew": "Mostrar un código nuevo"
41
+ },
42
+ "methods": {
43
+ "passkey": "Entrar con una passkey"
44
+ },
45
+ "terms": {
46
+ "before": "Al continuar, aceptas nuestros",
47
+ "termsLink": "Términos del servicio",
48
+ "and": "y la",
49
+ "privacyLink": "Política de privacidad"
50
+ },
51
+ "noAccount": "¿No tienes cuenta?",
52
+ "createAccount": "Crear cuenta",
53
+ "recoverLink": "¿Has perdido tu passkey? Recupera tu cuenta"
64
54
  },
65
55
  "signup": {
66
56
  "title": "Crea tu cuenta",
@@ -68,59 +58,26 @@
68
58
  "createInCommons": "Crea tu identidad en Commons",
69
59
  "createAccount": "Crear cuenta",
70
60
  "backToSignInLink": "¿Ya tienes cuenta? Inicia sesión",
71
- "welcome": {
72
- "title": "¡Te damos la bienvenida a Oxy!",
73
- "subtitle": "Crea tu cuenta en pocos pasos",
74
- "haveAccount": "¿Ya tienes cuenta?",
75
- "signInCta": "Inicia sesión"
76
- },
77
- "identity": {
78
- "title": "¿Quién eres?",
79
- "subtitle": "Elige tu usuario e introduce tu correo"
80
- },
61
+ "webSubtitle": "Sin contraseña: tu dispositivo crea una passkey y un email de recuperación te devuelve el acceso si la pierdes.",
81
62
  "username": {
82
- "helper": "3-30 caracteres, solo letras y números",
83
- "required": "Por favor, introduce un usuario",
84
- "minLength": "El usuario debe tener al menos 3 caracteres"
63
+ "label": "Nombre de usuario",
64
+ "placeholder": "tunombre",
65
+ "required": "Elige un nombre de usuario.",
66
+ "taken": "Ese nombre de usuario ya está en uso."
85
67
  },
86
68
  "email": {
87
- "required": "Por favor, introduce una dirección de correo electrónico",
88
- "invalid": "Por favor, introduce una dirección de correo electrónico válida",
89
- "helper": "Nunca compartiremos tu correo"
90
- },
91
- "security": {
92
- "title": "Protege tu cuenta",
93
- "subtitle": "Crea una contraseña fuerte para proteger tu cuenta"
94
- },
95
- "password": {
96
- "helper": "Al menos 8 caracteres",
97
- "required": "Por favor, introduce una contraseña",
98
- "minLength": "La contraseña debe tener al menos 8 caracteres",
99
- "confirmRequired": "Por favor, confirma tu contraseña",
100
- "mismatch": "Las contraseñas no coinciden",
101
- "confirmHint": "Vuelve a introducir tu contraseña para confirmar"
102
- },
103
- "summary": {
104
- "title": "¡Ya casi!",
105
- "subtitle": "Revisa tu información y crea tu cuenta",
106
- "sectionTitle": "Información de la cuenta",
107
- "fields": {
108
- "username": "Usuario",
109
- "email": "Correo electrónico",
110
- "password": "Contraseña"
111
- },
112
- "notSet": "Sin definir",
113
- "securityTip": "Para mayor seguridad, habilita la autenticación biométrica en Configuración de la cuenta después de crear tu cuenta.",
114
- "legalReminder": "Al crear una cuenta, aceptas nuestros Términos de servicio y Política de privacidad.",
115
- "sections": {
116
- "account": "Información de la cuenta",
117
- "next": "Próximos pasos"
118
- },
119
- "next": {
120
- "securityTitle": "Mantén tu cuenta segura",
121
- "legalTitle": "Todo listo"
122
- }
123
- }
69
+ "title": "Tu email de recuperación",
70
+ "subtitle": "Si pierdes tu passkey, te enviamos aquí un código para volver a entrar. No se usa para nada más.",
71
+ "label": "Email",
72
+ "placeholder": "tu@ejemplo.com",
73
+ "invalid": "Escribe un email válido."
74
+ },
75
+ "passkey": {
76
+ "title": "Crea tu passkey",
77
+ "subtitle": "Con ella inicias sesión: tu huella, tu cara o el bloqueo de pantalla. No hay nada que recordar.",
78
+ "action": "Crear passkey"
79
+ },
80
+ "commonsInstead": "¿Quieres guardar tu propia clave? Usa Commons"
124
81
  },
125
82
  "profile": {
126
83
  "title": "Perfil",
@@ -148,30 +105,20 @@
148
105
  "search": "Buscar idiomas"
149
106
  },
150
107
  "recover": {
151
- "title": "Recuperar cuenta",
152
- "username": {
153
- "label": "Usuario",
154
- "placeholder": "Introduce tu usuario",
155
- "errorRequired": "Por favor, introduce tu usuario.",
156
- "helper": "Introduce tu usuario o correo electrónico"
157
- },
158
- "verify": {
159
- "title": "Verificar código",
160
- "action": "Verificar código"
161
- },
162
- "enterCode": "Introduce el código de 6 dígitos de tu app de autenticación.",
163
- "newPassword": "Establecer nueva contraseña",
164
- "resetSuccess": "¡Tu contraseña ha sido restablecida! Ahora puedes iniciar sesión.",
165
- "noEmail": "Ya no enviamos correos de recuperación. Por favor, usa tu frase de recuperación para restaurar tu identidad. Contacta con soporte si necesitas ayuda.",
166
- "password": {
167
- "minLength": "La contraseña debe tener al menos 8 caracteres",
168
- "mismatch": "Las contraseñas no coinciden",
169
- "resetFailed": "Error al restablecer la contraseña"
170
- },
171
- "missingCode": "Falta el código",
172
- "whatsNextTitle": "¿Qué sigue?",
173
- "whatsNextBody": "Ahora puedes restablecer tu contraseña o volver para iniciar sesión con tus credenciales.",
174
- "completeSecure": "La recuperación de tu cuenta se ha completado de forma segura."
108
+ "title": "Recupera tu cuenta",
109
+ "subtitle": "Escribe tu nombre de usuario o tu email de recuperación. Enviaremos un código al email de recuperación de la cuenta.",
110
+ "identifier": {
111
+ "label": "Usuario o email",
112
+ "placeholder": "tunombre",
113
+ "required": "Escribe tu usuario o tu email."
114
+ },
115
+ "commonsNote": "¿Tu cuenta usa Commons? Recupérala en Commons con tu frase de recuperación.",
116
+ "passkey": {
117
+ "title": "Añade una passkey nueva",
118
+ "subtitle": "Para @{{username}}. Quita las passkeys perdidas después en los ajustes de seguridad de tu cuenta.",
119
+ "action": "Crear passkey"
120
+ },
121
+ "backToSignIn": "Volver a iniciar sesión"
175
122
  },
176
123
  "editProfile": {
177
124
  "title": "Editar perfil",
@@ -598,31 +545,8 @@
598
545
  "version": "Versión {{version}}"
599
546
  },
600
547
  "accountSwitcher": {
601
- "title": "Conmutador de cuentas",
602
- "sections": {
603
- "current": "Cuenta actual",
604
- "otherWithCount": "Otras cuentas ({{count}})",
605
- "deviceSessions": "Sesiones de dispositivo",
606
- "sharedWithYou": "Compartidas contigo",
607
- "thisDevice": "En este dispositivo",
608
- "yourAccounts": "Tus cuentas"
609
- },
610
- "currentBadge": "Actual",
611
548
  "loading": "Cargando cuentas...",
612
549
  "toasts": {
613
- "switchSuccess": "¡Cuenta cambiada correctamente!",
614
- "switchFailed": "Hubo un problema al cambiar de cuenta. Inténtalo de nuevo.",
615
- "signInFailed": "No se pudo iniciar sesión. Inténtalo de nuevo.",
616
- "removeSuccess": "¡Cuenta eliminada correctamente!",
617
- "removeFailed": "Hubo un problema al eliminar la cuenta. Inténtalo de nuevo.",
618
- "signOutAllSuccess": "¡Todas las cuentas cerradas correctamente!",
619
- "signOutAllFailed": "Hubo un problema al cerrar sesión: {{error}}",
620
- "deviceLoadFailed": "Error al cargar las sesiones de dispositivo. Inténtalo de nuevo.",
621
- "remoteSignOutSuccess": "¡Sesión cerrada correctamente en {{deviceName}}!",
622
- "remoteSignOutFailed": "Hubo un problema al cerrar sesión en el dispositivo. Inténtalo de nuevo.",
623
- "noOtherDeviceSessions": "No se encontraron otras sesiones de dispositivo para cerrar.",
624
- "signOutOthersSuccess": "¡Sesiones cerradas correctamente en los demás dispositivos!",
625
- "signOutOthersFailed": "Hubo un problema al cerrar sesión en otros dispositivos. Inténtalo de nuevo.",
626
550
  "contextRemoved": "Se quitó {{account}}",
627
551
  "contextRemoveFailed": "Hubo un problema al quitar esa cuenta. Inténtalo de nuevo.",
628
552
  "principalRemoved": "Se cerró la sesión de {{name}} en este dispositivo",
@@ -630,29 +554,11 @@
630
554
  "activateFailed": "Hubo un problema al cambiar de cuenta. Inténtalo de nuevo."
631
555
  },
632
556
  "confirms": {
633
- "remove": "¿Seguro que quieres eliminar a {{displayName}} de este dispositivo? Tendrás que iniciar sesión de nuevo para acceder a esta cuenta.",
634
- "logoutAll": "¿Seguro que quieres cerrar sesión en todas las cuentas? Esto eliminará todas las cuentas guardadas de este dispositivo.",
635
- "remoteLogout": "¿Seguro que quieres cerrar sesión en \"{{deviceName}}\"? Esto finalizará la sesión en ese dispositivo.",
636
- "logoutOthers": "¿Seguro que quieres cerrar sesión en los otros {{count}} dispositivo(s)? Esto finalizará las sesiones en todos los demás dispositivos excepto en este.",
637
557
  "removeContextTitle": "¿Quitar esta cuenta?",
638
558
  "removeContext": "¿Dejar de usar {{account}} como {{person}} en este dispositivo? Quien más acceda a {{account}} aquí lo conserva.",
639
559
  "removePrincipalTitle": "¿Cerrar sesión en este dispositivo?",
640
560
  "removePrincipal": "¿Cerrar la sesión de {{name}} en este dispositivo? Se quitan todas las cuentas a las que llega desde aquí. No afecta a nadie más."
641
561
  },
642
- "device": {
643
- "loadingTitle": "Cargando sesiones de dispositivo...",
644
- "loadingSubtitle": "Espera mientras obtenemos tus sesiones de dispositivo",
645
- "noneTitle": "No se encontraron sesiones de dispositivo",
646
- "noneSubtitle": "La gestión de sesiones de dispositivo no está disponible",
647
- "thisDevice": "Este dispositivo",
648
- "lastActive": "Última actividad: {{date}}"
649
- },
650
- "empty": {
651
- "title": "No hay cuentas guardadas",
652
- "subtitle": "Añade otra cuenta para cambiar rápidamente entre ellas"
653
- },
654
- "label": "Selector de cuentas",
655
- "searchPlaceholder": "Buscar cuentas",
656
562
  "scanQr": "Escanear código QR",
657
563
  "qrHeadline": "Inicia sesión con tu identidad de Oxy",
658
564
  "signInWithOxy": "Inicia sesión con Oxy",
@@ -692,10 +598,7 @@
692
598
  "claimFailed": "Se aprobó el inicio de sesión, pero no pudimos completarlo. Inténtalo de nuevo.",
693
599
  "generic": "No se pudo iniciar sesión. Inténtalo de nuevo."
694
600
  },
695
- "linkOpenFailed": "No se pudo abrir el enlace. Inténtalo de nuevo.",
696
- "continueWithPasskey": "Continuar",
697
- "passkeyHint": "Usa tu huella, tu cara o el PIN del dispositivo.",
698
- "otherDeviceCommons": "¿Tu cuenta está en otro dispositivo? Escanea con Commons"
601
+ "linkOpenFailed": "No se pudo abrir el enlace. Inténtalo de nuevo."
699
602
  },
700
603
  "feedback": {
701
604
  "type": {
@@ -1723,8 +1626,7 @@
1723
1626
  "help": "Ayuda y comentarios",
1724
1627
  "signOut": "Cerrar sesión",
1725
1628
  "privacy": "Política de privacidad",
1726
- "terms": "Términos del servicio",
1727
- "identity": "Tu identidad"
1629
+ "terms": "Términos del servicio"
1728
1630
  },
1729
1631
  "accounts": {
1730
1632
  "activeAccount": {
@@ -1941,9 +1843,16 @@
1941
1843
  "openCommons": "Abrir Oxy Commons",
1942
1844
  "commonsOpenFailed": "No se pudo abrir Oxy Commons. Ábrelo tú y ve a Ajustes > Eliminar cuenta.",
1943
1845
  "elsewhereTitle": "Elimina tu cuenta donde está tu identidad",
1944
- "elsewhereMessage": "Eliminar tu cuenta necesita tu clave de identidad, y no está en este dispositivo. Abre Oxy Commons en el dispositivo que guarda tu identidad y ve a Ajustes > Eliminar cuenta, o abre {{site}} en un navegador que la guarde.",
1846
+ "elsewhereMessage": "Eliminar tu cuenta necesita tu clave de identidad, y no está en este dispositivo. Abre Oxy Commons en el dispositivo que la guarda y ve a Ajustes > Eliminar cuenta. Una cuenta con passkey se elimina en {{site}}.",
1945
1847
  "gotIt": "Entendido",
1946
1848
  "identityUnreadable": "No se pudo leer el almacén de identidad de este dispositivo. Desbloquea el dispositivo e inténtalo de nuevo."
1849
+ },
1850
+ "passkey": {
1851
+ "subtitle": "Confirma con tu passkey. @{{username}} y todo lo que contiene se eliminan para siempre.",
1852
+ "action": "Eliminar con passkey",
1853
+ "done": "Tu cuenta se ha eliminado.",
1854
+ "closeWindow": "Puedes cerrar esta ventana.",
1855
+ "commons": "Esta cuenta usa Commons: elimínala en Oxy Commons, Ajustes > Eliminar cuenta, con su clave."
1947
1856
  }
1948
1857
  },
1949
1858
  "manageAccount": {
@@ -2182,5 +2091,37 @@
2182
2091
  "allow": "Continuar a {{app}}",
2183
2092
  "deny": "Cancelar",
2184
2093
  "disclaimer": "Al continuar, {{app}} podrá iniciar sesión con tu cuenta de Oxy. Puedes gestionar las apps conectadas cuando quieras en los ajustes de tu cuenta de Oxy."
2094
+ },
2095
+ "emailCode": {
2096
+ "title": "Revisa tu email",
2097
+ "sentTo": "Hemos enviado un código de 6 dígitos a {{email}}.",
2098
+ "sentIfAccount": "Si esta cuenta tiene un email de recuperación, le hemos enviado un código de 6 dígitos.",
2099
+ "label": "Código",
2100
+ "resend": "Enviar un código nuevo",
2101
+ "resent": "Te hemos enviado un código nuevo.",
2102
+ "changeEmail": "Usar otro email",
2103
+ "errors": {
2104
+ "codeInvalid": "Ese código no es correcto o ha caducado.",
2105
+ "tooManyAttempts": "Demasiados códigos incorrectos. Pide uno nuevo.",
2106
+ "expired": "Ha pasado demasiado tiempo. Empieza de nuevo.",
2107
+ "unavailable": "Oxy no puede enviar emails ahora. Inténtalo más tarde.",
2108
+ "rateLimited": "Demasiados códigos. Inténtalo más tarde."
2109
+ }
2110
+ },
2111
+ "linkCommons": {
2112
+ "title": "Vincula Commons",
2113
+ "subtitle": "Guarda tu propia clave: vincula Commons y esta cuenta será solo tuya. Su email de recuperación se elimina y tu frase de recuperación en Commons es cómo vuelves a entrar.",
2114
+ "scan": "En tu móvil, abre Commons, elige «Tengo una cuenta de Oxy en la web» y escanea este código.",
2115
+ "waiting": "Esperando a Commons…",
2116
+ "compareTitle": "Comprueba el código",
2117
+ "compare": "Commons muestra el mismo código. Si no es así, cancela.",
2118
+ "confirm": "Sí, vincular Commons",
2119
+ "cancel": "Cancelar",
2120
+ "doneTitle": "Commons está vinculado",
2121
+ "done": "Esta cuenta ahora es de autocustodia. Su email de recuperación se ha eliminado: tu frase de recuperación en Commons es cómo vuelves a entrar.",
2122
+ "already": "Esta cuenta ya usa Commons.",
2123
+ "expired": "Este código ha caducado.",
2124
+ "renew": "Mostrar un código nuevo",
2125
+ "failed": "No se ha podido vincular Commons. Inténtalo de nuevo."
2185
2126
  }
2186
2127
  }
@@ -1,53 +1,48 @@
1
1
  {
2
2
  "signin": {
3
3
  "title": "Se connecter",
4
- "subtitle": "Connectez-vous pour continuer",
4
+ "subtitle": "Utilisez votre compte Oxy",
5
5
  "addAccountTitle": "Ajouter un autre compte",
6
6
  "addAccountSubtitle": "Se connecter avec un autre compte",
7
7
  "username": {
8
8
  "label": "Nom d'utilisateur",
9
- "placeholder": "Entrez votre nom d'utilisateur",
10
- "helper": "3-30 caractères, lettres et chiffres uniquement",
11
- "required": "Veuillez entrer votre nom d'utilisateur.",
12
- "minLength": "Le nom d'utilisateur doit contenir au moins 3 caractères."
13
- },
14
- "password": {
15
- "label": "Mot de passe",
16
- "placeholder": "Entrez votre mot de passe",
17
- "required": "Veuillez entrer votre mot de passe.",
18
- "hint": "Entrez votre mot de passe pour vous connecter"
9
+ "placeholder": "votrenom",
10
+ "required": "Veuillez entrer votre nom d'utilisateur."
19
11
  },
20
12
  "actions": {
21
13
  "continue": "Continuer",
22
- "back": "Retour",
23
- "signIn": "Se connecter",
24
- "verify": "Vérifier",
25
- "openAccountSwitcher": "Changer de compte",
26
- "openAccountSwitcherSubtitle": "{{count}} autres comptes disponibles",
27
- "openAccountSwitcherSubtitle_singular": "1 autre compte disponible",
28
- "openAccountSwitcherSubtitle_zero": "Consultez vos comptes enregistrés",
29
- "manageAccounts": "Gérer les comptes enregistrés",
30
- "manageAccountsSubtitle": "Consulter les sessions, supprimer ou se déconnecter",
31
- "loadingOtherAccounts": "Chargement des autres comptes…",
32
- "switchAccountFailed": "Nous n'avons pas pu changer de compte. Veuillez réessayer."
14
+ "back": "Retour"
33
15
  },
34
- "forgotPrompt": "Mot de passe oublié ?",
35
- "security": {
36
- "dataSecure": "Vos données sont cryptées et sécurisées"
37
- },
38
- "currentlySignedInAs": "Actuellement connecté en tant que",
39
- "alreadySignedInWith": "Déjà connecté avec",
40
- "alreadySignedIn": "Déjà connecté",
41
- "alreadySignedInMessage": "Ce compte est déjà connecté. Continuer avec ce compte ?",
42
- "continueWithAccount": "Continuer",
43
- "currentAccount": "Actuel",
44
- "or": "ou",
45
- "viewAllAccounts": "Voir {{count}} de plus",
46
16
  "createAccountLink": "Nouveau sur Oxy ? Créez un compte",
47
17
  "status": {
48
- "accountSwitched": "Utilisation de {{name}}",
49
18
  "signingIn": "Connexion…"
50
- }
19
+ },
20
+ "subtitleToApp": "pour continuer vers {{app}}",
21
+ "orContinueWith": "ou continuer avec",
22
+ "qr": {
23
+ "caption": "Scannez avec Commons pour vous connecter",
24
+ "renew": "Afficher un nouveau code"
25
+ },
26
+ "methods": {
27
+ "passkey": "Se connecter avec une clé d’accès"
28
+ },
29
+ "errors": {
30
+ "rateLimited": "Trop de tentatives. Réessayez dans {{seconds}} s.",
31
+ "passkeyCancelled": "Invite de clé d’accès fermée. Réessayez quand vous voulez.",
32
+ "passkeyFailed": "Impossible de terminer la clé d’accès. Réessayez."
33
+ },
34
+ "chooser": {
35
+ "subtitleToApp": "pour continuer vers {{app}}"
36
+ },
37
+ "terms": {
38
+ "before": "En continuant, vous acceptez nos",
39
+ "termsLink": "Conditions d’utilisation",
40
+ "and": "et notre",
41
+ "privacyLink": "Politique de confidentialité"
42
+ },
43
+ "noAccount": "Pas encore de compte ?",
44
+ "createAccount": "Créer un compte",
45
+ "recoverLink": "Clé d’accès perdue ? Récupérez votre compte"
51
46
  },
52
47
  "signup": {
53
48
  "title": "Créez votre compte",
@@ -55,56 +50,28 @@
55
50
  "createInCommons": "Créez votre identité dans Commons",
56
51
  "createAccount": "Créer un compte",
57
52
  "backToSignInLink": "Vous avez déjà un compte ? Connectez-vous",
58
- "welcome": {
59
- "title": "Bienvenue sur Oxy !",
60
- "subtitle": "Créez votre compte en quelques étapes",
61
- "haveAccount": "Vous avez déjà un compte ?",
62
- "signInCta": "Se connecter"
63
- },
64
- "identity": {
65
- "title": "Qui êtes-vous ?",
66
- "subtitle": "Choisissez votre nom d'utilisateur et entrez votre email"
67
- },
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.",
68
54
  "username": {
69
- "helper": "3-30 caractères, lettres et chiffres uniquement",
70
- "required": "Veuillez entrer un nom d'utilisateur",
71
- "minLength": "Le nom d'utilisateur doit contenir au moins 3 caractères"
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."
72
59
  },
73
60
  "email": {
74
- "required": "Veuillez entrer une adresse email",
75
- "invalid": "Veuillez entrer une adresse email valide",
76
- "helper": "Nous ne partagerons jamais votre email"
77
- },
78
- "security": {
79
- "title": "Sécurisez votre compte",
80
- "subtitle": "Créez un mot de passe fort pour protéger votre compte"
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."
81
66
  },
82
- "password": {
83
- "helper": "Au moins 8 caractères",
84
- "required": "Veuillez entrer un mot de passe",
85
- "minLength": "Le mot de passe doit contenir au moins 8 caractères",
86
- "confirmRequired": "Veuillez confirmer votre mot de passe",
87
- "mismatch": "Les mots de passe ne correspondent pas",
88
- "confirmHint": "Ré-entrez votre mot de passe pour confirmer"
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"
89
71
  },
90
- "summary": {
91
- "title": "Presque terminé !",
92
- "subtitle": "Vérifiez vos informations et créez votre compte",
93
- "sectionTitle": "Informations du compte",
94
- "fields": {
95
- "username": "Nom d'utilisateur",
96
- "email": "Email",
97
- "password": "Mot de passe"
98
- },
99
- "notSet": "Non défini",
100
- "securityTip": "Pour une sécurité renforcée, activez l'authentification biométrique dans les paramètres du compte après avoir créé votre compte.",
101
- "legalReminder": "En créant un compte, vous acceptez nos Conditions d'utilisation et notre Politique de confidentialité."
102
- }
72
+ "commonsInstead": "Vous voulez garder votre propre clé ? Utilisez Commons"
103
73
  },
104
74
  "accountSwitcher": {
105
- "sections": {
106
- "yourAccounts": "Vos comptes"
107
- },
108
75
  "loading": "Chargement des comptes...",
109
76
  "qrHeadline": "Connectez-vous avec votre identité Oxy",
110
77
  "signInWithOxy": "Se connecter avec Oxy",
@@ -136,10 +103,7 @@
136
103
  "claimFailed": "La connexion a été approuvée, mais nous n'avons pas pu la finaliser. Veuillez réessayer.",
137
104
  "generic": "La connexion a échoué. Veuillez réessayer."
138
105
  },
139
- "linkOpenFailed": "Impossible d'ouvrir le lien. Veuillez réessayer.",
140
- "continueWithPasskey": "Continuer",
141
- "passkeyHint": "Utilisez votre empreinte, votre visage ou le code de l'appareil.",
142
- "otherDeviceCommons": "Compte sur un autre appareil ? Scannez avec Commons"
106
+ "linkOpenFailed": "Impossible d'ouvrir le lien. Veuillez réessayer."
143
107
  },
144
108
  "common": {
145
109
  "actions": {
@@ -280,7 +244,63 @@
280
244
  "help": "Aide et commentaires",
281
245
  "signOut": "Se déconnecter",
282
246
  "privacy": "Politique de confidentialité",
283
- "terms": "Conditions d'utilisation",
284
- "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."
285
305
  }
286
306
  }