소스 검색

English version.

qd 1 년 전
부모
커밋
e9e0c692e8
76개의 변경된 파일2119개의 추가작업 그리고 715개의 파일을 삭제
  1. 652 0
      locale/en.json
  2. 10 0
      locale/index.js
  3. 23 0
      locale/ja.json
  4. 36 0
      locale/uni-app.ja.json
  5. 652 0
      locale/zh-Hans.json
  6. 24 0
      locale/zh-Hant.json
  7. 9 1
      main.js
  8. 17 17
      pages/activity/groupon/detail.vue
  9. 4 4
      pages/activity/groupon/list.vue
  10. 10 10
      pages/activity/groupon/order.vue
  11. 1 1
      pages/activity/index.vue
  12. 4 4
      pages/activity/seckill/list.vue
  13. 3 3
      pages/app/score-shop.vue
  14. 26 26
      pages/app/sign.vue
  15. 3 3
      pages/chat/components/order.vue
  16. 2 2
      pages/chat/components/select-popup.vue
  17. 20 20
      pages/chat/index.vue
  18. 11 11
      pages/commission/apply.vue
  19. 5 5
      pages/commission/components/account-info.vue
  20. 22 22
      pages/commission/components/commission-auth.vue
  21. 4 4
      pages/commission/components/commission-condition.vue
  22. 1 1
      pages/commission/components/commission-log.vue
  23. 8 8
      pages/commission/components/commission-menu.vue
  24. 5 5
      pages/commission/goods.vue
  25. 1 1
      pages/commission/index.vue
  26. 18 18
      pages/commission/order.vue
  27. 3 3
      pages/commission/share-log.vue
  28. 10 10
      pages/commission/team.vue
  29. 7 7
      pages/coupon/detail.vue
  30. 7 7
      pages/coupon/list.vue
  31. 9 9
      pages/goods/comment/add.vue
  32. 3 3
      pages/goods/comment/list.vue
  33. 8 8
      pages/goods/groupon.vue
  34. 5 5
      pages/goods/index.vue
  35. 7 7
      pages/goods/list.vue
  36. 3 3
      pages/goods/score.vue
  37. 9 9
      pages/goods/seckill.vue
  38. 11 11
      pages/index/cart.vue
  39. 2 2
      pages/index/category.vue
  40. 1 1
      pages/index/components/third-one.vue
  41. 1 1
      pages/index/index.vue
  42. 6 6
      pages/index/search.vue
  43. 1 1
      pages/index/user.vue
  44. 21 21
      pages/order/aftersale/apply.vue
  45. 18 18
      pages/order/aftersale/detail.vue
  46. 15 15
      pages/order/aftersale/list.vue
  47. 5 5
      pages/order/aftersale/log.vue
  48. 19 19
      pages/order/confirm.vue
  49. 31 31
      pages/order/detail.vue
  50. 2 2
      pages/order/dispatch/content.vue
  51. 3 3
      pages/order/express/list.vue
  52. 5 5
      pages/order/express/log.vue
  53. 18 18
      pages/order/invoice.vue
  54. 35 35
      pages/order/list.vue
  55. 16 16
      pages/pay/components/account-info-modal.vue
  56. 6 6
      pages/pay/components/account-type-select.vue
  57. 19 19
      pages/pay/index.vue
  58. 9 9
      pages/pay/recharge-log.vue
  59. 8 8
      pages/pay/recharge.vue
  60. 11 11
      pages/pay/result.vue
  61. 14 14
      pages/pay/withdraw-log.vue
  62. 29 29
      pages/pay/withdraw.vue
  63. 6 6
      pages/public/error.vue
  64. 2 2
      pages/public/faq.vue
  65. 14 14
      pages/public/feedback.vue
  66. 12 12
      pages/public/setting.vue
  67. 14 14
      pages/user/address/edit.vue
  68. 4 4
      pages/user/address/list.vue
  69. 9 9
      pages/user/goods-collect.vue
  70. 9 9
      pages/user/goods-log.vue
  71. 28 28
      pages/user/info.vue
  72. 24 24
      pages/user/invoice/edit.vue
  73. 10 10
      pages/user/set.vue
  74. 20 20
      pages/user/wallet/commission.vue
  75. 10 10
      pages/user/wallet/money.vue
  76. 9 10
      pages/user/wallet/score.vue

+ 652 - 0
locale/en.json

@@ -0,0 +1,652 @@
+{
+  "locale.auto": "System",
+  "locale.en": "English",
+  "locale.zh-hans": "简体中文",
+  "locale.zh-hant": "繁体中文",
+  "locale.ja": "日语",
+  "index.title": "Hello i18n",
+  "index.home": "Home",
+  "index.component": "Component",
+  "index.api": "API",
+  "index.schema": "Schema",
+  "index.demo": "uni-app globalization",
+  "index.demo-description": "Include uni-framework, manifest.json, pages.json, tabbar, Page, Component, API, Schema",
+  "index.detail": "Detail",
+  "index.language": "Language",
+  "index.language-info": "Settings",
+  "index.system-language": "System language",
+  "index.application-language": "Application language",
+  "index.language-change-confirm": "Applying this setting will restart the app",
+  "api.message": "Message",
+  "schema.name": "Name",
+  "schema.add": "Add",
+  "schema.add-success": "Add success",
+  "public.networdError": "Network connection failed",
+  "public.reload": "Reload",
+  "public.reconnect": "Reconnect",
+  "public.templateNotExist": "Template not found",
+  "public.loadFailed": "Load failed",
+  "activity.index.uploadMore": "Pull up to load more",
+  "activity.seckill.list.toend": "to end",
+  "activity.seckill.list.ended": "Activity has ended",
+  "activity.seckill.list.gobuy": "Go buy",
+  "activity.seckill.list.togroup": "Go to the group",
+  "activity.groupon.detail": "Group details",
+  "activity.groupon.detail.msg1": "Group",
+  "activity.groupon.detail.msg2": "Already spelled",
+  "activity.groupon.detail.msg3": "Not good enough",
+  "activity.groupon.detail.msg4": "Group successful",
+  "activity.groupon.detail.unit": "piece",
+  "activity.groupon.detail.groupSuccess": "Congratulations~The group is successful",
+  "activity.groupon.detail.groupFailed": "Sorry~the group is full",
+  "activity.groupon.detail.failedMsg1": "The group timeout has been automatically refunded",
+  "activity.groupon.detail.failedMsg2": "The group has been disbanded",
+  "activity.groupon.detail.failedMsg3": "The groupon has ended, please pay attention to the next event",
+  "activity.groupon.detail.leader": "leader",
+  "activity.groupon.detail.rule": "How to play",
+  "activity.groupon.detail.createGroup": "I want to start a group",
+  "activity.groupon.detail.viewOrder": "View order",
+  "activity.groupon.detail.toJoin": "Go to the group",
+  "activity.groupon.detail.inviteFriend": "Invite friends to join a group",
+  "activity.groupon.detail.groupNow": "Join the group now",
+  "activity.groupon.my": "My groupon",
+  "activity.groupon.order_no": "Order number",
+  "activity.groupon.order_detail": "Order details",
+  "activity.groupon.inviteGroup": "Invite group",
+  "activity.groupon.type.all": "all",
+  "activity.groupon.type.progress": "In progress",
+  "activity.groupon.type.success": "Group success",
+  "activity.groupon.type.failed": "Group failed",
+  "app.sign.title": "Sign in with courtesy",
+  "app.sign.calendar": "Sign in calendar",
+  "app.sign.msg1": "Continuous sign-ins",
+  "app.sign.msg2": "1. Daily sign-in is fixed",
+  "app.sign.msg3": "Points",
+  "app.sign.msg4": "Incremental rewards the next day",
+  "app.sign.msg5": "Points until",
+  "app.sign.msg6": "No more days will be added",
+  "app.sign.msg7": "2,",
+  "app.sign.msg8": "Continuous sign-in",
+  "app.sign.msg9": "Day, reward",
+  "app.sign.msg10": "Points;",
+  "app.sign.msg11": "、User is in",
+  "app.sign.msg12": "You can re-sign within days",
+  "app.sign.msg13": "Days, consumed for each re-signing",
+  "app.sign.msg14": "Punched in continuously",
+  "app.sign.msg15": "Consumption",
+  "app.sign.msg16": "Confirm re-signing",
+  "app.sign.msg17": "Checking in continuously",
+  "app.sign.day": "day",
+  "app.sign.year": "year",
+  "app.sign.month": "month",
+  "app.sign.sign": "Sign in",
+  "app.sign.signed": "Signed in",
+  "app.sign.intro": "Sign-in instructions",
+  "app.sign.signSuccess": "Sign in successfully",
+  "app.sign.confirm": "Confirm",
+  "app.sign.point": "Points",
+  "app.sign.cancle": "Cancel",
+  "app.scoreshop.title": "Points Mall",
+  "app.scoreshop.nogoods": "No products with points yet",
+  "chat.index.title": "Customer Service",
+  "chat.index.networkLosed": "The network has been disconnected, please check the network, refresh and try again",
+  "chat.index.msg1": "Guess you want to ask",
+  "chat.index.msg2": "Please enter the question you want to inquire",
+  "chat.index.picture": "Picture",
+  "chat.index.goods": "Goods",
+  "chat.index.order": "Order",
+  "chat.index.online": "Online",
+  "chat.index.offline": "offline",
+  "chat.index.busy": "Busy",
+  "chat.index.viewMore": "View more",
+  "chat.index.noMore": "No more",
+  "chat.index.loading": "Loading...",
+  "chat.index.dropped": "You have been dropped! Please come back and try again",
+  "chat.order.amount": "amount",
+  "chat.index.total": "total",
+  "chat.index.msg1": "items",
+  "chat.index.msg2": "Total",
+  "chat.select.popup.myView": "My View",
+  "chat.select.popup.myOrder": "My Order",
+  "commission.index.title": "Distribution Center",
+  "commission.apply.title": "Apply for Distributor",
+  "commission.apply.noOpenApply": "Distributor application not opened",
+  "commission.apply.agree": "Check to indicate agreement",
+  "commission.apply.modify": "Modify information",
+  "commission.apply.submit": "Submit for review",
+  "commission.apply.resubmit": "Resubmit",
+  "commission.apply.msg1": "Please agree to the application agreement",
+  "commission.apply.msg2": "Please fill in",
+  "commission.apply.msg3": "Please upload",
+  "commission.goods.title": "Promotion Goods",
+  "commission.goods.msg1": "Estimated commission",
+  "commission.goods.msg2": "Share and earn",
+  "commission.goods.noGoods": "No promotional products yet",
+  "commission.order.title": "Distribution Order",
+  "commission.order.msg1": "Team order quantity (single)",
+  "commission.order.msg2": "First-level order",
+  "commission.order.msg3": "Second level order",
+  "commission.order.msg4": "Team order amount (yuan)",
+  "commission.order.msg5": "Self-purchased distribution order quantity (unit)",
+  "commission.order.msg6": "Self-purchased distribution order amount (yuan)",
+  "commission.order.order_no": "Order number",
+  "commission.order.commission": "commission",
+  "commission.order.noOrder": "No order yet",
+  "commission.order.all": "all",
+  "commission.order.noCounted": "Not counted",
+  "commission.order.counted": "Already counted",
+  "commission.order.deducted": "Deducted",
+  "commission.order.canceled": "Cancelled",
+  "commission.sharelog.title": "Sharing Record",
+  "commission.sharelog.noLog": "No sharing record yet",
+  "commission.sharelog.canceled": "Cancelled",
+  "commission.team.my": "My Team",
+  "commission.team.recommender": "recommender",
+  "commission.team.teamAll": "Total number of team members (people)",
+  "commission.team.recommender": "recommender",
+  "commission.team.firstLevelMember": "First-level member",
+  "commission.team.secondLevelMember": "Second Level Member",
+  "commission.team.teamDealer": "Number of team distributors (people)",
+  "commission.team.firstLevelDealer": "First Level Dealer",
+  "commission.team.secondLevelDealer": "Second Level Dealer",
+  "commission.team.noMember": "No team information yet",
+  "commission.team.childTeam": "Subordinate Team",
+  "commission.team.people": "people",
+  "commission.account.info": "Account Information",
+  "commission.account.viewDetail": "View details",
+  "commission.account.totalProfit": "Total Profit (yuan)",
+  "commission.account.myCommission": "My commission (yuan)",
+  "commission.account.myConsume": "My consumption (yuan)",
+  "common.back": "return",
+  "commission.auth.closed": "The distribution center is closed",
+  "commission.auth.functionDisabled": "This function is temporarily unavailable",
+  "commission.auth.ok": "Got it",
+  "commission.auth.accountDisabled": "Account has been disabled",
+  "commission.auth.perfectInfo": "Information to be completed",
+  "commission.auth.perfectTips": "Please add your information and submit it for review",
+  "commission.auth.underReview": "Under review",
+  "commission.auth.waitResult": "Please wait patiently for the result",
+  "commission.auth.notPass": "Sorry! Your application information did not pass",
+  "commission.auth.resubmitTips": "Please try to modify and resubmit",
+  "commission.auth.resubmit": "Reapply",
+  "commission.auth.resubmitTry": "Please try to apply again",
+  "commission.auth.accountFrozen": "Sorry! Your account has been frozen",
+  "commission.auth.serviceTips": "If you have any questions, please contact customer service",
+  "commission.condition.msg1": "Cumulative consumption is full",
+  "commission.condition.msg2": "You can become a distributor by purchasing designated products",
+  "commission.condition.msg3": "You can become a distributor if you meet the cumulative consumption",
+  "commission.log.news": "Real-time updates",
+  "commission.menu.prefecture": "Function Area",
+  "commission.menu.myTeam": "My Team",
+  "commission.menu.commissionDetail": "Commission Details",
+  "commission.menu.orders": "Distribution Orders",
+  "commission.menu.goods": "Promote Goods",
+  "commission.menu.accountInfo": "My Information",
+  "commission.menu.invite": "Invitation Poster",
+  "commission.menu.shareLog": "Sharing Record",
+  "commission.menu.prefecture": "Function Area",
+  "coupon.list.title": "Coupon",
+  "coupon.list.noCoupon": "No coupons yet",
+  "coupon.list.all": "coupon collection center",
+  "coupon.list.geted": "Received",
+  "coupon.list.used": "Already used",
+  "coupon.list.expired": "Expired",
+  "coupon.detail.title": "Coupon details",
+  "coupon.detail.getTime": "receipt time",
+  "coupon.detail.expired": "Expiration date",
+  "coupon.detail.to": "to",
+  "coupon.detail.couponType": "Coupon Type",
+  "coupon.detail.noGoods": "No products yet",
+  "goods.groupon.ended": "The event does not exist or has ended",
+  "goods.groupon.backLastPage": "Return to the previous page",
+  "goods.groupon.groupPrice": "Group price",
+  "goods.groupon.toEndTime": "Only left before the end",
+  "goods.groupon.endedMsg": "Event has ended",
+  "goods.groupon.buyOriginPrice": "Buy at original price",
+  "goods.groupon.sellout": "Sold out",
+  "goods.groupon.startGroupNow": "Start a group now",
+  "goods.groupon.other": "Shopping around again",
+  "goods.index.sellout": "The product does not exist or has been removed from the shelves",
+  "goods.list.comprehensive": "Comprehensive recommendations",
+  "goods.list.priceAsc": "Price ascending order",
+  "goods.list.priceDesc": "price descending order",
+  "goods.list.sale": "Sales",
+  "goods.list.newGoods": "New products first",
+  "goods.score.exchangeNow": "Exchange Now",
+  "goods.seckill.seckillPrice": "Seckill Price",
+  "goods.seckill.originPriceBuy": "Buy at original price",
+  "goods.seckill.seckillNow": "Seckill Now",
+  "goods.comment.title": "All reviews",
+  "goods.comment.noData": "No data yet",
+  "goods.comment.add": "review",
+  "goods.comment.tips": "Does the product meet your expectations? Tell us your experience of using it and share it with those who want to buy it~",
+  "goods.comment.publish": "Publish",
+  "goods.comment.terrible": "terrible",
+  "goods.comment.bad": "bad review",
+  "goods.groupon.general": "General",
+  "goods.groupon.nice": "Good",
+  "goods.groupon.good": "good reviews",
+  "goods.groupon.noOrder": "No order to be evaluated",
+  "index.cart.title": "Shopping Cart",
+  "index.cart.emptyCart": "The shopping cart is empty, go shopping~",
+  "index.cart.total": "total",
+  "index.cart.unitgoods": "unitgoods",
+  "index.cart.cancle": "Cancel",
+  "index.cart.edit": "Edit",
+  "index.cart.chooseAll": "Select All",
+  "index.cart.delete": "Delete",
+  "index.cart.settle": "Go to settlement",
+  "index.category.title": "Category",
+  "index.category.viewMore": "Click to see more",
+  "index.index.title": "Homepage",
+  "index.search.title": "Search",
+  "index.search.keyword": "Please enter the keyword",
+  "index.search.history": "Search history",
+  "index.search.clearHistory": "Clear search history",
+  "index.search.tips": "Tips",
+  "index.search.sureClearHistory": "Are you sure you want to clear your search history?",
+  "index.user.title": "My",
+  "common.viewMore": "View more",
+  "order.confirm.title": "Confirm order",
+  "order.confirm.delivery": "delivery method",
+  "order.confirm.remark": "Order Remarks",
+  "order.confirm.tips": "It is recommended to communicate with the merchant before leaving a message",
+  "order.confirm.price": "Product amount",
+  "order.confirm.pointsDeducted": "Points deducted",
+  "order.confirm.freight": "Freight",
+  "order.confirm.coupon": "coupon",
+  "order.confirm.msg1": "Zhang available",
+  "order.confirm.noCoupon": "No coupon available yet",
+  "order.confirm.discount": "Activity discount",
+  "order.confirm.unit": "piece",
+  "order.confirm.invoiceRequest": "Invoice request",
+  "order.confirm.exchangeNow": "Exchange now",
+  "order.confirm.submitOrder": "Submit order",
+  "order.confirm.chooseAddress": "Please select the shipping address",
+  "order.confirm.prompt": "Prompt",
+  "order.confirm.promptContent": "Are you sure you want to use the points to redeem them immediately?",
+  "order.confirm.later": "Think again",
+  "order.detail.title": "Order Details",
+  "common.detail": "Details",
+  "order.detail.applyService": "Apply for after-sales service",
+  "order.detail.reapplyService": "Re-sale service",
+  "order.detail.saleDetail": "After-sales details",
+  "order.detail.rebuy": "Buy again",
+  "order.detail.order_no": "Order number",
+  "order.detail.copy": "Copy",
+  "order.detail.order_time": "Order time",
+  "order.detail.pay_time": "Payment time",
+  "order.detail.pay_way": "Payment method",
+  "order.detail.goodsAmount": "Total amount of goods",
+  "order.detail.freight": "Freight",
+  "order.detail.discount": "Discount amount",
+  "order.detail.paid": "paid",
+  "order.detail.needPay": "Require payment",
+  "order.detail.refund": "Refunded",
+  "order.detail.cancleOrder": "Cancel order",
+  "order.detail.continuePay": "Continue to pay",
+  "order.detail.applyRefund": "Apply for a refund",
+  "order.detail.inviteGroup": "Invite group group",
+  "order.detail.groupDetail": "Group details",
+  "order.detail.viewExpress": "View logistics",
+  "order.detail.confirmReceived": "Confirm receipt",
+  "order.detail.comment": "Evaluate the order",
+  "order.detail.viewInvoice": "View Invoice",
+  "order.detail.refundAgain": "Refund",
+  "order.detail.tips": "Tips",
+  "order.detail.tipsCancleOrder": "Are you sure you want to cancel the order?",
+  "order.detail.tipsRefund": "Are you sure you want to apply for a refund?",
+  "order.invoice.title": "Invoice details",
+  "order.invoice.expectedInvoiceMoney": "Estimated invoice amount",
+  "order.invoice.invoiceNormal": "VAT electronic general invoice",
+  "order.invoice.invoiceType": "Invoice Type",
+  "order.invoice.invoice": "Invoice header",
+  "order.invoice.actualMoney": "Actual amount",
+  "order.invoice.invoiceTime": "Invoicing time",
+  "order.invoice.applyTime": "Application time",
+  "order.invoice.total": "total",
+  "order.invoice.unit": "per",
+  "order.invoice.previewInvoice": "Click to preview the invoice",
+  "order.invoice.orderStatus": "Order Status",
+  "order.invoice.orderNo": "order number",
+  "order.invoice.orderTime": "Order time",
+  "order.invoice.submitOrder": "Order submission",
+  "order.invoice.waitInvoice": "Waiting for invoice",
+  "order.invoice.finishInvoice": "Invoice completed",
+  "order.invoice.openDocSuc": "Open document successfully",
+  "order.list.title": "My order",
+  "order.list.noOrder": "No order yet",
+  "order.list.orderNo": "order number",
+  "order.list.applyService": "Apply for after-sales service",
+  "order.list.reapplyService": "Re-sales service",
+  "order.list.saleDetail": "After-sales details",
+  "order.list.discount": "Discount",
+  "order.list.freight": "Freight",
+  "order.list.totalMoney": "Total amount",
+  "order.list.deleteOrder": "Delete order",
+  "order.list.viewDetail": "View details",
+  "order.list.viewInvoice": "View Invoice",
+  "order.list.all": "all",
+  "order.list.unpaid": "Pending payment",
+  "order.list.nosend": "To be shipped",
+  "order.list.noget": "To be received",
+  "order.list.nocomment": "To be evaluated",
+  "order.list.tips": "Tips",
+  "order.list.tipsConfirmReceived": "Please confirm that all packages have arrived before confirming receipt",
+  "order.list.tipsCancleOrder": "Are you sure you want to cancel the order?",
+  "order.list.tipsDeleteOrder": "Are you sure you want to delete the order?",
+  "order.list.tipsApplyRefund": "Are you sure you want to apply for a refund?",
+  "order.aftersale.title": "Apply for after-sales",
+  "order.aftersale.type": "After-sales type",
+  "order.aftersale.reason": "Reason for application",
+  "order.aftersale.chooseReason": "Please select the reason for application~",
+  "order.aftersale.contact": "Contact information",
+  "order.aftersale.enterContact": "Please enter your contact number",
+  "order.aftersale.desc": "Related description",
+  "order.aftersale.descPlaceholrder": "Guest~Please describe the problem you encountered and suggest uploading photos",
+  "order.aftersale.service": "Contact customer service",
+  "order.aftersale.submit": "Submit",
+  "order.aftersale.confirm": "OK",
+  "order.aftersale.refundOnly": "Refund Only",
+  "order.aftersale.returnOrExchange": "Return/Exchange",
+  "order.aftersale.other": "other",
+  "order.aftersale.sendWrong": "The seller sent the wrong goods",
+  "order.aftersale.returnShipping": "Return Shipping",
+  "order.aftersale.descNotMatch1": "The size/weight does not match the product description",
+  "order.aftersale.descNotMatch2": "The production date/shelf life does not match the product description",
+  "order.aftersale.qualityIssues": "Quality issues",
+  "order.aftersale.notWant": "I don't want it anymore",
+  "order.aftersale.detail.title": "After-sales details",
+  "order.aftersale.detail.refundMoney": "Total refund amount",
+  "order.aftersale.detail.orderNo": "Service order number",
+  "order.aftersale.detail.copy": "Copy",
+  "order.aftersale.detail.applyTime": "Application time",
+  "order.aftersale.detail.type": "After-sales type",
+  "order.aftersale.detail.reason": "Reason for application",
+  "order.aftersale.detail.desc": "Related description",
+  "order.aftersale.detail.empty": "There are no after-sales details for this order",
+  "order.aftersale.detail.cancleApply": "Cancel application",
+  "order.aftersale.detail.apply": "Submit application",
+  "order.aftersale.detail.dealing": "dealing",
+  "order.aftersale.detail.tips": "tips",
+  "order.aftersale.detail.tipsCancle": "Are you sure you want to cancel this application?",
+  "order.aftersale.detail.tipsDelete": "Are you sure you want to delete?",
+  "order.aftersale.detail.complete": "Complete",
+  "order.aftersale.list.title": "After-sales List",
+  "order.aftersale.list.noData": "No data yet",
+  "order.aftersale.list.orderNo": "Service order number",
+  "order.aftersale.list.cancleApply": "Cancel application",
+  "order.aftersale.list.delete": "Delete",
+  "order.aftersale.list.all": "all",
+  "order.aftersale.list.nooper": "Applying",
+  "order.aftersale.list.ing": "Processing",
+  "order.aftersale.list.completed": "Completed",
+  "order.aftersale.list.refuse": "Rejected",
+  "order.aftersale.log.title": "After-sales Progress",
+  "order.aftersale.log.paid": "Buyer places order",
+  "order.aftersale.log.delivery": "Seller delivers",
+  "order.aftersale.log.received": "Buyer signs for receipt",
+  "order.aftersale.log.complete": "Transaction completed",
+  "order.aftersale.content.title": "Shipping content",
+  "order.aftersale.content.detail": "Shipping information",
+  "order.aftersale.express.title": "Logistics Package",
+  "order.aftersale.express.msg": "Packages have been delivered",
+  "order.aftersale.express.total": "total",
+  "order.aftersale.express.unitgoods": "unitgoods",
+  "order.aftersale.express.log": "Logistics Tracking",
+  "order.aftersale.express.status": "Logistics status",
+  "order.aftersale.express.no": "Express tracking number",
+  "order.aftersale.express.company": "Express Company",
+  "order.aftersale.express.noData": "No express information yet",
+  "pay.index.title": "Cashier",
+  "pay.index.pay_way": "Select payment method",
+  "pay.index.balance": "Balance",
+  "pay.index.cny": "yuan",
+  "pay.index.notSupport": "Some products are not supported",
+  "pay.index.checkEnv": "Detect payment environment",
+  "pay.index.expired": "Payment has expired",
+  "pay.index.payNow": "Pay Now",
+  "pay.index.wxpay": "WeChat Pay",
+  "pay.index.alipay": "Alipay payment",
+  "pay.index.balancepay": "Balance payment",
+  "pay.index.payCash": "Cash on delivery",
+  "pay.index.choosePayway": "Please choose a payment method",
+  "pay.index.tips": "tips",
+  "pay.index.tipsConfirmPay": "Are you sure you want to pay?",
+  "pay.index.tipsSubmitOrder": "Are you sure you want to place an order?",
+  "pay.index.paid": "The order has been paid",
+  "pay.index.restTime": "Remaining payment time",
+  "pay.index.noPayData": "No payment order information found",
+  "pay.recharge.title": "Recharge",
+  "pay.recharge.balance": "Current balance (yuan)",
+  "pay.recharge.log": "Recharge Record",
+  "pay.recharge.amount": "Recharge amount",
+  "pay.recharge.enterAmount": "Please enter the recharge amount",
+  "pay.recharge.give": "give",
+  "pay.recharge.cny": "yuan",
+  "pay.recharge.point": "Points",
+  "pay.recharge.confirmRecharge": "Confirm recharge",
+  "pay.recharge.closeRecharge": "Close recharge",
+  "pay.rechargelog.title": "Recharge Record",
+  "pay.rechargelog.payStatus": "Payment Status",
+  "pay.rechargelog.payWay": "Recharge Channel",
+  "pay.rechargelog.orderNo": "Recharge order number",
+  "pay.rechargelog.payTime": "Recharge time",
+  "pay.rechargelog.noData": "No recharge record yet",
+  "pay.payresult.title": "Payment Result",
+  "pay.payresult.orderSuccess": "Order successfully",
+  "pay.payresult.paySuccess": "Payment successful",
+  "pay.payresult.payFailed": "Payment failed",
+  "pay.payresult.orderClosed": "The order has been closed",
+  "pay.payresult.checkPay": "Check payment result...",
+  "pay.payresult.backHome": "Return to home page",
+  "pay.payresult.repay": "Repay",
+  "pay.payresult.viewOrder": "View order",
+  "pay.payresult.myGroup": "My Group",
+  "pay.payresult.getInfo": "Get real-time shipping information and order status",
+  "pay.payresult.subscribe": "Subscribe now",
+  "pay.withdraw.title": "Application for Withdrawal",
+  "pay.withdraw.balance": "Amount of cash that can be withdrawn (yuan)",
+  "pay.withdraw.log": "Withdrawal record",
+  "pay.withdraw.amount": "Withdrawal amount",
+  "pay.withdraw.enterAmount": "Please enter the withdrawal amount",
+  "pay.withdraw.getto": "Withdraw to",
+  "pay.withdraw.type": "Please select a withdrawal method",
+  "pay.withdraw.weixin": "WeChat change",
+  "pay.withdraw.alipay": "Alipay account",
+  "pay.withdraw.bank": "Bank card transfer",
+  "pay.withdraw.noAccount": "No withdrawal account yet",
+  "pay.withdraw.edit": "Modify",
+  "pay.withdraw.add": "Add",
+  "pay.withdraw.confirm": "Confirm withdrawal",
+  "pay.withdraw.intro": "Withdrawal instructions",
+  "pay.withdraw.min": "Minimum",
+  "pay.withdraw.max": "max",
+  "pay.withdraw.cny": "yuan",
+  "pay.withdraw.onetime": "Single withdrawal amount",
+  "pay.withdraw.per": "every",
+  "pay.withdraw.day": "day",
+  "pay.withdraw.month": "month",
+  "pay.withdraw.maxWIthdraw": "Maximum withdrawals",
+  "pay.withdraw.times": "times",
+  "pay.withdraw.msg1": "A withdrawal fee is charged each time",
+  "pay.withdraw.msg2": "After withdrawal application",
+  "pay.withdraw.msg3": "automatic",
+  "pay.withdraw.msg4": "After review",
+  "pay.withdraw.msg5": "Withdrawal, please check the corresponding channel service notification for the arrival result",
+  "pay.withdraw.msg6": "If you have any questions, please contact customer service in time.",
+  "pay.withdraw.msg7": "Please enter the correct withdrawal amount",
+  "pay.withdraw.msg8": "Please select a withdrawal method",
+  "pay.withdraw.msg9": "Please complete your account information",
+  "pay.withdraw.msg10": "Please use WeChat browser to operate",
+  "pay.withdraw.msg11": "Operation successful",
+  "pay.withdraw.msg12": "Your withdrawal application has been submitted successfully",
+  "pay.withdraw.msg13": "Continue to withdraw cash",
+  "pay.withdraw.msg14": "View records",
+  "pay.withdrawlog.title": "Withdrawal Record",
+  "pay.withdrawlog.tobank": "Withdraw to bank card",
+  "pay.withdrawlog.toalipay": "Withdraw cash to Alipay",
+  "pay.withdrawlog.toweixin": "Withdraw cash to WeChat",
+  "pay.withdrawlog.applyStatus": "Application Status",
+  "pay.withdrawlog.accountInfo": "Account Information",
+  "pay.withdrawlog.alipay": "Alipay",
+  "pay.withdrawlog.wxbalance": "WeChat change",
+  "pay.withdrawlog.orderNo": "Withdrawal order number",
+  "pay.withdrawlog.fee": "handling fee",
+  "pay.withdrawlog.applyTime": "Application time",
+  "pay.withdrawlog.noData": "No withdrawal record yet",
+  "pay.account.info.bindBankCard": "Bind bank card",
+  "pay.account.info.bindWxchat": "Bind WeChat",
+  "pay.account.info.bindAlipay": "Bind Alipay",
+  "pay.account.info.holder": "cardholder",
+  "pay.account.info.enterHolder": "Please enter the cardholder",
+  "pay.account.info.bankName": "Account opening bank",
+  "pay.account.info.enterBankName": "Please enter the account opening bank",
+  "pay.account.info.bankCard": "Bank Card Number",
+  "pay.account.info.enterBankCard": "Please enter your bank card number",
+  "pay.account.info.realname": "real name",
+  "pay.account.info.enterRealname": "Please enter your real name",
+  "pay.account.info.alipay": "Alipay",
+  "pay.account.info.enterAlipay": "Please enter your Alipay email/mobile phone number",
+  "pay.account.info.save": "Save",
+  "pay.account.type.withdraw": "Select a withdrawal method",
+  "pay.account.type.confirm": "Confirm",
+  "pay.account.type.wxbalance": "WeChat Change",
+  "pay.account.type.alipay": "WeChat change",
+  "pay.account.type.bank": "Bank card transfer",
+  "public.faq.title": "Frequently Asked Questions",
+  "public.faq.noData": "No FAQ",
+  "public.feedback.title": "Problem Feedback",
+  "public.feedback.type": "Please select a type",
+  "public.feedback.desc": "Related description",
+  "public.feedback.enterDesc": "Guest~Please describe the problem you encountered, and it is recommended to upload a photo",
+  "public.feedback.contact": "Contact information",
+  "public.feedback.enterContact": "Please enter your contact number",
+  "public.feedback.service": "Contact customer service",
+  "public.feedback.submit": "Submit",
+  "public.feedback.product": "Feedback on product function issues",
+  "public.feedback.advice": "Suggestions and feedback",
+  "public.setting.title": "System Settings",
+  "public.feedback.version": "Current version",
+  "public.feedback.session": "Local cache",
+  "public.feedback.feedback": "Feedback",
+  "public.feedback.about": "About us",
+  "public.feedback.deleteAccount": "Cancel account",
+  "public.feedback.and": "with",
+  "public.feedback.logout": "Log out",
+  "public.feedback.tips": "Tips",
+  "public.feedback.tipsDeleteAccount": "Confirm to cancel the account?",
+  "public.feedback.tipsLogout": "Confirm to log out of your account?",
+  "user.goods.collect.title": "Goods Collection",
+  "user.goods.collect.total": "total",
+  "user.goods.collect.unitgoods": "unitgoods",
+  "user.goods.collect.cancle": "Cancel",
+  "user.goods.collect.edit": "Edit",
+  "user.goods.collect.chooseAll": "Select All",
+  "user.goods.collect.cancleCollect": "Cancel Collection",
+  "user.goods.collect.noData": "No collection yet",
+  "user.goods.log.title": "My Footprints",
+  "user.goods.log.delete": "Delete footprints",
+  "user.goods.log.noData": "No browsing history",
+  "user.info.title": "User information",
+  "user.info.edit": "Modify",
+  "user.info.username": "username",
+  "user.info.setUsername": "Set username",
+  "user.info.nickname": "nickname",
+  "user.info.setNickname": "Set Nickname",
+  "user.info.sex": "Gender",
+  "user.info.mobile": "Mobile phone number",
+  "user.info.bindMobile": "Please bind your mobile phone number",
+  "user.info.password": "Login password",
+  "user.info.editPassword": "Change login password",
+  "user.info.setPassword": "Click to set login password",
+  "user.info.address": "Address Management",
+  "user.info.invoice": "Invoice Management",
+  "user.info.thirdAccount": "Third-party account binding",
+  "user.info.wxPublicAccount": "WeChat public account",
+  "user.info.wxApplet": "WeChat applet",
+  "user.info.wxOpenPlatform": "WeChat Open Platform",
+  "user.info.unbind": "Unbind",
+  "user.info.bind": "bind",
+  "user.info.save": "Save",
+  "user.info.male": "male",
+  "user.info.female": "female",
+  "user.info.private": "Confidential",
+  "user.info.tips": "Unbinding reminder",
+  "user.info.tipsUnbind": "After unbinding, you will not be able to log in to this account through WeChat",
+  "user.info.later": "Think again",
+  "user.info.confirm": "Confirm",
+  "user.set.title": "Edit information",
+  "user.set.shop": "SHEEP Mall",
+  "user.set.session": "Clear cache",
+  "user.set.version": "Current version",
+  "user.set.feedback": "Feedback",
+  "user.set.about": "About us",
+  "user.set.userProtocol": ""User Agreement"",
+  "user.set.privateProtocol": ""Privacy Agreement"",
+  "user.set.copyRightHolder": "******Copyright",
+  "user.set.copyRight": "Copyright© 2018-2022",
+  "user.set.about": "About us",
+  "user.address.edit": "Edit address",
+  "user.address.add": "Add address",
+  "user.address.receiver": "Consignee",
+  "user.address.enterReceiver": "Please fill in the name of the consignee",
+  "user.address.mobile": "Mobile phone number",
+  "user.address.enterMobile": "Please enter your mobile phone number",
+  "user.address.province": "province and city",
+  "user.address.enterProvince": "Please select a province or city",
+  "user.address.detail": "Detailed address",
+  "user.address.enterDetail": "Please enter the detailed address",
+  "user.address.setDefault": "Set as default address",
+  "user.address.delete": "Delete",
+  "user.address.save": "Save",
+  "user.address.tips": "Tips",
+  "user.address.tipsDelete": "Are you sure you want to delete this shipping address?",
+  "user.address.list": "Shipping address",
+  "user.address.importWxAddress": "Import WeChat address",
+  "user.address.addAddress": "Add shipping address",
+  "user.address.noData": "No shipping address yet",
+  "user.invoice.edit": "Edit invoice",
+  "user.invoice.add": "Add invoice",
+  "user.invoice.type": "Invoice type",
+  "user.invoice.realname": "name",
+  "user.invoice.enterRealname": "Please enter your name (required)",
+  "user.invoice.mobile": "Mobile phone number",
+  "user.invoice.enterMobile": "Please enter your mobile phone number (required)",
+  "user.invoice.company": "Unit name",
+  "user.invoice.enterCompany": "Please enter the company name (required)",
+  "user.invoice.taxId": "Tax ID",
+  "user.invoice.enterTaxId": "Please enter your unit tax ID (required)",
+  "user.invoice.bankname": "Account opening bank",
+  "user.invoice.enterBankname": "Please enter the bank where the public account is opened",
+  "user.invoice.bankcard": "Bank account number",
+  "user.invoice.enterBankcard": "Please enter your bank account number",
+  "user.invoice.detailAddress": "Detailed Address",
+  "user.invoice.enterDetailAddress": "Please enter the detailed address",
+  "user.invoice.personal": "personal",
+  "user.invoice.enterprise": "Enterprise/Institution",
+  "user.invoice.tips": "Tips",
+  "user.invoice.tipsDelete": "Are you sure you want to delete this invoice information?",
+  "user.wallet.commission.title": "Commission",
+  "user.wallet.commission.my": "My commission (yuan)",
+  "user.wallet.commission.withdraw": "Withdraw",
+  "user.wallet.commission.tobalance": "Transfer balance",
+  "user.wallet.commission.unget": "Commission to be credited",
+  "user.wallet.commission.withdrawAvailable": "Commission can be withdrawn",
+  "user.wallet.commission.income": "Total income",
+  "user.wallet.commission.payout": "Total expenditure",
+  "user.wallet.commission.noData": "No data yet",
+  "user.wallet.commission.msg1": "Transfer your commission to your balance and continue spending",
+  "user.wallet.commission.enterAmount": "Please enter the amount",
+  "user.wallet.commission.confirm": "Confirm",
+  "user.wallet.commission.title": "Commission",
+  "user.wallet.commission.all": "All",
+  "user.wallet.commission.incomeType": "income",
+  "user.wallet.commission.expenseType": "Expenditure",
+  "user.wallet.commission.tips": "Tips",
+  "user.wallet.commission.tipsToBalance": "Confirm to transfer your commission to the balance wallet?",
+  "user.wallet.money.title": "Wallet",
+  "user.wallet.money.balance": "Wallet balance (yuan)",
+  "user.wallet.score.title": "My Points",
+  "user.wallet.score.balance": "Current points"
+}

+ 10 - 0
locale/index.js

@@ -0,0 +1,10 @@
+import en from './en.json'
+import zhHans from './zh-Hans.json'
+import zhHant from './zh-Hant.json'
+import ja from './ja.json'
+export default {
+	en,
+	'zh-Hans': zhHans,
+	'zh-Hant': zhHant,
+	ja
+}

+ 23 - 0
locale/ja.json

@@ -0,0 +1,23 @@
+{
+  "locale.auto": "システム",
+  "locale.en": "英語",
+  "locale.zh-hans": "简体中文",
+  "locale.zh-hant": "繁体中文",
+  "locale.ja": "日语",
+  "index.title": "Hello i18n",
+  "index.home": "ホーム",
+  "index.component": "コンポーネント",
+  "index.api": "API",
+  "index.schema": "Schema",
+  "index.demo": "uni-app globalization",
+  "index.demo-description": "ユニフレームワーク、manifest.json、pages.json、タブバー、ページ、コンポーネント、APIを含める、Schema",
+  "index.detail": "詳細",
+  "index.language": "言語",
+  "index.language-info": "設定",
+  "index.system-language": "システム言語",
+  "index.application-language": "アプリケーション言語",
+  "index.language-change-confirm": "この設定を適用すると、アプリが再起動します",
+  "api.message": "メッセージ",
+  "schema.add": "追加",
+  "schema.add-success": "成功を追加"
+}

+ 36 - 0
locale/uni-app.ja.json

@@ -0,0 +1,36 @@
+{
+  "common": {
+    "uni.app.quit": "もう一度押すと、アプリケーションが終了します",
+    "uni.async.error": "サーバーへの接続がタイムアウトしました。画面をクリックして再試行してください",
+    "uni.showActionSheet.cancel": "キャンセル",
+    "uni.showToast.unpaired": "使用するには、showToastとhideToastをペアにする必要があることに注意してください",
+    "uni.showLoading.unpaired": "使用するには、showLoadingとhideLoadingをペアにする必要があることに注意してください",
+    "uni.showModal.cancel": "キャンセル",
+    "uni.showModal.confirm": "OK",
+    "uni.chooseImage.cancel": "キャンセル",
+    "uni.chooseImage.sourceType.album": "アルバムから選択",
+    "uni.chooseImage.sourceType.camera": "カメラ",
+    "uni.chooseVideo.cancel": "キャンセル",
+    "uni.chooseVideo.sourceType.album": "アルバムから選択",
+    "uni.chooseVideo.sourceType.camera": "カメラ",
+    "uni.previewImage.cancel": "キャンセル",
+    "uni.previewImage.button.save": "画像を保存",
+    "uni.previewImage.save.success": "画像をアルバムに正常に保存します",
+    "uni.previewImage.save.fail": "画像をアルバムに保存できませんでした",
+    "uni.setClipboardData.success": "コンテンツがコピーされました",
+    "uni.scanCode.title": "スキャンコード",
+    "uni.scanCode.album": "アルバム",
+    "uni.scanCode.fail": "認識に失敗しました",
+    "uni.scanCode.flash.on": "タッチして点灯",
+    "uni.scanCode.flash.off": "タップして閉じる",
+    "uni.startSoterAuthentication.authContent": "指紋認識...",
+    "uni.picker.done": "完了",
+    "uni.picker.cancel": "キャンセル",
+    "uni.video.danmu": "「弾幕」",
+    "uni.video.volume": "ボリューム",
+    "uni.button.feedback.title": "質問のフィードバック",
+    "uni.button.feedback.send": "送信"
+  },
+  "ios": {},
+  "android": {}
+}

+ 652 - 0
locale/zh-Hans.json

@@ -0,0 +1,652 @@
+{
+	"locale.auto": "系统",
+	"locale.en": "English",
+	"locale.zh-hans": "简体中文",
+	"locale.zh-hant": "繁体中文",
+	"locale.ja": "日语",
+	"index.title": "Hello i18n",
+	"index.home": "主页",
+	"index.component": "组件",
+	"index.api": "API",
+	"index.schema": "Schema",
+	"index.demo": "uni-app 国际化演示",
+	"index.demo-description": "包含 uni-framework、manifest.json、pages.json、tabbar、页面、组件、API、Schema",
+	"index.detail": "详情",
+	"index.language": "语言",
+	"index.language-info": "语言信息",
+	"index.system-language": "系统语言",
+	"index.application-language": "应用语言",
+	"index.language-change-confirm": "应用此设置将重启App",
+	"api.message": "提示",
+  "schema.name": "姓名",
+	"schema.add": "新增",
+	"schema.add-success": "新增成功",
+	"public.networdError": "网络连接失败",
+	"public.reload": "重新加载",
+	"public.reconnect": "重新连接",
+	"public.templateNotExist": "未找到模板",
+	"public.loadFailed": "加载失败",
+	"activity.index.uploadMore": "上拉加载更多",
+	"activity.seckill.list.toend": "距结束",
+	"activity.seckill.list.ended": "活动已结束",
+	"activity.seckill.list.gobuy": "去抢购",
+	"activity.seckill.list.togroup": "去拼团",
+	"activity.groupon.detail": "拼团详情",
+	"activity.groupon.detail.msg1": "人团",
+	"activity.groupon.detail.msg2": "已拼",
+	"activity.groupon.detail.msg3": "还差",
+	"activity.groupon.detail.msg4": "拼团成功",
+	"activity.groupon.detail.unit": "件",
+	"activity.groupon.detail.groupSuccess": "恭喜您~拼团成功",
+	"activity.groupon.detail.groupFailed": "抱歉~该团已满员",
+	"activity.groupon.detail.failedMsg1": "拼团超时,已自动退款",
+	"activity.groupon.detail.failedMsg2": "该团已解散",
+	"activity.groupon.detail.failedMsg3": "拼团已结束,请关注下次活动",
+	"activity.groupon.detail.leader": "团长",
+	"activity.groupon.detail.rule": "玩法",
+	"activity.groupon.detail.createGroup": "我要开团",
+	"activity.groupon.detail.viewOrder": "查看订单",
+	"activity.groupon.detail.toJoin": "去参团",
+	"activity.groupon.detail.inviteFriend": "邀请好友来拼团",
+	"activity.groupon.detail.groupNow": "立即参团",
+	"activity.groupon.my": "我的拼团",
+	"activity.groupon.order_no": "订单号",
+	"activity.groupon.order_detail": "订单详情",
+	"activity.groupon.inviteGroup": "邀请拼团",
+	"activity.groupon.type.all": "全部",
+	"activity.groupon.type.progress": "进行中",
+	"activity.groupon.type.success": "拼团成功",
+	"activity.groupon.type.failed": "拼团失败",
+	"app.sign.title": "签到有礼",
+	"app.sign.calendar": "签到日历",
+	"app.sign.msg1": "已连续签到",
+	"app.sign.msg2": "1、每日签到固定",
+	"app.sign.msg3": "积分",
+	"app.sign.msg4": "次日递增奖励",
+	"app.sign.msg5": "积分,直到",
+	"app.sign.msg6": "天之后不再增加",
+	"app.sign.msg7": "2、",
+	"app.sign.msg8": "连续签到",
+	"app.sign.msg9": "天,奖励",
+	"app.sign.msg10": "积分;",
+	"app.sign.msg11": "、用户在",
+	"app.sign.msg12": "天内,可补签",
+	"app.sign.msg13": "天,每次补签消耗",
+	"app.sign.msg14": "已连续打卡",
+	"app.sign.msg15": "消耗",
+	"app.sign.msg16": "确认补签",
+	"app.sign.msg17": "已连续打卡",
+	"app.sign.day": "天",
+	"app.sign.year": "年",
+	"app.sign.month": "月",
+	"app.sign.sign": "签到",
+	"app.sign.signed": "已签到",
+	"app.sign.intro": "签到说明",
+	"app.sign.signSuccess": "签到成功",
+	"app.sign.confirm": "确认",
+	"app.sign.point": "积分",
+	"app.sign.cancle": "取消",
+	"app.scoreshop.title": "积分商城",
+	"app.scoreshop.nogoods": "暂无积分商品",
+	"chat.index.title": "客服",
+	"chat.index.networkLosed": "网络已断开,请检查网络后刷新重试",
+	"chat.index.msg1": "猜你想问",
+	"chat.index.msg2": "请输入你要咨询的问题",
+	"chat.index.picture": "图片",
+	"chat.index.goods": "商品",
+	"chat.index.order": "订单",
+	"chat.index.online": "在线",
+	"chat.index.offline": "离线",
+	"chat.index.busy": "忙碌",
+	"chat.index.viewMore": "查看更多",
+	"chat.index.noMore": "没有更多了",
+	"chat.index.loading": "加载中...",
+	"chat.index.dropped": "您已掉线!请返回重试",
+	"chat.order.amount": "数量",
+	"chat.index.total": "共",
+	"chat.index.msg1": "件商品",
+	"chat.index.msg2": "合计",
+	"chat.select.popup.myView": "我的浏览",
+	"chat.select.popup.myOrder": "我的订单",
+	"commission.index.title": "分销中心",
+	"commission.apply.title": "申请分销商",
+	"commission.apply.noOpenApply": "未开启分销商申请",
+	"commission.apply.agree": "勾选代表同意",
+	"commission.apply.modify": "修改信息",
+	"commission.apply.submit": "提交审核",
+	"commission.apply.resubmit": "重新提交",
+	"commission.apply.msg1": "请同意申请协议",
+	"commission.apply.msg2": "请填写",
+	"commission.apply.msg3": "请上传",
+	"commission.goods.title": "推广商品",
+	"commission.goods.msg1": "预计佣金",
+	"commission.goods.msg2": "分享赚",
+	"commission.goods.noGoods": "暂无推广商品",
+	"commission.order.title": "分销订单",
+	"commission.order.msg1": "团队订单数量(单)",
+	"commission.order.msg2": "一级订单",
+	"commission.order.msg3": "二级订单",
+	"commission.order.msg4": "团队订单金额(元)",
+	"commission.order.msg5": "自购分销订单数量(单)",
+	"commission.order.msg6": "自购分销订单金额(元)",
+	"commission.order.order_no": "订单编号",
+	"commission.order.commission": "佣金",
+	"commission.order.noOrder": "暂无订单",
+	"commission.order.all": "全部",
+	"commission.order.noCounted": "不计入",
+	"commission.order.counted": "已计入",
+	"commission.order.deducted": "已扣除",
+	"commission.order.cancled": "已取消",
+	"commission.sharelog.title": "分享记录",
+	"commission.sharelog.noLog": "暂无分享记录",
+	"commission.sharelog.cancled": "已取消",
+	"commission.team.my": "我的团队",
+	"commission.team.recommender": "推荐人",
+	"commission.team.teamAll": "团队总人数(人)",
+	"commission.team.recommender": "推荐人",
+	"commission.team.firstLevelMember": "一级成员",
+	"commission.team.secondLevelMember": "二级成员",
+	"commission.team.teamDealer": "团队分销商人数(人)",
+	"commission.team.firstLevelDealer": "一级经销商",
+	"commission.team.secondLevelDealer": "二级经销商",
+	"commission.team.noMember": "暂无团队信息",
+	"commission.team.childTeam": "下级团队",
+	"commission.team.people": "人",
+	"commission.account.info": "账户信息",
+	"commission.account.viewDetail": "查看明细",
+	"commission.account.totalProfit": "总收益(元)",
+	"commission.account.myCommission": "我的佣金(元)",
+	"commission.account.myConsume": "我的消费(元)",
+	"common.back": "返回",
+	"commission.auth.closed": "分销中心已关闭",
+	"commission.auth.functionDisabled": "该功能暂不可用",
+	"commission.auth.ok": "知道了",
+	"commission.auth.accountDisabled": "账户已被禁用",
+	"commission.auth.perfectInfo": "待完善信息",
+	"commission.auth.perfectTips": "请补充您的信息后提交审核",
+	"commission.auth.underReview": "正在审核中",
+	"commission.auth.waitResult": "请耐心等候结果",
+	"commission.auth.notPass": "抱歉!您的申请信息未通过",
+	"commission.auth.resubmitTips": "请尝试修改后重新提交",
+	"commission.auth.resubmit": "重新申请",
+	"commission.auth.resubmitTry": "请尝试重新申请",
+	"commission.auth.accountFrozen": "抱歉!您的账户已被冻结",
+	"commission.auth.serviceTips": "如有疑问请联系客服",
+	"commission.condition.msg1": "累计消费满",
+	"commission.condition.msg2": "购买指定商品即可成为分销商",
+	"commission.condition.msg3": "满足累计消费即可成为分销商",
+	"commission.log.news": "实时动态",
+	"commission.menu.prefecture": "功能专区",
+	"commission.menu.myTeam": "我的团队",
+	"commission.menu.commissionDetail": "佣金明细",
+	"commission.menu.orders": "分销订单",
+	"commission.menu.goods": "推广商品",
+	"commission.menu.accountInfo": "我的资料",
+	"commission.menu.invite": "邀请海报",
+	"commission.menu.shareLog": "分享记录",
+	"commission.menu.prefecture": "功能专区",
+	"coupon.list.title": "优惠券",
+	"coupon.list.noCoupon": "暂无优惠券",
+	"coupon.list.all": "领券中心",
+	"coupon.list.geted": "已领取",
+	"coupon.list.used": "已使用",
+	"coupon.list.expired": "已失效",
+	"coupon.detail.title": "优惠券详情",
+	"coupon.detail.getTime": "领取时间",
+	"coupon.detail.expired": "有效期",
+	"coupon.detail.to": "至",
+	"coupon.detail.couponType": "优惠券类型",
+	"coupon.detail.noGoods": "暂无商品",
+	"goods.groupon.ended": "活动不存在或已结束",
+	"goods.groupon.backLastPage": "返回上一页",
+	"goods.groupon.groupPrice": "拼团价",
+	"goods.groupon.toEndTime": "距结束仅剩",
+	"goods.groupon.endedMsg": "活动已结束",
+	"goods.groupon.buyOriginPrice": "原价购买",
+	"goods.groupon.sellout": "已售罄",
+	"goods.groupon.startGroupNow": "立即开团",
+	"goods.groupon.other": "再逛逛",
+	"goods.index.sellout": "商品不存在或已下架",
+	"goods.list.comprehensive": "综合推荐",
+	"goods.list.priceAsc": "价格升序",
+	"goods.list.priceDesc": "价格降序",
+	"goods.list.sale": "销量",
+	"goods.list.newGoods": "新品优先",
+	"goods.score.exchangeNow": "立即兑换",
+	"goods.seckill.seckillPrice": "秒杀价",
+	"goods.seckill.originPriceBuy": "原价购买",
+	"goods.seckill.seckillNow": "立即秒杀",
+	"goods.comment.title": "全部评价",
+	"goods.comment.noData": "暂无数据",
+	"goods.comment.add": "评价",
+	"goods.comment.tips": "宝贝满足你的期待吗?说说你的使用心得,分享给想买的他们吧~",
+	"goods.comment.publish": "发布",
+	"goods.comment.terrible": "糟糕",
+	"goods.comment.bad": "差评",
+	"goods.groupon.general": "一般",
+	"goods.groupon.nice": "良好",
+	"goods.groupon.good": "好评",
+	"goods.groupon.noOrder": "无待评价订单",
+	"index.cart.title": "购物车",
+	"index.cart.emptyCart": "购物车空空如也,快去逛逛吧~",
+	"index.cart.total": "共",
+	"index.cart.unitgoods": "件商品",
+	"index.cart.cancle": "取消",
+	"index.cart.edit": "编辑",
+	"index.cart.chooseAll": "全选",
+	"index.cart.delete": "删除",
+	"index.cart.settle": "去结算",
+	"index.category.title": "分类",
+	"index.category.viewMore": "点击查看更多",
+	"index.index.title": "首页",
+	"index.search.title": "搜索",
+	"index.search.keyword": "请输入关键字",
+	"index.search.history": "搜索历史",
+	"index.search.clearHistory": "清除搜索历史",
+	"index.search.tips": "提示",
+	"index.search.sureClearHistory": "确认清除搜索历史吗?",
+	"index.user.title": "我的",
+	"common.viewMore": "查看更多",
+	"order.confirm.title": "确认订单",
+	"order.confirm.delivery": "配送方式",
+	"order.confirm.remark": "订单备注",
+	"order.confirm.tips": "建议留言前先与商家沟通",
+	"order.confirm.price": "商品金额",
+	"order.confirm.pointsDeducted": "扣除积分",
+	"order.confirm.freight": "运费",
+	"order.confirm.coupon": "优惠券",
+	"order.confirm.msg1": "张可用",
+	"order.confirm.noCoupon": "暂无可用优惠券",
+	"order.confirm.discount": "活动优惠",
+	"order.confirm.unit": "件",
+	"order.confirm.invoiceRequest": "发票申请",
+	"order.confirm.exchangeNow": "立即兑换",
+	"order.confirm.submitOrder": "提交订单",
+	"order.confirm.chooseAddress": "请选择收货地址",
+	"order.confirm.prompt": "提示",
+	"order.confirm.promptContent": "确定使用积分立即兑换?",
+	"order.confirm.later": "再想想",
+	"order.detail.title": "订单详情",
+	"common.detail": "详情",
+	"order.detail.applyService": "申请售后",
+	"order.detail.reapplyService": "重新售后",
+	"order.detail.saleDetail": "售后详情",
+	"order.detail.rebuy": "再次购买",
+	"order.detail.order_no": "订单编号",
+	"order.detail.copy": "复制",
+	"order.detail.order_time": "下单时间",
+	"order.detail.pay_time": "支付时间",
+	"order.detail.pay_way": "支付方式",
+	"order.detail.goodsAmount": "商品总额",
+	"order.detail.freight": "运费",
+	"order.detail.discount": "优惠金额",
+	"order.detail.paid": "已付款",
+	"order.detail.needPay": "需要付款",
+	"order.detail.refund": "已退款",
+	"order.detail.cancleOrder": "取消订单",
+	"order.detail.continuePay": "继续支付",
+	"order.detail.applyRefund": "申请退款",
+	"order.detail.inviteGroup": "邀请拼团",
+	"order.detail.groupDetail": "拼团详情",
+	"order.detail.viewExpress": "查看物流",
+	"order.detail.confirmReceived": "确认收货",
+	"order.detail.comment": "评价晒单",
+	"order.detail.viewInvoice": "查看发票",
+	"order.detail.refundAgain": "重新退款",
+	"order.detail.tips": "提示",
+	"order.detail.tipsCancleOrder": "确定要取消订单吗?",
+	"order.detail.tipsRefund": "确定要申请退款吗?",
+	"order.invoice.title": "发票详情",
+	"order.invoice.expectedInvoiceMoney": "预计可开发票金额",
+	"order.invoice.invoiceNormal": "增值税电子普通发票",
+	"order.invoice.invoiceType": "发票类型",
+	"order.invoice.invoice": "发票抬头",
+	"order.invoice.actualMoney": "实开金额",
+	"order.invoice.invoiceTime": "开票时间",
+	"order.invoice.applyTime": "申请时间",
+	"order.invoice.total": "共",
+	"order.invoice.unit": "张",
+	"order.invoice.previewInvoice": "点击预览发票",
+	"order.invoice.orderStatus": "订单状态",
+	"order.invoice.orderNo": "订单编号",
+	"order.invoice.orderTime": "下单时间",
+	"order.invoice.submitOrder": "订单提交",
+	"order.invoice.waitInvoice": "等待开票",
+	"order.invoice.finishInvoice": "开票完成",
+	"order.invoice.openDocSuc": "打开文档成功",
+	"order.list.title": "我的订单",
+	"order.list.noOrder": "暂无订单",
+	"order.list.orderNo": "订单号",
+	"order.list.applyService": "申请售后",
+	"order.list.reapplyService": "重新售后",
+	"order.list.saleDetail": "售后详情",
+	"order.list.discount": "优惠",
+	"order.list.freight": "运费",
+	"order.list.totalMoney": "总金额",
+	"order.list.deleteOrder": "删除订单",
+	"order.list.viewDetail": "查看详情",
+	"order.list.viewInvoice": "查看发票",
+	"order.list.all": "全部",
+	"order.list.unpaid": "待付款",
+	"order.list.nosend": "待发货",
+	"order.list.noget": "待收货",
+	"order.list.nocomment": "待评价",
+	"order.list.tips": "提示",
+	"order.list.tipsConfirmReceived": "请确认包裹全部到达后再确认收货",
+	"order.list.tipsCancleOrder": "确定要取消订单吗?",
+	"order.list.tipsDeleteOrder": "确定要删除订单吗?",
+	"order.list.tipsApplyRefund": "确定要申请退款吗?",
+	"order.aftersale.title": "申请售后",
+	"order.aftersale.type": "售后类型",
+	"order.aftersale.reason": "申请原因",
+	"order.aftersale.chooseReason": "请选择申请原因~",
+	"order.aftersale.contact": "联系方式",
+	"order.aftersale.enterContact": "请输入您的联系电话",
+	"order.aftersale.desc": "相关描述",
+	"order.aftersale.descPlaceholrder": "客官~请描述您遇到的问题,建议上传照片",
+	"order.aftersale.service": "联系客服",
+	"order.aftersale.submit": "提交",
+	"order.aftersale.confirm": "确定",
+	"order.aftersale.refundOnly": "仅退款",
+	"order.aftersale.returnOrExchange": "退/换货",
+	"order.aftersale.other": "其他",
+	"order.aftersale.sendWrong": "卖家发错货了",
+	"order.aftersale.returnShipping": "退运费",
+	"order.aftersale.descNotMatch1": "大小/重量与商品描述不符",
+	"order.aftersale.descNotMatch2": "生产日期/保质期与商品描述不符",
+	"order.aftersale.qualityIssues": "质量问题",
+	"order.aftersale.notWant": "我不想要了",
+	"order.aftersale.detail.title": "售后详情",
+	"order.aftersale.detail.refundMoney": "退款总额",
+	"order.aftersale.detail.orderNo": "服务单号",
+	"order.aftersale.detail.copy": "复制",
+	"order.aftersale.detail.applyTime": "申请时间",
+	"order.aftersale.detail.type": "售后类型",
+	"order.aftersale.detail.reason": "申请原因",
+	"order.aftersale.detail.desc": "相关描述",
+	"order.aftersale.detail.empty": "暂无该订单售后详情",
+	"order.aftersale.detail.cancleApply": "取消申请",
+	"order.aftersale.detail.apply": "提交申请",
+	"order.aftersale.detail.dealing": "dealing",
+	"order.aftersale.detail.tips": "提示",
+	"order.aftersale.detail.tipsCancle": "确定要取消此申请吗?",
+	"order.aftersale.detail.tipsDelete": "确定要删除吗?",
+	"order.aftersale.detail.complete": "完成",
+	"order.aftersale.list.title": "售后列表",
+	"order.aftersale.list.noData": "暂无数据",
+	"order.aftersale.list.orderNo": "服务单号",
+	"order.aftersale.list.cancleApply": "取消申请",
+	"order.aftersale.list.delete": "删除",
+	"order.aftersale.list.all": "全部",
+	"order.aftersale.list.nooper": "申请中",
+	"order.aftersale.list.ing": "处理中",
+	"order.aftersale.list.completed": "已完成",
+	"order.aftersale.list.refuse": "已拒绝",
+	"order.aftersale.log.title": "售后进度",
+	"order.aftersale.log.paid": "买家下单",
+	"order.aftersale.log.delivery": "卖家发货",
+	"order.aftersale.log.received": "买家签收",
+	"order.aftersale.log.complete": "交易完成",
+	"order.aftersale.content.title": "发货内容",
+	"order.aftersale.content.detail": "发货信息",
+	"order.aftersale.express.title": "物流包裹",
+	"order.aftersale.express.msg": "个包裹已派送",
+	"order.aftersale.express.total": "共",
+	"order.aftersale.express.unitgoods": "件商品",
+	"order.aftersale.express.log": "物流追踪",
+	"order.aftersale.express.status": "物流状态",
+	"order.aftersale.express.no": "快递单号",
+	"order.aftersale.express.company": "快递公司",
+	"order.aftersale.express.noData": "暂无快递信息",
+	"pay.index.title": "收银台",
+	"pay.index.pay_way": "选择支付方式",
+	"pay.index.balance": "余额",
+	"pay.index.cny": "元",
+	"pay.index.notSupport": "部分商品不支持",
+	"pay.index.checkEnv": "检测支付环境中",
+	"pay.index.expired": "支付已过期",
+	"pay.index.payNow": "立即支付",
+	"pay.index.wxpay": "微信支付",
+	"pay.index.alipay": "支付宝支付",
+	"pay.index.balancepay": "余额支付",
+	"pay.index.payCash": "货到付款",
+	"pay.index.choosePayway": "请选择支付方式",
+	"pay.index.tips": "提示",
+	"pay.index.tipsConfirmPay": "确定要支付吗?",
+	"pay.index.tipsSubmitOrder": "确定要下单吗?",
+	"pay.index.paid": "该订单已支付",
+	"pay.index.restTime": "剩余支付时间",
+	"pay.index.noPayData": "未查询到支付单信息",
+	"pay.recharge.title": "充值",
+	"pay.recharge.balance": "当前余额(元)",
+	"pay.recharge.log": "充值记录",
+	"pay.recharge.amount": "充值金额",
+	"pay.recharge.enterAmount": "请输入充值金额",
+	"pay.recharge.give": "送",
+	"pay.recharge.cny": "元",
+	"pay.recharge.point": "积分",
+	"pay.recharge.confirmRecharge": "确认充值",
+	"pay.recharge.closeRecharge": "关闭充值",
+	"pay.rechargelog.title": "充值记录",
+	"pay.rechargelog.payStatus": "支付状态",
+	"pay.rechargelog.payWay": "充值渠道",
+	"pay.rechargelog.orderNo": "充值单号",
+	"pay.rechargelog.payTime": "充值时间",
+	"pay.rechargelog.noData": "暂无充值记录",
+	"pay.payresult.title": "支付结果",
+	"pay.payresult.orderSuccess": "下单成功",
+	"pay.payresult.paySuccess": "支付成功",
+	"pay.payresult.payFailed": "支付失败",
+	"pay.payresult.orderClosed": "该订单已关闭",
+	"pay.payresult.checkPay": "检测支付结果...",
+	"pay.payresult.backHome": "返回首页",
+	"pay.payresult.repay": "重新支付",
+	"pay.payresult.viewOrder": "查看订单",
+	"pay.payresult.myGroup": "我的拼团",
+	"pay.payresult.getInfo": "获取实时发货信息与订单状态",
+	"pay.payresult.subscribe": "立即订阅",
+	"pay.withdraw.title": "申请提现",
+	"pay.withdraw.balance": "可提现金额(元)",
+	"pay.withdraw.log": "提现记录",
+	"pay.withdraw.amount": "提现金额",
+	"pay.withdraw.enterAmount": "请输入提现金额",
+	"pay.withdraw.getto": "提现至",
+	"pay.withdraw.type": "请选择提现方式",
+	"pay.withdraw.weixin": "微信零钱",
+	"pay.withdraw.alipay": "支付宝账户",
+	"pay.withdraw.bank": "银行卡转账",
+	"pay.withdraw.noAccount": "暂无提现账户",
+	"pay.withdraw.edit": "修改",
+	"pay.withdraw.add": "添加",
+	"pay.withdraw.confirm": "确认提现",
+	"pay.withdraw.intro": "提现说明",
+	"pay.withdraw.min": "最少",
+	"pay.withdraw.max": "最多",
+	"pay.withdraw.cny": "元",
+	"pay.withdraw.onetime": "单次提现金额",
+	"pay.withdraw.per": "每",
+	"pay.withdraw.day": "天",
+	"pay.withdraw.month": "月",
+	"pay.withdraw.maxWIthdraw": "最多可提现",
+	"pay.withdraw.times": "次",
+	"pay.withdraw.msg1": "每次收取提现手续费",
+	"pay.withdraw.msg2": "提现申请后将",
+	"pay.withdraw.msg3": "自动",
+	"pay.withdraw.msg4": "审核后",
+	"pay.withdraw.msg5": "到账, 到账结果请查收对应渠道服务通知",
+	"pay.withdraw.msg6": "如有疑问请及时联系客服.",
+	"pay.withdraw.msg7": "请输入正确的提现金额",
+	"pay.withdraw.msg8": "请选择提现方式",
+	"pay.withdraw.msg9": "请完善您的账户信息",
+	"pay.withdraw.msg10": "请使用微信浏览器操作",
+	"pay.withdraw.msg11": "操作成功",
+	"pay.withdraw.msg12": "您的提现申请已成功提交",
+	"pay.withdraw.msg13": "继续提现",
+	"pay.withdraw.msg14": "查看记录",
+	"pay.withdrawlog.title": "提现记录",
+	"pay.withdrawlog.tobank": "提现至银行卡",
+	"pay.withdrawlog.toalipay": "提现至支付宝",
+	"pay.withdrawlog.toweixin": "提现至微信",
+	"pay.withdrawlog.applyStatus": "申请状态",
+	"pay.withdrawlog.accountInfo": "账户信息",
+	"pay.withdrawlog.alipay": "支付宝",
+	"pay.withdrawlog.wxbalance": "微信零钱",
+	"pay.withdrawlog.orderNo": "提现单号",
+	"pay.withdrawlog.fee": "手续费",
+	"pay.withdrawlog.applyTime": "申请时间",
+	"pay.withdrawlog.noData": "暂无提现记录",
+	"pay.account.info.bindBankCard": "绑定银行卡",
+	"pay.account.info.bindWxchat": "绑定微信",
+	"pay.account.info.bindAlipay": "绑定支付宝",
+	"pay.account.info.holder": "持卡人",
+	"pay.account.info.enterHolder": "请输入持卡人",
+	"pay.account.info.bankName": "开户行",
+	"pay.account.info.enterBankName": "请输入开户行",
+	"pay.account.info.bankCard": "银行卡号",
+	"pay.account.info.enterBankCard": "请输入银行卡号",
+	"pay.account.info.realname": "真实姓名",
+	"pay.account.info.enterRealname": "请输入您的真实姓名",
+	"pay.account.info.alipay": "支付宝",
+	"pay.account.info.enterAlipay": "请输入支付宝 邮箱/手机号",
+	"pay.account.info.save": "保存",
+	"pay.account.type.withdraw": "选择提现方式",
+	"pay.account.type.confirm": "确定",
+	"pay.account.type.wxbalance": "微信零钱",
+	"pay.account.type.alipay": "微信零钱",
+	"pay.account.type.bank": "银行卡转账",
+	"public.faq.title": "常见问题",
+	"public.faq.noData": "暂无常见问题",
+	"public.feedback.title": "问题反馈",
+	"public.feedback.type": "请选择类型",
+	"public.feedback.desc": "相关描述",
+	"public.feedback.enterDesc": "客官~请描述您遇到的问题,建议上传照片",
+	"public.feedback.contact": "联系方式",
+	"public.feedback.enterContact": "请输入您的联系电话",
+	"public.feedback.service": "联系客服",
+	"public.feedback.submit": "提交",
+	"public.feedback.product": "产品功能问题反馈",
+	"public.feedback.advice": "建议及意见反馈",
+	"public.setting.title": "系统设置",
+	"public.feedback.version": "当前版本",
+	"public.feedback.session": "本地缓存",
+	"public.feedback.feedback": "意见反馈",
+	"public.feedback.about": "关于我们",
+	"public.feedback.deleteAccount": "注销账号",
+	"public.feedback.and": "与",
+	"public.feedback.logout": "退出登录",
+	"public.feedback.tips": "提示",
+	"public.feedback.tipsDeleteAccount": "确认注销账号?",
+	"public.feedback.tipsLogout": "确认退出账号?",
+	"user.goods.collect.title": "商品收藏",
+	"user.goods.collect.total": "共",
+	"user.goods.collect.unitgoods": "件商品",
+	"user.goods.collect.cancle": "取消",
+	"user.goods.collect.edit": "编辑",
+	"user.goods.collect.chooseAll": "全选",
+	"user.goods.collect.cancleCollect": "取消收藏",
+	"user.goods.collect.noData": "暂无收藏",
+	"user.goods.log.title": "我的足迹",
+	"user.goods.log.delete": "删除足迹",
+	"user.goods.log.noData": "暂无浏览记录",
+	"user.info.title": "用户信息",
+	"user.info.edit": "修改",
+	"user.info.username": "用户名",
+	"user.info.setUsername": "设置用户名",
+	"user.info.nickname": "昵称",
+	"user.info.setNickname": "设置昵称",
+	"user.info.sex": "性别",
+	"user.info.mobile": "手机号",
+	"user.info.bindMobile": "请绑定手机号",
+	"user.info.password": "登录密码",
+	"user.info.editPassword": "修改登录密码",
+	"user.info.setPassword": "点击设置登录密码",
+	"user.info.address": "地址管理",
+	"user.info.invoice": "发票管理",
+	"user.info.thirdAccount": "第三方账号绑定",
+	"user.info.wxPublicAccount": "微信公众号",
+	"user.info.wxApplet": "微信小程序",
+	"user.info.wxOpenPlatform": "微信开放平台",
+	"user.info.unbind": "解绑",
+	"user.info.bind": "绑定",
+	"user.info.save": "保存",
+	"user.info.male": "男",
+	"user.info.female": "女",
+	"user.info.private": "保密",
+	"user.info.tips": "解绑提醒",
+	"user.info.tipsUnbind": "解绑后您将无法通过微信登录此账号",
+	"user.info.later": "再想想",
+	"user.info.confirm": "确定",
+	"user.set.title": "编辑资料",
+	"user.set.shop": "SHEEP商城",
+	"user.set.session": "清除缓存",
+	"user.set.version": "当前版本",
+	"user.set.feedback": "意见反馈",
+	"user.set.about": "关于我们",
+	"user.set.userProtocol": "《用户协议》",
+	"user.set.privateProtocol": "《隐私协议》",
+	"user.set.copyRightHolder": "******版权所有",
+	"user.set.copyRight": "Copyright© 2018-2022",
+	"user.set.about": "关于我们",
+	"user.address.edit": "编辑地址",
+	"user.address.add": "新增地址",
+	"user.address.receiver": "收货人",
+	"user.address.enterReceiver": "请填写收货人姓名",
+	"user.address.mobile": "手机号",
+	"user.address.enterMobile": "请输入手机号",
+	"user.address.province": "省市区",
+	"user.address.enterProvince": "请选择省市区",
+	"user.address.detail": "详细地址",
+	"user.address.enterDetail": "请输入详细地址",
+	"user.address.setDefault": "设为默认地址",
+	"user.address.delete": "删除",
+	"user.address.save": "保存",
+	"user.address.tips": "提示",
+	"user.address.tipsDelete": "确认删除此收货地址吗?",
+	"user.address.list": "收货地址",
+	"user.address.importWxAddress": "导入微信地址",
+	"user.address.addAddress": "新增收货地址",
+	"user.address.noData": "暂无收货地址",
+	"user.invoice.edit": "编辑发票",
+	"user.invoice.add": "新增发票",
+	"user.invoice.type": "发票类型",
+	"user.invoice.realname": "姓名",
+	"user.invoice.enterRealname": "请输入您的姓名(必填)",
+	"user.invoice.mobile": "手机号",
+	"user.invoice.enterMobile": "请输入手机号(必填)",
+	"user.invoice.company": "单位名称",
+	"user.invoice.enterCompany": "请输入单位名称(必填)",
+	"user.invoice.taxId": "税号",
+	"user.invoice.enterTaxId": "请输入单位税号(必填)",
+	"user.invoice.bankname": "开户银行",
+	"user.invoice.enterBankname": "请输入对公账户开户银行",
+	"user.invoice.bankcard": "银行账号",
+	"user.invoice.enterBankcard": "请输入银行账号",
+	"user.invoice.detailAddress": "详细地址",
+	"user.invoice.enterDetailAddress": "请输入详细地址",
+	"user.invoice.personal": "个人",
+	"user.invoice.enterprise": "企/事业单位",
+	"user.invoice.tips": "提示",
+	"user.invoice.tipsDelete": "确认删除此发票信息吗?",
+	"user.wallet.commission.title": "佣金",
+	"user.wallet.commission.my": "我的佣金(元)",
+	"user.wallet.commission.withdraw": "提现",
+	"user.wallet.commission.tobalance": "转余额",
+	"user.wallet.commission.unget": "待入账佣金",
+	"user.wallet.commission.withdrawAvailable": "可提现佣金",
+	"user.wallet.commission.income": "总收入",
+	"user.wallet.commission.payout": "总支出",
+	"user.wallet.commission.noData": "暂无数据",
+	"user.wallet.commission.msg1": "将您的佣金转到余额中继续消费",
+	"user.wallet.commission.enterAmount": "请输入金额",
+	"user.wallet.commission.confirm": "确定",
+	"user.wallet.commission.title": "佣金",
+	"user.wallet.commission.all": "全部",
+	"user.wallet.commission.incomeType": "收入",
+	"user.wallet.commission.expenseType": "支出",
+	"user.wallet.commission.tips": "提示",
+	"user.wallet.commission.tipsToBalance": "确认把您的佣金转入到余额钱包中?",
+	"user.wallet.money.title": "钱包",
+	"user.wallet.money.balance": "钱包余额(元)",
+	"user.wallet.score.title": "我的积分",
+	"user.wallet.score.balance": "当前积分"
+}

