fix(website): 价格按语言分币种 —— 英文版显示美元(P0)

PRICES 原为中英共用一份人民币值 → 英文页显示 ¥ 不专业。改为 Record<Lang,...>:
- zh: ¥0 / ¥25(年¥20) / ¥99(年¥79)
- en: $0 / $3.99(年$3.19) / $13.99(年$11.19)  年付沿用 8 折
Pricing.astro 接收 lang 按语言取价;Site.astro 传入 lang。
构建产物核实:EN 页 0 处 ¥、ZH 页 0 处 $;红线扫描 0 命中。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-05 17:43:44 +08:00
parent 1c8f6cb56b
commit 95abb74db2
3 changed files with 21 additions and 12 deletions
+7 -6
View File
@@ -1,10 +1,11 @@
---
import Icon from './Icon.astro';
import PricingPlans from './PricingPlans.jsx';
import { PRICES, type T } from '../i18n/strings';
import { PRICES, type T, type Lang } from '../i18n/strings';
interface Props { t: T }
const { t } = Astro.props;
interface Props { t: T; lang: Lang }
const { t, lang } = Astro.props;
const P = PRICES[lang];
const plansData = {
monthly: t('price.monthly'),
@@ -16,7 +17,7 @@ const plansData = {
{
key: 'free',
name: t('price.free'),
price: PRICES.free,
price: P.free,
desc: t('price.freedesc'),
feats: [t('pf.free1'), t('pf.free2'), t('pf.free3'), t('pf.free4')],
cta: t('price.cta_free'),
@@ -26,7 +27,7 @@ const plansData = {
{
key: 'pro',
name: t('price.pro'),
price: PRICES.pro,
price: P.pro,
desc: t('price.prodesc'),
feats: [t('pf.pro1'), t('pf.pro2'), t('pf.pro3'), t('pf.pro4'), t('pf.pro5')],
cta: t('price.cta_pro'),
@@ -36,7 +37,7 @@ const plansData = {
{
key: 'team',
name: t('price.team'),
price: PRICES.team,
price: P.team,
desc: t('price.teamdesc'),
feats: [t('pf.team1'), t('pf.team2'), t('pf.team3'), t('pf.team4')],
cta: t('price.cta_team'),
+13 -5
View File
@@ -193,9 +193,17 @@ export function createT(lang: Lang): T {
};
}
/** 价格表(月 / 年),与 ui_kits/website/site.js 的 PRICES 同步,对齐 design/CLAUDE.md §7。 */
export const PRICES: Record<'free' | 'pro' | 'team', [string, string]> = {
free: ['¥0', '¥0'],
pro: ['¥25', '¥20'],
team: [99', 79'],
/** 价格表(月 / 年·按月),按语言分币种:zh=人民币、en=美元。年付约 8 折。
* 对齐 design/CLAUDE.md §7;收款走客户端内兑换激活码,网页价仅为展示。 */
export const PRICES: Record<Lang, Record<'free' | 'pro' | 'team', [string, string]>> = {
zh: {
free: [0', 0'],
pro: ['¥25', '¥20'],
team: ['¥99', '¥79'],
},
en: {
free: ['$0', '$0'],
pro: ['$3.99', '$3.19'],
team: ['$13.99', '$11.19'],
},
};
+1 -1
View File
@@ -81,7 +81,7 @@ const headerT = {
<Hero t={t} />
<Features t={t} />
<WhySignup t={t} />
<Pricing t={t} />
<Pricing t={t} lang={lang} />
<Download t={t} />
<Docs t={t} />
<CtaBand t={t} />