feat: 新增多语言文案、优化导航及工具函数,修复部分业务逻辑

1. 新增多语言资源文件,覆盖文章、预约日期、会员信息、优惠券、表单、购物车、积分商城、分销、AI聊天等多个模块
2. 优化底部导航组件,使用多语言配置替代硬编码文案
3. 重构工具函数,新增从后端数据提取多语言文案的工具方法
4. 修复邀请好友页面的保存提示文案,替换为多语言版本
5. 修复商品SKU组件的提示文案,使用多语言配置
6. 重构AI聊天页面的帮助文档和回复模板,使用多语言配置
7. 优化空状态组件,支持多语言默认文案
8. 修复跳转逻辑,补全参数传递
9. 新增本地开发环境配置
This commit is contained in:
2026-06-25 18:15:31 +08:00
parent ca4e7fd170
commit 2d8846c64c
82 changed files with 3497 additions and 1062 deletions

View File

@@ -72,6 +72,20 @@ export const lang = {
prompt: 'Prompt',
serviceTypeNotSupported: 'Current service type does not support this page',
// ====== index.vue - Help Content ======
helpContent: '# Help Guide\n\n## Basic Features\n- **Send Message**: Type in the input box and send\n- **Voice Input**: Tap the microphone icon for voice input\n- **Attachments**: Tap + to send images, files, locations\n\n## Message Types\n- **Text Message**: Regular text conversation\n- **Markdown**: Supports formatted document content\n- **File**: Supports various file format previews\n- **Audio**: Supports voice message playback\n- **Video**: Supports video playback\n- **Link**: Supports web link navigation\n- **Product**: Supports product card display\n\n## Actions\n- **Like/Dislike**: Rate AI responses\n- **Copy**: Long press a message to copy content\n- **Forward**: Supports message forwarding',
// ====== index.vue - AI Response Templates ======
aiResponseTemplate1: 'I understand your needs, let me provide you with a detailed answer.',
aiResponseTemplate2: 'Thank you for your question, that is a great question.',
aiResponseTemplate3: 'Based on your question, I suggest you consider the following aspects:',
aiResponseTemplate4: 'This is a common question, let me provide you with some solutions.',
aiResponseTemplate5: 'I understand your confusion, let me help you analyze it.',
aiProcessingMessage: 'I have received your question "{question}" and am working on it...',
// ====== index.vue - Product Inquiry ======
productInquiryTemplate: 'I would like to learn more about the following product:\nProduct Name: {name}\nPrice: ¥{price}\nProduct ID: {id}',
// ====== ai-chat-avatar-selector ======
avatarSelectorTitle: 'Change Avatar',
chooseFromAlbum: 'Choose from Album',

View File

@@ -28,6 +28,31 @@ export const lang = {
weChatWorkKefu: 'WeChat Work Customer Service',
},
// customer service module
customerService: {
openFailed: 'Failed to open customer service',
wxworkConfigIncomplete: 'WeChat Work configuration incomplete',
jumpFailed: 'Jump failed, please try again later',
miniProgramOnly: 'Third-party mini program customer service is only available in WeChat Mini Program',
linkCopied: 'Link copied, please open in browser',
customerLinkCopied: 'Customer service link copied',
noServicePhone: 'No customer service phone number',
getPhoneFailed: 'Failed to get customer service phone',
contactCustomerService: 'Contact Customer Service',
callServiceTip: 'Please contact customer service at {phone}',
noServiceOffline: 'Sorry, no customer service available, please contact offline',
configError: 'Customer Service Configuration Error',
configErrorDetail: 'Configuration errors:\n{errors}',
tip: 'Tip',
cannotAddWxwork: 'Cannot add WeChat Work directly, use other methods to contact customer service?',
onlineUnavailable: 'Online customer service unavailable, call customer service?',
developing: 'Customer service selection feature under development',
wxworkNotConfigured: 'WeChat Work customer service not configured',
serviceUnavailable: 'Customer service temporarily unavailable',
wxworkLinkNotConfigured: 'WeChat Work link not configured',
fromFloatButton: 'Inquiry from floating button',
},
getDynacode: 'Get Code',
login: 'Login/Register',

View File

@@ -0,0 +1,4 @@
export const lang = {
viewMore: 'View More',
noArticles: 'No articles found',
}

View File

@@ -0,0 +1,30 @@
export const lang = {
// Button text
claim: 'Claim',
claimNow: 'Claim Now',
goUse: 'Use Now',
useNow: 'Use Now',
goBrowse: 'Go Browse',
// Currency / discount units
yuan: 'yuan',
discount: '% off',
// Coupon usage conditions
minSpendAvailable: 'Available on orders over {amount}',
noThresholdCoupon: 'No threshold coupon',
minSpendUse: 'Use on orders over {amount}',
noThresholdUse: 'No threshold',
allProductsAvailable: 'All products available',
specifiedProductsAvailable: 'Specified products available',
specifiedProductsUnavailable: 'Specified products unavailable',
// Other text
coupon: 'Coupon',
noCoupons: 'No coupons available',
validUntil: 'Valid until {date}',
// Toast messages
couponSoldOut: 'This coupon is sold out',
claimSuccess: 'Claimed successfully',
}

View File

@@ -0,0 +1,22 @@
export const lang = {
// Authorization prompt text
clickToAuthorizeAvatarNickname: 'Tap to authorize avatar & nickname',
clickToGetWechatAvatar: 'Tap to get WeChat avatar',
// Complete info popup
completeInfoTitle: 'Get your nickname and avatar',
completeInfoTip: 'Get user avatar and nickname to complete personal profile, mainly to provide a recognizable user center interface',
avatarLabel: 'Avatar',
nicknameLabel: 'Nickname',
nicknamePlaceholder: 'Enter nickname',
save: 'Save',
// Modal prompts
tip: 'Tip',
bindMobileTip: 'You need to bind a mobile number to use the member code. Bind now?',
// Toast messages
pleaseEnterNickname: 'Please enter nickname',
uploadFailed: 'Upload failed',
avatarPullFailed: 'Failed to pull avatar',
}

View File

@@ -0,0 +1,51 @@
export const lang = {
// ===== ns-login component =====
'ns-login': {
// H5 bind mobile popup
bindMobileTitle: 'Mobile number not bound yet',
bindMobileTip: 'Please bind your mobile number to receive order updates',
mobileLabel: 'Mobile',
mobilePlaceholder: 'Enter mobile number',
captchaLabel: 'Captcha',
captchaPlaceholder: 'Enter captcha',
dynacodeLabel: 'Code',
dynacodePlaceholder: 'Enter code',
save: 'Save',
// Mini Program login popup
welcomeTitle: 'Welcome to {siteName}',
loginWithMobile: 'Login with mobile, ',
registerLogin: 'Register & login, ',
getServicesTip: 'to access orders, after-sales and more.',
agree: 'I agree',
privacyPolicy: '《Privacy Policy》',
userServiceAgreement: '《User Service Agreement》',
agreeAndAuthorizeMobile: 'Agree & Authorize Mobile',
authorizeMobile: 'Authorize Mobile',
notNow: 'Not Now',
// Nickname & Avatar
avatarLabel: 'Avatar',
nicknameLabel: 'Nickname',
nicknamePlaceholder: 'Enter nickname',
getMobile: 'Get Mobile Number',
// Dynacode
getDynacode: 'Get Code',
resendAfter: 'Resend in {seconds}s',
// Toast messages
pleaseConfirmAgreement: 'Please confirm the agreement',
uploadFailed: 'Upload failed',
pleaseEnterMobile: 'Please enter mobile number',
pleaseEnterCorrectMobile: 'Please enter correct mobile number',
pleaseEnterCaptcha: 'Please enter captcha',
pleaseEnterDynacode: 'Please enter dynamic code',
requestFail: 'request:fail',
loggingIn: 'Logging in',
loginFailed: 'Login failed',
pleaseAuthorizeMobile: 'Please authorize your mobile number',
pleaseEnterNickname: 'Please enter nickname',
avatarPullFailed: 'Avatar pull failed',
}
}

View File

@@ -0,0 +1,33 @@
export const lang = {
// ===== ns-newform component =====
'ns-newform': {
// Input placeholder defaults
inputPlaceholder: 'Please enter',
selectPlaceholder: 'Please select',
datePlaceholder: 'Please select date',
timePlaceholder: 'Please select time',
startDate: 'Start date',
endDate: 'End date',
startTime: 'Start time',
endTime: 'End time',
selectProvinceCity: 'Please select province and city',
selectProvinceCityDistrict: 'Please select province, city and district',
// Validation - required
pleaseInput: 'Please enter {title}',
pleaseSelect: 'Please select {title}',
pleaseSelectAtLeastOne: 'Please select at least one {title}',
pleaseUploadAtLeastOne: 'Please upload at least one {title}',
// Validation - format
idCardInvalid: 'Invalid ID card number',
mobileInvalid: 'Invalid mobile number',
// Validation - range
endDateBeforeStartDate: 'End date cannot be earlier than start date',
endTimeBeforeStartTime: 'End time must be later than start time',
// Image upload
maxUploadImages: 'Upload up to {max} images',
}
}

View File

@@ -0,0 +1,17 @@
export const lang = {
// ===== yuyue-date component =====
'yuyueDate': {
// Appointed date button
appointedDate: 'Appointed Date',
// Time status text
fullyBooked: 'Fully Booked',
available: 'Available',
// Selection status
noSelection: 'No Selection',
// Toast message
weekdayCannotBook: '{weekday} cannot be booked',
}
}

View File

@@ -1,5 +1,55 @@
export const lang = {
//title为每个页面的标题
// title: 'Distributor Application'
title: ''
}
title: '',
// Page header
pleaseFillApplyInfo: 'Please fill in application information',
// Form fields
inviter: 'Inviter',
nameLabel: 'Name',
namePlaceholder: 'Please enter {name} name',
mobile: 'Mobile',
mobilePlaceholder: 'Please enter mobile number',
// Agreement
haveReadAndUnderstand: 'I have read and understand',
applyAgreement: '【{name} Application Agreement】',
// Buttons
applyBecome: 'Apply to become {name}',
reapply: 'Reapply',
// Application conditions
applyConditionTitle: 'Distributor Application Conditions',
becomeConditionTitle: 'Conditions to Become a Distributor',
conditionConsumeCount: 'To apply to become {name}, your purchase count must reach {count} times',
conditionConsumeMoney: 'To apply to become {name}, your purchase amount must reach {money} yuan',
conditionBuyGoods: 'To apply to become {name}, you need to purchase one of the following specified products',
becomeConditionBuyGoods: 'To become {name}, you need to purchase one of the following specified products',
// Expand/collapse
expandMore: 'Expand more',
collapse: 'Collapse',
// Status messages
notFenxiao: 'You are not a distributor yet',
applyPending: 'You have submitted the {name} application, waiting for review',
applyRejected: 'Your {name} application has been rejected, please try again',
// Default values
none: 'None',
// Toast messages
merchantNotOpenFenxiao: 'Merchant has not enabled distribution',
pleaseReadAndCheckAgreement: 'Please read the agreement carefully and check it',
// Page title suffix
applySuffix: 'Application',
// Form validation
pleaseEnterName: 'Please enter {name} name',
pleaseEnterMobile: 'Please enter mobile number',
pleaseEnterValidMobile: 'Please enter a valid mobile number',
}

