feat(mall): classic B2B2C PC storefront with fixed mock API layer
- Mock adapter implementing @vmall/shared ApiClient (localStorage-persisted cart/orders/invoices), runtime switch via mockApi flag (default on) - Fixed bilingual mock catalog: 3-level categories, 24 products w/ SKUs, stores, brands, banners, floors, seckill/collective/integral, comments, coupons, addresses, seeded orders/shipments/invoices - B2B2C mall shell: top bar, logo/search/cart header, dark nav + category mega-menu, value-prop footer, back-to-top; 1200px grid, #ca151e theme - UI primitives replacing element-plus: carousel, pagination, breadcrumb, qty stepper, rating stars, modal, tabs, step bar, product card - Pages: home floors, search (filters/sort/paging), goods detail (SKU picker, store rail, review tabs), cart -> checkout -> pay -> success, auth pages, user center (dashboard/orders/addresses/favorites/coupons/ invoices), stores, seckill, collective, integral - i18n split into per-domain locale modules (en+zh) - OpenSpec change mall-pc-storefront-replica archived; all specs green
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
// Product browse/detail domain strings (foundation-owned base keys; extend, don't remove).
|
||||
export default {
|
||||
en: {
|
||||
product: {
|
||||
salesCount: "{n} sold",
|
||||
commentCount: "{n} reviews",
|
||||
home: "Home",
|
||||
detail: "Product details",
|
||||
currentPrice: "Sale price",
|
||||
marketPrice: "Market price",
|
||||
stock: "In stock: {n}",
|
||||
sold: "{n} sold",
|
||||
coupon: "Coupon",
|
||||
coupons: "Available coupons",
|
||||
claim: "Claim",
|
||||
choose: "Choose",
|
||||
selected: "Selected",
|
||||
quantity: "Quantity",
|
||||
buyNow: "Buy now",
|
||||
addCart: "Add to cart",
|
||||
addedCart: "Added to cart",
|
||||
favorite: "Favorite",
|
||||
unfavorite: "Unfavorite",
|
||||
noStock: "Out of stock",
|
||||
unavailable: "This combination is unavailable",
|
||||
store: "Store",
|
||||
quality: "Product quality",
|
||||
company: "Company",
|
||||
region: "Region",
|
||||
rates: "Store ratings",
|
||||
overall: "Overall",
|
||||
service: "Service",
|
||||
delivery: "Delivery",
|
||||
enterStore: "Visit store",
|
||||
contact: "Contact seller",
|
||||
salesRank: "Best sellers",
|
||||
tabsDetail: "Product details",
|
||||
tabsReviews: "Customer reviews",
|
||||
tabsAfterSale: "After-sales service",
|
||||
description: "Description",
|
||||
reviewSummary: "{rate}% positive reviews ({n} total)",
|
||||
reviewAll: "All reviews",
|
||||
reply: "Seller reply",
|
||||
expires: "Expires {date}",
|
||||
productNotFound: "Product not found",
|
||||
},
|
||||
},
|
||||
zh: {
|
||||
product: {
|
||||
salesCount: "已售 {n} 件",
|
||||
commentCount: "{n} 条评价",
|
||||
home: "首页",
|
||||
detail: "商品详情",
|
||||
currentPrice: "活动价",
|
||||
marketPrice: "市场价",
|
||||
stock: "库存 {n} 件",
|
||||
sold: "已售 {n} 件",
|
||||
coupon: "优惠券",
|
||||
coupons: "可用优惠券",
|
||||
claim: "领取",
|
||||
choose: "选择",
|
||||
selected: "已选",
|
||||
quantity: "数量",
|
||||
buyNow: "立即购买",
|
||||
addCart: "加入购物车",
|
||||
addedCart: "已加入购物车",
|
||||
favorite: "收藏",
|
||||
unfavorite: "取消收藏",
|
||||
noStock: "暂时缺货",
|
||||
unavailable: "该规格暂不可用",
|
||||
store: "店铺",
|
||||
quality: "商品质量",
|
||||
company: "公司",
|
||||
region: "所在地区",
|
||||
rates: "店铺评分",
|
||||
overall: "描述相符",
|
||||
service: "服务态度",
|
||||
delivery: "物流服务",
|
||||
enterStore: "进入店铺",
|
||||
contact: "联系客服",
|
||||
salesRank: "销售排行",
|
||||
tabsDetail: "商品详情",
|
||||
tabsReviews: "用户评价",
|
||||
tabsAfterSale: "售后服务",
|
||||
description: "商品描述",
|
||||
reviewSummary: "好评率 {rate}%(共 {n} 条评价)",
|
||||
reviewAll: "全部评价",
|
||||
reply: "商家回复",
|
||||
expires: "有效期至 {date}",
|
||||
productNotFound: "商品不存在",
|
||||
},
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user