trypost/lang/zh/welcome.php
Paulo Castellano 15f87aebe4
Add social connect step to welcome before Stripe (#293)
* feat: add social connect step to welcome before Stripe checkout

Ask new owners to connect a network after referral source so we can track welcome.connect in PostHog and still let them continue to checkout without a connection.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Nest welcome connect copy under a connect array.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Require a connected social account before welcome checkout.

Skip is no longer allowed, and the welcome layout takes a Tailwind size so the connect grid can sit two rows of six.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Harden the welcome connect step after review.

Track connect only after Stripe creates a session, restore a missing workspace before showing networks, and cover the remaining checkout and analytics cases.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor social account status handling across components

Updated the SocialAccountsGrid, NetworkConnectGrid, onboarding, and welcome connect components to utilize the new SocialAccountStatus enum for improved clarity and maintainability. This change replaces string literals for account statuses with the enum values, enhancing type safety and consistency throughout the application.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor workspace resolution in WelcomeController and StoreWelcomeConnectRequest

Updated the WelcomeController and StoreWelcomeConnectRequest to directly access the user's current workspace, simplifying the code by removing the resolveCurrentWorkspace method. This change enhances readability and maintains functionality by ensuring the current workspace is correctly utilized in the connection process. Additionally, removed outdated test cases related to workspace restoration.

* Inline welcome connect PostHog platforms from the current workspace.

Drop the extra helper — the grid already loads accounts the same way as onboarding and accounts.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Inline Stripe checkout into the welcome connect store.

startCheckout was a one-caller wrapper; storeConnect now matches the other welcome steps.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Move welcome connect validation into the controller.

The FormRequest had no input to validate and duplicated step-gating. Require a connected account in storeConnect, and drop the dead owner abort plus the always-true PostHog connected flag.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Show welcome toasts and cover remaining connect cases.

Mount the app Toast host on WelcomeLayout so OAuth, Telegram, and disconnect feedback is visible. Add tests for stale goals, an empty workspace grid, accounts on another workspace, and skipped identify when Stripe fails.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Assume a welcome workspace, validate connect in the FormRequest, and add browser tests.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Rename WelcomeEvent::dashboardFunnel() to funnel().

Co-authored-by: Cursor <cursoragent@cursor.com>

* Identify connected platforms from the social account observer.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Queue connected-platform identify on the posthog queue.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Harden welcome connect: 404 without a workspace, and keep step redirects ahead of connect validation.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Identify connected platforms on workspace and account groups, and keep the account union on the owner.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Share hasCurrentGoals on User and keep Stripe checkout when PostHog capture fails.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Skip welcome connect validation when the controller would redirect the user away.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Move current-goal membership onto the Goal enum.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 19:37:43 -03:00

67 lines
2.8 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
declare(strict_types=1);
return [
'title' => '哪项最能描述你?',
'description' => '选择最接近的一项,我们会为你定制体验。',
'continue' => '继续',
'subscription_required_title' => '等待账户所有者',
'subscription_required_description' => '此账户还没有有效订阅。请让账户所有者完成结账 — 订阅生效后您即可获得完整访问权限。',
'subscription_required_owner' => '您的账户所有者是 :name。',
'subscription_required_auto' => '此页面会自动更新 — 无需刷新。',
'progress' => '欢迎进度',
'go_to_step' => '前往第 :step 步',
'step_current' => '第 :step 步(当前)',
'personas' => [
'creator' => '内容创作者',
'freelancer' => '自由职业者',
'developer' => '开发者',
'startup' => '初创公司',
'agency' => '代理机构',
'small_business' => '小型企业',
'marketer' => '营销人员',
'online_store' => '网店',
'other' => '其他',
],
'goals_title' => '你的目标是什么?',
'goals_description' => '选择所有符合的选项,我们会为你配置好 TryPost。',
'goals' => [
'save_time' => '一次发布到所有平台,节省时间',
'ai_content' => '用 TryPost AI 生成帖子',
'use_mcp' => '通过 Claude、ChatGPT 或 Cursor 创建帖子',
'plan_calendar' => '在日历上规划我的帖子',
'stay_on_brand' => '让每一条帖子都符合品牌调性',
'grow_audience' => '增长我的受众和互动',
'drive_sales' => '获得更多流量和销量',
'manage_clients' => '管理多个品牌或客户',
'just_exploring' => '目前只是随便看看',
'other' => '其他需求',
],
'referral_source_title' => '您是如何找到我们的?',
'referral_source_description' => '这有助于我们了解人们是如何发现 TryPost 的。',
'referral_source' => [
'google' => 'Google',
'x' => 'X (Twitter)',
'linkedin' => 'LinkedIn',
'youtube' => 'YouTube',
'tiktok' => 'TikTok',
'instagram' => 'Instagram',
'threads' => 'Threads',
'reddit' => 'Reddit',
'product_hunt' => 'Product Hunt',
'github' => 'GitHub',
'hacker_news' => 'Hacker News',
'directories' => '软件目录G2、Capterra…',
'ai_assistant' => 'ChatGPT / Claude',
'friend' => '朋友或同事',
'founder' => '创始人',
'blog' => 'Blog / newsletter',
'other' => '其他',
],
'connect' => [
'title' => '连接社交账号',
'description' => '选择至少一个 TryPost 可以发布内容的平台。',
'required' => '请至少连接一个社交账号后再继续。',
],
];