View File

@@ -1,5 +1,70 @@
export const lang = {
//title为每个页面的标题
// title: 'Distribution Center',
title: ''
}
title: '',
// Header member info
superiorAgent: 'Superior Agent',
headquarters: 'Headquarters',
invitedSuccess: 'Invited successfully: {count} people',
// Commission / Balance
withdrawable: 'Available {withdraw} (Yuan)',
withdrawDetail: 'Withdrawal Details',
withdrawing: 'Withdrawing (Yuan)',
pendingDeposit: 'Pending (Yuan)',
withdraw: 'Withdraw',
// Menu items
myFans: 'My Fans',
invitedUsers: 'Invited Users',
detail: 'Details',
totalAccumulated: 'Total {account} {symbol}{amount}',
order: 'Orders',
orderDetail: 'Order Details',
myInviteCode: 'My Invite Code',
inviteFriendsEarnRewards: 'Invite friends, earn rewards',
// Empty / Not applied state
notFenxiaoYet: 'You are not a {name} yet, please submit an application',
joinNow: 'Join Now',
// Task popup
quickUpgradeTips: 'Quick Upgrade Tips',
completed: 'Completed',
incomplete: 'Incomplete',
goComplete: 'Go Complete',
tip: 'Tip',
anyConditionUpgrade: 'Meet any one condition to upgrade',
allConditionsUpgrade: 'All conditions must be met to upgrade',
// Page title suffix
center: 'Center',
// Toast messages
merchantNotOpenFenxiao: 'Merchant has not enabled distribution',
fenxiaoFrozen: 'Distributor account has been frozen',
// Upgrade tasks - Subordinate consumption
subordinateConsumption: 'Subordinate Consumption',
subordinateOrderCount: '{count} subordinate orders completed',
subordinateOrderCountTip: 'Number of orders placed by the distributor and their direct referred members',
subordinateOrderAmount: 'Subordinate order amount reaches {amount} Yuan',
subordinateOrderAmountTip: 'Total order amount of the distributor and their direct referred members',
subordinateCommissionAmount: 'Total {account} from subordinate consumption reaches {amount} Yuan',
subordinateCommissionAmountTip: 'Total {account} from orders of the distributor and their direct referred members',
// Upgrade tasks - Self consumption
selfConsumption: 'Self Consumption',
selfOrderCount: '{count} self orders completed',
selfOrderCountTip: 'Number of orders placed by the distributor themselves',
selfOrderAmount: 'Self order amount reaches {amount} Yuan',
selfOrderAmountTip: 'Total order amount of the distributor\'s own purchases',
// Upgrade tasks - Invite friends
inviteFriends: 'Invite Friends',
inviteFriendCount: 'Invite {count} friends',
inviteFriendCountTip: 'Number of direct subordinate members (including those who have applied to become distributors)',
inviteFenxiaoCount: 'Invite {count} friends to become distributors',
inviteFenxiaoCountTip: 'Number of direct subordinate distributors',
}

View File

@@ -1,5 +1,49 @@
export const lang = {
//title为每个页面的标题
// title: 'Distributor Level',
title: ''
}
title: '',
// 页面标题后缀
levelSuffix: 'Level',
// 分佣比率
firstLevelCommissionRate: 'First Level Commission Rate',
secondLevelCommissionRate: 'Second Level Commission Rate',
thirdLevelCommissionRate: 'Third Level Commission Rate',
// 升级任务
quickUpgradeTips: 'Quick Upgrade Tips',
completed: 'Completed',
incomplete: 'Incomplete',
// 提示弹窗
tip: 'Tip',
anyConditionUpgrade: 'Upgrade when any condition is met',
allConditionsUpgrade: 'All conditions must be met to upgrade',
// Toast 提示
merchantNotOpenFenxiao: 'Merchant has not enabled distribution',
// 升级任务 - 下级消费
subordinateConsumption: 'Subordinate Consumption',
subordinateOrderCount: '{count} subordinate orders required',
subordinateOrderCountTip: 'The number of orders placed by the distributor and their direct referrals reaches {count}',
subordinateOrderAmount: 'Subordinate order amount reaches {amount} yuan',
subordinateOrderAmountTip: 'The total order amount from the distributor and their direct referrals reaches {amount} yuan',
subordinateCommissionAmount: 'Commission from subordinate consumption reaches {amount} yuan',
subordinateCommissionAmountTip: 'The total commission from orders of the distributor and their direct referrals reaches {amount} yuan',
// 升级任务 - 自身消费
selfConsumption: 'Self Consumption',
selfOrderCount: '{count} self orders required',
selfOrderCountTip: 'The number of orders placed by the distributor reaches {count}',
selfOrderAmount: 'Self order amount reaches {amount} yuan',
selfOrderAmountTip: 'The total order amount from the distributor reaches {amount} yuan',
// 升级任务 - 邀请好友
inviteFriends: 'Invite Friends',
inviteFriendCount: 'Invite {count} friends',
inviteFriendCountTip: 'The number of direct subordinate members reaches {count} (including those who have applied to become distributors)',
inviteFenxiaoCount: 'Invite {count} friends to become distributors',
inviteFenxiaoCountTip: 'The number of direct subordinate distributors reaches {count}',
}

View File

@@ -1,5 +1,5 @@
export const lang = {
//title为每个页面的标题
//title is the title of each page
title: 'Shopping Cart',
complete: 'Complete',
edit: 'Manage',
@@ -9,5 +9,39 @@ export const lang = {
emptyTips: 'No products yet',
goForStroll: 'Go shopping',
del: 'Delete',
login: 'Go to login'
}
login: 'Go to login',
// cart header
totalKinds: '{count} item(s)',
// coupon tips
coupon: 'Coupon',
couponMaxDiscount: 'Save up to {money} with coupons',
receive: 'Receive',
view: 'View',
clickToReceive: 'Click to receive',
clickToView: 'Click to view',
// full reduction
fullReduction: 'Full Reduction',
fullReductionItem: 'Spend {limit}, get {discount} off',
// invalid goods
invalidGoods: '{count} invalid item(s)',
clear: 'Clear',
invalid: 'Invalid',
// empty cart
cartEmpty: 'Shopping cart is empty',
cartEmptySubText: 'Go browse and find your favorite products',
// discount detail popup
discountDetail: 'Discount Details',
goodsTotal: 'Subtotal',
// coupon popup
discountLabel: 'off',
minSpend: 'Min. spend {amount}',
noThreshold: 'No threshold',
maxDiscount: 'Max discount {symbol}{limit}',
validityPeriod: 'Valid: ',
validFromReceive: 'Valid for {days} days from receipt',
longTermValid: 'Long-term valid',
received: 'Received',
// settlement button
receiveCouponSettle: 'Receive & Checkout ({count})',
settleImmediately: 'Checkout ({count})'
}

View File

@@ -34,6 +34,83 @@ export const lang = {
kefu:'Contact',
follow:'Follow',
spec:'Spec'
}
spec:'Spec',
// SKU related
stockInsufficient: 'Insufficient stock',
offShelves: 'This product has been removed',
soldOut: 'Sold out',
buyCountNotZero: 'Purchase quantity cannot be less than or equal to 0',
stockLessThanMinBuy: 'Stock is less than minimum purchase quantity',
purchaseLimit: 'Limit {count} {unit} per person',
purchaseLimitWithPurchased: 'Limit {count} {unit} per person, you have purchased {purchased} {unit}',
maxPurchasePerTime: 'Maximum purchase of {count} {unit} per time',
selectedSpec: 'Selected: ',
buyCount: 'Purchase Quantity',
exchangeCount: 'Exchange Quantity',
joinCart: 'Add to Cart',
confirmBtn: 'Confirm',
rushBuy: 'Buy Now',
exchangeBtn: 'Exchange',
addToCartSuccess: 'Added to cart successfully',
minBuyStart: 'Minimum order: {minBuy} {unit}',
balanceLabel: 'Balance',
pointLabel: 'Points: ',
stockLabel: 'Stock: ',
groupOfNum: '{num}-person group',
limitPerPerson: 'Limit: {count} {unit}/person',
limitBuyRange: 'From {minBuy} {unit}, limit {maxBuy} {unit}',
limitBuyMax: 'Limit: {maxBuy} {unit}',
previewCannotBuy: 'Preview products cannot be purchased',
specNotInBale: 'This spec is not in the bale activity',
goodsStockInsufficient: 'Insufficient product stock',
goodsAddCartSuccess: 'Product added to cart successfully',
selected: 'Selected: ',
startingNum: 'Min. order: {num} pcs',
goodsOffShelves: 'Product has been removed',
// Price & Promotion
limitedTimeDiscount: 'Limited Time Discount',
sold: 'Sold',
countdownEndsIn: 'Ends In',
originalPrice: 'Original Price',
// Combo Package
comboPackage: 'Combo Package',
comboPrice: 'Combo Price',
// Coupons
coupons: 'Coupons',
discountOff: '% off',
minSpendAvailable: 'Min. spend {amount}',
noThreshold: 'No threshold',
maxDiscount: 'Max discount: {symbol}{amount}',
validUntilDate: 'Valid until: {date}',
validForDays: 'Valid for {days} days after claiming',
validPermanent: 'Valid: Permanent',
couponSoldOut: 'Sold out',
couponClaimed: 'Claimed',
couponReceive: 'Claim',
// Promotions
promotion: 'Promotion',
fullReduction: 'Full Reduction',
fullGift: 'Full Gift',
freeShipping: 'Free Shipping',
// Product Message
productMessage: 'Product Message',
// AI Customer Service
aiCustomerService: 'AI Assistant',
// Contact Popup
dialOnMobile: 'Dial {phone} on mobile',
cancel: 'Cancel',
copyToClipboard: 'Copy to Clipboard',
copySuccess: 'Copied successfully',
// Common Button
confirm: 'Confirm',
}

