feat(template-wizard): enhance competitor management and update UI messages
Frontend CI / Frontend (push) Successful in 3m27s

This commit is contained in:
2026-05-13 17:10:31 +08:00
parent 1eae6fb6d4
commit 7aa786fbf4
3 changed files with 107 additions and 118 deletions
+8 -3
View File
@@ -882,12 +882,14 @@ const enUS = {
},
actions: {
analyze: 'Analyze',
analyzeCompetitors: 'AI fill competitors',
addCompetitor: 'Add competitor',
addSection: 'Add section',
addOutlineNode: 'Add node',
addOutlineChild: 'Add child',
favorite: 'Save',
saved: 'Saved',
unfavorite: 'Unsave',
submit: 'Submit and generate',
},
review: {
@@ -937,8 +939,8 @@ const enUS = {
'AI will use the brand question to organize the topic context and suggest reference targets.',
},
assist: {
analyzeTitle: 'AI is analyzing brand questions and competitors. Please wait…',
analyzeTitleNoCompetitors: 'AI is analyzing brand questions and context. Please wait…',
analyzeTitle: 'AI is filling competitor information. Please wait…',
analyzeTitleNoCompetitors: 'AI is filling competitor information. Please wait…',
titleTitle: 'AI is generating titles. Please wait…',
outlineTitle: 'AI is generating the article outline. Please wait…',
analyzeStages: {
@@ -946,7 +948,8 @@ const enUS = {
keywords: 'Extracting keyword opportunities…',
questions: 'Organizing brand questions…',
competitors: 'Mapping competitors and websites…',
context: 'Organizing the content context…',
context: 'Organizing brand and website context…',
refine: 'Merging and filtering competitor suggestions…',
},
titleStages: {
context: 'Preparing the current brief…',
@@ -970,9 +973,11 @@ const enUS = {
missingOutline: 'Please select at least one outline section.',
missingGeneratedOutline: 'Please generate and confirm the article outline first.',
customOutlineTooLong: 'Custom sections cannot exceed {count} characters.',
selectBrandBeforeCompetitors: 'Choose a brand from the library before managing competitors.',
selectBrandBeforeFavorite: 'Choose a brand from the library before saving competitors.',
missingCompetitorName: 'Enter a competitor name before saving it to the library.',
savedCompetitor: 'Competitor saved to the brand library.',
unsavedCompetitor: 'Competitor removed from the brand library.',
assistReady: 'AI analysis is ready. You can keep refining the draft.',
assistFailed: 'AI analysis failed. Please try again.',
assistTimeout: 'AI analysis timed out. Please try again.',
+8 -3
View File
@@ -839,12 +839,14 @@ const zhCN = {
},
actions: {
analyze: "分析",
analyzeCompetitors: "AI 补齐竞品",
addCompetitor: "添加竞品",
addSection: "添加结构",
addOutlineNode: "添加节点",
addOutlineChild: "添加子节点",
favorite: "收藏",
saved: "已收藏",
unfavorite: "取消收藏",
submit: "提交并生成",
},
review: {
@@ -891,8 +893,8 @@ const zhCN = {
researchReportDescription: "AI 将基于品牌问题梳理主题背景,并生成参照对象参考",
},
assist: {
analyzeTitle: "AI 正在分析品牌问题和竞品,请稍后…",
analyzeTitleNoCompetitors: "AI 正在分析品牌问题和评测上下文,请稍后…",
analyzeTitle: "AI 正在补齐竞品信息,请稍后…",
analyzeTitleNoCompetitors: "AI 正在补齐竞品信息,请稍后…",
titleTitle: "AI 正在生成标题,请稍后…",
outlineTitle: "AI 正在生成文章大纲,请稍后…",
analyzeStages: {
@@ -900,7 +902,8 @@ const zhCN = {
keywords: "关键词提炼中…",
questions: "品牌问题整理中…",
competitors: "竞品与官网信息补充中…",
context: "评测上下文整理中…",
context: "正在整理品牌与官网上下文…",
refine: "正在合并并筛选竞品列表…",
},
titleStages: {
context: "正在整理当前内容上下文…",
@@ -925,9 +928,11 @@ const zhCN = {
missingOutline: "请至少选择一个文章结构段落",
missingGeneratedOutline: "请先生成并确认文章大纲",
customOutlineTooLong: "自定义结构不能超过 {count} 个字",
selectBrandBeforeCompetitors: "请先从品牌库选择品牌后再管理竞品",
selectBrandBeforeFavorite: "请先从品牌库选择品牌后再收藏竞品",
missingCompetitorName: "至少需要填写竞品名称后才能收藏",
savedCompetitor: "竞品已收藏到品牌词库",
unsavedCompetitor: "已取消收藏该竞品",
assistReady: "AI 分析已完成,可以继续调整内容。",
assistFailed: "AI 分析失败,请稍后重试。",
assistTimeout: "AI 分析超时,请稍后重试。",