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
54 lines
1.9 KiB
PHP
54 lines
1.9 KiB
PHP
<?php
|
|
|
|
return [
|
|
'title' => 'Suscripción',
|
|
'description' => 'Administra tu suscripción y método de pago',
|
|
|
|
'subscribe' => [
|
|
'page_title' => 'Comienza tu prueba gratuita',
|
|
'title' => 'Comienza tu prueba gratuita',
|
|
'description' => ':days días gratis. Sin tarjeta de crédito para empezar.',
|
|
'start_trial' => 'Comenzar prueba de :days días',
|
|
'cancel_anytime' => 'Cancela en cualquier momento. Sin preguntas.',
|
|
'switch_workspace' => 'Cambiar workspace',
|
|
'features' => [
|
|
'calendar' => 'Calendario visual con arrastrar y soltar',
|
|
'scheduling' => 'Programación ilimitada de posts',
|
|
'media' => 'Imágenes, carruseles e historias',
|
|
'video' => 'Publicación de videos en todas las plataformas',
|
|
'team' => 'Colaboración en equipo y workspaces',
|
|
'hashtags' => 'Grupos de hashtags y etiquetas',
|
|
],
|
|
],
|
|
|
|
'trial' => [
|
|
'title' => 'Periodo de prueba activo',
|
|
'description' => 'Tu prueba termina el :date. Después, tu suscripción se cobrará automáticamente.',
|
|
],
|
|
|
|
'subscription' => [
|
|
'title' => 'Tu suscripción',
|
|
'workspaces' => 'Workspaces',
|
|
'quantity' => 'Cantidad de suscripción',
|
|
'expires' => 'Expira :date',
|
|
'canceled_on' => 'Tu suscripción se cancelará el :date',
|
|
'manage' => 'Administrar en Stripe',
|
|
],
|
|
|
|
'invoices' => [
|
|
'title' => 'Facturas',
|
|
'description' => 'Historial de pagos',
|
|
'empty' => 'No se encontraron facturas',
|
|
'paid' => 'Pagado',
|
|
],
|
|
|
|
'status' => [
|
|
'active' => 'Activa',
|
|
'canceled' => 'Cancelada',
|
|
'incomplete' => 'Incompleta',
|
|
'incomplete_expired' => 'Expirada',
|
|
'past_due' => 'Vencida',
|
|
'trialing' => 'Prueba',
|
|
'unpaid' => 'Sin pagar',
|
|
],
|
|
];
|