View File

@@ -1,4 +1,57 @@
export const lang = {
//title为每个页面的标题
title: 'Membership Card'
}
//title is the page title
title: 'Membership Card',
// Member info
validUntil: 'Valid until: ',
// Membership card description
enjoyDiscountAnd: 'can enjoy consumption discounts and',
memberGiftBenefits: 'member gift package benefits',
// Card type selection
cardTypeSelection: 'Card Type',
weekCardName: 'Weekly Card',
weekCardUnit: 'week',
monthCardName: 'Monthly Card',
monthCardUnit: 'month',
quarterCardName: 'Quarterly Card',
quarterCardUnit: 'quarter',
yearCardName: 'Annual Card',
yearCardUnit: 'year',
// Member benefits
memberBenefits: 'Member Benefits',
freeShipping: 'Free Shipping',
enjoyFreeShipping: 'Enjoy free shipping on all products',
consumptionDiscount: 'Consumption Discount',
enjoyDiscountOnSomeProducts: 'Enjoy {discount}% off on some products',
pointsReward: 'Points Reward',
earnPointsMultiplier: 'Earn {multiplier}x points on orders',
// Welcome gift
welcomeGift: 'Welcome Gift',
pointsGift: 'Points Gift',
giftPoints: '{points} points as gift',
redPacketGift: 'Red Packet Gift',
giftRedPacket: '{amount} yuan red packet as gift',
couponGift: 'Coupon Gift',
giftCoupons: '{count} coupons as gift',
// Action buttons
renewNow: 'Renew Now',
rechargeToActivate: 'Recharge to Activate',
activateNow: 'Activate Now',
// Agreement
purchaseAgreement: 'By purchasing, you agree to',
// Popup
cardDescription: 'Card Description',
// Empty data
noCardsAvailable: 'No membership cards available',
// Confirmation
cardOverrideConfirm: 'You have an unexpired membership card. Purchasing again will override your current card. Continue?',
}

View File

@@ -52,5 +52,28 @@ export const lang = {
surePhoneNumber: "Please enter a valid phone number",
alikePhone: "Same as original phone number, no need to modify",
modify: 'Modify'
modify: 'Modify',
sexUnknown: "Unknown",
sexMale: "Male",
sexFemale: "Female",
pleaseSelectBirthday: "Please select birthday",
alikeRealName: "Same as original real name, no need to modify",
noEmptyRealName: "Real name cannot be empty",
passwordMinLength: "New password must be at least {num} characters",
passwordComplexityPrefix: "Password must contain",
passwordNumber: "numbers",
passwordLowercase: "lowercase letters",
passwordUppercase: "uppercase letters",
passwordSymbol: "special characters",
passwordSeparator: ", ",
pleaseInputMobile: "Please enter phone number",
codeSent: "Sent ({seconds}s)",
doNotRepeatedlyClick: "Do not click repeatedly",
pleaseSelectRegion: "Please select region",
pleaseInputDetailAddress: "Please enter detailed address"
}

View File

@@ -57,5 +57,39 @@ export const lang = {
surePhoneNumber: "Please enter a valid phone number",
alikePhone: "Same as original phone number, no need to modify",
modify: 'Modify'
modify: 'Modify',
pleaseInput: "Please enter",
usernameModifyTip: "Username can only be modified once, please set carefully",
pleaseSelectBirthday: "Please select birthday",
bindMobileFirstTip: "Please bind your mobile phone first",
bindNow: "Bind Now",
smsCode: "SMS Verification Code",
sendCodeTip: 'Click "Get Dynamic Code" and a verification code will be sent to your bound mobile number {mobile}',
oneClickAuthBind: "One-Click Authorization Binding",
manualBind: "Manual Binding",
region: "Region",
pleaseSelectRegion: "Please select province/city/district",
detailAddress: "Detailed Address",
sexUnknown: "Unknown",
sexMale: "Male",
sexFemale: "Female",
alikeRealName: "Same as original real name, no need to modify",
noEmptyRealName: "Real name cannot be empty",
passwordMinLength: "New password must be at least {num} characters",
passwordComplexityPrefix: "Password must contain",
passwordNumber: "numbers",
passwordLowercase: "lowercase letters",
passwordUppercase: "uppercase letters",
passwordSymbol: "special characters",
passwordSeparator: ", ",
pleaseInputMobile: "Please enter phone number",
codeSent: "Sent ({seconds}s)",
doNotRepeatedlyClick: "Do not click repeatedly",
pleaseInputDetailAddress: "Please enter detailed address"
}

View File

@@ -1,3 +1,56 @@
export const lang = {
// title is the page title
title: 'Invite Friends',
}
// Activity header
activityDescription: 'Activity Description',
activityTime: 'Activity Time: {startTime} to {endTime}',
inviteNow: 'Invite Now',
// Invite list
myFriends: 'My Friends',
cashRedPacketAmount: '{amount} yuan cash red packet',
pointsAmount: '{amount} points',
couponsAmount: '{count} coupons',
viewMore: 'View More',
noMoreData: 'No more data',
noInvitedFriendsTip: 'You haven\'t invited any new friends yet',
inviteTip: 'Invite friends and earn rewards. Give it a try~',
// Invite rewards
inviteRewards: 'Invite Rewards',
cashRedPacket: 'Cash Red Packet',
points: 'Points',
couponUnit: '',
coupon: 'Coupon',
shareDesc: 'Share with friends. When friends enter through your share link and register, you can receive the following rewards:',
balanceReward: 'Get {amount} yuan red packet',
pointReward: 'Get {amount} points',
couponReward: 'Get {count} coupons',
unlimitedReward: 'Unlimited rewards available',
rewardLimit: 'Reward limit: {max} people',
// Invite steps
howToInvite: 'How to Invite',
stepShareLink: 'Share link with friends',
stepFriendEnter: 'Friend enters',
stepFriendRegister: 'Friend registers and gets reward',
// Poster popup
saveImage: 'Save Image',
longPressSaveImage: 'Long press to save image',
// Share popup
share: 'Share',
shareToFriends: 'Share to Friends',
generatePoster: 'Generate Share Poster',
copyLink: 'Copy Link',
cancelShare: 'Cancel',
// Empty data
noData: 'No relevant data',
// Action tips
saveSuccess: 'Saved successfully',
saveFailed: 'Save failed, please try again later',
}

View File

@@ -1,4 +1,108 @@
export const lang = {
//title为每个页面的标题
title: 'Order Details'
}
//title for each page
title: 'Order Details',
// ====== Order Status ======
status: {
estimatedDelivery: 'Estimated delivery in {days} days',
orderCloseReason: 'Order close reason:',
remainingTime: 'Remaining time:'
},
// ====== Address ======
address: {
receivingAddress: 'Shipping Address:',
deliveryTime: 'Delivery Time:',
deliverer: 'Deliverer:',
delivererMobile: 'Delivery Phone:'
},
// ====== Store Pickup ======
store: {
businessHours: 'Business Hours:',
address: 'Address:',
noPickupStore: 'No pickup store available',
pickupName: 'Name',
reservedMobile: 'Reserved Phone',
pickupTime: 'Pickup Time',
pickupCode: 'Pickup Code:'
},
// ====== Goods ======
goods: {
cardDeduction: 'Card Deduction',
applyAfterSales: 'After-sales',
applyRefund: 'Refund',
viewAfterSales: 'View After-sales',
viewRefund: 'View Refund'
},
// ====== Order Info ======
orderInfo: {
orderType: 'Order Type:',
orderNo: 'Order No.:',
outTradeNo: 'Trade No.:',
createTime: 'Created:',
closeTime: 'Closed:',
payType: 'Payment Method:',
payTime: 'Paid At:',
deliveryType: 'Delivery Method:',
buyerMessage: 'Buyer Message:',
promotionDiscount: 'Promotion Discount:',
invoiceType: 'Invoice Type:',
invoiceTypePaper: 'Paper Invoice',
invoiceTypeElectronic: 'Electronic Invoice',
invoiceTitleType: 'Invoice Title Type:',
invoiceTitlePersonal: 'Personal',
invoiceTitleCompany: 'Company',
invoiceTitle: 'Invoice Title:',
invoiceContent: 'Invoice Content:',
invoiceMailAddress: 'Invoice Mailing Address:',
invoiceEmail: 'Invoice Email:',
myCardPack: 'My Card Pack:',
view: 'View'
},
// ====== Virtual Goods Verification ======
virtualGoods: {
showCodeToVerifier: 'Please show the barcode or QR code to the verifier',
verifyInfo: 'Verification Info',
verifyCount: 'Verification Count',
verifyCountText: '{remaining} remaining / {total} total',
validPeriod: 'Valid Period',
permanentValid: 'Permanent',
verifyRecord: 'Verification Records',
verifier: 'Verified By',
verifyTime: 'Verification Time',
noVerifyRecord: 'No verification records',
cardInfo: 'Card Info',
cardNo: 'Card No.:',
cardPassword: 'Password:'
},
// ====== Amount ======
amount: {
goodsMoney: 'Goods Amount',
deliveryFee: 'Shipping',
memberCard: 'Member Card',
taxFee: 'Tax',
invoiceDeliveryFee: 'Invoice Delivery',
orderAdjust: 'Order Adjustment',
promotionDiscount: 'Discount',
coupon: 'Coupon',
balanceUsed: 'Balance Used',
pointDeduction: 'Points Deduction',
totalPayable: 'Total Payable:'
},
// ====== Buttons ======
button: {
evaluate: 'Review',
additionalEvaluate: 'Add Review'
},
// ====== Toast Messages ======
toast: {
orderInfoNotFound: 'Order information not found!'
}
}

