feat(i18n): landing LivePreview + UseCases sections — EN/UK/RU
This commit is contained in:
parent
8df1e6c5b1
commit
8ec9a123b0
5 changed files with 255 additions and 102 deletions
|
|
@ -1,6 +1,7 @@
|
|||
import { motion, useReducedMotion } from 'framer-motion';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { ArrowRight } from 'lucide-react';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { fadeUp, slideInLeft, slideInRight, staggerChildren, viewportOnce } from '@/lib/motion';
|
||||
|
||||
const MESSAGES = [
|
||||
|
|
@ -35,15 +36,16 @@ const MESSAGES = [
|
|||
},
|
||||
];
|
||||
|
||||
const THEMES = [
|
||||
{ label: 'Price sensitivity', pct: 87, color: 'bg-primary' },
|
||||
{ label: 'Autonomous workflow', pct: 72, color: 'bg-brand-amber' },
|
||||
{ label: 'Time-to-insight', pct: 65, color: 'bg-brand-success' },
|
||||
];
|
||||
|
||||
export default function LivePreview() {
|
||||
const navigate = useNavigate();
|
||||
const shouldReduce = useReducedMotion();
|
||||
const { t } = useTranslation();
|
||||
|
||||
const THEMES = [
|
||||
{ label: t('hero.theme_1'), pct: 87, color: 'bg-primary' },
|
||||
{ label: t('hero.theme_2'), pct: 72, color: 'bg-brand-amber' },
|
||||
{ label: t('hero.theme_3'), pct: 65, color: 'bg-brand-success' },
|
||||
];
|
||||
|
||||
return (
|
||||
<section className="py-20 px-6 bg-[hsl(var(--brand-charcoal))]" id="live-preview">
|
||||
|
|
@ -59,25 +61,21 @@ export default function LivePreview() {
|
|||
<motion.div variants={slideInLeft} className="lg:w-2/5">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full border border-primary/25 bg-primary/5 mb-5">
|
||||
<span className="w-2 h-2 rounded-full bg-primary animate-pulse" />
|
||||
<span className="text-sm font-medium text-primary">Live session demo</span>
|
||||
<span className="text-sm font-medium text-primary">{t('live_preview.badge')}</span>
|
||||
</div>
|
||||
<h2 className="font-display font-bold text-display-2 text-foreground mb-5">
|
||||
Watch your synthetic panel debate your product.
|
||||
{t('live_preview.title')}
|
||||
</h2>
|
||||
<p className="text-muted-foreground leading-relaxed mb-6">
|
||||
Each persona speaks from their own perspective, challenges other panelists, and responds to the moderator — in real time. The AI extracts key themes and flags consensus as the session unfolds.
|
||||
{t('live_preview.description')}
|
||||
</p>
|
||||
<ul className="space-y-3 mb-8">
|
||||
{[
|
||||
'6 months of research compressed into 20 minutes',
|
||||
'Autonomous moderation — brief it and read results',
|
||||
'Themes and consensus detected live, not after',
|
||||
].map(item => (
|
||||
<li key={item} className="flex items-start gap-3 text-sm text-muted-foreground">
|
||||
{(['bullet_1', 'bullet_2', 'bullet_3'] as const).map(key => (
|
||||
<li key={key} className="flex items-start gap-3 text-sm text-muted-foreground">
|
||||
<div className="w-5 h-5 rounded-full bg-primary/15 flex items-center justify-center flex-shrink-0 mt-0.5">
|
||||
<div className="w-1.5 h-1.5 rounded-full bg-primary" />
|
||||
</div>
|
||||
{item}
|
||||
{t(`live_preview.${key}`)}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
|
|
@ -85,7 +83,7 @@ export default function LivePreview() {
|
|||
onClick={() => navigate('/register')}
|
||||
className="flex items-center gap-2 px-6 py-3 rounded-full bg-primary text-primary-foreground font-semibold text-sm hover:bg-primary/90 transition-all hover:-translate-y-0.5"
|
||||
>
|
||||
Run a free session
|
||||
{t('live_preview.cta')}
|
||||
<ArrowRight className="h-4 w-4" />
|
||||
</button>
|
||||
</motion.div>
|
||||
|
|
@ -97,9 +95,9 @@ export default function LivePreview() {
|
|||
<div className="bg-secondary/60 px-5 py-3 flex items-center justify-between border-b border-border">
|
||||
<div className="flex items-center gap-2">
|
||||
<span className="w-2.5 h-2.5 rounded-full bg-primary animate-pulse" />
|
||||
<span className="text-xs font-semibold text-foreground">Session: Product Concept Test A</span>
|
||||
<span className="text-xs font-semibold text-foreground">{t('live_preview.session_name')}</span>
|
||||
</div>
|
||||
<span className="text-xs text-muted-foreground">4 participants · Autonomous mode</span>
|
||||
<span className="text-xs text-muted-foreground">{t('live_preview.session_info')}</span>
|
||||
</div>
|
||||
|
||||
<div className="flex divide-x divide-border">
|
||||
|
|
@ -137,7 +135,7 @@ export default function LivePreview() {
|
|||
|
||||
{/* Themes sidebar */}
|
||||
<div className="w-44 p-4 hidden md:block">
|
||||
<p className="text-[10px] font-bold uppercase tracking-widest text-muted-foreground mb-4">Themes detected</p>
|
||||
<p className="text-[10px] font-bold uppercase tracking-widest text-muted-foreground mb-4">{t('live_preview.themes_title')}</p>
|
||||
<div className="space-y-4">
|
||||
{THEMES.map(({ label, pct, color }, i) => (
|
||||
<div key={label}>
|
||||
|
|
@ -158,10 +156,10 @@ export default function LivePreview() {
|
|||
))}
|
||||
</div>
|
||||
<div className="mt-6 pt-4 border-t border-border">
|
||||
<p className="text-[10px] text-muted-foreground mb-2">Consensus</p>
|
||||
<p className="text-[10px] text-muted-foreground mb-2">{t('live_preview.consensus_label')}</p>
|
||||
<div className="flex items-center gap-1.5">
|
||||
<div className="w-2 h-2 rounded-full bg-brand-success" />
|
||||
<span className="text-[10px] text-brand-success font-medium">Building</span>
|
||||
<span className="text-[10px] text-brand-success font-medium">{t('live_preview.consensus_building')}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -170,7 +168,7 @@ export default function LivePreview() {
|
|||
{/* Input bar */}
|
||||
<div className="border-t border-border px-5 py-3 flex items-center gap-2">
|
||||
<div className="flex-1 bg-secondary/50 rounded-xl px-4 py-2.5 text-sm text-muted-foreground/50 select-none">
|
||||
Ask a follow-up question…
|
||||
{t('live_preview.input_placeholder')}
|
||||
</div>
|
||||
<button className="w-8 h-8 rounded-xl bg-primary flex items-center justify-center flex-shrink-0">
|
||||
<ArrowRight className="h-4 w-4 text-primary-foreground" />
|
||||
|
|
|
|||
|
|
@ -1,62 +1,18 @@
|
|||
import { motion } from 'framer-motion';
|
||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from '@/components/ui/tabs';
|
||||
import { useTranslation } from 'react-i18next';
|
||||
import { fadeUp, staggerChildren, viewportOnce } from '@/lib/motion';
|
||||
|
||||
const USE_CASES = [
|
||||
{
|
||||
id: 'pm',
|
||||
label: 'For Product Managers',
|
||||
headline: 'Ship without the 3-week research cycle.',
|
||||
story: `You've got a sprint review in 6 days. Your PM gut says users will love the new onboarding flow — but you need at least a directional signal before committing engineering time.
|
||||
|
||||
Cohorta lets you generate a 10-persona panel matching your ICP in 90 seconds. Run a structured concept test in the next 20 minutes. Get a prioritised list of objections, questions, and "I would definitely use this" moments — before the sprint even starts.`,
|
||||
bullets: [
|
||||
'Test new feature concepts before backlog grooming',
|
||||
'Validate pricing tiers against realistic user segments',
|
||||
'Identify friction points in flows before engineering handoff',
|
||||
],
|
||||
tag: '~$8 per session vs $3k+ traditional',
|
||||
persona: `${import.meta.env.BASE_URL}avatars/persona-2.svg`,
|
||||
personaName: 'Arjun, Senior PM · SaaS',
|
||||
quote: '"I ran six audience segments in one afternoon. That would have taken two months and $40k with a research agency."',
|
||||
},
|
||||
{
|
||||
id: 'marketing',
|
||||
label: 'For Marketers',
|
||||
headline: 'Stress-test your messaging before it costs you.',
|
||||
story: `Before you launch that campaign — the copy, the positioning, the offer — wouldn't you want to know how 30 different buyer profiles actually react to it?
|
||||
|
||||
With Cohorta you can generate a segment-specific panel (early adopters, conservative buyers, price-sensitive SMBs) and run message-testing sessions in parallel. Find out which headline resonates, which objection kills the conversion, and which segment is actually worth targeting.`,
|
||||
bullets: [
|
||||
'Test ad copy and landing page headlines across audience segments',
|
||||
'Find the objections that kill conversions — before launch',
|
||||
'Run A/B message tests on synthetic panels in minutes',
|
||||
],
|
||||
tag: '20 min session · instant theme report',
|
||||
persona: `${import.meta.env.BASE_URL}avatars/persona-6.svg`,
|
||||
personaName: 'Sarah, Marketing Director · Consumer Goods',
|
||||
quote: '"The personas push back in ways real respondents would. I use it for every campaign brief now."',
|
||||
},
|
||||
{
|
||||
id: 'ux',
|
||||
label: 'For UX Researchers',
|
||||
headline: 'Front-load discovery. Save real users for validation.',
|
||||
story: `Real user sessions are expensive and hard to schedule. Synthetic research doesn't replace them — but it makes them far more valuable.
|
||||
|
||||
Use Cohorta to front-load your problem space before recruiting begins. Identify the right hypotheses, stress-test your discussion guide, and arrive at moderated sessions knowing exactly which threads are worth pulling. Your real participants' time (and your budget) go further.`,
|
||||
bullets: [
|
||||
'Stress-test your discussion guide before recruiting starts',
|
||||
'Identify edge-case personas you might have overlooked',
|
||||
'Generate a draft topic list from your research objectives',
|
||||
],
|
||||
tag: 'directionally accurate for exploratory research',
|
||||
persona: `${import.meta.env.BASE_URL}avatars/persona-7.svg`,
|
||||
personaName: 'Tom, UX Research Lead · Fintech',
|
||||
quote: '"I briefed the system at 9am and had a full transcript + theme report by 9:20. I use synthetic research to make real research better."',
|
||||
},
|
||||
];
|
||||
const ROLE_IDS = ['pm', 'marketing', 'ux'] as const;
|
||||
const PERSONA_IMGS = {
|
||||
pm: `${import.meta.env.BASE_URL}avatars/persona-2.svg`,
|
||||
marketing: `${import.meta.env.BASE_URL}avatars/persona-6.svg`,
|
||||
ux: `${import.meta.env.BASE_URL}avatars/persona-7.svg`,
|
||||
};
|
||||
|
||||
export default function UseCases() {
|
||||
const { t } = useTranslation();
|
||||
|
||||
return (
|
||||
<section className="py-24 px-6 bg-[hsl(var(--brand-charcoal))]">
|
||||
<div className="max-w-6xl mx-auto">
|
||||
|
|
@ -68,71 +24,72 @@ export default function UseCases() {
|
|||
>
|
||||
<motion.div variants={fadeUp} className="text-center mb-12">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full border border-primary/25 bg-primary/5 mb-5">
|
||||
<span className="text-sm font-medium text-primary">Who it's for</span>
|
||||
<span className="text-sm font-medium text-primary">{t('use_cases.badge')}</span>
|
||||
</div>
|
||||
<h2 className="font-display font-bold text-display-2 text-foreground">
|
||||
Pick your role. See the exact value.
|
||||
{t('use_cases.title')}
|
||||
</h2>
|
||||
</motion.div>
|
||||
|
||||
<motion.div variants={fadeUp}>
|
||||
<Tabs defaultValue="pm" className="w-full">
|
||||
<TabsList className="flex w-full max-w-lg mx-auto mb-10 bg-secondary/50 p-1 rounded-full h-auto">
|
||||
{USE_CASES.map(({ id, label }) => (
|
||||
{ROLE_IDS.map(id => (
|
||||
<TabsTrigger
|
||||
key={id}
|
||||
value={id}
|
||||
className="flex-1 rounded-full text-sm font-medium data-[state=active]:bg-primary data-[state=active]:text-primary-foreground data-[state=inactive]:text-muted-foreground transition-all py-2"
|
||||
>
|
||||
{label.replace('For ', '')}
|
||||
{t(`use_cases.${id}.label`)}
|
||||
</TabsTrigger>
|
||||
))}
|
||||
</TabsList>
|
||||
|
||||
{USE_CASES.map(({ id, headline, story, bullets, tag, persona, personaName, quote }) => (
|
||||
{ROLE_IDS.map(id => (
|
||||
<TabsContent key={id} value={id}>
|
||||
<div className="grid grid-cols-1 lg:grid-cols-2 gap-10 items-start">
|
||||
{/* Left: story */}
|
||||
<div>
|
||||
<h3 className="font-display font-bold text-2xl text-foreground mb-5">{headline}</h3>
|
||||
<h3 className="font-display font-bold text-2xl text-foreground mb-5">
|
||||
{t(`use_cases.${id}.headline`)}
|
||||
</h3>
|
||||
<div className="space-y-4 text-muted-foreground leading-relaxed text-sm">
|
||||
{story.split('\n\n').map((para, i) => (
|
||||
<p key={i}>{para}</p>
|
||||
))}
|
||||
<p>{t(`use_cases.${id}.story_1`)}</p>
|
||||
<p>{t(`use_cases.${id}.story_2`)}</p>
|
||||
</div>
|
||||
<ul className="mt-6 space-y-2">
|
||||
{bullets.map(b => (
|
||||
{(['bullet_1', 'bullet_2', 'bullet_3'] as const).map(b => (
|
||||
<li key={b} className="flex items-start gap-3 text-sm text-muted-foreground">
|
||||
<div className="w-5 h-5 rounded-full bg-primary/15 flex items-center justify-center flex-shrink-0 mt-0.5">
|
||||
<div className="w-1.5 h-1.5 rounded-full bg-primary" />
|
||||
</div>
|
||||
{b}
|
||||
{t(`use_cases.${id}.${b}`)}
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
<div className="mt-6 inline-flex items-center gap-2 px-3 py-1.5 rounded-full bg-brand-amber/10 border border-brand-amber/20">
|
||||
<span className="text-xs font-medium text-brand-amber">{tag}</span>
|
||||
<span className="text-xs font-medium text-brand-amber">{t(`use_cases.${id}.tag`)}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* Right: testimonial card */}
|
||||
<div className="bg-card border border-border rounded-2xl p-7">
|
||||
<div className="flex items-center gap-4 mb-5">
|
||||
<img
|
||||
src={persona}
|
||||
alt={personaName}
|
||||
src={PERSONA_IMGS[id]}
|
||||
alt={t(`use_cases.${id}.persona_name`)}
|
||||
className="w-12 h-12 rounded-full object-cover border border-border"
|
||||
onError={(e) => { (e.target as HTMLImageElement).style.display = 'none'; }}
|
||||
/>
|
||||
<div>
|
||||
<p className="text-sm font-semibold text-foreground">{personaName.split(' · ')[0]}</p>
|
||||
<p className="text-xs text-muted-foreground">{personaName.split(' · ')[1]}</p>
|
||||
<p className="text-sm font-semibold text-foreground">{t(`use_cases.${id}.persona_name`)}</p>
|
||||
<p className="text-xs text-muted-foreground">{t(`use_cases.${id}.persona_role`)}</p>
|
||||
</div>
|
||||
</div>
|
||||
<blockquote className="text-sm text-foreground/80 leading-relaxed italic">
|
||||
{quote}
|
||||
{t(`use_cases.${id}.quote`)}
|
||||
</blockquote>
|
||||
<p className="mt-4 text-[10px] text-muted-foreground/50 uppercase tracking-widest">Example use case</p>
|
||||
<p className="mt-4 text-[10px] text-muted-foreground/50 uppercase tracking-widest">
|
||||
{t('use_cases.example_label')}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</TabsContent>
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@
|
|||
"uk_hosted_gdpr": "UK hosted · GDPR compliant · Built in London"
|
||||
},
|
||||
"dashboard": {
|
||||
"welcome": "Welcome back, {{name}}",
|
||||
"welcome": "Welcome back,",
|
||||
"credits_remaining": "{{count}} credits remaining",
|
||||
"new_focus_group": "New focus group",
|
||||
"verify_email_banner": "Please verify your email address to unlock all features.",
|
||||
|
|
@ -401,7 +401,10 @@
|
|||
"materials_description": "Mockups, decks, or any materials the moderator should reference",
|
||||
"copy_guide_button": "Import Discussion Guide from Other Project",
|
||||
"generate_guide_button": "Generate Discussion Guide",
|
||||
"generating_button": "Generating..."
|
||||
"generating_button": "Generating...",
|
||||
"tab_setup": "Setup",
|
||||
"tab_participant_selection": "Participant Selection",
|
||||
"tab_review_edit": "Review & Edit"
|
||||
},
|
||||
"persona_editor": {
|
||||
"edit_title": "Edit Persona",
|
||||
|
|
@ -411,6 +414,10 @@
|
|||
"tab_attitudinal": "Attitudinal Profile",
|
||||
"tab_personality": "Personality",
|
||||
"tab_scenarios": "Scenarios",
|
||||
"tab_basic": "Basic",
|
||||
"tab_demographics": "Demographics",
|
||||
"tab_lifestyle": "Lifestyle",
|
||||
"tab_extended": "Extended",
|
||||
"label_name": "Name",
|
||||
"label_occupation": "Occupation",
|
||||
"section_demographics": "Demographics",
|
||||
|
|
@ -477,5 +484,64 @@
|
|||
"toast_created": "Persona created successfully",
|
||||
"toast_auth_error_local": "Authentication error — saving locally instead",
|
||||
"toast_save_failed": "Failed to save persona"
|
||||
},
|
||||
"live_preview": {
|
||||
"badge": "Live session demo",
|
||||
"title": "Watch your synthetic panel debate your product.",
|
||||
"description": "Each persona speaks from their own perspective, challenges other panelists, and responds to the moderator — in real time. The AI extracts key themes and flags consensus as the session unfolds.",
|
||||
"bullet_1": "6 months of research compressed into 20 minutes",
|
||||
"bullet_2": "Autonomous moderation — brief it and read results",
|
||||
"bullet_3": "Themes and consensus detected live, not after",
|
||||
"cta": "Run a free session",
|
||||
"session_name": "Session: Product Concept Test A",
|
||||
"session_info": "4 participants · Autonomous mode",
|
||||
"themes_title": "Themes detected",
|
||||
"consensus_label": "Consensus",
|
||||
"consensus_building": "Building",
|
||||
"input_placeholder": "Ask a follow-up question…"
|
||||
},
|
||||
"use_cases": {
|
||||
"badge": "Who it's for",
|
||||
"title": "Pick your role. See the exact value.",
|
||||
"example_label": "Example use case",
|
||||
"pm": {
|
||||
"label": "Product Managers",
|
||||
"headline": "Ship without the 3-week research cycle.",
|
||||
"story_1": "You've got a sprint review in 6 days. Your PM gut says users will love the new onboarding flow — but you need at least a directional signal before committing engineering time.",
|
||||
"story_2": "Cohorta lets you generate a 10-persona panel matching your ICP in 90 seconds. Run a structured concept test in the next 20 minutes. Get a prioritised list of objections, questions, and \"I would definitely use this\" moments — before the sprint even starts.",
|
||||
"bullet_1": "Test new feature concepts before backlog grooming",
|
||||
"bullet_2": "Validate pricing tiers against realistic user segments",
|
||||
"bullet_3": "Identify friction points in flows before engineering handoff",
|
||||
"tag": "~$8 per session vs $3k+ traditional",
|
||||
"persona_name": "Arjun, Senior PM",
|
||||
"persona_role": "SaaS",
|
||||
"quote": "\"I ran six audience segments in one afternoon. That would have taken two months and $40k with a research agency.\""
|
||||
},
|
||||
"marketing": {
|
||||
"label": "Marketers",
|
||||
"headline": "Stress-test your messaging before it costs you.",
|
||||
"story_1": "Before you launch that campaign — the copy, the positioning, the offer — wouldn't you want to know how 30 different buyer profiles actually react to it?",
|
||||
"story_2": "With Cohorta you can generate a segment-specific panel (early adopters, conservative buyers, price-sensitive SMBs) and run message-testing sessions in parallel. Find out which headline resonates, which objection kills the conversion, and which segment is actually worth targeting.",
|
||||
"bullet_1": "Test ad copy and landing page headlines across audience segments",
|
||||
"bullet_2": "Find the objections that kill conversions — before launch",
|
||||
"bullet_3": "Run A/B message tests on synthetic panels in minutes",
|
||||
"tag": "20 min session · instant theme report",
|
||||
"persona_name": "Sarah, Marketing Director",
|
||||
"persona_role": "Consumer Goods",
|
||||
"quote": "\"The personas push back in ways real respondents would. I use it for every campaign brief now.\""
|
||||
},
|
||||
"ux": {
|
||||
"label": "UX Researchers",
|
||||
"headline": "Front-load discovery. Save real users for validation.",
|
||||
"story_1": "Real user sessions are expensive and hard to schedule. Synthetic research doesn't replace them — but it makes them far more valuable.",
|
||||
"story_2": "Use Cohorta to front-load your problem space before recruiting begins. Identify the right hypotheses, stress-test your discussion guide, and arrive at moderated sessions knowing exactly which threads are worth pulling. Your real participants' time (and your budget) go further.",
|
||||
"bullet_1": "Stress-test your discussion guide before recruiting starts",
|
||||
"bullet_2": "Identify edge-case personas you might have overlooked",
|
||||
"bullet_3": "Generate a draft topic list from your research objectives",
|
||||
"tag": "directionally accurate for exploratory research",
|
||||
"persona_name": "Tom, UX Research Lead",
|
||||
"persona_role": "Fintech",
|
||||
"quote": "\"I briefed the system at 9am and had a full transcript + theme report by 9:20. I use synthetic research to make real research better.\""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@
|
|||
"uk_hosted_gdpr": "Хостинг в Великобритании · Соответствие GDPR · Сделано в Лондоне"
|
||||
},
|
||||
"dashboard": {
|
||||
"welcome": "С возвращением, {{name}}",
|
||||
"welcome": "С возвращением,",
|
||||
"credits_remaining": "Осталось {{count}} кредитов",
|
||||
"new_focus_group": "Новая фокус-группа",
|
||||
"verify_email_banner": "Пожалуйста, подтвердите адрес электронной почты для разблокировки всех функций.",
|
||||
|
|
@ -401,7 +401,10 @@
|
|||
"materials_description": "Макеты, презентации или любые материалы для модератора",
|
||||
"copy_guide_button": "Импортировать гайд из другого проекта",
|
||||
"generate_guide_button": "Сгенерировать гайд дискуссии",
|
||||
"generating_button": "Генерация..."
|
||||
"generating_button": "Генерация...",
|
||||
"tab_setup": "Настройка",
|
||||
"tab_participant_selection": "Выбор участников",
|
||||
"tab_review_edit": "Обзор и редактирование"
|
||||
},
|
||||
"persona_editor": {
|
||||
"edit_title": "Редактировать персону",
|
||||
|
|
@ -411,6 +414,10 @@
|
|||
"tab_attitudinal": "Профиль установок",
|
||||
"tab_personality": "Личность",
|
||||
"tab_scenarios": "Сценарии",
|
||||
"tab_basic": "Основное",
|
||||
"tab_demographics": "Демография",
|
||||
"tab_lifestyle": "Образ жизни",
|
||||
"tab_extended": "Расширенные",
|
||||
"label_name": "Имя",
|
||||
"label_occupation": "Должность",
|
||||
"section_demographics": "Демография",
|
||||
|
|
@ -477,5 +484,64 @@
|
|||
"toast_created": "Персона успешно создана",
|
||||
"toast_auth_error_local": "Ошибка аутентификации — сохранено локально",
|
||||
"toast_save_failed": "Не удалось сохранить персону"
|
||||
},
|
||||
"live_preview": {
|
||||
"badge": "Демо живой сессии",
|
||||
"title": "Наблюдайте, как синтетическая панель обсуждает ваш продукт.",
|
||||
"description": "Каждая персона говорит со своей точки зрения, бросает вызов другим участникам и отвечает модератору — в реальном времени. ИИ извлекает ключевые темы и фиксирует консенсус по ходу сессии.",
|
||||
"bullet_1": "6 месяцев исследований — за 20 минут",
|
||||
"bullet_2": "Автономная модерация — дайте бриф и читайте результаты",
|
||||
"bullet_3": "Темы и консенсус — в процессе, а не после",
|
||||
"cta": "Провести бесплатную сессию",
|
||||
"session_name": "Сессия: Тест концепта продукта А",
|
||||
"session_info": "4 участника · Автономный режим",
|
||||
"themes_title": "Обнаруженные темы",
|
||||
"consensus_label": "Консенсус",
|
||||
"consensus_building": "Формируется",
|
||||
"input_placeholder": "Задайте уточняющий вопрос…"
|
||||
},
|
||||
"use_cases": {
|
||||
"badge": "Для кого",
|
||||
"title": "Выберите роль. Увидьте реальную ценность.",
|
||||
"example_label": "Пример использования",
|
||||
"pm": {
|
||||
"label": "Product Managers",
|
||||
"headline": "Выпускайте продукт без 3-недельного исследовательского цикла.",
|
||||
"story_1": "До ревью спринта 6 дней. Ваш PM-инстинкт говорит, что новый онбординг понравится пользователям — но нужен хотя бы ориентировочный сигнал перед выделением времени разработчиков.",
|
||||
"story_2": "Cohorta позволяет сгенерировать панель из 10 персон, соответствующих вашему ICP, за 90 секунд. Проведите структурированный концепт-тест за 20 минут. Получите приоритизированный список возражений, вопросов и моментов «я бы точно использовал это» — ещё до начала спринта.",
|
||||
"bullet_1": "Тестируйте концепты новых функций до груминга бэклога",
|
||||
"bullet_2": "Валидируйте ценовые уровни на реалистичных сегментах пользователей",
|
||||
"bullet_3": "Выявляйте точки трения во флоу до передачи в разработку",
|
||||
"tag": "~$8 за сессию против $3k+ традиционного метода",
|
||||
"persona_name": "Arjun, Senior PM",
|
||||
"persona_role": "SaaS",
|
||||
"quote": "«Я провёл шесть сегментов аудитории за один день. Традиционно это заняло бы два месяца и $40k на исследовательское агентство.»"
|
||||
},
|
||||
"marketing": {
|
||||
"label": "Маркетологи",
|
||||
"headline": "Протестируйте мессейджинг до того, как он обойдётся вам дорого.",
|
||||
"story_1": "Перед запуском кампании — разве вы не хотели бы знать, как 30 различных профилей покупателей реагируют на ваш копи, позиционирование и оффер?",
|
||||
"story_2": "С Cohorta вы можете сгенерировать сегментную панель (ранние адопторы, консервативные покупатели, ценочувствительные SMB) и параллельно провести сессии тестирования сообщений. Узнайте, какой заголовок резонирует, какое возражение убивает конверсию и какой сегмент стоит таргетировать.",
|
||||
"bullet_1": "Тестируйте рекламные копи и заголовки лендингов по сегментам аудитории",
|
||||
"bullet_2": "Находите возражения, убивающие конверсию — до запуска",
|
||||
"bullet_3": "Проводите A/B тесты сообщений на синтетических панелях за минуты",
|
||||
"tag": "20 мин сессия · мгновенный отчёт по темам",
|
||||
"persona_name": "Sarah, Marketing Director",
|
||||
"persona_role": "Consumer Goods",
|
||||
"quote": "«Персоны отвечают так же, как реальные респонденты. Я использую это для каждого кампейн-брифа.»"
|
||||
},
|
||||
"ux": {
|
||||
"label": "UX-исследователи",
|
||||
"headline": "Фронт-лоад дискавери. Оставьте реальных пользователей для валидации.",
|
||||
"story_1": "Реальные сессии с пользователями дорогостоящие и сложно планируются. Синтетическое исследование их не заменяет — но делает намного ценнее.",
|
||||
"story_2": "Используйте Cohorta для предрекрутингового изучения проблемного пространства. Определите правильные гипотезы, протестируйте гайд дискуссии и приходите на модерируемые сессии, зная, какие нити стоит тянуть. Время ваших реальных участников (и ваш бюджет) используется эффективнее.",
|
||||
"bullet_1": "Тестируйте гайд дискуссии до начала рекрутинга",
|
||||
"bullet_2": "Выявляйте крайние персоны, которые вы могли не учесть",
|
||||
"bullet_3": "Генерируйте черновой список тем из ваших исследовательских целей",
|
||||
"tag": "ориентировочно точно для исследовательского дискавери",
|
||||
"persona_name": "Tom, UX Research Lead",
|
||||
"persona_role": "Fintech",
|
||||
"quote": "«Я дал брифинг в 9:00 и уже в 9:20 имел полный транскрипт и отчёт по темам. Я использую синтетическое исследование, чтобы сделать реальное лучше.»"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -214,7 +214,7 @@
|
|||
"uk_hosted_gdpr": "Хостинг у Великій Британії · Відповідність GDPR · Зроблено в Лондоні"
|
||||
},
|
||||
"dashboard": {
|
||||
"welcome": "З поверненням, {{name}}",
|
||||
"welcome": "З поверненням,",
|
||||
"credits_remaining": "Залишилось {{count}} кредитів",
|
||||
"new_focus_group": "Нова фокус-група",
|
||||
"verify_email_banner": "Будь ласка, підтвердьте свою електронну адресу для розблокування всіх функцій.",
|
||||
|
|
@ -401,7 +401,10 @@
|
|||
"materials_description": "Макети, презентації або будь-які матеріали для модератора",
|
||||
"copy_guide_button": "Імпортувати гайд з іншого проекту",
|
||||
"generate_guide_button": "Згенерувати гайд дискусії",
|
||||
"generating_button": "Генерація..."
|
||||
"generating_button": "Генерація...",
|
||||
"tab_setup": "Налаштування",
|
||||
"tab_participant_selection": "Вибір учасників",
|
||||
"tab_review_edit": "Перегляд і редагування"
|
||||
},
|
||||
"persona_editor": {
|
||||
"edit_title": "Редагувати персону",
|
||||
|
|
@ -411,6 +414,10 @@
|
|||
"tab_attitudinal": "Профіль ставлень",
|
||||
"tab_personality": "Особистість",
|
||||
"tab_scenarios": "Сценарії",
|
||||
"tab_basic": "Основне",
|
||||
"tab_demographics": "Демографія",
|
||||
"tab_lifestyle": "Спосіб життя",
|
||||
"tab_extended": "Розширені",
|
||||
"label_name": "Ім'я",
|
||||
"label_occupation": "Посада",
|
||||
"section_demographics": "Демографія",
|
||||
|
|
@ -477,5 +484,64 @@
|
|||
"toast_created": "Персону успішно створено",
|
||||
"toast_auth_error_local": "Помилка аутентифікації — збережено локально",
|
||||
"toast_save_failed": "Не вдалося зберегти персону"
|
||||
},
|
||||
"live_preview": {
|
||||
"badge": "Демонстрація живої сесії",
|
||||
"title": "Спостерігайте, як ваша синтетична панель обговорює ваш продукт.",
|
||||
"description": "Кожна персона говорить зі своєї точки зору, кидає виклик іншим учасникам і відповідає модератору — в реальному часі. ШІ виявляє ключові теми та визначає консенсус у міру розгортання сесії.",
|
||||
"bullet_1": "6 місяців досліджень стиснуто до 20 хвилин",
|
||||
"bullet_2": "Автономна модерація — дайте брифінг і читайте результати",
|
||||
"bullet_3": "Теми та консенсус виявляються в процесі, а не після",
|
||||
"cta": "Провести безкоштовну сесію",
|
||||
"session_name": "Сесія: Тест концепту продукту А",
|
||||
"session_info": "4 учасники · Автономний режим",
|
||||
"themes_title": "Виявлені теми",
|
||||
"consensus_label": "Консенсус",
|
||||
"consensus_building": "Формується",
|
||||
"input_placeholder": "Поставте уточнювальне питання…"
|
||||
},
|
||||
"use_cases": {
|
||||
"badge": "Для кого",
|
||||
"title": "Оберіть роль. Побачте реальну цінність.",
|
||||
"example_label": "Приклад використання",
|
||||
"pm": {
|
||||
"label": "Product Managers",
|
||||
"headline": "Доставляйте продукт без 3-тижневого дослідницького циклу.",
|
||||
"story_1": "До спринт-рев'ю залишилося 6 днів. Ваш PM-інстинкт каже, що новий онбординг сподобається користувачам — але потрібен хоча б орієнтовний сигнал перед виділенням часу розробників.",
|
||||
"story_2": "Cohorta дозволяє згенерувати панель з 10 персон, що відповідають вашому ICP, за 90 секунд. Проведіть структурований концепт-тест за 20 хвилин. Отримайте пріоритизований список заперечень, питань і моментів «я б точно використав це» — ще до початку спринту.",
|
||||
"bullet_1": "Тестуйте концепти нових функцій перед грумінгом беклогу",
|
||||
"bullet_2": "Валідуйте цінові рівні на реалістичних сегментах користувачів",
|
||||
"bullet_3": "Виявляйте точки тертя у флоу до передачі в розробку",
|
||||
"tag": "~$8 за сесію проти $3k+ традиційного методу",
|
||||
"persona_name": "Arjun, Senior PM",
|
||||
"persona_role": "SaaS",
|
||||
"quote": "«Я провів шість сегментів аудиторії за один день. Традиційно це зайняло б два місяці і $40k на дослідницьке агентство.»"
|
||||
},
|
||||
"marketing": {
|
||||
"label": "Marketers",
|
||||
"headline": "Протестуйте меседжинг до того, як він обійдеться вам дорого.",
|
||||
"story_1": "Перед запуском кампанії — чи не хотіли б ви знати, як 30 різних профілів покупців реагують на ваш копі, позиціонування та оффер?",
|
||||
"story_2": "З Cohorta ви можете згенерувати сегментну панель (ранні адоптери, консервативні покупці, ціночутливі SMB) і паралельно провести сесії тестування меседжів. Дізнайтесь, який заголовок резонує, яке заперечення вбиває конверсію і який сегмент варто таргетувати.",
|
||||
"bullet_1": "Тестуйте рекламні копі та заголовки лендингів по сегментах аудиторії",
|
||||
"bullet_2": "Знаходьте заперечення, що вбивають конверсію — до запуску",
|
||||
"bullet_3": "Проводьте A/B тести меседжів на синтетичних панелях за хвилини",
|
||||
"tag": "20 хв сесія · миттєвий звіт по темах",
|
||||
"persona_name": "Sarah, Marketing Director",
|
||||
"persona_role": "Consumer Goods",
|
||||
"quote": "«Персони відповідають так, як і реальні респонденти. Я використовую це для кожного кампейн-бріфу.»"
|
||||
},
|
||||
"ux": {
|
||||
"label": "UX Researchers",
|
||||
"headline": "Фронт-лоад дискавері. Залиште реальних користувачів для валідації.",
|
||||
"story_1": "Реальні сесії з користувачами дорогі й важко планувати. Синтетичне дослідження їх не замінює — але робить набагато ціннішими.",
|
||||
"story_2": "Використовуйте Cohorta для передрекрутингового вивчення проблемного простору. Визначте правильні гіпотези, протестуйте гайд дискусії та приходьте на модеровані сесії, знаючи, які нитки варто тягнути. Час ваших реальних учасників (і ваш бюджет) використовуються ефективніше.",
|
||||
"bullet_1": "Тестуйте гайд дискусії до початку рекрутингу",
|
||||
"bullet_2": "Виявляйте крайові персони, які ви могли не врахувати",
|
||||
"bullet_3": "Генеруйте чорновий список тем з ваших дослідницьких цілей",
|
||||
"tag": "орієнтовно точно для дослідницького дискавері",
|
||||
"persona_name": "Tom, UX Research Lead",
|
||||
"persona_role": "Fintech",
|
||||
"quote": "«Я дав бріфінг о 9:00 і вже о 9:20 мав повний транскрипт і звіт по темах. Я використовую синтетичне дослідження, щоб зробити реальне кращим.»"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue