chore(console): switch /go page to go.* i18n keys

This commit is contained in:
David Hill
2026-03-04 12:57:49 +00:00
parent e44cdaf887
commit 0a2aa8688d
2 changed files with 99 additions and 41 deletions

View File

@@ -244,6 +244,65 @@ export const dict = {
"All Zen models are hosted in the US. Providers follow a zero-retention policy and do not use your data for model training, with the",
"zen.privacy.exceptionsLink": "following exceptions",
"go.title": "OpenCode Go | Low cost coding models for everyone",
"go.hero.title": "Low cost coding models for everyone",
"go.hero.body":
"Go brings agentic coding to programmers around the world. Offering generous limits and reliable access to the most capable open-source models, so you can build with powerful agents without worrying about cost or availability.",
"go.cta.start": "Subscribe to Go - $10/mo",
"go.pricing.body": "Use with any agent. Top up credit if needed. Cancel any time.",
"go.problem.title": "What problem is Go solving?",
"go.problem.body":
"There are so many models available, but only a few work well with coding agents. Most providers configure them differently with varying results.",
"go.problem.subtitle": "We're fixing this for everyone, not just OpenCode users.",
"go.problem.item1": "Testing select models and consulting their teams",
"go.problem.item2": "Working with providers to ensure they're delivered properly",
"go.problem.item3": "Benchmarking all model-provider combinations we recommend",
"go.how.title": "How Go works",
"go.how.body": "Go is a $10/month subscription you can use with OpenCode or any agent.",
"go.how.step1.title": "Create an account",
"go.how.step1.beforeLink": "follow the",
"go.how.step1.link": "setup instructions",
"go.how.step2.title": "Subscribe to Go",
"go.how.step2.link": "$10/month",
"go.how.step2.afterLink": "with generous limits",
"go.how.step3.title": "Start coding",
"go.how.step3.body": "with reliable access to open-source models",
"go.privacy.title": "Your privacy is important to us",
"go.privacy.beforeExceptions":
"Go models are hosted in the US. Providers follow a zero-retention policy and do not use your data for model training, with the",
"go.privacy.exceptionsLink": "following exceptions",
"go.faq.q1": "What is OpenCode Go?",
"go.faq.a1":
"Go is a low-cost subscription that gives you reliable access to capable open-source models for agentic coding.",
"go.faq.q2": "What models does Go include?",
"go.faq.a2":
"Go focuses on the most capable open-source models available through OpenCode, with generous limits and reliable access.",
"go.faq.q3": "Is Go the same as Zen?",
"go.faq.a3":
"No. Zen is pay-as-you-go, while Go is a $10/month subscription with generous limits and reliable access to open-source models GLM-5, Kimi K2.5, and MiniMax M2.5.",
"go.faq.q4": "How much does Go cost?",
"go.faq.a4.p1.beforePricing": "Go costs",
"go.faq.a4.p1.pricingLink": "$10/month",
"go.faq.a4.p1.afterPricing": "with generous limits.",
"go.faq.a4.p2.beforeAccount": "You can manage your subscription in your",
"go.faq.a4.p2.accountLink": "account",
"go.faq.a4.p3": "Cancel any time.",
"go.faq.q5": "What about data and privacy?",
"go.faq.a5.beforeExceptions":
"Go models are hosted in the US. Providers follow a zero-retention policy and do not use your data for model training, with the",
"go.faq.a5.exceptionsLink": "following exceptions",
"go.faq.q6": "Can I top up credit?",
"go.faq.a6": "If you need more usage, you can top up credit in your account.",
"go.faq.q7": "Can I cancel?",
"go.faq.a7": "Yes, you can cancel any time.",
"go.faq.q8": "Can I use Go with other coding agents?",
"go.faq.a8": "Yes, you can use Go with any agent. Follow the setup instructions in your preferred coding agent.",
"go.faq.q9": "What is the difference between the free models included and Go?",
"go.faq.a9":
"Free models include Big Pickle plus promotional models available at the time, with a quota of 200 requests/day. Go includes GLM-5, Kimi K2.5, and MiniMax M2.5 with higher request quotas enforced across rolling windows (5-hour, weekly, and monthly), roughly equivalent to $12 per 5 hours, $30 per week, and $60 per month (actual request counts vary by model and usage).",
"zen.api.error.rateLimitExceeded": "Rate limit exceeded. Please try again later.",
"zen.api.error.modelNotSupported": "Model {{model}} not supported",
"zen.api.error.modelFormatNotSupported": "Model {{model}} not supported for format {{format}}",

View File

@@ -35,7 +35,7 @@ export default function Home() {
return (
<main data-page="go">
{/*<HttpHeader name="Cache-Control" value="public, max-age=1, s-maxage=3600, stale-while-revalidate=86400" />*/}
<Title>{i18n.t("zen.title")}</Title>
<Title>{i18n.t("go.title")}</Title>
<LocaleLinks path="/go" />
<Meta property="og:image" content="/social-share-zen.png" />
<Meta name="twitter:image" content="/social-share-zen.png" />
@@ -49,12 +49,8 @@ export default function Home() {
<div data-slot="hero-copy">
<img data-slot="zen logo light" src={goLogoLight} alt="" />
<img data-slot="zen logo dark" src={goLogoDark} alt="" />
<h1>Low cost coding models for everyone</h1>
<p>
Go brings agentic coding to programmers around the world. Offering generous limits and reliable access
to the most capable open-source models, so you can build with powerful agents without worrying about
cost or availability.
</p>
<h1>{i18n.t("go.hero.title")}</h1>
<p>{i18n.t("go.hero.body")}</p>
<div data-slot="model-logos">
{/*
<div>
@@ -131,7 +127,7 @@ export default function Home() {
*/}
</div>
<a href="/auth">
<span>Subscribe to Go - $10/mo</span>
<span>{i18n.t("go.cta.start")}</span>
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M6.5 12L17 12M13 16.5L17.5 12L13 7.5"
@@ -143,7 +139,7 @@ export default function Home() {
</a>
</div>
<div data-slot="pricing-copy">
<p>{i18n.t("zen.pricing.body")}</p>
<p>{i18n.t("go.pricing.body")}</p>
</div>
</section>
@@ -155,50 +151,50 @@ export default function Home() {
<section data-component="problem">
<div data-slot="section-title">
<h3>{i18n.t("zen.problem.title")}</h3>
<p>{i18n.t("zen.problem.body")}</p>
<h3>{i18n.t("go.problem.title")}</h3>
<p>{i18n.t("go.problem.body")}</p>
</div>
<p>{i18n.t("zen.problem.subtitle")}</p>
<p>{i18n.t("go.problem.subtitle")}</p>
<ul>
<li>
<span>[*]</span> {i18n.t("zen.problem.item1")}
<span>[*]</span> {i18n.t("go.problem.item1")}
</li>
<li>
<span>[*]</span> {i18n.t("zen.problem.item2")}
<span>[*]</span> {i18n.t("go.problem.item2")}
</li>
<li>
<span>[*]</span> {i18n.t("zen.problem.item3")}
<span>[*]</span> {i18n.t("go.problem.item3")}
</li>
</ul>
</section>
<section data-component="how">
<div data-slot="section-title">
<h3>{i18n.t("zen.how.title")}</h3>
<p>{i18n.t("zen.how.body")}</p>
<h3>{i18n.t("go.how.title")}</h3>
<p>{i18n.t("go.how.body")}</p>
</div>
<ul>
<li>
<span>[1]</span>
<div>
<strong>{i18n.t("zen.how.step1.title")}</strong> - {i18n.t("zen.how.step1.beforeLink")}{" "}
<a href={language.route("/docs/zen/#how-it-works")} title={i18n.t("zen.how.step1.link")}>
{i18n.t("zen.how.step1.link")}
<strong>{i18n.t("go.how.step1.title")}</strong> - {i18n.t("go.how.step1.beforeLink")}{" "}
<a href={language.route("/docs/zen/#how-it-works")} title={i18n.t("go.how.step1.link")}>
{i18n.t("go.how.step1.link")}
</a>
</div>
</li>
<li>
<span>[2]</span>
<div>
<strong>{i18n.t("zen.how.step2.title")}</strong> -{" "}
<a href={language.route("/docs/zen/#pricing")}>{i18n.t("zen.how.step2.link")}</a>{" "}
{i18n.t("zen.how.step2.afterLink")}
<strong>{i18n.t("go.how.step2.title")}</strong> -{" "}
<a href={language.route("/docs/zen/#pricing")}>{i18n.t("go.how.step2.link")}</a>{" "}
{i18n.t("go.how.step2.afterLink")}
</div>
</li>
<li>
<span>[3]</span>
<div>
<strong>{i18n.t("zen.how.step3.title")}</strong> - {i18n.t("zen.how.step3.body")}
<strong>{i18n.t("go.how.step3.title")}</strong> - {i18n.t("go.how.step3.body")}
</div>
</li>
</ul>
@@ -206,12 +202,12 @@ export default function Home() {
<section data-component="privacy">
<div data-slot="privacy-title">
<h3>{i18n.t("zen.privacy.title")}</h3>
<h3>{i18n.t("go.privacy.title")}</h3>
<div>
<span>[*]</span>
<p>
{i18n.t("zen.privacy.beforeExceptions")}{" "}
<a href={language.route("/docs/zen/#privacy")}>{i18n.t("zen.privacy.exceptionsLink")}</a>.
{i18n.t("go.privacy.beforeExceptions")}{" "}
<a href={language.route("/docs/zen/#privacy")}>{i18n.t("go.privacy.exceptionsLink")}</a>.
</p>
</div>
</div>
@@ -296,36 +292,39 @@ export default function Home() {
</div>
<ul>
<li>
<Faq question={i18n.t("zen.faq.q1")}>{i18n.t("zen.faq.a1")}</Faq>
<Faq question={i18n.t("go.faq.q1")}>{i18n.t("go.faq.a1")}</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q2")}>{i18n.t("zen.faq.a2")}</Faq>
<Faq question={i18n.t("go.faq.q2")}>{i18n.t("go.faq.a2")}</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q3")}>{i18n.t("zen.faq.a3")}</Faq>
<Faq question={i18n.t("go.faq.q9")}>{i18n.t("go.faq.a9")}</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q4")}>
{i18n.t("zen.faq.a4.p1.beforePricing")}{" "}
<a href={language.route("/docs/zen/#pricing")}>{i18n.t("zen.faq.a4.p1.pricingLink")}</a>{" "}
{i18n.t("zen.faq.a4.p1.afterPricing")} {i18n.t("zen.faq.a4.p2.beforeAccount")}{" "}
<a href="/auth">{i18n.t("zen.faq.a4.p2.accountLink")}</a>. {i18n.t("zen.faq.a4.p3")}
<Faq question={i18n.t("go.faq.q3")}>{i18n.t("go.faq.a3")}</Faq>
</li>
<li>
<Faq question={i18n.t("go.faq.q4")}>
{i18n.t("go.faq.a4.p1.beforePricing")}{" "}
<a href={language.route("/docs/zen/#pricing")}>{i18n.t("go.faq.a4.p1.pricingLink")}</a>{" "}
{i18n.t("go.faq.a4.p1.afterPricing")} {i18n.t("go.faq.a4.p2.beforeAccount")}{" "}
<a href="/auth">{i18n.t("go.faq.a4.p2.accountLink")}</a>. {i18n.t("go.faq.a4.p3")}
</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q5")}>
{i18n.t("zen.faq.a5.beforeExceptions")}{" "}
<a href={language.route("/docs/zen/#privacy")}>{i18n.t("zen.faq.a5.exceptionsLink")}</a>.
<Faq question={i18n.t("go.faq.q5")}>
{i18n.t("go.faq.a5.beforeExceptions")}{" "}
<a href={language.route("/docs/zen/#privacy")}>{i18n.t("go.faq.a5.exceptionsLink")}</a>.
</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q6")}>{i18n.t("zen.faq.a6")}</Faq>
<Faq question={i18n.t("go.faq.q6")}>{i18n.t("go.faq.a6")}</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q7")}>{i18n.t("zen.faq.a7")}</Faq>
<Faq question={i18n.t("go.faq.q7")}>{i18n.t("go.faq.a7")}</Faq>
</li>
<li>
<Faq question={i18n.t("zen.faq.q8")}>{i18n.t("zen.faq.a8")}</Faq>
<Faq question={i18n.t("go.faq.q8")}>{i18n.t("go.faq.a8")}</Faq>
</li>
</ul>
</section>