strapi-plugin-magic-link-v5 5.5.9 → 6.0.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 (58) hide show
  1. package/CHANGELOG.md +733 -0
  2. package/README.md +662 -928
  3. package/dist/admin/LicenseGuard-BgLA9go3.mjs +495 -0
  4. package/dist/admin/LicenseGuard-ewCjpc17.js +513 -0
  5. package/dist/admin/de-B1FNErPH.mjs +673 -0
  6. package/dist/admin/de-e75OECdq.js +673 -0
  7. package/dist/admin/en-CABKGbxH.js +673 -0
  8. package/dist/admin/en-HqDOFBCc.mjs +673 -0
  9. package/dist/admin/es-DpWl0Fax.js +673 -0
  10. package/dist/admin/es-jb94jqPR.mjs +673 -0
  11. package/dist/admin/fr-BQhLPvYw.js +673 -0
  12. package/dist/admin/fr-BseH1wrr.mjs +673 -0
  13. package/dist/admin/index-6ot9j1cN.js +5268 -0
  14. package/dist/admin/index-B390rccl.js +622 -0
  15. package/dist/admin/index-BPGKtruf.mjs +5266 -0
  16. package/dist/admin/index-BaTIQtnA.js +3869 -0
  17. package/dist/admin/index-CmG-93yx.js +141 -0
  18. package/dist/admin/index-DXe_ge4v.mjs +620 -0
  19. package/dist/admin/index-Dv5PVT1E.mjs +3867 -0
  20. package/dist/admin/index-k240ls6p.mjs +142 -0
  21. package/dist/admin/index.js +3 -3
  22. package/dist/admin/index.mjs +1 -2
  23. package/dist/admin/pt-CPkaveti.js +673 -0
  24. package/dist/admin/pt-DhlSCJn2.mjs +673 -0
  25. package/dist/admin/useUnsavedChangesGuard-BVZ4Mg4E.js +225 -0
  26. package/dist/admin/useUnsavedChangesGuard-QnkiZTLP.mjs +224 -0
  27. package/dist/server/i18n/de.json +32 -1
  28. package/dist/server/i18n/en.json +32 -1
  29. package/dist/server/i18n/es.json +32 -1
  30. package/dist/server/i18n/fr.json +32 -1
  31. package/dist/server/i18n/pt.json +32 -1
  32. package/dist/server/index.js +7092 -5971
  33. package/dist/server/index.mjs +7115 -5972
  34. package/package.json +42 -41
  35. package/strapi-admin.js +3 -1
  36. package/strapi-server.js +3 -2
  37. package/dist/_chunks/LicenseGuard-CiyjFnrw.js +0 -54
  38. package/dist/_chunks/LicenseGuard-DJ5fq2UZ.mjs +0 -55
  39. package/dist/_chunks/de-BSOk5suQ.js +0 -454
  40. package/dist/_chunks/de-CwhYs3O3.mjs +0 -454
  41. package/dist/_chunks/en-DnvSpXvu.js +0 -454
  42. package/dist/_chunks/en-gXXgGDV1.mjs +0 -454
  43. package/dist/_chunks/es-B-tnwByt.js +0 -407
  44. package/dist/_chunks/es-DG5gW3RZ.mjs +0 -407
  45. package/dist/_chunks/fr-BKo8t7Fx.js +0 -407
  46. package/dist/_chunks/fr-BQn1OHOR.mjs +0 -407
  47. package/dist/_chunks/index-01GHNxSr.js +0 -307
  48. package/dist/_chunks/index-5jsDgD-q.mjs +0 -330
  49. package/dist/_chunks/index-BWuj-5WE.js +0 -5068
  50. package/dist/_chunks/index-Bj3H_Z4B.js +0 -142
  51. package/dist/_chunks/index-CC4Eu9Dm.js +0 -332
  52. package/dist/_chunks/index-Csyi13vd.mjs +0 -2891
  53. package/dist/_chunks/index-DJqXiiP1.js +0 -2893
  54. package/dist/_chunks/index-DQUYFsLT.mjs +0 -143
  55. package/dist/_chunks/index-Dufv-daf.mjs +0 -305
  56. package/dist/_chunks/index-szeYJKpN.mjs +0 -5066
  57. package/dist/_chunks/pt-CjEkXBAz.js +0 -407
  58. package/dist/_chunks/pt-trziAOzT.mjs +0 -407