+ 24 - 0
locale/zh-Hant.json

@@ -0,0 +1,24 @@
+{
+  "locale.auto": "系統",
+  "locale.en": "English",
+  "locale.zh-hans": "简体中文",
+  "locale.zh-hant": "繁體中文",
+  "locale.ja": "日语",
+  "index.title": "Hello i18n",
+  "index.home": "主頁",
+  "index.component": "組件",
+  "index.api": "API",
+  "index.schema": "Schema",
+  "index.demo": "uni-app 國際化演示",
+  "index.demo-description": "包含 uni-framework、manifest.json、pages.json、tabbar、頁面、組件、API、Schema",
+  "index.detail": "詳情",
+  "index.language": "語言",
+  "index.language-info": "語言信息",
+  "index.system-language": "系統語言",
+  "index.application-language": "應用語言",
+  "index.language-change-confirm": "應用此設置將重啟App",
+  "api.message": "提示",
+  "schema.name": "姓名",
+  "schema.add": "新增",
+  "schema.add-success": "新增成功"
+}

+ 9 - 1
main.js

@@ -1,12 +1,20 @@
 import App from './App';
 import { createSSRApp } from 'vue';
+import { createI18n } from 'vue-i18n'
 import { setupPinia } from './sheep/store';
+import messages from './locale/index'
 
+uni.setLocale('en');
+let i18nConfig = {
+  locale: 'en',
+  messages
+}
 
+const i18n = createI18n(i18nConfig)
 export function createApp() {
 
   const app = createSSRApp(App);
-  
+  app.use(i18n)
   setupPinia(app);
 
   return {

+ 17 - 17
pages/activity/groupon/detail.vue

@@ -1,6 +1,6 @@
 <template>
   <s-layout
-    title="拼团详情"
+    :title="$t('activity.groupon.detail')"
     class="detail-wrap"
     :navbar="state.data && !state.loading ? 'inner' : 'normal'"
     :onShareAppMessage="shareInfo"
@@ -33,8 +33,8 @@
         >
           <template #groupon>
             <view class="ss-flex">
-              <view class="sales-title">{{ state.data.num }}人团</view>
-              <view class="num-title ss-m-l-20">已拼{{ state.data.goods.sales }}件</view>
+              <view class="sales-title">{{ state.data.num }}{{$t('activity.groupon.detail.msg1')}}</view>
+              <view class="num-title ss-m-l-20">{{$t('activity.groupon.detail.msg2')}}{{ state.data.goods.sales }}{{$t('activity.groupon.detail.unit')}}</view>
             </view>
           </template>
         </s-goods-item>
@@ -44,20 +44,20 @@
           <view v-if="state.data.my">
             <view class="countdown-title ss-flex">
               <text class="cicon-check-round"></text>
-              恭喜您~拼团成功
+              {{$t('activity.groupon.detail.groupSuccess')}}
             </view>
           </view>
           <view v-else>
             <view class="countdown-title ss-flex">
               <text class="cicon-info"></text>
-              抱歉~该团已满员
+              {{$t('activity.groupon.detail.groupFailed')}}
             </view>
           </view>
         </view>
         <view v-if="state.data.status === 'invalid'">
           <view class="countdown-title ss-flex">
             <text class="cicon-info"></text>
-            {{ state.data.my ? '拼团超时,已自动退款' : '该团已解散' }}
+            {{ state.data.my ? $t('activity.groupon.detail.failedMsg1') : $t('activity.groupon.detail.failedMsg2') }}
           </view>
         </view>
         <view v-if="state.data.status === 'ing'">
@@ -65,14 +65,14 @@
           <view v-if="state.data.activity_status === 'ended'">
             <view class="countdown-title ss-flex">
               <text class="cicon-info"></text>
-              拼团已结束,请关注下次活动
+              {{$t('activity.groupon.detail.failedMsg3')}}
             </view>
           </view>
 
           <view class="countdown-title ss-flex" v-if="state.data.activity_status === 'ing'">
-            还差
+            {{$t('activity.groupon.detail.msg3')}}
             <view class="num">{{ state.data.num - state.data.current_num }}人</view>
-            拼团成功
+            {{$t('activity.groupon.detail.msg4')}}
             <view class="ss-flex countdown-time">
               <view class="countdown-h ss-flex ss-row-center">{{ endTime.h }}</view>
               <view class="ss-m-x-4">:</view>
@@ -98,7 +98,7 @@
               class="header-tag ss-flex ss-col-center ss-row-center"
               v-if="item.is_leader == '1'"
             >
-              团长
+              {{$t('activity.groupon.detail.leader')}}
             </view>
           </view>
           <view class="default-avatar ss-m-r-24 ss-m-b-20" v-for="item in state.number" :key="item">
@@ -118,7 +118,7 @@
             })
           "
         >
-          <view class="label-text">玩法</view>
+          <view class="label-text">{{$t('activity.groupon.detail.rule')}}</view>
           <view class="ss-flex">
             <view class="cell-content ss-line-1 ss-flex-1">
               {{ state.data.activity?.richtext_title }}
@@ -142,9 +142,9 @@
           v-if="state.data.my"
           @tap="onDetail(state.data.my.order_id)"
         >
-          查看订单
+          {{$t('activity.groupon.detail.viewOrder')}}
         </button>
-        <button class="ss-reset-button join-btn" v-else @tap="onCreateGroupon"> 我要开团 </button>
+        <button class="ss-reset-button join-btn" v-else @tap="onCreateGroupon"> {{$t('activity.groupon.detail.createGroup')}} </button>
       </view>
       <view v-if="state.data.status === 'ing'" class="ss-m-t-40 ss-flex ss-row-center">
         <view v-if="state.data.activity_status === 'ended'">
@@ -153,7 +153,7 @@
             v-if="state.data.my"
             @tap="onDetail(state.data.my.order_id)"
           >
-            查看订单
+            {{$t('activity.groupon.detail.viewOrder')}}
           </button>
           <button
             class="ss-reset-button disabled-btn"
@@ -161,7 +161,7 @@
             disabled
             @tap="onDetail(state.data.my.order_id)"
           >
-            去参团
+            {{$t('activity.groupon.detail.toJoin')}}
           </button>
         </view>
         <view v-else class="ss-flex ss-row-center">
@@ -171,7 +171,7 @@
               :disabled="state.data.activity_status === 'ing' && endTime.ms <= 0"
               @tap="onShare"
             >
-              邀请好友来拼团
+              {{$t('activity.groupon.detail.inviteFriend')}}
             </button>
           </view>
           <view v-else>
@@ -180,7 +180,7 @@
               :disabled="state.data.activity_status === 'ing' && endTime.ms <= 0"
               @tap="onJoinGroupon()"
             >
-              立即参团
+              {{$t('activity.groupon.detail.groupNow')}}
             </button>
           </view>
         </view>

+ 4 - 4
pages/activity/groupon/list.vue

@@ -12,7 +12,7 @@
         </view>
         <view class="content-header-box ss-flex ss-row-center">
           <view class="countdown-box ss-flex" v-if="endTime?.ms > 0 && state.activityInfo">
-            <view class="countdown-title ss-m-r-12">距结束</view>
+            <view class="countdown-title ss-m-r-12">{{$t('activity.seckill.list.toend')}}</view>
             <view class="ss-flex countdown-time">
               <view class="ss-flex countdown-h">{{ endTime.h }}</view>
               <view class="ss-m-x-4">:</view>
@@ -21,7 +21,7 @@
               <view class="countdown-num ss-flex ss-row-center">{{ endTime.s }}</view>
             </view>
           </view>
-          <view class="" v-if="endTime?.ms < 0 && state.activityInfo"> 活动已结束 </view>
+          <view class="" v-if="endTime?.ms < 0 && state.activityInfo"> {{$t('activity.seckill.list.ended')}} </view>
         </view>
       </view>
       <scroll-view
@@ -45,7 +45,7 @@
             "
           >
             <template v-slot:cart>
-              <button class="ss-reset-button cart-btn">去拼团</button>
+              <button class="ss-reset-button cart-btn">{{$t('activity.seckill.list.togroup')}}</button>
             </template>
           </s-goods-column>
         </view>
@@ -53,7 +53,7 @@
           v-if="state.pagination.total > 0"
           :status="state.loadStatus"
           :content-text="{
-            contentdown: '上拉加载更多',
+            contentdown: $t('activity.index.uploadMore'),
           }"
           @tap="loadmore"
         />

+ 10 - 10
pages/activity/groupon/order.vue

@@ -1,6 +1,6 @@
 <!-- 页面 -->
 <template>
-  <s-layout title="我的拼团">
+  <s-layout :title="$t('activity.groupon.my')">
     <su-sticky bgColor="#fff">
       <su-tabs
         :list="tabMaps"
@@ -17,7 +17,7 @@
         :key="order.id"
       >
         <view class="order-card-header ss-flex ss-col-center ss-row-between ss-p-x-20">
-          <view class="order-no">订单号:{{ order.my.order.order_sn }}</view>
+          <view class="order-no">{{$t('activity.groupon.order_no')}}:{{ order.my.order.order_sn }}</view>
           <view
             class="ss-font-26"
             :class="
@@ -40,7 +40,7 @@
           >
             <template #groupon>
               <view class="ss-flex">
-                <view class="sales-title"> {{ order.num }}人团 </view>
+                <view class="sales-title"> {{ order.num }}{{$t('activity.groupon.detail.msg1')}} </view>
                 <!-- <view class="num-title ss-m-l-20"> 已拼{{ order.goods.sales }}件 </view> -->
               </view>
             </template>
@@ -51,14 +51,14 @@
             class="detail-btn ss-reset-button"
             @tap="sheep.$router.go('/pages/order/detail', { id: order.my.order_id })"
           >
-            订单详情
+            {{$t('activity.groupon.order_detail')}}
           </button>
           <button
             class="tool-btn ss-reset-button"
             :class="{ 'ui-BG-Main-Gradient': order.status === 'ing' }"
             @tap="sheep.$router.go('/pages/activity/groupon/detail', { id: order.id })"
           >
-            {{ order.status === 'ing' ? '邀请拼团' : '拼团详情' }}
+            {{ order.status === 'ing' ? $t('activity.groupon.inviteGroup') : $t('activity.groupon.detail') }}
           </button>
         </view>
       </view>
@@ -67,7 +67,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
@@ -101,19 +101,19 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('activity.groupon.type.all'),
       value: 'all',
     },
     {
-      name: '进行中',
+      name: $t('activity.groupon.type.progress'),
       value: 'ing',
     },
     {
-      name: '拼团成功',
+      name: $t('activity.groupon.type.success'),
       value: 'finish',
     },
     {
-      name: '拼团失败',
+      name: $t('activity.groupon.type.failed'),
       value: 'invalid',
     },
   ];

+ 1 - 1
pages/activity/index.vue

@@ -50,7 +50,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 4 - 4
pages/activity/seckill/list.vue

@@ -12,7 +12,7 @@
         </view>
         <view class="content-header-box ss-flex ss-row-center">
           <view class="countdown-box ss-flex" v-if="endTime?.ms > 0 && state.activityInfo">
-            <view class="countdown-title ss-m-r-12">距结束</view>
+            <view class="countdown-title ss-m-r-12">{{$t('activity.seckill.list.toend')}}</view>
             <view class="ss-flex countdown-time">
               <view class="ss-flex countdown-h">{{ endTime.h }}</view>
               <view class="ss-m-x-4">:</view>
@@ -21,7 +21,7 @@
               <view class="countdown-num ss-flex ss-row-center">{{ endTime.s }}</view>
             </view>
           </view>
-          <view class="" v-if="endTime?.ms < 0 && state.activityInfo"> 活动已结束 </view>
+          <view class="" v-if="endTime?.ms < 0 && state.activityInfo"> {{$t('activity.seckill.list.ended')}} </view>
         </view>
       </view>
       <scroll-view
@@ -45,7 +45,7 @@
             "
           >
             <template v-slot:cart>
-              <button class="ss-reset-button cart-btn">去抢购</button>
+              <button class="ss-reset-button cart-btn">{{$t('activity.seckill.list.gobuy')}}</button>
             </template>
           </s-goods-column>
         </view>
@@ -53,7 +53,7 @@
           v-if="state.pagination.total > 0"
           :status="state.loadStatus"
           :content-text="{
-            contentdown: '上拉加载更多',
+            contentdown: $t('activity.index.uploadMore'),
           }"
           @tap="loadmore"
         />

+ 3 - 3
pages/app/score-shop.vue

@@ -1,6 +1,6 @@
 <!-- 页面  -->
 <template>
-  <s-layout title="积分商城">
+  <s-layout :title="$t('app.scoreshop.title')">
     <view class="ss-p-20">
       <view v-for="item in state.pagination.data" :key="item.id" class="ss-m-b-20">
         <s-score-card
@@ -14,13 +14,13 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/goods-empty.png"
-      text="暂无积分商品"
+      :text="$t('app.scoreshop.nogoods')"
     ></s-empty>
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 26 - 26
pages/app/sign.vue

@@ -1,23 +1,23 @@
 <!-- 页面  -->
 <template>
-  <s-layout title="签到有礼">
+  <s-layout :title="$t('app.sign.title')">
     <view v-if="state.loading"></view>
     <view class="sign-wrap" v-else-if="state.data && !state.loading">
       <!-- 签到日历 -->
       <view class="content-box calendar">
         <view class="sign-everyday ss-flex ss-col-center ss-row-between ss-p-x-30">
-          <text class="sign-everyday-title">签到日历</text>
+          <text class="sign-everyday-title">{{$t('app.sign.calendar')}}</text>
           <view class="sign-num-box">
-            已连续签到
+            {{$t('app.sign.msg1')}}
             <text class="sign-num">{{ state.continue_days }}</text>
-            
+            {{$t('app.sign.day')}}
           </view>
         </view>
 
         <!-- 切换年月 -->
         <view class="bar ss-flex ss-col-center ss-row-center">
           <view class="previous" @tap="handleCalendar(0)"><text class="cicon-back"></text></view>
-          <view class="date ss-m-x-20">{{ state.cur_year || '--' }} 年 {{ state.cur_month || '--' }} 月</view>
+          <view class="date ss-m-x-20">{{ state.cur_year || '--' }} {{$t('app.sign.year')}} {{ state.cur_month || '--' }} {{$t('app.sign.month')}}</view>
           <view class="next" @tap="handleCalendar(1)"><text class="cicon-forward"></text></view>
         </view>
 
@@ -56,29 +56,29 @@
 
                 <!-- 签到按钮 -->
                 <view class="ss-flex ss-col-center ss-row-center sign-box ss-m-y-40">
-                  <button class="ss-reset-button sign-btn" v-if="state.isSign === 0" @tap="onSign">签到</button>
-                  <button class="ss-reset-button already-btn" v-if="state.isSign === 1" disabled>已签到</button>
+                  <button class="ss-reset-button sign-btn" v-if="state.isSign === 0" @tap="onSign">{{$t('app.sign.sign')}}</button>
+                  <button class="ss-reset-button already-btn" v-if="state.isSign === 1" disabled>{{$t('app.sign.signed')}}</button>
                 </view>
               </view>
             </view>
             <view class="bg-white ss-m-t-16 ss-p-t-30 ss-p-b-60 ss-p-x-40">
-              <view class="activity-title ss-m-b-30">签到说明</view>
+              <view class="activity-title ss-m-b-30">{{$t('app.sign.intro')}}</view>
               <view class="activity-des">
-                1、每日签到固定 {{ state.data.rules.everyday }} 积分
+                {{$t('app.sign.msg2')}} {{ state.data.rules.everyday }} {{$t('app.sign.msg3')}}
                 <text v-if="state.data.rules.is_inc == '1'">
-                  ,次日递增奖励 {{ state.data.rules.inc_num }} 积分,直到
-                  {{ state.data.rules.until_day }} 天之后不再增加
+                  ,{{$t('app.sign.msg4')}} {{ state.data.rules.inc_num }} {{$t('app.sign.msg5')}}
+                  {{ state.data.rules.until_day }} {{$t('app.sign.msg6')}}
                 </text>
               </view>
               <view class="activity-des" v-if="state.data.rules.discounts?.length > 0">
-                2、<text class="" v-for="i in state.data.rules.discounts" :key="i">连续签到{{ i.full }} 天,奖励 {{ i.value }}
-                  积分;</text>
+                {{$t('app.sign.msg7')}}<text class="" v-for="i in state.data.rules.discounts" :key="i">{{$t('app.sign.msg8')}}{{ i.full }} {{$t('app.sign.msg9')}} {{ i.value }}
+                  {{$t('app.sign.msg10')}}</text>
               </view>
               <view class="activity-des" v-if="state.data.rules.is_replenish == '1'">
-                {{ state.data.rules.discounts?.length > 0 ? '3' : '2' }}、用户在
-                {{ state.data.rules.replenish_limit }} 天内,可补签
-                {{ state.data.rules.replenish_days }} 天,每次补签消耗
-                {{ state.data.rules.replenish_num }}积分
+                {{ state.data.rules.discounts?.length > 0 ? '3' : '2' }}{{$t('app.sign.msg11')}}
+                {{ state.data.rules.replenish_limit }} {{$t('app.sign.msg12')}}
+                {{ state.data.rules.replenish_days }} {{$t('app.sign.msg13')}}
+                {{ state.data.rules.replenish_num }}{{$t('app.sign.msg3')}}
               </view>
             </view>
           </view>
@@ -88,15 +88,15 @@
             <view class="model-box ss-flex-col">
               <view class="ss-m-t-56 ss-flex-col ss-col-center">
                 <text class="cicon-check-round"></text>
-                <view class="score-title">{{ state.signin.score }}积分</view>
+                <view class="score-title">{{ state.signin.score }}{{$t('app.sign.point')}}</view>
                 <view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30">
-                  已连续打卡{{ state.continue_days }}天
+                  {{$t('app.sign.msg14')}}{{ state.continue_days }}{{$t('app.sign.day')}}
                 </view>
               </view>
               <view class="model-bg ss-flex-col ss-col-center ss-row-right">
-                <view class="title ss-m-b-64">签到成功</view>
+                <view class="title ss-m-b-64">{{$t('app.sign.signSuccess')}}</view>
                 <view class="ss-m-b-40">
-                  <button class="ss-reset-button confirm-btn" @tap="onConfirm">确认</button>
+                  <button class="ss-reset-button confirm-btn" @tap="onConfirm">{{$t('app.sign.confirm')}}</button>
                 </view>
               </view>
             </view>
@@ -105,16 +105,16 @@
             <view class="model-box ss-flex-col">
               <view class="ss-m-t-56 ss-flex-col ss-col-center">
                 <text class="cicon-check-round"></text>
-                <view class="score-title">消耗{{ state.data?.rules.replenish_num }}积分</view>
+                <view class="score-title">{{$t('app.sign.msg15')}}{{ state.data?.rules.replenish_num }}{{$t('app.sign.point')}}</view>
                 <view class="model-title ss-flex ss-col-center ss-m-t-22 ss-m-b-30">
-                  已连续打卡{{ state.continue_days }}天
+                  {{$t('app.sign.msg14')}}{{ state.continue_days }}{{$t('app.sign.day')}}
                 </view>
               </view>
               <view class="model-bg ss-flex-col ss-col-center ss-row-right">
-                <view class="title ss-m-b-64">确认补签</view>
+                <view class="title ss-m-b-64">{{$t('app.sign.msg15')}}</view>
                 <view class="ss-m-b-40 ss-flex">
-                  <button class="ss-reset-button cancel-btn" @tap="state.showRetroactive = false">取消</button>
-                  <button class="ss-reset-button confirm-btn" @tap="onRetroactive">确认</button>
+                  <button class="ss-reset-button cancel-btn" @tap="state.showRetroactive = false">{{$t('app.sign.cancle')}}</button>
+                  <button class="ss-reset-button confirm-btn" @tap="onRetroactive">{{$t('app.sign.confirm')}}</button>
                 </view>
               </view>
             </view>

+ 3 - 3
pages/chat/components/order.vue

@@ -11,7 +11,7 @@
           <view class="title ss-line-2">
             {{ item.goods_title }}
           </view>
-          <view v-if="item.goods_num" class="num ss-m-b-10"> 数量:{{ item.goods_num }} </view>
+          <view v-if="item.goods_num" class="num ss-m-b-10"> {{$t('chat.order.amount')}}:{{ item.goods_num }} </view>
           <view class="ss-flex ss-row-between ss-m-t-8">
             <span class="price">¥{{ item.goods_price }}</span>
             <span class="status">{{ orderData.status_text }}</span>
@@ -27,8 +27,8 @@
             {{ item.goods_title }}
           </view>
           <view class="order-total ss-flex ss-row-between ss-m-t-8">
-            <span>共{{ orderData.items.length }}件商品</span>
-            <span>合计 ¥{{ orderData.pay_fee }}</span>
+            <span>{{$t('chat.order.total')}}{{ orderData.items.length }}{{$t('chat.order.msg1')}}</span>
+            <span>{{$t('chat.order.msg2')}} ¥{{ orderData.pay_fee }}</span>
           </view>
           <view class="ss-flex ss-row-right ss-m-t-8">
             <span class="status">{{ orderData.status_text }}</span>

+ 2 - 2
pages/chat/components/select-popup.vue

@@ -2,7 +2,7 @@
   <su-popup :show="show" showClose round="10" backgroundColor="#eee" @close="emits('close')">
     <view class="select-popup">
       <view class="title">
-        <span>{{ mode == 'goods' ? '我的浏览' : '我的订单' }}</span>
+        <span>{{ mode == 'goods' ? $t('chat.select.popup.myView') : $t('chat.select.popup.myOrder') }}</span>
       </view>
       <scroll-view
         class="scroll-box"