View File

@@ -1,4 +1,151 @@
export const lang = {
//title为每个页面的标题
title: 'Pending Payment Order'
}
//title for each page
title: 'Confirm Order',
// ====== Virtual Goods ======
virtual: {
tips: 'Please provide your mobile number for virtual goods so the merchant can contact you',
mobile: 'Mobile Number',
mobilePlaceholder: 'Please enter your mobile number'
},
// ====== Address ======
address: {
setAddress: 'Please set your delivery address',
deliveryTime: 'Delivery Time',
selectDeliveryTime: 'Please select delivery time'
},
// ====== Local Delivery ======
localDelivery: {
providedBy: 'Delivered by ',
deliveredBy: '',
switchStore: 'Switch',
noStoreNearby: 'No stores available for delivery nearby, please choose another delivery method'
},
// ====== Store Pickup ======
store: {
businessHours: 'Business Hours:',
name: 'Name',
reservedMobile: 'Reserved Phone',
pickupTime: 'Pickup Time',
noPickupStore: 'No pickup store available, please choose another delivery method',
address: 'Address:'
},
// ====== Store List Popup ======
storePopup: {
title: 'All relevant stores nearby have been selected for you',
businessHours: 'Business Hours:',
address: 'Address:',
noStoreNearby: 'No pickup stores available near the selected address'
},
// ====== Goods ======
goods: {
notSupportDeliveryType: 'This product does not support {deliveryType}'
},
// ====== Order Money ======
orderMoney: {
buyerMessage: 'Buyer Message',
noMessage: 'No message',
coupon: 'Coupon',
couponSelected: '{count} coupon selected',
noCoupon: 'No coupon',
totalItems: '{count} items',
subtotal: 'Subtotal:',
goodsAmount: 'Goods Amount',
shippingFee: 'Shipping',
discount: 'Discount',
pointsDeduction: 'Points Deduction'
},
// ====== Member Card ======
memberCard: {
activate: 'Activate ',
expectedSave: 'Estimated savings for this order',
yuan: '',
weekCard: 'Weekly Card',
week: 'week',
monthCard: 'Monthly Card',
month: 'month',
quarterCard: 'Quarterly Card',
quarter: 'quarter',
yearCard: 'Yearly Card',
year: 'year'
},
// ====== Agreement ======
agreement: {
tipPrefix: 'Please read the ',
tipSuffix: ' before purchase. Placing an order means you agree to this agreement'
},
// ====== Settlement Bar ======
settlement: {
totalItems: '{count} items',
total: 'Total:',
submitOrder: 'Submit Order'
},
// ====== Promotion Popup ======
promotionPopup: {
title: 'Promotion Discount',
confirm: 'OK'
},
// ====== Buyer Message Popup ======
buyerMessagePopup: {
title: 'Buyer Message',
placeholder: 'Please coordinate with the merchant before leaving a message',
confirm: 'OK'
},
// ====== Coupon Popup ======
couponPopup: {
title: 'Coupons',
discount: '% off',
minSpend: 'Min. spend {amount}',
noThreshold: 'No threshold',
maxDiscount: 'Max discount ¥{amount}',
validPeriod: 'Valid Period:',
permanentValid: 'Permanent',
noAvailableCoupon: 'No available coupons',
confirm: 'OK'
},
// ====== Form Popup ======
formPopup: {
title: 'Buyer Info',
confirm: 'OK'
},
// ====== Member Card Popup ======
memberCardPopup: {
title: 'Select Card',
unlimited: 'Unlimited',
remaining: '{count} remaining',
permanentValid: 'Permanent',
confirm: 'OK'
},
// ====== Toast Messages ======
toast: {
enterReservedMobile: 'Please enter reserved mobile number',
enterValidMobile: 'Please enter a valid mobile number',
noDeliveryMethod: 'Merchant has not set delivery method',
selectAddressFirst: 'Please select your delivery address first',
noPickupStore: 'No pickup store available, please choose another delivery method',
selectPickupTime: 'Please select pickup time',
noDeliveryStore: 'No stores available for delivery, please choose another delivery method',
selectDeliveryTime: 'Please select delivery time',
enterInvoiceTitle: 'Please enter invoice title',
enterTaxpayerNumber: 'Please enter taxpayer identification number',
enterInvoiceAddress: 'Please enter invoice mailing address',
enterEmail: 'Please enter email',
enterValidEmail: 'Please enter a valid email',
selectInvoiceContent: 'Please select invoice content'
}
}

View File

@@ -1,4 +1,72 @@
export const lang = {
//title为每个页面的标题
//title is the page title
title: 'Refund Details',
}
// ====== Status Tips ======
statusTip: {
merchantReject: 'If the merchant rejects, you can reapply',
merchantAgree: 'If the merchant agrees, the application will be approved and refunded to you',
merchantConfirmReceive: 'Refund will be issued once the merchant confirms receipt',
merchantRejectReceive: 'If the merchant refuses to receive the goods, the refund will be closed and you can reapply'
},
// ====== Consult Record Entry ======
consultRecord: 'Negotiation Records',
// ====== Return Address ======
returnAddress: {
title: 'Return Address',
receiver: 'Receiver: ',
contact: 'Contact: ',
address: 'Return Address: ',
copy: 'Copy'
},
// ====== Refund Information ======
refundInfo: {
title: 'Refund Information',
refundMethod: 'Refund Method: ',
refundOnly: 'Refund Only',
refundReturn: 'Refund & Return',
refundChannel: 'Refund Channel: ',
originalRefund: 'Original Payment Refund',
offlineRefund: 'Offline Refund',
balanceRefund: 'Refund to Balance',
refundReason: 'Refund Reason: ',
refundAmount: 'Refund Amount: ',
refundNo: 'Refund No.: ',
applyTime: 'Apply Time: ',
refundTime: 'Refund Time: ',
refundRemark: 'Refund Remark: ',
refundPoint: 'Refund Points: '
},
// ====== Return Goods Form ======
returnGoods: {
expressCompany: 'Logistics Company',
expressCompanyPlaceholder: 'Please enter logistics company',
expressNo: 'Tracking Number',
expressNoPlaceholder: 'Please enter tracking number',
expressRemark: 'Logistics Remark',
expressRemarkPlaceholder: 'Optional'
},
// ====== Consult Record Page ======
record: {
buyer: 'Buyer',
seller: 'Seller',
backToDetail: 'Back to Details'
},
// ====== Toast Messages ======
toast: {
noRefundInfo: 'Refund information for this order item not found',
cancelSuccess: 'Cancelled successfully'
},
// ====== Form Validation ======
validate: {
pleaseInputExpressCompany: 'Please enter logistics company',
pleaseInputExpressNo: 'Please enter tracking number'
}
}

View File

@@ -1,4 +1,45 @@
export const lang = {
//title为每个页面的标题
title: 'Exchange'
}
title: 'Exchange',
// 积分与价格
pointsSuffix: ' points',
stockLabel: 'Stock:',
unlimitedStock: 'Unlimited',
unitPiece: 'pc(s)',
// 优惠券描述
containsBalance: 'Contains {balance}',
noThresholdCoupon: 'No threshold coupon',
fullReduction: 'Spend {atLeast} save {money}',
fullAmount: 'Spend {atLeast}',
discountSuffix: '% off',
maxDiscount: 'Max discount {limit}',
validFromReceive: 'Valid for {days} days from receipt',
validUntil: 'Expires {time}',
// 社群
addCommunity: 'Add',
addCommunityTitle: 'Add Community',
addCommunityTip: 'Long press to scan QR code and join the community',
// 商品规格与属性
selectSpec: 'Select',
attribute: 'Attributes',
goodsAttribute: 'Product Attributes',
goodsService: 'Product Services',
confirm: 'Confirm',
// 详情
exchangeDetail: 'Exchange Details',
noExchangeDetail: 'No exchange details available!',
// 底部按钮
loginToExchange: 'Login to redeem',
insufficientStock: 'Out of stock',
insufficientPoints: 'Insufficient points',
exchange: 'Redeem',
// 分享
shareTitle: 'Redeem {title} with only {point} points'
}

View File

@@ -1,4 +1,57 @@
export const lang = {
//title为每个页面的标题
title: 'Point Mall'
}
title: 'Point Mall',
// 搜索
searchPlaceholder: 'Search products',
// 头部
myPoints: 'My Points',
points: 'points',
reminder: 'Reminder',
remarkText: 'Redeem great gifts with points, new items daily!',
// 储值套餐
rechargeAmount: 'Recharge {price}',
earnPoints: 'Earn {point} points',
goRecharge: 'Recharge',
// 分类标题
exchangeCoupon: 'Points for Coupons',
exchangeHongbao: 'Points for Red Packets',
exchangeGift: 'Points for Gifts',
// 优惠券
discountSuffix: '% off',
noThresholdCoupon: 'No threshold coupon',
minSpendAvailable: 'Min. spend {amount}',
allStoreCoupon: 'Store-wide',
designatedCoupon: 'Designated items',
exchange: 'Redeem',
// 商品
yuan: '',
stock: 'Stock:',
exchanged: 'Redeemed:',
// 积分说明弹窗
pointDescription: 'Point Description',
pointAcquisition: 'Earning Points',
acquisitionItem1: '1. Points can be earned through registration, check-in, sharing, consumption, and recharge.',
acquisitionItem2: '2. Points can be earned when purchasing certain products.',
pointUsage: 'Using Points',
usageItem1: '1. Points can be used to redeem products in the Points Center.',
usageItem2: '2. Points can be used when participating in certain activities.',
usageItem3: '3. Points cannot be transferred, sold, and have no expiration date.',
pointQuery: 'Checking Points',
queryItem1: '1. Points balance and details can be checked in the Member Center.',
// 分类列表
categoryExchangeGoods: 'Points for Goodies',
categoryExchangeCoupon: 'Points for Coupons',
categoryExchangeHongbao: 'Points for Red Packets',
// 提示
merchantNotEnabled: 'Merchant has not enabled the points mall',
noActivity: 'No related activities available'
}

View File

