add stable media support and sync skillhub UI
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
import type { Locale } from "@/lib/site-content";
|
||||
|
||||
type LiveCopy = {
|
||||
nav: {
|
||||
skills: string;
|
||||
};
|
||||
header: {
|
||||
zh: string;
|
||||
en: string;
|
||||
logout: string;
|
||||
loggingOut: string;
|
||||
loginHint: string;
|
||||
};
|
||||
login: {
|
||||
fieldLabel: string;
|
||||
fieldHint: string;
|
||||
submit: string;
|
||||
submitting: string;
|
||||
helperTitle: string;
|
||||
helperBody: string;
|
||||
commandLabel: string;
|
||||
alreadySignedIn: string;
|
||||
continueCta: string;
|
||||
invalidKey: string;
|
||||
};
|
||||
console: {
|
||||
unauthenticatedTitle: string;
|
||||
unauthenticatedBody: string;
|
||||
loginCta: string;
|
||||
docsCta: string;
|
||||
signedInAs: string;
|
||||
liveTitle: string;
|
||||
liveSubtitle: string;
|
||||
quickstartTitle: string;
|
||||
quickstartBody: string;
|
||||
catalogCount: string;
|
||||
noSkills: string;
|
||||
noUsage: string;
|
||||
loadErrorPrefix: string;
|
||||
};
|
||||
skills: {
|
||||
tag: string;
|
||||
title: string;
|
||||
subtitle: string;
|
||||
searchLabel: string;
|
||||
searchPlaceholder: string;
|
||||
searchAction: string;
|
||||
resultsPrefix: string;
|
||||
unauthenticatedTitle: string;
|
||||
unauthenticatedBody: string;
|
||||
loginCta: string;
|
||||
docsCta: string;
|
||||
noResults: string;
|
||||
routeKey: string;
|
||||
modelType: string;
|
||||
latency: string;
|
||||
tags: string;
|
||||
loadErrorPrefix: string;
|
||||
};
|
||||
};
|
||||
|
||||
const copy: Record<Locale, LiveCopy> = {
|
||||
zh: {
|
||||
nav: {
|
||||
skills: "技能页",
|
||||
},
|
||||
header: {
|
||||
zh: "中文",
|
||||
en: "EN",
|
||||
logout: "登出",
|
||||
loggingOut: "退出中...",
|
||||
loginHint: "未登录",
|
||||
},
|
||||
login: {
|
||||
fieldLabel: "PopiNewAPI Key",
|
||||
fieldHint: "使用和 `popiart auth login --key ...` 相同的上游 key 登录,页面会换取产品层 session。",
|
||||
submit: "登录控制台",
|
||||
submitting: "登录中...",
|
||||
helperTitle: "与 CLI 使用同一条认证链路",
|
||||
helperBody: "页面登录后,控制台会通过 popiartServer 会话去读取 skills、budget 和 usage,而不是直接在浏览器里保存 provider key。",
|
||||
commandLabel: "CLI 等价命令",
|
||||
alreadySignedIn: "当前已登录,可直接进入控制台或继续查看技能目录。",
|
||||
continueCta: "进入控制台",
|
||||
invalidKey: "请输入可用的 PopiNewAPI Key。",
|
||||
},
|
||||
console: {
|
||||
unauthenticatedTitle: "登录后查看真实控制台数据",
|
||||
unauthenticatedBody: "这页现在直接读取 popiartServer 的 auth、skills、budget 和 usage 接口。未登录时不会伪造密钥和余额。",
|
||||
loginCta: "去登录",
|
||||
docsCta: "看接入文档",
|
||||
signedInAs: "当前账号",
|
||||
liveTitle: "已接入 popiartServer 实时数据",
|
||||
liveSubtitle: "页面逻辑沿用 `popiart auth login`、`skills list` 和 `budget` 的产品层协议。",
|
||||
quickstartTitle: "快速安装指令",
|
||||
quickstartBody: "CLI 和 Web 共用同一个产品层 endpoint,下面这段命令可直接对应到当前控制台。",
|
||||
catalogCount: "技能目录",
|
||||
noSkills: "当前账号下没有可见技能。",
|
||||
noUsage: "当前周期还没有技能用量。",
|
||||
loadErrorPrefix: "控制台数据加载失败",
|
||||
},
|
||||
skills: {
|
||||
tag: "SKILL CATALOG",
|
||||
title: "官方技能目录",
|
||||
subtitle: "当前列表直接读取 `/v1/skills`,与 `popiart skills list` 使用同一份产品层数据。",
|
||||
searchLabel: "搜索技能",
|
||||
searchPlaceholder: "搜索技能名、描述或标签",
|
||||
searchAction: "查询",
|
||||
resultsPrefix: "共找到",
|
||||
unauthenticatedTitle: "登录后查看真实技能目录",
|
||||
unauthenticatedBody: "技能页会直接走产品层会话鉴权,因此未登录时不展示假数据。",
|
||||
loginCta: "登录查看",
|
||||
docsCta: "阅读文档",
|
||||
noResults: "没有匹配的技能。",
|
||||
routeKey: "路由键",
|
||||
modelType: "模型类型",
|
||||
latency: "预计耗时",
|
||||
tags: "标签",
|
||||
loadErrorPrefix: "技能目录加载失败",
|
||||
},
|
||||
},
|
||||
en: {
|
||||
nav: {
|
||||
skills: "Skills",
|
||||
},
|
||||
header: {
|
||||
zh: "中文",
|
||||
en: "EN",
|
||||
logout: "Logout",
|
||||
loggingOut: "Logging out...",
|
||||
loginHint: "Signed out",
|
||||
},
|
||||
login: {
|
||||
fieldLabel: "PopiNewAPI Key",
|
||||
fieldHint:
|
||||
"Use the same upstream key as `popiart auth login --key ...`. The web app exchanges it for a product-layer session.",
|
||||
submit: "Sign in to console",
|
||||
submitting: "Signing in...",
|
||||
helperTitle: "The same auth path as the CLI",
|
||||
helperBody:
|
||||
"After sign-in, the console reads skills, budget, and usage through popiartServer instead of storing provider credentials in the browser.",
|
||||
commandLabel: "Equivalent CLI command",
|
||||
alreadySignedIn: "You are already signed in. Jump back to the console or continue browsing the catalog.",
|
||||
continueCta: "Open console",
|
||||
invalidKey: "Enter a valid PopiNewAPI key.",
|
||||
},
|
||||
console: {
|
||||
unauthenticatedTitle: "Sign in to view live console data",
|
||||
unauthenticatedBody:
|
||||
"This page now reads popiartServer auth, skills, budget, and usage endpoints directly. It no longer fakes keys or credits for signed-out users.",
|
||||
loginCta: "Sign in",
|
||||
docsCta: "Read docs",
|
||||
signedInAs: "Signed in as",
|
||||
liveTitle: "Connected to live popiartServer data",
|
||||
liveSubtitle:
|
||||
"The page follows the same product-layer protocol used by `popiart auth login`, `skills list`, and `budget`.",
|
||||
quickstartTitle: "Quick install commands",
|
||||
quickstartBody: "The CLI and the web console share the same product endpoint and auth flow.",
|
||||
catalogCount: "Catalog",
|
||||
noSkills: "No skills are visible for this account yet.",
|
||||
noUsage: "No skill usage has been recorded for the current period.",
|
||||
loadErrorPrefix: "Failed to load console data",
|
||||
},
|
||||
skills: {
|
||||
tag: "SKILL CATALOG",
|
||||
title: "Official skill catalog",
|
||||
subtitle: "This list is fetched from `/v1/skills`, the same surface used by `popiart skills list`.",
|
||||
searchLabel: "Search skills",
|
||||
searchPlaceholder: "Search by skill name, description, or tag",
|
||||
searchAction: "Search",
|
||||
resultsPrefix: "Results",
|
||||
unauthenticatedTitle: "Sign in to view the live catalog",
|
||||
unauthenticatedBody:
|
||||
"The catalog page uses product-layer session auth, so it does not render fake skill data for signed-out users.",
|
||||
loginCta: "Sign in",
|
||||
docsCta: "Read docs",
|
||||
noResults: "No skills matched this query.",
|
||||
routeKey: "Route key",
|
||||
modelType: "Model type",
|
||||
latency: "Estimated duration",
|
||||
tags: "Tags",
|
||||
loadErrorPrefix: "Failed to load the skill catalog",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
export function getLiveCopy(locale: Locale) {
|
||||
return copy[locale] ?? copy.zh;
|
||||
}
|
||||
Reference in New Issue
Block a user