diff --git a/frontend/components/subscription/UnlockProOverlay.tsx b/frontend/components/subscription/UnlockProOverlay.tsx index 4dd85ddc..a052d914 100644 --- a/frontend/components/subscription/UnlockProOverlay.tsx +++ b/frontend/components/subscription/UnlockProOverlay.tsx @@ -65,16 +65,16 @@ function formatUsdcAmount(value: number) { const FEATURES = { "zh-CN": [ - "市场扫描台 + V4-Pro 深度复核", - "今日日内机场报文规则分析(含高温时段)", - "多城市图表巡检 + 未来日期分析", - "全平台智能气象推送", + "Terminal:市场温度与城市机会扫描", + "机场 / 跑道实测:METAR + 结算源优先", + "DEB 路径与高温时段复核", + "Telegram 提醒与账户权益同步", ], "en-US": [ - "Market Scan Terminal + V4-Pro review", - "Intraday METAR rule-based analysis with peak-time window", - "Multi-city chart monitoring + future-date analysis", - "Cross-platform alerts", + "Terminal: market temperature and city signal scanning", + "Airport / runway observations: METAR + settlement-source-first", + "DEB paths and peak-temperature window review", + "Telegram alerts and entitlement sync", ], }; @@ -158,12 +158,12 @@ export function UnlockProOverlay({ Pro

- {isEn ? "Unlock PolyWeather Pro" : "解锁 PolyWeather Pro"} + {isEn ? "Activate PolyWeather Pro" : "确认开通 PolyWeather Pro"}

{isEn - ? "High-precision weather intelligence, delivered everywhere." - : "全球最精准的高精度气象推送,全平台覆盖"} + ? "Confirm your subscription for the settlement-source-first terminal: observations, DEB paths, city charts, and alerts." + : "确认订阅结算源优先的天气决策终端:实测观测、DEB 路径、城市图表和提醒。"}

diff --git a/frontend/components/subscription/__tests__/unlockProOverlayCopy.test.ts b/frontend/components/subscription/__tests__/unlockProOverlayCopy.test.ts new file mode 100644 index 00000000..70c6fa4d --- /dev/null +++ b/frontend/components/subscription/__tests__/unlockProOverlayCopy.test.ts @@ -0,0 +1,41 @@ +import fs from "node:fs"; +import path from "node:path"; + +function assert(condition: unknown, message: string) { + if (!condition) throw new Error(message); +} + +export function runTests() { + const projectRoot = process.cwd(); + const overlaySource = fs.readFileSync( + path.join(projectRoot, "components", "subscription", "UnlockProOverlay.tsx"), + "utf8", + ); + + for (const legacyPhrase of [ + "全球最精准", + "全平台覆盖", + "全平台智能气象推送", + "High-precision weather intelligence, delivered everywhere.", + "Cross-platform alerts", + ]) { + assert( + !overlaySource.includes(legacyPhrase), + `UnlockProOverlay must not show legacy marketing copy: ${legacyPhrase}`, + ); + } + + for (const expectedPhrase of [ + "确认开通 PolyWeather Pro", + "结算源优先", + "机场 / 跑道实测", + "DEB 路径", + "Activate PolyWeather Pro", + "settlement-source-first", + ]) { + assert( + overlaySource.includes(expectedPhrase), + `UnlockProOverlay must explain the current Pro checkout value: ${expectedPhrase}`, + ); + } +}