Files
vmall/apps/admin/locales-extra.ts
T

301 lines
11 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: {
adminHint: "Dev account: admin@vmall.local / admin1234",
wrongRole: "This account does not have platform administrator access.",
},
nav: {
pointsProducts: "Points products",
pointsOrders: "Point redemptions",
content: "Content",
brands: "Brands",
aftersales: "After-sales",
},
admin: {
dashboardTitle: "Platform overview",
refresh: "Refresh",
open: "Open",
totalUsers: "Total users",
totalShops: "Total shops",
totalOrders: "Total orders",
enabledCurrencies: "Enabled currencies",
shopRequired: "Select a shop for shop owners and staff.",
noAssignedShop: "No shop assigned",
created: "Created",
orderShop: "Shop",
orderUser: "User",
orderTotal: "Total",
shopStatus: "Shop status",
currencyCode: "Currency code",
currencyNameEn: "Currency name (English)",
currencyNameZh: "Currency name (中文)",
codeInvalid: "Currency code must be three letters.",
currencyFormTitle: "Add currency",
userManagement: "User management",
shopManagement: "Shop management",
orderManagement: "Order management",
currencyManagement: "Currency management",
pageOf: "Page {page} of {total}",
pointsProductManagement: "Points catalog",
pointsOrderManagement: "Point redemptions",
newPointsProduct: "New points product",
editPointsProduct: "Edit points product",
pointsNameEn: "Name (English)",
pointsNameZh: "Name (中文)",
pointsPrice: "Points price",
pointsStock: "Stock",
pointsImage: "Image URL",
pointsPosition: "Sort order",
pointsRecommend: "Featured",
pointsPublished: "Published",
publishedOn: "Published",
publishedOff: "Draft",
savePointsProduct: "Save points product",
pointsProductSaved: "Points product saved.",
pointsNameRequired: "Both language names are required.",
pointsPriceInvalid: "Points price must be a positive integer.",
pointsStockInvalid: "Stock cannot be negative.",
redemptionNo: "Redemption no.",
redemptionCustomer: "Customer",
redemptionReward: "Reward",
redemptionPoints: "Points",
redemptionStatus: "Status",
fulfillRedemption: "Fulfil",
cancelRedemption: "Cancel",
redemptionFulfilled: "Redemption fulfilled.",
redemptionCancelled: "Redemption cancelled.",
redemptionStatuses: {
pending_fulfillment: "Pending",
fulfilled: "Fulfilled",
cancelled: "Cancelled",
},
contentBanners: "Banners",
contentPromos: "Promotions",
contentQuickLinks: "Quick links",
contentFloorAdverts: "Floor adverts",
contentImage: "Image URL",
contentUrl: "Destination URL",
contentLabelEn: "Label (English)",
contentLabelZh: "Label (中文)",
contentGlyph: "Icon SVG path",
contentAddRow: "Add row",
contentSaved: "Saved.",
contentBannerInvalid: "Image and destination URL are required.",
contentImageRequired: "Image URL is required.",
contentQuickLinkInvalid: "Both labels, URL and icon are required.",
brandSlug: "Slug",
brandSlugInvalid: "Use lowercase letters, numbers, and dashes only.",
brandNameRequired: "Both language names are required.",
brandSlugDuplicate: "Duplicate slug.",
brandsSaved: "Brands saved.",
aftersaleFilterShop: "Shop ID",
aftersaleShopIdPlaceholder: "shop id",
aftersaleBuyerIdPlaceholder: "buyer id",
aftersaleFilterBuyer: "Buyer ID",
aftersaleKind: "Type",
aftersaleAmount: "Amount",
aftersaleId: "Application",
aftersaleShop: "Shop",
aftersaleBuyer: "Buyer",
aftersaleDetail: "After-sale detail",
aftersaleView: "Detail",
aftersaleClose: "Close",
aftersaleCreated: "Created",
aftersaleUpdated: "Updated",
aftersaleReason: "Reason",
aftersaleEvidence: "Evidence",
aftersaleNoEvidence: "No evidence attached",
aftersaleItem: "Order item",
aftersaleOrder: "Order",
aftersaleOrderTotal: "Order total",
aftersaleOrderRefunded: "Order refunded total",
aftersaleRemaining: "Remaining refundable",
aftersaleReturnTracking: "Return tracking",
aftersaleMessages: "Messages",
aftersaleNoMessages: "No messages yet",
aftersaleReopened: "Reopened once",
aftersaleArbitrate: "Arbitration",
aftersaleArbitrateRefund: "Arbitrate: refund",
aftersaleArbitrateReject: "Arbitrate: reject",
aftersaleConfirmRefund:
"Grant a terminal refund to the buyer? This completes the refund and cannot be undone.",
aftersaleConfirmReject:
"Reject this dispute terminally? Only the buyer's one-time reopen can resume it.",
aftersaleArbitratedRefund: "Arbitration complete: refunded.",
aftersaleArbitratedReject: "Arbitration complete: rejected.",
aftersaleOutcomeRefunded:
"Refunded: the customer ledger is credited and the order refund total updated.",
aftersaleOutcomeRejected: "Rejected: only the buyer's one-time reopen can resume it.",
aftersaleOutcomeCancelled: "Cancelled by the buyer.",
aftersaleConflict: "The application state changed; refresh and try again",
aftersaleOrderNotFound: "Order not found in the order list.",
aftersaleKinds: {
refund_only: "Refund only",
return_refund: "Return & refund",
},
aftersaleStatuses: {
pending: "Pending review",
approved: "Approved",
rejected: "Rejected",
buyer_shipping: "Buyer shipping",
merchant_confirmed: "Return received",
refunded: "Refunded",
cancelled: "Cancelled",
},
aftersaleRoles: {
buyer: "Buyer",
merchant: "Merchant",
platform: "Platform",
},
},
} as const;
export const zhExtra = {
auth: {
adminHint: "开发账号:admin@vmall.local / admin1234",
wrongRole: "此账号没有平台管理员权限。",
},
nav: {
pointsProducts: "积分商品",
pointsOrders: "积分兑换单",
content: "内容",
brands: "品牌",
aftersales: "售后仲裁",
},
admin: {
dashboardTitle: "平台概览",
refresh: "刷新",
open: "打开",
totalUsers: "用户总数",
totalShops: "店铺总数",
totalOrders: "订单总数",
enabledCurrencies: "启用币种",
shopRequired: "店主和店员必须选择所属店铺。",
noAssignedShop: "未分配店铺",
created: "创建时间",
orderShop: "店铺",
orderUser: "用户",
orderTotal: "合计",
shopStatus: "店铺状态",
currencyCode: "币种代码",
currencyNameEn: "币种名称(英文)",
currencyNameZh: "币种名称(中文)",
codeInvalid: "币种代码必须是三个字母。",
currencyFormTitle: "添加币种",
userManagement: "用户管理",
shopManagement: "店铺管理",
orderManagement: "订单管理",
currencyManagement: "币种管理",
pageOf: "第 {page} 页,共 {total} 页",
pointsProductManagement: "积分商品目录",
pointsOrderManagement: "积分兑换单",
newPointsProduct: "新建积分商品",
editPointsProduct: "编辑积分商品",
pointsNameEn: "名称(英文)",
pointsNameZh: "名称(中文)",
pointsPrice: "积分价格",
pointsStock: "库存",
pointsImage: "图片链接",
pointsPosition: "排序",
pointsRecommend: "推荐",
pointsPublished: "已发布",
publishedOn: "已发布",
publishedOff: "草稿",
savePointsProduct: "保存积分商品",
pointsProductSaved: "积分商品已保存。",
pointsNameRequired: "中英文名称均为必填项。",
pointsPriceInvalid: "积分价格必须为正整数。",
pointsStockInvalid: "库存不能为负数。",
redemptionNo: "兑换单号",
redemptionCustomer: "用户",
redemptionReward: "兑换商品",
redemptionPoints: "积分",
redemptionStatus: "状态",
fulfillRedemption: "发货",
cancelRedemption: "取消",
redemptionFulfilled: "兑换单已发货。",
redemptionCancelled: "兑换单已取消。",
redemptionStatuses: {
pending_fulfillment: "待发货",
fulfilled: "已发货",
cancelled: "已取消",
},
contentBanners: "横幅",
contentPromos: "促销位",
contentQuickLinks: "快捷入口",
contentFloorAdverts: "楼层广告",
contentImage: "图片链接",
contentUrl: "跳转链接",
contentLabelEn: "名称(英文)",
contentLabelZh: "名称(中文)",
contentGlyph: "图标 SVG 路径",
contentAddRow: "添加一行",
contentSaved: "已保存。",
contentBannerInvalid: "图片和跳转链接均为必填项。",
contentImageRequired: "图片链接为必填项。",
contentQuickLinkInvalid: "中英文名称、链接和图标均为必填项。",
brandSlug: "别名",
brandSlugInvalid: "仅允许小写字母、数字和连字符。",
brandNameRequired: "中英文名称均为必填项。",
brandSlugDuplicate: "别名重复。",
brandsSaved: "品牌已保存。",
aftersaleFilterShop: "店铺 ID",
aftersaleShopIdPlaceholder: "店铺 ID",
aftersaleBuyerIdPlaceholder: "买家 ID",
aftersaleFilterBuyer: "买家 ID",
aftersaleKind: "类型",
aftersaleAmount: "金额",
aftersaleId: "售后单",
aftersaleShop: "店铺",
aftersaleBuyer: "买家",
aftersaleDetail: "售后详情",
aftersaleView: "详情",
aftersaleClose: "收起",
aftersaleCreated: "创建时间",
aftersaleUpdated: "更新时间",
aftersaleReason: "原因",
aftersaleEvidence: "凭证",
aftersaleNoEvidence: "无凭证",
aftersaleItem: "订单商品",
aftersaleOrder: "订单",
aftersaleOrderTotal: "订单总额",
aftersaleOrderRefunded: "订单已退款总额",
aftersaleRemaining: "剩余可退金额",
aftersaleReturnTracking: "退货物流",
aftersaleMessages: "留言记录",
aftersaleNoMessages: "暂无留言",
aftersaleReopened: "已重新申请",
aftersaleArbitrate: "仲裁",
aftersaleArbitrateRefund: "仲裁退款",
aftersaleArbitrateReject: "仲裁驳回",
aftersaleConfirmRefund: "确定仲裁退款给买家吗?退款将立即完成且不可撤销。",
aftersaleConfirmReject: "确定仲裁驳回吗?仅买家一次重新申请可恢复。",
aftersaleArbitratedRefund: "仲裁完成:已退款。",
aftersaleArbitratedReject: "仲裁完成:已驳回。",
aftersaleOutcomeRefunded: "已退款:买家账户已入账,订单退款总额已更新。",
aftersaleOutcomeRejected: "已驳回:仅买家一次重新申请可恢复。",
aftersaleOutcomeCancelled: "买家已取消。",
aftersaleConflict: "售后单状态已变化,请刷新后重试",
aftersaleOrderNotFound: "订单列表中未找到该订单。",
aftersaleKinds: {
refund_only: "仅退款",
return_refund: "退货退款",
},
aftersaleStatuses: {
pending: "待处理",
approved: "已通过",
rejected: "已驳回",
buyer_shipping: "买家退货中",
merchant_confirmed: "商家已收货",
refunded: "已退款",
cancelled: "已取消",
},
aftersaleRoles: {
buyer: "买家",
merchant: "商家",
platform: "平台",
},
},
} as const;