refactor: 完成多语言国际化全量替换与补充

1. 新增大量中英文语言包文件,覆盖自定义组件、页面、工具类的文案
2. 替换硬编码文本为多语言调用,统一全局文案管理
3. 优化语言包结构,拆分公共模块与业务模块
4. 修复部分语言加载与国际化适配问题
This commit is contained in:
2026-06-26 17:32:35 +08:00
parent f7fb9f34f9
commit 4ae21c5d7a
91 changed files with 2650 additions and 281 deletions

View File

@@ -42,6 +42,14 @@ export const lang = {
loadHistoryFail: 'Failed to load history',
about: '0B',
// ====== ai-chat-message - Auto Reply Templates ======
autoReplyGreeting: 'Hello! I am the AI customer service assistant, glad to serve you! How can I help you?',
autoReplyPrice: 'Our product prices vary by model and configuration. Please check the product detail page for specific prices.',
autoReplyShipping: 'Generally, orders are shipped within 24 hours. Please check the logistics information for specific timelines.',
autoReplyReturn: '7-day no-reason return is supported. Please ensure the product is in good condition.',
autoReplyService: 'Our customer service hours are 9:00-18:00. Feel free to contact us if you have any questions.',
autoReplyDefault: 'Thank you for your inquiry! Regarding your question about "{question}", our professional customer service will answer you as soon as possible. You can also check our help documentation for more information.',
// ====== ai-chat-search ======
searchEntrance: 'Search',
searchPlaceholder: 'Search chat history',
@@ -118,5 +126,14 @@ export const lang = {
menuClearChat: 'Clear Chat',
menuExport: 'Export Records',
menuSettings: 'Settings',
menuHelp: 'Help'
menuHelp: 'Help',
// ====== index.vue - Console Logs (for debugging) ======
logOnShowTriggered: '[AI Chat Page] onShow triggered',
logOnUnloadTriggered: '[AI Chat Page] onUnload triggered',
logKeyboardChangeUnavailable: 'onKeyboardHeightChange unavailable',
logEventHandleError: 'Event handling error',
logInitNavbarFailed: 'Failed to initialize navigation bar',
logChatComponentNotInit: 'Chat component not initialized',
logServicerConfigNotLoaded: '[AI Customer Service] servicerConfig not loaded, retrying after 200ms...'
}

View File

@@ -1,4 +1,10 @@
export const lang = {
//title为每个页面的标题
title: 'Article Details'
}
title: 'Article Details',
// publish time label
publishTime: 'Published:',
// read count label
readCount: 'Views: ',
// liked suffix (count + people liked)
likedSuffix: ' likes'
}

View File

@@ -1,5 +1,5 @@
export const lang = {
//title为每个页面的标题
//title is the title of each page
title: 'Article List',
emptyText: "No article information available currently"
}
emptyText: 'No articles'
}

View File