@@ -1,4 +1,63 @@
export const lang = {
//title为每个页面的标题
title: 'Pending Payment Orders'
}
//title for each page
title: 'Confirm Order',
// ====== Virtual Goods ======
virtual: {
tips: 'Please provide your mobile number for virtual goods so the merchant can contact you',
mobile: 'Mobile Number',
mobilePlaceholder: 'Please enter your mobile number'
},
// ====== Address ======
address: {
setAddress: 'Please set your delivery address',
deliveryTime: 'Delivery Time',
selectDeliveryTime: 'Please select delivery time'
},
// ====== Local Delivery ======
localDelivery: {
providedBy: 'Delivered by ',
deliveredBy: '',
switchStore: 'Switch',
noStoreNearby: 'No stores available for delivery nearby, please choose another delivery method'
},
// ====== Store Pickup ======
store: {
businessHours: 'Business Hours:',
name: 'Name',
reservedMobile: 'Reserved Phone',
mobilePlaceholder: 'Please enter your mobile number',
pickupTime: 'Pickup Time',
noPickupStore: 'No pickup store available, please choose another delivery method',
address: 'Address:'
},
// ====== Store List Popup ======
storePopup: {
title: 'All relevant stores nearby have been selected for you',
businessHours: 'Business Hours:',
address: 'Address:',
noStoreNearby: 'No pickup stores available near the selected address'
},
// ====== Order Money ======
orderMoney: {
buyerMessage: 'Buyer Message',
buyerMessagePlaceholder: 'Please coordinate with the merchant before leaving a message',
pointsRequired: 'Points Required',
pointsSuffix: ' pts',
shippingFee: 'Shipping'
},
// ====== Settlement Bar ======
settlement: {
totalItems: '{count} items',
total: 'Total:',
pointsSuffix: ' pts',
submitOrder: 'Submit Order',
shortByForMinimum: '{amount} more for minimum order'
}
}

View File