@@ -24,7 +24,7 @@
             <OrderItem :orderData="item" />
           </template>
         </view>
-        <uni-load-more :status="state.loadStatus" :content-text="{ contentdown: '上拉加载更多' }" />
+        <uni-load-more :status="state.loadStatus" :content-text="{ contentdown: $t('activity.index.uploadMore') }" />
       </scroll-view>
     </view>
   </su-popup>

+ 20 - 20
pages/chat/index.vue

@@ -1,7 +1,7 @@
 <template>
-  <s-layout class="chat-wrap" title="客服" navbar="inner">
+  <s-layout class="chat-wrap" :title="$t('chat.index.title')" navbar="inner">
     <div class="status">
-      {{ socketState.isConnect ? customerServiceInfo.title : '网络已断开,请检查网络后刷新重试' }}
+      {{ socketState.isConnect ? customerServiceInfo.title : $t('chat.index.networkLosed') }}
     </div>
     <div class="page-bg" :style="{ height: sys_navBar + 'px' }"></div>
     <view class="chat-box" :style="{ height: pageHeight + 'px' }">
@@ -40,7 +40,7 @@
           </view>
           <!-- 常见问题 -->
           <view v-if="item.mode === 'template' && item.content.list.length" class="template-wrap">
-            <view class="title">猜你想问</view>
+            <view class="title">{{$t('chat.index.msg1')}}</view>
             <view
               class="item"
               v-for="(item, index) in item.content.list"
@@ -166,7 +166,7 @@
             :inputBorder="false"
             :clearable="false"
             v-model="chat.msg"
-            placeholder="请输入你要咨询的问题"
+            :placeholder="$t('chat.index.msg2')"
           ></uni-easyinput>
         </view>
         <text class="sicon-basic bq" @tap.stop="onTools('emoji')"></text>
@@ -177,7 +177,7 @@
           @tap.stop="onTools('tools')"
         ></text>
         <button v-if="chat.msg" class="ss-reset-button send-btn" @tap="onSendMessage">
-          发送
+          {{$t('chat.index.send')}}
         </button>
       </view>
     </su-fixed>
@@ -196,7 +196,7 @@
               :inputBorder="false"
               :clearable="false"
               v-model="chat.msg"
-              placeholder="请输入你要咨询的问题"
+              :placeholder="$t('chat.index.msg2')"
             ></uni-easyinput>
           </view>
           <text class="sicon-basic bq" @tap.stop="onTools('emoji')"></text>
@@ -208,7 +208,7 @@
             @tap.stop="onTools('tools')"
           ></text>
           <button v-if="chat.msg" class="ss-reset-button send-btn" @tap="onSendMessage">
-            发送
+            {{$t('chat.index.send')}}
           </button>
         </view>
         <view class="content ss-flex ss-flex-1">
@@ -250,7 +250,7 @@
                   mode="aspectFill"
                 ></image>
               </s-uploader>
-              <view>图片</view>
+              <view>{{$t('chat.index.picture')}}</view>
             </view>
             <view class="goods" @tap="onShowSelect('goods')">
               <image
@@ -258,7 +258,7 @@
                 :src="sheep.$url.static('/assets/addons/shopro/uniapp/chat/goods.png')"
                 mode="aspectFill"
               ></image>
-              <view>商品</view>
+              <view>{{$t('chat.index.goods')}}</view>
             </view>
             <view class="order" @tap="onShowSelect('order')">
               <image
@@ -266,7 +266,7 @@
                 :src="sheep.$url.static('/assets/addons/shopro/uniapp/chat/order.png')"
                 mode="aspectFill"
               ></image>
-              <view>订单</view>
+              <view>{{$t('chat.index.order')}}</view>
             </view>
           </template>
         </view>
@@ -320,15 +320,15 @@
 
   const chatStatus = {
     online: {
-      text: '在线',
+      text: $t('chat.index.online'),
       colorVariate: '#46c55f',
     },
     offline: {
-      text: '离线',
+      text: $t('chat.index.offline'),
       colorVariate: '#b5b5b5',
     },
     busy: {
-      text: '忙碌',
+      text: $t('chat.index.busy'),
       colorVariate: '#ff0e1b',
     },
   };
@@ -336,15 +336,15 @@
   // 加载更多
   const loadingMap = {
     loadmore: {
-      title: '查看更多',
+      title: $t('chat.index.viewMore'),
       icon: 'el-icon-d-arrow-left',
     },
     nomore: {
-      title: '没有更多了',
+      title: $t('chat.index.noMore'),
       icon: '',
     },
     loading: {
-      title: '加载中... ',
+      title: $t('chat.index.loading'),
       icon: 'el-icon-loading',
     },
   };
@@ -374,7 +374,7 @@
   // 点击工具栏开关
   function onTools(mode) {
     if (!socketState.value.isConnect) {
-      sheep.$helper.toast(socketState.value.tip || '您已掉线!请返回重试');
+      sheep.$helper.toast(socketState.value.tip || $t('chat.index.dropped'));
       return;
     }
 
@@ -461,7 +461,7 @@
 
   function onAgainSendMessage(item) {
     if (!socketState.value.isConnect) {
-      sheep.$helper.toast(socketState.value.tip || '您已掉线!请返回重试');
+      sheep.$helper.toast(socketState.value.tip || $t('chat.index.dropped'));
       return;
     }
     if (!item) return;
@@ -478,7 +478,7 @@
 
   function onSendMessage() {
     if (!socketState.value.isConnect) {
-      sheep.$helper.toast(socketState.value.tip || '您已掉线!请返回重试');
+      sheep.$helper.toast(socketState.value.tip || $t('chat.index.dropped'));
       return;
     }
     if (!chat.msg) return;
@@ -503,7 +503,7 @@
   // 点击猜你想问
   function onTemplateList(e) {
     if (!socketState.value.isConnect) {
-      sheep.$helper.toast(socketState.value.tip || '您已掉线!请返回重试');
+      sheep.$helper.toast(socketState.value.tip || $t('chat.index.dropped'));
       return;
     }
     const data = {

+ 11 - 11
pages/commission/apply.vue

@@ -1,11 +1,11 @@
 <!-- 申请分销商  -->
 <template>
-  <s-layout title="申请分销商" class="apply-wrap" navbar="inner">
+  <s-layout :title="$t('commission.apply.title')" class="apply-wrap" navbar="inner">
     <s-empty
       v-if="state.code === 0"
       paddingTop="0"
       icon="/static/comment-empty.png"
-      text="未开启分销商申请"
+      :text="$t('commission.apply.noOpenApply')"
     ></s-empty>
 
     <view v-if="state.code === 1" class="distribution-apply-wrap">
@@ -17,7 +17,7 @@
             mode="widthFix"
             @load="onImgLoad"
           ></image>
-          <view class="heaer-title">申请分销商</view>
+          <view class="heaer-title">{{$t('commission.apply.title')}}</view>
         </view>
       </view>
       <view class="apply-box bg-white" :style="{ marginTop: state.imgHeight + 'rpx' }">
@@ -43,7 +43,7 @@
                 :styles="{ disableColor: '#fff' }"
                 placeholderStyle="color:#BBBBBB;font-size:28rpx;line-height:normal"
                 v-model="item.value"
-                :placeholder="`请填写${item.name}`"
+                :placeholder="`${item.name}`"
               />
               <s-uploader
                 v-if="item.type === 'image'"
@@ -66,7 +66,7 @@
               @tap.stop="onChange"
             />
             <view class="agreement-text ss-flex">
-              <view class="ss-m-r-4">勾选代表同意</view>
+              <view class="ss-m-r-4">{{$t('commission.apply.agree')}}</view>
               <view
                 class="tcp-text"
                 @tap.stop="
@@ -116,9 +116,9 @@
   }
 
   const submitText = computed(() => {
-    if (state.status === 'normal') return '修改信息';
-    if (state.status === 'needinfo') return '提交审核';
-    if (state.status === 'reject') return '重新提交';
+    if (state.status === 'normal') return $t('commission.apply.modify');
+    if (state.status === 'needinfo') return $t('commission.apply.submit');
+    if (state.status === 'reject') return $t('commission.apply.resubmit');
     return '';
   });
 
@@ -144,16 +144,16 @@
 
   async function submit() {
     if (!state.isAgree) {
-      sheep.$helper.toast('请同意申请协议');
+      sheep.$helper.toast($t('commission.apply.msg1'));
       return;
     }
 
     const validate = state.formList.every((item) => {
       if (isEmpty(item.value)) {
         if (item.type !== 'image') {
-          sheep.$helper.toast(`请填写${item.name}`);
+          sheep.$helper.toast($t('commission.apply.msg2')+item.name);
         } else {
-          sheep.$helper.toast(`请上传${item.name}`);
+          sheep.$helper.toast($t('commission.apply.msg3')+item.name);
         }
         return false;
       }

+ 5 - 5
pages/commission/components/account-info.vue

@@ -4,7 +4,7 @@
     <view class="account-card-box">
       <view class="ss-flex ss-row-between card-box-header">
         <view class="ss-flex">
-          <view class="header-title ss-m-r-16">账户信息</view>
+          <view class="header-title ss-m-r-16">{{$t('commission.account.info')}}</view>
           <button
             class="ss-reset-button look-btn ss-flex"
             @tap="state.showMoney = !state.showMoney"
@@ -17,26 +17,26 @@
           </button>
         </view>
         <view class="ss-flex" @tap="sheep.$router.go('/pages/user/wallet/commission')">
-          <view class="header-title ss-m-r-4">查看明细</view>
+          <view class="header-title ss-m-r-4">{{$t('commission.account.viewDetail')}}</view>
           <text class="cicon-play-arrow"></text>
         </view>
       </view>
       <!-- 收益 -->
       <view class="card-content ss-flex">
         <view class="ss-flex-1 ss-flex-col ss-col-center">
-          <view class="item-title">总收益(元)</view>
+          <view class="item-title">{{$t('commission.account.totalProfit')}}</view>
           <view class="item-detail">
             {{ state.showMoney ? agentInfo.total_income || '0.00' : '***' }}
           </view>
         </view>
         <view class="ss-flex-1 ss-flex-col ss-col-center">
-          <view class="item-title">我的佣金(元)</view>
+          <view class="item-title">{{$t('commission.account.myCommission')}}</view>
           <view class="item-detail">
             {{ state.showMoney ? userInfo.commission || '0.00' : '***' }}
           </view>
         </view>
         <view class="ss-flex-1 ss-flex-col ss-col-center">
-          <view class="item-title">我的消费(元)</view>
+          <view class="item-title">{{$t('commission.account.myConsume')}}</view>
           <view class="item-detail">
             {{ state.showMoney ? userInfo.total_consume || '0.00' : '***' }}
           </view>

+ 22 - 22
pages/commission/components/commission-auth.vue

@@ -24,7 +24,7 @@
       >
         {{ state.event.button }}
       </button>
-      <button class="ss-reset-button back-btn" @tap="sheep.$router.back()"> 返回 </button>
+      <button class="ss-reset-button back-btn" @tap="sheep.$router.back()"> {{$t('common.back')}}</button>
     </view>
   </su-popup>
 </template>
@@ -75,57 +75,57 @@
     // 关闭
     101: {
       image: '/assets/addons/shopro/uniapp/commission/close.png',
-      title: '分销中心已关闭',
-      subtitle: '该功能暂不可用',
-      button: '知道了',
+      title: $t('commission.auth.closed'),
+      subtitle: $t('commission.auth.functionDisabled'),
+      button: $t('commission.auth.ok'),
       action: 'back',
     },
     // 禁用
     102: {
       image: '/assets/addons/shopro/uniapp/commission/forbidden.png',
-      title: '账户已被禁用',
-      subtitle: '该功能暂不可用',
-      button: '知道了',
+      title: $t('commission.auth.accountDisabled'),
+      subtitle: $t('commission.auth.functionDisabled'),
+      button: $t('commission.auth.ok'),
       action: 'back',
     },
     // 补充信息
     103: {
       image: '/assets/addons/shopro/uniapp/commission/apply.png',
-      title: '待完善信息',
-      subtitle: '请补充您的信息后提交审核',
-      button: '完善信息',
+      title: $t('commission.auth.perfectInfo'),
+      subtitle: $t('commission.auth.perfectTips'),
+      button: $t('commission.auth.perfect'),
       action: 'apply',
     },
     // 审核中
     104: {
       image: '/assets/addons/shopro/uniapp/commission/pending.png',
-      title: '正在审核中',
-      subtitle: '请耐心等候结果',
-      button: '知道了',
+      title: $t('commission.auth.underReview'),
+      subtitle: $t('commission.auth.waitResult'),
+      button: $t('commission.auth.ok'),
       action: 'back',
     },
     // 重新提交
     105: {
       image: '/assets/addons/shopro/uniapp/commission/reject.png',
-      title: '抱歉!您的申请信息未通过',
-      subtitle: '请尝试修改后重新提交',
-      button: '重新申请',
+      title: $t('commission.auth.notPass'),
+      subtitle: $t('commission.auth.resubmitTips'),
+      button: $t('commission.auth.resubmit'),
       action: 'apply',
     },
     // 直接重新申请
     106: {
       image: '/assets/addons/shopro/uniapp/commission/reject.png',
-      title: '抱歉!您的申请未通过',
-      subtitle: '请尝试重新申请',
-      button: '重新申请',
+      title: $t('commission.auth.notPass'),
+      subtitle: $t('commission.auth.resubmitTry'),
+      button: $t('commission.auth.resubmit'),
       action: 'reApply',
     },
     // 冻结
     107: {
       image: '/assets/addons/shopro/uniapp/commission/freeze.png',
-      title: '抱歉!您的账户已被冻结',
-      subtitle: '如有疑问请联系客服',
-      button: '联系客服',
+      title: $t('commission.auth.accountFrozen'),
+      subtitle: $t('commission.auth.serviceTips'),
+      button: $t('commission.auth.contact'),
       action: 'chat',
     },
   };

+ 4 - 4
pages/commission/components/commission-condition.vue

@@ -27,7 +27,7 @@
           </view>
 
           <s-goods-item
-            title="累计消费满"
+            :title="$t('commission.condition.msg1')"
             price=""
             :img="sheep.$url.static('/assets/addons/shopro/uniapp/commission/consume.png')"
             v-else-if="errorData.type === 'consume'"
@@ -49,14 +49,14 @@
           </s-goods-item>
         </scroll-view>
         <view class="content-des" v-if="errorData.type === 'goods'"
-          >* 购买指定商品即可成为分销商</view
+          >* {{$t('commission.condition.msg2')}}</view
         >
         <view class="content-des" v-else-if="errorData.type === 'consume'"
-          >* 满足累计消费即可成为分销商</view
+          >* {{$t('commission.condition.msg3')}}</view
         >
       </view>
       <button class="ss-reset-button go-btn ui-BG-Main-Gradient" @tap="sheep.$router.back()">
-        返回
+        {{$t('common.back')}}
       </button>
     </view>
   </su-popup>

+ 1 - 1
pages/commission/components/commission-log.vue

@@ -7,7 +7,7 @@
         :src="sheep.$url.static('/assets/addons/shopro/uniapp/commission/title2.png')"
       />
       <view class="ss-flex header-title">
-        <view class="title">实时动态</view>
+        <view class="title">{{$t('commission.log.news')}}</view>
         <text class="cicon-forward"></text>
       </view>
     </view>

+ 8 - 8
pages/commission/components/commission-menu.vue

@@ -4,7 +4,7 @@
     <view class="header-box">
       <image class="header-bg" :src="sheep.$url.static('/assets/addons/shopro/uniapp/commission/title1.png')" />
       <view class="ss-flex header-title">
-        <view class="title">功能专区</view>
+        <view class="title">{{$t('commission.menu.prefecture')}}</view>
         <text class="cicon-forward"></text>
       </view>
     </view>
@@ -53,38 +53,38 @@
     menuList: [
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon1.png',
-        title: '我的团队',
+        title: $t('commission.menu.myTeam'),
         path: '/pages/commission/team',
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon2.png',
-        title: '佣金明细',
+        title: $t('commission.menu.commissionDetail'),
         path: '/pages/user/wallet/commission',
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon3.png',
-        title: '分销订单',
+        title: $t('commission.menu.orders'),
         path: '/pages/commission/order',
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon4.png',
-        title: '推广商品',
+        title: $t('commission.menu.goods'),
         path: '/pages/commission/goods',
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon5.png',
-        title: '我的资料',
+        title: $t('commission.menu.accountInfo'),
         path: '/pages/commission/apply',
         isAgentFrom: true,
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon7.png',
-        title: '邀请海报',
+        title: $t('commission.menu.invite'),
         path: 'action:showShareModal',
       },
       {
         img: '/assets/addons/shopro/uniapp/commission/commission_icon8.png',
-        title: '分享记录',
+        title: $t('commission.menu.shareLog'),
         path: '/pages/commission/share-log',
       },
     ],

+ 5 - 5
pages/commission/goods.vue

@@ -1,6 +1,6 @@
 <!-- 页面  -->
 <template>
-  <s-layout title="推广商品" :onShareAppMessage="state.shareInfo">
+  <s-layout :title="$t('commission.goods.title')" :onShareAppMessage="state.shareInfo">
     <view class="goods-item ss-m-20" v-for="item in state.pagination.data" :key="item.id">
       <s-goods-item
         size="lg"
@@ -14,12 +14,12 @@
       >
         <template #rightBottom>
           <view class="ss-flex ss-row-between">
-            <view class="commission-num">预计佣金:¥{{ item.commission }}</view>
+            <view class="commission-num">{{$t('commission.goods.msg1')}}:¥{{ item.commission }}</view>
             <button
               class="ss-reset-button share-btn ui-BG-Main-Gradient"
               @tap.stop="onShareGoods(item)"
             >
-              分享赚
+              {{$t('commission.goods.msg2')}}
             </button>
           </view>
         </template>
@@ -28,14 +28,14 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/goods-empty.png"
-      text="暂无推广商品"
+      :text="$t('commission.goods.noGoods')"
     ></s-empty>
     <!-- 加载更多 -->
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 1 - 1
pages/commission/index.vue

@@ -1,6 +1,6 @@
 <!-- 分销中心  -->
 <template>
-  <s-layout navbar="inner" class="index-wrap" title="分销中心" :bgStyle="bgStyle">
+  <s-layout navbar="inner" class="index-wrap" :title="$t('commission.index.title')" :bgStyle="bgStyle">
     <!-- 分销商信息 -->
     <commission-info />
     <!-- 账户信息 -->

+ 18 - 18
pages/commission/order.vue

@@ -1,6 +1,6 @@
 <!-- 分销订单  -->
 <template>
-  <s-layout title="分销订单" :class="state.scrollTop ? 'order-warp' : ''" navbar="inner">
+  <s-layout :title="$t('commission.order.title')" :class="state.scrollTop ? 'order-warp' : ''" navbar="inner">
     <view
       class="header-box"
       :style="[
@@ -14,20 +14,20 @@
       <view class="team-data-box ss-flex ss-col-center ss-row-between">
         <view class="data-card">
           <view class="total-item">
-            <view class="item-title">团队订单数量(单)</view>
+            <view class="item-title">{{$t('commission.order.msg1')}}</view>
             <view class="total-num">
               {{ state.agentInfo.child_order_count_all || 0 }}
             </view>
           </view>
           <view class="category-item ss-flex">
             <view class="ss-flex-1">
-              <view class="item-title">一级订单</view>
+              <view class="item-title">{{$t('commission.order.msg2')}}</view>
               <view class="category-num">
                 {{ state.agentInfo.child_order_count_1 || 0 }}
               </view>
             </view>
             <view class="ss-flex-1">
-              <view class="item-title">二级订单</view>
+              <view class="item-title">{{$t('commission.order.msg3')}}</view>
               <view class="category-num">
                 {{ state.agentInfo.child_order_count_2 || 0 }}
               </view>
@@ -36,20 +36,20 @@
         </view>
         <view class="data-card">
           <view class="total-item">
-            <view class="item-title">团队订单金额(元)</view>
+            <view class="item-title">{{$t('commission.order.msg4')}}</view>
             <view class="total-num">
               {{ state.agentInfo.child_order_money_all || '0.00' }}
             </view>
           </view>
           <view class="category-item ss-flex">
             <view class="ss-flex-1">
-              <view class="item-title">一级订单</view>
+              <view class="item-title">{{$t('commission.order.msg2')}}</view>
               <view class="category-num">
                 {{ state.agentInfo.child_order_money_1 || '0.00' }}
               </view>
             </view>
             <view class="ss-flex-1">
-              <view class="item-title">二级订单</view>
+              <view class="item-title">{{$t('commission.order.msg3')}}</view>
               <view class="category-num">
                 {{ state.agentInfo.child_order_money_2 || '0.00' }}
               </view>
@@ -60,13 +60,13 @@
       <!-- 自购 -->
       <view class="direct-box ss-flex ss-row-between">
         <view class="direct-item">
-          <view class="item-title">自购分销订单数量(单)</view>
+          <view class="item-title">{{$t('commission.order.msg5')}}</view>
           <view class="item-value">
             {{ state.agentInfo.child_order_count_0 || 0 }}
           </view>
         </view>
         <view class="direct-item">
-          <view class="item-title">自购分销订单金额(元)</view>
+          <view class="item-title">{{$t('commission.order.msg6')}}</view>
           <view class="item-value">
             {{ state.agentInfo.child_order_money_0 || '0.00' }}
           </view>
@@ -90,7 +90,7 @@
       <view class="order-item" v-for="item in state.pagination.data" :key="item">
         <view class="order-header">
           <view class="no-box ss-flex ss-col-center ss-row-between">
-            <text class="order-code">订单编号:{{ item.order.order_sn }}</text>
+            <text class="order-code">{{$t('commission.order.order_no')}}:{{ item.order.order_sn }}</text>
             <text class="order-state">{{ item.order_item.status_text }}</text>
           </view>
           <view class="order-from ss-flex ss-col-center ss-row-between">
@@ -114,7 +114,7 @@
           <template #rightBottom>
             <view class="ss-flex commission-box ss-row-between ss-m-t-10">
               <view class="ss-flex">
-                <text class="name">佣金:</text>
+                <text class="name">{{$t('commission.order.commission')}}:</text>
                 <text class="commission-num">{{ item.rewards[0]?.commission }}</text>
               </view>
               <view class="order-status">
@@ -125,14 +125,14 @@
         </s-goods-item>
       </view>
       <!-- 数据为空 -->
-      <s-empty v-if="state.pagination.total === 0" icon="/static/order-empty.png" text="暂无订单">
+      <s-empty v-if="state.pagination.total === 0" icon="/static/order-empty.png" :text="$t('commission.order.noOrder')">
       </s-empty>
       <!-- 加载更多 -->
       <uni-load-more
         v-if="state.pagination.total > 0"
         :status="state.loadStatus"
         :content-text="{
-          contentdown: '上拉加载更多',
+          contentdown: $t('activity.index.uploadMore'),
         }"
         @tap="loadmore"
       />
@@ -174,23 +174,23 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('commission.order.all'),
       value: 'all',
     },
     // {
-    // 	name: '不计入',
+    // 	name: $t('commission.order.noCounted'),
     // 	value: 'no'
     // },
     {
-      name: '已计入',
+      name: $t('commission.order.counted'),
       value: 'yes',
     },
     {
-      name: '已扣除',
+      name: $t('commission.order.deducted'),
       value: 'back',
     },
     {
-      name: '已取消',
+      name: $t('commission.order.cancled'),
       value: 'cancel',
     },
   ];

+ 3 - 3
pages/commission/share-log.vue

@@ -1,6 +1,6 @@
 <!-- 分销记录  -->
 <template>
-  <s-layout title="分享记录">
+  <s-layout :title="$t('commission.sharelog.title')">
     <view class="distraction-share-wrap">
       <view class="share-log-box">
         <!-- 分享记录列表 -->
@@ -34,7 +34,7 @@
         <s-empty
           v-if="state.pagination.total === 0"
           icon="/static/data-empty.png"
-          text="暂无分享记录"
+          :text="$t('commission.sharelog.noLog')"
         >
         </s-empty>
         <!-- 加载更多 -->
@@ -42,7 +42,7 @@
           v-if="state.pagination.total > 0"
           :status="state.loadStatus"
           :content-text="{
-            contentdown: '上拉加载更多',
+            contentdown: $t('activity.index.uploadMore'),
           }"
           @tap="loadmore"
         />

+ 10 - 10
pages/commission/team.vue

@@ -1,6 +1,6 @@
 <!-- 页面  -->
 <template>
-  <s-layout title="我的团队" :class="state.scrollTop ? 'team-wrap' : ''" navbar="inner">
+  <s-layout :title="$t('commission.team.my')" :class="state.scrollTop ? 'team-wrap' : ''" navbar="inner">
     <view
       class="header-box"
       :style="[
@@ -12,7 +12,7 @@
     >
       <!-- 推荐人 -->
       <view v-if="userInfo.parent_user" class="referrer-box ss-flex ss-col-center">
-        推荐人
+        {{$t('commission.team.recommender')}}
         <image
           class="referrer-avatar ss-m-r-10"
           :src="sheep.$url.cdn(userInfo.parent_user.avatar)"
@@ -25,32 +25,32 @@
       <view class="team-data-box ss-flex ss-col-center ss-row-between">
         <view class="data-card">
           <view class="total-item">
-            <view class="item-title">团队总人数(人)</view>
+            <view class="item-title">{{$t('commission.team.teamAll')}}:</view>
             <view class="total-num">{{ agentInfo.child_user_count_all || 0 }}</view>
           </view>
           <view class="category-item ss-flex">
             <view class="ss-flex-1">
-              <view class="item-title">一级成员</view>
+              <view class="item-title">{{$t('commission.team.firstLevelMember')}}:</view>
               <view class="category-num">{{ agentInfo.child_user_count_1 || 0 }}</view>
             </view>
             <view class="ss-flex-1">
-              <view class="item-title">二级成员</view>
+              <view class="item-title">{{$t('commission.team.secondLevelMember')}}:</view>
               <view class="category-num">{{ agentInfo.child_user_count_2 || 0 }}</view>
             </view>
           </view>
         </view>
         <view class="data-card">
           <view class="total-item">
-            <view class="item-title">团队分销商人数(人)</view>
+            <view class="item-title">{{$t('commission.team.teamDealer')}}:</view>
             <view class="total-num">{{ agentInfo.child_agent_count_all || 0 }}</view>
           </view>
           <view class="category-item ss-flex">
             <view class="ss-flex-1">
-              <view class="item-title">一级分销商</view>
+              <view class="item-title">{{$t('commission.team.firstLevelDealer')}}:</view>
               <view class="category-num">{{ agentInfo.child_agent_count_1 || 0 }}</view>
             </view>
             <view class="ss-flex-1">
-              <view class="item-title">二级分销商</view>
+              <view class="item-title">{{$t('commission.team.secondLevelDealer')}}:</view>
               <view class="category-num">{{ agentInfo.child_agent_count_2 || 0 }}</view>
             </view>
           </view>
@@ -83,7 +83,7 @@
         </uni-list-chat>
       </uni-list>
     </view>
-    <s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" text="暂无团队信息">
+    <s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" :text="$t('commission.team.noMember')">
     </s-empty>
   </s-layout>
 </template>
@@ -121,7 +121,7 @@
     if (_.isNil(num)) {
       return '';
     }
-    return `下级团队${num}人`;
+    return $t('commission.team.childTeam')+num+$t('commission.team.people');
   }
 
   async function getTeamList(page = 1, list_rows = 8) {

+ 7 - 7
pages/coupon/detail.vue

@@ -1,6 +1,6 @@
 <!-- 优惠券详情  -->
 <template>
-  <s-layout title="优惠券详情">
+  <s-layout :title="$t('commission.detail.title')">
     <view class="bg-white">
       <!-- 详情卡片 -->
       <view class="detail-wrap ss-p-20">
@@ -38,20 +38,20 @@
                 state.list.get_status == 'get_over'
               "
             >
-              领取时间:{{ state.list.get_start_time }}至{{ state.list.get_end_time }}
+              {{$t('commission.detail.getTime')}}:{{ state.list.get_start_time }}{{$t('commission.detail.to')}}{{ state.list.get_end_time }}
             </view>
             <view class="time ss-m-y-30" v-else>
-              有效期:{{ state.list.use_start_time }}至{{ state.list.use_end_time }}
+              {{$t('commission.detail.expired')}}:{{ state.list.use_start_time }}{{$t('commission.detail.to')}}{{ state.list.use_end_time }}
             </view>
             <view class="coupon-line ss-m-t-14"></view>
           </view>
           <view class="bottom">
             <view class="type ss-flex ss-col-center ss-row-between ss-p-x-30">
-              <view>优惠券类型</view>
+              <view>{{$t('commission.detail.couponType')}}</view>
               <view>{{ state.list.type_text }}</view>
             </view>
             <uni-collapse>
-              <uni-collapse-item title="优惠券说明" v-if="state.list.description">
+              <uni-collapse-item :title="$t('commission.detail.intro')" v-if="state.list.description">
                 <view class="content ss-p-b-20">
                   <text class="des ss-p-l-30">{{ state.list.description }}</text>
                 </view>
@@ -124,7 +124,7 @@
         v-if="state.pagination.total > 0 && state.list.use_scope == 'category'"
         :status="state.loadStatus"
         :content-text="{
-          contentdown: '上拉加载更多',
+          contentdown: $t('activity.index.uploadMore'),
         }"
         @tap="loadmore"
       />
@@ -132,7 +132,7 @@
         v-if="state.list.use_scope == 'category' && state.pagination.total === 0"
         paddingTop="0"
         icon="/static/soldout-empty.png"
-        text="暂无商品"
+        :text="$t('commission.detail.noGoods')"
       >
       </s-empty>
     </view>

+ 7 - 7
pages/coupon/list.vue

@@ -1,6 +1,6 @@
 <!-- 优惠券中心  -->
 <template>
-  <s-layout title="优惠券" :bgStyle="{ color: '#f2f2f2' }">
+  <s-layout :title="$t('commission.coupon.title')" :bgStyle="{ color: '#f2f2f2' }">
     <su-sticky bgColor="#fff">
       <su-tabs
         :list="tabMaps"
@@ -12,7 +12,7 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/coupon-empty.png"
-      text="暂无优惠券"
+      :text="$t('commission.coupon.noCoupon')"
     ></s-empty>
     <template v-if="state.currentTab == '0'">
       <view v-for="item in state.pagination.data" :key="item.id">
@@ -78,7 +78,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
@@ -113,19 +113,19 @@
 
   const tabMaps = [
     {
-      name: '领券中心',
+      name: $t('coupon.list.all'),
       value: 'all',
     },
     {
-      name: '已领取',
+      name: $t('coupon.list.geted'),
       value: 'geted',
     },
     {
-      name: '已使用',
+      name: $t('coupon.list.used'),
       value: 'used',
     },
     {
-      name: '已失效',
+      name: $t('coupon.list.expired'),
       value: 'expired',
     },
   ];

+ 9 - 9
pages/goods/comment/add.vue

@@ -1,6 +1,6 @@
 <!-- 评价  -->
 <template>
-  <s-layout title="评价">
+  <s-layout :title="$t('goods.comment.add')">
     <view>
       <view v-for="(item, index) in state.orderInfo.items" :key="item.id">
         <view v-if="item.btns.includes('comment')">
@@ -31,7 +31,7 @@
                 maxlength="120"
                 autoHeight
                 v-model="state.commentList[index].content"
-                placeholder="宝贝满足你的期待吗?说说你的使用心得,分享给想买的他们吧~"
+                :placeholder="$t('goods.comment.tips')"
               ></uni-easyinput>
 
               <view class="img-box">
@@ -52,7 +52,7 @@
     <su-fixed bottom placeholder>
       <view class="foot_box ss-flex ss-row-center ss-col-center">
         <button class="ss-reset-button post-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onSubmit">
-          发布
+          {{$t('goods.comment.publish')}}
         </button>
       </view>
     </su-fixed>
@@ -70,11 +70,11 @@
   });
 
   const rateMap = {
-    1: '糟糕',
-    2: '差评',
-    3: '一般',
-    4: '良好',
-    5: '好评',
+    1: $t('goods.comment.terrible'),
+    2: $t('goods.comment.bad'),
+    3: $t('goods.comment.general'),
+    4: $t('goods.comment.nice'),
+    5: $t('goods.comment.goods'),
   };
 
   async function onSubmit() {
@@ -112,7 +112,7 @@
         return;
       }
     }
-    sheep.$helper.toast('无待评价订单');
+    sheep.$helper.toast($t('goods.comment.noOrder'));
   });
 </script>
 

+ 3 - 3
pages/goods/comment/list.vue

