@frank-auth/react
Version:
Flexible and customizable React UI components for Frank Authentication
806 lines (769 loc) • 34.4 kB
text/typescript
import type {LocaleMessages} from './types';
export const es: LocaleMessages = {
common: {
actions: {
save: 'Guardar',
cancel: 'Cancelar',
delete: 'Eliminar',
edit: 'Editar',
update: 'Actualizar',
create: 'Crear',
submit: 'Enviar',
reset: 'Restablecer',
clear: 'Limpiar',
search: 'Buscar',
filter: 'Filtrar',
sort: 'Ordenar',
refresh: 'Refrescar',
reload: 'Recargar',
back: 'Atrás',
next: 'Siguiente',
previous: 'Anterior',
continue: 'Continuar',
finish: 'Finalizar',
close: 'Cerrar',
open: 'Abrir',
show: 'Mostrar',
hide: 'Ocultar',
copy: 'Copiar',
paste: 'Pegar',
cut: 'Cortar',
select: 'Seleccionar',
selectAll: 'Seleccionar todo',
deselect: 'Deseleccionar',
confirm: 'Confirmar',
deny: 'Denegar',
approve: 'Aprobar',
reject: 'Rechazar',
retry: 'Reintentar',
undo: 'Deshacer',
redo: 'Rehacer',
},
status: {
loading: 'Cargando',
success: 'Éxito',
error: 'Error',
warning: 'Advertencia',
info: 'Información',
pending: 'Pendiente',
completed: 'Completado',
failed: 'Fallido',
cancelled: 'Cancelado',
active: 'Activo',
inactive: 'Inactivo',
enabled: 'Habilitado',
disabled: 'Deshabilitado',
online: 'En línea',
offline: 'Sin conexión',
connected: 'Conectado',
disconnected: 'Desconectado',
},
timeAgo: {
justNow: 'justo ahora',
minutesAgo: 'hace {count} minutos',
hoursAgo: 'hace {count} horas',
daysAgo: 'hace {count} días',
weeksAgo: 'hace {count} semanas',
monthsAgo: 'hace {count} meses',
yearsAgo: 'hace {count} años',
},
navigation: {
home: 'Inicio',
dashboard: 'Panel',
profile: 'Perfil',
settings: 'Configuración',
help: 'Ayuda',
support: 'Soporte',
documentation: 'Documentación',
feedback: 'Comentarios',
about: 'Acerca de',
privacy: 'Privacidad',
terms: 'Términos',
contact: 'Contacto',
},
general: {
yes: 'Sí',
no: 'No',
ok: 'OK',
maybe: 'Tal vez',
none: 'Ninguno',
all: 'Todo',
other: 'Otro',
unknown: 'Desconocido',
optional: 'Opcional',
required: 'Requerido',
recommended: 'Recomendado',
advanced: 'Avanzado',
basic: 'Básico',
custom: 'Personalizado',
default: 'Por defecto',
example: 'Ejemplo',
placeholder: 'Marcador',
noData: 'No hay datos disponibles',
noResults: 'No se encontraron resultados',
empty: 'Vacío',
total: 'Total',
subtotal: 'Subtotal',
count: 'Cantidad',
limit: 'Límite',
unlimited: 'Ilimitado',
},
},
auth: {
signIn: {
title: 'Iniciar Sesión',
subtitle: '¡Bienvenido de nuevo! Inicia sesión en tu cuenta.',
emailLabel: 'Email',
emailPlaceholder: 'Ingresa tu email',
usernameLabel: 'Usuario',
usernamePlaceholder: 'Ingresa tu usuario',
passwordLabel: 'Contraseña',
passwordPlaceholder: 'Ingresa tu contraseña',
rememberMe: 'Recordarme',
forgotPassword: '¿Olvidaste tu contraseña?',
signInButton: 'Iniciar Sesión',
signInWithProvider: 'Iniciar sesión con {provider}',
orDivider: 'o',
noAccount: '¿No tienes una cuenta?',
createAccount: 'Crear cuenta',
success: 'Sesión iniciada exitosamente',
welcomeBack: '¡Bienvenido de nuevo!',
},
signUp: {
title: 'Crear Cuenta',
subtitle: 'Comienza creando tu cuenta.',
firstNameLabel: 'Nombre',
firstNamePlaceholder: 'Ingresa tu nombre',
lastNameLabel: 'Apellido',
lastNamePlaceholder: 'Ingresa tu apellido',
emailLabel: 'Email',
emailPlaceholder: 'Ingresa tu email',
usernameLabel: 'Usuario',
usernamePlaceholder: 'Elige un usuario',
passwordLabel: 'Contraseña',
passwordPlaceholder: 'Crea una contraseña',
confirmPasswordLabel: 'Confirmar Contraseña',
confirmPasswordPlaceholder: 'Confirma tu contraseña',
phoneLabel: 'Teléfono',
phonePlaceholder: 'Ingresa tu teléfono',
signUpButton: 'Crear Cuenta',
signUpWithProvider: 'Registrarse con {provider}',
orDivider: 'o',
hasAccount: '¿Ya tienes una cuenta?',
signInLink: 'Iniciar sesión',
termsAcceptance: 'Al crear una cuenta, aceptas nuestros',
termsOfService: 'Términos de Servicio',
privacyPolicy: 'Política de Privacidad',
success: 'Cuenta creada exitosamente',
welcomeMessage: '¡Bienvenido a Frank Auth!',
},
passwordReset: {
title: 'Restablecer Contraseña',
subtitle: 'Ingresa tu email para recibir instrucciones de restablecimiento.',
emailLabel: 'Email',
emailPlaceholder: 'Ingresa tu email',
sendResetButton: 'Enviar Enlace',
backToSignIn: 'Volver al inicio de sesión',
success: 'Enlace de restablecimiento enviado',
checkEmail: 'Revisa tu email para las instrucciones',
resetPassword: 'Restablecer Contraseña',
newPasswordLabel: 'Nueva Contraseña',
newPasswordPlaceholder: 'Ingresa nueva contraseña',
confirmNewPasswordLabel: 'Confirmar Nueva Contraseña',
confirmNewPasswordPlaceholder: 'Confirma nueva contraseña',
resetButton: 'Restablecer Contraseña',
passwordUpdated: 'Contraseña actualizada exitosamente',
},
mfa: {
title: 'Autenticación de Dos Factores',
subtitle: 'Ingresa el código de verificación de tu aplicación autenticadora.',
codeLabel: 'Código de Verificación',
codePlaceholder: 'Ingresa código de 6 dígitos',
verifyButton: 'Verificar',
resendCode: 'Reenviar código',
useBackupCode: 'Usar código de respaldo',
backupCodeLabel: 'Código de Respaldo',
backupCodePlaceholder: 'Ingresa código de respaldo',
useAuthenticator: 'Usar aplicación autenticadora',
success: 'Verificado exitosamente',
setup: {
title: 'Configurar Autenticación de Dos Factores',
subtitle: 'Agrega una capa extra de seguridad a tu cuenta.',
step1: 'Paso 1: Descarga una aplicación autenticadora',
step2: 'Paso 2: Escanea el código QR',
step3: 'Paso 3: Ingresa el código de verificación',
downloadApp: 'Descarga una aplicación compatible como Google Authenticator o Authy',
scanQR: 'Escanea este código QR con tu aplicación autenticadora',
enterCode: 'Ingresa el código de 6 dígitos de tu aplicación',
manualEntry: 'O ingresa esta clave manualmente:',
secretKey: 'Clave Secreta',
verificationCode: 'Código de Verificación',
enableButton: 'Habilitar Autenticación de Dos Factores',
backupCodes: 'Códigos de Respaldo',
saveBackupCodes: 'Guarda estos códigos de respaldo en un lugar seguro',
backupCodesWarning: 'Estos códigos pueden usarse si pierdes acceso a tu aplicación autenticadora',
},
},
passkeys: {
title: 'Llaves de Paso',
subtitle: 'Usa tu dispositivo para iniciar sesión de forma segura sin contraseñas.',
setup: 'Configurar llave de paso',
use: 'Usar llave de paso',
notSupported: 'Las llaves de paso no son compatibles con este dispositivo',
setupButton: 'Configurar Llave de Paso',
useButton: 'Usar Llave de Paso',
success: 'Operación de llave de paso exitosa',
registered: 'Llave de paso registrada exitosamente',
manage: {
title: 'Administrar Llaves de Paso',
noPasskeys: 'No hay llaves de paso configuradas',
addPasskey: 'Agregar Llave de Paso',
deviceName: 'Nombre del Dispositivo',
createdAt: 'Creado',
lastUsed: 'Último Uso',
remove: 'Eliminar',
removeConfirm: '¿Estás seguro de que quieres eliminar esta llave de paso?',
},
},
oauth: {
signInWith: 'Iniciar sesión con {provider}',
signUpWith: 'Registrarse con {provider}',
continueWith: 'Continuar con {provider}',
connecting: 'Conectando...',
success: 'Conectado exitosamente',
error: 'Conexión fallida',
cancelled: 'Conexión cancelada',
providers: {
google: 'Google',
github: 'GitHub',
microsoft: 'Microsoft',
facebook: 'Facebook',
apple: 'Apple',
twitter: 'Twitter',
linkedin: 'LinkedIn',
discord: 'Discord',
slack: 'Slack',
spotify: 'Spotify',
},
},
verification: {
email: {
title: 'Verificar Email',
subtitle: 'Revisa tu email y haz clic en el enlace de verificación.',
checkEmail: 'Enviamos un enlace de verificación a tu email',
resendEmail: 'Reenviar email',
changeEmail: 'Cambiar email',
success: 'Email verificado exitosamente',
verified: 'Tu email ha sido verificado',
},
phone: {
title: 'Verificar Teléfono',
subtitle: 'Ingresa el código de verificación enviado a tu teléfono.',
codeLabel: 'Código de Verificación',
codePlaceholder: 'Ingresa código de 6 dígitos',
resendCode: 'Reenviar código',
verifyButton: 'Verificar Teléfono',
success: 'Teléfono verificado exitosamente',
verified: 'Tu teléfono ha sido verificado',
},
},
magicLink: {
title: 'Enlace Mágico',
subtitle: 'Inicia sesión con un enlace seguro enviado a tu email.',
emailLabel: 'Email',
emailPlaceholder: 'Ingresa tu email',
sendLinkButton: 'Enviar Enlace Mágico',
checkEmail: 'Revisa tu email para el enlace mágico',
success: 'Enlace mágico enviado exitosamente',
expired: 'El enlace mágico ha expirado',
invalid: 'El enlace mágico es inválido',
},
logout: {
title: 'Cerrar Sesión',
subtitle: '¿Estás seguro de que quieres cerrar sesión?',
button: 'Cerrar Sesión',
confirm: 'Cerrar Sesión',
success: 'Sesión cerrada exitosamente',
goodbye: '¡Hasta luego!',
},
session: {
expired: 'Tu sesión ha expirado',
invalid: 'Sesión inválida',
refresh: 'Refrescar sesión',
refreshing: 'Refrescando sesión...',
multipleWarning: 'Tienes sesión iniciada en múltiples dispositivos',
deviceLimit: 'Límite de dispositivos alcanzado',
},
},
user: {
profile: {
title: 'Perfil',
personalInfo: 'Información Personal',
accountInfo: 'Información de Cuenta',
security: 'Seguridad',
preferences: 'Preferencias',
firstName: 'Nombre',
lastName: 'Apellido',
email: 'Email',
username: 'Usuario',
phone: 'Teléfono',
bio: 'Biografía',
website: 'Sitio Web',
location: 'Ubicación',
timezone: 'Zona Horaria',
language: 'Idioma',
avatar: 'Foto de Perfil',
changeAvatar: 'Cambiar Foto',
removeAvatar: 'Eliminar Foto',
updateProfile: 'Actualizar Perfil',
profileUpdated: 'Perfil actualizado exitosamente',
},
security: {
title: 'Seguridad',
changePassword: 'Cambiar Contraseña',
currentPassword: 'Contraseña Actual',
newPassword: 'Nueva Contraseña',
confirmPassword: 'Confirmar Contraseña',
passwordStrength: 'Fortaleza de Contraseña',
passwordRequirements: 'Requisitos de Contraseña',
twoFactor: 'Autenticación de Dos Factores',
enableTwoFactor: 'Habilitar Autenticación de Dos Factores',
disableTwoFactor: 'Deshabilitar Autenticación de Dos Factores',
twoFactorEnabled: 'Autenticación de dos factores habilitada',
twoFactorDisabled: 'Autenticación de dos factores deshabilitada',
backupCodes: 'Códigos de Respaldo',
viewBackupCodes: 'Ver Códigos de Respaldo',
regenerateBackupCodes: 'Regenerar Códigos de Respaldo',
devices: 'Dispositivos',
trustedDevices: 'Dispositivos Confiables',
removeDevice: 'Eliminar Dispositivo',
deviceRemoved: 'Dispositivo eliminado exitosamente',
sessions: 'Sesiones',
activeSessions: 'Sesiones Activas',
terminateSession: 'Terminar Sesión',
terminateAllSessions: 'Terminar Todas las Sesiones',
sessionTerminated: 'Sesión terminada',
connectedAccounts: 'Cuentas Conectadas',
disconnect: 'Desconectar',
accountDisconnected: 'Cuenta desconectada',
deleteAccount: 'Eliminar Cuenta',
deleteAccountWarning: 'Esta acción no se puede deshacer',
deleteAccountConfirm: 'Eliminar Mi Cuenta',
accountDeleted: 'Cuenta eliminada exitosamente',
},
preferences: {
title: 'Preferencias',
theme: 'Tema',
lightMode: 'Modo Claro',
darkMode: 'Modo Oscuro',
systemMode: 'Por Defecto del Sistema',
notifications: 'Notificaciones',
emailNotifications: 'Notificaciones por Email',
pushNotifications: 'Notificaciones Push',
smsNotifications: 'Notificaciones SMS',
marketingEmails: 'Emails de Marketing',
securityAlerts: 'Alertas de Seguridad',
accountActivity: 'Actividad de Cuenta',
productUpdates: 'Actualizaciones de Producto',
preferences: 'Preferencias',
preferencesUpdated: 'Preferencias actualizadas exitosamente',
},
},
organization: {
general: {
title: 'Organización',
name: 'Nombre de Organización',
description: 'Descripción',
website: 'Sitio Web',
logo: 'Logo',
settings: 'Configuración',
members: 'Miembros',
billing: 'Facturación',
usage: 'Uso',
security: 'Seguridad',
integrations: 'Integraciones',
audit: 'Registro de Auditoría',
support: 'Soporte',
},
profile: {
title: 'Perfil de Organización',
updateOrganization: 'Actualizar Organización',
organizationUpdated: 'Organización actualizada exitosamente',
logo: 'Logo',
changeLogo: 'Cambiar Logo',
removeLogo: 'Eliminar Logo',
brandColors: 'Colores de Marca',
primaryColor: 'Color Primario',
secondaryColor: 'Color Secundario',
customBranding: 'Marca Personalizada',
domain: 'Dominio',
customDomain: 'Dominio Personalizado',
verifyDomain: 'Verificar Dominio',
domainVerified: 'Dominio verificado',
domainPending: 'Verificación de dominio pendiente',
contact: 'Información de Contacto',
contactEmail: 'Email de Contacto',
supportUrl: 'URL de Soporte',
address: 'Dirección',
country: 'País',
timezone: 'Zona Horaria',
},
members: {
title: 'Miembros',
totalMembers: 'Total de Miembros',
activeMembers: 'Miembros Activos',
pendingInvitations: 'Invitaciones Pendientes',
roles: 'Roles',
permissions: 'Permisos',
inviteMember: 'Invitar Miembro',
inviteMembers: 'Invitar Miembros',
emailAddress: 'Dirección de Email',
role: 'Rol',
customMessage: 'Mensaje Personalizado',
sendInvitation: 'Enviar Invitación',
invitationSent: 'Invitación enviada exitosamente',
resendInvitation: 'Reenviar Invitación',
cancelInvitation: 'Cancelar Invitación',
invitationCancelled: 'Invitación cancelada',
memberName: 'Nombre',
memberEmail: 'Email',
memberRole: 'Rol',
memberStatus: 'Estado',
memberJoined: 'Se Unió',
lastActive: 'Última Actividad',
changeRole: 'Cambiar Rol',
removeMember: 'Eliminar Miembro',
removeMemberConfirm: '¿Estás seguro de que quieres eliminar este miembro?',
memberRemoved: 'Miembro eliminado exitosamente',
transferOwnership: 'Transferir Propiedad',
transferOwnershipConfirm: '¿Estás seguro de que quieres transferir la propiedad?',
ownershipTransferred: 'Propiedad transferida exitosamente',
bulkActions: 'Acciones en Lote',
selectAll: 'Seleccionar Todo',
selectedMembers: '{count} miembros seleccionados',
bulkRemove: 'Eliminar Seleccionados',
bulkChangeRole: 'Cambiar Rol',
export: 'Exportar',
exportMembers: 'Exportar Miembros',
},
roles: {
title: 'Roles',
createRole: 'Crear Rol',
editRole: 'Editar Rol',
deleteRole: 'Eliminar Rol',
roleName: 'Nombre del Rol',
roleDescription: 'Descripción',
permissions: 'Permisos',
systemPermissions: 'Permisos del Sistema',
organizationPermissions: 'Permisos de Organización',
memberPermissions: 'Permisos de Miembro',
billingPermissions: 'Permisos de Facturación',
defaultRole: 'Rol Por Defecto',
customRole: 'Rol Personalizado',
roleCreated: 'Rol creado exitosamente',
roleUpdated: 'Rol actualizado exitosamente',
roleDeleted: 'Rol eliminado exitosamente',
assignRole: 'Asignar Rol',
unassignRole: 'Desasignar Rol',
roleAssigned: 'Rol asignado exitosamente',
roleUnassigned: 'Rol desasignado exitosamente',
owner: 'Propietario',
admin: 'Administrador',
member: 'Miembro',
guest: 'Invitado',
viewer: 'Visualizador',
editor: 'Editor',
manager: 'Gerente',
},
settings: {
title: 'Configuración',
general: 'General',
authentication: 'Autenticación',
security: 'Seguridad',
integrations: 'Integraciones',
advanced: 'Avanzado',
allowPublicSignup: 'Permitir Registro Público',
requireEmailVerification: 'Requerir Verificación de Email',
allowUsernameSignup: 'Permitir Registro con Usuario',
passwordPolicy: 'Política de Contraseñas',
minPasswordLength: 'Longitud Mínima de Contraseña',
requireUppercase: 'Requerir Mayúsculas',
requireLowercase: 'Requerir Minúsculas',
requireNumbers: 'Requerir Números',
requireSymbols: 'Requerir Símbolos',
sessionDuration: 'Duración de Sesión',
mfaRequired: 'Requerir MFA',
allowedDomains: 'Dominios Permitidos',
blockedDomains: 'Dominios Bloqueados',
ipWhitelist: 'Lista Blanca de IP',
ssoEnabled: 'SSO Habilitado',
ssoProvider: 'Proveedor SSO',
auditLogRetention: 'Retención de Registro de Auditoría',
dataExport: 'Exportación de Datos',
deleteOrganization: 'Eliminar Organización',
deleteOrganizationWarning: 'Esto eliminará permanentemente la organización y todos sus datos',
deleteOrganizationConfirm: 'Eliminar Organización',
organizationDeleted: 'Organización eliminada exitosamente',
settingsUpdated: 'Configuración actualizada exitosamente',
},
billing: {
title: 'Facturación',
plan: 'Plan',
currentPlan: 'Plan Actual',
usage: 'Uso',
billing: 'Facturación',
invoices: 'Facturas',
paymentMethod: 'Método de Pago',
subscription: 'Suscripción',
seats: 'Asientos',
usedSeats: 'Asientos Usados',
availableSeats: 'Asientos Disponibles',
addSeats: 'Agregar Asientos',
removeSeats: 'Eliminar Asientos',
monthlyBilling: 'Facturación Mensual',
yearlyBilling: 'Facturación Anual',
upgrade: 'Actualizar',
downgrade: 'Degradar',
cancel: 'Cancelar',
pauseSubscription: 'Pausar Suscripción',
resumeSubscription: 'Reanudar Suscripción',
billingHistory: 'Historial de Facturación',
downloadInvoice: 'Descargar',
updatePaymentMethod: 'Actualizar Método de Pago',
paymentMethodUpdated: 'Método de pago actualizado',
subscriptionUpdated: 'Suscripción actualizada',
subscriptionCancelled: 'Suscripción cancelada',
subscriptionPaused: 'Suscripción pausada',
subscriptionResumed: 'Suscripción reanudada',
trialExpired: 'Prueba expirada',
trialDaysLeft: '{days} días restantes en la prueba',
upgradeNow: 'Actualizar Ahora',
},
invitations: {
title: 'Invitaciones',
youreInvited: '¡Estás invitado!',
invitedBy: 'Invitado por',
invitedTo: 'Invitado a unirse',
roleOffered: 'Rol ofrecido',
acceptInvitation: 'Aceptar Invitación',
declineInvitation: 'Declinar',
invitationAccepted: 'Invitación aceptada',
invitationDeclined: 'Invitación declinada',
invitationExpired: 'Invitación expirada',
invitationInvalid: 'Invitación inválida',
alreadyMember: 'Ya es miembro',
pendingInvitations: 'Invitaciones Pendientes',
sentInvitations: 'Enviadas',
receivedInvitations: 'Recibidas',
invitationDetails: 'Detalles de Invitación',
expiresAt: 'Expira',
customMessage: 'Mensaje',
},
},
validation: {
required: '{field} es requerido',
email: 'Por favor ingresa un email válido',
phone: 'Por favor ingresa un teléfono válido',
url: 'Por favor ingresa una URL válida',
minLength: '{field} debe tener al menos {min} caracteres',
maxLength: '{field} debe tener máximo {max} caracteres',
min: '{field} debe ser al menos {min}',
max: '{field} debe ser máximo {max}',
pattern: 'El formato de {field} es inválido',
passwordMismatch: 'Las contraseñas no coinciden',
invalidFormat: 'Formato inválido',
invalid: '{field} es inválido',
tooShort: 'Muy corto',
tooLong: 'Muy largo',
tooSmall: 'Muy pequeño',
tooLarge: 'Muy grande',
notFound: 'No encontrado',
alreadyExists: 'Ya existe',
expired: 'Expirado',
weak: 'Débil',
strong: 'Fuerte',
medium: 'Medio',
passwordStrength: {
veryWeak: 'Muy débil',
weak: 'Débil',
fair: 'Aceptable',
good: 'Buena',
strong: 'Fuerte',
},
passwordRequirements: {
minLength: 'Al menos {min} caracteres',
uppercase: 'Al menos una letra mayúscula',
lowercase: 'Al menos una letra minúscula',
number: 'Al menos un número',
symbol: 'Al menos un carácter especial',
},
},
errors: {
generic: {
unknown: 'Ocurrió un error desconocido',
network: 'Error de red',
timeout: 'Tiempo de espera agotado',
serverError: 'Error del servidor',
notFound: 'Recurso no encontrado',
unauthorized: 'Acceso no autorizado',
forbidden: 'Acceso prohibido',
badRequest: 'Solicitud incorrecta',
conflict: 'Conflicto',
tooManyRequests: 'Demasiadas solicitudes',
maintenance: 'Sistema en mantenimiento',
offline: 'Sin conexión',
},
auth: {
invalidCredentials: 'Email o contraseña inválidos',
accountLocked: 'Cuenta bloqueada',
accountDisabled: 'Cuenta deshabilitada',
accountNotVerified: 'Cuenta no verificada',
sessionExpired: 'Sesión expirada',
invalidToken: 'Token inválido',
mfaRequired: 'Autenticación de dos factores requerida',
invalidMfaCode: 'Código de verificación inválido',
passkeyNotSupported: 'Llaves de paso no compatibles',
passkeyFailed: 'Autenticación con llave de paso falló',
oauthFailed: 'Autenticación OAuth falló',
oauthCancelled: 'Autenticación OAuth cancelada',
magicLinkExpired: 'Enlace mágico expirado',
magicLinkInvalid: 'Enlace mágico inválido',
passwordTooWeak: 'Contraseña muy débil',
passwordReused: 'Contraseña usada recientemente',
emailNotVerified: 'Email no verificado',
phoneNotVerified: 'Teléfono no verificado',
invitationExpired: 'Invitación expirada',
invitationInvalid: 'Invitación inválida',
invitationAlreadyAccepted: 'Invitación ya aceptada',
},
organization: {
notFound: 'Organización no encontrada',
accessDenied: 'Acceso denegado',
memberLimitReached: 'Límite de miembros alcanzado',
ownerRequired: 'Rol de propietario requerido',
cannotRemoveOwner: 'No se puede eliminar al propietario',
cannotRemoveSelf: 'No puedes eliminarte a ti mismo',
alreadyMember: 'Ya es miembro',
notMember: 'No es miembro',
invalidRole: 'Rol inválido',
roleNotFound: 'Rol no encontrado',
domainTaken: 'Dominio ya tomado',
domainInvalid: 'Dominio inválido',
seatLimitReached: 'Límite de asientos alcanzado',
subscriptionRequired: 'Suscripción requerida',
paymentFailed: 'Pago falló',
},
validation: {
invalidEmail: 'Email inválido',
invalidPhone: 'Teléfono inválido',
invalidUrl: 'URL inválida',
fieldRequired: 'Este campo es requerido',
fieldTooShort: 'Este campo es muy corto',
fieldTooLong: 'Este campo es muy largo',
fieldInvalid: 'Este campo es inválido',
passwordsDoNotMatch: 'Las contraseñas no coinciden',
emailTaken: 'Email ya está en uso',
usernameTaken: 'Usuario ya está en uso',
phoneNumberTaken: 'Teléfono ya está en uso',
domainTaken: 'Dominio ya está en uso',
},
},
success: {
generic: {
saved: 'Guardado exitosamente',
updated: 'Actualizado exitosamente',
created: 'Creado exitosamente',
deleted: 'Eliminado exitosamente',
sent: 'Enviado exitosamente',
completed: 'Completado exitosamente',
copied: 'Copiado al portapapeles',
uploaded: 'Subido exitosamente',
downloaded: 'Descargado exitosamente',
imported: 'Importado exitosamente',
exported: 'Exportado exitosamente',
},
auth: {
signedIn: 'Sesión iniciada exitosamente',
signedUp: 'Cuenta creada exitosamente',
signedOut: 'Sesión cerrada exitosamente',
passwordChanged: 'Contraseña cambiada exitosamente',
passwordReset: 'Contraseña restablecida exitosamente',
emailVerified: 'Email verificado exitosamente',
phoneVerified: 'Teléfono verificado exitosamente',
mfaEnabled: 'Autenticación de dos factores habilitada',
mfaDisabled: 'Autenticación de dos factores deshabilitada',
passkeyAdded: 'Llave de paso agregada exitosamente',
passkeyRemoved: 'Llave de paso eliminada exitosamente',
accountConnected: 'Cuenta conectada exitosamente',
accountDisconnected: 'Cuenta desconectada exitosamente',
},
organization: {
created: 'Organización creada exitosamente',
updated: 'Organización actualizada exitosamente',
deleted: 'Organización eliminada exitosamente',
memberInvited: 'Miembro invitado exitosamente',
memberRemoved: 'Miembro eliminado exitosamente',
roleChanged: 'Rol cambiado exitosamente',
ownershipTransferred: 'Propiedad transferida exitosamente',
settingsUpdated: 'Configuración actualizada exitosamente',
domainVerified: 'Dominio verificado exitosamente',
subscriptionUpdated: 'Suscripción actualizada exitosamente',
paymentMethodUpdated: 'Método de pago actualizado exitosamente',
},
},
components: {
loading: {
generic: 'Cargando...',
signIn: 'Iniciando sesión...',
signUp: 'Creando cuenta...',
profile: 'Cargando perfil...',
organization: 'Cargando organización...',
members: 'Cargando miembros...',
settings: 'Cargando configuración...',
verification: 'Verificando...',
mfa: 'Verificando código...',
passkey: 'Autenticando...',
oauth: 'Conectando...',
},
empty: {
generic: 'No hay datos disponibles',
members: 'No se encontraron miembros',
invitations: 'No hay invitaciones',
sessions: 'No hay sesiones activas',
devices: 'No hay dispositivos confiables',
notifications: 'No hay notificaciones',
history: 'No hay historial',
logs: 'No hay registros',
search: 'No hay resultados de búsqueda',
filter: 'No hay resultados que coincidan con tu filtro',
},
confirm: {
delete: '¿Estás seguro de que quieres eliminar esto?',
remove: '¿Estás seguro de que quieres quitar esto?',
cancel: '¿Estás seguro de que quieres cancelar?',
logout: '¿Estás seguro de que quieres cerrar sesión?',
transfer: '¿Estás seguro de que quieres transferir la propiedad?',
disable: '¿Estás seguro de que quieres deshabilitar esto?',
enable: '¿Estás seguro de que quieres habilitar esto?',
reset: '¿Estás seguro de que quieres restablecer esto?',
clear: '¿Estás seguro de que quieres limpiar esto?',
proceed: '¿Quieres proceder?',
areYouSure: '¿Estás seguro?',
cannotUndo: 'Esta acción no se puede deshacer.',
permanentAction: 'Esta es una acción permanente.',
},
help: {
password: 'Elige una contraseña fuerte con al menos 8 caracteres, incluyendo mayúsculas, minúsculas, números y símbolos.',
mfa: 'La autenticación de dos factores agrega una capa extra de seguridad a tu cuenta.',
passkey: 'Las llaves de paso usan la biometría de tu dispositivo o PIN para iniciar sesión de forma segura sin contraseñas.',
backup: 'Los códigos de respaldo pueden usarse si pierdes acceso a tu aplicación autenticadora.',
domain: 'Los dominios personalizados permiten a tus usuarios acceder a tu aplicación desde tu propio dominio.',
webhook: 'Los webhooks notifican a tu aplicación cuando ocurren eventos en tu organización.',
apiKey: 'Las claves de API permiten que tus aplicaciones se autentiquen con la API de Frank Auth.',
role: 'Los roles definen qué acciones pueden realizar los miembros en tu organización.',
permission: 'Los permisos otorgan acceso específico a características y recursos.',
billing: 'Administra tu suscripción, método de pago e historial de facturación.',
usage: 'Monitorea el uso y límites de tu organización.',
},
},
};