feat: 新增多语言文案与组件国际化适配
本次提交完成了大量多语言相关的新增与优化工作: 1. 新增充值、案例、会员资产、订单等页面的中文/英文翻译文案 2. 新增企业微信客服、时间选择、支付弹窗等组件的多语言包 3. 优化工具函数与自定义页面的多语言适配,替换硬编码提示文案 4. 新增会员等级规则、积分商品、退款管理等页面的国际化支持 5. 修复企业微信JS-SDK的错误提示文案硬编码问题
This commit is contained in:
@@ -1,4 +1,56 @@
|
||||
export const lang = {
|
||||
//title为每个页面的标题
|
||||
title: 'Coupon Collection'
|
||||
}
|
||||
//title is the title of each page
|
||||
title: 'Coupon Collection',
|
||||
|
||||
// ====== Tabs ======
|
||||
// All
|
||||
tabAll: 'All',
|
||||
// Reward coupon
|
||||
tabReward: 'Reward',
|
||||
// Discount coupon
|
||||
tabDiscount: 'Discount',
|
||||
|
||||
// ====== Coupon Info ======
|
||||
// Discount display: {discount} off
|
||||
discountText: '{discount}% off',
|
||||
// Minimum spend condition: Available with {atLeast} yuan spend
|
||||
minSpendAvailable: 'Available with {atLeast} yuan spend',
|
||||
// No threshold coupon
|
||||
noThresholdCoupon: 'No threshold coupon',
|
||||
// Specified goods
|
||||
specifiedGoods: 'Specified goods',
|
||||
// All goods
|
||||
allGoods: 'All goods',
|
||||
// Maximum discount: (Max discount {amount} yuan)
|
||||
maxDiscount: '(Max discount {amount} yuan)',
|
||||
|
||||
// ====== Valid Period ======
|
||||
// Valid until: Valid until {date}
|
||||
validPeriodDate: 'Valid until: {date}',
|
||||
// Valid for N days after receipt: Valid for {days} days after receipt
|
||||
validPeriodDays: 'Valid for {days} days after receipt',
|
||||
// Long-term valid: Long-term valid
|
||||
validPeriodLong: 'Long-term valid',
|
||||
|
||||
// ====== Buttons & Status ======
|
||||
// Receive
|
||||
receive: 'Receive',
|
||||
// Use now
|
||||
useNow: 'Use Now',
|
||||
// Sold out
|
||||
soldOut: 'Sold Out',
|
||||
// Expired
|
||||
expired: 'Expired',
|
||||
// Limit reached
|
||||
limitReached: 'Limit Reached',
|
||||
|
||||
// ====== Empty State ======
|
||||
// No available coupons
|
||||
emptyText: 'No available coupons',
|
||||
|
||||
// ====== Toast Messages ======
|
||||
// Merchant not enabled coupons
|
||||
merchantNotEnabled: 'Merchant has not enabled coupons',
|
||||
// Receive success message
|
||||
receiveSuccess: 'Successfully received, go use it now'
|
||||
}
|
||||
|
||||
@@ -1,4 +1,47 @@
|
||||
export const lang = {
|
||||
//title为每个页面的标题
|
||||
title: 'Receive Coupon'
|
||||
}
|
||||
//title is the title of each page
|
||||
title: 'Receive Coupon',
|
||||
|
||||
// ====== Coupon Info ======
|
||||
// Discount display: {discount} off
|
||||
discountText: '{discount}% off',
|
||||
// Minimum spend condition: Spend {atLeast} yuan to use
|
||||
minSpendUsage: 'Spend {atLeast} yuan to use',
|
||||
// No threshold coupon
|
||||
noThresholdCoupon: 'No threshold coupon',
|
||||
// Valid until: Valid until {endTime}
|
||||
validUntil: 'Valid until {endTime}',
|
||||
// Valid for N days after receipt: Valid for {fixedTerm} days after receipt
|
||||
validDaysAfterReceive: 'Valid for {fixedTerm} days after receipt',
|
||||
// Long-term valid
|
||||
longTermValid: 'Long-term valid',
|
||||
// Applicable stores: Applicable stores: {storeName}
|
||||
applicableStores: 'Applicable stores: {storeName}',
|
||||
// Scan QR code share tip
|
||||
scanShareTip: 'Note: Scan QR code or click top-right to share',
|
||||
|
||||
// ====== Button Text ======
|
||||
receive: 'Receive',
|
||||
// Coupon sold out
|
||||
couponSoldOut: 'Sorry, this coupon has been fully claimed!',
|
||||
// Activity ended
|
||||
activityEnded: 'This coupon activity has ended!',
|
||||
// Activity closed
|
||||
activityClosed: 'This coupon activity has been closed',
|
||||
// Receive limit reached
|
||||
receiveLimitReached: 'Coupon receive limit reached!',
|
||||
|
||||
// ====== Toast Messages ======
|
||||
// Merchant not enabled coupons
|
||||
merchantNotEnabled: 'Merchant has not enabled coupons',
|
||||
// Receive success
|
||||
receiveSuccess: 'Successfully received',
|
||||
|
||||
// ====== Share Text ======
|
||||
// Congrats money coupon: Congratulations, you got a {money} yuan coupon
|
||||
congratsMoneyCoupon: 'Congratulations, you got a {money} yuan coupon',
|
||||
// Congrats discount coupon: Congratulations, you got a {discount}% off coupon
|
||||
congratsDiscountCoupon: 'Congratulations, you got a {discount}% off coupon',
|
||||
// Minimum spend available: Available with {atLeast} yuan spend
|
||||
minSpendAvailable: 'Available with {atLeast} yuan spend'
|
||||
}
|
||||
|
||||
@@ -92,6 +92,8 @@ export const lang = {
|
||||
couponSoldOut: 'Sold out',
|
||||
couponClaimed: 'Claimed',
|
||||
couponReceive: 'Claim',
|
||||
couponAlreadyClaimed: 'You have already claimed this coupon',
|
||||
couponClaimSuccess: 'Coupon claimed successfully',
|
||||
|
||||
// Promotions
|
||||
promotion: 'Promotion',
|
||||
@@ -99,6 +101,18 @@ export const lang = {
|
||||
fullGift: 'Full Gift',
|
||||
freeShipping: 'Free Shipping',
|
||||
|
||||
// Manjian promotion text templates
|
||||
manjianUnitYuan: 'yuan',
|
||||
manjianUnitPiece: 'pcs',
|
||||
manjianItemSeparator: '; ',
|
||||
fullReductionItem: 'Spend {limit} {unit}, save {money}',
|
||||
fullGiftPoints: '{point} points',
|
||||
fullGiftDiscountCoupon: '{count} {discount}% off coupon(s)',
|
||||
fullGiftMoneyCoupon: '{count} {money} yuan coupon(s)',
|
||||
fullGiftConnector: ' + ',
|
||||
fullGiftItem: 'Spend {limit} {unit}, get {gift}',
|
||||
freeShippingItem: 'Free shipping on {limit} {unit}',
|
||||
|
||||
// Product Message
|
||||
productMessage: 'Product Message',
|
||||
|
||||
@@ -113,4 +127,60 @@ export const lang = {
|
||||
|
||||
// Common Button
|
||||
confirm: 'Confirm',
|
||||
|
||||
// Goods detail view component (goods-detail-view)
|
||||
detailView: {
|
||||
// Delivery area
|
||||
notConfigured: 'Not configured',
|
||||
serviceLabel: 'Service',
|
||||
|
||||
// Merchant certification
|
||||
officialCertifiedMerchant: 'Officially certified merchant, trustworthy!',
|
||||
|
||||
// Popup titles
|
||||
deliveryTitle: 'Delivery',
|
||||
merchantsServiceTitle: 'Product Services',
|
||||
storeListTitle: 'Store List',
|
||||
|
||||
// Store related
|
||||
distance: '{distance} away',
|
||||
businessHours: 'Hours: {time}',
|
||||
|
||||
// Community
|
||||
addCommunity: 'Add',
|
||||
|
||||
// Evaluate area
|
||||
evaluate: 'Reviews',
|
||||
noEvaluate: 'No reviews yet',
|
||||
viewAll: 'View all',
|
||||
|
||||
// Spec attributes
|
||||
specAttrTitle: 'Specifications',
|
||||
expand: 'Expand',
|
||||
collapse: 'Collapse',
|
||||
|
||||
// PDF document
|
||||
defaultDocName: 'Product Document',
|
||||
viewDocDetail: 'Click to view document details',
|
||||
view: 'View',
|
||||
|
||||
// Poster
|
||||
saveImage: 'Save Image',
|
||||
longPressToSave: 'Long press to save',
|
||||
|
||||
// Share popup
|
||||
shareTitle: 'Share',
|
||||
shareToFriends: 'Share to Friends',
|
||||
shareToGoodsCircle: 'Share to Good Circle',
|
||||
generateSharePoster: 'Generate Poster',
|
||||
copyLink: 'Copy Link',
|
||||
cancelShare: 'Cancel',
|
||||
|
||||
// Toast messages
|
||||
posterGenerating: 'Generating poster...',
|
||||
saveSuccess: 'Saved successfully',
|
||||
saveFailed: 'Save failed, please try again later',
|
||||
loading: 'Loading',
|
||||
fileNotExist: 'File does not exist',
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user