trypost/lang/es/settings.php
Paulo Castellano f3f72afecd refactor: auth split layout, subscribe redesign, onboarding, i18n, cookie locale
Auth pages:
- Create AuthSplitLayout with animated feature slides (6 slides, 3 languages)
- All auth pages use split layout (form left, visual right)
- Add show/hide password toggle with tooltip on Register
- Legal footer only shown on Register via showLegal prop

Subscribe page:
- Redesign to match auth card pattern (centered, clean)
- Platform icons, feature checklist, dynamic trial days (trialDays - 1)
- Add "Switch workspace" link
- Full i18n (en, es, pt-BR)

Onboarding:
- Rename URLs: step1 -> role, step2 -> connect
- Add enforceStep() to prevent skipping/going back steps
- Redirect /onboarding to /onboarding/role
- Redesign Step2 with AuthSplitLayout and compact platform list
- 21 tests covering all step enforcement scenarios

Workspaces page:
- Redesign with AuthSplitLayout (list with avatars, current badge)

Language system:
- Move locale from DB to cookie (forever, unencrypted, session.domain)
- Create SetLocale middleware (sets cookie if missing, validates against config)
- Rename lang/pt-br to lang/pt-BR
- Add dayjs es locale

Other:
- Copy utils.ts from sendkit (formatNumber, formatMoney, copyToClipboard)
- ConfirmDeleteModal with text confirmation (sendkit pattern)
- i18n for ConfirmDeleteModal internal strings (common.php)
- EmptyState component for posts index
- Exact match for "All" posts in sidebar
- Posts breadcrumbs show current status filter
- DialogFooter buttons aligned left
- API Keys page redesign with Table, DropdownMenu, EmptyState
- Extract CreateApiKeyDialog and InviteMemberDialog to components
- Remove API Keys from sidebar
- DropdownMenuItem destructive variant for Remove action
2026-03-30 11:53:42 -03:00

145 lines
5.9 KiB
PHP

<?php
return [
'title' => 'Configuración',
'description' => 'Administra tu perfil y configuración de la cuenta',
'nav' => [
'profile' => 'Perfil',
'password' => 'Contraseña',
'workspace' => 'Workspace',
'members' => 'Miembros',
'billing' => 'Facturación',
],
'profile' => [
'title' => 'Configuración del perfil',
'photo_heading' => 'Foto de perfil',
'photo_description' => 'Sube una foto de perfil',
'heading' => 'Información del perfil',
'description' => 'Actualiza tu nombre y correo electrónico',
'avatar' => 'Avatar',
'name' => 'Nombre',
'name_placeholder' => 'Nombre completo',
'email' => 'Correo electrónico',
'email_placeholder' => 'Correo electrónico',
'email_unverified' => 'Tu correo electrónico no ha sido verificado.',
'resend_verification' => 'Haz clic aquí para reenviar el correo de verificación.',
'verification_sent' => 'Se ha enviado un nuevo enlace de verificación a tu correo electrónico.',
'save' => 'Guardar',
],
'password' => [
'title' => 'Configuración de contraseña',
'heading' => 'Actualizar contraseña',
'description' => 'Asegúrate de que tu cuenta use una contraseña larga y aleatoria para mantenerte seguro',
'current_password' => 'Contraseña actual',
'current_password_placeholder' => 'Contraseña actual',
'new_password' => 'Nueva contraseña',
'new_password_placeholder' => 'Nueva contraseña',
'confirm_password' => 'Confirmar contraseña',
'confirm_password_placeholder' => 'Confirmar contraseña',
'save' => 'Guardar contraseña',
],
'delete_account' => [
'heading' => 'Eliminar cuenta',
'description' => 'Elimina tu cuenta y todos sus recursos',
'warning' => 'Advertencia',
'warning_message' => 'Procede con precaución, esta acción no se puede deshacer.',
'button' => 'Eliminar cuenta',
'modal_title' => '¿Estás seguro de que deseas eliminar tu cuenta?',
'modal_description' => 'Una vez eliminada tu cuenta, todos sus recursos y datos también se eliminarán permanentemente. Introduce tu contraseña para confirmar que deseas eliminar permanentemente tu cuenta.',
'password' => 'Contraseña',
'password_placeholder' => 'Contraseña',
'cancel' => 'Cancelar',
'confirm' => 'Eliminar cuenta',
],
'workspace' => [
'title' => 'Configuración del workspace',
'logo_heading' => 'Logo del workspace',
'logo_description' => 'Sube un logo para tu workspace',
'heading' => 'Nombre del workspace',
'description' => 'Actualiza el nombre y zona horaria del workspace',
'members_heading' => 'Miembros',
'members_description' => 'Administra miembros e invitaciones del workspace',
'name' => 'Nombre',
'name_placeholder' => 'Mi Workspace',
'timezone' => 'Zona horaria',
'save' => 'Guardar',
],
'members' => [
'title' => 'Miembros',
'heading' => 'Miembros del equipo',
'description' => 'Administra miembros e invitaciones de este workspace',
'cancel' => 'Cancelar',
'remove' => 'Eliminar',
'make_admin' => 'Hacer administrador',
'make_member' => 'Hacer miembro',
'invite' => [
'title' => 'Invitar miembro',
'description' => 'Envía una invitación por correo para agregar colaboradores',
'email' => 'Correo electrónico',
'email_placeholder' => 'colaborador@email.com',
'role' => 'Rol',
'role_placeholder' => 'Selecciona un rol',
'submit' => 'Enviar invitación',
],
'pending' => [
'title' => 'Invitaciones pendientes',
'description' => 'Invitaciones en espera de aceptación',
'empty' => 'No hay invitaciones pendientes',
],
'list' => [
'title' => 'Miembros',
'description' => 'Personas con acceso a este workspace',
'empty' => 'No hay miembros además del propietario',
],
'remove_modal' => [
'title' => 'Eliminar miembro',
'description' => '¿Estás seguro de que deseas eliminar a este miembro del workspace? Perderá acceso a todos los recursos del workspace.',
'action' => 'Eliminar miembro',
],
'cancel_invite_modal' => [
'title' => 'Cancelar invitación',
'description' => '¿Estás seguro de que deseas cancelar esta invitación?',
'action' => 'Cancelar invitación',
],
'roles' => [
'owner' => 'Propietario',
'admin' => 'Administrador',
'member' => 'Miembro',
],
'flash' => [
'invite_sent' => '¡Invitación enviada correctamente!',
'invite_deleted' => 'Invitación eliminada.',
'member_removed' => '¡Miembro eliminado correctamente!',
'role_updated' => 'Rol del miembro actualizado.',
'wrong_email' => 'Esta invitación es para otro correo electrónico.',
'already_member' => 'Ya eres miembro de este workspace.',
'invite_accepted' => '¡Bienvenido! Ahora eres miembro del workspace.',
'invite_declined' => 'Invitación rechazada.',
],
],
'flash' => [
'profile_updated' => '¡Perfil actualizado correctamente!',
'language_updated' => '¡Idioma actualizado correctamente!',
'password_updated' => '¡Contraseña actualizada correctamente!',
'workspace_updated' => '¡Configuración actualizada correctamente!',
'photo_updated' => '¡Foto actualizada correctamente!',
'photo_deleted' => '¡Foto eliminada correctamente!',
'logo_updated' => '¡Logo subido correctamente!',
'logo_deleted' => '¡Logo eliminado correctamente!',
],
];