@@ -18,7 +18,40 @@ export const lang = {
goodsRecommendTitle: 'Guess you like',
currencySymbol: '¥',
submit: 'Submit',
searchTip: 'Please enter search keywords'
searchTip: 'Please enter search keywords',
// version update
updateTip: 'Update Available',
updateReady: 'A new version is ready, restart the app now?',
// network status
networkLost: 'Network Disconnected',
networkCheck: 'Please check your network connection',
// config related
config: {
siteJsNotConfigured: 'In the mini-program release environment, the site.js file must be configured, otherwise the default configuration will be used, which affects mini-program custom distribution!'
},
// platform detection
platform: {
wechatOfficialAccount: 'WeChat Official Account',
wechatMiniProgram: 'WeChat Mini Program',
alipayMiniProgram: 'Alipay Mini Program',
baiduMiniProgram: 'Baidu Mini Program',
toutiaoMiniProgram: 'Toutiao Mini Program',
qqMiniProgram: 'QQ Mini Program',
kuaishouMiniProgram: 'Kuaishou Mini Program',
jdMiniProgram: 'JD Mini Program',
miniProgram360: '360 Mini Program',
xhsMiniProgram: 'Xiaohongshu Mini Program',
harmonyService: 'Harmony Service',
app: 'APP',
pc: 'PC',
h5: 'H5',
unknown: 'Unknown Platform',
},
},
// navigation utility
navigation: {
serviceUnavailable: 'Navigation service temporarily unavailable',
},
// diy custom page
@@ -58,6 +91,7 @@ export const lang = {
serviceUnavailable: 'Customer service temporarily unavailable',
wxworkLinkNotConfigured: 'WeChat Work link not configured',
fromFloatButton: 'Inquiry from floating button',
serviceTypeNotConfigured: 'Customer service type not configured',
},
// WeChat Work JS-SDK
@@ -153,6 +187,8 @@ export const lang = {
weekThursday: 'Thu',
weekFriday: 'Fri',
weekSaturday: 'Sat',
// error messages
deepCloneNotObject: 'obj is not an object!',
},
// AI service
@@ -215,11 +251,6 @@ export const lang = {
logoutTitle: 'Tip',
logoutContent: 'Are you sure you want to log out?',
// navigation utility
navigation: {
serviceUnavailable: 'Navigation service temporarily unavailable',
},
// WeChat Map JSSDK
mapWxJssdk: {
// error messages

View File

@@ -1,7 +1,16 @@
export const lang = {
expand: 'Expand',
clickToCollapse: 'Click to collapse',
reachedBottom: 'Reached the bottom~',
noCategory: 'No categories yet!',
pieceUnit: 'pc(s)',
'components-diy': {
diyCategory: {
// Expand all categories (button on the right of horizontal scroll)
expand: 'Expand',
// Click to collapse (button at the bottom of expanded popup)
clickToCollapse: 'Click to collapse',
// Scroll to bottom tip
reachedBottom: 'Reached the bottom~',
// No categories (empty state tip)
noCategory: 'No categories yet!',
// Product unit: piece
pieceUnit: 'pc(s)',
},
},
}

View File

@@ -0,0 +1,7 @@
export const lang = {
// Sales text: Sold X units
soldCount: 'Sold {count}{unit}',
// Sales unit: piece
soldUnit: 'pcs',
}

View File

@@ -0,0 +1,14 @@
export const lang = {
'components-diy': {
diyIndexPage: {
// Home (default category name)
home: 'Home',
// Sales text: Sold X units
soldCount: 'Sold {count}{unit}',
// Sales unit: piece
soldUnit: 'pcs',
// Empty state prompt when no goods in category
noGoodsInCategory: 'No goods in this category',
},
},
}

View File

@@ -0,0 +1,4 @@
export const lang = {
notice: 'Notice',
gotIt: 'Got it',
}

View File

@@ -1,6 +1,14 @@
export const lang = {
switchStore: 'Switch',
locating: 'Locating...',
gettingLocation: 'Getting current location...',
searchPlaceholder: 'Search products',
}
'components-diy': {
diyStore: {
// Switch store button text
switchStore: 'Switch Store',
// Locating status text
locating: 'Locating',
// Getting location status text for address
gettingLocation: 'Getting location',
// Search input placeholder
searchPlaceholder: 'Search',
},
},
};

View File

@@ -0,0 +1,6 @@
export const lang = {
// H5 video preload failed
h5PreloadFailed: 'H5 video preload failed',
// Video load failed
videoLoadFailed: 'Video load failed',
}

View File

@@ -0,0 +1,22 @@
export const lang = {
// mescroll pull-down refresh / pull-up load component
components: {
mescroll: {
// pull-down refresh text
down: {
textInOffset: 'Pull to refresh',
textOutOffset: 'Release to update',
textLoading: 'Loading ...',
},
// pull-up load text
up: {
textLoading: 'Loading ...',
textNoMore: '-- END --',
},
// empty layout tip
empty: {
tip: '~ No data ~',
},
},
},
}

View File

@@ -1,4 +1,18 @@
export const lang = {
//title为每个页面的标题
title: 'Distributors',
// Member info
joinTime: 'Join Date: ',
// Stats units
peopleUnit: ' people',
orderUnit: ' orders',
currencyUnit: ' Yuan',
// Empty state
noData: 'No data',
// Toast messages
merchantNotOpenFenxiao: 'Merchant has not enabled distribution',
}

View File

@@ -1,4 +1,9 @@
export const lang = {
//title为每个页面的标题
title: 'View Files',
searchPlaceholder: 'Please enter the file name you want to search',
viewPdf: 'View PDF File',
emptyText: 'No files yet',
loading: 'Loading',
fileNotExist: 'File does not exist',
}

15
lang/en-us/form/form.js Normal file
View File

@@ -0,0 +1,15 @@
export const lang = {
// Form page
form: {
form: {
// Page title
title: 'Please fill in the form information',
// Submit success message
submitSuccess: 'Submitted successfully',
// Form information not available
noFormInfo: 'Form information not available',
},
},
}

View File

@@ -0,0 +1,48 @@
export const lang = {
// title is the page title
title: 'Bind Mobile',
bindMobile: {
// One-click authorization binding
oneClickAuthBind: 'One-Click Authorization Binding',
// Manual binding
manualBind: 'Manual Binding',
// Phone number
phoneNumber: 'Phone Number',
// Please enter phone number
pleInputMobile: 'Please enter phone number',
// Please enter a valid phone number
surePhoneNumber: 'Please enter a valid phone number',
// Verification code
confirmCode: 'Verification Code',
// Please enter verification code
confirmCodeInput: 'Please enter verification code',
// SMS verification code
smsCode: 'SMS Verification Code',
// Please enter dynamic code
animateCodeInput: 'Please enter dynamic code',
// Get dynamic code
findanimateCode: 'Get Dynamic Code',
// Code sent
codeSent: 'Sent ({seconds}s)',
// Do not click repeatedly
doNotRepeatedlyClick: 'Do not click repeatedly',
// Save / Bind
save: 'Bind',
// Binding successful
bindSuccess: 'Binding Successful',
// Same as original phone number, no need to modify
alikePhone: 'Same as original phone number, no need to modify',
// Tip text
tipTitle: 'Notice',
// Enjoy more services after binding your mobile number
bindBenefitTip: 'Enjoy more services after binding your mobile number',
// Send code tip
sendCodeTip: 'Click "Get Dynamic Code" and a verification code will be sent to your mobile number {mobile}',
},
}

View File

@@ -1,3 +1,6 @@
export const lang = {
title: 'Account Cancellation',
}
agreeTermsText: 'Check to indicate you have read and agree to this agreement',
nextStep: 'Next',
pleaseAgreeFirst: 'Please check to agree to the agreement first',
}

