trypost/lang/es/billing.php

77 lines
2.8 KiB
PHP
Raw Permalink Normal View History

<?php
return [
'title' => 'Facturación',
'past_due_notice' => [
'title' => 'Pago vencido',
'description' => 'Actualiza tu método de pago para mantener tu suscripción activa.',
'cta' => 'Actualizar pago',
],
'annual_banner' => [
'title' => 'Consigue 2 meses gratis',
'description' => 'Cambia a la facturación anual y paga menos al mes — el mismo plan, sin cambios.',
'cta' => 'Cambiar a anual',
],
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 14:53:42 +00:00
'subscribe' => [
'billed_monthly' => 'Facturado mensualmente',
'billed_yearly' => 'Facturado anualmente',
'prices' => [
'workspace' => ['monthly' => '$12', 'yearly_per_month' => '$10', 'yearly' => '$120'],
],
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 14:53:42 +00:00
],
'plan' => [
'title' => 'Plan',
'description' => 'Gestiona tu plan de suscripción.',
'label' => 'Plan',
'workspaces' => '{1}:count workspace|[2,*]:count workspaces',
'per_workspace' => 'por workspace',
'price' => 'Precio',
'month' => 'mes',
'trial' => 'Prueba',
'active' => 'Activo',
'past_due' => 'Vencido',
'cancelling' => 'Cancelando',
'trial_ends' => 'La prueba termina en',
],
'subscription' => [
'title' => 'Suscripción',
'description' => 'Gestiona tu método de pago, datos de facturación y suscripción.',
'payment_method' => 'Método de pago',
'no_payment_method' => 'Aún no hay método de pago registrado.',
'expires_on' => 'Vence el :month/:year',
'manage_label' => 'Suscripción',
'manage_stripe' => 'Gestionar en Stripe',
],
'invoices' => [
'title' => 'Facturas',
'description' => 'Descarga tus facturas anteriores.',
'empty' => 'No se encontraron facturas',
'paid' => 'Pagado',
],
'flash' => [
'plan_changed' => 'Ahora estás en el plan :plan.',
'switched_to_yearly' => 'Ahora tienes facturación anual.',
'cannot_manage' => 'Solo el propietario de la cuenta puede gestionar la facturación.',
'credits_exhausted' => 'Sin créditos de IA — has usado tus :limit créditos mensuales. Mejora tu plan o espera hasta el próximo mes.',
'subscription_required' => 'Se requiere una suscripción activa para usar las funciones de IA.',
],
'processing' => [
'page_title' => 'Procesando...',
'title' => 'Procesando tu suscripción',
'description' => 'Espera mientras configuramos tu cuenta. Solo tomará un momento.',
'success_title' => '¡Todo listo!',
'success_description' => 'Tu suscripción está activa. Redirigiendo a tus workspaces...',
'cancelled_title' => 'Pago cancelado',
'cancelled_description' => 'Tu pago fue cancelado. No se realizaron cargos.',
'retry' => 'Intentar de nuevo',
],
];