trypost/lang/en/workspaces.php
Paulo Castellano 0619f2a0f4 refactor: address code review for per-workspace pricing
Bug fix
- Surface the localized "network already connected" message on the
  Facebook/Instagram/InstagramFacebook/LinkedInPage/Threads/YouTube OAuth
  callbacks: catch NetworkAlreadyConnectedException before the generic catch
  so the conflict no longer falls through to a generic error + Log::error.

Scope / dead code
- Remove the orphaned BillingController::checkout() + app.billing.checkout route
  (onboarding starts checkout directly); delete the now-dead DiscordWidget and
  useFeatureAccess composable; prune orphaned i18n keys left by removing the
  plan picker / upgrade dialog / count limits (billing.subscribe.*,
  accounts.limit_reached, workspaces.limit_reached, common.discord.*).
- Drop the unused `plan` prop from the usage page and the unused `label` from
  the onboarding persona payload (labels come from i18n); remove
  Persona::options()/label().

Conventions
- declare(strict_types=1) on the two new migrations.
- Extract autofill validation into AutofillBrandRequest (FormRequest).
- Drop the unused $plan param from AccountPolicy::swapPlan.
- CreateUser: drop the stale config('cashier.trial_days', 7) fallback (now 8).
- Rename LimitEnforcementTest to InvitePermissionTest; use Pest mock() helper in
  WorkspaceQuantitySyncTest; move shared test helpers into Pest.php.
- Memoize BillingCycle window() + subscription lookup.
2026-06-21 21:28:47 -03:00

50 lines
2.2 KiB
PHP

<?php
declare(strict_types=1);
return [
'title' => 'Workspaces',
'select_title' => 'Your workspaces',
'select_description' => 'Select a workspace to continue',
'current' => 'Current',
'connections' => ':count connections',
'posts' => ':count posts',
'create' => [
'page_title' => 'Create your workspace',
'title' => 'Set up your workspace',
'description' => 'Tell us a bit about you or your project. We\'ll use it to tailor AI-generated posts to your voice.',
'website' => 'Website',
'website_placeholder' => 'https://yourbrand.com',
'autofill' => 'Autofill from website',
'autofill_missing_url' => 'Enter a URL first.',
'autofill_success' => 'Brand info loaded.',
'autofill_error' => 'Could not autofill. You can fill the fields manually.',
'autofill_errors' => [
'unreachable' => 'We could not reach that website (:reason).',
'http_status' => 'The website returned an unexpected status (:status).',
'invalid_scheme' => 'Only http and https URLs are supported.',
'missing_host' => 'The URL is missing a host.',
'unresolvable_host' => 'We could not resolve the host (:host).',
'private_network' => 'URLs pointing to private networks are not allowed.',
],
'logo_captured' => 'Logo captured from your website.',
'name' => 'Workspace name',
'name_placeholder' => 'e.g. Acme Inc',
'brand_description' => 'Brand description',
'brand_description_placeholder' => 'What does your brand do?',
'content_language' => 'Content language',
'content_language_description' => 'AI-generated captions will be written in this language.',
'brand_color' => 'Brand color',
'background_color' => 'Background color',
'text_color' => 'Text color',
'submit' => 'Create workspace',
'success' => 'Workspace created. Connect a social account to start posting.',
],
'cannot_delete_last' => 'You cannot delete your only workspace. Cancel your subscription in billing settings to close your account.',
'flash' => [
'deleted' => 'Workspace deleted successfully.',
],
];