View File

@@ -0,0 +1,25 @@
export const lang = {
//title is the title of each page
title: 'Membership Card Log',
// Stats header
totalConsume: 'Total Consume',
cardBalance: 'Balance',
totalRecharge: 'Total Recharge',
yuanSuffix: ' Yuan',
statUnit: ' ({unit})',
// Filter tabs
filterAll: 'All',
filterIncome: 'Income',
filterExpense: 'Expense',
filterRecharge: 'Recharge',
filterConsume: 'Consume',
filterGift: 'Gift',
// Empty state
emptyTips: 'No membership card records',
// Amount format
amountWithUnit: '{amount} Yuan',
}

View File

@@ -1,4 +1,7 @@
export const lang = {
//title为每个页面的标题
title: 'My Favorites'
}
title: 'My Favorites',
emptyText: 'No favorite products yet',
emptySubText: 'Go shopping and follow products you like!',
deleteSuccess: 'Deleted successfully'
}

View File

@@ -1,4 +1,9 @@
export const lang = {
//title为每个页面的标题
title: 'Modify Avatar'
}
title: 'Modify Avatar',
clickToUpload: 'Click to Upload',
confirmSave: 'Confirm Save',
reupload: 'Reupload',
uploadFailed: 'Avatar upload failed',
modifySuccess: 'Avatar modified successfully'
}

View File

@@ -1,4 +1,5 @@
export const lang = {
//title为每个页面的标题
title: 'Withdrawal Records'
title: 'Withdrawal Records',
emptyTips: 'No withdrawal records'
}

View File

