Files
geo/apps/admin-web/src/i18n/messages/zh-CN.ts
T
root 745cdd79cf feat(compliance): add content compliance detection across tenant, ops, and clients
Implements the Revision 8/9 compliance design: tenant + ops backends, ops-web
content-safety pages, admin-web editor/publish gate integration, desktop publish
block surfacing, and supporting migrations / shared types / config plumbing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:48:14 +08:00

1424 lines
56 KiB
TypeScript

const zhCN = {
app: {
name: "省心推",
loginIntro: "面向企业和个人的品牌资产管理与内容生产协作系统",
},
locale: {
"zh-CN": "中文简体",
"en-US": "English",
},
common: {
cancel: "取消",
close: "关闭",
confirm: "确认",
create: "新建",
edit: "编辑",
delete: "删除",
reset: "重置",
refresh: "刷新数据",
loading: "加载中",
search: "搜索",
save: "保存",
next: "下一步",
previous: "上一步",
submit: "提交",
submitGenerate: "提交生成",
back: "返回",
actions: "操作",
title: "标题",
name: "名称",
description: "描述",
website: "官网",
wordCount: "字数",
createdAt: "创建时间",
updatedAt: "更新时间",
status: "状态",
required: "必填",
noData: "暂无数据",
optional: "可选",
preview: "预览",
details: "详情",
versions: "版本记录",
total: "总量",
balance: "剩余",
used: "已使用",
source: "来源",
templateType: "模版类型",
generateStatus: "生成状态",
publishStatus: "发布状态",
selectPlease: "请选择",
inputPlease: "请输入",
upgrade: "去升级",
copy: "复制",
copySuccess: "内容已复制",
yes: "是",
no: "否",
imageUploadProgress: {
title: "图片处理中",
stages: {
idle: "等待开始",
validating: "正在校验文件",
decoding: "正在解析图片",
encoding: "正在转为 WebP",
uploading: "正在上传到服务器",
finishing: "正在完成处理",
},
},
},
nav: {
workspace: "工作台",
articleCreation: "文章创作",
templates: "模版创作",
custom: "自定义生成",
freeCreate: "自由创作",
imitation: "仿写创作",
media: "媒体管理",
brandManagement: "品牌管理",
brands: "品牌词库",
tracking: "数据追踪",
trackingDetail: "数据详情",
contentManagement: "内容管理",
knowledge: "知识库",
images: "图片管理",
kolMarket: "精调模版市场",
kolMarketplace: "精调模版市场",
kolWorkspace: "KOL 工作台",
kolManage: "提示词管理",
kolDashboard: "数据看板",
kolProfile: "个人主页",
personalCenter: "个人中心",
aiPointUsage: "AI 点数明细",
},
auth: {
welcomeBack: "欢迎回来",
tenantAdminLogin: "租户后台登录",
loginAndEnter: "登录并进入工作台",
email: "邮箱",
loginIdentifier: "手机号 / 邮箱",
password: "密码",
rememberPassword: "记住密码",
forgotPassword: "忘记密码",
},
membershipBlocked: {
eyebrow: "访问已暂停",
title: "当前租户套餐不可用",
expiredMessage: "会员到期,请充值或联系客服",
userDisabledMessage: "用户被停用,请联系客服",
reasonUserDisabled: "用户已被停用,业务页面已全部关闭,请联系客服恢复访问。",
reasonTrialExpired: "免费试用的 3 天页面可访问期已经结束,当前业务页面已全部关闭,请联系管理员重新开通试用权限。",
reasonRequired: "当前租户尚未开通有效套餐,业务页面已全部关闭,请联系管理员处理。",
reasonInactive: "当前租户套餐已失效或已停用,业务页面已全部关闭,请联系管理员恢复访问。",
plan: "当前套餐",
expiredAt: "到期时间",
articleLimit: "文章额度",
companyLimit: "公司数量",
contactAdmin: "管理员重新开通后,刷新页面即可恢复访问。",
logout: "退出登录",
refresh: "重新检查",
refreshing: "检查中…",
stillBlocked: "账户仍处于受限状态,请先联系管理员后再重试。",
},
shell: {
localeLabel: "语言",
quotaTitle: "套餐与额度",
quotaStatus: "状态正常",
membershipExpiresAt: "会员到期",
remainingQuota: "生成文章",
aiPoints: "AI 点数",
resetAt: "重置时间",
userFallback: "管理员",
logout: "退出",
planFallback: "免费版",
aiUsageTitle: "AI 点数明细",
aiUsageRecent: "最近消耗",
aiUsageEmpty: "暂无 AI 点数流水",
aiUsageBase: "每 {base} 字进一档",
aiUsageRule: "{chars} 字 / 基准 {base}",
aiUsagePendingHelp: "点数已先行占用,AI 任务完成后会确认为扣除;如果生成失败,系统会自动退回点数。",
aiUsageTypes: {
article_selection_optimize: "文章片段优化",
template_analyze: "AI 分析",
template_title_generate: "AI 生成标题",
template_outline_generate: "AI 生成大纲",
kol_prompt_generate: "KOL 模版生成",
kol_prompt_optimize: "KOL 模版优化",
},
aiUsageStatus: {
pending: "处理中",
completed: "已扣除",
refunded: "已退回",
failed: "失败",
},
},
route: {
login: {
title: "欢迎回来",
description: "登录省心推,开启品牌内容创作之旅",
},
workspace: {
title: "工作台",
description: "模板入口、数据总览和最近生成都集中在这里。",
},
templates: {
title: "模版创作",
description: "统一查看普通通用模版与精调模版,相关生成记录都会在这里汇总展示。",
},
wizard: {
title: "模版向导",
description: "按模版驱动的三步流程完成信息填写、结构确认与文章生成。",
},
articleEditor: {
title: "文章编辑",
description: "在独立编辑页中调整标题、正文和发布配置。",
},
custom: {
title: "自定义生成",
description: "基于自定义 Prompt 规则灵活生成文章,支持即时与定时任务。",
},
freeCreate: {
title: "自由创作",
description: "自由创建并编辑文章,无需模版或AI生成。",
},
imitation: {
title: "仿写创作",
description: "管理基于引用来源或外部文章发起的仿写生成记录。",
},
imitationCreate: {
title: "仿写创作",
description: "从文章链接提取内容后,一步生成适配当前场景的新文章。",
},
media: {
title: "媒体管理",
description: "统一查看桌面端媒体账号绑定、授权状态与同步结果。",
},
brands: {
title: "品牌词库",
description: "围绕品牌维护关键词、问题集和竞品信息。",
},
tracking: {
title: "数据详情",
description: "围绕插件采样快照查看品牌表现、平台矩阵、高频问题和引用归因。",
},
trackingQuestion: {
title: "问题详情",
description: "按问题查看大模型回答、引用来源、引用分析和内容引用。",
},
knowledge: {
title: "知识库",
description: "当前仓库还没有匹配的后端接口,页面暂保持为设计占位。",
},
images: {
title: "图片管理",
description: "管理图片素材库,支持分组管理、引用分析与封面图库引用。",
},
aiPoints: {
title: "AI 点数明细",
description: "查看当前套餐 AI 点数余额、周期规则和最近消耗流水。",
},
},
aiPoints: {
balance: "可用点数",
baseChars: "基准字数",
ledgerTitle: "消耗流水",
ledgerLimit: "最近 {limit} 条记录",
ledgerTotal: "共 {total} 条记录",
table: {
usageType: "使用场景",
points: "点数",
requestChars: "计费字数",
},
},
kol: {
marketplace: {
title: "精调模版",
filter: {
industry: "行业",
keyword: "关键字",
all: "全部",
},
empty: "暂无已上架的订阅包",
subscribers: "{count} 个订阅租户",
prompts: "{count} 个精调模版",
},
package: {
subscribe: "申请订阅",
pending: "审核中",
subscribed: "已订阅",
revoked: "已撤销",
expired: "已到期",
notSubscribed: "未订阅",
},
generate: {
title: "精调模版生成",
submit: "生成",
fillVariables: "填写以下变量后点击生成",
},
manage: {
title: "KOL 提示词管理",
subtitle: "管理精调模版订阅包与提示词,配置平台、变量和上下线状态。",
packageTitle: "订阅包",
promptTitle: "提示词",
createPackage: "创建订阅包",
editPackage: "编辑包",
publishPackage: "发布",
archivePackage: "归档",
createPrompt: "新增提示词",
activatePrompt: "上线",
archivePrompt: "下线",
confirmDeletePackage: "确定要删除这个订阅包吗?",
confirmDeletePrompt: "确定要删除这个提示词吗?",
emptyPromptSelection: "请选择左侧订阅包以查看提示词",
platformHint: "平台",
platformHintDefault: "通用",
packageStatus: {
draft: "草稿",
published: "已发布",
archived: "已归档",
},
messages: {
packageCreated: "订阅包创建成功",
packageUpdated: "订阅包更新成功",
packagePublished: "订阅包发布成功",
packageArchived: "订阅包归档成功",
packageDeleted: "订阅包删除成功",
promptCreated: "提示词创建成功",
promptActivated: "提示词已上线",
promptArchived: "提示词已下线",
promptDeleted: "提示词删除成功",
},
packageForm: {
tags: "标签",
tagsPlaceholder: "输入标签后按回车",
priceNote: "价格说明",
priceNotePlaceholder: "例如:联系我获取报价",
cover: "封面图",
coverHint: "支持从素材库选择,也支持本地上传后自动转为 WebP。",
selectCover: "选择封面图",
changeCover: "更换封面图",
removeCover: "移除封面图",
noCover: "暂未设置封面图",
nameRequired: "请填写订阅包标题",
coverPicker: {
title: "选择订阅包封面",
localTab: "本地上传",
emptyTitle: "选择一张图片作为订阅包封面",
emptyHint: "支持从素材库选择,也支持本地上传后自动转为 WebP。",
},
},
status: {
draft: "草稿",
active: "已上线",
archived: "已下线",
},
editor: {
basicInfo: "基本信息",
saveMeta: "保存基本信息",
saveDraft: "保存草稿",
publish: "发布",
preview: "预览表单",
aiGenerate: "AI 生成",
aiOptimize: "AI 优化",
aiPlaceholder: "描述你想要的 prompt 效果,AI 帮你生成...",
aiOptimizePromptPlaceholder: "例如:让这段提示词更清晰,保留变量占位符,减少歧义。",
aiOptimizeDisclaimer: "AI 生成内容仅供参考,请确认后再替换选中片段。",
aiOptimizeReplace: "替换选中内容",
},
variable: {
input: "输入框",
textarea: "多行文本",
select: "选择框",
number: "数字框",
checkbox: "多选框",
key: "变量 key",
label: "显示名",
required: "必填",
placeholder: "提示语",
options: "选项(逗号分隔)",
maxLength: "字数限制",
defaultValue: "默认值",
minValue: "最小数字",
maxValue: "最大数字",
defaultNumber: "默认数字",
},
},
dashboard: {
title: "KOL 数据看板",
subtitle: "实时查看订阅情况与生成数据统计。",
totalSubs: "总订阅租户数",
monthSubs: "本月新增",
totalUsage: "总使用次数",
monthUsage: "本月使用",
failRate: "失败率",
byPackage: "按包维度",
trend: "趋势",
},
profile: {
title: "KOL 个人主页",
subtitle: "此处信息公开展示在 KOL 市场,与账号设置无关",
persona: {
displayNameLabel: "显示名",
displayNamePlaceholder: "请输入你的展示名",
bioLabel: "简介",
bioPlaceholder: "写一句你希望订阅者看到的自我介绍",
avatarLabel: "头像",
avatarHint: "支持 PNG/JPG/GIF/WebP,最大 2 MB",
avatarUploading: "正在上传头像…",
saveSuccess: "已更新",
saveError: "更新失败",
displayNameRequired: "请填写显示名",
displayNameTooLong: "显示名最多 40 个字符",
bioTooLong: "简介最多 500 个字符",
avatarInvalidType: "仅支持 PNG/JPG/GIF/WebP",
avatarTooLarge: "头像大小不能超过 2 MB",
notActive: "你当前不是活跃的 KOL",
},
},
},
workspace: {
eyebrow: "Dashboard",
metrics: {
articles: "生成数",
published: "发布数",
brands: "品牌数",
mediaAccounts: "媒体账号数",
},
sections: {
generalTemplates: "普通通用模版",
recent: "最近生成",
overview: "数据总览",
quota: "套餐与额度",
},
actions: {
enterTemplates: "进入模版创作",
},
quota: {
remaining: "剩余生成额度",
total: "总额度",
used: "已使用",
},
emptyTemplates: "暂无模版卡片数据",
noRecentArticles: "暂无最近生成内容",
},
tracking: {
brandPlaceholder: "选择品牌",
keywordPlaceholder: "选择关键词",
collectNow: "立即采集",
collectBrandRequired: "请先选择品牌,再发起采集",
collectKeywordRequired: "请先选择关键词,再立即采集当前问题",
collectTodayOnly: "立即采集只支持今天的数据,请切回今天后再操作",
collectClientChecking: "正在检查当前账号的桌面客户端状态",
collectClientOnlineRequired: "当前登录账号的桌面客户端未在线,暂时不能立即采集",
noDesktopClientCollectReason: "当前账号尚未注册桌面客户端,不能发起采集",
noAuthorizedPlatformsCollectReason: "当前账号暂无已授权 AI 平台,不能发起采集",
collectPlatformUnauthorized: "当前筛选平台未授权,不能发起采集",
pluginMode: "插件采样",
pluginHint: "插件模式下结果受设备在线率影响,低覆盖样本仅供趋势参考。",
awaitingSnapshot: "等待下一次有效快照",
infoStrip:
"{mode} · 目标 {desired} · 计划 {planned} · 已采样 {actual} · 覆盖率 {coverage} · 更新于 {updatedAt} · {trigger}",
latestSnapshot: "Latest Snapshot",
coverage: "Coverage",
coverageTitle: "采样覆盖条",
coverageSummary: "目标 {desired} · 已采样 {actual} · 覆盖率 {coverage}",
platformMatrix: "Platform Matrix",
platformMatrixTitle: "平台对比矩阵",
hotQuestions: "Hot Questions",
hotQuestionsTitle: "高频问题",
hotQuestionsHint: "高频问题来自品牌库当前关键词下的全部问题。",
questionSearchPlaceholder: "搜索当前关键词下的问题",
questionDetailEyebrow: "Question Detail",
questionDetailCollectedAt: "采集时间 {time}",
questionDetailFallback: "问题详情",
backToQuestions: "返回问题列表",
citationRanking: "Citation Ranking",
citationRankingTitle: "引用排行",
citationRankingHint: "按发布外链主体归因 SaaS 发文在模型引用来源中的出现次数与占比。",
citationWindow7: "近 7 天",
citationWindow30: "近 30 天",
citationWindowLabel: "近 {days} 天",
citedArticles: "Cited Articles",
citedArticlesTitle: "被引用文章",
answerContent: "答案内容",
citationSources: "Citation Sources",
citationSourcesTitle: "引用来源",
citationAnalysis: "Citation Analysis",
citationAnalysisTitle: "引用分析",
contentCitations: "Content Citations",
contentCitationsTitle: "内容引用",
imitationAction: "仿写创作",
taskDebugTitle: "异步任务调试",
taskDebugHint: "仅用于排查 callback -> queue -> worker 的异步流转,不影响上方四块主内容。",
contentCitationBadge: "内容引用",
noQuestions: "当前筛选条件下暂无高频问题",
noCitationRanking: "当前时间窗口内暂无可归因引用",
noCitedArticles: "当前时间窗口内暂无内容引用",
noAnswer: "该平台暂无采样回答",
noCitations: "该平台无引用来源",
noCitationAnalysis: "该平台暂无引用分析",
noContentCitations: "当前平台暂无内容引用",
noTaskDebug: "当前条件下暂无异步任务调试数据",
noPlatformBreakdown: "当前筛选条件下暂无可展示的平台数据",
selectedPlatformUnauthorizedTitle: "当前平台未授权",
selectedPlatformUnauthorizedDescription: "该 AI 平台没有当前账号的有效授权记录,请切换到已授权平台或在桌面端完成授权。",
noDetailPlatformsTitle: "暂无可展示平台",
noDetailPlatformsDescription: "当前筛选条件下没有可展示的 AI 平台数据。",
platformAuthorization: {
authorized: {
title: "AI 平台授权正常",
description: "当前账号已有可用于监控采集的 AI 平台授权。",
},
no_desktop_client: {
title: "未检测到桌面客户端",
description: "当前账号尚未注册桌面客户端。每日任务会等待有效客户端上线后再下发,仪表盘不会展示为可采集状态。",
},
no_authorized_platforms: {
title: "暂无已授权 AI 平台",
description: "当前账号没有已绑定或已授权的 AI 平台。系统不会为未授权平台生成或下发采集任务。",
},
},
samples: "次采样",
citations: "次引用",
citedArticleMeta: "{count} 篇内容被引用",
contentCitationMeta: "含 {count} 条内容引用",
manual: "手动",
automatic: "自动",
noChange: "持平",
metrics: {
mentionRate: "提及率",
top1MentionRate: "首位提及率",
firstRecommendRate: "首选推荐率",
positiveMentionRate: "正面提及率",
},
columns: {
platform: "平台",
appearances: "出现次数",
citedAnswers: "引用回答数",
citedArticles: "引用文章数",
citationRate: "引用率",
saasSourceRate: "来源占比",
citations: "引用次数",
sourcePlatform: "来源平台",
channelName: "渠道名称",
domain: "来源域名",
share: "占比",
contentName: "内容名称",
publishPlatform: "发布平台",
distinctSites: "引用站点数",
brandContent: "含品牌内容",
},
status: {
sampled: "已采样",
partial: "部分采样",
unsampled: "未采样",
pending: "等待采样",
not_logged_in: "未登录",
unavailable: "不可用",
},
confidence: {
high: "高置信度",
medium: "中等置信度",
low: "低置信度",
},
taskDebug: {
labels: {
plannedAt: "计划时间",
leasedAt: "领取时间",
callbackReceivedAt: "回调收到时间",
queueEnqueuedAt: "入队时间",
completedAt: "完成时间",
leaseExpiresAt: "租约过期时间",
runId: "Run ID",
runStatus: "Run 状态",
providerModel: "模型",
requestId: "请求 ID",
providerRequestId: "Provider Request ID",
receivedAlertCount: "Received 告警次数",
receivedAlertedAt: "最近告警时间",
skipReason: "跳过原因",
errorMessage: "任务错误",
lastQueuePublishError: "队列投递错误",
},
taskStatus: {
pending: "待采集",
leased: "已领取",
received: "已收到回调",
completed: "已完成",
failed: "已失败",
skipped: "已跳过",
expired: "已过期",
},
queueStatus: {
pending: "待入队",
queued: "已入队",
publish_failed: "入队失败",
invalid_payload: "消息无效",
},
},
},
templateMeta: {
top_x_article: {
eyebrow: "榜单内容",
helper: "排序推荐类文章,适合快节奏种草和结构化比较。",
accent: "Top X",
action: "创建榜单",
},
product_review: {
eyebrow: "单品评测",
helper: "突出卖点、优缺点与适用人群,适合高转化内容。",
accent: "评测稿",
action: "发起评测",
},
research_report: {
eyebrow: "研究报告",
helper: "更长、更专业的分析内容,适合趋势和行业洞察。",
accent: "深度稿",
action: "创建报告",
},
brand_search_expansion: {
eyebrow: "品牌扩写",
helper: "把品牌词和搜索需求扩展成更完整的问答式内容。",
accent: "GEO",
action: "继续扩写",
},
default: {
eyebrow: "内容模版",
helper: "当前模版已经可用,可直接进入生成流程。",
accent: "Ready",
action: "进入模版",
},
},
status: {
generate: {
draft: "草稿",
queued: "排队中",
generating: "生成中",
running: "运行中",
completed: "已完成",
failed: "生成失败",
},
publish: {
unpublished: "未发布",
publishing: "发布中",
success: "发布成功",
failed: "发布失败",
partial_success: "部分发布",
published: "发布成功",
publish_success: "发布成功",
publish_failed: "发布失败",
pending_review: "待审核",
blocked_by_compliance: "合规阻断",
},
sourceType: {
template: "模版单次生成",
custom_generation: "自定义生成",
instant_task: "即时任务",
schedule_task: "定时任务",
free_create: "自由创作",
imitation: "仿写创作",
kol: "精调模版生成",
},
},
imitation: {
actions: {
create: "新建仿写",
submit: "提交并生成",
},
filters: {
publishStatus: "发布状态",
generateStatus: "生成状态",
keyword: "搜索文章",
createdTime: "创建时间",
createdTimeStart: "开始时间",
createdTimeEnd: "结束时间",
keywordPlaceholder: "请输入标题内容搜索",
},
list: {
eyebrow: "仿写创作",
count: "共 {count} 篇文章",
sourceArticle: "原文",
empty: "还未创建仿写文章,可从问题详情的引用来源一键带入,也可以手动新建。",
deleteConfirm: "确认删除这篇仿写文章吗?",
deleteSuccess: "文章已删除",
deleteError: "删除文章失败",
},
create: {
title: "创建仿写文章",
subtitle: "后台会先抓取源文章内容,再按下方设定生成一篇新的原创表达文章。",
sourceSection: "来源文章",
settingsSection: "仿写设置",
sourceURL: "文章 URL",
sourceTitle: "来源标题",
language: "文章语言",
industry: "行业/场景",
brandName: "品牌/主体",
region: "地域",
targetAudience: "目标读者",
contentGoal: "内容目标",
tone: "语气风格",
lengthGoal: "篇幅要求",
keywords: "关键词",
preservePoints: "必须保留/强调",
avoidPoints: "需要规避",
extraRequirements: "其他要求",
enableWebSearch: "允许联网补充",
webSearchHint: "开启后,生成时会让大模型参考实时网页信息,适合需要最新事实或行业动态的仿写。",
knowledgeBase: "引用知识库",
knowledgeBasePlaceholder: "可选,用于补充文章事实、品牌资料和行业背景",
knowledgeBaseHint: "选择后,后台会检索相关知识片段并作为生成参考,未选择则只基于来源文章和当前设置生成。",
sourceURLPlaceholder: "https://example.com/article",
sourceTitlePlaceholder: "可选,引用来源标题会自动带入",
industryPlaceholder: "例如:家居建材、教育培训、SaaS、医疗健康",
brandNamePlaceholder: "可选,填写后文章会自然贴合该品牌或主体",
regionPlaceholder: "例如:上海、华东、全国、北美市场",
targetAudiencePlaceholder: "例如:首次购买用户、渠道代理、企业采购负责人",
contentGoalPlaceholder: "例如:科普说明、转化种草、品牌信任、选型建议",
tonePlaceholder: "例如:专业可信、轻松口语、评测对比、新闻解读",
lengthGoalPlaceholder: "例如:1200字左右、短文、深度长文",
keywordsPlaceholder: "输入关键词后回车,可多选",
preservePointsPlaceholder: "列出必须保留的事实、数据、观点或案例",
avoidPointsPlaceholder: "列出不能出现的说法、竞品、合规禁区或表达方式",
extraRequirementsPlaceholder: "补充行业、渠道、结构、标题风格等自由要求",
queued: "仿写任务已提交,正在排队生成",
sourceURLRequired: "请先填写来源文章 URL",
submitError: "仿写任务提交失败",
backToList: "返回仿写列表",
},
},
freeCreate: {
actions: {
create: "新建文章",
},
filters: {
publishStatus: "发布状态",
keyword: "搜索文章",
createdTime: "创建时间",
createdTimeStart: "开始时间",
createdTimeEnd: "结束时间",
keywordPlaceholder: "请输入标题内容搜索",
},
list: {
eyebrow: "自由创作",
count: "共 {count} 篇文章",
empty: "还未创建文章,点击「新建文章」开始创作~",
edit: "编辑文章",
deleteConfirm: "确认删除这篇文章吗?",
deleteSuccess: "文章已删除",
deleteError: "删除文章失败",
},
createError: "创建文章失败",
},
templates: {
eyebrow: "Article Creation",
sections: {
generalTemplates: "普通通用模版",
refinedTemplates: "精调模版",
records: "模版创作记录",
},
actions: {
batchGenerate: "批量生成文章",
chooseTemplate: "选择模版创作",
},
filters: {
template: "模版类型",
publishStatus: "发布状态",
generateStatus: "生成状态",
keyword: "搜索文章",
generationTime: "生成时间",
generationTimeStart: "开始时间",
generationTimeEnd: "结束时间",
keywordPlaceholder: "请输入标题内容搜索",
},
list: {
eyebrow: "模版创作记录",
count: "共 {count} 篇文章",
empty: "还未创建文章,暂无相关数据~",
preview: "预览正文",
edit: "编辑文章",
editDisabled: "只有草稿、生成失败或已完成文章才可编辑",
publishDisabled: "只有已完成文章才可发布",
versions: "查看版本",
deleteConfirm: "确认删除这篇文章吗?",
deleteSuccess: "文章已删除",
deleteError: "删除文章失败",
},
picker: {
title: "选择你需要的模版创作",
empty: "请选择普通通用模版或精调模版生成",
generalDescription: "选择普通通用模版进入创作",
refinedDescription: "选择精调模版后直接发起精调模版生成",
viewExample: "查看示例",
},
wizard: {
drawerTitle: "模版生成",
steps: {
basic: "基本信息",
basicDesc: "语言、模版字段与品牌上下文",
structure: "文章结构",
structureDesc: "标题方案与结构段落",
generate: "生成文章",
generateDesc: "确认大纲、补充关键要点并提交生成任务",
},
sections: {
templateFields: "模版字段",
brandContext: "品牌上下文",
language: "文章语言",
brandInfo: "品牌信息",
brandLibrary: "品牌库",
brandName: "品牌名称",
website: "官网地址",
brandSummary: "AI 品牌摘要",
keywords: "关键词",
competitors: "竞品列表",
chooseTitle: "选择文章标题",
customTitle: "自定义标题",
reviewIntroHook: "评测引言钩子",
structure: "文章结构",
customOutline: "自定义结构",
preview: "文章预览",
generatedOutline: "确认文章大纲",
outlinePreview: "大纲预览",
keyPoints: "文章关键要点",
review: "提交前确认",
notes: "生成说明",
inputParams: "输入参数",
},
hints: {
brandContext: "可选。选择后会自动带出关键词与竞品信息。",
brandFlow: "品牌可直接输入,也可以从品牌库带入。点击分析后,AI 会补充关键词、竞品和标题建议。",
brandSummaryPlaceholder: "AI 分析后会在这里补充品牌简介、差异点和适合切入的内容角度。",
keywords: "支持直接输入,也支持复用品牌词库里的关键词。AI 分析结果会自动补充到这里。",
competitors: "竞品支持手动编辑、追加;只有从品牌库选择品牌后,才可以收藏到品牌词库。AI 分析会尽量补齐候选竞品。",
competitorEmptyEditable: "还没有竞品,先手动添加一条或点击分析让 AI 自动补齐。",
templateFields: "这里保留当前模板自己的补充字段,用来约束 AI 生成角度。",
titleSelection: "下一步前会由 AI 给出 5 个更合适的标题候选,你可以在这里挑选或改写。",
reviewIntroHook: "选择一种开场方式,AI 会按这个评测引言风格组织文章开头。",
structure: "保留文章默认结构,也可以按本次出稿需求删减。",
preview: "右侧会根据当前标题和结构实时预览最终文章框架。",
previewEmpty: "选择结构后,这里会实时预览文章框架。",
generatedOutline: "AI 会先生成完整大纲,你可以继续编辑、补充或删除节点后再正式生成文章。",
outlinePreview: "右侧会根据当前大纲实时预览最终文章框架。",
outlineEmpty: "生成大纲后,这里会显示可编辑的文章结构。",
review: "确认无误后提交,文章会进入生成队列。",
competitorEmpty: "当前品牌下暂无竞品数据",
customTitle: "如需手动改写,可在这里输入最终标题",
keyPoints: "补充希望文章强调的卖点、观点或风格要求",
async: "后端会立即创建文章和任务记录,再异步完成正文生成。提交成功后,列表会自动刷新。",
},
actions: {
analyze: "分析",
addCompetitor: "添加竞品",
addSection: "添加结构",
addOutlineNode: "添加节点",
addOutlineChild: "添加子节点",
favorite: "收藏",
saved: "已收藏",
submit: "提交并生成",
},
review: {
templateName: "模版名称",
articleTitle: "文章标题",
brandContext: "品牌上下文",
outline: "结构段落",
currentTemplate: "当前模版",
promptVisibility: "Prompt 可见性",
selectedKeywords: "已选关键词",
selectedCompetitors: "已选竞品",
},
localeOptions: {
zh: "中文简体",
en: "English",
},
table: {
website: "网址",
name: "名称",
description: "简介",
actions: "操作",
},
placeholders: {
brandLibrary: "从品牌库选择已有品牌",
brandName: "输入品牌名,或在选择品牌后继续微调",
website: "输入官网地址,选填",
keywords: "输入关键词后回车,可多选",
customTitle: "如需覆盖 AI 标题,可在这里直接输入",
customOutline: "补充一个额外结构,例如“选购建议”",
keyPoints: "告诉 AI 还需要强调哪些要点、风格或限制条件",
competitorWebsite: "官网或落地页地址",
competitorName: "竞品名称",
competitorDescription: "一句话说明竞品定位或特点",
outlineNode: "请输入标题",
},
promptVisible: "Prompt 可见",
promptSealed: "Prompt 已封装",
assist: {
analyzeTitle: "AI 正在分析关键词和竞品,请稍后…",
analyzeTitleNoCompetitors: "AI 正在分析关键词和评测上下文,请稍后…",
titleTitle: "AI 正在生成标题,请稍后…",
outlineTitle: "AI 正在生成文章大纲,请稍后…",
analyzeStages: {
brand: "品牌信息分析中…",
keywords: "关键词提炼中…",
competitors: "竞品与官网信息补充中…",
context: "评测上下文整理中…",
},
titleStages: {
context: "正在整理当前内容上下文…",
strategy: "正在结合关键词和竞品生成标题策略…",
strategyNoCompetitors: "正在结合关键词生成标题策略…",
finalize: "正在输出 5 个标题候选…",
},
outlineStages: {
context: "正在整理标题、关键词和竞品上下文…",
contextNoCompetitors: "正在整理标题、关键词和评测上下文…",
structure: "正在根据已选结构生成文章大纲…",
finalize: "正在输出可编辑的大纲结果…",
},
},
messages: {
requiredField: "请先填写 {field}",
missingBrand: "请先选择品牌库对象或输入品牌名称",
missingTitle: "请先选择或输入文章标题",
missingReviewIntroHook: "请先选择一个评测引言钩子",
missingOutline: "请至少选择一个文章结构段落",
missingGeneratedOutline: "请先生成并确认文章大纲",
customOutlineTooLong: "自定义结构不能超过 {count} 个字",
selectBrandBeforeFavorite: "请先从品牌库选择品牌后再收藏竞品",
missingCompetitorName: "至少需要填写竞品名称后才能收藏",
savedCompetitor: "竞品已收藏到品牌词库",
assistReady: "AI 分析已完成,可以继续调整内容。",
assistFailed: "AI 分析失败,请稍后重试。",
assistTimeout: "AI 分析超时,请稍后重试。",
titleFailed: "标题生成失败,请稍后重试。",
titleTimeout: "标题生成超时,请稍后重试。",
outlineFailed: "大纲生成失败,请稍后重试。",
outlineTimeout: "大纲生成超时,请稍后重试。",
draftSaved: "草稿已保存,已返回模版创作列表",
draftSaveFailed: "草稿保存失败,请稍后重试。",
queued: "任务已提交,正在排队生成",
submitted: "生成任务已提交,正在刷新文章列表。",
},
},
},
article: {
drawerTitle: "文章详情",
preview: "正文预览",
versionHistory: "版本记录",
publishedDetails: "已发布详情",
untitled: "未命名文章",
noContent: "当前文章还没有正文内容",
editor: {
publish: "发布",
titlePlaceholder: "请输入文章标题",
leaveConfirm: {
title: "当前文章还没保存",
description: "你有未保存的改动。现在离开会丢失本次编辑内容,是否需要先保存再返回?",
discard: "放弃更改",
saveAndLeave: "保存并返回",
},
platformsTitle: "发布平台",
platformsHint: "这里会同步媒体管理中的平台和绑定状态,支持直接编辑文章的发布平台。",
coverTitle: "封面图",
coverHint: "默认关闭。上传后会保存为文章封面素材。",
coverRequired: "已选择需要封面的发布平台,封面图为必传项。",
coverUpload: "上传封面图",
coverReplace: "重新选择",
coverRemove: "移除封面",
coverSaved: "已保存封面素材",
coverOff: "封面图当前已关闭,开启后可上传并裁剪封面素材。",
coverTagRequired: "必传",
coverTagOptional: "可选",
imagePrompt: "请输入图片地址",
tablePicker: {
empty: "拖拽选择表格尺寸",
hint: "按住拖动到边缘可继续扩展",
},
tableMenu: {
addRowBefore: "上方插行",
addRowAfter: "下方插行",
deleteRow: "删除行",
addColBefore: "左侧插列",
addColAfter: "右侧插列",
deleteCol: "删除列",
alignLeft: "左对齐",
alignCenter: "居中",
alignRight: "右对齐",
deleteTable: "删除表格",
},
imageMenu: {
replace: "替换图片",
caption: "切换图注",
alignLeft: "居左",
alignCenter: "居中",
alignRight: "居右",
resetSize: "重置大小",
delete: "删除图片",
},
imagePicker: {
title: "选择图片",
emptyTitle: "选择一张图片插入正文",
emptyHint: "支持从图片库选择,也支持本地上传后自动转为 WebP。",
},
aiOptimize: {
title: "AI 优化",
subtitle: "支持连续多段选中,基于你的优化要求生成候选改写",
originalLabel: "当前选中文字",
previewLabel: "优化预览",
previewPlaceholder: "输入你的优化要求后,AI 会在这里实时生成候选内容。",
generating: "正在生成中...",
streamingHint: "正在根据你的要求逐步生成更合适的表达...",
disclaimer: "AI 生成内容仅供参考,请确认后再替换原文。",
promptLabel: "优化要求",
promptPlaceholder: "例如:更自然一点,适合课堂导入,保留原有信息但更有感染力。",
generate: "开始生成",
regenerate: "重新生成",
stop: "停止",
replace: "替换原文",
close: "先不替换",
messages: {
selectionRequired: "请先选中一段或连续多段需要优化的正文内容。",
promptRequired: "请先输入你的优化要求。",
selectionChanged: "原选区已变化,请重新选中后再替换。",
empty: "当前还没有可替换的 AI 内容。",
failed: "AI 优化失败,请稍后重试。",
},
},
messages: {
saved: "文章已保存",
generating: "文章还在生成中,请稍后再编辑。",
locked: "只有已完成文章才可编辑。",
publishPending: "请先保存文章,再选择需要发布的平台。",
},
platforms: {
zhihu: "知乎",
},
},
meta: {
templateType: "模版类型",
currentVersion: "当前版本",
source: "生成来源",
sourceArticle: "源文链接",
wordCount: "文章字数",
},
versionUntitled: "未命名版本",
},
media: {
hero: {
eyebrow: "Publisher",
},
plugin: {
title: "浏览器发布器",
ready: "插件已连接",
notInstalled: "插件未连接",
installTitle: "请先安装并打开 GEO Publisher 插件",
installDesc: "绑定和发布都依赖浏览器本地登录态执行。插件会保存独立安装实例身份,后续即使网页关闭,也能继续运行后台检测任务。",
backgroundHint: "插件不会直接复用网页 access token。当前实现会为每个浏览器安装实例注册独立身份,为未来后台收录检测和定时扫描预留能力。",
versionLabel: "插件版本",
installationLabel: "安装实例 ID",
connectedSummary: "本地已登录平台",
registerRequired: "插件安装实例尚未注册,请先重新检测。",
},
actions: {
redetect: "重新检测",
bind: "去绑定",
rebind: "重新绑定",
unbind: "解绑",
},
card: {
bound: "已绑定",
unbound: "未绑定",
unboundHint: "{platform} 还未绑定到当前租户,可以直接发起授权。",
needsAttention: "需要处理",
expiredHint: "该账号状态异常,建议重新绑定以恢复发布能力。",
localMissing: "本地未登录",
localMismatch: "本地账号不匹配",
readyHint: "当前浏览器已检测到正确账号,可以直接用于发布和后续后台检测。",
accountLabel: "SaaS 账号",
uidLabel: "平台 UID",
localLabel: "本地状态",
localConnected: "已检测到登录态",
localDisconnected: "未检测到登录态",
updatedAt: "最近同步",
multiAccount: "已绑定 {count} 个账号",
openPlatform: "打开平台官网",
},
account: {
localMissing: "SaaS 已绑定,但当前浏览器未检测到对应登录态。",
localMismatch: "当前浏览器登录的是另一个账号,请重新授权或切换账号。",
ready: "已就绪",
selectable: "可发布",
unavailable: "不可用",
},
empty: {
accounts: "当前租户还没有绑定可发布账号。",
},
messages: {
bindSuccess: "{platform} 绑定成功",
bindSuccessTitle: "绑定成功",
bindSuccessDetail: "已绑定【{platform}】的账号【{account}】",
bindPending: "插件尚未检测到该平台登录态,请先在插件中登录后重试。",
bindPendingTitle: "绑定未完成",
bindFailureTitle: "绑定失败",
unbindSuccess: "账号解绑成功",
unbindSuccessTitle: "解绑成功",
unbindFailureTitle: "解绑失败",
unbindConfirm: "确认解绑这个平台账号吗?解绑后将无法直接发布。",
},
publish: {
title: "发布",
subtitle: "Multi-platform Dispatch",
description: "选择当前浏览器已登录且租户已绑定的平台,插件会逐个平台执行真实发布并回写链接。",
platformsTitle: "发布平台",
platformsHint: "会优先回填文章里已选择且已绑定的账号,未绑定或本地登录态异常的平台不可选。",
coverTitle: "封面图",
coverHint: "默认关闭。点击上传后可选择或裁剪封面。",
coverUpload: "上传封面图",
coverPlaceholder: "请输入封面素材 URL(可选)",
messages: {
success: "已提交 {count} 个平台发布任务",
successTitle: "发布成功",
partial: "发布执行完成,成功 {success} 个,失败 {failed} 个",
partialTitle: "部分发布失败",
selectPlatform: "请先选择至少一个可发布的平台",
coverRequired: "已选择需要封面的发布平台,请先上传封面图",
failureTitle: "发布失败",
failureItem: "文章发布到平台【{platform}】失败【{reason}】",
unknownFailure: "未知错误",
},
},
records: {
tabTitle: "已发布详情",
platform: "已发布平台",
status: "发布状态",
publishedAt: "发布时间",
link: "已发布链接",
open: "打开",
copy: "复制",
empty: "暂无发布记录",
linkEmpty: "当前记录还没有可用链接",
clientManageHint: "仅有管理页面,请在客户端打开管理页面查看",
copySuccess: "链接已复制",
},
},
coverPicker: {
title: "选择封面图",
tabs: {
local: "正文/本地上传",
ai: "AI封图",
},
dropzoneTitle: "上传图片",
dropzoneHint: "支持 PNG、JPG、GIF、WebP,上传前会在前端转为 WebP,最大 10MB",
previewTitle: "封面裁剪预览",
previewHintLocked: "已选择需要固定封面比例的平台,确认时会按当前平台要求输出封面。",
previewHintFree: "当前不限制封面比例,可直接上传原图;如需调整也可拖拽缩放后再确认。",
requirementsTitle: "平台封面要求",
requirementsHint: "会根据当前选中的发布平台自动切换要求,微信公众号、百家号和懂车帝为强制上传。",
recommendedRatio: "推荐比例",
recommendedSize: "推荐尺寸",
required: "必传",
optional: "可选",
zoom: "缩放",
fileLabel: "当前封面",
emptyTitle: "暂未选择发布平台",
emptyPlatforms: "选择发布平台后,这里会自动显示每个平台的封面要求。",
emptyHint: "支持 PNG、JPG、JPEG、GIF、WebP、BMP、SVG、AVIF,最大 10MB",
aiTitle: "AI 封图即将开放",
aiHint: "当前先支持本地上传和裁剪,后续会把 AI 生成封面接进这里。",
actions: {
upload: "本地上传",
reset: "重置取景",
remove: "移除封面",
},
notes: {
required: "该平台当前发布链路要求必须携带封面图,未上传时不能提交发布。",
optional: "该平台当前接入已支持独立封面,会复用当前裁剪结果完成发布。",
unsupported: "该平台当前接入暂不消费独立封面,会沿用正文内容或平台默认样式。",
},
messages: {
invalidType: "仅支持 PNG、JPG、JPEG、GIF、WebP、BMP、SVG、AVIF 图片",
tooLarge: "图片不能超过 10MB",
missingImage: "请先选择一张封面图",
missingArticle: "文章信息还没准备好,请刷新后重试",
imageLoadFailed: "封面图加载失败,请重新选择图片",
},
},
brands: {
title: "品牌词库",
description: "通过品牌名称和品牌相关信息维护关键词、问题集和竞品资产。",
railTitle: "品牌库",
selectBrand: "选择品牌后即可继续维护关键词和问题集。",
newBrand: "新建品牌",
editBrand: "编辑品牌",
deleteBrand: "删除品牌",
tabs: {
keywords: "关键词",
competitors: "竞品库",
},
quota: {
plan: "当前套餐",
planHint: "品牌词库额度会按套餐实时生效。",
brands: "品牌公司",
brandsHint: "免费版默认 1 个,付费版默认 2 个。",
keywords: "关键词总量",
keywordsHint: "当前用户可绑定的关键词总数。",
questions: "每个关键词问题数",
questionsHint: "单个关键词下最多可维护的问题数。",
},
meta: {
keywordCount: "{count} 个关键词",
questionCount: "{count} 个问题",
brandKeywordCount: "当前品牌已绑定 {count} 个关键词",
globalKeywordUsage: "总关键词已用 {used} / {total}",
keywordQuestionUsage: "问题 {used} / {total}",
},
sections: {
keywords: "关键词",
questions: "问题集",
competitors: "竞品库",
versions: "版本记录",
},
actions: {
newKeyword: "新建关键词",
newQuestion: "新建问题",
newCompetitor: "新建竞品",
viewVersions: "查看版本",
},
empty: {
brands: "还没有品牌数据,先创建一个品牌。",
questions: "当前关键词下暂无问题集。",
competitors: "当前品牌下暂无竞品数据。",
},
form: {
brandName: "品牌名称",
brandWebsite: "公司官网(选填)",
brandDescription: "品牌描述",
keywordName: "关键词名称",
questionText: "问题内容",
competitorName: "竞品名称",
competitorWebsite: "竞品官网",
competitorDescription: "竞品描述",
competitorLines: "重点产品线",
competitorLinesHint: "使用英文逗号分隔多个产品线",
},
messages: {
createBrand: "品牌已创建",
updateBrand: "品牌已更新",
deleteBrand: "品牌已删除",
createKeyword: "关键词已创建",
updateKeyword: "关键词已更新",
deleteKeyword: "关键词已删除",
createQuestion: "问题已创建",
updateQuestion: "问题已更新",
deleteQuestion: "问题已删除",
createCompetitor: "竞品已创建",
updateCompetitor: "竞品已更新",
deleteCompetitor: "竞品已删除",
chooseBrand: "请先选择品牌",
chooseKeyword: "请先选择关键词",
brandLimitReached: "当前套餐最多可绑定 {limit} 个品牌公司",
keywordLimitReached: "当前账号最多可绑定 {limit} 个关键词",
questionLimitReached: "当前关键词下最多可维护 {limit} 个问题",
},
},
custom: {
eyebrow: "Custom Generation",
title: "自定义生成",
description: "基于自定义 Prompt 规则灵活生成文章,支持即时与定时任务。",
cards: {
instantTitle: "即时生成内容",
instantDesc: "快速自定义内容创作任务",
scheduleTitle: "定时计划生成",
scheduleDesc: "配置自动化内容生成计划",
},
tabs: {
articles: "生成文章",
instantTasks: "即时任务",
scheduleTasks: "定时任务",
promptRules: "Prompt 规则",
},
promptRule: {
name: "规则名称",
namePlaceholder: "请输入 Prompt 名称",
content: "Prompt 内容",
scene: "适用场景",
tone: "默认语气",
wordCount: "默认字数",
wordCountHint: "主流大语言模型单次长文本输出普遍存在限制,为了保证生成内容质量,最大建议字数不超过 6000 字。",
status: "状态",
articleCount: "关联文章数",
createTitle: "新建 Prompt 规则",
editTitle: "编辑 Prompt 规则",
deleteConfirm: "确定删除该规则?",
enabled: "启用",
disabled: "停用",
ungrouped: "未分组",
groupPlaceholder: "请选择 Prompt 分组",
contentPlaceholder: "输入 Prompt 内容,支持变量占位符",
},
task: {
basicSection: "基础信息",
advancedSection: "高级设置",
name: "任务名称",
namePlaceholder: "简单易懂的名称更方便区分哦",
prompt: "选择Prompt",
promptPlaceholder: "请选择Prompt",
createPrompt: "新建Prompt",
platforms: "发布平台",
platformsHint: "同步媒体管理中的平台和绑定状态,可不选,支持多选",
platformConnected: "已绑定",
platformUnauthorized: "未授权",
platformEmptyTitle: "暂无发布平台",
platformEmptyHint: "当前还没有可用的平台数据,请先检查媒体管理配置。",
publishSection: "发布设置",
autoPublish: "是否自动发布",
autoPublishHint: "开启后,定时生成完成的文章会使用指定媒体账号自动进入发布队列。",
publishAccounts: "媒体账号",
publishAccountsHint: "请选择具体账号。客户端离线时会先排队,上线后继续发布。",
publishAccountEmptyTitle: "暂无可选媒体账号",
publishAccountEmptyHint: "请先在桌面端绑定媒体账号,再回到这里配置自动发布。",
cover: "封面图",
coverHint: "请保证封面清晰、美观和完整",
scheduleCoverHint: "默认不设置封面。需要时可单独指定,生成完成后会写入文章并用于发布。",
scheduleCoverRequiredHint: "已选账号的平台要求发布封面,请先选择封面图。",
coverUpload: "上传封面图",
coverUploadHint: "当前仅做本地预览",
scheduleCoverUploadHint: "从本地或素材库选择",
scheduleTime: "定时生成文章",
scheduleEveryDay: "每天",
enableWebSearch: "生成文章联网搜索",
generateCount: "生成篇数",
submit: "创建任务",
},
group: {
title: "规则分组",
createTitle: "新建分组",
editTitle: "编辑分组",
deleteConfirm: "删除分组后,该组下的规则将移至未分组。确定删除?",
name: "分组名称",
allRules: "全部规则",
},
schedule: {
name: "任务名称",
rule: "关联规则",
cron: "执行频率",
autoPublishPlatforms: "自动发布平台",
autoPublish: "自动发布",
manualPublish: "手动发布",
nextRun: "下次执行",
startAt: "开始时间",
endAt: "结束时间",
brand: "关联品牌",
createTitle: "新建定时任务",
editTitle: "编辑定时任务",
deleteConfirm: "确定删除该定时任务?",
enabled: "已启用",
disabled: "已停用",
cronOptions: {
daily: "每天一次",
twiceDaily: "每天两次",
weekly: "每周一次",
custom: "自定义 Cron",
},
},
instant: {
title: "即时生成",
createTitle: "新建即时任务",
selectRule: "选择 Prompt 规则",
selectBrand: "选择品牌",
selectPlatform: "目标平台",
submit: "立即生成",
extraParams: "额外参数",
name: "任务名称",
executionStatus: "执行状态",
executionTime: "执行时间",
createdTime: "创建时间",
empty: "还未创建即时任务,暂无相关数据~",
},
filters: {
promptRule: "Prompt 规则",
publishStatus: "发布状态",
generateStatus: "生成状态",
title: "标题",
generateTime: "生成时间",
status: "状态",
name: "名称",
namePlaceholder: "请输入任务名称内搜索",
createdTime: "创建时间",
},
article: {
titleColumn: "文章标题",
titleGenerating: "标题生成中",
},
messages: {
ruleCreated: "规则创建成功",
ruleUpdated: "规则更新成功",
ruleDeleted: "规则删除成功",
ruleEnabled: "规则已启用",
ruleDisabled: "规则已停用",
groupCreated: "分组创建成功",
groupUpdated: "分组更新成功",
groupDeleted: "分组删除成功",
scheduleCreated: "定时任务创建成功",
scheduleUpdated: "定时任务更新成功",
scheduleDeleted: "定时任务删除成功",
scheduleEnabled: "定时任务已启用",
scheduleDisabled: "定时任务已停用",
generateSubmitted: "生成任务已提交",
missingTaskName: "请先填写任务名称",
missingPromptRule: "请先选择 Prompt",
invalidGenerateCount: "生成篇数至少为 1",
invalidScheduleTime: "请选择有效的定时时间",
missingPublishAccounts: "开启自动发布后,请至少选择一个媒体账号",
missingScheduleCover: "已选媒体账号的平台要求封面图,请先设置封面",
missingPromptName: "请先填写 Prompt 名称",
missingPromptContent: "请先填写 Prompt 内容",
},
},
featureStub: {
eyebrow: "Feature Placeholder",
currentStatus: "当前状态",
nextPriority: "下一步重点",
integrationStrategy: "联调策略",
currentStatusText: "页面壳子已经接入主导航和鉴权守卫,后续可以直接在这里落真实交互。",
integrationStrategyText: "保持与 tenant-api 的响应结构对齐,先做真实读接口,再逐个补写接口 and 表单流。",
},
images: {
title: "图片管理",
description: "管理图片素材库,支持分组、引用分析与封面引用。",
uploadBtn: "上传图片",
folders: "文件夹",
uncategorized: "未分类",
searchPlaceholder: "搜索图片名称...",
newFolder: "新建文件夹",
folderName: "文件夹名称",
rename: "重命名",
move: "移动",
deleteImage: "删除图片",
deleteFolder: "删除文件夹",
forceDelete: "仍然删除",
confirmDeleteTitle: "确认删除",
confirmDeleteImage: "确认删除这张图片吗?该操作不可撤销。",
confirmDeleteFolder: "确认删除文件夹 {name} 吗?",
imageInUse: "图片正在使用中",
folderHasRefs: "该文件夹内有 {count} 张图片,这些图片可能已被文章引用。删除文件夹会一并删除这些图片,且不可恢复。",
refArticleBody: "正文引用",
refArticleCover: "封面引用",
storageUsage: "存储容量",
storageUsageDetail: "{used} / {total} ({percent}%)",
quotaExceeded: "存储空间已满,请清理后再上传。",
uploadSuccess: "图片上传成功",
uploadReusedSuccess: "素材库已有相同图片,已直接复用",
uploadFailed: "图片上传失败",
deleteSuccess: "删除成功",
folderCreated: "文件夹创建成功",
folderRenamed: "文件夹重命名成功",
folderDeleted: "文件夹已删除",
imageRenamed: "图片重命名成功",
imageMoved: "图片移动成功",
noImages: "暂无图片,点击上传开始添加",
allFolders: "全部文件夹",
selectImage: "选择图片",
libraryTab: "素材库",
},
} as const;
export default zhCN;