@@ -1,6 +1,6 @@
 <!-- 页面  -->
 <template>
-  <s-layout title="全部评价">
+  <s-layout :title="$t('goods.comment.title')">
     <su-tabs
       :list="state.type"
       :scrollable="false"
@@ -12,12 +12,12 @@
         <comment-item :item="item"></comment-item>
       </view>
     </view>
-    <s-empty v-if="state.pagination.total === 0" text="暂无数据" icon="/static/data-empty.png" />
+    <s-empty v-if="state.pagination.total === 0" :text="$t('goods.comment.noData')" icon="/static/data-empty.png" />
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 8 - 8
pages/goods/groupon.vue

@@ -10,10 +10,10 @@
         state.goodsInfo === null ||
         !['groupon', 'groupon_ladder'].includes(state.goodsInfo.activity_type)
       "
-      text="活动不存在或已结束"
+      :text="$t('goods.groupon.ended')"
       icon="/static/soldout-empty.png"
       showAction
-      actionText="返回上一页"
+      :actionText="$t('goods.groupon.backLastPage')"
       @clickAction="sheep.$router.back()"
     />
     <block v-else>
@@ -49,7 +49,7 @@
                       ></image>
                     </view>
                   </view>
-                  <view class="tig-title">拼团价</view>
+                  <view class="tig-title">{{$t('goods.groupon.groupPrice')}}</view>
                 </view>
               </view>
               <view class="ss-flex ss-row-between">
@@ -66,7 +66,7 @@
             </view>
 
             <view class="countdown-box" v-if="endTime.ms > 0">
-              <view class="countdown-title ss-m-b-20">距结束仅剩</view>
+              <view class="countdown-title ss-m-b-20">{{$t('goods.groupon.toEndTime')}}</view>
               <view class="ss-flex countdown-time">
                 <view class="ss-flex countdown-h">{{ endTime.h }}</view>
                 <view class="ss-m-x-4">:</view>
@@ -75,7 +75,7 @@
                 <view class="countdown-num ss-flex ss-row-center">{{ endTime.s }}</view>
               </view>
             </view>
-            <view class="countdown-title" v-else> 活动已结束 </view>
+            <view class="countdown-title" v-else> {{$t('goods.groupon.endedMsg')}} </view>
           </view>
 
           <view class="title-text ss-line-2 ss-m-b-6">{{ state.goodsInfo.title }}</view>
@@ -145,7 +145,7 @@
             <view class="btn-price">{{
               state.goodsInfo.original_goods_price[0] || state.goodsInfo.original_price
             }}</view>
-            <view>原价购买</view>
+            <view>{{$t('goods.groupon.buyOriginPrice')}}</view>
           </button>
           <button v-else class="ss-reset-button origin-price-btn ss-flex-col">
             <view class="btn-title">{{
@@ -164,8 +164,8 @@
           >
             <view class="btn-price">{{ goodsPrice }}</view>
             <view v-if="state.goodsInfo.activity.status === 'ing'">
-              <view v-if="state.goodsInfo.stock === 0">已售罄</view>
-              <view v-else>立即开团</view>
+              <view v-if="state.goodsInfo.stock === 0">{{$t('goods.groupon.sellout')}}</view>
+              <view v-else>{{$t('goods.groupon.startGroupNow')}}</view>
             </view>
             <view v-else>{{ state.goodsInfo.activity.status_text }}</view>
           </button>

+ 5 - 5
pages/goods/index.vue

@@ -9,10 +9,10 @@
       <!-- 下架/售罄提醒 -->
       <s-empty
         v-else-if="state.goodsInfo === null"
-        text="商品不存在或已下架"
+        :text="$t('goods.index.sellout')"
         icon="/static/soldout-empty.png"
         showAction
-        actionText="再逛逛"
+        :actionText="$t('goods.groupon.other')"
         actionUrl="/pages/goods/list"
       />
       <block v-else>
@@ -111,17 +111,17 @@
               class="ss-reset-button add-btn ui-Shadow-Main"
               @tap="state.showSelectSku = true"
             >
-              加入购物车
+              {{$t('goods.index.addToCart')}}
             </button>
             <button
               class="ss-reset-button buy-btn ui-Shadow-Main"
               @tap="state.showSelectSku = true"
             >
-              立即购买
+              {{$t('goods.index.buyNow')}}
             </button>
           </view>
           <view class="buy-box ss-flex ss-col-center ss-p-r-20" v-else>
-            <button class="ss-reset-button disabled-btn" disabled> 已售罄 </button>
+            <button class="ss-reset-button disabled-btn" disabled> {{$t('goods.groupon.sellout')}} </button>
           </view>
         </detail-tabbar>
         <s-coupon-get

+ 7 - 7
pages/goods/list.vue

@@ -106,7 +106,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
@@ -148,32 +148,32 @@
     categoryId: 0,
     tabList: [
       {
-        name: '综合推荐',
+        name: $t('goods.list.comprehensive'),
         value: 'weigh',
         list: [
           {
-            label: '综合推荐',
+            label: $t('goods.list.comprehensive'),
             sort: 'weigh',
             order: 'desc',
           },
           {
-            label: '价格升序',
+            label: $t('goods.list.priceAsc'),
             sort: 'price',
             order: 'asc',
           },
           {
-            label: '价格降序',
+            label: $t('goods.list.priceDesc'),
             sort: 'price',
             order: 'desc',
           },
         ],
       },
       {
-        name: '销量',
+        name: $t('goods.list.sale'),
         value: 'total_sales',
       },
       {
-        name: '新品优先',
+        name: $t('goods.list.newGoods'),
         value: 'createtime',
       },
     ],

+ 3 - 3
pages/goods/score.vue

@@ -8,7 +8,7 @@
 
       <s-empty
         v-else-if="state.goodsInfo === null"
-        text="商品不存在或已下架"
+        :text=$t('goods.index.sellout')
         icon="/static/soldout-empty.png"
         showAction
         actionText="再逛逛"
@@ -86,11 +86,11 @@
           <!-- TODO: 缺货中 已售罄 判断 设计-->
           <view class="buy-box ss-flex ss-col-center ss-p-r-20" v-if="state.goodsInfo.stock > 0">
             <button class="ss-reset-button buy-btn" @tap="state.showSelectSku = true">
-              立即兑换
+              {{$t('goods.score.exchangeNow')}}
             </button>
           </view>
           <view class="buy-box ss-flex ss-col-center ss-p-r-20" v-else>
-            <button class="ss-reset-button disabled-btn" disabled> 立即兑换 </button>
+            <button class="ss-reset-button disabled-btn" disabled> {{$t('goods.score.exchangeNow')}} </button>
           </view>
         </detail-tabbar>
       </block>

+ 9 - 9
pages/goods/seckill.vue

@@ -7,10 +7,10 @@
     <!-- 空置页 -->
     <s-empty
       v-else-if="state.goodsInfo === null || state.goodsInfo.activity_type !== 'seckill' "
-      text="活动不存在或已结束"
+      :text="$t('goods.groupon.ended')"
       icon="/static/soldout-empty.png"
       showAction
-      actionText="再逛逛"
+      :actionText="$t('goods.groupon.other')"
       actionUrl="/pages/goods/list"
     />
     <block v-else>
@@ -37,11 +37,11 @@
                 <view class="tig-icon ss-flex ss-col-center ss-row-center">
                   <text class="cicon-alarm"></text>
                 </view>
-                <view class="tig-title">秒杀价</view>
+                <view class="tig-title">{{$t('goods.seckill.seckillPrice')}}</view>
               </view>
             </view>
             <view class="countdown-box" v-if="endTime.ms > 0">
-              <view class="countdown-title ss-m-b-20">距结束仅剩</view>
+              <view class="countdown-title ss-m-b-20">{{$t('goods.groupon.toEndTime')}}</view>
               <view class="ss-flex countdown-time">
                 <view class="ss-flex countdown-h">{{ endTime.h }}</view>
                 <view class="ss-m-x-4">:</view>
@@ -50,7 +50,7 @@
                 <view class="countdown-num ss-flex ss-row-center">{{ endTime.s }}</view>
               </view>
             </view>
-            <view class="countdown-title" v-else> 活动已结束 </view>
+            <view class="countdown-title" v-else> {{$t('goods.groupon.endedMsg')}} </view>
           </view>
           <view class="ss-flex ss-row-between ss-m-b-60">
             <view class="origin-price ss-flex ss-col-center" v-if="state.goodsInfo.original_price">
@@ -102,7 +102,7 @@
           >
             <view>
               <view class="btn-price">{{ state.goodsInfo.original_price }}</view>
-              <view>原价购买</view>
+              <view>{{$t('goods.seckill.originPriceBuy')}}</view>
             </view>
           </button>
           <button v-else class="ss-reset-button origin-price-btn ss-flex-col">
@@ -111,7 +111,7 @@
               :class="
                 state.goodsInfo.stock === 0 || state.goodsInfo.activity.status != 'ing' ? '' : ''
               "
-              >秒杀价</view
+              >{{$t('goods.seckill.seckillPrice')}}</view
             >
           </button>
           <button
@@ -126,8 +126,8 @@
           >
             <view class="btn-price">{{ state.goodsInfo.price[0] }}</view>
             <view v-if="state.goodsInfo.activity.status === 'ing'">
-              <view v-if="state.goodsInfo.stock === 0">已售罄</view>
-              <view v-else>立即秒杀</view>
+              <view v-if="state.goodsInfo.stock === 0">{{$t('goods.groupon.sellout')}}</view>
+              <view v-else>{{$t('goods.seckill.seckillNow')}}</view>
             </view>
             <view v-else>{{ state.goodsInfo.activity.status_text }}</view>
           </button>

+ 11 - 11
pages/index/cart.vue

@@ -1,8 +1,8 @@
 <template>
-  <s-layout title="购物车" tabbar="/pages/index/cart" :bgStyle="{ color: '#fff' }">
+  <s-layout :title="$t('index.cart.title')" tabbar="/pages/index/cart" :bgStyle="{ color: '#fff' }">
     <s-empty
       v-if="state.list.length === 0"
-      text="购物车空空如也,快去逛逛吧~"
+      :text="$t('index.cart.emptyCart')"
       icon="/static/cart-empty.png"
     />
 
@@ -10,16 +10,16 @@
     <view class="cart-box ss-flex ss-flex-col ss-row-between" v-if="state.list.length">
       <view class="cart-header ss-flex ss-col-center ss-row-between ss-p-x-30">
         <view class="header-left ss-flex ss-col-center ss-font-26">
-          
+          {{$t('index.cart.total')}}
           <text class="goods-number ui-TC-Main ss-flex">{{ state.list.length }}</text>
-          件商品
+          {{$t('index.cart.unitgoods')}}
         </view>
         <view class="header-right">
           <button v-if="state.editMode" class="ss-reset-button" @tap="state.editMode = false">
-            取消
+            {{$t('index.cart.cancle')}}
           </button>
           <button v-else class="ss-reset-button ui-TC-Main" @tap="state.editMode = true">
-            编辑
+            {{$t('index.cart.edit')}}
           </button>
         </view>
       </view>
@@ -67,9 +67,9 @@
                 style="transform: scale(0.8)"
                 @tap.stop="onSelectAll"
               />
-              <view class="ss-m-l-8"> 全选 </view>
+              <view class="ss-m-l-8"> {{$t('index.cart.chooseAll')}}</view>
             </label>
-            <text>合计:</text>
+            <text>合计{{$t('index.cart.countAll')}}:</text>
             <view class="text-price price-text">
               {{ state.totalPriceSelected }}
             </view>
@@ -80,14 +80,14 @@
               class="ss-reset-button ui-BG-Main-Gradient pay-btn ui-Shadow-Main"
               @tap="onDelete"
             >
-              删除
+              {{$t('index.cart.delete')}}
             </button>
             <button
               v-else
               class="ss-reset-button ui-BG-Main-Gradient pay-btn ui-Shadow-Main"
               @tap="onConfirm"
             >
-              去结算
+              {{$t('index.cart.settle')}}
               {{ state.selectedIds?.length ? `(${state.selectedIds.length})` : '' }}
             </button>
           </view>
@@ -134,7 +134,7 @@
       });
     });
     if (goods_list.length === 0) {
-      sheep.$helper.toast('请选择商品');
+      sheep.$helper.toast($t('index.cart.chooseGoods'));
       return;
     }
     sheep.$router.go('/pages/order/confirm', {

+ 2 - 2
pages/index/category.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="分类" tabbar="/pages/index/category" :bgStyle="{ color: '#fff' }">
+  <s-layout :title="$t('index.category.title')" tabbar="/pages/index/category" :bgStyle="{ color: '#fff' }">
     <view class="s-category">
       <view class="three-level-wrap ss-flex ss-col-top" :style="[{ height: pageHeight + 'px' }]">
         <scroll-view class="side-menu-wrap" scroll-y :style="[{ height: pageHeight + 'px' }]">
@@ -60,7 +60,7 @@
             "
             :status="state.loadStatus"
             :content-text="{
-              contentdown: '点击查看更多',
+              contentdown: $t('index.category.viewMore'),
             }"
             @tap="loadmore"
           />

+ 1 - 1
pages/index/components/third-one.vue

@@ -12,7 +12,7 @@
             })
           "
         >
-          查看更多
+          {{$t('common.viewMore')}}
           <text class="cicon-forward"></text>
         </button>
       </view>

+ 1 - 1
pages/index/index.vue

@@ -1,7 +1,7 @@
 <template>
   <view v-if="template">
     <s-layout
-      title="首页"
+      :title="$t('index.index.title')"
       navbar="custom"
       tabbar="/pages/index/index"
       :bgStyle="template.style?.background"

+ 6 - 6
pages/index/search.vue

@@ -1,19 +1,19 @@
 <template>
-  <s-layout class="set-wrap" title="搜索" :bgStyle="{ color: '#FFF' }">
+  <s-layout class="set-wrap" :title="$t('index.search.title')" :bgStyle="{ color: '#FFF' }">
     <view class="ss-p-x-24">
       <view class="ss-flex ss-col-center">
         <uni-search-bar
           class="ss-flex-1"
           radius="33"
-          placeholder="请输入关键字"
+          :placeholder="$t('index.search.keyword')"
           cancelButton="none"
           :focus="true"
           @confirm="onSearch($event.value)"
         />
       </view>
       <view class="ss-flex ss-row-between ss-col-center">
-        <view class="serach-history">搜索历史</view>
-        <button class="clean-history ss-reset-button" @tap="onDelete"> 清除搜索历史 </button>
+        <view class="serach-history">{{$t('index.search.history')}}</view>
+        <button class="clean-history ss-reset-button" @tap="onDelete"> {{$t('index.search.clearHistory')}} </button>
       </view>
       <view class="ss-flex ss-col-center ss-row-left ss-flex-wrap">
         <button
