You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
872 lines
30 KiB
872 lines
30 KiB
export const locales = ["zh", "en"] as const;
|
|
|
|
export type Locale = (typeof locales)[number];
|
|
|
|
type Stat = {
|
|
label: string;
|
|
value: string;
|
|
};
|
|
|
|
type Scene = {
|
|
category: string;
|
|
name: string;
|
|
description: string;
|
|
};
|
|
|
|
type Step = {
|
|
title: string;
|
|
description: string;
|
|
};
|
|
|
|
type InstallMethod = {
|
|
badge: string;
|
|
name: string;
|
|
description: string;
|
|
command: string;
|
|
note: string;
|
|
};
|
|
|
|
type Plan = {
|
|
badge: string;
|
|
name: string;
|
|
price: string;
|
|
cadence: string;
|
|
summary: string;
|
|
features: string[];
|
|
cta: string;
|
|
highlight?: boolean;
|
|
};
|
|
|
|
type Faq = {
|
|
question: string;
|
|
answer: string;
|
|
};
|
|
|
|
type QuickStep = {
|
|
title: string;
|
|
description: string;
|
|
code: string;
|
|
};
|
|
|
|
type EnvVar = {
|
|
name: string;
|
|
required: string;
|
|
description: string;
|
|
};
|
|
|
|
type DocSkill = {
|
|
name: string;
|
|
command: string;
|
|
description: string;
|
|
};
|
|
|
|
type Benefit = {
|
|
kicker: string;
|
|
title: string;
|
|
description: string;
|
|
};
|
|
|
|
type ConsoleMetric = {
|
|
label: string;
|
|
value: string;
|
|
};
|
|
|
|
type ConsoleSkill = {
|
|
name: string;
|
|
routeKey: string;
|
|
status: string;
|
|
};
|
|
|
|
type ApiKey = {
|
|
name: string;
|
|
masked: string;
|
|
scope: string;
|
|
};
|
|
|
|
type UsageRow = {
|
|
name: string;
|
|
count: string;
|
|
cost: string;
|
|
};
|
|
|
|
export type AppDictionary = {
|
|
brand: {
|
|
name: string;
|
|
subtitle: string;
|
|
};
|
|
nav: {
|
|
home: string;
|
|
docs: string;
|
|
console: string;
|
|
pricing: string;
|
|
login: string;
|
|
};
|
|
footer: {
|
|
copy: string;
|
|
};
|
|
home: {
|
|
tag: string;
|
|
title: string;
|
|
subtitle: string;
|
|
primaryCta: string;
|
|
secondaryCta: string;
|
|
freeTrial: string;
|
|
socialProof: string;
|
|
stageLabel: string;
|
|
stageValue: string;
|
|
stageDescription: string;
|
|
heroPhrases: string[];
|
|
scenesTag: string;
|
|
scenesTitle: string;
|
|
scenesSubtitle: string;
|
|
scenes: Scene[];
|
|
flowTag: string;
|
|
flowTitle: string;
|
|
flowSubtitle: string;
|
|
flowSteps: Step[];
|
|
installTag: string;
|
|
installTitle: string;
|
|
installSubtitle: string;
|
|
installMethods: InstallMethod[];
|
|
bootstrapTitle: string;
|
|
bootstrapDescription: string;
|
|
bootstrapCommand: string;
|
|
agentSkillTitle: string;
|
|
agentSkillDescription: string;
|
|
agentSkillCommand: string;
|
|
trustTag: string;
|
|
trustTitle: string;
|
|
trustStats: Stat[];
|
|
};
|
|
pricing: {
|
|
tag: string;
|
|
title: string;
|
|
subtitle: string;
|
|
plans: Plan[];
|
|
faqTag: string;
|
|
faqTitle: string;
|
|
faqs: Faq[];
|
|
};
|
|
docs: {
|
|
tag: string;
|
|
title: string;
|
|
intro: string;
|
|
quickStartTitle: string;
|
|
quickSteps: QuickStep[];
|
|
envTitle: string;
|
|
envVars: EnvVar[];
|
|
skillsTag: string;
|
|
skillsTitle: string;
|
|
skills: DocSkill[];
|
|
};
|
|
login: {
|
|
tag: string;
|
|
title: string;
|
|
subtitle: string;
|
|
primaryProvider: string;
|
|
secondaryProvider: string;
|
|
termsPrefix: string;
|
|
termsLink: string;
|
|
and: string;
|
|
privacyLink: string;
|
|
benefits: Benefit[];
|
|
};
|
|
console: {
|
|
tag: string;
|
|
title: string;
|
|
subtitle: string;
|
|
billingCta: string;
|
|
loginCta: string;
|
|
metrics: ConsoleMetric[];
|
|
skillsTag: string;
|
|
skillsTitle: string;
|
|
officialSkills: ConsoleSkill[];
|
|
keysTag: string;
|
|
keysTitle: string;
|
|
apiKeys: ApiKey[];
|
|
usageTag: string;
|
|
usageTitle: string;
|
|
usageRows: UsageRow[];
|
|
planTag: string;
|
|
planTitle: string;
|
|
planDescription: string;
|
|
planBenefits: string[];
|
|
planCta: string;
|
|
};
|
|
};
|
|
|
|
const zh: AppDictionary = {
|
|
brand: {
|
|
name: "PopiArt",
|
|
subtitle: "官方 AI Skill 控制台",
|
|
},
|
|
nav: {
|
|
home: "首页",
|
|
docs: "文档",
|
|
console: "控制台",
|
|
pricing: "定价",
|
|
login: "登录",
|
|
},
|
|
footer: {
|
|
copy: "面向创作者与 coding agent 的官方 Skill 接入、控制台与订阅平台。",
|
|
},
|
|
home: {
|
|
tag: "OFFICIAL SKILLS",
|
|
title: "安装 popiartcli,把官方 PopiArt Skills 接进你的 Coding Agent",
|
|
subtitle:
|
|
"通过统一 CLI 发现、查看、调用官方 skills;当任务需要图像、视频与多模态模型时,再由产品层统一处理授权、路由和计费。",
|
|
primaryCta: "安装 CLI",
|
|
secondaryCta: "查看文档",
|
|
freeTrial: "支持 Homebrew、curl | sh、Windows PowerShell 与源码构建",
|
|
socialProof: "安装后可直接 bootstrap 到 Codex、OpenCode 与 OpenClaw",
|
|
stageLabel: "CLI 命令面",
|
|
stageValue: "auth / skills / run",
|
|
stageDescription: "继续用 jobs、artifacts、budget、project、models、bootstrap 完成完整工作流。",
|
|
heroPhrases: [
|
|
"auth login",
|
|
"skills list",
|
|
"run --wait",
|
|
"jobs wait",
|
|
"artifacts pull",
|
|
"budget status",
|
|
],
|
|
scenesTag: "SCENARIOS",
|
|
scenesTitle: "覆盖高频 AI 创作场景",
|
|
scenesSubtitle: "沿用目标站点的信息结构,但切换为更贴近 PopiArt 产品语义的能力列表。",
|
|
scenes: [
|
|
{
|
|
category: "IMAGE",
|
|
name: "文生图",
|
|
description: "从简短 prompt 到完整视觉概念,一键生成统一风格的图像结果。",
|
|
},
|
|
{
|
|
category: "IMAGE",
|
|
name: "图片编辑",
|
|
description: "支持局部重绘、风格替换、多参考图融合与批量出图工作流。",
|
|
},
|
|
{
|
|
category: "VIDEO",
|
|
name: "图生视频",
|
|
description: "以首帧图片为基础生成短视频,适合角色、商品和海报动效。",
|
|
},
|
|
{
|
|
category: "VIDEO",
|
|
name: "动作迁移",
|
|
description: "将参考视频动作迁移到目标人物图像,快速生产社媒动态内容。",
|
|
},
|
|
{
|
|
category: "UTILITY",
|
|
name: "抠图与超清",
|
|
description: "把日常修图能力做成稳定的 Skill,适配电商与工作台场景。",
|
|
},
|
|
{
|
|
category: "OPS",
|
|
name: "批量官方技能",
|
|
description: "把技能能力、额度、项目和账单统一到一个控制台管理。",
|
|
},
|
|
],
|
|
flowTag: "QUICK START",
|
|
flowTitle: "三步开始使用 popiartcli",
|
|
flowSubtitle: "直接沿用仓库 README 的真实安装与首次使用路径,而不是另造一套平台流程。",
|
|
flowSteps: [
|
|
{
|
|
title: "安装 popiartcli",
|
|
description: "优先使用 Homebrew、官方 install.sh 或 PowerShell 脚本,把 CLI 先装到本地环境。",
|
|
},
|
|
{
|
|
title: "执行 bootstrap 接入 agent 生态",
|
|
description: "生成 completion、默认 discovery profile,并可直接暴露给 Codex / OpenCode 使用。",
|
|
},
|
|
{
|
|
title: "登录并调用官方 skill",
|
|
description: "执行 auth login、skills list、run、jobs wait、artifacts pull,进入完整工作流。",
|
|
},
|
|
],
|
|
installTag: "INSTALL",
|
|
installTitle: "首页直接开始安装 popiartcli",
|
|
installSubtitle: "推荐先安装 CLI,再按需执行 bootstrap,让 PopiArt 在你的 agent 环境里直接可发现。",
|
|
installMethods: [
|
|
{
|
|
badge: "RECOMMENDED",
|
|
name: "Homebrew",
|
|
description: "适合 macOS / Linux,也是后续升级最稳定的方式。",
|
|
command: "brew tap wtgoku-create/popi\nbrew install wtgoku-create/popi/popiart",
|
|
note: "升级:brew upgrade wtgoku-create/popi/popiart",
|
|
},
|
|
{
|
|
badge: "CLI ONLY",
|
|
name: "curl | sh",
|
|
description: "从 GitHub Releases 安装 Go CLI 二进制,默认只安装 CLI 本体。",
|
|
command:
|
|
"curl -fsSL https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/install.sh | sh -s -- --cli-only",
|
|
note: "升级:popiart update",
|
|
},
|
|
{
|
|
badge: "WINDOWS",
|
|
name: "PowerShell",
|
|
description: "Windows 环境使用官方 install.ps1,支持指定版本安装。",
|
|
command:
|
|
"irm https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/install.ps1 | iex",
|
|
note: "也可以通过 VERSION 环境变量安装指定版本。",
|
|
},
|
|
],
|
|
bootstrapTitle: "安装后建议立即执行 bootstrap",
|
|
bootstrapDescription: "生成 shell completion、默认 skill discovery profile,并把 PopiArt 直接暴露给 agent。",
|
|
bootstrapCommand:
|
|
"popiart bootstrap --agent codex --completion zsh\npopiart bootstrap --agent codex --discoverable\npopiart skills list",
|
|
agentSkillTitle: "OpenClaw 手动安装 agent skill",
|
|
agentSkillDescription:
|
|
"如果通过 GitHub 目录安装,请指向 popiartcli 仓库的 skill/ 目录;不要使用仓库根目录或 blob/main/skill/SKILL.md,避免安装器扫描到 runtime PopiSkills。",
|
|
agentSkillCommand:
|
|
"https://github.com/wtgoku-create/popiartcli/tree/main/skill\n\nmkdir -p ~/.openclaw/skills/popiart-cli\ncurl -fsSL https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/skill/SKILL.md \\\n -o ~/.openclaw/skills/popiart-cli/SKILL.md",
|
|
trustTag: "CLI DESIGN",
|
|
trustTitle: "围绕 agent 工作流设计,而不是零散脚本拼装",
|
|
trustStats: [
|
|
{ label: "默认 JSON 输出", value: "ok / data" },
|
|
{ label: "长任务轮询", value: "jobs wait" },
|
|
{ label: "工件恢复下载", value: "artifacts pull" },
|
|
{ label: "生态引导", value: "bootstrap" },
|
|
],
|
|
},
|
|
pricing: {
|
|
tag: "PRICING",
|
|
title: "简单透明的订阅与充值",
|
|
subtitle: "既能买月度订阅,也能按项目补充 Credits,适合个人与团队一起用。",
|
|
plans: [
|
|
{
|
|
badge: "推荐方案",
|
|
name: "Pro Subscription",
|
|
price: "¥69.99",
|
|
cadence: "/月",
|
|
summary: "适合个人创作者和轻量团队,优先拿到官方技能、控制台与基础配额。",
|
|
features: [
|
|
"每月 12,000 Credits",
|
|
"官方技能全量可见",
|
|
"项目级用量统计",
|
|
"标准 API key 与 CLI 接入",
|
|
],
|
|
cta: "订阅 Pro",
|
|
highlight: true,
|
|
},
|
|
{
|
|
badge: "灵活补充",
|
|
name: "Credit Top-up",
|
|
price: "¥199",
|
|
cadence: "/包",
|
|
summary: "在已有订阅上追加额度,适合视频类高消耗任务或团队集中出图周。",
|
|
features: [
|
|
"追加 50,000 Credits",
|
|
"购买后立即生效",
|
|
"支持与订阅叠加",
|
|
"统一记录到账单中心",
|
|
],
|
|
cta: "立即充值",
|
|
},
|
|
],
|
|
faqTag: "FAQ",
|
|
faqTitle: "常见问题",
|
|
faqs: [
|
|
{
|
|
question: "订阅和充值包可以同时购买吗?",
|
|
answer: "可以。订阅提供基础月额度,充值包作为叠加额度优先消耗。",
|
|
},
|
|
{
|
|
question: "控制台会显示技能级用量吗?",
|
|
answer: "会。按 skill、项目、时间维度展示调用次数、Credits 和费用归因。",
|
|
},
|
|
{
|
|
question: "后续能接企业方案吗?",
|
|
answer: "可以。企业版通常会补充团队成员、预算控制、发票和专属支持能力。",
|
|
},
|
|
],
|
|
},
|
|
docs: {
|
|
tag: "DOCUMENTATION",
|
|
title: "PopiArt 开发者文档",
|
|
intro:
|
|
"首页与文档都直接围绕 popiartcli README 的真实安装链路、bootstrap 和命令面来组织。",
|
|
quickStartTitle: "快速开始",
|
|
quickSteps: [
|
|
{
|
|
title: "1. 安装 popiartcli",
|
|
description: "优先使用 Homebrew,或者用官方 install.sh / install.ps1 安装 CLI。",
|
|
code: "brew tap wtgoku-create/popi\nbrew install wtgoku-create/popi/popiart",
|
|
},
|
|
{
|
|
title: "2. 执行 bootstrap",
|
|
description: "把 PopiArt 直接接进 Codex / OpenCode,并生成 completion 与默认发现配置。",
|
|
code: "popiart bootstrap --agent codex --discoverable",
|
|
},
|
|
{
|
|
title: "3. 登录并调用官方 skill",
|
|
description: "完成 auth login 后,先列技能,再执行 run / jobs wait / artifacts pull。",
|
|
code:
|
|
"popiart auth login --key <your-product-token>\npopiart skills list\npopiart run popiskill-image-text2image-basic-v1 --input @params.json --wait",
|
|
},
|
|
],
|
|
envTitle: "环境变量",
|
|
envVars: [
|
|
{
|
|
name: "POPIART_ENDPOINT",
|
|
required: "必填",
|
|
description: "产品层 API 地址,CLI 与控制台共用。",
|
|
},
|
|
{
|
|
name: "POPIART_API_KEY",
|
|
required: "必填",
|
|
description: "登录后签发的产品层 token,而不是上游 provider key。",
|
|
},
|
|
{
|
|
name: "POPIART_OUTPUT_DIR",
|
|
required: "选填",
|
|
description: "默认输出目录,未设置时可沿用当前工作目录。",
|
|
},
|
|
{
|
|
name: "POPIART_PROJECT_ID",
|
|
required: "选填",
|
|
description: "项目级路由、预算和用量归因的作用域。",
|
|
},
|
|
],
|
|
skillsTag: "OFFICIAL SKILLS",
|
|
skillsTitle: "技能能力一览",
|
|
skills: [
|
|
{
|
|
name: "文生图",
|
|
command: "popiart run --skill popiskill-image-text2image-basic-v1",
|
|
description: "从 prompt 直接生成图片,适合快速概念验证与海报起稿。",
|
|
},
|
|
{
|
|
name: "图像编辑",
|
|
command: "popiart run --skill popiskill-image-img2img-basic-v1",
|
|
description: "对已有图片进行编辑、风格迁移和参考图约束生成。",
|
|
},
|
|
{
|
|
name: "图生视频",
|
|
command: "popiart run --skill popiskill-video-image2video-basic-v1",
|
|
description: "把静态图转成动态短视频,并保留任务追踪与 artifact 引用。",
|
|
},
|
|
{
|
|
name: "模型直连",
|
|
command: "popiart models infer --model gemini-3.1-flash-image-preview",
|
|
description: "跳过技能层,直接以模型为入口发任务,适合调试模型能力。",
|
|
},
|
|
],
|
|
},
|
|
login: {
|
|
tag: "SIGN IN",
|
|
title: "登录以访问 PopiArt 官方控制台",
|
|
subtitle: "登录后即可查看官方技能目录、项目级用量、API key 与订阅状态。",
|
|
primaryProvider: "使用 PopiArt 账号登录",
|
|
secondaryProvider: "使用 GitHub 登录",
|
|
termsPrefix: "点击登录即表示同意",
|
|
termsLink: "服务条款",
|
|
and: "和",
|
|
privacyLink: "隐私政策",
|
|
benefits: [
|
|
{
|
|
kicker: "CONSOLE",
|
|
title: "统一查看技能与项目",
|
|
description: "所有官方技能、项目路由和调用记录都收敛到一个控制台。",
|
|
},
|
|
{
|
|
kicker: "BILLING",
|
|
title: "订阅与充值同页管理",
|
|
description: "避免在 CLI、支付页和后台系统之间来回切换。",
|
|
},
|
|
{
|
|
kicker: "ACCESS",
|
|
title: "产品层账号替代裸密钥分发",
|
|
description: "让团队协作建立在 session、权限和计费规则之上。",
|
|
},
|
|
],
|
|
},
|
|
console: {
|
|
tag: "CONSOLE",
|
|
title: "官方技能与用量控制台",
|
|
subtitle: "第一版先用静态数据还原页面信息架构,下一步再接回真实 auth、skills、budget 和 billing API。",
|
|
billingCta: "查看定价",
|
|
loginCta: "登录账号",
|
|
metrics: [
|
|
{ label: "剩余 Credits", value: "8,420" },
|
|
{ label: "本月调用次数", value: "1,284" },
|
|
{ label: "活跃项目", value: "6" },
|
|
{ label: "账单周期支出", value: "¥412.60" },
|
|
],
|
|
skillsTag: "SKILLS",
|
|
skillsTitle: "官方技能目录",
|
|
officialSkills: [
|
|
{ name: "Basic Text2Image", routeKey: "image.text2image", status: "Live" },
|
|
{ name: "Basic Img2Img", routeKey: "image.img2img", status: "Beta" },
|
|
{ name: "Basic Image2Video", routeKey: "video.image2video", status: "Live" },
|
|
{ name: "Poster Generator", routeKey: "image.poster", status: "Planned" },
|
|
],
|
|
keysTag: "API KEYS",
|
|
keysTitle: "当前可用密钥",
|
|
apiKeys: [
|
|
{ name: "Primary App Key", masked: "pk_live_****9f2d", scope: "skills:read jobs:write" },
|
|
{ name: "Automation Key", masked: "pk_live_****1a70", scope: "jobs:write artifacts:read" },
|
|
],
|
|
usageTag: "USAGE",
|
|
usageTitle: "近期技能用量",
|
|
usageRows: [
|
|
{ name: "文生图", count: "682 calls", cost: "¥118.20" },
|
|
{ name: "图像编辑", count: "391 calls", cost: "¥94.60" },
|
|
{ name: "图生视频", count: "77 jobs", cost: "¥199.80" },
|
|
],
|
|
planTag: "BILLING",
|
|
planTitle: "当前订阅",
|
|
planDescription: "Pro Subscription 已激活,额度不足时可追加 Credits Top-up。",
|
|
planBenefits: [
|
|
"月度基础额度 12,000 Credits",
|
|
"充值包与订阅额度可叠加",
|
|
"账单、发票和续费记录集中管理",
|
|
],
|
|
planCta: "管理订阅与充值",
|
|
},
|
|
};
|
|
|
|
const en: AppDictionary = {
|
|
brand: {
|
|
name: "PopiArt",
|
|
subtitle: "Official AI Skill Console",
|
|
},
|
|
nav: {
|
|
home: "Home",
|
|
docs: "Docs",
|
|
console: "Console",
|
|
pricing: "Pricing",
|
|
login: "Login",
|
|
},
|
|
footer: {
|
|
copy: "The official skill catalog, console, and billing surface for creators and coding agents.",
|
|
},
|
|
home: {
|
|
tag: "OFFICIAL SKILLS",
|
|
title: "Install popiartcli and bring official PopiArt skills into your coding agent",
|
|
subtitle:
|
|
"Use one CLI to discover, inspect, and run official skills, while product-layer auth, routing, and billing stay behind the PopiArt backend.",
|
|
primaryCta: "Install CLI",
|
|
secondaryCta: "Read docs",
|
|
freeTrial: "Supports Homebrew, curl | sh, Windows PowerShell, and source builds",
|
|
socialProof: "Bootstrap directly into Codex, OpenCode, and OpenClaw after install",
|
|
stageLabel: "CLI surface",
|
|
stageValue: "auth / skills / run",
|
|
stageDescription: "Then move into jobs, artifacts, budget, project, models, and bootstrap for the full workflow.",
|
|
heroPhrases: [
|
|
"auth login",
|
|
"skills list",
|
|
"run --wait",
|
|
"jobs wait",
|
|
"artifacts pull",
|
|
"budget status",
|
|
],
|
|
scenesTag: "SCENARIOS",
|
|
scenesTitle: "Designed around high-frequency AI production flows",
|
|
scenesSubtitle:
|
|
"The structure mirrors the reference site, but the content is adapted to PopiArt's product model.",
|
|
scenes: [
|
|
{
|
|
category: "IMAGE",
|
|
name: "Text to image",
|
|
description: "Generate polished concept visuals from prompts with room for brand and style control.",
|
|
},
|
|
{
|
|
category: "IMAGE",
|
|
name: "Image editing",
|
|
description: "Run inpainting, style transfer, multi-reference edits, and iterative revision workflows.",
|
|
},
|
|
{
|
|
category: "VIDEO",
|
|
name: "Image to video",
|
|
description: "Turn key visuals into short motion clips for creator campaigns and demos.",
|
|
},
|
|
{
|
|
category: "VIDEO",
|
|
name: "Motion transfer",
|
|
description: "Apply motion from a reference clip to a target portrait or character frame.",
|
|
},
|
|
{
|
|
category: "UTILITY",
|
|
name: "Cutout and upscale",
|
|
description: "Ship dependable utility skills for ecommerce, editorial, and content pipelines.",
|
|
},
|
|
{
|
|
category: "OPS",
|
|
name: "Official skill operations",
|
|
description: "Bring skills, quotas, projects, and billing together in one product surface.",
|
|
},
|
|
],
|
|
flowTag: "QUICK START",
|
|
flowTitle: "Three steps to start with popiartcli",
|
|
flowSubtitle:
|
|
"This mirrors the real install and first-run path from the popiartcli README instead of inventing a separate web-only flow.",
|
|
flowSteps: [
|
|
{
|
|
title: "Install popiartcli",
|
|
description: "Use Homebrew, the official install.sh, or PowerShell to get the CLI onto your local machine.",
|
|
},
|
|
{
|
|
title: "Run bootstrap for your agent environment",
|
|
description: "Generate completion, default discovery profiles, and make PopiArt directly discoverable to Codex or OpenCode.",
|
|
},
|
|
{
|
|
title: "Sign in and run official skills",
|
|
description: "Use auth login, skills list, run, jobs wait, and artifacts pull to complete the first real workflow.",
|
|
},
|
|
],
|
|
installTag: "INSTALL",
|
|
installTitle: "Install popiartcli directly from the homepage",
|
|
installSubtitle: "Install the CLI first, then optionally run bootstrap so PopiArt becomes discoverable inside your agent environment.",
|
|
installMethods: [
|
|
{
|
|
badge: "RECOMMENDED",
|
|
name: "Homebrew",
|
|
description: "Best for macOS and Linux, and the cleanest upgrade path later.",
|
|
command: "brew tap wtgoku-create/popi\nbrew install wtgoku-create/popi/popiart",
|
|
note: "Upgrade with: brew upgrade wtgoku-create/popi/popiart",
|
|
},
|
|
{
|
|
badge: "CLI ONLY",
|
|
name: "curl | sh",
|
|
description: "Download the released Go CLI binary directly from GitHub Releases.",
|
|
command:
|
|
"curl -fsSL https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/install.sh | sh -s -- --cli-only",
|
|
note: "Upgrade with: popiart update",
|
|
},
|
|
{
|
|
badge: "WINDOWS",
|
|
name: "PowerShell",
|
|
description: "Use the official install.ps1 flow on Windows, with optional version pinning.",
|
|
command:
|
|
"irm https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/install.ps1 | iex",
|
|
note: "You can also pin a VERSION before running the installer.",
|
|
},
|
|
],
|
|
bootstrapTitle: "Run bootstrap right after installation",
|
|
bootstrapDescription: "Generate shell completion, a default discovery profile, and make PopiArt directly available to your coding agent.",
|
|
bootstrapCommand:
|
|
"popiart bootstrap --agent codex --completion zsh\npopiart bootstrap --agent codex --discoverable\npopiart skills list",
|
|
agentSkillTitle: "Manual OpenClaw agent skill install",
|
|
agentSkillDescription:
|
|
"If installing from GitHub, point installers at the popiartcli skill/ directory. Do not use the repository root or blob/main/skill/SKILL.md, because some installers scan runtime PopiSkills as agent skills.",
|
|
agentSkillCommand:
|
|
"https://github.com/wtgoku-create/popiartcli/tree/main/skill\n\nmkdir -p ~/.openclaw/skills/popiart-cli\ncurl -fsSL https://raw.githubusercontent.com/wtgoku-create/popiartcli/main/skill/SKILL.md \\\n -o ~/.openclaw/skills/popiart-cli/SKILL.md",
|
|
trustTag: "CLI DESIGN",
|
|
trustTitle: "Designed around agent workflows instead of scattered scripts",
|
|
trustStats: [
|
|
{ label: "JSON-first output", value: "ok / data" },
|
|
{ label: "Long-task polling", value: "jobs wait" },
|
|
{ label: "Artifact recovery", value: "artifacts pull" },
|
|
{ label: "Agent bootstrap", value: "bootstrap" },
|
|
],
|
|
},
|
|
pricing: {
|
|
tag: "PRICING",
|
|
title: "Simple subscriptions and credit top-ups",
|
|
subtitle: "Use a monthly plan for the baseline and top up when video or batch workflows spike.",
|
|
plans: [
|
|
{
|
|
badge: "Recommended",
|
|
name: "Pro Subscription",
|
|
price: "$9.99",
|
|
cadence: "/month",
|
|
summary: "For solo creators and small teams that need the official skill catalog and a predictable base quota.",
|
|
features: [
|
|
"12,000 monthly credits",
|
|
"Full official skill directory",
|
|
"Per-project usage analytics",
|
|
"Standard API key and CLI access",
|
|
],
|
|
cta: "Subscribe to Pro",
|
|
highlight: true,
|
|
},
|
|
{
|
|
badge: "Flexible",
|
|
name: "Credit Top-up",
|
|
price: "$28",
|
|
cadence: "/pack",
|
|
summary: "Add extra capacity during launch weeks, video-heavy runs, or large team sprints.",
|
|
features: [
|
|
"50,000 extra credits",
|
|
"Instant activation after purchase",
|
|
"Stacks on top of subscriptions",
|
|
"Tracked in the same billing center",
|
|
],
|
|
cta: "Top up credits",
|
|
},
|
|
],
|
|
faqTag: "FAQ",
|
|
faqTitle: "Common questions",
|
|
faqs: [
|
|
{
|
|
question: "Can subscriptions and top-ups be combined?",
|
|
answer: "Yes. The subscription provides the base monthly quota and top-ups add extra spendable credits.",
|
|
},
|
|
{
|
|
question: "Will the console show per-skill usage?",
|
|
answer: "Yes. The intended product surface tracks calls, credits, and cost attribution by skill and project.",
|
|
},
|
|
{
|
|
question: "Can this grow into an enterprise plan later?",
|
|
answer: "Yes. Team seats, budgets, invoicing, and enterprise controls can sit on top of the same billing layer.",
|
|
},
|
|
],
|
|
},
|
|
docs: {
|
|
tag: "DOCUMENTATION",
|
|
title: "PopiArt developer docs",
|
|
intro:
|
|
"The homepage and docs now follow the real install chain, bootstrap flow, and command surface from popiartcli.",
|
|
quickStartTitle: "Quick start",
|
|
quickSteps: [
|
|
{
|
|
title: "1. Install popiartcli",
|
|
description: "Use Homebrew first when possible, or fall back to install.sh / install.ps1.",
|
|
code: "brew tap wtgoku-create/popi\nbrew install wtgoku-create/popi/popiart",
|
|
},
|
|
{
|
|
title: "2. Bootstrap your agent environment",
|
|
description: "Generate completion, default discovery profiles, and make PopiArt directly discoverable.",
|
|
code: "popiart bootstrap --agent codex --discoverable",
|
|
},
|
|
{
|
|
title: "3. Sign in and run official skills",
|
|
description: "Authenticate, inspect the catalog, and run the first skill through the real job workflow.",
|
|
code:
|
|
"popiart auth login --key <your-product-token>\npopiart skills list\npopiart run popiskill-image-text2image-basic-v1 --input @params.json --wait",
|
|
},
|
|
],
|
|
envTitle: "Environment variables",
|
|
envVars: [
|
|
{
|
|
name: "POPIART_ENDPOINT",
|
|
required: "Required",
|
|
description: "The product-layer API base shared by the CLI and the console.",
|
|
},
|
|
{
|
|
name: "POPIART_API_KEY",
|
|
required: "Required",
|
|
description: "A product-layer token issued after login, not a raw provider key.",
|
|
},
|
|
{
|
|
name: "POPIART_OUTPUT_DIR",
|
|
required: "Optional",
|
|
description: "Default output directory for generated artifacts.",
|
|
},
|
|
{
|
|
name: "POPIART_PROJECT_ID",
|
|
required: "Optional",
|
|
description: "Project scope for routing, budgets, and usage attribution.",
|
|
},
|
|
],
|
|
skillsTag: "OFFICIAL SKILLS",
|
|
skillsTitle: "Skill catalog",
|
|
skills: [
|
|
{
|
|
name: "Text to image",
|
|
command: "popiart run --skill popiskill-image-text2image-basic-v1",
|
|
description: "Generate polished visuals directly from text prompts.",
|
|
},
|
|
{
|
|
name: "Image editing",
|
|
command: "popiart run --skill popiskill-image-img2img-basic-v1",
|
|
description: "Edit existing visuals with references, masks, and style constraints.",
|
|
},
|
|
{
|
|
name: "Image to video",
|
|
command: "popiart run --skill popiskill-video-image2video-basic-v1",
|
|
description: "Turn a still image into a short motion clip with tracked artifacts.",
|
|
},
|
|
{
|
|
name: "Model inference",
|
|
command: "popiart models infer --model gemini-3.1-flash-image-preview",
|
|
description: "Bypass the skill layer for direct model testing.",
|
|
},
|
|
],
|
|
},
|
|
login: {
|
|
tag: "SIGN IN",
|
|
title: "Sign in to access the PopiArt official console",
|
|
subtitle: "View official skills, project usage, API keys, and subscriptions after login.",
|
|
primaryProvider: "Continue with PopiArt account",
|
|
secondaryProvider: "Continue with GitHub",
|
|
termsPrefix: "By continuing you agree to the",
|
|
termsLink: "Terms of Service",
|
|
and: "and",
|
|
privacyLink: "Privacy Policy",
|
|
benefits: [
|
|
{
|
|
kicker: "CONSOLE",
|
|
title: "One place for skills and projects",
|
|
description: "See the official catalog, routing state, and job visibility from a single product surface.",
|
|
},
|
|
{
|
|
kicker: "BILLING",
|
|
title: "Subscriptions and top-ups together",
|
|
description: "Avoid splitting billing, product, and CLI workflows across separate systems.",
|
|
},
|
|
{
|
|
kicker: "ACCESS",
|
|
title: "Accounts over raw secrets",
|
|
description: "Build collaboration on sessions, permissions, and billing rules instead of shared provider keys.",
|
|
},
|
|
],
|
|
},
|
|
console: {
|
|
tag: "CONSOLE",
|
|
title: "Official skills and usage console",
|
|
subtitle:
|
|
"This first pass uses seeded data to recreate the target dashboard structure before wiring it to real auth, skill, usage, and billing APIs.",
|
|
billingCta: "View pricing",
|
|
loginCta: "Sign in",
|
|
metrics: [
|
|
{ label: "Credits left", value: "8,420" },
|
|
{ label: "Monthly calls", value: "1,284" },
|
|
{ label: "Active projects", value: "6" },
|
|
{ label: "Billing cycle spend", value: "$56.20" },
|
|
],
|
|
skillsTag: "SKILLS",
|
|
skillsTitle: "Official catalog",
|
|
officialSkills: [
|
|
{ name: "Basic Text2Image", routeKey: "image.text2image", status: "Live" },
|
|
{ name: "Basic Img2Img", routeKey: "image.img2img", status: "Beta" },
|
|
{ name: "Basic Image2Video", routeKey: "video.image2video", status: "Live" },
|
|
{ name: "Poster Generator", routeKey: "image.poster", status: "Planned" },
|
|
],
|
|
keysTag: "API KEYS",
|
|
keysTitle: "Available keys",
|
|
apiKeys: [
|
|
{ name: "Primary App Key", masked: "pk_live_****9f2d", scope: "skills:read jobs:write" },
|
|
{ name: "Automation Key", masked: "pk_live_****1a70", scope: "jobs:write artifacts:read" },
|
|
],
|
|
usageTag: "USAGE",
|
|
usageTitle: "Recent skill usage",
|
|
usageRows: [
|
|
{ name: "Text to image", count: "682 calls", cost: "$16.10" },
|
|
{ name: "Image editing", count: "391 calls", cost: "$12.90" },
|
|
{ name: "Image to video", count: "77 jobs", cost: "$27.20" },
|
|
],
|
|
planTag: "BILLING",
|
|
planTitle: "Current plan",
|
|
planDescription: "Pro Subscription is active, with top-ups available whenever the team needs extra credits.",
|
|
planBenefits: [
|
|
"12,000 base monthly credits",
|
|
"Top-up packs stack with subscriptions",
|
|
"Invoices, renewals, and spend live in one place",
|
|
],
|
|
planCta: "Manage billing",
|
|
},
|
|
};
|
|
|
|
const dictionaries: Record<Locale, AppDictionary> = {
|
|
zh,
|
|
en,
|
|
};
|
|
|
|
export function isLocale(value: string): value is Locale {
|
|
return locales.includes(value as Locale);
|
|
}
|
|
|
|
export function getDictionary(locale: Locale): AppDictionary {
|
|
return dictionaries[locale] ?? dictionaries.zh;
|
|
}
|
|
|