The flash-sale page loads active sessions and their items through the shared client with live sale price, remaining activity stock, sell-through, and a countdown, and adds the SKU to the existing cart so checkout resolves the authoritative price. Payment and order detail tag and render the snapshotted activity unit price. The flash-sale fixtures leave the page; the fixed-data adapter still serves the domain as the rollback path.
123 lines
4.2 KiB
TypeScript
123 lines
4.2 KiB
TypeScript
export default {
|
|
en: {
|
|
marketing: {
|
|
seckillTitle: "Flash sale",
|
|
seckillBreadcrumb: "Flash sale",
|
|
currentSession: "Now",
|
|
upcoming: "Coming soon",
|
|
ended: "Ended",
|
|
countdown: "Ends in {time}",
|
|
seckillPrice: "Flash price",
|
|
originalPrice: "Original price",
|
|
progress: "Sold {n}%",
|
|
buyNow: "Grab now",
|
|
grabFailed: "Unable to add this item right now.",
|
|
flashTag: "Flash sale",
|
|
noSeckillProducts: "No flash-sale products right now.",
|
|
collectiveTitle: "Group deals",
|
|
collectiveBreadcrumb: "Group deals",
|
|
collectiveBannerAlt: "Group deal promotion",
|
|
peopleGroup: "{n} people group",
|
|
peopleJoined: "{n} people joined",
|
|
joinGroup: "View deal",
|
|
noCollectiveProducts: "No group deals right now.",
|
|
integralTitle: "Points mall",
|
|
integralBreadcrumb: "Points mall",
|
|
integralBannerAlt: "Points mall promotion",
|
|
loginPrompt: "Sign in to see your points",
|
|
pointsBalance: "My points",
|
|
customize: "Personal customization",
|
|
shipping: "Ships within 24 hours",
|
|
support: "Priority support",
|
|
recommendation: "Popular rewards",
|
|
points: "{n} points",
|
|
marketPrice: "Market price",
|
|
stock: "Stock {n}",
|
|
redeem: "Redeem now",
|
|
redeemed: "Redeemed",
|
|
mockNotice: "Demo redemption completed",
|
|
login: "Sign in",
|
|
register: "Create account",
|
|
noIntegralProducts: "No rewards available right now.",
|
|
addressLabel: "Ship to",
|
|
noAddress: "No saved address.",
|
|
addAddress: "Add one in your account",
|
|
addressRequired: "Add a shipping address before redeeming.",
|
|
qty: "Qty",
|
|
redeemSuccess: "Redeemed as {no}.",
|
|
redeemConflict: "Unable to redeem: not enough points or stock.",
|
|
redeemFailed: "Unable to redeem right now.",
|
|
redemptionHistory: "My redemptions",
|
|
orderNo: "Order no.",
|
|
reward: "Reward",
|
|
pointsCost: "Points",
|
|
createdAt: "Date",
|
|
redemptionStatus: {
|
|
pending_fulfillment: "Pending",
|
|
fulfilled: "Fulfilled",
|
|
cancelled: "Cancelled",
|
|
},
|
|
},
|
|
},
|
|
zh: {
|
|
marketing: {
|
|
seckillTitle: "限时秒杀",
|
|
seckillBreadcrumb: "秒杀活动",
|
|
currentSession: "正在进行",
|
|
upcoming: "即将开始",
|
|
ended: "已结束",
|
|
countdown: "距结束 {time}",
|
|
seckillPrice: "秒杀价",
|
|
originalPrice: "原价",
|
|
progress: "已抢 {n}%",
|
|
buyNow: "马上抢",
|
|
grabFailed: "加入购物车失败,请稍后重试。",
|
|
flashTag: "秒杀价",
|
|
noSeckillProducts: "当前暂无秒杀商品。",
|
|
collectiveTitle: "拼团购",
|
|
collectiveBreadcrumb: "拼团",
|
|
collectiveBannerAlt: "拼团活动",
|
|
peopleGroup: "{n}人团",
|
|
peopleJoined: "{n}人已拼",
|
|
joinGroup: "查看详情",
|
|
noCollectiveProducts: "当前暂无拼团商品。",
|
|
integralTitle: "积分商城",
|
|
integralBreadcrumb: "积分商城",
|
|
integralBannerAlt: "积分商城活动",
|
|
loginPrompt: "登录后查看您的积分",
|
|
pointsBalance: "我的积分",
|
|
customize: "私人定制",
|
|
shipping: "24小时发货",
|
|
support: "优先客服",
|
|
recommendation: "热门推荐",
|
|
points: "{n}积分",
|
|
marketPrice: "市场价",
|
|
stock: "库存 {n}",
|
|
redeem: "立即兑换",
|
|
redeemed: "已兑换",
|
|
mockNotice: "模拟兑换成功",
|
|
login: "登录",
|
|
register: "注册",
|
|
noIntegralProducts: "当前暂无积分商品。",
|
|
addressLabel: "收货地址",
|
|
noAddress: "暂无收货地址。",
|
|
addAddress: "前往账户添加",
|
|
addressRequired: "请先添加收货地址。",
|
|
qty: "数量",
|
|
redeemSuccess: "兑换成功,订单号 {no}。",
|
|
redeemConflict: "兑换失败:积分或库存不足。",
|
|
redeemFailed: "兑换失败,请稍后重试。",
|
|
redemptionHistory: "我的兑换",
|
|
orderNo: "订单号",
|
|
reward: "兑换商品",
|
|
pointsCost: "积分",
|
|
createdAt: "日期",
|
|
redemptionStatus: {
|
|
pending_fulfillment: "待发货",
|
|
fulfilled: "已发货",
|
|
cancelled: "已取消",
|
|
},
|
|
},
|
|
},
|
|
} as const;
|