@@ -62,8 +62,8 @@
 
   function onDelete() {
     uni.showModal({
-      title: '提示',
-      content: '确认清除搜索历史吗?',
+      title: $t('index.search.tips'),
+      content: $t('index.search.sureClearHistory'),
       success: function (res) {
         if (res.confirm) {
           state.historyList = [];

+ 1 - 1
pages/index/user.vue

@@ -1,6 +1,6 @@
 <template>
   <s-layout
-    title="我的"
+    :title="$t('index.user.title')"
     tabbar="/pages/index/user"
     navbar="custom"
     :bgStyle="template.style?.background"

+ 21 - 21
pages/order/aftersale/apply.vue

@@ -1,6 +1,6 @@
 <!-- 订单详情 -->
 <template>
-  <s-layout title="申请售后">
+  <s-layout :title="$t('order.aftersale.title')">
     <!-- 售后商品 -->
     <view class="goods-box">
       <s-goods-item :img="state.goodsItem.goods_image" :title="state.goodsItem.goods_title"
@@ -11,7 +11,7 @@
     <uni-forms ref="form" v-model="formData" :rules="rules" label-position="top">
       <!-- 售后类型 -->
       <view class="refund-item">
-        <view class="item-title ss-m-b-20">售后类型</view>
+        <view class="item-title ss-m-b-20">{{$t('order.aftersale.type')}}</view>
         <view class="ss-flex-col">
           <radio-group @change="onRefundChange">
             <label class="ss-flex ss-col-center ss-p-y-10" v-for="(item, index) in state.refundTypeList" :key="index">
@@ -24,28 +24,28 @@
       </view>
       <!-- 申请原因 -->
       <view class="refund-item ss-flex ss-col-center ss-row-between" @tap="state.showModal = true">
-        <text class="item-title">申请原因</text>
+        <text class="item-title">{{$t('order.aftersale.reason')}}</text>
         <view class="ss-flex refund-cause ss-col-center">
           <text class="ss-m-r-20" v-if="formData.reason">{{ formData.reason }}</text>
-          <text class="ss-m-r-20" v-else>请选择申请原因~</text>
+          <text class="ss-m-r-20" v-else>{{$t('order.aftersale.chooseReason')}}</text>
           <!-- <text class="ss-iconfont _icon-forward" style="color: #666"></text> -->
           <text class="cicon-forward" style="height: 28rpx"></text>
         </view>
       </view>
       <view class="refund-item u-m-b-20">
-        <view class="item-title ss-m-b-20">联系方式</view>
+        <view class="item-title ss-m-b-20">{{$t('order.aftersale.contact')}}</view>
         <view class="input-box u-flex">
-          <uni-easyinput :inputBorder="false" type="number" v-model="formData.mobile" placeholder="请输入您的联系电话"
+          <uni-easyinput :inputBorder="false" type="number" v-model="formData.mobile" :placeholder="$t('order.aftersale.enterContact')"
             paddingLeft="10" />
         </view>
       </view>
 
       <!-- 留言 -->
       <view class="refund-item">
-        <view class="item-title ss-m-b-20">相关描述</view>
+        <view class="item-title ss-m-b-20">{{$t('order.aftersale.desc')}}</view>
         <view class="describe-box">
           <uni-easyinput :inputBorder="false" class="describe-content" type="textarea" maxlength="120" autoHeight
-            v-model="formData.content" placeholder="客官~请描述您遇到的问题,建议上传照片"></uni-easyinput>
+            v-model="formData.content" :placeholder="$t('order.aftersale.descPlaceholrder')"></uni-easyinput>
           <view class="upload-img">
             <s-uploader v-model:url="formData.images" fileMediatype="image" limit="9" mode="grid"
               :imageStyles="{ width: '168rpx', height: '168rpx' }" />
@@ -57,8 +57,8 @@
     <su-fixed bottom placeholder>
       <view class="foot-wrap">
         <view class="foot_box ss-flex ss-col-center ss-row-between ss-p-x-30">
-          <button class="ss-reset-button contcat-btn" @tap="sheep.$router.go('/pages/chat/index')">联系客服</button>
-          <button class="ss-reset-button ui-BG-Main-Gradient sub-btn" @tap="submit">提交</button>
+          <button class="ss-reset-button contcat-btn" @tap="sheep.$router.go('/pages/chat/index')">{{$t('order.aftersale.service')}}</button>
+          <button class="ss-reset-button ui-BG-Main-Gradient sub-btn" @tap="submit">{{$t('order.aftersale.submit')}}</button>
         </view>
       </view>
     </su-fixed>
@@ -66,7 +66,7 @@
 
     <su-popup :show="state.showModal" round="10" :showClose="true" @close="state.showModal = false">
       <view class="modal-box page_box">
-        <view class="modal-head item-title head_box ss-flex ss-row-center ss-col-center">申请原因</view>
+        <view class="modal-head item-title head_box ss-flex ss-row-center ss-col-center">{{$t('order.aftersale.reason')}}</view>
         <view class="modal-content content_box">
           <radio-group @change="onChange">
             <label class="radio ss-flex ss-col-center" v-for="item in state.refundReasonList" :key="item.value">
@@ -76,7 +76,7 @@
           </radio-group>
         </view>
         <view class="modal-foot foot_box ss-flex ss-row-center ss-col-center">
-          <button class="ss-reset-button close-btn ui-BG-Main-Gradient" @tap="onReason">确定</button>
+          <button class="ss-reset-button close-btn ui-BG-Main-Gradient" @tap="onReason">{{$t('order.aftersale.confirm')}}</button>
         </view>
       </view>
     </su-popup>
@@ -96,42 +96,42 @@ const state = reactive({
   //售后类型
   refundTypeList: [
     {
-      text: '仅退款',
+      text: $t('order.aftersale.refundOnly'),
       value: 'refund',
     },
     {
-      text: '退/换货',
+      text: $t('order.aftersale.returnOrExchange'),
       value: 'return',
     },
     {
-      text: '其他',
+      text: $t('order.aftersale.other'),
       value: 'other',
     },
   ],
   refundReasonList: [
     {
       value: '1',
-      title: '卖家发错货了',
+      title: $t('order.aftersale.sendWrong'),
     },
     {
       value: '2',
-      title: '退运费',
+      title: $t('order.aftersale.returnShipping'),
     },
     {
       value: '3',
-      title: '大小/重量与商品描述不符',
+      title: $t('order.aftersale.descNotMatch1'),
     },
     {
       value: '4',
-      title: '生产日期/保质期与商品描述不符',
+      title: $t('order.aftersale.descNotMatch2'),
     },
     {
       value: '5',
-      title: '质量问题',
+      title: $t('order.aftersale.qualityIssues'),
     },
     {
       value: '6',
-      title: '我不想要了',
+      title: $t('order.aftersale.notWant'),
     },
   ],
 });

+ 18 - 18
pages/order/aftersale/detail.vue

@@ -1,6 +1,6 @@
 <!-- 售后详情 TODO-jj 测试-->
 <template>
-  <s-layout title="售后详情" :navbar="!isEmpty(state.info) && !state.loading ? 'inner' : 'normal'">
+  <s-layout :title="$t('order.aftersale.detail.title')" :navbar="!isEmpty(state.info) && !state.loading ? 'inner' : 'normal'">
     <view class="content_box" v-if="!isEmpty(state.info) && !state.loading">
       <!-- 步骤条 -->
       <!-- TODO-jj: 步骤条样式 -->
@@ -59,7 +59,7 @@
 
       <!-- 退款金额 -->
       <view class="aftersale-money ss-flex ss-col-center ss-row-between">
-        <view class="aftersale-money--title">退款总额</view>
+        <view class="aftersale-money--title">{{$t('order.aftersale.detail.refundMoney')}}</view>
         <view class="aftersale-money--num">¥{{ state.info.refund_fee }}</view>
       </view>
       <!-- 服务商品 -->
@@ -78,36 +78,36 @@
       <!-- 服务内容 -->
       <view class="aftersale-content">
         <view class="aftersale-item ss-flex ss-col-center">
-          <view class="item-title">服务单号:</view>
+          <view class="item-title">{{$t('order.aftersale.detail.orderNo')}}:</view>
           <view class="item-content ss-m-r-16">{{ state.info.aftersale_sn }}</view>
-          <button class="ss-reset-button copy-btn" @tap="onCopy">复制</button>
+          <button class="ss-reset-button copy-btn" @tap="onCopy">{{$t('order.aftersale.detail.copy')}}</button>
         </view>
         <view class="aftersale-item ss-flex ss-col-center">
-          <view class="item-title">申请时间:</view>
+          <view class="item-title">{{$t('order.aftersale.detail.applyTime')}}:</view>
           <view class="item-content">{{ state.info.createtime }}</view>
         </view>
         <view class="aftersale-item ss-flex ss-col-center">
-          <view class="item-title">售后类型:</view>
+          <view class="item-title">{{$t('order.aftersale.detail.type')}}:</view>
           <view class="item-content">{{ state.info.type_text }}</view>
         </view>
         <view class="aftersale-item ss-flex ss-col-center">
-          <view class="item-title">申请原因:</view>
+          <view class="item-title">{{$t('order.aftersale.detail.reason')}}:</view>
           <view class="item-content">{{ state.info.reason }}</view>
         </view>
         <view class="aftersale-item ss-flex ss-col-center">
-          <view class="item-title">相关描述:</view>
+          <view class="item-title">{{$t('order.aftersale.detail.desc')}}:</view>
           <view class="item-content">{{ state.info.content }}</view>
         </view>
       </view>
     </view>
-    <s-empty v-else icon="/static/order-empty.png" text="暂无该订单售后详情" />
+    <s-empty v-else icon="/static/order-empty.png" :text="$t('order.aftersale.detail.empty')" />
     <su-fixed bottom placeholder bg="bg-white" v-if="!isEmpty(state.info) && !state.loading">
       <view class="foot_box">
         <button
           class="ss-reset-button btn"
           v-if="state.info?.btns?.includes('cancel')"
           @tap="onApply(state.info.id)"
-          >取消申请</button
+          >{{$t('order.aftersale.detail.cancleApply')}}</button
         >
         <!-- <button
           class="ss-reset-button btn"
@@ -116,7 +116,7 @@
           >删除</button
         > -->
         <button class="ss-reset-button contcat-btn btn" @tap="sheep.$router.go('/pages/chat/index')"
-          >联系客服</button
+          >{{$t('order.aftersale.detail.service')}}</button
         >
       </view>
     </su-fixed>
@@ -137,10 +137,10 @@
     info: {},
     list: [
       {
-        title: '提交申请',
+        title: $t('order.aftersale.detail.apply'),
       },
       {
-        title: '处理中',
+        title: $t('order.aftersale.detail.dealing'),
       },
     ],
     loading: true,
@@ -148,8 +148,8 @@
 
   function onApply(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要取消此申请吗?',
+      title: $t('order.aftersale.detail.tips'),
+      content: $t('order.aftersale.detail.tipsCancle'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.order.aftersale.cancel(orderId);
@@ -163,8 +163,8 @@
 
   function onDelete(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要删除吗?',
+      title: $t('order.aftersale.detail.tips'),
+      content: $t('order.aftersale.detail.tipsDelete'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.order.aftersale.delete(orderId);
@@ -187,7 +187,7 @@
         state.list.push({ title: state.info.aftersale_status_text });
         state.active = 2;
       } else {
-        state.list.push({ title: '完成' });
+        state.list.push({ title: $t('order.aftersale.detail.complete') });
         state.active = state.info.aftersale_status;
       }
     } else {

+ 15 - 15
pages/order/aftersale/list.vue

@@ -1,6 +1,6 @@
 <!-- 售后列表 -->
 <template>
-  <s-layout title="售后列表">
+  <s-layout :title="$t('order.aftersale.list.title')">
     <!-- tab -->
     <su-sticky bgColor="#fff">
       <su-tabs
@@ -10,7 +10,7 @@
         :current="state.currentTab"
       ></su-tabs>
     </su-sticky>
-    <s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" text="暂无数据">
+    <s-empty v-if="state.pagination.total === 0" icon="/static/data-empty.png" :text="$t('order.aftersale.list.noData')">
     </s-empty>
     <!-- 列表 -->
     <view v-if="state.pagination.total > 0">
@@ -21,7 +21,7 @@
         @tap="sheep.$router.go('/pages/order/aftersale/detail', { id: order.id })"
       >
         <view class="order-head ss-flex ss-col-center ss-row-between">
-          <text class="no">服务单号:{{ order.aftersale_sn }}</text>
+          <text class="no">{{$t('order.aftersale.list.orderNo')}}:{{ order.aftersale_sn }}</text>
           <text class="state">{{ order.aftersale_status_text }}</text>
         </view>
         <s-goods-item
@@ -44,7 +44,7 @@
               class="ss-reset-button tool-btn"
               @tap.stop="onApply(order.id)"
               v-if="order.btns.includes('cancel')"
-              >取消申请</button
+              >{{$t('order.aftersale.list.cancleApply')}}</button
             >
           </view>
           <view>
@@ -52,7 +52,7 @@
               class="ss-reset-button tool-btn"
               @tap.stop="onDelete(order.id)"
               v-if="order.btns.includes('delete')"
-              >删除</button
+              >{{$t('order.aftersale.list.delete')}}</button
             >
           </view>
         </view>
@@ -62,7 +62,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
@@ -95,23 +95,23 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('order.aftersale.list.all'),
       value: 'all',
     },
     {
-      name: '申请中',
+      name: $t('order.aftersale.list.nooper'),
       value: 'nooper',
     },
     {
-      name: '处理中',
+      name: $t('order.aftersale.list.ing'),
       value: 'ing',
     },
     {
-      name: '已完成',
+      name: $t('order.aftersale.list.completed'),
       value: 'completed',
     },
     {
-      name: '已拒绝',
+      name: $t('order.aftersale.list.refuse'),
       value: 'refuse',
     },
   ];
@@ -147,8 +147,8 @@
 
   function onApply(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要取消此申请吗?',
+      title: $t('order.aftersale.detail.tips'),
+      content: $t('order.aftersale.detail.tipsCancle'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.order.aftersale.cancel(orderId);
@@ -163,8 +163,8 @@
 
   function onDelete(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要删除吗?',
+      title: $t('order.aftersale.detail.tips'),
+      content: $t('order.aftersale.detail.tipsDelete'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.order.aftersale.delete(orderId);

+ 5 - 5
pages/order/aftersale/log.vue

@@ -1,6 +1,6 @@
 <!-- 售后进度  -->
 <template>
-  <s-layout title="售后进度">
+  <s-layout :title="$t('order.aftersale.log.title')">
     <view class="log-box">
       <view  v-for="(item, index) in state.info" :key="item.title">
         <log-item :item="item" :index="index" :data="state.info"></log-item>
@@ -20,19 +20,19 @@
     commentImages: [],
     list: [
       {
-        title: '买家下单',
+        title: $t('order.aftersale.log.paid'),
         desc: '2018-11-11',
       },
       {
-        title: '卖家发货',
+        title: $t('order.aftersale.log.delivery'),
         desc: '2018-11-12',
       },
       {
-        title: '买家签收',
+        title: $t('order.aftersale.log.received'),
         desc: '2018-11-13',
       },
       {
-        title: '交易完成',
+        title: $t('order.aftersale.log.complete'),
         desc: '2018-11-14',
       },
     ],

+ 19 - 19
pages/order/confirm.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="确认订单">
+  <s-layout :title="$t('order.confirm.title')">
     <view
       class="bg-white address-box ss-m-b-14 ss-r-b-20"
       @tap="onSelectAddress"
@@ -22,7 +22,7 @@
       >
         <template #top>
           <view class="order-item ss-flex ss-col-center ss-row-between ss-p-x-20 bg-white">
-            <view class="item-title">配送方式</view>
+            <view class="item-title">{{$t('order.confirm.delivery')}}</view>
             <view class="ss-flex ss-col-center">
               <text class="item-value">{{ item.dispatch_type_text }}</text>
             </view>
@@ -31,11 +31,11 @@
       </s-goods-item>
 
       <view class="order-item ss-flex ss-col-center ss-row-between ss-p-x-20 bg-white ss-r-20">
-        <view class="item-title">订单备注</view>
+        <view class="item-title">{{$t('order.confirm.remark')}}</view>
         <view class="ss-flex ss-col-center">
           <uni-easyinput
             maxlength="20"
-            placeholder="建议留言前先与商家沟通"
+            :placeholder="$t('order.confirm.tips')"
             v-model="state.orderPayload.remark"
             :inputBorder="false"
             :clearable="false"
@@ -47,7 +47,7 @@
     <view class="bg-white total-card-box ss-p-20 ss-m-b-14 ss-r-20">
       <view class="total-box-content border-bottom">
         <view class="order-item ss-flex ss-col-center ss-row-between">
-          <view class="item-title">商品金额</view>
+          <view class="item-title">{{$t('order.confirm.price')}}</view>
           <view class="ss-flex ss-col-center">
             <text class="item-value ss-m-r-24">¥{{ state.orderInfo.goods_amount }}</text>
           </view>
@@ -56,7 +56,7 @@
           class="order-item ss-flex ss-col-center ss-row-between"
           v-if="state.orderPayload.order_type === 'score'"
         >
-          <view class="item-title">扣除积分</view>
+          <view class="item-title">{{$t('order.confirm.pointsDeducted')}}</view>
           <view class="ss-flex ss-col-center">
             <image
               :src="sheep.$url.static('/assets/addons/shopro/uniapp/goods/score1.svg')"
@@ -66,7 +66,7 @@
           </view>
         </view>
         <view class="order-item ss-flex ss-col-center ss-row-between">
-          <view class="item-title">运费</view>
+          <view class="item-title">{{$t('order.confirm.freight')}}</view>
           <view class="ss-flex ss-col-center">
             <text class="item-value ss-m-r-24">+¥{{ state.orderInfo.dispatch_amount }}</text>
           </view>
@@ -76,7 +76,7 @@
           v-if="state.orderPayload.order_type != 'score'"
         >
           <!-- <view v-if="state.orderInfo.coupon_discount_fee > 0" class="order-item ss-flex ss-col-center ss-row-between"> -->
-          <view class="item-title">优惠券</view>
+          <view class="item-title">{{$t('order.confirm.coupon')}}</view>
           <view class="ss-flex ss-col-center" @tap="state.showCoupon = true">
             <text class="item-value text-red" v-if="state.orderPayload.coupon_id"
               >-¥{{ state.orderInfo.coupon_discount_fee }}</text
@@ -87,8 +87,8 @@
               v-else
               >{{
                 state.couponInfo.can_use?.length > 0
-                  ? state.couponInfo.can_use?.length + '张可用'
-                  : '暂无可用优惠券'
+                  ? state.couponInfo.can_use?.length + $t('order.confirm.msg1')
+                  : $t('order.confirm.noCoupon')
               }}</text
             >
 
@@ -100,7 +100,7 @@
           v-if="state.orderInfo.promo_infos?.length"
         >
           <!-- <view v-if="state.orderInfo.promo_discount_fee > 0" class="order-item ss-flex ss-col-center ss-row-between"> -->
-          <view class="item-title">活动优惠</view>
+          <view class="item-title">{{$t('order.confirm.discount')}}</view>
           <view class="ss-flex ss-col-center" @tap="state.showDiscount = true">
             <text class="item-value text-red"> -¥{{ state.orderInfo.promo_discount_fee }} </text>
             <text class="_icon-forward item-icon"></text>
@@ -108,7 +108,7 @@
         </view>
       </view>
       <view class="total-box-footer ss-font-28 ss-flex ss-row-right ss-col-center ss-m-r-28">
-        <view class="total-num ss-m-r-20">共{{ state.totalNumber }}</view>
+        <view class="total-num ss-m-r-20">共{{ state.totalNumber }}{{$t('order.confirm.unit')}}</view>
         <view>合计:</view>
         <view class="total-num text-red"> ¥{{ state.orderInfo.pay_fee }} </view>
         <view class="ss-flex" v-if="state.orderPayload.order_type === 'score'">
@@ -124,9 +124,9 @@
     <!-- 发票 -->
     <view class="bg-white ss-p-20 ss-r-20">
       <view class="order-item ss-flex ss-col-center ss-row-between">
-        <view class="item-title">发票申请</view>
+        <view class="item-title">{{$t('order.confirm.invoiceRequest')}}</view>
         <view class="ss-flex ss-col-center" @tap="onSelectInvoice">
-          <text class="item-value">{{ state.invoiceInfo.name || '无需开具发票' }}</text>
+          <text class="item-value">{{ state.invoiceInfo.name || $t('order.confirm.noNeedInvoice') }}</text>
           <text class="_icon-forward item-icon"></text>
         </view>
       </view>
@@ -163,7 +163,7 @@
           class="ss-reset-button ui-BG-Main-Gradient ss-r-40 submit-btn ui-Shadow-Main"
           @tap="onConfirm"
         >
-          {{ exchangeNow ? '立即兑换' : '提交订单' }}
+          {{ exchangeNow ? $t('order.confirm.exchangeNow') : $t('order.confirm.submitOrder') }}
         </button>
       </view>
     </su-fixed>
@@ -234,15 +234,15 @@
   // 提交订单/立即兑换
   function onConfirm() {
     if (!state.orderPayload.address_id && state.orderInfo.need_address === 1) {
-      sheep.$helper.toast('请选择收货地址');
+      sheep.$helper.toast($t('order.confirm.chooseAddress'));
       return;
     }
 
     if (exchangeNow.value) {
       uni.showModal({
-        title: '提示',
-        content: '确定使用积分立即兑换?',
-        cancelText: '再想想',
+        title: $t('order.confirm.prompt'),
+        content: $t('order.confirm.promptContent'),
+        cancelText: $t('order.confirm.later'),
         success: async function (res) {
           if (res.confirm) {
             submitOrder();

+ 31 - 31
pages/order/detail.vue

@@ -1,6 +1,6 @@
 <!-- 订单详情 -->
 <template>
-  <s-layout title="订单详情" class="index-wrap" navbar="inner">
+  <s-layout :title="$t('order.detail.title')" class="index-wrap" navbar="inner">
     <!-- 订单状态 -->
     <view
       class="state-box ss-flex-col ss-col-center ss-row-right"
@@ -74,7 +74,7 @@
           >
             <template #top>
               <view class="order-item ss-flex ss-col-center ss-row-between ss-p-x-20 bg-white">
-                <view class="item-title">配送方式</view>
+                <view class="item-title">{{$t('order.confirm.delivery')}}</view>
                 <view class="ss-flex ss-col-center">
                   <text class="item-value ss-m-r-20">{{ item.dispatch_type_text }}</text>
                   <button
@@ -84,7 +84,7 @@
                       (item.dispatch_type === 'autosend' || item.dispatch_type === 'custom') &&
                       item.dispatch_status !== 0
                     "
-                    >详情</button
+                    >{{$t('common.detail')}}</button
                   >
                 </view>
               </view>
@@ -100,7 +100,7 @@
                     })
                   "
                 >
-                  申请售后
+                  {{$t('order.detail.applyService')}}
                 </button>
                 <button
                   class="ss-reset-button apply-btn"
@@ -111,7 +111,7 @@
                     })
                   "
                 >
-                  重新售后
+                  {{$t('order.detail.reapplyService')}}
                 </button>
 
                 <button
@@ -123,7 +123,7 @@
                     })
                   "
                 >
-                  售后详情
+                  {{$t('order.detail.saleDetail')}}
                 </button>
                 <button
                   class="ss-reset-button apply-btn"
@@ -134,7 +134,7 @@
                     })
                   "
                 >
-                  再次购买
+                  {{$t('order.detail.rebuy')}}
                 </button>
               </view>
             </template>
@@ -152,21 +152,21 @@
       <view class="notice-box__content">
         <view class="notice-item--center">
           <view class="ss-flex ss-flex-1">
-            <text class="title">订单编号:</text>
+            <text class="title">{{$t('order.detail.order_no')}}:</text>
             <text class="detail">{{ state.orderInfo.order_sn }}</text>
           </view>
-          <button class="ss-reset-button copy-btn" @tap="onCopy">复制</button>
+          <button class="ss-reset-button copy-btn" @tap="onCopy">{{$t('order.detail.copy')}}</button>
         </view>
         <view class="notice-item">
-          <text class="title">下单时间:</text>
+          <text class="title">{{$t('order.detail.order_time')}}:</text>
           <text class="detail">{{ state.orderInfo.createtime }}</text>
         </view>
         <view class="notice-item" v-if="state.orderInfo.paid_time">
-          <text class="title">支付时间:</text>
+          <text class="title">{{$t('order.detail.pay_time')}}:</text>
           <text class="detail">{{ state.orderInfo.paid_time || '-' }}</text>
         </view>
         <view class="notice-item">
-          <text class="title">支付方式:</text>
+          <text class="title">{{$t('order.detail.pay_way')}}:</text>
           <text class="detail">{{ state.orderInfo.pay_types_text?.join(',') || '-' }}</text>
         </view>
       </view>
@@ -174,7 +174,7 @@
     <!--  价格信息  -->
     <view class="order-price-box">
       <view class="notice-item ss-flex ss-row-between">
-        <text class="title">商品总额</text>
+        <text class="title">{{$t('order.detail.goodsAmount')}}</text>
         <view class="ss-flex">
           <text class="detail" v-if="Number(state.orderInfo.goods_amount) > 0"
             >¥{{ state.orderInfo.goods_amount }}</text
@@ -194,21 +194,21 @@
         </view>
       </view>
       <view class="notice-item ss-flex ss-row-between">
-        <text class="title">运费</text>
+        <text class="title">{{$t('order.detail.freight')}}</text>
         <text class="detail">¥{{ state.orderInfo.dispatch_amount }}</text>
       </view>
       <view
         class="notice-item ss-flex ss-row-between"
         v-if="Number(state.orderInfo.total_discount_fee) > 0"
       >
-        <text class="title">优惠金额</text>
+        <text class="title">{{$t('order.detail.discount')}}</text>
         <text class="detail">¥{{ state.orderInfo.total_discount_fee }}</text>
       </view>
       <view class="notice-item all-rpice-item ss-flex ss-m-t-20">
         <text class="title">{{
           ['paid', 'completed'].includes(state.orderInfo.status)
-            ? '已付款'
-            : '需付款'
+            ? $t('order.detail.paid')
+            : $t('order.detail.needPay')
         }}</text>
         <text class="detail all-price" v-if="Number(state.orderInfo.pay_fee) > 0"
           >¥{{ state.orderInfo.pay_fee }}</text
@@ -237,7 +237,7 @@
         </view>
       </view>
       <view class="notice-item all-rpice-item ss-flex ss-m-t-20" v-if="refundFee > 0">
-        <text class="title">已退款</text>
+        <text class="title">{{$t('order.detail.refund')}}</text>
         <text class="detail all-price">¥{{ refundFee.toFixed(2) }}</text>
       </view>
     </view>
@@ -250,19 +250,19 @@
           class="ss-reset-button cancel-btn"
           v-if="state.orderInfo.btns?.includes('cancel')"
           @tap="onCancel(state.orderInfo.id)"
-          >取消订单</button
+          >{{$t('order.detail.cancleOrder')}}</button
         >
         <button
           class="ss-reset-button pay-btn ui-BG-Main-Gradient"
           v-if="state.orderInfo.btns?.includes('pay')"
           @tap="onPay(state.orderInfo.order_sn)"
-          >继续支付</button
+          >{{$t('order.detail.continuePay')}}</button
         >
         <button
           class="ss-reset-button cancel-btn"
           v-if="state.orderInfo.btns?.includes('apply_refund')"
           @tap="onRefund(state.orderInfo.id)"
-          >申请退款</button
+          >{{$t('order.detail.applyRefund')}}</button
         >
         <button
           class="ss-reset-button cancel-btn"
@@ -273,39 +273,39 @@
             })
           "
         >
-          {{ state.orderInfo.status_code === 'groupon_ing' ? '邀请拼团' : '拼团详情' }}
+          {{ state.orderInfo.status_code === 'groupon_ing' ? $t('order.detail.inviteGroup') : $t('order.detail.groupDetail') }}
         </button>
         <button
           class="ss-reset-button cancel-btn"
           v-if="state.orderInfo.btns?.includes('express')"
           @tap="onExpress(state.orderInfo.id)"
-          >查看物流</button
+          >{{$t('order.detail.viewExpress')}}</button
         >
         <button
           class="ss-reset-button cancel-btn"
           v-if="state.orderInfo.btns?.includes('confirm')"
           @tap="onConfirm(state.orderInfo.id)"
-          >确认收货</button
+          >{{$t('order.detail.confirmReceived')}}</button
         >
         <button
           class="ss-reset-button cancel-btn"
           v-if="state.orderInfo.btns?.includes('comment')"
           @tap="onComment(state.orderInfo.order_sn)"
-          >评价晒单</button
+          >{{$t('order.detail.comment')}}</button
         >
         <button
           v-if="state.orderInfo.btns?.includes('invoice')"
           class="ss-reset-button cancel-btn"
           @tap.stop="onOrderInvoice(state.orderInfo.invoice?.id)"
         >
-          查看发票
+          {{$t('order.detail.viewInvoice')}}
         </button>
         <button
           v-if="state.orderInfo.btns?.includes('re_apply_refund')"
           class="ss-reset-button cancel-btn"
           @tap.stop="onRefund(state.orderInfo.id)"
         >
-          重新退款
+          {{$t('order.detail.refundAgain')}}
         </button>
       </view>
     </su-fixed>
@@ -357,8 +357,8 @@
   // 取消订单
   async function onCancel(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要取消订单吗?',
+      title: $t('order.detail.tips'),
+      content: $t('order.detail.tipsCancleOrder'),
       success: async function (res) {
         if (res.confirm) {
           const { code, data } = await sheep.$api.order.cancel(orderId);
@@ -373,8 +373,8 @@
   // 申请退款
   async function onRefund(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要申请退款吗?',
+      title: $t('order.detail.tips'),
+      content: $t('order.detail.tipsRefund'),
       success: async function (res) {
         if (res.confirm) {
           const { code, data } = await sheep.$api.order.applyRefund(orderId);

+ 2 - 2
pages/order/dispatch/content.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="发货内容">
+  <s-layout :title="$t('order.aftersale.content.title')">
     <view class="order-card ss-m-x-20 ss-r-20">
       <s-goods-item
         :img="state.data.goods_image"
@@ -17,7 +17,7 @@
       </s-goods-item>
     </view>
     <view class="bg-white ss-p-20 ss-m-x-20 ss-r-20">
-      <view class="title ss-m-b-26">发货信息</view>
+      <view class="title ss-m-b-26">{{$t('order.aftersale.content.detail')}}</view>
       <view v-if="state.data.ext?.dispatch_content_type === 'params'">
         <view class="desc ss-m-b-20" v-for="item in state.data.ext.dispatch_content" :key="item">
           {{ item.title }}: {{ item.content }}

+ 3 - 3
pages/order/express/list.vue

@@ -1,9 +1,9 @@
 <!-- 物流包裹-->
 <template>
-  <s-layout title="物流包裹">
+  <s-layout :title="$t('order.aftersale.expres.title')">
     <view class="express-wrap">
       <su-sticky bgColor="#FFE2B6">
-        <view class="header ss-flex ss-p-l-24">{{ state.list.length }}个包裹已派送</view>
+        <view class="header ss-flex ss-p-l-24">{{ state.list.length }}{{$t('order.aftersale.expres.msg')}}</view>
       </su-sticky>
       <view
         class="express-box"
@@ -29,7 +29,7 @@
             </scroll-view>
           </view>
         </view>
-        <view class="express-box-foot">共{{ item.items.length }}件商品</view>
+        <view class="express-box-foot">{{$t('order.aftersale.expres.total')}}{{ item.items.length }}{{$t('order.aftersale.expres.unitgoods')}}</view>
       </view>
     </view>
   </s-layout>

+ 5 - 5
pages/order/express/log.vue

@@ -1,6 +1,6 @@
 <!-- 物流追踪 -->
 <template>
-  <s-layout title="物流追踪">
+  <s-layout :title="$t('order.aftersale.express.log')">
     <view class="log-wrap">
       <view class="log-card ss-flex ss-m-20 ss-r-10" v-if="goodsImages.length > 0">
         <uni-swiper-dot :info="goodsImages" :current="state.current" mode="round">
@@ -13,11 +13,11 @@
 
         <view class="log-card-msg">
           <view class="ss-flex ss-m-b-8">
-            <view>物流状态:</view>
+            <view>{{$t('order.aftersale.express.status')}}:</view>
             <view class="warning-color">{{ state.info.status_text }}</view>
           </view>
-          <view class="ss-m-b-8">快递单号:{{ state.info.express_no }}</view>
-          <view>快递公司:{{ state.info.express_name }}</view>
+          <view class="ss-m-b-8">{{$t('order.aftersale.express.no')}}:{{ state.info.express_no }}</view>
+          <view>{{$t('order.aftersale.express.company')}}:{{ state.info.express_name }}</view>
         </view>
       </view>
       <view class="log-content ss-m-20 ss-r-10">
@@ -65,7 +65,7 @@
             </view>
           </view>
         </view>
-        <view v-else> 暂无快递信息 </view>
+        <view v-else> {{$t('order.aftersale.express.noData')}} </view>
       </view>
     </view>
   </s-layout>

+ 18 - 18
pages/order/invoice.vue

@@ -1,6 +1,6 @@
 <!-- 订单详情 -->
 <template>
-  <s-layout title="发票详情" class="invoice-wrap" navbar="inner">
+  <s-layout :title="$t('order.invoice.title')" class="invoice-wrap" navbar="inner">
     <view
       class="invoice-heard ss-flex-col ss-row-right ss-col-center"
       :style="[
@@ -19,12 +19,12 @@
         <view class="invoice-heard-title">{{ state.data.status_text }}</view>
       </view>
       <view class="ss-flex ss-m-b-52">
-        <view class="ss-m-r-20 invoice-heard-desc">预计可开发票金额:</view>
+        <view class="ss-m-r-20 invoice-heard-desc">{{$t('order.invoice.expectedInvoiceMoney')}}:</view>
         <view class="invoice-heard-price">¥{{ state.data.amount }}</view>
       </view>
     </view>
     <view class="invoice-content ss-flex-col ss-col-center">
-      <view class="ss-m-t-50 ss-m-b-42 invoice-content-title">增值税电子普通发票</view>
+      <view class="ss-m-t-50 ss-m-b-42 invoice-content-title">{{$t('order.invoice.invoiceNormal')}}</view>
       <view class="ss-flex ss-m-b-64">
         <view v-for="(item, index) in state.info" :key="item.title">
           <view class="log-icon ss-flex">
@@ -42,27 +42,27 @@
       <view class="invoice-content-list ss-flex ss-row-between ss-col-top">
         <view class="">
           <view class="ss-flex">
-            <view class="list-title">发票类型</view>
+            <view class="list-title">{{$t('order.invoice.invoiceType')}}</view>
             <view class="list-desc">{{ state.data.type_text }}</view>
           </view>
           <view class="ss-flex">
-            <view class="list-title">发票抬头</view>
+            <view class="list-title">{{$t('order.invoice.invoice')}}</view>
             <view class="list-desc">{{ state.data.name }}</view>
           </view>
           <view class="ss-flex" v-if="state.data.type === 'company'">
-            <view class="list-title">发票税号</view>
+            <view class="list-title">{{$t('order.invoice.taxId')}}</view>
             <view class="list-desc">{{ state.data.tax_no }}</view>
           </view>
           <view class="ss-flex" v-if="state.data.status === 'finish'">
-            <view class="list-title">实开金额</view>
+            <view class="list-title">{{$t('order.invoice.actualMoney')}}</view>
             <view class="list-desc">¥{{ state.data.invoice_amount }}</view>
           </view>
           <view class="ss-flex" v-if="state.data.status === 'finish'">
-            <view class="list-title">开票时间</view>
+            <view class="list-title">{{$t('order.invoice.invoiceTime')}}</view>
             <view class="list-desc">{{ state.data.finish_time }}</view>
           </view>
           <view class="ss-flex">
-            <view class="list-title">申请时间</view>
+            <view class="list-title">{{$t('order.invoice.applyTime')}}</view>
             <view class="list-desc">{{ state.data.createtime }}</view>
           </view>
         </view>
@@ -87,8 +87,8 @@
               class="invoice-img"
             ></image>
           </view>
-          <view class="invoice-img-num">共{{ state.numImage }}张</view>
-          <view class="invoice-img-title">点击预览发票</view>
+          <view class="invoice-img-num">{{$t('order.invoice.total')}}{{ state.numImage }}{{$t('order.invoice.unit')}}</view>
+          <view class="invoice-img-title">{{$t('order.invoice.previewInvoice')}}</view>
         </view>
       </view>
     </view>
@@ -104,15 +104,15 @@
       </view>
       <view class="invoice-order-list">
         <view class="ss-flex">
-          <view class="list-title">订单状态</view>
+          <view class="list-title">{{$t('order.invoice.orderStatus')}}</view>
           <view class="list-desc">{{ state.data.order?.status_text }}</view>
         </view>
         <view class="ss-flex">
-          <view class="list-title">订单编号</view>
+          <view class="list-title">{{$t('order.invoice.orderNo')}}</view>
           <view class="list-desc">{{ state.data.order?.order_sn }}</view>
         </view>
         <view class="ss-flex">
-          <view class="list-title">下单时间</view>
+          <view class="list-title">{{$t('order.invoice.orderTime')}}</view>
           <view class="list-desc">{{ state.data.order?.createtime }}</view>
         </view>
       </view>
@@ -130,13 +130,13 @@
   const state = reactive({
     info: [
       {
-        title: '订单提交',
+        title: $t('order.invoice.submitOrder'),
       },
       {
-        title: '等待开票',
+        title: $t('order.invoice.waitInvoice'),
       },
       {
-        title: '开票完成',
+        title: $t('order.invoice.finishInvoice'),
       },
     ],
     data: {},
@@ -165,7 +165,7 @@
           filePath: filePath,
           showMenu: true,
           success: function (res) {
-            console.log('打开文档成功');
+            console.log($t('order.invoice.openDocSuc'));
           },
         });
       },

+ 35 - 35
pages/order/list.vue

@@ -1,6 +1,6 @@
 <!-- 页面 -->
 <template>
-  <s-layout title="我的订单">
+  <s-layout :title="$t('order.list.title')">
     <su-sticky bgColor="#fff">
       <su-tabs
         :list="tabMaps"
@@ -12,7 +12,7 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/order-empty.png"
-      text="暂无订单"
+      :text="$t('order.list.noOrder')"
     ></s-empty>
     <view v-if="state.pagination.total > 0">
       <view
@@ -22,7 +22,7 @@
         @tap="onOrderDetail(order.order_sn)"
       >
         <view class="order-card-header ss-flex ss-col-center ss-row-between ss-p-x-20">
-          <view class="order-no">订单号:{{ order.order_sn }}</view>
+          <view class="order-no">{{$t('order.list.orderNo')}}:{{ order.order_sn }}</view>
           <view class="order-state ss-font-26" :class="formatOrderColor(order.status_code)">{{
             order.status_text
           }}</view>
@@ -47,7 +47,7 @@
                     })
                   "
                 >
-                  申请售后
+                  {{$t('order.list.applyService')}}
                 </button>
                 <button
                   class="ss-reset-button apply-btn"
@@ -58,7 +58,7 @@
                     })
                   "
                 >
-                  重新售后
+                  {{$t('order.list.reapplyService')}}
                 </button>
 
                 <button
@@ -70,7 +70,7 @@
                     })
                   "
                 >
-                  售后详情
+                  {{$t('order.list.saleDetail')}}
                 </button>
                 <button
                   class="ss-reset-button apply-btn"
@@ -81,7 +81,7 @@
                     })
                   "
                 >
-                  再次购买
+                  {{$t('order.list.rebuy')}}
                 </button>
               </view>
             </template>
@@ -90,15 +90,15 @@
         </view>
         <view class="pay-box ss-m-t-30 ss-flex ss-row-right ss-p-r-20">
           <view v-if="order.total_discount_fee > 0" class="ss-flex ss-col-center ss-m-r-8">
-            <view class="discounts-title">优惠:¥</view>
+            <view class="discounts-title">{{$t('order.list.discount')}}:¥</view>
             <view class="discounts-money">{{ order.total_discount_fee }}</view>
           </view>
           <view class="ss-flex ss-col-center ss-m-r-8">
-            <view class="discounts-title">运费:¥</view>
+            <view class="discounts-title">{{$t('order.list.freight')}}:¥</view>
             <view class="discounts-money">{{ order.dispatch_amount }}</view>
           </view>
           <view class="ss-flex ss-col-center">
-            <view class="discounts-title pay-color">总金额:</view>
+            <view class="discounts-title pay-color">{{$t('order.list.totalMoney')}}:</view>
             <view class="discounts-money pay-color" v-if="Number(order.order_amount) > 0"
               >¥{{ order.order_amount }}</view
             >
@@ -138,21 +138,21 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onOrderGroupon(order)"
             >
-              {{ order.status_code === 'groupon_ing' ? '邀请拼团' : '拼团详情' }}
+              {{ order.status_code === 'groupon_ing' ? $t('order.list.inviteGroup') : $t('order.list.groupDetail') }}
             </button>
             <button
               v-if="order.btns.includes('invoice')"
               class="tool-btn ss-reset-button"
               @tap.stop="onOrderInvoice(order.invoice?.id)"
             >
-              查看发票
+              {{$t('order.list.viewInvoice')}}
             </button>
             <button
               v-if="order.btns.length === 0"
               class="tool-btn ss-reset-button"
               @tap.stop="onOrderDetail(order.order_sn)"
             >
-              查看详情
+              {{$t('order.list.viewDetail')}}
             </button>
 
             <button
@@ -160,7 +160,7 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onConfirm(order.id)"
             >
-              确认收货
+              {{$t('order.detail.confirmReceived')}}
             </button>
 
             <button
@@ -168,7 +168,7 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onExpress(order.id)"
             >
-              查看物流
+              {{$t('order.detail.viewExpress')}}
             </button>
 
             <button
@@ -176,14 +176,14 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onRefund(order.id)"
             >
-              申请退款
+              {{$t('order.detail.applyRefund')}}
             </button>
             <button
               v-if="order.btns.includes('re_apply_refund')"
               class="tool-btn ss-reset-button"
               @tap.stop="onRefund(order.id)"
             >
-              重新退款
+              {{$t('order.detail.refundAgain')}}
             </button>
 
             <button
@@ -191,7 +191,7 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onCancel(order.id)"
             >
-              取消订单
+              {{$t('order.detail.cancleOrder')}}
             </button>
 
             <button
@@ -199,7 +199,7 @@
               class="tool-btn ss-reset-button"
               @tap.stop="onComment(order.order_sn)"
             >
-              评价晒单
+              {{$t('order.detail.comment')}}
             </button>
 
             <button
@@ -207,7 +207,7 @@
               class="delete-btn ss-reset-button"
               @tap.stop="onDelete(order.id)"
             >
-              删除订单
+              {{$t('order.list.deleteOrder')}}
             </button>
 
             <button
@@ -215,7 +215,7 @@
               class="tool-btn ss-reset-button ui-BG-Main-Gradient"
               @tap.stop="onPay(order.order_sn)"
             >
-              继续支付
+              {{$t('order.detail.continuePay')}}
             </button>
           </view>
         </view>
@@ -227,7 +227,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
@@ -263,23 +263,23 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('order.list.all'),
       value: 'all',
     },
     {
-      name: '待付款',
+      name: $t('order.list.unpaid'),
       value: 'unpaid',
     },
     {
-      name: '待发货',
+      name: $t('order.list.nosend'),
       value: 'nosend',
     },
     {
-      name: '待收货',
+      name: $t('order.list.noget'),
       value: 'noget',
     },
     {
-      name: '待评价',
+      name: $t('order.list.nocomment'),
       value: 'nocomment',
     },
   ];
@@ -333,8 +333,8 @@
   // 确认收货
   async function onConfirm(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '请确认包裹全部到达后再确认收货',
+      title: $t('order.list.tips'),
+      content: $t('order.list.tipsConfirmReceived'),
       success: async function (res) {
         if (res.confirm) {
           const { code, data } = await sheep.$api.order.confirm(orderId);
@@ -357,8 +357,8 @@
   // 取消订单
   async function onCancel(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要取消订单吗?',
+      title: $t('order.list.tips'),
+      content: $t('order.list.tipsCancleOrder'),
       success: async function (res) {
         if (res.confirm) {
           const { code, data } = await sheep.$api.order.cancel(orderId);
@@ -374,8 +374,8 @@
   // 删除订单
   function onDelete(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要删除订单吗?',
+      title: $t('order.list.tips'),
+      content: $t('order.list.tipsDeleteOrder'),
       success: async function (res) {
         if (res.confirm) {
           const { code, data } = await sheep.$api.order.delete(orderId);
@@ -391,8 +391,8 @@
   // 申请退款
   async function onRefund(orderId) {
     uni.showModal({
-      title: '提示',
-      content: '确定要申请退款吗?',
+      title: $t('order.list.tips'),
+      content: $t('order.list.tipsApplyRefund'),
       success: async function (res) {
         if (res.confirm) {
           // #ifdef MP

+ 16 - 16
pages/pay/components/account-info-modal.vue

@@ -3,13 +3,13 @@
     <view class="ss-modal-box bg-white ss-flex-col">
       <view class="modal-header ss-flex-col ss-col-left">
         <text v-if="props.modelValue.type === 'bank'" class="modal-title ss-m-b-20">
-          绑定银行卡
+          {{$t('pay.account.info.bindBankCard')}}
         </text>
         <text v-if="props.modelValue.type === 'wechat'" class="modal-title ss-m-b-20">
-          绑定微信
+          {{$t('pay.account.info.bindWxchat')}}
         </text>
         <text v-if="props.modelValue.type === 'alipay'" class="modal-title ss-m-b-20">
-          绑定支付宝
+          {{$t('pay.account.info.bindAlipay')}}
         </text>
       </view>
       <view class="modal-content ss-flex-1 ss-p-b-100">
@@ -24,25 +24,25 @@
             border
             :labelStyle="{ fontWeight: 'bold' }"
           >
-            <uni-forms-item name="account_name" label="持卡人">
+            <uni-forms-item name="account_name" :label="$t('pay.account.info.holder')">
               <uni-easyinput
                 :inputBorder="false"
-                placeholder="请输入持卡人"
+                :placeholder="$t('pay.account.info.enterHolder')"
                 v-model="state.bank.model.account_name"
               />
             </uni-forms-item>
-            <uni-forms-item name="account_header" label="开户行">
+            <uni-forms-item name="account_header" :label="$t('pay.account.info.bankName')">
               <uni-easyinput
                 :inputBorder="false"
-                placeholder="请输入开户行"
+                :placeholder="$t('pay.account.info.enterBankName')"
                 v-model="state.bank.model.account_header"
               />
             </uni-forms-item>
-            <uni-forms-item name="account_no" label="银行卡号">
+            <uni-forms-item name="account_no" :label="$t('pay.account.info.bankCard')">
               <uni-easyinput
                 type="number"
                 :inputBorder="false"
-                placeholder="请输入银行卡号"
+                :placeholder="$t('pay.account.info.enterBankCard')"
                 v-model="state.bank.model.account_no"
               />
             </uni-forms-item>
@@ -60,10 +60,10 @@
             border
             :labelStyle="{ fontWeight: 'bold' }"
           >
-            <uni-forms-item name="account_name" label="真实姓名">
+            <uni-forms-item name="account_name" :label="$t('pay.account.info.realname')">
               <uni-easyinput
                 :inputBorder="false"
-                placeholder="请输入您的真实姓名"
+                :placeholder="$t('pay.account.info.enterRealname')"
                 v-model="state.wechat.model.account_name"
               />
             </uni-forms-item>
@@ -81,17 +81,17 @@
             border
             :labelStyle="{ fontWeight: 'bold' }"
           >
-            <uni-forms-item name="account_name" label="真实姓名">
+            <uni-forms-item name="account_name" :label="$t('pay.account.info.realname')">
               <uni-easyinput
                 :inputBorder="false"
-                placeholder="请输入您的真实姓名"
+                placeholder="$t('pay.account.info.enterRealname')"
                 v-model="state.alipay.model.account_name"
               />
             </uni-forms-item>
-            <uni-forms-item name="account_no" label="支付宝">
+            <uni-forms-item name="account_no" :label="$t('pay.account.info.alipay')">
               <uni-easyinput
                 :inputBorder="false"
-                placeholder="请输入支付宝 邮箱/手机号"
+                :placeholder="$t('pay.account.info.enterAlipay')"
                 v-model="state.alipay.model.account_no"
               />
             </uni-forms-item>
@@ -99,7 +99,7 @@
         </block>
       </view>
       <view class="modal-footer ss-flex ss-row-center ss-col-center">
-        <button class="ss-reset-button save-btn" @tap="onSave">保存</button>
+        <button class="ss-reset-button save-btn" @tap="onSave">{{$t('pay.account.info.save')}}</button>
       </view>
     </view>
   </su-popup>

+ 6 - 6
pages/pay/components/account-type-select.vue

@@ -2,7 +2,7 @@
   <su-popup :show="show" class="ss-checkout-counter-wrap" @close="hideModal">
     <view class="ss-modal-box bg-white ss-flex-col">
       <view class="modal-header ss-flex-col ss-col-left">
-        <text class="modal-title ss-m-b-20">选择提现方式</text>
+        <text class="modal-title ss-m-b-20">{{$t('pay.account.type.withdraw')}}</text>
       </view>
       <view class="modal-content ss-flex-1 ss-p-b-100">
         <radio-group @change="onChange">
@@ -26,7 +26,7 @@
         </radio-group>
       </view>
       <view class="modal-footer ss-flex ss-row-center ss-col-center">
-        <button class="ss-reset-button save-btn" @tap="onConfirm">确定</button>
+        <button class="ss-reset-button save-btn" @tap="onConfirm">{{$t('pay.account.type.confirm')}}</button>
       </view>
     </view>
   </su-popup>
@@ -57,17 +57,17 @@
   const typeList = [
     {
       icon: '/assets/addons/shopro/uniapp/pay/wechat.png',
-      title: '微信零钱',
+      title: $t('pay.account.type.wxbalance'),
       value: 'wechat',
     },
     {
       icon: '/assets/addons/shopro/uniapp/pay/alipay.png',
-      title: '支付宝账户',
+      title: $t('pay.account.type.alipay'),
       value: 'alipay',
     },
     {
       icon: '/assets/addons/shopro/uniapp/pay/bank.png',
-      title: '银行卡转账',
+      title: $t('pay.account.type.bank'),
       value: 'bank',
     },
   ];
@@ -102,7 +102,7 @@
 
   const onConfirm = async () => {
     if (state.currentValue === '') {
-      sheep.$helper.toast('请选择提现方式');
+      sheep.$helper.toast($t('pay.account.type.withdraw'));
       return;
     }
     await getWalletAccountInfo();

+ 19 - 19
pages/pay/index.vue

@@ -1,6 +1,6 @@
 <!-- 收银台 -->
 <template>
-  <s-layout title="收银台">
+  <s-layout :title="$t('pay.index.title')">
     <view class="bg-white ss-modal-box ss-flex-col">
       <view class="modal-header ss-flex-col ss-col-center ss-row-center">
         <view class="money-box ss-m-b-20">
@@ -11,7 +11,7 @@
         </view>
       </view>
       <view class="modal-content ss-flex-1">
-        <view class="pay-title ss-p-l-30 ss-m-y-30">选择支付方式</view>
+        <view class="pay-title ss-p-l-30 ss-m-y-30">{{$t('pay.index.pay_way')}}</view>
         <radio-group @change="onTapPay">
           <label class="pay-type-item" v-for="item in state.payMethods" :key="item.title">
             <view
@@ -36,13 +36,13 @@
               </view>
               <view class="check-box ss-flex ss-col-center ss-p-l-10">
                 <view class="userInfo-money ss-m-r-10" v-if="item.value == 'money'">
-                  余额: {{ userInfo.money }}元
+                  {{$t('pay.index.balance')}}: {{ userInfo.money }}{{$t('pay.index.cny')}}
                 </view>
                 <view
                   class="userInfo-money ss-m-r-10"
                   v-if="item.value == 'offline' && item.disabled"
                 >
-                  部分商品不支持
+                  {{$t('pay.index.notSupport')}}
                 </view>
                 <radio
                   :value="item.value"
@@ -59,10 +59,10 @@
       <!-- 工具 -->
       <view class="modal-footer ss-flex ss-row-center ss-col-center ss-m-t-80 ss-m-b-40">
         <button v-if="state.payStatus === 0" class="ss-reset-button past-due-btn">
-          检测支付环境中
+          {{$t('pay.index.checkEnv')}}
         </button>
         <button v-else-if="state.payStatus === -1" class="ss-reset-button past-due-btn" disabled>
-          支付已过期
+          {{$t('pay.index.expired')}}
         </button>
         <button
           v-else
@@ -71,7 +71,7 @@
           :disabled="state.payStatus !== 1"
           :class="{ 'disabled-btn': state.payStatus !== 1 }"
         >
-          立即支付
+          {{$t('pay.index.payNow')}}
         </button>
       </view>
     </view>
@@ -102,19 +102,19 @@
   const payMethods = [
     {
       icon: '/assets/addons/shopro/uniapp/pay/wechat.png',
-      title: '微信支付',
+      title: $t('pay.index.wxpay'),
       value: 'wechat',
       disabled: false,
     },
     {
       icon: '/assets/addons/shopro/uniapp/pay/alipay.png',
-      title: '支付宝支付',
+      title: $t('pay.index.alipay'),
       value: 'alipay',
       disabled: false,
     },
     {
       icon: '/assets/addons/shopro/uniapp/pay/wallet.png',
-      title: '余额支付',
+      title: $t('pay.index.balancepay'),
       value: 'money',
       disabled: false,
     },
@@ -126,7 +126,7 @@
     },
     {
       icon: '/assets/addons/shopro/uniapp/pay/cod.png',
-      title: '货到付款',
+      title: $t('pay.index.payCash'),
       value: 'offline',
       disabled: false,
     },
@@ -134,13 +134,13 @@
 
   const onPay = () => {
     if (state.payment === '') {
-      sheep.$helper.toast('请选择支付方式');
+      sheep.$helper.toast($t('pay.index.choosePayway'));
       return;
     }
     if (state.payment === 'money') {
       uni.showModal({
-        title: '提示',
-        content: '确定要支付吗?',
+        title: $t('pay.index.tips'),
+        content: $t('pay.index.tipsConfirmPay'),
         success: function (res) {
           if (res.confirm) {
             sheep.$platform.pay(state.payment, state.orderType, state.orderInfo.order_sn);
@@ -149,8 +149,8 @@
       });
     } else if (state.payment === 'offline') {
       uni.showModal({
-        title: '提示',
-        content: '确定要下单吗?',
+        title: $t('pay.index.tips'),
+        content: $t('pay.index.tipsSubmitOrder'),
         success: function (res) {
           if (res.confirm) {
             sheep.$platform.pay(state.payment, state.orderType, state.orderInfo.order_sn);
@@ -164,7 +164,7 @@
 
   const payDescText = computed(() => {
     if (state.payStatus === 2) {
-      return '该订单已支付';
+      return $t('pay.index.paid');
     }
     if (state.payStatus === 1 && state.orderInfo.ext.expired_time !== 0) {
       const time = useDurationTime(state.orderInfo.ext.expired_time);
@@ -172,10 +172,10 @@
         state.payStatus = -1;
         return '';
       }
-      return `剩余支付时间 ${time.h}:${time.m}:${time.s} `;
+      return $t('pay.index.restTime')+` ${time.h}:${time.m}:${time.s} `;
     }
     if (state.payStatus === -2) {
-      return '未查询到支付单信息';
+      return $t('pay.index.noPayData');
     }
 
     return '';

+ 9 - 9
pages/pay/recharge-log.vue

@@ -1,10 +1,10 @@
 <template>
-  <s-layout class="widthdraw-log-wrap" title="充值记录">
+  <s-layout class="widthdraw-log-wrap" :title="$t('pay.rechargelog.title')">
     <!-- 记录卡片 -->
     <view class="wallet-log-box ss-p-b-30">
       <view class="log-list" v-for="item in state.pagination.data" :key="item">
         <view class="head ss-flex ss-col-center ss-row-between">
-          <view class="title">充值金额</view>
+          <view class="title">{{$t('pay.recharge.amount')}}</view>
           <view
             class="num"
             :class="
@@ -14,11 +14,11 @@
                 ? 'success-color'
                 : 'warning-color'
             "
-            >{{ item.pay_fee }}</view
+            >{{ item.pay_fee }}{{$t('pay.recharge.cny')}}</view
           >
         </view>
         <view class="status-box item ss-flex ss-col-center ss-row-between">
-          <view class="item-title">支付状态</view>
+          <view class="item-title">{{$t('pay.rechargelog.payStatus')}}</view>
           <view
             class="status-text"
             :class="
@@ -32,15 +32,15 @@
           >
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">充值渠道</text>
+          <text class="item-title">{{$t('pay.rechargelog.payWay')}}</text>
           <view class="time ss-ellipsis-1">{{ item.platform_text }}</view>
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">充值单号</text>
+          <text class="item-title">{{$t('pay.rechargelog.orderNo')}}</text>
           <view class="time"> {{ item.order_sn }} </view>
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">充值时间</text>
+          <text class="item-title">{{$t('pay.rechargelog.payTime')}}</text>
           <view class="time"> {{ item.paid_time }}</view>
         </view>
       </view>
@@ -48,13 +48,13 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/comment-empty.png"
-      text="暂无充值记录"
+      :text="$t('pay.rechargelog.noData')"
     ></s-empty>
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 8 - 8
pages/pay/recharge.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="充值" class="withdraw-wrap" navbar="inner">
+  <s-layout :title="$t('pay.recharge.title')" class="withdraw-wrap" navbar="inner">
     <view class="wallet-num-box ss-flex ss-col-center ss-row-between" :style="[
       {
         marginTop: '-' + Number(statusBarHeight + 88) + 'rpx',
@@ -7,17 +7,17 @@
       },
     ]">
       <view class="">
-        <view class="num-title">当前余额(元)</view>
+        <view class="num-title">{{$t('pay.recharge.balance')}}</view>
         <view class="wallet-num">{{ userInfo.money }}</view>
       </view>
-      <button class="ss-reset-button log-btn" @tap="sheep.$router.go('/pages/pay/recharge-log')">充值记录</button>
+      <button class="ss-reset-button log-btn" @tap="sheep.$router.go('/pages/pay/recharge-log')">{{$t('pay.recharge.log')}}</button>
     </view>
     <view class="recharge-box">
       <view class="recharge-card-box" v-if="state.data.status">
-        <view class="input-label ss-m-b-50">充值金额</view>
+        <view class="input-label ss-m-b-50">{{$t('pay.recharge.amount')}}</view>
         <view class="input-box ss-flex border-bottom ss-p-b-20" v-if="state.data.custom_status">
           <view class="unit">¥</view>
-          <uni-easyinput v-model="state.recharge_money" type="digit" placeholder="请输入充值金额" :inputBorder="false">
+          <uni-easyinput v-model="state.recharge_money" type="digit" :placeholder="$t('pay.recharge.enterAmount')" :inputBorder="false">
           </uni-easyinput>
         </view>
         <view class="face-value-box ss-flex ss-flex-wrap ss-m-y-40">
@@ -25,14 +25,14 @@
             :class="[{ 'btn-active': state.recharge_money == parseFloat(item.money) }]" @tap="onCard(item.money)">
             <text class="face-value-title">{{ item.money }}</text>
             <view v-if="item.gift" class="face-value-tag">
-              送{{ item.gift }}{{ state.data.gift_type == 'money' ? '元' : '积分' }}</view>
+              {{$t('pay.recharge.give')}}{{ item.gift }}{{ state.data.gift_type == 'money' ? $t('pay.recharge.cny') : $t('pay.recharge.point') }}</view>
           </button>
         </view>
         <button class="ss-reset-button save-btn ui-BG-Main-Gradient ss-m-t-60 ui-Shadow-Main" @tap="onConfirm">
-          确认充值
+          {{$t('pay.recharge.confirmRecharge')}}
         </button>
       </view>
-      <view class="" v-if="state.data.status === 0"> 关闭充值 </view>
+      <view class="" v-if="state.data.status === 0"> {{$t('pay.recharge.closeRecharge')}} </view>
     </view>
   </s-layout>
 </template>

+ 11 - 11
pages/pay/result.vue

@@ -1,6 +1,6 @@
 <!-- 支付结果页面 -->
 <template>
-  <s-layout title="支付结果" :bgStyle="{ color: '#FFF' }">
+  <s-layout :title="$t('pay.payresult.title')" :bgStyle="{ color: '#FFF' }">
     <view class="pay-result-box ss-flex-col ss-row-center ss-col-center">
       <view class="pay-waiting ss-m-b-30" v-if="payResult === 'waiting'"> </view>
       <image
@@ -14,11 +14,11 @@
         :src="sheep.$url.static('/assets/addons/shopro/uniapp/order/order_paty_fail.gif')"
       ></image>
       <view class="tip-text ss-m-b-30" v-if="payResult == 'success'">{{
-        state.orderInfo.pay_mode === 'offline' ? '下单成功' : '支付成功'
+        state.orderInfo.pay_mode === 'offline' ? $t('pay.payresult.orderSuccess') : $t('pay.payresult.paySuccess')
       }}</view>
-      <view class="tip-text ss-m-b-30" v-if="payResult == 'failed'">支付失败</view>
-      <view class="tip-text ss-m-b-30" v-if="payResult == 'closed'">该订单已关闭</view>
-      <view class="tip-text ss-m-b-30" v-if="payResult == 'waiting'">检测支付结果...</view>
+      <view class="tip-text ss-m-b-30" v-if="payResult == 'failed'">{{$t('pay.payresult.payFailed')}}</view>
+      <view class="tip-text ss-m-b-30" v-if="payResult == 'closed'">{{$t('pay.payresult.orderClosed')}}</view>
+      <view class="tip-text ss-m-b-30" v-if="payResult == 'waiting'">{{$t('pay.payresult.checkPay')}}</view>
       <view class="pay-total-num ss-flex" v-if="payResult === 'success'">
         <view v-if="Number(state.orderInfo.pay_fee) > 0">¥{{ state.orderInfo.pay_fee }}</view>
         <view v-if="state.orderInfo.score_amount && Number(state.orderInfo.pay_fee) > 0">+</view>
@@ -32,21 +32,21 @@
       </view>
       <view class="btn-box ss-flex ss-row-center ss-m-t-50">
         <button class="back-btn ss-reset-button" @tap="sheep.$router.go('/pages/index/index')">
-          返回首页
+          {{$t('pay.payresult.backHome')}}
         </button>
         <button
           class="check-btn ss-reset-button"
           v-if="payResult === 'failed'"
           @tap="sheep.$router.redirect('/pages/pay/index', { orderSN: state.orderId })"
         >
-          重新支付
+          {{$t('pay.payresult.repay')}}
         </button>
         <button
           class="check-btn ss-reset-button"
           v-if="payResult === 'success'"
           @tap="onOrder"
         >
-          查看订单
+          {{$t('pay.payresult.viewOrder')}}
         </button>
         <button
           class="check-btn ss-reset-button"
@@ -56,7 +56,7 @@
           "
           @tap="sheep.$router.redirect('/pages/activity/groupon/order')"
         >
-          我的拼团
+          {{$t('pay.payresult.myGroup')}}
         </button>
       </view>
       <!-- #ifdef MP -->
@@ -65,8 +65,8 @@
           class="subscribe-img"
           :src="sheep.$url.static('/assets/addons/shopro/uniapp/order/cargo.png')"
         ></image>
-        <view class="subscribe-title ss-m-r-48 ss-m-l-16">获取实时发货信息与订单状态</view>
-        <view class="subscribe-start" @tap="subscribeMessage">立即订阅</view>
+        <view class="subscribe-title ss-m-r-48 ss-m-l-16">{{$t('pay.payresult.getInfo')}}</view>
+        <view class="subscribe-start" @tap="subscribeMessage">{{$t('pay.payresult.subscribe')}}</view>
       </view>
       <!-- #endif -->
     </view>

+ 14 - 14
pages/pay/withdraw-log.vue

@@ -1,15 +1,15 @@
 <template>
-  <s-layout class="widthdraw-log-wrap" title="提现记录">
+  <s-layout class="widthdraw-log-wrap" :title="$t('pay.withdrawlog.title')">
     <!-- 记录卡片 -->
     <view class="wallet-log-box ss-p-b-30">
       <view class="log-list" v-for="item in state.pagination.data" :key="item">
         <view class="head ss-flex ss-col-center ss-row-between">
           <view class="title">{{
             item.withdraw_type === 'bank'
-              ? '提现至银行卡'
+              ? $t('pay.withdrawlog.tobank')
               : item.withdraw_type === 'alipay'
-              ? '提现至支付宝'
-              : '提现至微信'
+              ? $t('pay.withdrawlog.toalipay')
+              : $t('pay.withdrawlog.toweixin')
           }}</view>
           <view
             class="num"
@@ -24,7 +24,7 @@
           >
         </view>
         <view class="status-box item ss-flex ss-col-center ss-row-between">
-          <view class="item-title">申请状态</view>
+          <view class="item-title">{{$t('pay.withdrawlog.applyStatus')}}</view>
           <view
             class="status-text"
             :class="
@@ -38,25 +38,25 @@
           >
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">账户信息</text>
+          <text class="item-title">{{$t('pay.withdrawlog.accountInfo')}}</text>
           <view class="time ss-ellipsis-1" v-if="item.withdraw_type === 'bank'"
             >{{ item.withdraw_info_hidden.开户行 }}[{{ item.withdraw_info_hidden.银行卡号 }}]</view
           >
           <view class="time ss-ellipsis-1" v-if="item.withdraw_type === 'alipay'">
-            支付宝[{{ item.withdraw_info_hidden.支付宝账户 }}]
+            {{$t('pay.withdrawlog.alipay')}}[{{ item.withdraw_info_hidden.支付宝账户 }}]
           </view>
-          <view class="time ss-ellipsis-1" v-if="item.withdraw_type === 'wechat'">微信零钱</view>
+          <view class="time ss-ellipsis-1" v-if="item.withdraw_type === 'wechat'">{{$t('pay.withdrawlog.wxbalance')}}</view>
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">提现单号</text>
+          <text class="item-title">{{$t('pay.withdrawlog.orderNo')}}</text>
           <view class="time"> {{ item.withdraw_sn }} </view>
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">手续费</text>
-          <view class="time">{{ item.charge_fee }}元</view>
+          <text class="item-title">{{$t('pay.withdrawlog.fee')}}</text>
+          <view class="time">{{ item.charge_fee }}元{{$t('pay.withdrawlog.cny')}}</view>
         </view>
         <view class="time-box item ss-flex ss-col-center ss-row-between">
-          <text class="item-title">申请时间</text>
+          <text class="item-title">{{$t('pay.withdrawlog.applyTime')}}</text>
           <view class="time"> {{ item.createtime }}</view>
         </view>
       </view>
@@ -64,13 +64,13 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/comment-empty.png"
-      text="暂无提现记录"
+      :text="$t('pay.withdrawlog.noData')"
     ></s-empty>
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: '$t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />

+ 29 - 29
pages/pay/withdraw.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="申请提现" class="withdraw-wrap" navbar="inner">
+  <s-layout :title="$t('pay.withdraw.title')" class="withdraw-wrap" navbar="inner">
     <!-- <view class="page-bg"></view> -->
     <view
       class="wallet-num-box ss-flex ss-col-center ss-row-between"
@@ -11,16 +11,16 @@
       ]"
     >
       <view class="">
-        <view class="num-title">可提现金额(元)</view>
+        <view class="num-title">{{$t('pay.withdraw.balance')}}</view>
         <view class="wallet-num">{{ userInfo.commission || '0.00' }}</view>
       </view>
       <button class="ss-reset-button log-btn" @tap="sheep.$router.go('/pages/pay/withdraw-log')"
-        >提现记录</button
+        >{{$t('pay.withdraw.log')]}}</button
       >
     </view>
     <!-- 提现输入卡片-->
     <view class="draw-card">
-      <view class="card-title">提现金额</view>
+      <view class="card-title">{{$t('pay.withdraw.amount')}}</view>
       <view class="input-box ss-flex ss-col-center border-bottom">
         <view class="unit">¥</view>
         <uni-easyinput
@@ -28,16 +28,16 @@
           class="ss-flex-1 ss-p-l-10"
           v-model="state.amount"
           type="number"
-          placeholder="请输入提现金额"
+          :placeholder="$t('pay.withdraw.enterAmount')"
         />
       </view>
       <view class="bank-box ss-flex ss-col-center ss-row-between ss-m-b-30">
-        <view class="name">提现至</view>
+        <view class="name">{{$t('pay.withdraw.getto')}}</view>
         <view class="bank-list ss-flex ss-col-center" @tap="onAccountSelect(true)">
-          <view v-if="!state.accountInfo.type" class="empty-text">请选择提现方式</view>
-          <view v-if="state.accountInfo.type === 'wechat'" class="empty-text">微信零钱</view>
-          <view v-if="state.accountInfo.type === 'alipay'" class="empty-text">支付宝账户</view>
-          <view v-if="state.accountInfo.type === 'bank'" class="empty-text">银行卡转账</view>
+          <view v-if="!state.accountInfo.type" class="empty-text">{{$t('pay.withdraw.type')}}</view>
+          <view v-if="state.accountInfo.type === 'wechat'" class="empty-text">{{$t('pay.withdraw.weixin')}}</view>
+          <view v-if="state.accountInfo.type === 'alipay'" class="empty-text">{{$t('pay.withdraw.alipay')}}</view>
+          <view v-if="state.accountInfo.type === 'bank'" class="empty-text">{{$t('pay.withdraw.bank')}}</view>
           <text class="cicon-forward"></text>
         </view>
       </view>
@@ -45,19 +45,19 @@
         <view class="placeholder-text" v-if="state.accountInfo.account_name">
           {{ state.accountInfo.account_header }}|{{ state.accountInfo.account_name }}
         </view>
-        <view class="placeholder-text" v-else>暂无提现账户</view>
+        <view class="placeholder-text" v-else>{{$t('pay.withdraw.noAccount')}}</view>
         <button class="add-btn ss-reset-button" @tap="onAccountEdit(true)">
-          {{ state.accountInfo.account_name ? '修改' : '添加' }}
+          {{ state.accountInfo.account_name ? $t('pay.withdraw.edit') : $t('pay.withdraw.add') }}
         </button>
       </view>
       <button class="ss-reset-button save-btn ui-BG-Main-Gradient ui-Shadow-Main" @tap="onConfirm">
-        确认提现
+        {{$t('pay.withdraw.confirm')}}
       </button>
     </view>
 
     <!-- 提现说明 -->
     <view class="draw-notice">
-      <view class="title ss-m-b-30">提现说明</view>
+      <view class="title ss-m-b-30">{{$t('pay.withdraw.intro')}}</view>
       <view class="draw-list" v-for="(rule, index) in state.rulesList" :key="index">
         {{ index + 1 }}.{{ rule }}
       </view>
@@ -95,26 +95,26 @@
     let list = [];
     let str1 = '';
     if (rules.min_amount > 0) {
-      str1 += `最少 ${rules.min_amount}元; `;
+      str1 += $t('pay.withdraw.min')+` ${rules.min_amount} `+$t('pay.withdraw.cny');
     }
     if (rules.max_amount > 0) {
-      str1 += `最多 ${rules.max_amount}元;`;
+      str1 += $t('pay.withdraw.max')+` ${rules.max_amount}`+$t('pay.withdraw.cny');
     }
     if (str1 !== '') {
-      list.push('单次提现金额 ' + str1);
+      list.push($t('pay.withdraw.onetime') + str1);
     }
 
     if (rules.max_num > 0) {
-      list.push(`每${rules.num_unit === 'day' ? '天' : '月'}最多可提现 ${rules.max_num} 次;`);
+      list.push($t('pay.withdraw.per')+ rules.num_unit === 'day' ? $t('pay.withdraw.day') : $t('pay.withdraw.month')+$t('pay.withdraw.maxWIthdraw')+rules.max_num+$t('pay.withdraw.times'));
     }
 
     if (rules.charge_rate_format > 0) {
-      list.push(`每次收取提现手续费 ${rules.charge_rate_format}%;`);
+      list.push($t('pay.withdraw.msg1')+` ${rules.charge_rate_format}%;`);
     }
     list.push(
-      `提现申请后将${rules.auto_arrival ? '自动' : '审核后'}到账, 到账结果请查收对应渠道服务通知;`,
+      $t('pay.withdraw.msg2')+ rules.auto_arrival ? $t('pay.withdraw.msg3') : $t('pay.withdraw.msg4') +$t('pay.withdraw.msg5')
     );
-    list.push('如有疑问请及时联系客服.');
+    list.push($t('pay.withdraw.msg6'));
 
     return list;
   }
@@ -154,22 +154,22 @@
     };
 
     if (payload.money > userInfo.commission || payload.money <= 0) {
-      sheep.$helper.toast('请输入正确的提现金额');
+      sheep.$helper.toast($t('pay.withdraw.msg7'));
       return;
     }
 
     if (!payload.type) {
-      sheep.$helper.toast('请选择提现方式');
+      sheep.$helper.toast($t('pay.withdraw.msg8'));
       return;
     }
 
     if (!payload.account_name || !payload.account_header || !payload.account_no) {
-      sheep.$helper.toast('请完善您的账户信息');
+      sheep.$helper.toast($t('pay.withdraw.msg9'));
       return;
     }
 
     if (sheep.$platform.name === 'H5' && payload.type === 'wechat') {
-      sheep.$helper.toast('请使用微信浏览器操作');
+      sheep.$helper.toast($t('pay.withdraw.msg10'));
       return;
     }
 
@@ -180,10 +180,10 @@
     if (code === 1) {
       userStore.getInfo();
       uni.showModal({
-        title: '操作成功',
-        content: '您的提现申请已成功提交',
-        cancelText: '继续提现',
-        confirmText: '查看记录',
+        title: $t('pay.withdraw.msg11'),
+        content: $t('pay.withdraw.msg12'),
+        cancelText: $t('pay.withdraw.msg13'),
+        confirmText: $t('pay.withdraw.msg14'),
         success: function (res) {
           res.confirm && sheep.$router.go('/pages/pay/withdraw-log');
         },

+ 6 - 6
pages/public/error.vue

@@ -3,27 +3,27 @@
     <s-empty
       v-if="errCode === 'NetworkError'"
       icon="/static/internet-empty.png"
-      text="网络连接失败"
+      :text="$t('public.networdError')"
       showAction
-      actionText="重新连接"
+      :actionText="$t('public.reconnect')"
       @clickAction="onReconnect"
       buttonColor="#ff3000"
     ></s-empty>
     <s-empty
       v-else-if="errCode === 'TemplateError'"
       icon="/static/internet-empty.png"
-      text="未找到模板"
+      :text="$t('public.templateNotExist')"
       showAction
-      actionText="重新加载"
+      :actionText="$t('public.reload')"
       @clickAction="onReconnect"
       buttonColor="#ff3000"
     ></s-empty>
     <s-empty
       v-else-if="errCode !== ''"
       icon="/static/internet-empty.png"
-      :text="errMsg"
+      :text="$t('public.loadFailed')"
       showAction
-      actionText="重新加载"
+      :actionText="$t('public.reload')"
       @clickAction="onReconnect"
       buttonColor="#ff3000"
     ></s-empty>

+ 2 - 2
pages/public/faq.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout class="set-wrap" title="常见问题" :bgStyle="{ color: '#FFF' }">
+  <s-layout class="set-wrap" :title="$t('public.faq.title')" :bgStyle="{ color: '#FFF' }">
     <uni-collapse>
       <uni-collapse-item v-for="(item, index) in state.list" :key="item">
         <template v-slot:title>
@@ -24,7 +24,7 @@
     </uni-collapse>
     <s-empty
       v-if="state.list.length === 0 && !state.loading"
-      text="暂无常见问题"
+      :text="$t('public.faq.noData')"
       icon="/static/collect-empty.png"
     />
   </s-layout>

+ 14 - 14
pages/public/feedback.vue

@@ -1,8 +1,8 @@
 <template>
-  <s-layout class="set-wrap" title="问题反馈">
+  <s-layout class="set-wrap" :title="$t('public.feedback.title')">
     <uni-forms ref="form" :modelValue="state.formData" border>
       <view class="bg-white type-box ss-p-x-20 ss-p-y-30">
-        <view class="title ss-m-b-44">请选择类型</view>
+        <view class="title ss-m-b-44">{{$t('public.feedback.type')}}</view>
         <view class="ss-m-l-12">
           <radio-group @change="radioChange">
             <label
@@ -17,14 +17,14 @@
         </view>
       </view>
       <view class="bg-white ss-p-x-20 ss-p-y-30 ss-m-t-20">
-        <view class="title ss-m-b-30"> 相关描述 </view>
+        <view class="title ss-m-b-30"> {{$t('public.feedback.desc')}} </view>
         <view class="textarea">
           <uni-easyinput
             :inputBorder="false"
             type="textarea"
             v-model="state.formData.content"
             placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-            placeholder="客官~请描述您遇到的问题,建议上传照片"
+            :placeholder="$t('public.feedback.enterDesc')"
             clearable
           ></uni-easyinput>
           <s-uploader
@@ -37,14 +37,14 @@
         </view>
       </view>
       <view class="bg-white ss-p-x-20 ss-p-y-30 ss-m-t-20">
-        <view class="title ss-m-b-30"> 联系方式 </view>
+        <view class="title ss-m-b-30"> {{$t('public.feedback.contact')}} </view>
         <view class="mobile-box">
           <uni-easyinput
             :inputBorder="false"
             type="number"
             v-model="state.formData.phone"
             paddingLeft="10"
-            placeholder="请输入您的联系电话"
+            :placeholder="$t('public.feedback.enterContact')"
           />
         </view>
       </view>
@@ -52,10 +52,10 @@
     <su-fixed bottom placeholder>
       <view class="ss-flex ss-row-between ss-p-x-30 ss-p-y-10">
         <button class="kefu-btn ss-reset-button" @tap="sheep.$router.go('/pages/chat/index')">
-          联系客服
+          {{$t('public.feedback.service')}}
         </button>
         <button class="submit-btn ss-reset-button ui-BG-Main ui-Shadow-Main" @tap="onSubmit">
-          提交
+          {{$t('public.feedback.submit')}}
         </button>
       </view>
     </su-fixed>
@@ -71,13 +71,13 @@
   const state = reactive({
     radioList: [
       {
-        type: '产品功能问题反馈',
+        type: $t('public.feedback.product'),
       },
       {
-        type: '建议及意见反馈',
+        type: $t('public.feedback.advice'),
       },
       {
-        type: '投诉客服其他问题',
+        type: $t('public.feedback.complaint'),
       },
     ],
     formData: {
@@ -92,15 +92,15 @@
 
   async function onSubmit() {
     if (!state.formData.type) {
-      sheep.$helper.toast('请选择类型');
+      sheep.$helper.toast($t('public.feedback.type'));
       return;
     }
     if (!state.formData.content) {
-      sheep.$helper.toast('请描述您遇到的问题');
+      sheep.$helper.toast($t('public.feedback.enterDesc'));
       return;
     }
     if (!state.formData.phone) {
-      sheep.$helper.toast('请输入您的联系方式');
+      sheep.$helper.toast($t('public.feedback.enterContact'));
       return;
     }
 

+ 12 - 12
pages/public/setting.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout class="set-wrap" title="系统设置" :bgStyle="{ color: '#fff' }">
+  <s-layout class="set-wrap" :title="$t('public.setting.title')" :bgStyle="{ color: '#fff' }">
     <view class="header-box ss-flex-col ss-row-center ss-col-center">
       <image
         class="logo-img ss-m-b-46"
@@ -12,7 +12,7 @@
     <view class="container-list">
       <uni-list :border="false">
         <uni-list-item
-          title="当前版本"
+          :title="$t('public.setting.version')"
           :rightText="appInfo.version"
           showArrow
           clickable
@@ -21,14 +21,14 @@
           @tap="onCheckUpdate"
         ></uni-list-item>
         <uni-list-item
-          title="本地缓存"
+          :title="$t('public.setting.session')"
           :rightText="storageSize"
           showArrow
           :border="false"
           class="list-border"
         ></uni-list-item>
         <uni-list-item
-          title="意见反馈"
+          :title="$t('public.setting.feedback')"
           showArrow
           clickable
           :border="false"
@@ -36,7 +36,7 @@
           @tap="sheep.$router.go('/pages/public/feedback')"
         ></uni-list-item>
         <uni-list-item
-          title="关于我们"
+          :title="$t('public.setting.about')"
           showArrow
           clickable
           :border="false"
@@ -51,7 +51,7 @@
         <!-- 为了过审 只有iOS-App有注销账号功能 -->
         <uni-list-item
           v-if="isLogin && sheep.$platform.os === 'ios' && sheep.$platform.name === 'App'"
-          title="注销账号"
+          :title="$t('public.setting.deleteAccount')"
           rightText=""
           showArrow
           clickable
@@ -76,7 +76,7 @@
           >
             《{{ appInfo.user_protocol.title }}》
           </view>
-          <view class="agreement-text"></view>
+          <view class="agreement-text">{{$t('public.setting.and')}}</view>
           <view
             class="tcp-text"
             @tap="
@@ -100,7 +100,7 @@
           @tap="onLogout"
           v-if="isLogin"
         >
-          退出登录
+          {{$t('public.setting.logout')}}
         </button>
       </view>
     </su-fixed>
@@ -126,8 +126,8 @@
   }
   function onLogoff() {
     uni.showModal({
-      title: '提示',
-      content: '确认注销账号?',
+      title: $t('public.setting.tips'),
+      content: $t('public.setting.tipsDeleteAccount'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.user.logoff();
@@ -142,8 +142,8 @@
 
   function onLogout() {
     uni.showModal({
-      title: '提示',
-      content: '确认退出账号?',
+      title: $t('public.setting.tips'),
+      content: $t('public.setting.tipsLogout'),
       success: async function (res) {
         if (res.confirm) {
           const result = await sheep.$store('user').logout();

+ 14 - 14
pages/user/address/edit.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout :title="state.model.id ? '编辑地址' : '新增地址'">
+  <s-layout :title="state.model.id ? $t('user.address.edit') : $t('user.address.add')">
     <uni-forms
       ref="addressFormRef"
       v-model="state.model"
@@ -11,20 +11,20 @@
       :labelStyle="{ fontWeight: 'bold' }"
     >
       <view class="bg-white form-box ss-p-x-30">
-        <uni-forms-item name="consignee" label="收货人" class="form-item">
+        <uni-forms-item name="consignee" :label="收货人$t('user.address.receiver')" class="form-item">
           <uni-easyinput
             v-model="state.model.consignee"
-            placeholder="请填写收货人姓名"
+            :placeholder="$t('user.address.enterReceiver')"
             :inputBorder="false"
             placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
           />
         </uni-forms-item>
 
-        <uni-forms-item name="mobile" label="手机号" class="form-item">
+        <uni-forms-item name="mobile" :label="$t('user.address.mobile')" class="form-item">
           <uni-easyinput
             v-model="state.model.mobile"
             type="number"
-            placeholder="请输入手机号"
+            :placeholder="$t('user.address.enterMobile')"
             :inputBorder="false"
             placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
           >
@@ -32,7 +32,7 @@
         </uni-forms-item>
         <uni-forms-item
           name="region"
-          label="省市区"
+          :label="省市区$t('user.address.province')"
           @tap="state.showRegion = true"
           class="form-item"
         >
@@ -42,7 +42,7 @@
             :inputBorder="false"
             :styles="{ disableColor: '#fff', color: '#333' }"
             placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-            placeholder="请选择省市区"
+            :placeholder="$t('user.address.enterProvince')"
           >
             <template v-slot:right>
               <uni-icons type="right"></uni-icons>
@@ -51,7 +51,7 @@
         </uni-forms-item>
         <uni-forms-item
           name="address"
-          label="详细地址"
+          :label="详细地址$t('user.address.detail')"
           :formItemStyle="{ alignItems: 'flex-start' }"
           :labelStyle="{ lineHeight: '5em' }"
           class="textarea-item"
@@ -61,24 +61,24 @@
             type="textarea"
             v-model="state.model.address"
             placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-            placeholder="请输入详细地址"
+            :placeholder="$t('user.address.enterDetail')"
             clearable
           ></uni-easyinput>
         </uni-forms-item>
       </view>
 
       <view class="ss-m-y-20 bg-white ss-p-x-30 ss-flex ss-row-between ss-col-center default-box">
-        <view class="default-box-title"> 设为默认地址 </view>
+        <view class="default-box-title"> {{$t('user.address.setDefault')}} </view>
         <su-switch style="transform: scale(0.8)" v-model="state.model.is_default"></su-switch>
       </view>
     </uni-forms>
     <su-fixed bottom :opacity="false" bg="" placeholder :noFixed="false" :index="10">
       <view class="footer-box ss-flex-col ss-row-between ss-p-20">
         <view class="ss-m-b-20"
-          ><button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">保存</button></view
+          ><button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">{{$t('user.address.save')}}</button></view
         >
         <button v-if="state.model.id" class="ss-reset-button cancel-btn" @tap="onDelete">
-          删除
+          {{$t('user.address.delete')}}
         </button>
       </view>
     </su-fixed>
@@ -164,8 +164,8 @@
 
   const onDelete = () => {
     uni.showModal({
-      title: '提示',
-      content: '确认删除此收货地址吗?',
+      title: $t('user.address.tips'),
+      content: $t('user.address.tipsDelete'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.user.address.delete(state.model.id);

+ 4 - 4
pages/user/address/list.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="收货地址" :bgStyle="{ color: '#FFF' }">
+  <s-layout :title="$t('user.address.list')" :bgStyle="{ color: '#FFF' }">
     <view v-if="state.list.length">
       <s-address-item
         hasBorderBottom
@@ -20,19 +20,19 @@
           class="border ss-reset-button sync-wxaddress ss-m-20 ss-flex ss-row-center ss-col-center"
         >
           <text class="cicon-weixin ss-p-r-10" style="color: #09bb07; font-size: 40rpx"></text>
-          导入微信地址
+          {{$t('user.address.importWxAddress')}}
         </button>
         <button
           class="add-btn ss-reset-button ui-Shadow-Main"
           @tap="sheep.$router.go('/pages/user/address/edit')"
         >
-          新增收货地址
+          {{$t('user.address.addAddress')}}
         </button>
       </view>
     </su-fixed>
     <s-empty
       v-if="state.list.length === 0 && !state.loading"
-      text="暂无收货地址"
+      :text="$t('user.address.noData')"
       icon="/static/data-empty.png"
     />
   </s-layout>

+ 9 - 9
pages/user/goods-collect.vue

@@ -1,12 +1,12 @@
 <template>
-  <s-layout title="商品收藏">
+  <s-layout :title="$t('user.goods.collect.title')">
     <view class="cart-box ss-flex ss-flex-col ss-row-between">
       <!-- 头部 -->
       <view class="cart-header ss-flex ss-col-center ss-row-between ss-p-x-30">
         <view class="header-left ss-flex ss-col-center ss-font-26">
-          
+          {{$t('user.goods.collect.total')}}
           <text class="goods-number ui-TC-Main ss-flex">{{ state.pagination.total }}</text>
-          件商品
+          {{$t('user.goods.collect.unitgoods')}}
         </view>
         <view class="header-right">
           <button
@@ -14,13 +14,13 @@
             class="ss-reset-button"
             @tap="state.editMode = false"
           >
-            取消
+            {{$t('user.goods.collect.cancle')}}
           </button>
           <button
             v-if="!state.editMode && state.pagination.total"
             class="ss-reset-button ui-TC-Main"
             @tap="state.editMode = true"
-            >编辑</button
+            >{{$t('user.goods.collect.edit')}}</button
           >
         </view>
       </view>
@@ -72,14 +72,14 @@
                 style="transform: scale(0.7)"
                 @tap.stop="onSelectAll"
               />
-              <view> 全选 </view>
+              <view> {{$t('user.goods.collect.chooseAll')}} </view>
             </label>
           </view>
           <view class="footer-right">
             <button
               class="ss-reset-button ui-BG-Main-Gradient pay-btn ss-font-28 ui-Shadow-Main"
               @tap="onCancel"
-              >取消收藏</button
+              >{{$t('user.goods.collect.cancleCollect')}}</button
             >
           </view>
         </view>
@@ -89,11 +89,11 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
-    <s-empty v-if="state.pagination.total === 0" text="暂无收藏" icon="/static/collect-empty.png" />
+    <s-empty v-if="state.pagination.total === 0" :text="$t('user.goods.collect.noData')" icon="/static/collect-empty.png" />
   </s-layout>
 </template>
 

+ 9 - 9
pages/user/goods-log.vue

@@ -1,14 +1,14 @@
 <template>
-  <s-layout title="我的足迹" :bgStyle="{ color: '#f2f2f2' }">
+  <s-layout :title="$t('user.goods.log.title')" :bgStyle="{ color: '#f2f2f2' }">
     <view class="cart-box ss-flex ss-flex-col ss-row-between">
       <!-- 头部 -->
       <view class="cart-header ss-flex ss-col-center ss-row-between ss-p-x-30">
         <view class="header-left ss-flex ss-col-center ss-font-26">
-          
+          {{$t('user.goods.collect.total')}}
           <text class="goods-number ui-TC-Main ss-flex">
             {{ state.pagination.total }}
           </text>
-          件商品
+          {{$t('user.goods.collect.unitgoods')}}
         </view>
         <view class="header-right">
           <button
@@ -16,14 +16,14 @@
             class="ss-reset-button"
             @tap="state.editMode = false"
           >
-            取消
+            {{$t('user.goods.collect.cancle')}}
           </button>
           <button
             v-if="!state.editMode && state.pagination.total"
             class="ss-reset-button ui-TC-Main"
             @tap="state.editMode = true"
           >
-            编辑
+            {{$t('user.goods.collect.edit')}}
           </button>
         </view>
       </view>
@@ -75,7 +75,7 @@
                 style="transform: scale(0.7)"
                 @tap.stop="onSelectAll"
               />
-              <view>全选</view>
+              <view>{{$t('user.goods.collect.chooseAll')}}</view>
             </label>
           </view>
           <view class="footer-right">
@@ -83,7 +83,7 @@
               class="ss-reset-button ui-BG-Main-Gradient pay-btn ss-font-28 ui-Shadow-Main"
               @tap="onCancel"
             >
-              删除足迹
+              {{$t('user.goods.log.delete')}}
             </button>
           </view>
         </view>
@@ -93,13 +93,13 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="loadmore"
     />
     <s-empty
       v-if="state.pagination.total === 0"
-      text="暂无浏览记录"
+      :text="$t('user.goods.log.noData')"
       icon="/static/collect-empty.png"
     />
   </s-layout>

+ 28 - 28
pages/user/info.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout title="用户信息" class="set-userinfo-wrap">
+  <s-layout :title="$t('user.info.title')" class="set-userinfo-wrap">
     <uni-forms
       :model="state.model"
       :rules="state.rules"
@@ -25,24 +25,24 @@
               class="ss-reset-button avatar-action-btn"
               open-type="chooseAvatar"
               @chooseavatar="onChooseAvatar"
-              >修改</button
+              >{{$t('user.info.edit')}}</button
             >
             <!-- #endif -->
             <!-- #ifndef MP -->
-            <button class="ss-reset-button avatar-action-btn" @tap="onChangeAvatar">修改</button>
+            <button class="ss-reset-button avatar-action-btn" @tap="onChangeAvatar">{{$t('user.info.edit')}}</button>
             <!-- #endif -->
           </view>
         </view>
       </view>
 
       <view class="bg-white ss-p-x-30">
-        <uni-forms-item name="username" label="用户名" @tap="onChangeUsername" class="label-box">
+        <uni-forms-item name="username" :label="$t('user.info.username')" @tap="onChangeUsername" class="label-box">
           <uni-easyinput
             v-model="userInfo.username"
             disabled
             :inputBorder="false"
             :styles="{ disableColor: '#fff' }"
-            placeholder="设置用户名"
+            :placeholder="$t('user.info.setUsername')"
             :clearable="false"
             :placeholderStyle="placeholderStyle"
           >
@@ -55,17 +55,17 @@
           </uni-easyinput>
         </uni-forms-item>
 
-        <uni-forms-item name="nickname" label="昵称">
+        <uni-forms-item name="nickname" :label="$t('user.info.nickname')">
           <uni-easyinput
             v-model="state.model.nickname"
             type="nickname"
-            placeholder="设置昵称"
+            :placeholder="$t('user.info.setNickname')"
             :inputBorder="false"
             :placeholderStyle="placeholderStyle"
           />
         </uni-forms-item>
 
-        <uni-forms-item name="gender" label="性别">
+        <uni-forms-item name="gender" :label="$t('user.info.sex')">
           <view class="ss-flex ss-col-center ss-h-100">
             <radio-group @change="onChangeGender" class="ss-flex ss-col-center">
               <label class="radio" v-for="item in genderRadioMap" :key="item.value">
@@ -83,10 +83,10 @@
           </view>
         </uni-forms-item>
 
-        <uni-forms-item name="mobile" label="手机号" @tap="onChangeMobile">
+        <uni-forms-item name="mobile" :label="$t('user.info.mobile')" @tap="onChangeMobile">
           <uni-easyinput
             v-model="userInfo.mobile"
-            placeholder="请绑定手机号"
+            :placeholder="$t('user.info.bindMobile')"
             :inputBorder="false"
             disabled
             :styles="{ disableColor: '#fff' }"
@@ -104,10 +104,10 @@
           </uni-easyinput>
         </uni-forms-item>
 
-        <uni-forms-item name="password" label="登录密码" @tap="onSetPassword">
+        <uni-forms-item name="password" :label="$t('user.info.password')" @tap="onSetPassword">
           <uni-easyinput
             v-model="userInfo.password"
-            :placeholder="userInfo.verification?.password ? '修改登录密码' : '点击设置登录密码'"
+            :placeholder="userInfo.verification?.password ? $t('user.info.editPassword') : $t('user.info.setPassword')"
             :inputBorder="false"
             :styles="{ disableColor: '#fff' }"
             disabled
@@ -136,7 +136,7 @@
           <uni-list-item
             clickable
             @tap="sheep.$router.go('/pages/user/address/list')"
-            title="地址管理"
+            :title="$t('user.info.address')"
             showArrow
             :border="false"
             class="list-border"
@@ -144,7 +144,7 @@
           <uni-list-item
             clickable
             @tap="sheep.$router.go('/pages/user/invoice/list')"
-            title="发票管理"
+            :title="$t('user.info.invoice')"
             showArrow
             :border="false"
             class="list-border"
@@ -154,7 +154,7 @@
     </uni-forms>
 
     <view v-if="sheep.$platform.name !== 'H5'">
-      <view class="title-box ss-p-l-30">第三方账号绑定</view>
+      <view class="title-box ss-p-l-30">{{$t('user.info.thirdAccount')}}</view>
 
       <view class="account-list ss-flex ss-row-between">
         <view v-if="'WechatOfficialAccount' === sheep.$platform.name" class="ss-flex ss-col-center">
@@ -166,7 +166,7 @@
               )
             "
           />
-          <text class="list-name">微信公众号</text>
+          <text class="list-name">{{$t('user.info.wxPublicAccount')}}</text>
         </view>
         <view v-if="'WechatMiniProgram' === sheep.$platform.name" class="ss-flex ss-col-center">
           <image
@@ -175,14 +175,14 @@
               sheep.$url.static('/assets/addons/shopro/uniapp/platform/WechatMiniProgram.png')
             "
           />
-          <text class="list-name">微信小程序</text>
+          <text class="list-name">{{$t('user.info.wxApplet')}}</text>
         </view>
         <view v-if="'App' === sheep.$platform.name" class="ss-flex ss-col-center">
           <image
             class="list-img"
             :src="sheep.$url.static('/assets/addons/shopro/uniapp/platform/wechat.png')"
           />
-          <text class="list-name">微信开放平台</text>
+          <text class="list-name">{{$t('user.info.wxOpenPlatform')}}</text>
         </view>
         <view class="ss-flex ss-col-center">
           <view class="info ss-flex ss-col-center" v-if="state.thirdOauthInfo">
@@ -198,9 +198,9 @@
               class="ss-reset-button relieve-btn"
               @tap="unBindThirdOauth"
             >
-              解绑
+              {{$t('user.info.unbind')}}
             </button>
-            <button v-else class="ss-reset-button bind-btn" @tap="bindThirdOauth">绑定</button>
+            <button v-else class="ss-reset-button bind-btn" @tap="bindThirdOauth">{{$t('user.info.bind')}}</button>
           </view>
         </view>
       </view>
@@ -208,7 +208,7 @@
 
     <su-fixed bottom placeholder bg="none">
       <view class="footer-box ss-p-20">
-        <button class="ss-rest-button logout-btn ui-Shadow-Main" @tap="onSubmit">保存</button>
+        <button class="ss-rest-button logout-btn ui-Shadow-Main" @tap="onSubmit">{{$t('user.info.save')}}</button>
       </view>
     </su-fixed>
   </s-layout>
@@ -231,15 +231,15 @@ const placeholderStyle = 'color:#BBBBBB;font-size:28rpx;line-height:normal';
 
 const genderRadioMap = [
   {
-    name: '男',
+    name: $t('user.info.male'),
     value: '1',
   },
   {
-    name: '女',
+    name: $t('user.info.female'),
     value: '0',
   },
   {
-    name: '保密',
+    name: $t('user.info.private'),
     value: '2',
   },
 ];
@@ -301,10 +301,10 @@ async function bindThirdOauth() {
 // 解绑第三方账号
 function unBindThirdOauth() {
   uni.showModal({
-    title: '解绑提醒',
-    content: '解绑后您将无法通过微信登录此账号',
-    cancelText: '再想想',
-    confirmText: '确定',
+    title: $t('user.info.tips'),
+    content: $t('user.info.tipsUnbind'),
+    cancelText: $t('user.info.later'),
+    confirmText: $t('user.info.confirm'),
     success: async function (res) {
       if (res.confirm) {
         const result = await sheep.$platform.useProvider('wechat').unbind();

+ 24 - 24
pages/user/invoice/edit.vue

@@ -1,5 +1,5 @@
 <template>
-  <s-layout :title="state.model.id ? '编辑发票' : '添加发票'">
+  <s-layout :title="state.model.id ? $t('user.invoice.edit') : $t('user.invoice.add')">
     <uni-forms
       ref="invoiceFormRef"
       v-model="state.model"
@@ -11,7 +11,7 @@
       :labelStyle="{ fontWeight: 'bold' }"
     >
       <view class="bg-white form-box ss-p-x-30">
-        <uni-forms-item name="type" label="发票类型">
+        <uni-forms-item name="type" :label="$t('user.invoice.type')">
           <view class="ss-flex ss-col-center ss-h-100">
             <radio-group @change="onChange" class="ss-flex ss-col-center">
               <label class="radio" v-for="item in invoiceTypeList" :key="item.value">
@@ -31,74 +31,74 @@
           </view>
         </uni-forms-item>
         <view v-if="state.model.type === 'person'">
-          <uni-forms-item name="name" label="姓名">
+          <uni-forms-item name="name" :label="$t('user.invoice.realname')">
             <uni-easyinput
               v-model="state.model.name"
               type="text"
-              placeholder="请输入您的姓名(必填)"
+              :placeholder="$t('user.invoice.enterRealname')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
-          <uni-forms-item name="mobile" label="手机号">
+          <uni-forms-item name="mobile" :label="$t('user.invoice.mobile')">
             <uni-easyinput
               v-model="state.model.mobile"
               type="number"
-              placeholder="请输入手机号(必填)"
+              :placeholder="$t('user.invoice.enterMobile')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
         </view>
         <view v-if="state.model.type === 'company'">
-          <uni-forms-item name="name" label="单位名称">
+          <uni-forms-item name="name" :label="$t('user.invoice.company')">
             <uni-easyinput
               v-model="state.model.name"
               type="text"
-              placeholder="请输入单位名称(必填)"
+              :placeholder="$t('user.invoice.enterCompany')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
-          <uni-forms-item name="mobile" label="手机号">
+          <uni-forms-item name="mobile" :label="$t('user.invoice.mobile')">
             <uni-easyinput
               v-model="state.model.mobile"
               type="number"
-              placeholder="请输入手机号(必填)"
+              :placeholder="$t('user.invoice.enterMobile')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
-          <uni-forms-item name="tax_no" label="税号">
+          <uni-forms-item name="tax_no" :label="税号$t('user.invoice.taxId')">
             <uni-easyinput
               v-model="state.model.tax_no"
               type="text"
-              placeholder="请输入单位税号(必填)"
+              :placeholder="$t('user.invoice.enterTaxId')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
-          <uni-forms-item name="bank_name" label="开户银行">
+          <uni-forms-item name="bank_name" :label="$t('user.invoice.bankname')">
             <uni-easyinput
               v-model="state.model.bank_name"
               type="text"
-              placeholder="请输入对公账户开户银行"
+              :placeholder="$t('user.invoice.enterBankname')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
-          <uni-forms-item name="bank_no" label="银行账号">
+          <uni-forms-item name="bank_no" :label="$t('user.invoice.bankcard')">
             <uni-easyinput
               v-model="state.model.bank_no"
               type="text"
-              placeholder="请输入对公账户银行账号"
+              :placeholder="$t('user.invoice.enterBankcard')"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
               :inputBorder="false"
             ></uni-easyinput>
           </uni-forms-item>
           <uni-forms-item
             name="address"
-            label="详细地址"
+            :label="$t('user.invoice.detailAddress')"
             :formItemStyle="{ alignItems: 'flex-start' }"
             :labelStyle="{ lineHeight: '5em' }"
             class="textarea-item"
@@ -108,7 +108,7 @@
               type="textarea"
               v-model="state.model.address"
               placeholderStyle="color:#BBBBBB;font-size:30rpx;font-weight:400;line-height:normal"
-              placeholder="请输入详细地址"
+              :placeholder="$t('user.invoice.enterDetailAddress')"
               clearable
             ></uni-easyinput>
           </uni-forms-item>
@@ -118,10 +118,10 @@
     <su-fixed bottom :opacity="false" bg="" placeholder :noFixed="false" :index="10">
       <view class="footer-box ss-flex-col ss-row-between ss-p-20">
         <view class="ss-m-b-20">
-          <button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">保存</button>
+          <button class="ss-reset-button save-btn ui-Shadow-Main" @tap="onSave">{{$t('user.address.save')}}</button>
         </view>
         <button v-if="state.model.id" class="ss-reset-button cancel-btn" @tap="onDelete">
-          删除
+          {{$t('user.address.delete')}}
         </button>
       </view>
     </su-fixed>
@@ -138,11 +138,11 @@
   const invoiceFormRef = ref(null);
   const invoiceTypeList = [
     {
-      name: '个人',
+      name: $t('user.invoice.personal'),
       value: 'person',
     },
     {
-      name: '企/事业单位',
+      name: $t('user.invoice.enterprise'),
       value: 'company',
     },
   ];
@@ -188,8 +188,8 @@
   };
   const onDelete = () => {
     uni.showModal({
-      title: '提示',
-      content: '确认删除此发票信息吗?',
+      title: $t('user.invoice.tips'),
+      content: $t('user.invoice.tipsDelete'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.user.invoice.delete(state.model.id);

+ 10 - 10
pages/user/set.vue

@@ -1,32 +1,32 @@
 <template>
-  <s-layout class="set-wrap" title="编辑资料">
+  <s-layout class="set-wrap" :title="$t('user.set.title')">
     <view class="header-box ss-flex-col ss-row-center ss-col-center">
       <image
         class="logo-img ss-m-b-40"
         src="/assets/addons/shopro/uniapp/tabbar/find2.png"
         mode="aspectFit"
       ></image>
-      <view class="name ss-m-b-24">SHEEP商城</view>
+      <view class="name ss-m-b-24">{{$t('user.set.shop')}}</view>
       <view class="version">V1.3.0</view>
     </view>
 
     <uni-list :border="true">
-      <uni-list-item title="清除缓存" rightText="2M" showArrow></uni-list-item>
-      <uni-list-item title="当前版本" rightText="V1.3.1" showArrow></uni-list-item>
-      <uni-list-item title="意见反馈" showArrow></uni-list-item>
-      <uni-list-item title="关于我们" showArrow></uni-list-item>
+      <uni-list-item :title="$t('user.set.session')" rightText="2M" showArrow></uni-list-item>
+      <uni-list-item :title="$t('user.set.version')" rightText="V1.3.1" showArrow></uni-list-item>
+      <uni-list-item :title="$t('user.set.feedbakc')" showArrow></uni-list-item>
+      <uni-list-item :title="关于我们$t('user.set.about')" showArrow></uni-list-item>
     </uni-list>
 
     <view class="set-footer ss-flex-col ss-row-center ss-col-center">
       <view class="agreement-box ss-flex ss-col-center ss-m-b-30">
         <view class="ss-flex ss-col-center ss-m-b-10">
-          <view class="tcp-text">《用户协议》</view>
+          <view class="tcp-text">{{$t('user.set.userProtocol')}}</view>
           <view class="agreement-text">与</view>
-          <view class="tcp-text">《隐私协议》</view>
+          <view class="tcp-text">{{$t('user.set.privateProtocol')}}</view>
         </view>
       </view>
-      <view class="copyright-text ss-m-b-10">******版权所有</view>
-      <view class="copyright-text">Copyright© 2018-2022</view>
+      <view class="copyright-text ss-m-b-10">{{$t('user.set.copyRightHolder')}}</view>
+      <view class="copyright-text">{{$t('user.set.copyRight')}}</view>
     </view>
   </s-layout>
 </template>

+ 20 - 20
pages/user/wallet/commission.vue

@@ -1,10 +1,10 @@
 <template>
-  <s-layout class="wallet-wrap" title="佣金">
+  <s-layout class="wallet-wrap" :title="$t('user.wallet.commission.title')">
     <!-- 钱包卡片 -->
     <view class="header-box ss-flex ss-row-center ss-col-center">
       <view class="card-box ui-BG-Main ui-Shadow-Main">
         <view class="card-head ss-flex ss-col-center">
-          <view class="card-title ss-m-r-10">我的佣金(元)</view>
+          <view class="card-title ss-m-r-10">{{$t('user.wallet.commission.my'}}</view>
           <view
             @tap="state.showMoney = !state.showMoney"
             class="ss-eye-icon"
@@ -19,24 +19,24 @@
                 class="ss-reset-button withdraw-btn"
                 @tap="sheep.$router.go('/pages/pay/withdraw')"
               >
-                提现
+                {{$t('user.wallet.commission.withdraw')}}
               </button>
             </view>
             <button class="ss-reset-button balance-btn ss-m-l-20" @tap="state.showModal = true">
-              转余额
+              {{$t('user.wallet.commission.tobalance')}}
             </button>
           </view>
         </view>
 
         <view class="ss-flex">
           <view class="loading-money">
-            <view class="loading-money-title">待入账佣金</view>
+            <view class="loading-money-title">{{$t('user.wallet.commission.unget')}}</view>
             <view class="loading-money-num">{{
               state.showMoney ? agentInfo.pending_reward || '0.00' : '*****'
             }}</view>
           </view>
           <view class="loading-money ss-m-l-100">
-            <view class="loading-money-title">可提现佣金</view>
+            <view class="loading-money-title">{{$t('user.wallet.commission.withdrawAvailable')}}</view>
             <view class="loading-money-num">{{
               state.showMoney ? userInfo.commission || '0.00' : '*****'
             }}</view>
@@ -55,8 +55,8 @@
         </uni-datetime-picker>
 
         <view class="total-box">
-          <view class="ss-m-b-10">总收入¥{{ state.pagination.income.toFixed(2) }}</view>
-          <view>总支出¥{{ (-state.pagination.expense).toFixed(2) }}</view>
+          <view class="ss-m-b-10">{{$t('user.wallet.commission.income')}}¥{{ state.pagination.income.toFixed(2) }}</view>
+          <view>{{$t('user.wallet.commission.payout')}}¥{{ (-state.pagination.expense).toFixed(2) }}</view>
         </view>
       </view>
       <su-tabs
@@ -69,7 +69,7 @@
     <s-empty
       v-if="state.pagination.total === 0"
       icon="/static/data-empty.png"
-      text="暂无数据"
+      :text="$t('user.wallet.commission.noData')"
     ></s-empty>
     <!-- 转余额弹框 -->
     <su-popup
@@ -80,8 +80,8 @@
       showClose
     >
       <view class="ss-p-x-20 ss-p-y-30">
-        <view class="model-title ss-m-b-30 ss-m-l-20">转余额</view>
-        <view class="model-subtitle ss-m-b-100 ss-m-l-20">将您的佣金转到余额中继续消费</view>
+        <view class="model-title ss-m-b-30 ss-m-l-20">{{$t('user.wallet.commission.tobalance')}}</view>
+        <view class="model-subtitle ss-m-b-100 ss-m-l-20">{{$t('user.wallet.commission.msg1')}}</view>
         <view class="input-box ss-flex ss-col-center border-bottom ss-m-b-70 ss-m-x-20">
           <view class="unit">¥</view>
           <uni-easyinput
@@ -89,14 +89,14 @@
             class="ss-flex-1 ss-p-l-10"
             v-model="state.amount"
             type="number"
-            placeholder="请输入金额"
+            :placeholder="$t('user.wallet.commission.enterAmount')"
           />
         </view>
         <button
           class="ss-reset-button model-btn ui-BG-Main-Gradient ui-Shadow-Main"
           @tap="onConfirm"
         >
-          确定
+          {{$t('user.wallet.commission.confirm')}}
         </button>
       </view>
     </su-popup>
@@ -127,7 +127,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
     />
   </s-layout>
@@ -163,15 +163,15 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('user.wallet.commission.all'),
       value: 'all',
     },
     {
-      name: '收入',
+      name: $t('user.wallet.commission.incomeType'),
       value: 'income',
     },
     {
-      name: '支出',
+      name: $t('user.wallet.commission.expenseType'),
       value: 'expense',
     },
   ];
@@ -232,12 +232,12 @@
   // 确认操作
   async function onConfirm() {
     if (state.amount <= 0) {
-      sheep.$helper.toast('请输入正确的金额');
+      sheep.$helper.toast($t('user.wallet.commission.enterAmount'));
       return;
     }
     uni.showModal({
-      title: '提示',
-      content: '确认把您的佣金转入到余额钱包中?',
+      title: $t('user.wallet.commission.tips'),
+      content: $t('user.wallet.commission.tipsToBalance'),
       success: async function (res) {
         if (res.confirm) {
           const { code } = await sheep.$api.commission.transfer({

+ 10 - 10
pages/user/wallet/money.vue

@@ -1,10 +1,10 @@
 <template>
-  <s-layout class="wallet-wrap" title="钱包">
+  <s-layout class="wallet-wrap" :title="$t('user.wallet.money.title')">
     <!-- 钱包卡片 -->
     <view class="header-box ss-flex ss-row-center ss-col-center">
       <view class="card-box ui-BG-Main ui-Shadow-Main">
         <view class="card-head ss-flex ss-col-center">
-          <view class="card-title ss-m-r-10">钱包余额(元)</view>
+          <view class="card-title ss-m-r-10">{{$t('user.wallet.money.balance')}}</view>
           <view
             @tap="state.showMoney = !state.showMoney"
             class="ss-eye-icon"
@@ -14,7 +14,7 @@
         <view class="ss-flex ss-row-between ss-col-center ss-m-t-64">
           <view class="money-num">{{ state.showMoney ? userInfo.money : '*****' }}</view>
           <button class="ss-reset-button topup-btn" @tap="sheep.$router.go('/pages/pay/recharge')">
-            充值
+            充值{{$t('user.wallet.money.recharge')}}
           </button>
         </view>
       </view>
@@ -36,8 +36,8 @@
         </uni-datetime-picker>
 
         <view class="total-box">
-          <view class="ss-m-b-10">总收入¥{{ state.pagination.income.toFixed(2) }}</view>
-          <view>总支出¥{{ (-state.pagination.expense).toFixed(2) }}</view>
+          <view class="ss-m-b-10">{{$t('user.wallet.commission.income')}}¥{{ state.pagination.income.toFixed(2) }}</view>
+          <view>{{$t('user.wallet.commission.payout')}}¥{{ (-state.pagination.expense).toFixed(2) }}</view>
         </view>
       </view>
       <su-tabs
@@ -47,7 +47,7 @@
         :current="state.currentTab"
       ></su-tabs>
     </su-sticky>
-    <s-empty v-if="state.pagination.total === 0" text="暂无数据" icon="/static/data-empty.png" />
+    <s-empty v-if="state.pagination.total === 0" :text="$t('user.wallet.commission.noData')" icon="/static/data-empty.png" />
     <!-- 钱包记录 -->
     <view v-if="state.pagination.total > 0">
       <view
@@ -73,7 +73,7 @@
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
     />
   </s-layout>
@@ -108,15 +108,15 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('user.wallet.commission.all'),
       value: 'all',
     },
     {
-      name: '收入',
+      name: $t('user.wallet.commission.incomeType'),
       value: 'income',
     },
     {
-      name: '支出',
+      name: $t('user.wallet.commission.expenseType'),
       value: 'expense',
     },
   ];

+ 9 - 10
pages/user/wallet/score.vue

@@ -1,6 +1,6 @@
 <!-- 页面  -->
 <template>
-  <s-layout class="wallet-wrap" title="我的积分" navbar="inner">
+  <s-layout class="wallet-wrap" :title="$t('user.wallet.score.title')" navbar="inner">
     <view
       class="header-box ss-flex ss-flex-col ss-row-center ss-col-center"
       :style="[
@@ -13,7 +13,7 @@
       <view class="header-bg"><view class="bg"></view></view>
       <view class="score-box ss-flex-col ss-row-center ss-col-center">
         <view class="ss-m-b-30">
-          <text class="all-title ss-m-r-8">当前积分</text>
+          <text class="all-title ss-m-r-8">{{$t('user.wallet.score.balance')}}</text>
           <!-- <text class="cicon-help-o"></text> -->
         </view>
         <text class="all-num">{{ userInfo.score || 0 }}</text>
@@ -31,8 +31,8 @@
         </uni-datetime-picker>
 
         <view class="total-box">
-          <view class="ss-m-b-10">总收入¥{{ state.pagination.income }}</view>
-          <view>总支出¥{{ -state.pagination.expense }}</view>
+          <view class="ss-m-b-10">{{$t('user.wallet.commission.income')}}¥{{ state.pagination.income }}</view>
+          <view>{{$t('user.wallet.commission.payout')}}¥{{ -state.pagination.expense }}</view>
         </view>
       </view>
       <su-tabs
@@ -58,14 +58,14 @@
           <view class="minus" v-else>{{ parseInt(item.amount) }}</view>
         </view>
       </view>
-      <s-empty v-else text="暂无数据" icon="/static/data-empty.png" />
+      <s-empty v-else :text="$t('user.wallet.commission.noData')" icon="/static/data-empty.png" />
     </view>
 
     <uni-load-more
       v-if="state.pagination.total > 0"
       :status="state.loadStatus"
       :content-text="{
-        contentdown: '上拉加载更多',
+        contentdown: $t('activity.index.uploadMore'),
       }"
       @tap="onLoadMore"
     />
@@ -104,16 +104,15 @@
 
   const tabMaps = [
     {
-      name: '全部',
+      name: $t('user.wallet.commission.all'),
       value: 'all',
     },
-
     {
-      name: '收入',
+      name: $t('user.wallet.commission.incomeType'),
       value: 'income',
     },
     {
-      name: '支出',
+      name: $t('user.wallet.commission.expenseType'),
       value: 'expense',
     },
   ];