@@ -0,0 +1,673 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const esTranslations = {
4
+ "magic-link.Form.title.License": "Licencia",
5
+ "magic-link.Form.title.Settings": "Configuración",
6
+ "magic-link.Header.Settings": "Magic Link",
7
+ "magic-link.common.actions": "Acciones",
8
+ "magic-link.common.cancel": "Cancelar",
9
+ "magic-link.common.clearSelection": "Borrar selección",
10
+ "magic-link.common.clipboard.copied": "Copiado al portapapeles",
11
+ "magic-link.common.clipboard.failed": "No se pudo copiar. Seleccione el texto y cópielo manualmente.",
12
+ "magic-link.common.close": "Cerrar",
13
+ "magic-link.common.confirm": "Confirmar",
14
+ "magic-link.common.created": "Creado",
15
+ "magic-link.common.delete": "Eliminar",
16
+ "magic-link.common.emptyValue": "-",
17
+ "magic-link.common.entries": "{count} entradas",
18
+ "magic-link.common.entriesPerPage": "Entradas por página",
19
+ "magic-link.common.error.generic": "Se ha producido un error. Inténtelo de nuevo.",
20
+ "magic-link.common.expiresAt": "Expira",
21
+ "magic-link.common.language.followAdmin": "Igual que la interfaz de administración",
22
+ "magic-link.common.loading": "Cargando...",
23
+ "magic-link.common.loadingBannedIPs": "Cargando direcciones IP bloqueadas...",
24
+ "magic-link.common.loadingSessions": "Cargando sesiones JWT...",
25
+ "magic-link.common.next": "Siguiente",
26
+ "magic-link.common.pageTitle": "{page} | Magic Link",
27
+ "magic-link.common.permissions.loadError": "No se pudieron cargar sus permisos. Vuelva a cargar la página para intentarlo de nuevo.",
28
+ "magic-link.common.previous": "Anterior",
29
+ "magic-link.common.search.clear": "Borrar búsqueda",
30
+ "magic-link.common.searchIPPlaceholder": "Buscar por dirección IP...",
31
+ "magic-link.common.searchPlaceholder": "Buscar por correo, nombre de usuario o IP...",
32
+ "magic-link.common.status": "Estado",
33
+ "magic-link.common.table.pagination.goTo": "Ir a la página {page}",
34
+ "magic-link.common.table.pagination.label": "Paginación",
35
+ "magic-link.common.table.pagination.more": "Más páginas",
36
+ "magic-link.common.table.pagination.summary": "{from}-{to} de {total}",
37
+ "magic-link.common.table.retry": "Reintentar",
38
+ "magic-link.common.tableHeaders.ipAddress": "Dirección IP",
39
+ "magic-link.common.tableHeaders.sortByCreated": "Ordenar por fecha de creación",
40
+ "magic-link.common.tableHeaders.sortByExpiry": "Ordenar por fecha de expiración",
41
+ "magic-link.common.tableHeaders.sortByStatus": "Ordenar por estado",
42
+ "magic-link.common.tableHeaders.sortByUser": "Ordenar por usuario",
43
+ "magic-link.common.unsaved.badge": "Cambios sin guardar",
44
+ "magic-link.common.unsaved.cancel": "Seguir editando",
45
+ "magic-link.common.unsaved.confirm": "Descartar cambios",
46
+ "magic-link.common.unsaved.description": "Tiene cambios sin guardar. Si continúa, se perderán.",
47
+ "magic-link.common.unsaved.title": "¿Descartar los cambios no guardados?",
48
+ "magic-link.common.user": "Usuario",
49
+ "magic-link.common.userAgent": "User Agent",
50
+ "magic-link.ipban.actions.ban": "Bloquear IP",
51
+ "magic-link.ipban.actions.refresh": "Actualizar",
52
+ "magic-link.ipban.actions.unban": "Desbloquear",
53
+ "magic-link.ipban.actions.unbanFor": "Desbloquear {ip}",
54
+ "magic-link.ipban.dialog.unban.body": "Las solicitudes de {ip} vuelven a estar permitidas. Los tokens desactivados siguen desactivados.",
55
+ "magic-link.ipban.dialog.unban.title": "¿Desbloquear la dirección IP?",
56
+ "magic-link.ipban.empty.action": "Bloquear la primera IP",
57
+ "magic-link.ipban.empty.clearSearch": "Borrar búsqueda",
58
+ "magic-link.ipban.empty.description": "No hay direcciones IP bloqueadas actualmente. Agregue una IP para bloquearla.",
59
+ "magic-link.ipban.empty.descriptionReadOnly": "Actualmente no hay direcciones IP bloqueadas.",
60
+ "magic-link.ipban.empty.noMatches.description": "Compruebe la dirección o borre la búsqueda.",
61
+ "magic-link.ipban.empty.noMatches.title": "Ninguna IP bloqueada coincide con su búsqueda",
62
+ "magic-link.ipban.empty.title": "No hay IPs bloqueadas",
63
+ "magic-link.ipban.filters.label": "Filtrar direcciones IP bloqueadas",
64
+ "magic-link.ipban.modal.cancel": "Cancelar",
65
+ "magic-link.ipban.modal.hint": "Ingrese una dirección IPv4 o IPv6",
66
+ "magic-link.ipban.modal.invalidIP": "Por favor ingrese una dirección IP válida",
67
+ "magic-link.ipban.modal.label": "Dirección IP",
68
+ "magic-link.ipban.modal.placeholder": "ej. 203.0.113.10",
69
+ "magic-link.ipban.modal.submit": "Bloquear IP",
70
+ "magic-link.ipban.modal.subtitle": "Agregar una dirección IP a la lista de bloqueo",
71
+ "magic-link.ipban.modal.title": "Bloquear dirección IP",
72
+ "magic-link.ipban.modal.warning": "Advertencia: Esta dirección IP será bloqueada inmediatamente y todos los tokens asociados serán desactivados.",
73
+ "magic-link.ipban.notifications.banError": "Error al bloquear IP",
74
+ "magic-link.ipban.notifications.banSuccess": "IP {ip} ha sido bloqueada",
75
+ "magic-link.ipban.notifications.errorTitle": "Error",
76
+ "magic-link.ipban.notifications.loadError": "No se pudieron cargar las direcciones IP bloqueadas.",
77
+ "magic-link.ipban.notifications.refreshSuccess": "Lista de IP actualizada",
78
+ "magic-link.ipban.notifications.successTitle": "Éxito",
79
+ "magic-link.ipban.notifications.unbanError": "Error al desbloquear IP",
80
+ "magic-link.ipban.notifications.unbanSuccess": "IP {ip} ha sido desbloqueada",
81
+ "magic-link.ipban.permission.denied": "No tiene permiso para ver las direcciones IP bloqueadas.",
82
+ "magic-link.ipban.search.label": "Buscar direcciones IP bloqueadas",
83
+ "magic-link.ipban.stats.ipv4": "Direcciones IPv4",
84
+ "magic-link.ipban.stats.ipv6": "Direcciones IPv6",
85
+ "magic-link.ipban.stats.label": "Estadísticas de bloqueos",
86
+ "magic-link.ipban.stats.total": "IPs bloqueadas",
87
+ "magic-link.ipban.status.banned": "Bloqueado",
88
+ "magic-link.ipban.title": "Direcciones IP bloqueadas",
89
+ "magic-link.jwt.actions.cleanup": "Limpiar",
90
+ "magic-link.jwt.actions.cleanupCount": "Limpiar ({count})",
91
+ "magic-link.jwt.actions.refresh": "Actualizar",
92
+ "magic-link.jwt.actions.revoke": "Revocar",
93
+ "magic-link.jwt.actions.revokeFor": "Revocar la sesión de {user}",
94
+ "magic-link.jwt.actions.revokeSelected": "Revocar selección",
95
+ "magic-link.jwt.actions.unrevoke": "Restaurar",
96
+ "magic-link.jwt.actions.unrevokeExpired": "Las sesiones caducadas no se pueden restaurar",
97
+ "magic-link.jwt.actions.unrevokeRefresh": "Las sesiones en modo refresh no se pueden restaurar. El usuario debe iniciar sesión de nuevo.",
98
+ "magic-link.jwt.actions.unrevokeClaim": "Las sesiones cerradas por la reclamación de una cuenta no se pueden restaurar. El usuario debe iniciar sesión de nuevo.",
99
+ "magic-link.jwt.actions.unrevokeFor": "Restaurar la sesión de {user}",
100
+ "magic-link.jwt.confirm.cleanup": "¿Marcar como revocadas todas las sesiones JWT expiradas? Las sesiones activas no cambiarán.",
101
+ "magic-link.jwt.dialog.bulkRevoke.body": "{count, plural, one {# sesión se cierra de inmediato.} other {# sesiones se cierran de inmediato.}}",
102
+ "magic-link.jwt.dialog.bulkRevoke.title": "¿Revocar las sesiones seleccionadas?",
103
+ "magic-link.jwt.dialog.cleanup.title": "¿Limpiar las sesiones caducadas?",
104
+ "magic-link.jwt.dialog.revoke.body": "La sesión de {user} se cierra. Su token deja de funcionar de inmediato.",
105
+ "magic-link.jwt.dialog.revoke.title": "¿Revocar la sesión?",
106
+ "magic-link.jwt.dialog.unrevoke.body": "El token de {user} vuelve a funcionar hasta que caduque.",
107
+ "magic-link.jwt.dialog.unrevoke.title": "¿Restaurar la sesión?",
108
+ "magic-link.jwt.empty.description": "Las sesiones aparecen aquí después de que los usuarios inicien sesión con un magic link.",
109
+ "magic-link.jwt.empty.noMatches.description": "Cambie la búsqueda o el filtro de estado para ver más sesiones.",
110
+ "magic-link.jwt.empty.noMatches.title": "Ninguna sesión coincide con sus filtros",
111
+ "magic-link.jwt.empty.resetFilters": "Restablecer filtros",
112
+ "magic-link.jwt.empty.title": "Todavía no hay sesiones JWT",
113
+ "magic-link.jwt.filter.active": "Solo activas",
114
+ "magic-link.jwt.filter.all": "Todos los estados",
115
+ "magic-link.jwt.filter.expired": "Solo caducadas",
116
+ "magic-link.jwt.filter.revoked": "Solo revocadas",
117
+ "magic-link.jwt.filters.label": "Filtrar sesiones",
118
+ "magic-link.jwt.filters.status": "Filtrar por estado",
119
+ "magic-link.jwt.notifications.bulkRevokePartial": "{succeeded} de {total} sesiones revocadas. El resto ha fallado.",
120
+ "magic-link.jwt.notifications.bulkRevokeSuccess": "{count, plural, one {# sesión revocada} other {# sesiones revocadas}}",
121
+ "magic-link.jwt.notifications.cleanupCount": "{count, plural, one {# sesión caducada limpiada} other {# sesiones caducadas limpiadas}}",
122
+ "magic-link.jwt.notifications.cleanupError": "Error al limpiar las sesiones",
123
+ "magic-link.jwt.notifications.cleanupSuccess": "Sesiones limpiadas correctamente",
124
+ "magic-link.jwt.notifications.errorTitle": "Error",
125
+ "magic-link.jwt.notifications.loadError": "No se pudieron cargar las sesiones JWT.",
126
+ "magic-link.jwt.notifications.refreshSuccess": "Los datos se han actualizado",
127
+ "magic-link.jwt.notifications.revokeError": "Error al revocar la sesión",
128
+ "magic-link.jwt.notifications.revokeSuccess": "Sesión revocada correctamente",
129
+ "magic-link.jwt.notifications.successTitle": "Éxito",
130
+ "magic-link.jwt.notifications.unrevokeError": "Error al restaurar la sesión",
131
+ "magic-link.jwt.notifications.unrevokeSuccess": "Sesión restaurada correctamente",
132
+ "magic-link.jwt.permission.denied": "No tiene permiso para ver las sesiones JWT.",
133
+ "magic-link.jwt.search.label": "Buscar sesiones",
134
+ "magic-link.jwt.selection.count": "{count, plural, one {# sesión seleccionada} other {# sesiones seleccionadas}}",
135
+ "magic-link.jwt.stats.active": "Activo",
136
+ "magic-link.jwt.stats.expired": "Expirado",
137
+ "magic-link.jwt.stats.label": "Estadísticas de sesiones",
138
+ "magic-link.jwt.stats.revoked": "Revocado",
139
+ "magic-link.jwt.stats.total": "Total",
140
+ "magic-link.jwt.status.active": "Activo",
141
+ "magic-link.jwt.status.expired": "Expirado",
142
+ "magic-link.jwt.status.revoked": "Revocado",
143
+ "magic-link.jwt.table.select": "Seleccionar la sesión de {user}",
144
+ "magic-link.jwt.table.selectAll": "Seleccionar todas las sesiones activas de esta página",
145
+ "magic-link.jwt.title": "Sesiones JWT",
146
+ "magic-link.jwt.unknownUser": "Usuario desconocido",
147
+ "magic-link.jwt.unknownValue": "Desconocido",
148
+ "magic-link.license.alert.active.body": "Clave de licencia registrada. Gracias por apoyar el plugin.",
149
+ "magic-link.license.alert.active.title": "Licencia activa",
150
+ "magic-link.license.alert.close": "Cerrar mensaje",
151
+ "magic-link.license.alert.none.body": "Todas las funciones de Magic Link están disponibles sin activación.",
152
+ "magic-link.license.alert.none.title": "No hay ninguna clave de licencia registrada",
153
+ "magic-link.license.alert.unverified.body": "No se pudo contactar con el servidor de licencias. El plugin sigue funcionando. Actualice el estado más tarde.",
154
+ "magic-link.license.alert.unverified.title": "Licencia no verificada",
155
+ "magic-link.license.copy.success": "Clave de licencia copiada",
156
+ "magic-link.license.download.error": "No se pudo descargar el archivo de licencia.",
157
+ "magic-link.license.download.success": "Archivo de licencia descargado",
158
+ "magic-link.license.error.forbidden": "No tiene permiso para ver la licencia. Solicite a un administrador el permiso de lectura de la configuración.",
159
+ "magic-link.license.error.load": "No se pudo cargar la información de la licencia. Inténtelo de nuevo.",
160
+ "magic-link.license.error.title": "Licencia no disponible",
161
+ "magic-link.license.field.deviceName": "Nombre del dispositivo",
162
+ "magic-link.license.field.email": "Correo electrónico",
163
+ "magic-link.license.field.expired": "Caducó el",
164
+ "magic-link.license.field.expires": "Caduca el",
165
+ "magic-link.license.field.holder": "Nombre",
166
+ "magic-link.license.field.ipAddress": "Dirección IP",
167
+ "magic-link.license.field.mode": "Modo del plugin",
168
+ "magic-link.license.field.status": "Estado",
169
+ "magic-link.license.file.generated": "Generado",
170
+ "magic-link.license.file.holder": "Titular de la licencia",
171
+ "magic-link.license.file.statusSection": "Estado de la licencia",
172
+ "magic-link.license.file.title": "Clave de licencia del plugin Magic Link",
173
+ "magic-link.license.key.copy": "Copiar clave",
174
+ "magic-link.license.key.download": "Descargar como TXT",
175
+ "magic-link.license.key.hidden": "Clave de licencia oculta",
176
+ "magic-link.license.key.hide": "Ocultar clave",
177
+ "magic-link.license.key.label": "Clave de licencia",
178
+ "magic-link.license.key.show": "Mostrar clave",
179
+ "magic-link.license.loading": "Cargando la información de la licencia...",
180
+ "magic-link.license.mode.unlocked": "Todas las funciones disponibles",
181
+ "magic-link.license.pageTitle": "Licencia",
182
+ "magic-link.license.refresh": "Actualizar estado",
183
+ "magic-link.license.retry": "Reintentar",
184
+ "magic-link.license.section.account": "Información de la cuenta",
185
+ "magic-link.license.section.details": "Detalles de la licencia",
186
+ "magic-link.license.section.status": "Estado del sistema",
187
+ "magic-link.license.status.active": "Activa",
188
+ "magic-link.license.status.inactive": "Inactiva",
189
+ "magic-link.license.status.noKey": "Ninguna clave registrada",
190
+ "magic-link.license.subtitle": "Consulte la licencia de su plugin Magic Link",
191
+ "magic-link.license.title": "Gestión de la licencia",
192
+ "magic-link.license.value.never": "Nunca",
193
+ "magic-link.license.value.notProvided": "No indicado",
194
+ "magic-link.otp.actions.cleanup": "Limpiar",
195
+ "magic-link.otp.actions.cleanupCount": "Limpiar ({count})",
196
+ "magic-link.otp.actions.deleteFor": "Eliminar el código {reference}",
197
+ "magic-link.otp.actions.deleteSelected": "Eliminar selección",
198
+ "magic-link.otp.actions.refresh": "Actualizar",
199
+ "magic-link.otp.dialog.bulkDelete.body": "{count, plural, one {# código deja de funcionar de inmediato.} other {# códigos dejan de funcionar de inmediato.}}",
200
+ "magic-link.otp.dialog.bulkDelete.title": "¿Eliminar los códigos OTP seleccionados?",
201
+ "magic-link.otp.dialog.cleanup.body": "Todos los códigos caducados se eliminan de forma permanente. Los códigos activos siguen siendo válidos.",
202
+ "magic-link.otp.dialog.cleanup.title": "¿Eliminar los códigos OTP caducados?",
203
+ "magic-link.otp.dialog.delete.body": "El código enviado a {email} deja de funcionar de inmediato.",
204
+ "magic-link.otp.dialog.delete.title": "¿Eliminar el código OTP?",
205
+ "magic-link.otp.empty.description": "Los códigos aparecen aquí en cuanto un inicio de sesión con magic link solicita un código por correo electrónico.",
206
+ "magic-link.otp.empty.noMatches.description": "Cambie la búsqueda o el filtro de estado para ver más códigos.",
207
+ "magic-link.otp.empty.noMatches.title": "Ningún código OTP coincide con sus filtros",
208
+ "magic-link.otp.empty.resetFilters": "Restablecer filtros",
209
+ "magic-link.otp.empty.title": "Todavía no hay códigos OTP",
210
+ "magic-link.otp.filter.active": "Solo activos",
211
+ "magic-link.otp.filter.all": "Todos los estados",
212
+ "magic-link.otp.filter.expired": "Solo caducados",
213
+ "magic-link.otp.filter.used": "Solo usados",
214
+ "magic-link.otp.filters.label": "Filtrar códigos OTP",
215
+ "magic-link.otp.filters.status": "Filtrar por estado",
216
+ "magic-link.otp.loading": "Cargando códigos OTP...",
217
+ "magic-link.otp.notifications.bulkDeletePartial": "{succeeded} de {total} códigos OTP eliminados. El resto ha fallado.",
218
+ "magic-link.otp.notifications.bulkDeleteSuccess": "{count, plural, one {# código OTP eliminado} other {# códigos OTP eliminados}}",
219
+ "magic-link.otp.notifications.cleanupCount": "{count, plural, one {# código caducado eliminado} other {# códigos caducados eliminados}}",
220
+ "magic-link.otp.notifications.cleanupError": "No se pudieron eliminar los códigos OTP caducados.",
221
+ "magic-link.otp.notifications.cleanupSuccess": "Códigos OTP caducados eliminados",
222
+ "magic-link.otp.notifications.deleteError": "No se pudo eliminar el código OTP.",
223
+ "magic-link.otp.notifications.deleteSuccess": "Código OTP eliminado",
224
+ "magic-link.otp.notifications.errorTitle": "Error",
225
+ "magic-link.otp.notifications.loadError": "No se pudieron cargar los códigos OTP.",
226
+ "magic-link.otp.notifications.refreshSuccess": "Códigos OTP actualizados",
227
+ "magic-link.otp.notifications.successTitle": "Éxito",
228
+ "magic-link.otp.permission.denied": "No tiene permiso para ver los códigos OTP.",
229
+ "magic-link.otp.search.label": "Buscar códigos OTP",
230
+ "magic-link.otp.search.placeholder": "Buscar por correo electrónico...",
231
+ "magic-link.otp.selection.count": "{count, plural, one {# código seleccionado} other {# códigos seleccionados}}",
232
+ "magic-link.otp.stats.active": "Activos",
233
+ "magic-link.otp.stats.expired": "Caducados",
234
+ "magic-link.otp.stats.label": "Estadísticas de códigos OTP",
235
+ "magic-link.otp.stats.total": "Total",
236
+ "magic-link.otp.stats.used": "Usados",
237
+ "magic-link.otp.status.active": "Activo",
238
+ "magic-link.otp.status.expired": "Caducado",
239
+ "magic-link.otp.status.used": "Usado",
240
+ "magic-link.otp.table.attempts": "Intentos",
241
+ "magic-link.otp.table.email": "Correo electrónico",
242
+ "magic-link.otp.table.reference": "Referencia",
243
+ "magic-link.otp.table.select": "Seleccionar el código {reference} de {email}",
244
+ "magic-link.otp.table.selectAll": "Seleccionar todos los códigos de esta página",
245
+ "magic-link.otp.table.type": "Tipo",
246
+ "magic-link.otp.title": "Códigos OTP",
247
+ "magic-link.otp.type.email": "Correo electrónico",
248
+ "magic-link.otp.type.totp": "Aplicación de autenticación",
249
+ "magic-link.settings.advanced.publicRegistration.description": "Permite a los usuarios iniciar sesión con un Magic Link desde formularios de registro públicos, sin contraseña.",
250
+ "magic-link.settings.advanced.publicRegistration.title": "Magic Links en registro público",
251
+ "magic-link.settings.advanced.subtitle": "Características avanzadas para casos de uso especiales",
252
+ "magic-link.settings.advanced.title": "OPCIONES ADICIONALES",
253
+ "magic-link.settings.auth.jwtExpiration.hint": "Un número seguido de m, h o d, por ejemplo 15m, 1h, 7d o 30d. Los tokens revocados siguen bloqueados hasta que caducan.",
254
+ "magic-link.settings.auth.jwtExpiration.invalid": "Introduzca un número seguido de m, h o d, por ejemplo 15m, 1h o 30d.",
255
+ "magic-link.settings.auth.jwtExpiration.label": "Validez del JWT",
256
+ "magic-link.settings.auth.management.title": "Gestión de usuarios y sesiones",
257
+ "magic-link.settings.auth.options.subtitle": "Configure cómo se autentican y gestionan los usuarios",
258
+ "magic-link.settings.auth.options.title": "OPCIONES DE AUTENTICACIÓN",
259
+ "magic-link.settings.auth.storeLoginInfo.description": "Guarda la dirección IP y el navegador de cada inicio de sesión para la supervisión de seguridad.",
260
+ "magic-link.settings.auth.storeLoginInfo.title": "Almacenar datos de inicio de sesión",
261
+ "magic-link.settings.auth.strategy.email": "Solo correo electrónico: la cuenta se crea con la dirección de correo",
262
+ "magic-link.settings.auth.strategy.emailUsername": "Correo y nombre de usuario: el nombre de usuario se genera a partir del correo",
263
+ "magic-link.settings.auth.strategy.hint": "Se usa cuando un administrador crea un enlace para una dirección de correo desconocida.",
264
+ "magic-link.settings.auth.strategy.label": "Estrategia de creación de usuario",
265
+ "magic-link.settings.auth.strategy.manual": "Manual: sin creación automática, los usuarios deben existir",
266
+ "magic-link.settings.auth.useJwt.description": "Devuelve un JWT de Users & Permissions tras el inicio de sesión, como el inicio de sesión nativo. Recomendado para SPA y aplicaciones móviles.",
267
+ "magic-link.settings.auth.useJwt.title": "Emitir un JWT",
268
+ "magic-link.settings.auth.verifyEmail.description": "Los usuarios deben confirmar su dirección de correo electrónico antes de iniciar sesión.",
269
+ "magic-link.settings.auth.verifyEmail.title": "Verificación de correo",
270
+ "magic-link.settings.auth.welcomeEmail.description": "Envía un correo de bienvenida a los usuarios recién creados.",
271
+ "magic-link.settings.auth.welcomeEmail.title": "Correo de bienvenida",
272
+ "magic-link.settings.compatibility.migration.description": "Después de la migración, cambie sus clientes a la API de Magic Link (/api/magic-link/*) y desactive el modo de compatibilidad.",
273
+ "magic-link.settings.compatibility.migration.title": "Nota de Migración",
274
+ "magic-link.settings.compatibility.passwordless.description": "Mantiene operativas las rutas /api/passwordless de strapi-plugin-passwordless durante la migración.",
275
+ "magic-link.settings.compatibility.passwordless.title": "Compatibilidad con Plugin Passwordless",
276
+ "magic-link.settings.confirmationUrl.hint": "URL completa de la página que recibe el enlace cuando no hay URL de frontend.",
277
+ "magic-link.settings.confirmationUrl.label": "URL de confirmación",
278
+ "magic-link.settings.context.blacklist.hint": "Separados por comas. Estos campos siempre se eliminan, aunque también estén permitidos.",
279
+ "magic-link.settings.context.blacklist.label": "Campos bloqueados",
280
+ "magic-link.settings.context.subtitle": "Se aplica a cada enlace de inicio de sesión, lo cree su frontend o un administrador. Los campos reservados como userId u otpVerified siempre se eliminan.",
281
+ "magic-link.settings.context.title": "Política de campos de contexto",
282
+ "magic-link.settings.context.whitelist.hint": "Separados por comas. Si se define, solo se conservan estos campos. Déjelo vacío para permitir todos los campos no bloqueados.",
283
+ "magic-link.settings.context.whitelist.label": "Campos permitidos",
284
+ "magic-link.settings.discard": "Descartar",
285
+ "magic-link.settings.email.default.button": "Iniciar sesión ahora",
286
+ "magic-link.settings.email.default.expiry": "El enlace caduca en {expiry}.",
287
+ "magic-link.settings.email.default.heading": "Iniciar sesión",
288
+ "magic-link.settings.email.default.ignore": "Si no solicitó este correo, puede ignorarlo.",
289
+ "magic-link.settings.email.default.intro": "Use el botón de abajo para iniciar sesión. No necesita contraseña.",
290
+ "magic-link.settings.email.default.name": "Plantilla predeterminada",
291
+ "magic-link.settings.email.designer.fallbackBadge": "Solo respaldo",
292
+ "magic-link.settings.email.designer.fallbackDescription": "Estas plantillas se usan cuando la integración seleccionada no puede enviar.",
293
+ "magic-link.settings.email.designer.noTemplates": "No se encontraron plantillas. Cree una primero en Email Designer 5.",
294
+ "magic-link.settings.email.designer.placeholder": "Elija una plantilla...",
295
+ "magic-link.settings.email.designer.selectTemplate": "Plantilla de Email Designer",
296
+ "magic-link.settings.email.designer.templatesAvailable": "{count, plural, one {# plantilla disponible} other {# plantillas disponibles}}. La selección se aplica después de guardar.",
297
+ "magic-link.settings.email.designer.useTemplate": "Usar una plantilla de Email Designer 5",
298
+ "magic-link.settings.email.designer.useTemplateHint": "Los correos de inicio de sesión usan la plantilla de Email Designer seleccionada. Las plantillas de abajo quedan como alternativa.",
299
+ "magic-link.settings.email.designer.variables": "Variables de la plantilla: '{{magicLink}}' (enlace de inicio de sesión), '{{expiryText}}', '{{user.email}}' y '{{user.username}}'.",
300
+ "magic-link.settings.email.fromEmail.hint": "Debe ser una dirección desde la que su proveedor pueda enviar. Déjelo vacío para usar la predeterminada del proveedor.",
301
+ "magic-link.settings.email.fromEmail.label": "Correo del remitente",
302
+ "magic-link.settings.email.fromName.hint": "El nombre que los usuarios ven como remitente, por ejemplo el nombre de su aplicación.",
303
+ "magic-link.settings.email.fromName.label": "Nombre del remitente",
304
+ "magic-link.settings.email.gallery.active": "En uso",
305
+ "magic-link.settings.email.gallery.description": "Cargue un diseño listo en los editores de abajo. Guarde para aplicarlo.",
306
+ "magic-link.settings.email.gallery.title": "Galería de plantillas",
307
+ "magic-link.settings.email.html.badge": "Plantilla principal",
308
+ "magic-link.settings.email.html.copied": "Plantilla HTML copiada",
309
+ "magic-link.settings.email.html.copy": "Copiar plantilla",
310
+ "magic-link.settings.email.html.description": "Versión HTML del correo de inicio de sesión. Use los marcadores de arriba, al menos {placeholder}.",
311
+ "magic-link.settings.email.html.loadDefault": "Cargar plantilla predeterminada",
312
+ "magic-link.settings.email.html.stats": "{lines, plural, one {# línea} other {# líneas}}, {chars, plural, one {# carácter} other {# caracteres}}",
313
+ "magic-link.settings.email.html.title": "Plantilla HTML",
314
+ "magic-link.settings.email.invalidEmail": "Introduce una dirección de correo válida o deja el campo vacío.",
315
+ "magic-link.settings.email.magicMail.description": "Usa sus cuentas de Magic Mail, reglas de enrutamiento y conmutación por error. Asegúrese de que haya al menos una cuenta activa.",
316
+ "magic-link.settings.email.magicMail.placeholder": "Elegir una plantilla",
317
+ "magic-link.settings.email.magicMail.template": "Plantilla de Magic Mail",
318
+ "magic-link.settings.email.magicMail.templateHint": "Opcional. Las plantillas se gestionan en Magic Mail. La selección se aplica después de guardar.",
319
+ "magic-link.settings.email.magicMail.use": "Enviar con Magic Mail",
320
+ "magic-link.settings.email.overwrite.body": 'Cargar "{name}" reemplaza su plantilla personalizada en el editor. Su configuración guardada no cambia hasta que guarde.',
321
+ "magic-link.settings.email.overwrite.confirm": "Reemplazar plantilla",
322
+ "magic-link.settings.email.overwrite.title": "¿Reemplazar su plantilla?",
323
+ "magic-link.settings.email.placeholders.code.description": "Solo el token, únicamente para formatos de enlace personalizados.",
324
+ "magic-link.settings.email.placeholders.copied": "{placeholder} copiado",
325
+ "magic-link.settings.email.placeholders.copyLabel": "Copiar {placeholder}",
326
+ "magic-link.settings.email.placeholders.email.description": "Dirección de correo del destinatario.",
327
+ "magic-link.settings.email.placeholders.expiresAt.description": "Fecha y hora de caducidad en formato ISO 8601.",
328
+ "magic-link.settings.email.placeholders.expiry.description": "Cuánto tiempo sigue siendo válido el enlace, por ejemplo 1 hora.",
329
+ "magic-link.settings.email.placeholders.intro": "Los valores se insertan como texto sin formato y se escapan en HTML. Seleccione un marcador para copiarlo.",
330
+ "magic-link.settings.email.placeholders.loginUrl.description": "Enlace de inicio de sesión completo con el token. Úselo en botones y enlaces.",
331
+ "magic-link.settings.email.placeholders.title": "Marcadores disponibles",
332
+ "magic-link.settings.email.placeholders.url.description": "URL de inicio de sesión sin el token.",
333
+ "magic-link.settings.email.placeholders.username.description": "Nombre de usuario del destinatario, o la dirección de correo si no tiene.",
334
+ "magic-link.settings.email.provider.configured": "Proveedor de correo: {name}",
335
+ "magic-link.settings.email.provider.defaultName": "configurado",
336
+ "magic-link.settings.email.provider.magicMail": "Proveedor de correo: Magic Mail (enrutamiento avanzado)",
337
+ "magic-link.settings.email.provider.missing.body": "Magic Link no puede enviar correos hasta que se configure un proveedor. Elija una de estas opciones:",
338
+ "magic-link.settings.email.provider.missing.configure": "y configúrelo en {file}.",
339
+ "magic-link.settings.email.provider.missing.magicMail": "Instale el plugin Magic Mail para enrutamiento, cuentas OAuth2 y analíticas.",
340
+ "magic-link.settings.email.provider.missing.nodemailer": "Instale Nodemailer (recomendado):",
341
+ "magic-link.settings.email.provider.missing.other": "Use otro proveedor de correo de Strapi, como SendGrid, Mailgun o Amazon SES.",
342
+ "magic-link.settings.email.provider.missing.title": "No hay ningún proveedor de correo configurado",
343
+ "magic-link.settings.email.responseEmail.hint": "Opcional. Las respuestas de los usuarios llegan a esta dirección.",
344
+ "magic-link.settings.email.responseEmail.label": "Correo de respuesta",
345
+ "magic-link.settings.email.sender.subtitle": "Esta información aparece en los correos enviados a los usuarios",
346
+ "magic-link.settings.email.sender.title": "INFORMACIÓN DEL REMITENTE",
347
+ "magic-link.settings.email.subject.hint": "Sea claro para que el correo no se marque como spam. Los marcadores como {placeholder} también funcionan aquí.",
348
+ "magic-link.settings.email.subject.label": "Línea de asunto",
349
+ "magic-link.settings.email.subject.placeholder": "Su enlace de inicio de sesión",
350
+ "magic-link.settings.email.template.fallbackName": "Plantilla {id}",
351
+ "magic-link.settings.email.template.missing": "La plantilla guardada ya no existe. Seleccione otra.",
352
+ "magic-link.settings.email.templates.subtitle": "Diseñe los correos enviados a los usuarios. Use marcadores de posición para contenido dinámico.",
353
+ "magic-link.settings.email.templates.title": "PLANTILLAS DE CORREO",
354
+ "magic-link.settings.email.text.badge": "Respaldo",
355
+ "magic-link.settings.email.text.copied": "Plantilla de texto copiada",
356
+ "magic-link.settings.email.text.copy": "Copiar plantilla",
357
+ "magic-link.settings.email.text.description": "Versión de texto para clientes de correo sin HTML. Los marcadores se insertan tal cual.",
358
+ "magic-link.settings.email.text.loadDefault": "Cargar plantilla predeterminada",
359
+ "magic-link.settings.email.text.title": "Plantilla de texto sin formato",
360
+ "magic-link.settings.errors.summary": "{count, plural, one {# campo requiere atención} other {# campos requieren atención}}",
361
+ "magic-link.settings.expire.hint": "Recomendado: 3600 segundos (1 hora). Permitido: de 10 a 31.536.000.",
362
+ "magic-link.settings.expire.label": "Validez del enlace (segundos)",
363
+ "magic-link.settings.feature.createUser.description": "Crea una cuenta cuando la dirección de correo es desconocida. Respeta la configuración de registro y confirmación de correo de Users & Permissions.",
364
+ "magic-link.settings.feature.createUser.title": "Crear usuarios automáticamente",
365
+ "magic-link.settings.feature.staysValid.description": "Un enlace puede usarse varias veces hasta que caduque. Menos seguro; manténgalo desactivado salvo que los usuarios necesiten abrir el enlace en varios dispositivos.",
366
+ "magic-link.settings.feature.staysValid.title": "Enlaces reutilizables",
367
+ "magic-link.settings.features.subtitle": "Activar o desactivar las características principales del plugin Magic Link",
368
+ "magic-link.settings.features.title": "CARACTERÍSTICAS PRINCIPALES",
369
+ "magic-link.settings.footer.quickhelp": "Ayuda rápida",
370
+ "magic-link.settings.footer.reminder": "Después de guardar, cree un token de prueba y pruebe el Magic Link.",
371
+ "magic-link.settings.info.header": "Notas importantes de configuración",
372
+ "magic-link.settings.info.line1": "Los cambios se aplican después de guardar.",
373
+ "magic-link.settings.info.line2": "Asegúrese de que todas las URLs estén correctamente configuradas",
374
+ "magic-link.settings.info.line3": "Pruebe la configuración después de guardar con un token de prueba",
375
+ "magic-link.settings.info.line4": "Las tarjetas verdes son funciones activas; las grises están inactivas.",
376
+ "magic-link.settings.language.hint": "Idioma de las páginas de administración de Magic Link en este navegador. Se aplica de inmediato.",
377
+ "magic-link.settings.language.label": "Idioma de la interfaz",
378
+ "magic-link.settings.links.frontendPath.hint": "Ruta de la página que recibe el enlace, añadida a la URL del frontend. Empieza por /.",
379
+ "magic-link.settings.links.frontendPath.label": "Ruta de inicio de sesión del frontend",
380
+ "magic-link.settings.links.frontendUrl.hint": "URL base de su aplicación frontend (React, Vue, página de enlace profundo móvil). Déjelo vacío para usar la URL de confirmación.",
381
+ "magic-link.settings.links.frontendUrl.label": "URL base del frontend",
382
+ "magic-link.settings.links.preview.source.api": "No hay una URL de frontend o de confirmación válida, así que el enlace abre la ruta de inicio de sesión de la API de Strapi.",
383
+ "magic-link.settings.links.preview.source.confirmation": "Generado a partir de la URL de confirmación.",
384
+ "magic-link.settings.links.preview.source.frontend": "Generado a partir de la URL del frontend y la ruta de inicio de sesión.",
385
+ "magic-link.settings.links.preview.title": "Enlace de inicio de sesión resultante",
386
+ "magic-link.settings.links.subtitle": "Use https. http solo se acepta para localhost. La URL del frontend tiene prioridad sobre la URL de confirmación.",
387
+ "magic-link.settings.links.title": "URL de los enlaces de inicio de sesión",
388
+ "magic-link.settings.load.error": "No se pudo cargar la configuración.",
389
+ "magic-link.settings.load.loading": "Cargando configuración...",
390
+ "magic-link.settings.mfa.confirmRequired.bodyCount": "Solo {count, plural, one {# usuario ha} other {# usuarios han}} configurado una aplicación de autenticación. Los demás ya no podrán iniciar sesión después de guardar.",
391
+ "magic-link.settings.mfa.confirmRequired.bodyUnknown": "Los usuarios sin aplicación de autenticación ya no podrán iniciar sesión después de guardar. Se desconoce el número de usuarios registrados.",
392
+ "magic-link.settings.mfa.confirmRequired.confirm": "Exigir a todos",
393
+ "magic-link.settings.mfa.confirmRequired.recovery": 'Para deshacerlo, elija "Usuarios que configuraron una aplicación" u otro modo de inicio de sesión y vuelva a guardar.',
394
+ "magic-link.settings.mfa.confirmRequired.title": "¿Exigir una aplicación de autenticación a todos los usuarios?",
395
+ "magic-link.settings.mfa.enrollment.count": "{count, plural, one {# usuario ha} other {# usuarios han}} configurado una aplicación de autenticación.",
396
+ "magic-link.settings.mfa.enrollment.howTo": "Los usuarios configuran su aplicación con la sesión iniciada, desde su frontend. No pueden configurarla durante un inicio de sesión que ya exige un código.",
397
+ "magic-link.settings.mfa.enrollment.loading": "Comprobando cuántos usuarios configuraron una aplicación de autenticación...",
398
+ "magic-link.settings.mfa.enrollment.none": "Ningún usuario ha configurado todavía una aplicación de autenticación.",
399
+ "magic-link.settings.mfa.enrollment.title": "Registro",
400
+ "magic-link.settings.mfa.enrollment.unavailable": "No se pudo determinar el número de usuarios con una aplicación de autenticación.",
401
+ "magic-link.settings.mfa.intro": "Elija cómo inician sesión los usuarios. La selección se aplica al guardar. Los códigos por correo y las aplicaciones de autenticación son modos separados.",
402
+ "magic-link.settings.mfa.lockout.body": 'La política guardada exige una aplicación de autenticación, pero ningún usuario la configuró. Elija "Usuarios que configuraron una aplicación" u otro modo y guarde.',
403
+ "magic-link.settings.mfa.lockout.title": "Actualmente todos los inicios de sesión fallan",
404
+ "magic-link.settings.mfa.mode.emailOtp.badge": "Más seguro",
405
+ "magic-link.settings.mfa.mode.emailOtp.description": "Tras abrir el enlace, los usuarios introducen un código de un solo uso enviado por correo.",
406
+ "magic-link.settings.mfa.mode.emailOtp.feature1": "Código enviado por correo",
407
+ "magic-link.settings.mfa.mode.emailOtp.feature2": "Longitud de código configurable",
408
+ "magic-link.settings.mfa.mode.emailOtp.feature3": "Validez configurable",
409
+ "magic-link.settings.mfa.mode.emailOtp.title": "Magic Link + código por correo",
410
+ "magic-link.settings.mfa.mode.magicLink.badge": "Rápido",
411
+ "magic-link.settings.mfa.mode.magicLink.description": "Inicio de sesión con un clic por correo. Rápido y sencillo.",
412
+ "magic-link.settings.mfa.mode.magicLink.feature1": "Sin contraseñas",
413
+ "magic-link.settings.mfa.mode.magicLink.feature2": "Inicio de sesión rápido",
414
+ "magic-link.settings.mfa.mode.magicLink.feature3": "Funciona en cualquier dispositivo",
415
+ "magic-link.settings.mfa.mode.magicLink.title": "Solo Magic Link",
416
+ "magic-link.settings.mfa.mode.totp.badge": "El más seguro",
417
+ "magic-link.settings.mfa.mode.totp.description": "Tras abrir el enlace, los usuarios introducen un código de una aplicación de autenticación como Google Authenticator o Authy.",
418
+ "magic-link.settings.mfa.mode.totp.feature1": "Códigos de la aplicación de autenticación",
419
+ "magic-link.settings.mfa.mode.totp.feature2": "Configuración mediante código QR",
420
+ "magic-link.settings.mfa.mode.totp.feature3": "Los códigos cambian cada 30 segundos",
421
+ "magic-link.settings.mfa.mode.totp.title": "Magic Link + aplicación de autenticación",
422
+ "magic-link.settings.mfa.modes.title": "Modo de inicio de sesión",
423
+ "magic-link.settings.mfa.otp.attempts.hint": "El código deja de ser válido tras este número de intentos fallidos. Predeterminado: 3.",
424
+ "magic-link.settings.mfa.otp.attempts.label": "Máximo de intentos fallidos",
425
+ "magic-link.settings.mfa.otp.cooldown.hint": "Cuánto deben esperar los usuarios antes de solicitar un nuevo código. Predeterminado: 60.",
426
+ "magic-link.settings.mfa.otp.cooldown.label": "Espera antes de un nuevo código (segundos)",
427
+ "magic-link.settings.mfa.otp.delivery": "Envío: correo electrónico. Los códigos se envían a la dirección de la cuenta.",
428
+ "magic-link.settings.mfa.otp.expiry.hint": "Predeterminado: 300 segundos (5 minutos). Permitido: de 30 a 86.400.",
429
+ "magic-link.settings.mfa.otp.expiry.label": "Validez del código (segundos)",
430
+ "magic-link.settings.mfa.otp.howItWorks": "Cómo funciona",
431
+ "magic-link.settings.mfa.otp.length.hint": "Predeterminado: 6 dígitos. Permitido: de 4 a 16.",
432
+ "magic-link.settings.mfa.otp.length.label": "Longitud del código (dígitos)",
433
+ "magic-link.settings.mfa.otp.step1": "El usuario abre el Magic Link del correo.",
434
+ "magic-link.settings.mfa.otp.step2": "Su aplicación muestra la página para introducir el código.",
435
+ "magic-link.settings.mfa.otp.step3": "El usuario introduce el código de {length} dígitos enviado a su correo.",
436
+ "magic-link.settings.mfa.otp.step4": "Tras un código correcto, el usuario inicia sesión.",
437
+ "magic-link.settings.mfa.otp.title": "Configuración de los códigos por correo",
438
+ "magic-link.settings.mfa.policy.optional": "Usuarios que configuraron una aplicación (recomendado)",
439
+ "magic-link.settings.mfa.policy.optionalHint": "Los usuarios con aplicación de autenticación deben introducir su código. Los demás inician sesión con el Magic Link.",
440
+ "magic-link.settings.mfa.policy.required": "Todos los usuarios",
441
+ "magic-link.settings.mfa.policy.requiredBlocked": "No disponible: ningún usuario configuró una aplicación de autenticación, así que todos los inicios de sesión fallarían.",
442
+ "magic-link.settings.mfa.policy.requiredHint": "Los usuarios sin aplicación de autenticación ya no pueden iniciar sesión.",
443
+ "magic-link.settings.mfa.policy.title": "¿Quién debe usar una aplicación de autenticación?",
444
+ "magic-link.settings.mfa.summary.emailOtp": "Los usuarios abren el Magic Link y luego introducen el código del correo.",
445
+ "magic-link.settings.mfa.summary.magicLink": "Los usuarios inician sesión solo con el Magic Link.",
446
+ "magic-link.settings.mfa.summary.title": "Selección actual",
447
+ "magic-link.settings.mfa.summary.totpOnly": "Los usuarios con aplicación de autenticación también pueden iniciar sesión con su correo y un código, sin esperar un correo.",
448
+ "magic-link.settings.mfa.summary.totpOptional": "Los usuarios abren el Magic Link. Quienes configuraron una aplicación de autenticación también deben introducir su código.",
449
+ "magic-link.settings.mfa.summary.totpRequired": "Los usuarios abren el Magic Link y luego introducen un código de su aplicación de autenticación. Los usuarios sin aplicación no pueden iniciar sesión.",
450
+ "magic-link.settings.mfa.totp.digits.label": "Dígitos del código",
451
+ "magic-link.settings.mfa.totp.digits.option": "{count} dígitos",
452
+ "magic-link.settings.mfa.totp.issuer.hint": "Se muestra en la aplicación de autenticación, por ejemplo el nombre de su aplicación.",
453
+ "magic-link.settings.mfa.totp.issuer.label": "Nombre del emisor",
454
+ "magic-link.settings.mfa.totp.period.hint": "Predeterminado: 30 segundos. La mayoría de las aplicaciones solo admiten 30.",
455
+ "magic-link.settings.mfa.totp.period.label": "Periodo del código (segundos)",
456
+ "magic-link.settings.mfa.totp.subtitle": "Los cambios se aplican a nuevas configuraciones. Las aplicaciones ya configuradas siguen funcionando.",
457
+ "magic-link.settings.mfa.totp.title": "Configuración de la aplicación de autenticación",
458
+ "magic-link.settings.mfa.totpOnly.description": "Los usuarios que configuraron una aplicación de autenticación pueden iniciar sesión con su correo y un código actual, sin esperar un correo.",
459
+ "magic-link.settings.mfa.totpOnly.title": "Inicio de sesión solo con código de autenticación",
460
+ "magic-link.settings.page.subtitle": "Configure la autenticación sin contraseña para sus usuarios",
461
+ "magic-link.settings.page.title": "Configuración de Magic Link",
462
+ "magic-link.settings.pageTitle": "Configuración",
463
+ "magic-link.settings.permission.readOnly": "Solo tienes permiso de lectura. No puedes guardar cambios.",
464
+ "magic-link.settings.permission.readOnlyTitle": "Solo lectura",
465
+ "magic-link.settings.rateLimit.cleanup": "Limpiar entradas caducadas",
466
+ "magic-link.settings.rateLimit.cleanupError": "No se pudieron eliminar las entradas caducadas",
467
+ "magic-link.settings.rateLimit.cleanupSuccess": "Entradas caducadas eliminadas",
468
+ "magic-link.settings.rateLimit.config.title": "Límites",
469
+ "magic-link.settings.rateLimit.enable.description": "Protege contra ataques de fuerza bruta y spam limitando las solicitudes de enlaces de inicio de sesión.",
470
+ "magic-link.settings.rateLimit.enable.title": "Activar limitación de velocidad",
471
+ "magic-link.settings.rateLimit.maxAttempts.hint": "Solicitudes permitidas por intervalo antes del bloqueo (de 1 a 1.000).",
472
+ "magic-link.settings.rateLimit.maxAttempts.label": "Máximo de solicitudes",
473
+ "magic-link.settings.rateLimit.reset": "Restablecer todos los límites",
474
+ "magic-link.settings.rateLimit.resetConfirm": "Todas las direcciones IP y de correo electrónico bloqueadas podrán volver a enviar solicitudes de inmediato.",
475
+ "magic-link.settings.rateLimit.resetError": "No se pudieron restablecer los límites de frecuencia",
476
+ "magic-link.settings.rateLimit.resetSuccess": "Todos los límites de frecuencia se restablecieron",
477
+ "magic-link.settings.rateLimit.resetTitle": "¿Restablecer todos los límites de frecuencia?",
478
+ "magic-link.settings.rateLimit.stats.blocked": "Actualmente bloqueados",
479
+ "magic-link.settings.rateLimit.stats.emailLimits": "Límites email",
480
+ "magic-link.settings.rateLimit.stats.error": "No se pudieron cargar las estadísticas.",
481
+ "magic-link.settings.rateLimit.stats.ipLimits": "Límites por dirección IP",
482
+ "magic-link.settings.rateLimit.stats.loading": "Cargando estadísticas...",
483
+ "magic-link.settings.rateLimit.stats.note": "Las estadísticas solo cubren este proceso del servidor. Limpiar y restablecer no cambian su configuración sin guardar.",
484
+ "magic-link.settings.rateLimit.stats.title": "ESTADÍSTICAS ACTUALES",
485
+ "magic-link.settings.rateLimit.stats.total": "Entradas totales",
486
+ "magic-link.settings.rateLimit.subtitle": "Evite abusos limitando el número de solicitudes por dirección IP y correo",
487
+ "magic-link.settings.rateLimit.title": "LIMITACIÓN DE VELOCIDAD",
488
+ "magic-link.settings.rateLimit.windowMinutes.hint": "Periodo en el que se cuentan las solicitudes (de 1 a 10.080 minutos).",
489
+ "magic-link.settings.rateLimit.windowMinutes.label": "Ventana de tiempo (Minutos)",
490
+ "magic-link.settings.retry": "Reintentar",
491
+ "magic-link.settings.save.button": "Guardar cambios",
492
+ "magic-link.settings.save.error": "No se pudo guardar la configuración. Inténtelo de nuevo.",
493
+ "magic-link.settings.save.invalid": "Algunos campos requieren atención. Corríjalos antes de guardar.",
494
+ "magic-link.settings.save.rejected": "El servidor rechazó un valor. Revise el campo resaltado.",
495
+ "magic-link.settings.save.saving": "Guardando...",
496
+ "magic-link.settings.save.success": "Configuración guardada",
497
+ "magic-link.settings.section.advanced": "Avanzado",
498
+ "magic-link.settings.section.auth": "Autenticación",
499
+ "magic-link.settings.section.email": "Correo electrónico",
500
+ "magic-link.settings.section.fieldsToFix": "Por corregir",
501
+ "magic-link.settings.section.general": "General",
502
+ "magic-link.settings.section.mfa": "Modos de inicio de sesión y MFA",
503
+ "magic-link.settings.section.rateLimit": "Limitación de frecuencia",
504
+ "magic-link.settings.time.title": "Validez y longitud de los enlaces",
505
+ "magic-link.settings.tokenLength.hint": "Los tokens más largos son más difíciles de adivinar. Permitido: de 22 a 128. Actual: {length} caracteres.",
506
+ "magic-link.settings.tokenLength.label": "Longitud del token (caracteres)",
507
+ "magic-link.settings.validation.digits": "Elija 6 u 8 dígitos.",
508
+ "magic-link.settings.validation.length": "Use como máximo {max} caracteres.",
509
+ "magic-link.settings.validation.linkOrigin": "Este origen no está entre los orígenes de enlaces permitidos en la configuración del servidor.",
510
+ "magic-link.settings.validation.list": "Use como máximo {max} campos de hasta 128 caracteres cada uno.",
511
+ "magic-link.settings.validation.path": "Introduzca una ruta que empiece por / y contenga solo caracteres de URL.",
512
+ "magic-link.settings.validation.range": "Introduzca un número entero entre {min} y {max}.",
513
+ "magic-link.settings.validation.server": "El servidor rechazó este valor. Revíselo y vuelva a guardar.",
514
+ "magic-link.settings.validation.securityForbidden": "Cambiar este valor requiere el permiso «Configuración: Seguridad».",
515
+ "magic-link.settings.validation.url": "Introduzca una URL https. http solo se permite para localhost.",
516
+ "magic-link.status.active": "ACTIVO",
517
+ "magic-link.status.inactive": "INACTIVO",
518
+ "magic-link.tokens.actions.activate": "Activar",
519
+ "magic-link.tokens.actions.block": "Bloquear",
520
+ "magic-link.tokens.actions.bulkDelete": "Eliminar seleccionados",
521
+ "magic-link.tokens.actions.delete": "Eliminar",
522
+ "magic-link.tokens.actions.deleteFor": "Eliminar el token de {email}",
523
+ "magic-link.tokens.actions.extend": "Prolongar",
524
+ "magic-link.tokens.actions.extendFor": "Ampliar el token de {email}",
525
+ "magic-link.tokens.actions.newToken": "Nuevo token",
526
+ "magic-link.tokens.actions.reactivate": "Nuevo token",
527
+ "magic-link.tokens.actions.refresh": "Actualizar",
528
+ "magic-link.tokens.actions.retry": "Reintentar",
529
+ "magic-link.tokens.actions.settings": "Configuración",
530
+ "magic-link.tokens.actions.viewDetailsFor": "Ver detalles de {email}",
531
+ "magic-link.tokens.activate.body": "El enlace de inicio de sesión de {email} vuelve a funcionar hasta que caduque.",
532
+ "magic-link.tokens.activate.title": "¿Activar el token?",
533
+ "magic-link.tokens.block.body": "El enlace de inicio de sesión de {email} deja de funcionar hasta que usted lo vuelva a activar.",
534
+ "magic-link.tokens.block.title": "¿Bloquear el token?",
535
+ "magic-link.tokens.bulk.label": "Acciones masivas",
536
+ "magic-link.tokens.bulkDelete.title": "¿Eliminar los tokens seleccionados?",
537
+ "magic-link.tokens.confirm.bulkDelete": "¿Eliminar {count, plural, one {# token seleccionado} other {# tokens seleccionados}}? Esta acción no se puede deshacer.",
538
+ "magic-link.tokens.create.context.error": "Formato JSON inválido",
539
+ "magic-link.tokens.create.context.hint": "Objeto JSON opcional que se envía con el token, por ejemplo una ruta de redirección.",
540
+ "magic-link.tokens.create.context.label": "Contexto JSON (Opcional)",
541
+ "magic-link.tokens.create.context.object": "El contexto debe ser un objeto JSON.",
542
+ "magic-link.tokens.create.context.placeholder": `'{ "clave": "valor" }'`,
543
+ "magic-link.tokens.create.context.reserved": "Estas claves están reservadas para el servidor: {keys}",
544
+ "magic-link.tokens.create.email.hint": "El enlace de inicio de sesión se crea para esta dirección de correo electrónico.",
545
+ "magic-link.tokens.create.email.invalid": "Introduzca una dirección de correo electrónico válida.",
546
+ "magic-link.tokens.create.email.label": "Dirección de correo electrónico",
547
+ "magic-link.tokens.create.email.placeholder": "usuario@ejemplo.com",
548
+ "magic-link.tokens.create.email.required": "Introduzca una dirección de correo electrónico.",
549
+ "magic-link.tokens.create.sendEmail.hint": "El usuario recibe de inmediato un correo electrónico con el enlace de inicio de sesión.",
550
+ "magic-link.tokens.create.sendEmail.label": "Enviar el enlace de inicio de sesión por correo electrónico",
551
+ "magic-link.tokens.create.sendEmail.off": "No se envía ningún correo electrónico. El token se muestra una sola vez tras crearlo para que usted pueda compartirlo.",
552
+ "magic-link.tokens.create.submit": "Crear token",
553
+ "magic-link.tokens.create.submitting": "Creando...",
554
+ "magic-link.tokens.create.title": "Crear token Magic Link",
555
+ "magic-link.tokens.create.ttl.error": "Introduzca un número entero de horas entre {min} y {max}.",
556
+ "magic-link.tokens.create.ttl.hint": "Cuánto tiempo sigue siendo válido el enlace ({min} a {max} horas).",
557
+ "magic-link.tokens.create.ttl.label": "Período de validez (Horas)",
558
+ "magic-link.tokens.created.closeHint": "Cierre este cuadro de diálogo con Listo cuando haya copiado lo que necesita.",
559
+ "magic-link.tokens.created.copyLink": "Copiar enlace",
560
+ "magic-link.tokens.created.done": "Listo",
561
+ "magic-link.tokens.created.plaintextToken": "Token completo",
562
+ "magic-link.tokens.created.title": "Token creado",
563
+ "magic-link.tokens.created.warning": "El token completo solo se muestra esta vez. Cópielo ahora si desea enviarlo usted mismo al usuario. Después de cerrar este cuadro de diálogo, solo se muestra una referencia enmascarada.",
564
+ "magic-link.tokens.delete.body": "El enlace de inicio de sesión de {email} deja de funcionar de inmediato. Esta acción no se puede deshacer.",
565
+ "magic-link.tokens.delete.title": "¿Eliminar el token?",
566
+ "magic-link.tokens.details.actions": "Acciones",
567
+ "magic-link.tokens.details.clickToCopy": "Clic para copiar",
568
+ "magic-link.tokens.details.context": "Datos de contexto",
569
+ "magic-link.tokens.details.created": "Creado",
570
+ "magic-link.tokens.details.expiresAt": "Válido hasta",
571
+ "magic-link.tokens.details.lastUsedAt": "Último uso",
572
+ "magic-link.tokens.details.magicLink": "URL del Magic Link",
573
+ "magic-link.tokens.details.never": "Nunca",
574
+ "magic-link.tokens.details.reference": "Referencia",
575
+ "magic-link.tokens.details.status": "Estado",
576
+ "magic-link.tokens.details.technicalInfo": "Información técnica",
577
+ "magic-link.tokens.details.title": "Detalles del token",
578
+ "magic-link.tokens.details.unlimited": "Ilimitado",
579
+ "magic-link.tokens.details.usedAt": "Usado",
580
+ "magic-link.tokens.empty.createFirst": "Crear primer token",
581
+ "magic-link.tokens.empty.noData.description": "Los tokens aparecen aquí cuando los usuarios solicitan un enlace de inicio de sesión o un administrador crea uno.",
582
+ "magic-link.tokens.empty.noData.title": "Todavía no hay tokens",
583
+ "magic-link.tokens.empty.noMatch.description": "Ningún token coincide con la búsqueda o el filtro de estado.",
584
+ "magic-link.tokens.empty.noMatch.title": "No hay tokens coincidentes",
585
+ "magic-link.tokens.empty.resetFilters": "Restablecer filtros",
586
+ "magic-link.tokens.error.description": "Compruebe su conexión y sus permisos y vuelva a intentarlo.",
587
+ "magic-link.tokens.error.title": "No se pudieron cargar los tokens",
588
+ "magic-link.tokens.extend.currentExpiry": "Actualmente válido hasta",
589
+ "magic-link.tokens.extend.customDays": "Número personalizado de días",
590
+ "magic-link.tokens.extend.customError": "Introduzca un número entero de días entre {min} y {max}.",
591
+ "magic-link.tokens.extend.customHint": "O introduzca de {min} a {max} días.",
592
+ "magic-link.tokens.extend.customPlaceholder": "ej. 14",
593
+ "magic-link.tokens.extend.newExpiry": "Nueva fecha de expiración",
594
+ "magic-link.tokens.extend.preset": "+{count, plural, one {# día} other {# días}}",
595
+ "magic-link.tokens.extend.selectExtension": "Seleccionar extensión",
596
+ "magic-link.tokens.extend.submit": "Extender token",
597
+ "magic-link.tokens.extend.title": "Extender token",
598
+ "magic-link.tokens.filter.all": "Todos los estados",
599
+ "magic-link.tokens.filter.status": "Filtrar por estado",
600
+ "magic-link.tokens.loading": "Cargando tokens...",
601
+ "magic-link.tokens.notifications.activateError": "No se pudo activar el token.",
602
+ "magic-link.tokens.notifications.activateSuccess": "Token activado",
603
+ "magic-link.tokens.notifications.blockError": "No se pudo bloquear el token.",
604
+ "magic-link.tokens.notifications.blockSuccess": "Token bloqueado",
605
+ "magic-link.tokens.notifications.bulkDeleted": "{count, plural, one {# token eliminado} other {# tokens eliminados}}",
606
+ "magic-link.tokens.notifications.bulkPartial": "Se eliminaron {deleted} de {total} tokens. Los demás siguen seleccionados.",
607
+ "magic-link.tokens.notifications.createError": "No se pudo crear el token.",
608
+ "magic-link.tokens.notifications.created": "Enlace de inicio de sesión enviado a {email}",
609
+ "magic-link.tokens.notifications.createdWithoutEmail": "Token creado. No se envió ningún correo electrónico.",
610
+ "magic-link.tokens.notifications.deleteError": "No se pudo eliminar el token.",
611
+ "magic-link.tokens.notifications.deleted": "Token eliminado",
612
+ "magic-link.tokens.notifications.extendError": "No se pudo ampliar el token.",
613
+ "magic-link.tokens.notifications.extended": "Token ampliado {days, plural, one {# día} other {# días}}",
614
+ "magic-link.tokens.notifications.linkCopied": "Enlace de inicio de sesión copiado",
615
+ "magic-link.tokens.notifications.loadError": "No se pudieron cargar los tokens.",
616
+ "magic-link.tokens.notifications.reactivateError": "No se pudo crear el nuevo token.",
617
+ "magic-link.tokens.notifications.reactivateSuccess": "Nuevo token creado y enviado a {email}",
618
+ "magic-link.tokens.notifications.refreshed": "Datos actualizados",
619
+ "magic-link.tokens.notifications.tokenCopied": "Token copiado",
620
+ "magic-link.tokens.page.subtitle": "Gestione tokens Magic Link, códigos OTP, sesiones JWT y bloqueos de IP",
621
+ "magic-link.tokens.page.title": "Gestión de tokens",
622
+ "magic-link.tokens.pageSize.option": "{count} por página",
623
+ "magic-link.tokens.pageTitle": "Tokens",
624
+ "magic-link.tokens.pagination.label": "Páginas de tokens",
625
+ "magic-link.tokens.pagination.more": "Más páginas",
626
+ "magic-link.tokens.pagination.next": "Página siguiente",
627
+ "magic-link.tokens.pagination.page": "Ir a la página {page}",
628
+ "magic-link.tokens.pagination.previous": "Página anterior",
629
+ "magic-link.tokens.pagination.status": "Página {page} de {count}",
630
+ "magic-link.tokens.reissue.body": "Se crea un nuevo enlace de inicio de sesión para {email} con la validez predeterminada y se envía de inmediato por correo electrónico.",
631
+ "magic-link.tokens.reissue.confirm": "Crear y enviar",
632
+ "magic-link.tokens.reissue.title": "¿Crear un nuevo token?",
633
+ "magic-link.tokens.search.label": "Buscar tokens",
634
+ "magic-link.tokens.search.placeholder": "Buscar por correo electrónico, referencia o IP...",
635
+ "magic-link.tokens.selected": "{count, plural, one {# token seleccionado} other {# tokens seleccionados}}",
636
+ "magic-link.tokens.stats.active": "Activo",
637
+ "magic-link.tokens.stats.blocked": "Bloqueados",
638
+ "magic-link.tokens.stats.expired": "Expirado",
639
+ "magic-link.tokens.stats.label": "Estadísticas de tokens",
640
+ "magic-link.tokens.stats.total": "Total",
641
+ "magic-link.tokens.stats.used": "Usado",
642
+ "magic-link.tokens.status.active": "Activo",
643
+ "magic-link.tokens.status.blocked": "Bloqueado",
644
+ "magic-link.tokens.status.expired": "Expirado",
645
+ "magic-link.tokens.status.used": "Usado",
646
+ "magic-link.tokens.table.actions": "Acciones",
647
+ "magic-link.tokens.table.created": "Creado",
648
+ "magic-link.tokens.table.email": "Correo",
649
+ "magic-link.tokens.table.expiredOn": "{date} (caducado)",
650
+ "magic-link.tokens.table.expiresAt": "Válido hasta",
651
+ "magic-link.tokens.table.ip": "IP: {ip}",
652
+ "magic-link.tokens.table.reference": "Referencia",
653
+ "magic-link.tokens.table.select": "Seleccionar {email}",
654
+ "magic-link.tokens.table.selectAll": "Seleccionar todos los tokens de esta página",
655
+ "magic-link.tokens.table.sortByColumn": "Ordenar por {column}",
656
+ "magic-link.tokens.table.status": "Estado",
657
+ "magic-link.tokens.table.usedOn": "Usado el {date}",
658
+ "magic-link.tokens.tabs.ipBans": "Bloqueos de IP",
659
+ "magic-link.tokens.tabs.ipBansShort": "IP",
660
+ "magic-link.tokens.tabs.jwtSessions": "Sesiones JWT",
661
+ "magic-link.tokens.tabs.jwtSessionsShort": "JWT",
662
+ "magic-link.tokens.tabs.label": "Vistas de tokens",
663
+ "magic-link.tokens.tabs.magicLinks": "Tokens Magic Link",
664
+ "magic-link.tokens.tabs.magicLinksShort": "Enlaces",
665
+ "magic-link.tokens.tabs.otpCodes": "Códigos OTP",
666
+ "magic-link.tokens.tabs.otpCodesShort": "OTP",
667
+ "magic-link.tokens.title": "Tokens Magic Link",
668
+ "magic-link.settings.save.securityForbidden": "Cambiar destinos de enlaces, plantillas, remitente o reglas de cuenta, MFA, códigos o límites de solicitudes requiere el permiso «Configuración: Seguridad».",
669
+ "magic-link.settings.save.linkOriginNotAllowed": "Las URL de los enlaces de inicio de sesión deben usar un origen permitido en la configuración del servidor.",
670
+ "magic-link.settings.validation.mfaNoEnrolled": "Ningún usuario ha configurado todavía una aplicación de autenticación, por lo que «Todos los usuarios» no se puede guardar.",
671
+ "magic-link.settings.save.mfaNoEnrolled": "Ningún usuario ha configurado todavía una aplicación de autenticación. Elija primero «Usuarios que configuraron una aplicación» para que puedan configurarla y después exíjala a todos."
672
+ };
673
+ exports.default = esTranslations;