Files
hi-frontend/apps/user/public/assets/locales/en-US/subscribe.json
T
shanshanzhong147 1834b97fe2
PR Check / Lint, Check, Test and Build (push) Has been cancelled
修复(#134): 促销前端展示对齐 (expires_at / billing 补 promo_discount / 类型补字段)
Squash merge of fix/134-促销前端展示对齐 (4702dee).

HIF-79/HIF-113 落地后前端有三处对齐缺失:

- promo-info.tsx 仍读 promo.end_time,但后端 SubscribeDiscountPromo
  JSON 字段是 expires_at(×2 处)
- billing.tsx 缺 Promo Discount 行,PreOrderResponse 拿到 promo_discount
  时无处可渲染
- typings.d.ts: SubscribeDiscountPromo 缺 expires_at/rule_type,
  PreOrderResponse 缺 promo_discount

本次仅修字段对齐与展示行,不动业务逻辑、不动 OrderDetail 类型 (后端
当前未透出 promo_discount)。新增 billing.promoDiscount 中英文文案。
2026-06-02 20:27:54 -07:00

70 lines
2.5 KiB
JSON

{
"balanceRecharge": "Balance Recharge",
"billing": {
"billingTitle": "Product Billing",
"couponDiscount": "Coupon Discount",
"duration": "Duration",
"fee": "Fee",
"gift": "gift Deduction",
"originalPrice": "Original Price (Monthly)",
"price": "Price",
"productDiscount": "Product Discount",
"promoDiscount": "Promo Discount",
"total": "Total"
},
"buy": "Buy",
"buyNow": "Buy Now",
"buySubscription": "Buy Subscription",
"coupon": "Coupon",
"Day": "Day",
"detail": {
"availableTraffic": "Available Traffic",
"connectedDevices": "Connected Devices",
"connectionSpeed": "Connection Speed",
"productDetail": "Product Details"
},
"discount": "Discount",
"discountInfo": "Discount Info",
"emailDomainNotAllowed": "Email domain is not in the whitelist",
"emailInputTitle": "Enter the email address for your {{siteName}} account",
"emailRequired": "Please enter your email address.",
"enterAmount": "Enter recharge amount",
"enterCoupon": "Enter Coupon Code",
"Hour": "Hour",
"invalidEmail": "Please enter a valid email address",
"Minute": "Minute",
"Month": "Month",
"NoLimit": "No Limit",
"passwordHint": "If you do not enter a password, we will automatically generate one and send it to your email.",
"paymentMethod": "Payment Method",
"productDescription": "productDescription",
"promo": {
"available": "Promo Available",
"validUntil": "Valid until"
},
"purchaseDuration": "Purchase Duration",
"recharge": "Recharge",
"rechargeAmount": "Recharge Amount",
"rechargeDescription": "One-click recharge, easy to handle",
"rechargeNow": "Recharge Now",
"renew": "Renew",
"renewSubscription": "Renew Subscription",
"resetPrice": "Reset Price",
"resetTraffic": "Reset Traffic",
"resetTrafficDescription": "Reset traffic to zero, and start a new billing cycle",
"resetTrafficTitle": "Reset Traffic",
"subscriptionNotFound": "Subscription not found",
"unsubscribe": {
"cancel": "Cancel",
"confirm": "Confirm",
"confirmUnsubscribe": "Confirm Unsubscribe",
"confirmUnsubscribeDescription": "Are you sure you want to unsubscribe?",
"failed": "Failed to unsubscribe. Please try again.",
"residualValue": "Residual value:",
"success": "You have been unsubscribed successfully.",
"unsubscribe": "Unsubscribe",
"unsubscribeDescription": "Please note: If you unsubscribe now, the remaining value of the subscription will be refunded to your account balance, which can be used for your next subscription purchase or renewal."
},
"Year": "Year"
}