@@ -72,6 +72,20 @@ export const lang = {
prompt: '提示',
serviceTypeNotSupported: '当前客服类型不支持此页面',
// ====== index.vue - 帮助文档 ======
helpContent: '# 使用帮助\n\n## 基本功能\n- **发送消息**: 在输入框中输入文字后发送\n- **语音输入**: 点击麦克风图标进行语音输入\n- **附件发送**: 点击+号可以发送图片、文件、位置\n\n## 消息类型\n- **文本消息**: 普通文字对话\n- **Markdown**: 支持格式化的文档内容\n- **文件**: 支持各种文件格式预览\n- **音频**: 支持语音消息播放\n- **视频**: 支持视频播放\n- **链接**: 支持网页链接跳转\n- **商品**: 支持商品卡片展示\n\n## 操作功能\n- **点赞/踩**: 对AI回复进行评价\n- **复制**: 长按消息可复制内容\n- **转发**: 支持消息转发功能',
// ====== index.vue - AI回复模板 ======
aiResponseTemplate1: '我理解您的需求,让我为您详细解答。',
aiResponseTemplate2: '感谢您的提问,这是一个很好的问题。',
aiResponseTemplate3: '根据您的问题,我建议您可以考虑以下几个方面:',
aiResponseTemplate4: '这个问题很常见,让我为您提供一些解决方案。',
aiResponseTemplate5: '我明白您的困惑,让我帮您分析一下。',
aiProcessingMessage: '您的问题"{question}"我已经收到,正在为您处理中...',
// ====== index.vue - 商品咨询 ======
productInquiryTemplate: '我想了解以下商品的详细信息:\n商品名称:{name}\n价格:¥{price}\n商品ID:{id}',
// ====== ai-chat-avatar-selector ======
avatarSelectorTitle: '更换头像',
chooseFromAlbum: '从相册选择',

View File

@@ -28,6 +28,31 @@ export const lang = {
weChatWorkKefu: '企业微信客服',
},
// 客服服务
customerService: {
openFailed: '打开客服失败',
wxworkConfigIncomplete: '企业微信配置不完整',
jumpFailed: '跳转失败,请稍后重试',
miniProgramOnly: '第三方小程序客服仅在微信小程序中可用',
linkCopied: '链接已复制,请在浏览器打开',
customerLinkCopied: '客服链接已复制',
noServicePhone: '暂无客服电话',
getPhoneFailed: '获取客服电话失败',
contactCustomerService: '联系客服',
callServiceTip: '请联系客服,客服电话是 {phone}',
noServiceOffline: '抱歉,商家暂无客服,请线下联系',
configError: '客服配置错误',
configErrorDetail: '配置有误:\n{errors}',
tip: '提示',
cannotAddWxwork: '无法直接添加企业微信,是否使用其他方式联系客服?',
onlineUnavailable: '在线客服不可用,是否拨打电话联系客服?',
developing: '客服选择功能开发中',
wxworkNotConfigured: '企业微信客服未配置',
serviceUnavailable: '客服暂不可用',
wxworkLinkNotConfigured: '企业微信链接未配置',
fromFloatButton: '来自悬浮按钮的咨询',
},
login: '登录/注册',
loginTips: '点击登录 享受更多精彩信息',
toLogin: '去登录',

View File

@@ -0,0 +1,4 @@
export const lang = {
viewMore: '查看更多',
noArticles: '暂无相关文章',
}

View File

@@ -0,0 +1,30 @@
export const lang = {
// 按钮文本
claim: '领取',
claimNow: '立即领取',
goUse: '去使用',
useNow: '立即使用',
goBrowse: '去逛逛',
// 金额单位
yuan: '元',
discount: '折',
// 优惠券使用条件
minSpendAvailable: '满{amount}元可用',
noThresholdCoupon: '无门槛优惠券',
minSpendUse: '满{amount}元使用',
noThresholdUse: '无门槛使用',
allProductsAvailable: '所有商品可用',
specifiedProductsAvailable: '指定商品可用',
specifiedProductsUnavailable: '指定商品不可用',
// 其他文本
coupon: '优惠券',
noCoupons: '暂无优惠券',
validUntil: '有效期至{date}',
// 提示消息
couponSoldOut: '该优惠券已抢光',
claimSuccess: '领取成功',
}

View File

@@ -0,0 +1,22 @@
export const lang = {
// 授权提示文本
clickToAuthorizeAvatarNickname: '点击授权头像昵称',
clickToGetWechatAvatar: '点击获取微信头像',
// 完善资料弹窗
completeInfoTitle: '获取您的昵称、头像',
completeInfoTip: '获取用户头像、昵称完善个人资料,主要用于向用户提供具有辨识度的用户中心界面',
avatarLabel: '头像',
nicknameLabel: '昵称',
nicknamePlaceholder: '请输入昵称',
save: '保存',
// 弹窗提示
tip: '提示',
bindMobileTip: '使用会员码需先绑定手机号,是否绑定手机号?',
// Toast 提示
pleaseEnterNickname: '请输入昵称',
uploadFailed: '上传失败',
avatarPullFailed: '头像拉取失败',
}

View File

@@ -0,0 +1,51 @@
export const lang = {
// ===== ns-login 组件 =====
'ns-login': {
// H5 绑定手机号弹窗
bindMobileTitle: '检测到您还未绑定手机号',
bindMobileTip: '为了方便您接收订单等信息,需要绑定手机号',
mobileLabel: '手机号',
mobilePlaceholder: '请输入手机号',
captchaLabel: '验证码',
captchaPlaceholder: '请输入验证码',
dynacodeLabel: '动态码',
dynacodePlaceholder: '请输入动态码',
save: '保存',
// 小程序登录弹窗
welcomeTitle: '欢迎来到 {siteName}',
loginWithMobile: '使用手机号登录,',
registerLogin: '注册登录,',
getServicesTip: '获得订单、售后等服务。',
agree: '我同意',
privacyPolicy: '《隐私条款》',
userServiceAgreement: '《用户服务协议》',
agreeAndAuthorizeMobile: '同意隐私协议并授权手机号',
authorizeMobile: '授权手机号码',
notNow: '暂不登录',
// 昵称头像
avatarLabel: '头像',
nicknameLabel: '昵称',
nicknamePlaceholder: '请输入昵称',
getMobile: '获取手机号',
// 动态码
getDynacode: '获取动态码',
resendAfter: '{seconds}s后可重新获取',
// 提示文案
pleaseConfirmAgreement: '请确认相关协议',
uploadFailed: '上传失败',
pleaseEnterMobile: '请输入手机号',
pleaseEnterCorrectMobile: '请输入正确的手机号',
pleaseEnterCaptcha: '请输入验证码',
pleaseEnterDynacode: '请输入动态码',
requestFail: 'request:fail',
loggingIn: '登录中',
loginFailed: '登录失败',
pleaseAuthorizeMobile: '请授权您的手机号码',
pleaseEnterNickname: '请输入昵称',
avatarPullFailed: '头像拉取失败',
}
}

View File

@@ -0,0 +1,33 @@
export const lang = {
// ===== ns-newform 组件 =====
'ns-newform': {
// 输入框 placeholder 默认值
inputPlaceholder: '请输入提示语',
selectPlaceholder: '请选择',
datePlaceholder: '请选择日期',
timePlaceholder: '请选择时间',
startDate: '开始日期',
endDate: '结束日期',
startTime: '开始时间',
endTime: '结束时间',
selectProvinceCity: '请选择省市',
selectProvinceCityDistrict: '请选择省市区',
// 验证提示 - 必填
pleaseInput: '请输入{title}',
pleaseSelect: '请选择{title}',
pleaseSelectAtLeastOne: '请至少选择一个{title}',
pleaseUploadAtLeastOne: '请至少上传一张{title}',
// 验证提示 - 格式校验
idCardInvalid: '身份证输入不合法',
mobileInvalid: '手机号输入不合法',
// 验证提示 - 范围校验
endDateBeforeStartDate: '结束日期不能小于开始日期',
endTimeBeforeStartTime: '结束时间必须大于开始时间',
// 图片上传
maxUploadImages: '最多上传{max}张图片',
}
}

View File

@@ -0,0 +1,17 @@
export const lang = {
// ===== yuyue-date 组件 =====
'yuyueDate': {
// 指定日期按钮
appointedDate: '指定日期',
// 时间状态文本
fullyBooked: '已约满',
available: '可预约',
// 选中状态
noSelection: '暂无选择',
// Toast 提示
weekdayCannotBook: '{weekday}不可以预约',
}
}

View File

@@ -1,5 +1,55 @@
export const lang = {
//title为每个页面的标题
// title: '分销商申请'
title: ''
title: '',
// 页面头部
pleaseFillApplyInfo: '请填写申请信息',
// 表单字段
inviter: '邀请人',
nameLabel: '名称',
namePlaceholder: '请输入{name}名称',
mobile: '手机号',
mobilePlaceholder: '请输入手机号',
// 协议
haveReadAndUnderstand: '我已阅读并了解',
applyAgreement: '【{name}申请协议】',
// 按钮
applyBecome: '申请成为{name}',
reapply: '重新申请',
// 申请条件
applyConditionTitle: '分销商申请条件',
becomeConditionTitle: '成为分销商的条件',
conditionConsumeCount: '申请成为{name},需要您的消费次数达到{count}次',
conditionConsumeMoney: '申请成为{name},需要您的消费金额达到{money}元',
conditionBuyGoods: '申请成为{name},需要购买以下指定商品(任选其一)',
becomeConditionBuyGoods: '成为{name},需要购买以下指定商品(任选其一)',
// 展开收起
expandMore: '展开更多',
collapse: '收起',
// 状态提示
notFenxiao: '您还不是分销商',
applyPending: '您已提交{name}申请,等待平台审核',
applyRejected: '您提交的{name}申请,已被拒绝,请再接再厉',
// 默认值
none: '无',
// Toast 提示
merchantNotOpenFenxiao: '商家未开启分销',
pleaseReadAndCheckAgreement: '请仔细阅读协议,并勾选',
// 页面标题后缀
applySuffix: '申请',
// 表单校验
pleaseEnterName: '请输入{name}名称',
pleaseEnterMobile: '请输入手机号',
pleaseEnterValidMobile: '请输入正确的手机号',
}

View File

@@ -1,5 +1,70 @@
export const lang = {
//title为每个页面的标题
// title: '分销中心',
title: ''
title: '',
// 头部会员信息
superiorAgent: '上级代理商',
headquarters: '总店',
invitedSuccess: '已邀请成功:{count}人',
// 佣金/余额
withdrawable: '可{withdraw}(元)',
withdrawDetail: '提现明细',
withdrawing: '提现中(元)',
pendingDeposit: '待入账(元)',
withdraw: '提现',
// 功能菜单
myFans: '我的粉丝',
invitedUsers: '邀请的用户',
detail: '明细',
totalAccumulated: '累计{account}{symbol}{amount}',
order: '订单',
orderDetail: '订单明细',
myInviteCode: '我的邀请码',
inviteFriendsEarnRewards: '邀好友赚好礼',
// 未申请/空状态
notFenxiaoYet: '您还不是{name},请先提交申请',
joinNow: '立即加入',
// 任务弹窗
quickUpgradeTips: '快速升级技巧',
completed: '已完成',
incomplete: '未完成',
goComplete: '去完成',
tip: '提示',
anyConditionUpgrade: '满足任意一条件即可升级',
allConditionsUpgrade: '满足全部条件才能进行升级',
// 页面标题后缀
center: '中心',
// Toast 提示
merchantNotOpenFenxiao: '商家未开启分销',
fenxiaoFrozen: '当前分销商已冻结',
// 升级任务 - 下级消费
subordinateConsumption: '下级消费',
subordinateOrderCount: '下级消费单数满{count}单',
subordinateOrderCountTip: '分销商自己购买和自己推荐的直属会员购买的订单次数',
subordinateOrderAmount: '下级消费金额满{amount}元',
subordinateOrderAmountTip: '分销商自己购买和推荐的直属会员购买的订单的总额',
subordinateCommissionAmount: '下级消费产生{account}总额满{amount}元',
subordinateCommissionAmountTip: '分销商自己购买和自己推荐的直属会员购买的订单{account}总额',
// 升级任务 - 自身消费
selfConsumption: '自身消费',
selfOrderCount: '自身消费单数满{count}单',
selfOrderCountTip: '分销商自己购买的订单次数',
selfOrderAmount: '自身消费金额满{amount}元',
selfOrderAmountTip: '分销商自己购买的订单总额',
// 升级任务 - 邀请好友
inviteFriends: '邀请好友',
inviteFriendCount: '邀请好友人数达到{count}人',
inviteFriendCountTip: '分销商的直属下级会员人数(包含已经申请成为分销商的)',
inviteFenxiaoCount: '邀请好友成为分销商人数达到{count}人',
inviteFenxiaoCountTip: '分销商的直属下级分销商人数',
}

View File

@@ -1,5 +1,49 @@
export const lang = {
//title为每个页面的标题
// title: '分销商等级',
title: ''
title: '',
// 页面标题后缀
levelSuffix: '等级',
// 分佣比率
firstLevelCommissionRate: '一级分佣比率',
secondLevelCommissionRate: '二级分佣比率',
thirdLevelCommissionRate: '三级分佣比率',
// 升级任务
quickUpgradeTips: '快速升级技巧',
completed: '已完成',
incomplete: '未完成',
// 提示弹窗
tip: '提示',
anyConditionUpgrade: '满足任意一条件即可升级',
allConditionsUpgrade: '满足全部条件才能进行升级',
// Toast 提示
merchantNotOpenFenxiao: '商家未开启分销',
// 升级任务 - 下级消费
subordinateConsumption: '下级消费',
subordinateOrderCount: '下级消费单数满{count}单',
subordinateOrderCountTip: '分销商自己购买和自己推荐的直属会员购买的订单次数达到{count}单',
subordinateOrderAmount: '下级消费金额满{amount}元',
subordinateOrderAmountTip: '分销商自己购买和推荐的直属会员购买的订单的总额达到{amount}元',
subordinateCommissionAmount: '下级消费产生佣金总额满{amount}元',
subordinateCommissionAmountTip: '分销商自己购买和自己推荐的直属会员购买的订单佣金总额达到{amount}元',
// 升级任务 - 自身消费
selfConsumption: '自身消费',
selfOrderCount: '自身消费单数满{count}单',
selfOrderCountTip: '分销商自己购买的订单次数达到{count}单',
selfOrderAmount: '自身消费金额满{amount}元',
selfOrderAmountTip: '分销商自己购买的订单总额满足{amount}元',
// 升级任务 - 邀请好友
inviteFriends: '邀请好友',
inviteFriendCount: '邀请好友人数达到{count}人',
inviteFriendCountTip: '分销商的直属下级会员人数达到{count}人(包含已经申请成为分销商的)',
inviteFenxiaoCount: '邀请好友成为分销商人数达到{count}人',
inviteFenxiaoCountTip: '分销商的直属下级分销商人数达到{count}人',
}

View File

@@ -9,5 +9,39 @@ export const lang = {
emptyTips: '暂无商品',
goForStroll: '去逛逛',
del: '删除',
login: '去登录'
login: '去登录',
// 购物车头部
totalKinds: '共{count}种商品',
// 优惠券提示
coupon: '优惠券',
couponMaxDiscount: '领券结算最高可减{money}元',
receive: '领取',
view: '查看',
clickToReceive: '点击领取',
clickToView: '点击查看',
// 满减
fullReduction: '满减',
fullReductionItem: '{limit}减{discount}',
// 失效商品
invalidGoods: '失效商品{count}件',
clear: '清空',
invalid: '已失效',
// 空购物车
cartEmpty: '购物车为空',
cartEmptySubText: '赶紧去逛逛,购买心仪的商品吧',
// 优惠明细弹窗
discountDetail: '优惠明细',
goodsTotal: '商品总额',
// 优惠券弹窗
discountLabel: '折',
minSpend: '满{amount}可用',
noThreshold: '无门槛',
maxDiscount: '最多可抵{symbol}{limit}',
validityPeriod: '有效期:',
validFromReceive: '领取之日起{days}天内有效',
longTermValid: '长期有效',
received: '已领取',
// 结算按钮
receiveCouponSettle: '领券结算({count})',
settleImmediately: '立即结算({count})'
}

View File

@@ -29,4 +29,81 @@ export const lang = {
kefu:'客服',
follow:'收藏',
spec:'规格',
// SKU相关
stockInsufficient: '库存不足',
offShelves: '该商品已下架',
soldOut: '商品已售罄',
buyCountNotZero: '购买数量不能小于等于0',
stockLessThanMinBuy: '库存小于最低购买数量',
purchaseLimit: '该商品每人限购{count}{unit}',
purchaseLimitWithPurchased: '该商品每人限购{count}{unit},您已购买了{purchased}{unit}',
maxPurchasePerTime: '该商品每次最多购买{count}{unit}',
selectedSpec: '已选规格:',
buyCount: '购买数量',
exchangeCount: '兑换数量',
joinCart: '加入购物车',
confirmBtn: '确认',
rushBuy: '立即抢购',
exchangeBtn: '兑换',
addToCartSuccess: '加入购物车成功',
minBuyStart: '{minBuy}{unit}起售',
balanceLabel: '尾款',
pointLabel: '积分:',
stockLabel: '库存:',
groupOfNum: '{num}人团',
limitPerPerson: '每人限购{count}{unit}',
limitBuyRange: '{minBuy}{unit}起售,限购{maxBuy}{unit}',
limitBuyMax: '限购{maxBuy}{unit}',
previewCannotBuy: '预览商品无法购买',
specNotInBale: '该规格未参与打包一口价活动',
goodsStockInsufficient: '商品库存不足',
goodsAddCartSuccess: '商品添加购物车成功',
selected: '已选择:',
startingNum: '起售{num}件',
goodsOffShelves: '商品已下架',
// 价格与促销
limitedTimeDiscount: '限时折扣',
sold: '已售',
countdownEndsIn: '距结束仅剩',
originalPrice: '原价',
// 组合套餐
comboPackage: '组合套餐',
comboPrice: '套餐价',
// 优惠券
coupons: '优惠券',
discountOff: '折',
minSpendAvailable: '满{amount}可用',
noThreshold: '无门槛',
maxDiscount: '最多可抵{symbol}{amount}',
validUntilDate: '有效期:{date}',
validForDays: '有效期:领取之日起{days}天内有效',
validPermanent: '有效期:长期有效',
couponSoldOut: '已抢光',
couponClaimed: '已领取',
couponReceive: '领取',
// 促销活动
promotion: '促销',
fullReduction: '满减',
fullGift: '满送',
freeShipping: '包邮',
// 商品留言
productMessage: '商品留言',
// 智能客服
aiCustomerService: '智能客服',
// 联系弹窗
dialOnMobile: '可在手机端拨打{phone}',
cancel: '取消',
copyToClipboard: '复制到剪切板',
copySuccess: '复制成功',
// 通用按钮
confirm: '确定',
}

View File

@@ -1,4 +1,57 @@
export const lang = {
//title为每个页面的标题
title: '会员卡'
title: '会员卡',
// 会员信息
validUntil: '有效期至:',
// 会员卡描述
enjoyDiscountAnd: '可享受消费折扣和',
memberGiftBenefits: '会员大礼包等权益',
// 卡种选择
cardTypeSelection: '卡种选择',
weekCardName: '周卡',
weekCardUnit: '周',
monthCardName: '月卡',
monthCardUnit: '月',
quarterCardName: '季卡',
quarterCardUnit: '季',
yearCardName: '年卡',
yearCardUnit: '年',
// 会员权益
memberBenefits: '会员权益',
freeShipping: '全场包邮',
enjoyFreeShipping: '享受商品包邮服务',
consumptionDiscount: '消费折扣',
enjoyDiscountOnSomeProducts: '部分商品下单可享{discount}折优惠',
pointsReward: '积分回馈',
earnPointsMultiplier: '下单享{multiplier}倍积分回馈',
// 开卡礼包
welcomeGift: '开卡礼包',
pointsGift: '积分礼包',
giftPoints: '赠送{points}积分',
redPacketGift: '红包礼包',
giftRedPacket: '赠送{amount}元红包',
couponGift: '优惠券礼包',
giftCoupons: '赠送{count}张优惠券',
// 操作按钮
renewNow: '立即续费',
rechargeToActivate: '充值开通',
activateNow: '立即开通',
// 协议
purchaseAgreement: '购买既视为同意',
// 弹窗
cardDescription: '会员卡说明',
// 空数据
noCardsAvailable: '暂无可开会员卡',
// 确认提示
cardOverrideConfirm: '您有尚未过期的会员卡,再次购卡会覆盖掉之前的卡,是否继续?',
}

View File

@@ -52,5 +52,28 @@ export const lang = {
surePhoneNumber: "请输入正确的手机号",
alikePhone: "与原手机号一致,无需修改",
modify: '修改'
modify: '修改',
sexUnknown: "未知",
sexMale: "男",
sexFemale: "女",
pleaseSelectBirthday: "请选择生日",
alikeRealName: "与原真实姓名一致,无需修改",
noEmptyRealName: "真实姓名不能为空",
passwordMinLength: "新密码长度不能小于{num}位",
passwordComplexityPrefix: "密码需包含",
passwordNumber: "数字",
passwordLowercase: "小写字母",
passwordUppercase: "大写字母",
passwordSymbol: "特殊字符",
passwordSeparator: "、",
pleaseInputMobile: "请输入手机号",
codeSent: "已发送({seconds}s)",
doNotRepeatedlyClick: "请勿重复点击",
pleaseSelectRegion: "请选择所在地区",
pleaseInputDetailAddress: "请输入详细地址"
}

View File

@@ -57,5 +57,39 @@ export const lang = {
surePhoneNumber: "请输入正确的手机号",
alikePhone: "与原手机号一致,无需修改",
modify: '修改'
modify: '修改',
pleaseInput: "请输入",
usernameModifyTip: "用户名仅可修改一次,请谨慎设置",
pleaseSelectBirthday: "请选择生日",
bindMobileFirstTip: "请先绑定手机再执行该操作",
bindNow: "立即绑定",
smsCode: "短信验证码",
sendCodeTip: '点击"获取动态码",将会向您已绑定的手机号{mobile}发送验证码',
oneClickAuthBind: "一键授权绑定",
manualBind: "手动绑定",
region: "所在地区",
pleaseSelectRegion: "请选择省市区县",
detailAddress: "详细地址",
sexUnknown: "未知",
sexMale: "男",
sexFemale: "女",
alikeRealName: "与原真实姓名一致,无需修改",
noEmptyRealName: "真实姓名不能为空",
passwordMinLength: "新密码长度不能小于{num}位",
passwordComplexityPrefix: "密码需包含",
passwordNumber: "数字",
passwordLowercase: "小写字母",
passwordUppercase: "大写字母",
passwordSymbol: "特殊字符",
passwordSeparator: "、",
pleaseInputMobile: "请输入手机号",
codeSent: "已发送({seconds}s)",
doNotRepeatedlyClick: "请勿重复点击",
pleaseInputDetailAddress: "请输入详细地址"
}

View File

@@ -1,3 +1,56 @@
export const lang = {
// title为每个页面的标题
title: '邀请好友',
}
// 活动头部
activityDescription: '活动说明',
activityTime: '活动时间:{startTime}至{endTime}',
inviteNow: '立即邀请',
// 邀请列表
myFriends: '我的好友',
cashRedPacketAmount: '{amount}元现金红包',
pointsAmount: '{amount}积分',
couponsAmount: '{count}张优惠券',
viewMore: '查看更多',
noMoreData: '没有更多数据了',
noInvitedFriendsTip: '您还没有邀请到新朋友哦',
inviteTip: '邀请好友,赚取好礼。赶紧去试试吧~',
// 邀请奖励
inviteRewards: '邀请好友奖励',
cashRedPacket: '现金红包',
points: '积分',
couponUnit: '张',
coupon: '优惠券',
shareDesc: '分享给好友,让好友通过你的分享链接进入并注册登录,可获得以下奖励:',
balanceReward: '可得{amount}元红包奖励',
pointReward: '可得{amount}积分',
couponReward: '可得{count}张优惠券',
unlimitedReward: '可得奖励不受限制',
rewardLimit: '奖励上限为{max}人',
// 邀请步骤
howToInvite: '如何邀请好友',
stepShareLink: '分享链接给好友',
stepFriendEnter: '好友进入',
stepFriendRegister: '好友注册成功获得奖励',
// 海报弹窗
saveImage: '保存图片',
longPressSaveImage: '长按保存图片',
// 分享弹窗
share: '分享',
shareToFriends: '分享给好友',
generatePoster: '生成分享海报',
copyLink: '复制链接',
cancelShare: '取消分享',
// 空数据
noData: '暂无相关数据',
// 操作提示
saveSuccess: '保存成功',
saveFailed: '保存失败,请稍后重试',
}

