{item.scenario}
+{item.name}
+{item.model_id}
+ {item.description}
+ {model && group ? ( + <> ++ {t('Group')}: {group} · {t('Per 1M tokens')} +
+ > + ) : ( ++ {status} +
+ )} + + {t('View current prices and access')} → + +Static pricing link
{t('Dynamic Pricing')}
+ } + return ( ++ {formatRequestPrice(model, false, 1, 1, props.group)} / {t('request')} +
+ ) + } + const types = ['input', 'output'] as const + return ( +{item.scenario}
+{item.model_id}
+ {item.description}
+ {model && group ? ( + <> ++ {t('Group')}: {group} · {t('Per 1M tokens')} +
+ > + ) : ( ++ {status} +
+ )} + + {t('View current prices and access')} → + ++ {t('No models available for this account')} +
+ )} + >, + target.element, + target.element.closest('section')?.id + ) + ) +} diff --git a/web/src/features/home/index.tsx b/web/src/features/home/index.tsx index 6e97f75a5085..4567e84324f7 100644 --- a/web/src/features/home/index.tsx +++ b/web/src/features/home/index.tsx @@ -37,12 +37,14 @@ import { isLikelyHtml } from '@/lib/content-format' import { useAuthStore } from '@/stores/auth-store' import { CTA, Features, Hero, HowItWorks, Stats } from './components' +import { LandingModelZones } from './components/landing-model-zones' import { useHomePageContent } from './hooks' export function Home() { const { i18n, t } = useTranslation() const navigate = useNavigate() const iframeRef = useRef{Object.keys(billingMultipliers).length > 0 ? '按模型计价' - : `官网价 ×${Number( + : `${t('Versioned base price')} ×${Number( sub.billing_multiplier || 1 ).toFixed(2)}`}
diff --git a/web/src/features/wallet/components/recharge-form-card.tsx b/web/src/features/wallet/components/recharge-form-card.tsx index 684c6b4820ad..980b6277d27e 100644 --- a/web/src/features/wallet/components/recharge-form-card.tsx +++ b/web/src/features/wallet/components/recharge-form-card.tsx @@ -34,10 +34,7 @@ import { TooltipProvider, TooltipTrigger, } from '@/components/ui/tooltip' -import { - cnyToComputePoints, - formatComputePoints, -} from '@/lib/compute-points' +import { cnyToComputePoints, formatComputePoints } from '@/lib/compute-points' import { formatNumber } from '@/lib/format' import { cn } from '@/lib/utils' @@ -232,9 +229,6 @@ export function RechargeFormCard({ <>{t( 'Top-ups remain wallet cash; compute points are a display conversion only.' diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json index 763c50814ae2..3f1fc864027d 100644 --- a/web/src/i18n/locales/en.json +++ b/web/src/i18n/locales/en.json @@ -1,5 +1,10 @@ { "translation": { + "Versioned base price": "Versioned base price", + "Sign in to view current prices": "Sign in to view current prices", + "Current prices unavailable": "Current prices unavailable. Please retry in the model catalog.", + "View current prices and access": "View current prices and access", + "No models available for this account": "No models available for this account", "360": "360", "1000": "1000", "10000": "10000", diff --git a/web/src/i18n/locales/zh.json b/web/src/i18n/locales/zh.json index 52e887b21e64..5259a6826b8d 100644 --- a/web/src/i18n/locales/zh.json +++ b/web/src/i18n/locales/zh.json @@ -1,5 +1,10 @@ { "translation": { + "Versioned base price": "版本基准价", + "Sign in to view current prices": "登录后查看实时价格", + "Current prices unavailable": "暂时无法读取价格,请到模型广场重试", + "View current prices and access": "查看实时价格与接入", + "No models available for this account": "当前账户暂无可用的专区模型", "360": "360", "1000": "1000", "10000": "10000", @@ -5277,7 +5282,6 @@ "DeepSeek call credit": "DeepSeek 调用额度", "Classroom model shared credit": "课堂模型共享额度", "Compute points": "算力点", - "1 CNY = 2,000 compute points": "1 元 = 2,000 算力点", "Top-ups remain wallet cash; compute points are a display conversion only.": "充值仍记入按量钱包;算力点仅用于清晰展示额度,不改变后台真实账本。", "Estimated credit": "预计到账", "A valid code grants the product directly. No payment is required before redemption.": "有效兑换码可直接领取商品,无需先完成付款。",