@@ -1,7 +1,38 @@
export const lang = {
// title is the title of each page
title: 'Product List',
// Search box placeholder
searchPlaceholder: 'Please enter the product you want to search for',
// Default button text
buyText: 'Buy',
// Sort options
sort: {
comprehensive: 'Comprehensive',
sales: 'Sales',
price: 'Price',
filter: 'Filter',
},
// Goods list
goods: {
consultNow: 'Consult Now',
sold: 'Sold {num}{unit}',
defaultUnit: 'pcs',
noGoods: 'No products',
},
// Filter drawer
filter: {
title: 'Filter',
allCategories: 'All Categories',
all: 'All',
reset: 'Reset',
confirm: 'Confirm',
},
// Modal dialog
modal: {
title: 'Notice',

View File

@@ -15,5 +15,10 @@ export const lang = {
// Toast messages
toast: {
cancelSuccess: 'Cancelled successfully'
},
// Cancel refund modal
cancelRefund: {
content: 'After cancellation, this application will be closed. You can reapply if needed.',
cancelText: 'Not Now'
}
}

View File

@@ -0,0 +1,91 @@
export const lang = {
//title for each page
title: 'Invoice Application',
// ====== Header ======
header: {
title: 'Invoice Information',
desc: 'Please fill in the invoice information'
},
// ====== Invoice Type ======
invoiceType: {
title: 'Invoice Type',
paper: 'Paper Invoice',
paperDesc: 'Invoice will be mailed to the specified address',
electronic: 'Electronic Invoice',
electronicDesc: 'Invoice will be sent to your email'
},
// ====== Invoice Title ======
invoiceTitle: {
title: 'Invoice Title',
personal: 'Personal',
company: 'Company',
label: 'Invoice Title',
personalPlaceholder: 'Please enter your name',
companyPlaceholder: 'Please enter company name',
taxpayerId: 'Taxpayer ID',
taxpayerIdPlaceholder: 'Please enter taxpayer ID'
},
// ====== Invoice Content ======
invoiceContent: {
title: 'Invoice Content',
label: 'Invoice Content',
placeholder: 'Please select invoice content'
},
// ====== Mail Info (Paper Invoice) ======
mailInfo: {
title: 'Mailing Information',
receiver: 'Recipient',
receiverPlaceholder: 'Please enter recipient name',
mobile: 'Contact Phone',
mobilePlaceholder: 'Please enter phone number',
address: 'Mailing Address',
regionPlaceholder: 'Please select region',
detailAddress: 'Detailed Address',
detailAddressPlaceholder: 'Please enter detailed address'
},
// ====== Email Info (Electronic Invoice) ======
emailInfo: {
title: 'Email Information',
receiverEmail: 'Receiver Email',
emailPlaceholder: 'Please enter the email address to receive the invoice'
},
// ====== Fee Section ======
fee: {
taxFee: 'Invoice Tax',
deliveryFee: 'Delivery Fee'
},
// ====== Footer Submit Section ======
footer: {
tip: 'Tip: Invoice applications will be processed within {days} working days',
submit: 'Submit Application'
},
// ====== Form Validation Messages ======
validation: {
pleaseEnterTitle: 'Please enter invoice title',
pleaseEnterTaxpayerId: 'Please enter taxpayer ID',
pleaseSelectContent: 'Please select invoice content',
pleaseEnterReceiver: 'Please enter recipient name',
pleaseEnterMobile: 'Please enter phone number',
pleaseSelectRegion: 'Please select region',
pleaseEnterAddress: 'Please enter detailed address',
pleaseEnterEmail: 'Please enter receiver email',
invalidEmail: 'Please enter a valid email address'
},
// ====== API Messages ======
api: {
getConfigFailed: 'Failed to get invoice configuration',
submitSuccess: 'Invoice application submitted successfully',
submitFailed: 'Submission failed, please try again later',
networkError: 'Network error, please try again later'
}
}

View File

@@ -1,4 +1,16 @@
export const lang = {
//title为每个页面的标题
title: 'Logistics Information'
}
//title is the title of each page
title: 'Logistics Information',
// Order logistics info
order: {
logistics: {
// Express company info
expressCompany: 'Carrier: ',
trackingNo: 'Tracking No.: ',
// Toast messages
orderInfoNotFound: 'Order information not found!'
}
}
}

View File

@@ -64,6 +64,12 @@ export const lang = {
cancelSuccess: 'Cancelled successfully'
},
// ====== Cancel Refund Modal ======
cancelRefund: {
content: 'After cancellation, this application will be closed. You can reapply if needed.',
cancelText: 'Not Now'
},
// ====== Form Validation ======
validate: {
pleaseInputExpressCompany: 'Please enter logistics company',

View File

@@ -1,17 +1,27 @@
export const lang = {
// page title
title: 'Search Results',
// action buttons
exportImage: 'Export Image',
exportPdf: 'Export PDF',
// Seal detail
seal: {
medium: {
detail: {
// Page title
title: 'Seal Details',
// Export image
exportImage: 'Export Image',
// Export PDF
exportPdf: 'Export PDF',
// Loading
loading: 'Loading',
// File does not exist
fileNotExist: 'File does not exist',
// Save success
saveSuccess: 'Saved successfully',
// Save failed
saveFailed: 'Save failed',
// Download failed
downloadFailed: 'Download failed',
}
}
}
// loading tips
loading: 'Loading',
// toast messages
fileNotExist: 'File does not exist',
saveSuccess: 'Saved successfully',
saveFailed: 'Save failed, please try again later',
downloadFailed: 'Download failed',
}

View File

@@ -1,23 +1,23 @@
export const lang = {
//title为每个页面的标题
title: 'Material Search',
// Seal search page
seal: {
medium: {
search: {
// Search input placeholder
placeholder: "Enter medium name e.g. 'gasoline'",
placeholder: 'Enter keywords to search',
// Search results title
searchResult: 'Search Results',
// Empty state text
// Empty data tip
noData: 'No Data',
// Modal title
tip: 'Tip',
// Delete all history confirmation
confirmDeleteAllHistory: 'Confirm delete all history?',
// Delete single history record confirmation
confirmDeleteHistory: 'Confirm delete this history record?',
// Confirm delete all history
confirmDeleteAllHistory: 'Are you sure you want to delete all search history?',
// Confirm delete single history item
confirmDeleteHistory: 'Are you sure you want to delete this search history?',
}
}
}
}

View File

@@ -42,6 +42,14 @@ export const lang = {
loadHistoryFail: '加载历史失败',
about: '0B',
// ====== ai-chat-message - 自动回复模板 ======
autoReplyGreeting: '您好!我是AI智能客服,很高兴为您服务!有什么可以帮助您的吗?',
autoReplyPrice: '我们的产品价格根据型号和配置有所不同,具体价格请查看商品详情页面。',
autoReplyShipping: '一般情况下,订单会在24小时内发货,具体时效请查看物流信息。',
autoReplyReturn: '支持7天无理由退货,请确保商品完好无损。',
autoReplyService: '我们的客服工作时间是9:00-18:00,有问题可以随时联系我们。',
autoReplyDefault: '感谢您的咨询!关于"{question}"的问题,我们的专业客服会尽快为您解答。您也可以查看我们的帮助文档获取更多信息。',
// ====== ai-chat-search ======
searchEntrance: '搜索',
searchPlaceholder: '搜索聊天记录',
@@ -118,5 +126,14 @@ export const lang = {
menuClearChat: '清空聊天',
menuExport: '导出记录',
menuSettings: '设置',
menuHelp: '帮助'
menuHelp: '帮助',
// ====== index.vue - 控制台日志(调试用) ======
logOnShowTriggered: '[AI Chat Page] onShow 触发',
logOnUnloadTriggered: '[AI Chat Page] onUnload 触发',
logKeyboardChangeUnavailable: 'onKeyboardHeightChange 不可用',
logEventHandleError: '事件处理错误',
logInitNavbarFailed: '初始化导航栏失败',
logChatComponentNotInit: '聊天组件未初始化',
logServicerConfigNotLoaded: '【AI客服】servicerConfig 未加载,200ms后重试...'
}

View File

@@ -1,4 +1,10 @@
export const lang = {
//title为每个页面的标题
title: '文章详情'
title: '文章详情',
// 发表时间标签
publishTime: '发表时间:',
// 阅读数标签
readCount: '阅读:',
// 点赞数后缀(人数+人已赞)
likedSuffix: '人已赞'
}

View File

@@ -1,5 +1,5 @@
export const lang = {
//title为每个页面的标题
title: '文章列表',
emptyText:"当前暂无文章信息"
emptyText: '暂无文章'
}

View File

@@ -8,19 +8,52 @@ export const lang = {
member: '个人中心'
},
//公共
common: {
//语言包名称
name: '中文',
mescrollTextInOffset: '下拉刷新',
mescrollTextOutOffset: '释放更新',
mescrollEmpty: "暂无相关数据",
goodsRecommendTitle: '猜你喜欢',
currencySymbol: '¥',
submit: '提交',
searchTip: '请输入搜索关键词'
},
//公共
common: {
//语言包名称
name: '中文',
mescrollTextInOffset: '下拉刷新',
mescrollTextOutOffset: '释放更新',
mescrollEmpty: "暂无相关数据",
goodsRecommendTitle: '猜你喜欢',
currencySymbol: '¥',
submit: '提交',
searchTip: '请输入搜索关键词',
// 版本更新
updateTip: '更新提示',
updateReady: '新版本已经准备好,是否重启应用?',
// 网络状态
networkLost: '网络失去链接',
networkCheck: '请检查网络链接',
// 配置相关
config: {
siteJsNotConfigured: '小程序发行环境下,必须配置site.js文件,不然将使用默认配置,影响小程序定制分发!'
},
// 平台检测
platform: {
wechatOfficialAccount: '微信公众号',
wechatMiniProgram: '微信小程序',
alipayMiniProgram: '支付宝小程序',
baiduMiniProgram: '百度小程序',
toutiaoMiniProgram: '头条小程序',
qqMiniProgram: 'QQ小程序',
kuaishouMiniProgram: '快手小程序',
jdMiniProgram: '京东小程序',
miniProgram360: '360小程序',
xhsMiniProgram: '小红书小程序',
harmonyService: '鸿蒙元服务',
app: 'APP',
pc: 'PC端',
h5: 'H5',
unknown: '未知平台',
},
},
// 导航工具
navigation: {
serviceUnavailable: '导航服务暂时不可用',
},
//客服
customer: {
weChatKefu: '微信客服',
@@ -58,6 +91,7 @@ export const lang = {
serviceUnavailable: '客服暂不可用',
wxworkLinkNotConfigured: '企业微信链接未配置',
fromFloatButton: '来自悬浮按钮的咨询',
serviceTypeNotConfigured: '客服类型未配置',
},
// 企业微信JS-SDK
@@ -153,6 +187,8 @@ export const lang = {
weekThursday: '周四',
weekFriday: '周五',
weekSaturday: '周六',
// 错误消息
deepCloneNotObject: 'obj 不是一个对象!',
},
// AI 客服服务
@@ -212,11 +248,6 @@ export const lang = {
logoutTitle: '提示',
logoutContent: '确定要退出登录吗',
// 导航工具
navigation: {
serviceUnavailable: '导航服务暂时不可用',
},
// 微信地图JSSDK
mapWxJssdk: {
// 错误提示

View File

@@ -1,7 +1,16 @@
export const lang = {
expand: '展开',
clickToCollapse: '点击收起',
reachedBottom: '已经到底了~',
noCategory: '暂时没有分类哦!',
pieceUnit: '件',
'components-diy': {
diyCategory: {
// 展开全部分类(横向滚动右侧展开按钮)
expand: '展开',
// 点击收起(展开弹窗底部收起按钮)
clickToCollapse: '点击收起',
// 滚动到底部提示
reachedBottom: '已经到底了~',
// 暂无分类(空状态提示)
noCategory: '暂时没有分类哦!',
// 商品单位:件
pieceUnit: '件',
},
},
}

View File

@@ -0,0 +1,7 @@
export const lang = {
// 销量文案:已售X件
soldCount: '已售{count}{unit}',
// 销量单位:件
soldUnit: '件',
}

View File

@@ -0,0 +1,14 @@
export const lang = {
'components-diy': {
diyIndexPage: {
// 首页(默认分类名称)
home: '首页',
// 销量文案:已售X件
soldCount: '已售{count}{unit}',
// 销量单位:件
soldUnit: '件',
// 分类下无商品的空状态提示
noGoodsInCategory: '该分类下暂无商品',
},
},
}

View File

@@ -0,0 +1,4 @@
export const lang = {
notice: '公告',
gotIt: '我知道了',
}

View File

@@ -1,6 +1,14 @@
export const lang = {
switchStore: '切换',
locating: '定位中...',
gettingLocation: '获取当前位置...',
searchPlaceholder: '商品搜索',
}
'components-diy': {
diyStore: {
// 切换门店(按钮文案)
switchStore: '切换门店',
// 定位中(加载状态提示)
locating: '定位中',
// 获取位置中(地址加载状态提示)
gettingLocation: '获取位置中',
// 搜索框占位符
searchPlaceholder: '搜索',
},
},
};

View File

@@ -0,0 +1,6 @@
export const lang = {
// H5端预加载视频失败
h5PreloadFailed: 'H5端预加载视频失败',
// 视频加载失败
videoLoadFailed: '视频加载失败',
}

View File

@@ -0,0 +1,22 @@
export const lang = {
// mescroll 下拉刷新/上拉加载组件
components: {
mescroll: {
// 下拉刷新提示文本
down: {
textInOffset: '下拉刷新',
textOutOffset: '释放更新',
textLoading: '加载中 ...',
},
// 上拉加载提示文本
up: {
textLoading: '加载中 ...',
textNoMore: '-- END --',
},
// 空布局提示
empty: {
tip: '~ 暂无相关数据 ~',
},
},
},
}

View File

@@ -1,4 +1,18 @@
export const lang = {
//title为每个页面的标题
title: '分销商',
// 会员信息
joinTime: '加入时间:',
// 统计单位
peopleUnit: '人',
orderUnit: '单',
currencyUnit: '元',
// 空状态
noData: '暂无数据',
// Toast 提示
merchantNotOpenFenxiao: '商家未开启分销',
}

View File

@@ -1,4 +1,9 @@
export const lang = {
//title为每个页面的标题
title: '查看文件',
searchPlaceholder: '请输入您要搜索的文件名称',
viewPdf: '查看PDF文件',
emptyText: '暂无文件',
loading: '正在加载',
fileNotExist: '文件不存在',
}

15
lang/zh-cn/form/form.js Normal file
View File

@@ -0,0 +1,15 @@
export const lang = {
// 表单页面
form: {
form: {
// 页面标题
title: '请填写表单所需信息',
// 提交成功提示
submitSuccess: '提交成功',
// 未获取到表单信息
noFormInfo: '未获取到表单信息',
},
},
}

View File

@@ -0,0 +1,48 @@
export const lang = {
// title为每个页面的标题
title: '绑定手机号',
bindMobile: {
// 一键授权绑定
oneClickAuthBind: '一键授权绑定',
// 手动绑定
manualBind: '手动绑定',
// 手机号
phoneNumber: '手机号',
// 请输入手机号
pleInputMobile: '请输入手机号',
// 请输入正确的手机号
surePhoneNumber: '请输入正确的手机号',
// 验证码
confirmCode: '验证码',
// 请输入验证码
confirmCodeInput: '请输入验证码',
// 短信验证码
smsCode: '短信验证码',
// 请输入动态码
animateCodeInput: '请输入动态码',
// 获取动态码
findanimateCode: '获取动态码',
// 已发送
codeSent: '已发送({seconds}s)',
// 请勿重复点击
doNotRepeatedlyClick: '请勿重复点击',
// 保存/绑定
save: '绑定',
// 绑定成功
bindSuccess: '绑定成功',
// 与原手机号一致,无需修改
alikePhone: '与原手机号一致,无需修改',
// 提示文案
tipTitle: '温馨提示',
// 绑定手机号后可享受更多服务
bindBenefitTip: '绑定手机号后可享受更多服务',
// 发送动态码提示
sendCodeTip: '点击"获取动态码",将会向您的手机号{mobile}发送验证码',
},
}

View File

@@ -1,3 +1,10 @@
export const lang = {
//title为每个页面的标题
title: '账号注销',
}
// 协议勾选提示
agreeTermsText: '勾选即表示您已阅读并同意本协议',
// 下一步按钮
nextStep: '下一步',
// 未勾选协议提示
pleaseAgreeFirst: '请先勾选同意协议',
}

View File

@@ -0,0 +1,25 @@
export const lang = {
//title为每个页面的标题
title: '会员卡记录',
// 顶部统计
totalConsume: '累计消费',
cardBalance: '卡余额',
totalRecharge: '累计充值',
yuanSuffix: '元',
statUnit: '({unit})',
// 筛选 tab
filterAll: '全部',
filterIncome: '收入',
filterExpense: '支出',
filterRecharge: '充值',
filterConsume: '消费',
filterGift: '赠送',
// 空状态
emptyTips: '暂无会员卡记录',
// 金额格式
amountWithUnit: '{amount}元',
}

View File

@@ -1,4 +1,7 @@
export const lang = {
//title为每个页面的标题
title: '我的关注'
title: '我的关注',
emptyText: '暂无关注的商品',
emptySubText: '赶紧去逛逛, 关注心仪的商品吧',
deleteSuccess: '删除成功'
}

View File

@@ -1,4 +1,9 @@
export const lang = {
//title为每个页面的标题
title: '修改头像'
title: '修改头像',
clickToUpload: '点击上传',
confirmSave: '确认保存',
reupload: '重新上传',
uploadFailed: '头像上传失败',
modifySuccess: '头像修改成功'
}

View File

@@ -1,4 +1,5 @@
export const lang = {
//title为每个页面的标题
title: '提现记录'
title: '提现记录',
emptyTips: '暂无提现记录'
}

View File

@@ -1,7 +1,38 @@
export const lang = {
//title为每个页面的标题
title: '商品列表',
// 搜索框 placeholder
searchPlaceholder: '请输入您要搜索的商品',
// 按钮默认文本
buyText: '购买',
// 排序
sort: {
comprehensive: '综合',
sales: '销量',
price: '价格',
filter: '筛选',
},
// 商品列表
goods: {
consultNow: '立即咨询',
sold: '已售{num}{unit}',
defaultUnit: '件',
noGoods: '暂无商品',
},
// 筛选弹窗
filter: {
title: '筛选',
allCategories: '全部分类',
all: '全部',
reset: '重置',
confirm: '确定',
},
// 弹窗提示
modal: {
title: '提示',

View File

@@ -15,5 +15,10 @@ export const lang = {
// 提示信息
toast: {
cancelSuccess: '撤销成功'
},
// 撤销退款弹窗
cancelRefund: {
content: '撤销之后本次申请将会关闭,如后续仍有问题可再次发起申请。',
cancelText: '暂不撤销'
}
}

View File

@@ -0,0 +1,91 @@
export const lang = {
//title为每个页面的标题
title: '发票申请',
// ====== 页头区 ======
header: {
title: '发票信息',
desc: '请填写发票相关信息'
},
// ====== 发票类型 ======
invoiceType: {
title: '发票类型',
paper: '纸质发票',
paperDesc: '发票将邮寄到指定地址',
electronic: '电子发票',
electronicDesc: '发票将发送至您的邮箱'
},
// ====== 发票抬头 ======
invoiceTitle: {
title: '发票抬头',
personal: '个人',
company: '企业',
label: '发票抬头',
personalPlaceholder: '请输入个人姓名',
companyPlaceholder: '请输入企业名称',
taxpayerId: '纳税人识别号',
taxpayerIdPlaceholder: '请输入纳税人识别号'
},
// ====== 发票内容 ======
invoiceContent: {
title: '发票内容',
label: '发票内容',
placeholder: '请选择发票内容'
},
// ====== 邮寄信息(纸质发票) ======
mailInfo: {
title: '邮寄信息',
receiver: '收件人',
receiverPlaceholder: '请输入收件人姓名',
mobile: '联系电话',
mobilePlaceholder: '请输入联系电话',
address: '邮寄地址',
regionPlaceholder: '请选择所在地区',
detailAddress: '详细地址',
detailAddressPlaceholder: '请输入详细地址'
},
// ====== 邮箱信息(电子发票) ======
emailInfo: {
title: '邮箱信息',
receiverEmail: '接收邮箱',
emailPlaceholder: '请输入接收发票的邮箱地址'
},
// ====== 费用区 ======
fee: {
taxFee: '发票税费',
deliveryFee: '邮寄费用'
},
// ====== 底部提交区 ======
footer: {
tip: '温馨提示:发票申请提交后将在{days}个工作日内处理',
submit: '提交申请'
},
// ====== 表单校验提示 ======
validation: {
pleaseEnterTitle: '请输入发票抬头',
pleaseEnterTaxpayerId: '请输入纳税人识别号',
pleaseSelectContent: '请选择发票内容',
pleaseEnterReceiver: '请输入收件人姓名',
pleaseEnterMobile: '请输入联系电话',
pleaseSelectRegion: '请选择所在地区',
pleaseEnterAddress: '请输入详细地址',
pleaseEnterEmail: '请输入接收邮箱',
invalidEmail: '请输入正确的邮箱地址'
},
// ====== 接口消息 ======
api: {
getConfigFailed: '获取发票配置失败',
submitSuccess: '发票申请提交成功',
submitFailed: '提交失败,请稍后重试',
networkError: '网络错误,请稍后重试'
}
}

View File

@@ -1,4 +1,16 @@
export const lang = {
//title为每个页面的标题
title: '物流信息'
title: '物流信息',
// 订单物流信息
order: {
logistics: {
// 快递公司信息
expressCompany: '承运公司:',
trackingNo: '运单号:',
// 提示消息
orderInfoNotFound: '未获取到订单信息!'
}
}
}

View File

@@ -64,6 +64,12 @@ export const lang = {
cancelSuccess: '撤销成功'
},
// ====== 撤销退款弹窗 ======
cancelRefund: {
content: '撤销之后本次申请将会关闭,如后续仍有问题可再次发起申请。',
cancelText: '暂不撤销'
},
// ====== 表单验证 ======
validate: {
pleaseInputExpressCompany: '请输入物流公司',

View File

@@ -1,17 +1,27 @@
export const lang = {
// 页面标题
title: '搜索结果',
// 操作按钮
exportImage: '导出图片',
exportPdf: '导出PDF',
// 印章详情
seal: {
medium: {
detail: {
// 页面标题
title: '印章详情',
// 导出图片
exportImage: '导出图片',
// 导出PDF
exportPdf: '导出PDF',
// 加载中
loading: '加载中',
// 文件不存在
fileNotExist: '文件不存在',
// 保存成功
saveSuccess: '保存成功',
// 保存失败
saveFailed: '保存失败',
// 下载失败
downloadFailed: '下载失败',
}
}
}
// 加载提示
loading: '正在加载',
// 提示消息
fileNotExist: '文件不存在',
saveSuccess: '保存成功',
saveFailed: '保存失败,请稍后重试',
downloadFailed: '下载失败',
}

View File

@@ -1,23 +1,23 @@
export const lang = {
//title为每个页面的标题
title: '介质材料搜索',
// 印章搜索页
seal: {
medium: {
search: {
// 搜索框占位符
placeholder: "请输入介质名称 '如汽油'",
placeholder: '请输入关键词搜索',
// 搜索结果标题
searchResult: '搜索结果',
// 空状态文案
// 空数据提示
noData: '暂无数据',
// 弹窗标题
tip: '提示',
// 删除全部历史记录确认
confirmDeleteAllHistory: '确认删除全部历史记录?',
// 删除单条历史记录确认
confirmDeleteHistory: '确认删除该条历史记录?',
// 确认删除全部历史记录
confirmDeleteAllHistory: '确定要删除全部搜索历史吗?',
// 确认删除单条历史记录
confirmDeleteHistory: '确定要删除这条搜索历史吗?',
}
}
}
}