View File

@@ -1,4 +1,108 @@
export const lang = {
//title为每个页面的标题
title: '订单详情'
title: '订单详情',
// ====== 订单状态区 ======
status: {
estimatedDelivery: '预计{days}日后发货',
orderCloseReason: '订单关闭原因:',
remainingTime: '剩余时间:'
},
// ====== 地址区 ======
address: {
receivingAddress: '收货地址:',
deliveryTime: '送达时间:',
deliverer: '配送员:',
delivererMobile: '外卖电话:'
},
// ====== 门店自提区 ======
store: {
businessHours: '营业时间:',
address: '地址:',
noPickupStore: '当前无自提门店',
pickupName: '姓名',
reservedMobile: '预留手机',
pickupTime: '提货时间',
pickupCode: '提货码:'
},
// ====== 商品区 ======
goods: {
cardDeduction: '次卡抵扣',
applyAfterSales: '申请售后',
applyRefund: '申请退款',
viewAfterSales: '查看售后',
viewRefund: '查看退款'
},
// ====== 订单概况区 ======
orderInfo: {
orderType: '订单类型:',
orderNo: '订单编号:',
outTradeNo: '订单交易号:',
createTime: '创建时间:',
closeTime: '关闭时间:',
payType: '支付方式:',
payTime: '支付时间:',
deliveryType: '配送方式:',
buyerMessage: '买家留言:',
promotionDiscount: '活动优惠:',
invoiceType: '发票类型:',
invoiceTypePaper: '纸质发票',
invoiceTypeElectronic: '电子发票',
invoiceTitleType: '发票抬头类型:',
invoiceTitlePersonal: '个人',
invoiceTitleCompany: '企业',
invoiceTitle: '发票抬头:',
invoiceContent: '发票内容:',
invoiceMailAddress: '发票邮寄地址:',
invoiceEmail: '发票接收邮件:',
myCardPack: '我的卡包:',
view: '查看'
},
// ====== 虚拟商品核销区 ======
virtualGoods: {
showCodeToVerifier: '请将条形码或二维码出示给核销员',
verifyInfo: '核销信息',
verifyCount: '核销次数',
verifyCountText: '剩余{remaining}次/共{total}次',
validPeriod: '有效期',
permanentValid: '永久有效',
verifyRecord: '核销记录',
verifier: '核销人',
verifyTime: '核销时间',
noVerifyRecord: '暂无核销记录',
cardInfo: '卡密信息',
cardNo: '卡号:',
cardPassword: '密码:'
},
// ====== 金额区 ======
amount: {
goodsMoney: '商品金额',
deliveryFee: '运费',
memberCard: '会员卡',
taxFee: '税费',
invoiceDeliveryFee: '发票邮寄费',
orderAdjust: '订单调整',
promotionDiscount: '优惠',
coupon: '优惠券',
balanceUsed: '使用余额',
pointDeduction: '积分抵扣',
totalPayable: '实付金额:'
},
// ====== 按钮区 ======
button: {
evaluate: '评价',
additionalEvaluate: '追评'
},
// ====== 提示消息 ======
toast: {
orderInfoNotFound: '未获取到订单信息!'
}
}

View File

