Add a flash-sale page where a shop user lists, creates, edits, and deletes its own sessions and their SKU activity items, setting the fixed sale price, currency, reserved stock, and per-customer limit. Expose it as a flash-sale navigation entry beside the existing shop operations.
242 lines
8.3 KiB
TypeScript
242 lines
8.3 KiB
TypeScript
// App-local message extensions, deep-merged over @vmall/shared locales.
|
|
// Add keys here (never edit the shared locale files from an app agent).
|
|
export const enExtra = {
|
|
auth: {
|
|
shopRoleError: "This account is not authorized for the merchant console.",
|
|
},
|
|
nav: {
|
|
coupons: "Coupons",
|
|
flashSales: "Flash sales",
|
|
},
|
|
shop: {
|
|
dashboardTitle: "Merchant dashboard",
|
|
profile: "Shop profile",
|
|
shopStatus: "Shop status",
|
|
slug: "Slug",
|
|
totalProducts: "Total products",
|
|
publishedProducts: "Published products",
|
|
pendingPaymentOrders: "Pending payment",
|
|
paidOrders: "Paid orders",
|
|
fulfillingOrders: "Fulfilling orders",
|
|
shippedOrders: "Shipped orders",
|
|
pendingInvoices: "Pending invoice requests",
|
|
productList: "Product catalog",
|
|
orderList: "Orders",
|
|
shipmentList: "Shipments",
|
|
invoiceList: "Invoices",
|
|
filterStatus: "Filter by status",
|
|
filterOrderStatus: "Filter by order status",
|
|
created: "Created",
|
|
skuCount: "SKUs",
|
|
noSkus: "No SKUs",
|
|
newProduct: "New product",
|
|
saveProduct: "Save product",
|
|
updateProduct: "Update product",
|
|
productSaved: "Product saved.",
|
|
slugInvalid: "Use lowercase letters, numbers, and dashes only.",
|
|
productNameRequired: "English product name is required.",
|
|
categoryOptional: "No category",
|
|
imagesHint: "One URL per line",
|
|
skuManager: "SKU manager",
|
|
skuPriceMajor: "Price (major units)",
|
|
stock: "Stock",
|
|
active: "Active",
|
|
skuSaved: "SKU saved.",
|
|
actions: "Actions",
|
|
edit: "Edit",
|
|
invoiceNo: "Invoice no.",
|
|
noInvoice: "—",
|
|
status: "Status",
|
|
orderNo: "Order no.",
|
|
items: "Items",
|
|
total: "Total",
|
|
details: "Details",
|
|
address: "Shipping address",
|
|
recipient: "Recipient",
|
|
phone: "Phone",
|
|
carrier: "Carrier",
|
|
trackingNo: "Tracking number",
|
|
shipmentQuantities: "Shipment quantities",
|
|
unshipped: "Unshipped",
|
|
createShipment: "Create shipment",
|
|
shipmentCreated: "Shipment created.",
|
|
issueInvoice: "Issue invoice",
|
|
taxNo: "Tax number",
|
|
kind: "Type",
|
|
couponList: "Coupons",
|
|
newCoupon: "New coupon",
|
|
editCoupon: "Edit coupon",
|
|
couponTitleEn: "Title (English)",
|
|
couponTitleZh: "Title (中文)",
|
|
couponAmount: "Discount (minor units)",
|
|
couponThreshold: "Minimum spend (minor units)",
|
|
couponCurrency: "Currency",
|
|
couponStock: "Claim stock",
|
|
couponEnabled: "Enabled",
|
|
couponStartsAt: "Starts at",
|
|
couponEndsAt: "Ends at",
|
|
createCoupon: "Create coupon",
|
|
updateCoupon: "Update coupon",
|
|
couponSaved: "Coupon saved.",
|
|
couponDeleted: "Coupon deleted.",
|
|
couponTitleRequired: "Both language titles are required.",
|
|
couponAmountInvalid: "Discount must be a positive integer.",
|
|
couponThresholdInvalid: "Minimum spend cannot be negative.",
|
|
couponStockInvalid: "Claim stock cannot be negative.",
|
|
couponWindowInvalid: "End must not precede start.",
|
|
enabledOn: "Enabled",
|
|
enabledOff: "Disabled",
|
|
flashSaleList: "Flash sales",
|
|
newFlashSale: "New session",
|
|
editFlashSale: "Edit session",
|
|
flashLabelEn: "Label (English)",
|
|
flashLabelZh: "Label (中文)",
|
|
flashStartsAt: "Starts at",
|
|
flashEndsAt: "Ends at",
|
|
flashEnabled: "Enabled",
|
|
createFlashSale: "Create session",
|
|
updateFlashSale: "Update session",
|
|
flashSaleSaved: "Session saved.",
|
|
flashItemSaved: "Activity item saved.",
|
|
flashItems: "Activity items",
|
|
noFlashItems: "No activity items yet.",
|
|
newFlashItem: "Add activity item",
|
|
editFlashItem: "Edit activity item",
|
|
flashSku: "SKU",
|
|
flashSelectSku: "Select a SKU",
|
|
flashSalePrice: "Sale price (minor units)",
|
|
flashReservedStock: "Reserved stock",
|
|
flashPerCustomerLimit: "Per-customer limit",
|
|
saveFlashItem: "Save item",
|
|
flashOriginalPrice: "Catalog price",
|
|
flashSold: "Sold",
|
|
flashRemaining: "Remaining",
|
|
flashLabelRequired: "Both language labels are required.",
|
|
flashSkuRequired: "Choose a SKU.",
|
|
flashPriceInvalid: "Sale price must be a positive integer.",
|
|
flashStockInvalid: "Reserved stock cannot be negative.",
|
|
flashLimitInvalid: "Per-customer limit must be a positive integer.",
|
|
flashWindowInvalid: "End must not precede start.",
|
|
},
|
|
} as Record<string, unknown>;
|
|
|
|
export const zhExtra = {
|
|
auth: {
|
|
shopRoleError: "此账号无权访问商家控制台。",
|
|
},
|
|
nav: {
|
|
coupons: "优惠券",
|
|
flashSales: "秒杀",
|
|
},
|
|
shop: {
|
|
dashboardTitle: "商家仪表盘",
|
|
profile: "店铺信息",
|
|
shopStatus: "店铺状态",
|
|
slug: "别名",
|
|
totalProducts: "商品总数",
|
|
publishedProducts: "已上架商品",
|
|
pendingPaymentOrders: "待支付订单",
|
|
paidOrders: "已支付订单",
|
|
fulfillingOrders: "履约中订单",
|
|
shippedOrders: "已发货订单",
|
|
pendingInvoices: "待处理发票申请",
|
|
productList: "商品目录",
|
|
orderList: "订单",
|
|
shipmentList: "发货单",
|
|
invoiceList: "发票",
|
|
filterStatus: "按状态筛选",
|
|
filterOrderStatus: "按订单状态筛选",
|
|
created: "创建时间",
|
|
skuCount: "SKU 数量",
|
|
noSkus: "暂无 SKU",
|
|
newProduct: "新建商品",
|
|
saveProduct: "保存商品",
|
|
updateProduct: "更新商品",
|
|
productSaved: "商品已保存。",
|
|
slugInvalid: "只能使用小写字母、数字和短横线。",
|
|
productNameRequired: "英文商品名称为必填项。",
|
|
categoryOptional: "无分类",
|
|
imagesHint: "每行一个链接",
|
|
skuManager: "SKU 管理",
|
|
skuPriceMajor: "价格(主单位)",
|
|
stock: "库存",
|
|
active: "启用",
|
|
skuSaved: "SKU 已保存。",
|
|
actions: "操作",
|
|
edit: "编辑",
|
|
addSku: "添加 SKU",
|
|
status: "状态",
|
|
invoiceNo: "发票号",
|
|
noInvoice: "—",
|
|
items: "商品数",
|
|
total: "合计",
|
|
details: "详情",
|
|
address: "收货地址",
|
|
recipient: "收货人",
|
|
phone: "电话",
|
|
carrier: "承运商",
|
|
trackingNo: "物流单号",
|
|
shipmentQuantities: "发货数量",
|
|
unshipped: "待发货",
|
|
createShipment: "创建发货单",
|
|
shipmentCreated: "发货单已创建。",
|
|
issueInvoice: "开具发票",
|
|
taxNo: "税号",
|
|
kind: "类型",
|
|
couponList: "优惠券",
|
|
newCoupon: "新建优惠券",
|
|
editCoupon: "编辑优惠券",
|
|
couponTitleEn: "标题(英文)",
|
|
couponTitleZh: "标题(中文)",
|
|
couponAmount: "优惠金额(最小单位)",
|
|
couponThreshold: "使用门槛(最小单位)",
|
|
couponCurrency: "币种",
|
|
couponStock: "可领取库存",
|
|
couponEnabled: "启用",
|
|
couponStartsAt: "开始时间",
|
|
couponEndsAt: "结束时间",
|
|
createCoupon: "创建优惠券",
|
|
updateCoupon: "更新优惠券",
|
|
couponSaved: "优惠券已保存。",
|
|
couponDeleted: "优惠券已删除。",
|
|
couponTitleRequired: "中英文标题均为必填项。",
|
|
couponAmountInvalid: "优惠金额必须为正整数。",
|
|
couponThresholdInvalid: "使用门槛不能为负数。",
|
|
couponStockInvalid: "可领取库存不能为负数。",
|
|
couponWindowInvalid: "结束时间不能早于开始时间。",
|
|
enabledOn: "已启用",
|
|
enabledOff: "已停用",
|
|
flashSaleList: "秒杀活动",
|
|
newFlashSale: "新建场次",
|
|
editFlashSale: "编辑场次",
|
|
flashLabelEn: "标题(英文)",
|
|
flashLabelZh: "标题(中文)",
|
|
flashStartsAt: "开始时间",
|
|
flashEndsAt: "结束时间",
|
|
flashEnabled: "启用",
|
|
createFlashSale: "创建场次",
|
|
updateFlashSale: "更新场次",
|
|
flashSaleSaved: "场次已保存。",
|
|
flashItemSaved: "活动商品已保存。",
|
|
flashItems: "活动商品",
|
|
noFlashItems: "暂无活动商品。",
|
|
newFlashItem: "添加活动商品",
|
|
editFlashItem: "编辑活动商品",
|
|
flashSku: "SKU",
|
|
flashSelectSku: "请选择 SKU",
|
|
flashSalePrice: "秒杀价(最小单位)",
|
|
flashReservedStock: "活动库存",
|
|
flashPerCustomerLimit: "每人限购",
|
|
saveFlashItem: "保存商品",
|
|
flashOriginalPrice: "原价",
|
|
flashSold: "已售",
|
|
flashRemaining: "剩余",
|
|
flashLabelRequired: "中英文标题均为必填项。",
|
|
flashSkuRequired: "请选择 SKU。",
|
|
flashPriceInvalid: "秒杀价必须为正整数。",
|
|
flashStockInvalid: "活动库存不能为负数。",
|
|
flashLimitInvalid: "每人限购必须为正整数。",
|
|
flashWindowInvalid: "结束时间不能早于开始时间。",
|
|
},
|
|
} as Record<string, unknown>;
|