Clarify Pro checkout overlay copy
This commit is contained in:
@@ -65,16 +65,16 @@ function formatUsdcAmount(value: number) {
|
|||||||
|
|
||||||
const FEATURES = {
|
const FEATURES = {
|
||||||
"zh-CN": [
|
"zh-CN": [
|
||||||
"市场扫描台 + V4-Pro 深度复核",
|
"Terminal:市场温度与城市机会扫描",
|
||||||
"今日日内机场报文规则分析(含高温时段)",
|
"机场 / 跑道实测:METAR + 结算源优先",
|
||||||
"多城市图表巡检 + 未来日期分析",
|
"DEB 路径与高温时段复核",
|
||||||
"全平台智能气象推送",
|
"Telegram 提醒与账户权益同步",
|
||||||
],
|
],
|
||||||
"en-US": [
|
"en-US": [
|
||||||
"Market Scan Terminal + V4-Pro review",
|
"Terminal: market temperature and city signal scanning",
|
||||||
"Intraday METAR rule-based analysis with peak-time window",
|
"Airport / runway observations: METAR + settlement-source-first",
|
||||||
"Multi-city chart monitoring + future-date analysis",
|
"DEB paths and peak-temperature window review",
|
||||||
"Cross-platform alerts",
|
"Telegram alerts and entitlement sync",
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -158,12 +158,12 @@ export function UnlockProOverlay({
|
|||||||
<span className={s.badgeText}>Pro</span>
|
<span className={s.badgeText}>Pro</span>
|
||||||
</div>
|
</div>
|
||||||
<h2 className={s.title}>
|
<h2 className={s.title}>
|
||||||
{isEn ? "Unlock PolyWeather Pro" : "解锁 PolyWeather Pro"}
|
{isEn ? "Activate PolyWeather Pro" : "确认开通 PolyWeather Pro"}
|
||||||
</h2>
|
</h2>
|
||||||
<p className={s.subtitle}>
|
<p className={s.subtitle}>
|
||||||
{isEn
|
{isEn
|
||||||
? "High-precision weather intelligence, delivered everywhere."
|
? "Confirm your subscription for the settlement-source-first terminal: observations, DEB paths, city charts, and alerts."
|
||||||
: "全球最精准的高精度气象推送,全平台覆盖"}
|
: "确认订阅结算源优先的天气决策终端:实测观测、DEB 路径、城市图表和提醒。"}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -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}`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user