@@ -1,4 +1,151 @@
export const lang = {
//title为每个页面的标题
title: '待付款订单'
title: '确认订单',
// ====== 虚拟商品区 ======
virtual: {
tips: '购买虚拟类商品需填写手机号,方便商家与您联系',
mobile: '手机号码',
mobilePlaceholder: '请输入您的手机号码'
},
// ====== 地址区 ======
address: {
setAddress: '请设置收货地址',
deliveryTime: '送达时间',
selectDeliveryTime: '请选择送达时间'
},
// ====== 本地配送区 ======
localDelivery: {
providedBy: '由',
deliveredBy: '提供配送',
switchStore: '点击切换',
noStoreNearby: '您的附近没有可配送的门店,请选择其他配送方式'
},
// ====== 门店自提区 ======
store: {
businessHours: '营业时间:',
name: '姓名',
reservedMobile: '预留手机',
pickupTime: '提货时间',
noPickupStore: '当前无自提门店,请选择其它配送方式',
address: '地址:'
},
// ====== 门店列表弹窗 ======
storePopup: {
title: '已为您甄选出附近所有相关门店',
businessHours: '营业时间:',
address: '地址:',
noStoreNearby: '所选择收货地址附近没有可以自提的门店'
},
// ====== 商品区 ======
goods: {
notSupportDeliveryType: '该商品不支持{deliveryType}'
},
// ====== 订单金额区 ======
orderMoney: {
buyerMessage: '买家留言',
noMessage: '无留言',
coupon: '优惠券',
couponSelected: '已选择{count}张优惠券',
noCoupon: '不使用优惠券',
totalItems: '共{count}件',
subtotal: '小计:',
goodsAmount: '商品金额',
shippingFee: '运费',
discount: '优惠',
pointsDeduction: '积分抵扣'
},
// ====== 会员卡区 ======
memberCard: {
activate: '开通',
expectedSave: '本单预计可省',
yuan: '元',
weekCard: '周卡',
week: '周',
monthCard: '月卡',
month: '月',
quarterCard: '季卡',
quarter: '季',
yearCard: '年卡',
year: '年'
},
// ====== 交易协议区 ======
agreement: {
tipPrefix: '购买前请先阅读',
tipSuffix: ',下单即代表同意该协议'
},
// ====== 底部结算区 ======
settlement: {
totalItems: '共{count}件',
total: '合计:',
submitOrder: '提交订单'
},
// ====== 活动优惠弹窗 ======
promotionPopup: {
title: '活动优惠',
confirm: '确定'
},
// ====== 买家留言弹窗 ======
buyerMessagePopup: {
title: '买家留言',
placeholder: '留言前建议先与商家协调一致',
confirm: '确定'
},
// ====== 优惠券弹窗 ======
couponPopup: {
title: '优惠券',
discount: '折',
minSpend: '满{amount}可用',
noThreshold: '无门槛',
maxDiscount: '最多可抵¥{amount}',
validPeriod: '有效期:',
permanentValid: '长期有效',
noAvailableCoupon: '暂无可用的优惠券',
confirm: '确定'
},
// ====== 表单修改弹窗 ======
formPopup: {
title: '买家信息',
confirm: '确定'
},
// ====== 次卡选择弹窗 ======
memberCardPopup: {
title: '选择次卡',
unlimited: '不限次数',
remaining: '剩余{count}次',
permanentValid: '长期有效',
confirm: '确定'
},
// ====== 验证提示 ======
toast: {
enterReservedMobile: '请输入预留手机',
enterValidMobile: '请输入正确的手机号',
noDeliveryMethod: '商家未设置配送方式',
selectAddressFirst: '请先选择您的收货地址',
noPickupStore: '没有可提货的门店,请选择其他配送方式',
selectPickupTime: '请选择提货时间',
noDeliveryStore: '没有可配送的门店,请选择其他配送方式',
selectDeliveryTime: '请选择送达时间',
enterInvoiceTitle: '请填写发票抬头',
enterTaxpayerNumber: '请填写纳税人识别号',
enterInvoiceAddress: '请填写发票邮寄地址',
enterEmail: '请填写邮箱',
enterValidEmail: '请填写正确的邮箱',
selectInvoiceContent: '请选择发票内容'
}
}

View File

@@ -1,4 +1,72 @@
export const lang = {
//title为每个页面的标题
title: '退款详情',
// ====== 状态提示 ======
statusTip: {
merchantReject: '如果商家拒绝,你可重新发起申请',
merchantAgree: '如果商家同意,将通过申请并退款给你',
merchantConfirmReceive: '如果商家确认收货将会退款给你',
merchantRejectReceive: '如果商家拒绝收货,该次退款将会关闭,你可以重新发起退款'
},
// ====== 协商记录入口 ======
consultRecord: '协商记录',
// ====== 退货地址 ======
returnAddress: {
title: '退货地址',
receiver: '收货人:',
contact: '联系方式:',
address: '退货地址:',
copy: '复制'
},
// ====== 退款信息 ======
refundInfo: {
title: '退款信息',
refundMethod: '退款方式:',
refundOnly: '仅退款',
refundReturn: '退款退货',
refundChannel: '退款途径:',
originalRefund: '原路退款',
offlineRefund: '线下退款',
balanceRefund: '退款到余额',
refundReason: '退款原因:',
refundAmount: '退款金额:',
refundNo: '退款编号:',
applyTime: '申请时间:',
refundTime: '退款时间:',
refundRemark: '退款说明:',
refundPoint: '退款积分:'
},
// ====== 退货表单 ======
returnGoods: {
expressCompany: '物流公司',
expressCompanyPlaceholder: '请输入物流公司',
expressNo: '物流单号',
expressNoPlaceholder: '请输入物流单号',
expressRemark: '物流说明',
expressRemarkPlaceholder: '选填'
},
// ====== 协商记录页 ======
record: {
buyer: '买家',
seller: '卖家',
backToDetail: '返回详情'
},
// ====== 提示信息 ======
toast: {
noRefundInfo: '未获取到该订单项退款信息',
cancelSuccess: '撤销成功'
},
// ====== 表单验证 ======
validate: {
pleaseInputExpressCompany: '请输入物流公司',
pleaseInputExpressNo: '请输入物流单号'
}
}

View File

@@ -1,4 +1,45 @@
export const lang = {
//title为每个页面的标题
title: '兑换'
title: '兑换',
// 积分与价格
pointsSuffix: '积分',
stockLabel: '库存:',
unlimitedStock: '无限',
unitPiece: '件',
// 优惠券描述
containsBalance: '内含{balance}元',
noThresholdCoupon: '无门槛优惠券',
fullReduction: '满{atLeast}减{money}',
fullAmount: '满{atLeast}元',
discountSuffix: '折',
maxDiscount: '最多优惠{limit}元',
validFromReceive: '领取之日起{days}天内有效',
validUntil: '{time}到期',
// 社群
addCommunity: '添加',
addCommunityTitle: '添加社群',
addCommunityTip: '长按识别二维码,添加社群',
// 商品规格与属性
selectSpec: '选择',
attribute: '属性',
goodsAttribute: '商品属性',
goodsService: '商品服务',
confirm: '确定',
// 详情
exchangeDetail: '兑换详情',
noExchangeDetail: '暂无兑换详情!',
// 底部按钮
loginToExchange: '登录之后方可兑换',
insufficientStock: '库存不足',
insufficientPoints: '积分不足',
exchange: '兑换',
// 分享
shareTitle: '仅需{point}积分即可兑换{title}'
}

View File

@@ -1,4 +1,57 @@
export const lang = {
//title为每个页面的标题
title: '积分商城'
title: '积分商城',
// 搜索
searchPlaceholder: '搜索商品',
// 头部
myPoints: '我的积分',
points: '积分',
reminder: '提醒',
remarkText: '积分兑好礼,每日上新换不停!',
// 储值套餐
rechargeAmount: '储值{price}元',
earnPoints: '可得{point}积分',
goRecharge: '去储值',
// 分类标题
exchangeCoupon: '积分换券',
exchangeHongbao: '积分换红包',
exchangeGift: '积分换礼品',
// 优惠券
discountSuffix: '折',
noThresholdCoupon: '无门槛优惠券',
minSpendAvailable: '满{amount}可用',
allStoreCoupon: '全场券',
designatedCoupon: '指定券',
exchange: '兑换',
// 商品
yuan: '元',
stock: '库存:',
exchanged: '已兑:',
// 积分说明弹窗
pointDescription: '积分说明',
pointAcquisition: '积分的获取',
acquisitionItem1: '1、积分可在注册、签到、分享、消费、充值时获得。',
acquisitionItem2: '2、在购买部分商品时可获得积分。',
pointUsage: '积分的使用',
usageItem1: '1、积分可用于兑换积分中心的商品。',
usageItem2: '2、积分可在参与某些活动时使用。',
usageItem3: '3、积分不得转让,出售,不设有效期。',
pointQuery: '积分的查询',
queryItem1: '1、积分可在会员中心中查询具体数额以及明细。',
// 分类列表
categoryExchangeGoods: '积分换好物',
categoryExchangeCoupon: '积分换券',
categoryExchangeHongbao: '积分换红包',
// 提示
merchantNotEnabled: '商家未开启积分商城',
noActivity: '暂无相关活动'
}

View File

@@ -1,4 +1,63 @@
export const lang = {
//title为每个页面的标题
title: '待付款订单'
title: '确认订单',
// ====== 虚拟商品区 ======
virtual: {
tips: '购买虚拟类商品需填写手机号,方便商家与您联系',
mobile: '手机号码',
mobilePlaceholder: '请输入您的手机号码'
},
// ====== 地址区 ======
address: {
setAddress: '请设置收货地址',
deliveryTime: '送达时间',
selectDeliveryTime: '请选择送达时间'
},
// ====== 本地配送区 ======
localDelivery: {
providedBy: '由',
deliveredBy: '提供配送',
switchStore: '点击切换',
noStoreNearby: '您的附近没有可配送的门店,请选择其他配送方式'
},
// ====== 门店自提区 ======
store: {
businessHours: '营业时间:',
name: '姓名',
reservedMobile: '预留手机',
mobilePlaceholder: '请输入您的手机号码',
pickupTime: '自提时间',
noPickupStore: '当前无自提门店,请选择其它配送方式',
address: '地址:'
},
// ====== 门店列表弹窗 ======
storePopup: {
title: '已为您甄选出附近所有相关门店',
businessHours: '营业时间:',
address: '地址:',
noStoreNearby: '所选择收货地址附近没有可以自提的门店'
},
// ====== 订单金额区 ======
orderMoney: {
buyerMessage: '买家留言',
buyerMessagePlaceholder: '留言前建议先与商家协调一致',
pointsRequired: '所需积分',
pointsSuffix: '积分',
shippingFee: '运费'
},
// ====== 底部结算区 ======
settlement: {
totalItems: '共{count}件',
total: '合计:',
pointsSuffix: '积分',
submitOrder: '提交订单',
shortByForMinimum: '差{amount}起送'
}
}