feat(i18n): 剩余15页全量接入中英(登录/注册/扫码/绑定/佩戴/扫描/治疗/订阅/帮助等)
- 3 个并行 agent 各管 5 页,互不重叠命名空间 - 全 App 18 页均 i18n.bind,22 命名空间/400 键中英对齐 - 动态文案(时长/天数/价格/区域)JS 内 i18n.t 计算;区域标签复用 common.regions
这个提交包含在:
@@ -1,5 +1,40 @@
|
||||
// Strings for the autoScan page. Fill zh/en with identical key structure.
|
||||
// Strings for the auto-scan (smart scan) page. Keep zh/en with identical key structure.
|
||||
// Pre/Post pairs are concatenated around a frame count in WXML (WXML cannot do {param}).
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '智能检测',
|
||||
subReady: '准备就绪',
|
||||
subWaiting: '等待佩戴贴合...',
|
||||
subCollectingPre: '采集数据中 (',
|
||||
subCollectingPost: '帧)...',
|
||||
subDone: '检测完成,正在启动...',
|
||||
readyHint: '设备已佩戴,点击下方按钮开始智能检测',
|
||||
startBtn: '开始检测',
|
||||
waitingStatus: '正在检测面膜贴合状态,请确保设备正确佩戴...',
|
||||
collectingStatusPre: '已贴合,正在采集光谱数据... 已收到 ',
|
||||
collectingStatusPost: ' 帧',
|
||||
doneStatusPre: '检测完成(共 ',
|
||||
doneStatusPost: ' 帧),正在启动治疗...',
|
||||
notWorn: '面膜未佩戴好,请重新佩戴后再试',
|
||||
timeout: '检测超时,未收到数据,请重试',
|
||||
cmdFailed: '检测命令发送失败'
|
||||
},
|
||||
en: {
|
||||
title: 'Smart Scan',
|
||||
subReady: 'Ready',
|
||||
subWaiting: 'Waiting for fit...',
|
||||
subCollectingPre: 'Collecting data (',
|
||||
subCollectingPost: ' frames)...',
|
||||
subDone: 'Scan complete, starting...',
|
||||
readyHint: 'Device is on. Tap the button below to start the smart scan',
|
||||
startBtn: 'Start Scan',
|
||||
waitingStatus: 'Checking mask fit, please make sure the device is worn correctly...',
|
||||
collectingStatusPre: 'Fitted. Collecting spectral data... received ',
|
||||
collectingStatusPost: ' frames',
|
||||
doneStatusPre: 'Scan complete (',
|
||||
doneStatusPost: ' frames), starting treatment...',
|
||||
notWorn: 'The mask is not worn properly. Please re-fit and try again',
|
||||
timeout: 'Scan timed out with no data. Please try again',
|
||||
cmdFailed: 'Failed to send scan command'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
// Strings for the bindSuccess page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '绑定成功',
|
||||
subtitle: '设备已成功绑定',
|
||||
successTitle: '绑定成功!',
|
||||
freeModeOpen: '智能模式已开放',
|
||||
trialGranted: '恭喜获得{days}天智能模式试用',
|
||||
trialSub: '体验结束后可订阅继续使用',
|
||||
startUsing: '开始使用',
|
||||
goHome: '返回首页'
|
||||
},
|
||||
en: {
|
||||
title: 'Bound Successfully',
|
||||
subtitle: 'Device bound successfully',
|
||||
successTitle: 'Bound Successfully!',
|
||||
freeModeOpen: 'Smart mode unlocked',
|
||||
trialGranted: 'You got a {days}-day Smart mode trial',
|
||||
trialSub: 'Subscribe to keep using it after the trial ends',
|
||||
startUsing: 'Get Started',
|
||||
goHome: 'Back to Home'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
// Strings for the bleConnect page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '蓝牙连接',
|
||||
searchingSub: '正在搜索设备...',
|
||||
connectingSub: '正在连接设备...',
|
||||
bindingSub: '正在绑定...',
|
||||
failedSub: '连接失败',
|
||||
bluetoothTip: '请确保手机蓝牙已开启',
|
||||
searching: '搜索中...',
|
||||
pairing: '正在配对...',
|
||||
failed: '连接失败',
|
||||
scanTimeout: '搜索超时,请确认设备已开机并在附近',
|
||||
confirmFailed: '后台确认绑定失败',
|
||||
bindFailed: '设备绑定失败',
|
||||
bindCmdFailed: '绑定命令失败'
|
||||
},
|
||||
en: {
|
||||
title: 'Bluetooth Connection',
|
||||
searchingSub: 'Searching for device...',
|
||||
connectingSub: 'Connecting to device...',
|
||||
bindingSub: 'Binding...',
|
||||
failedSub: 'Connection failed',
|
||||
bluetoothTip: 'Please make sure Bluetooth is enabled on your phone',
|
||||
searching: 'Searching...',
|
||||
pairing: 'Pairing...',
|
||||
failed: 'Connection failed',
|
||||
scanTimeout: 'Search timed out. Please make sure the device is powered on and nearby',
|
||||
confirmFailed: 'Failed to confirm binding on the server',
|
||||
bindFailed: 'Device binding failed',
|
||||
bindCmdFailed: 'Binding command failed'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
// Strings for the contact page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '联系我们',
|
||||
placeholderText: '内容建设中',
|
||||
placeholderSub: '联系方式正在整理,敬请期待'
|
||||
},
|
||||
en: {
|
||||
title: 'Contact Us',
|
||||
placeholderText: 'Coming soon',
|
||||
placeholderSub: 'Contact details are being prepared. Stay tuned.'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,13 @@
|
||||
// Strings for the help page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '使用帮助',
|
||||
placeholderText: '内容建设中',
|
||||
placeholderSub: '帮助文档正在编写,敬请期待'
|
||||
},
|
||||
en: {
|
||||
title: 'Help',
|
||||
placeholderText: 'Coming soon',
|
||||
placeholderSub: 'The help guide is being written. Stay tuned.'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
// Strings for the login page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
wechatLogin: '微信登录',
|
||||
welcome: '欢迎使用LumiFlow',
|
||||
desc: '登录后即可使用全部功能',
|
||||
agreement: '登录即表示同意《用户协议》和《隐私政策》',
|
||||
loginFailed: '登录失败',
|
||||
agreementTitle: '提示',
|
||||
agreementContent: '用户协议和隐私政策内容建设中'
|
||||
},
|
||||
en: {
|
||||
wechatLogin: 'WeChat Login',
|
||||
welcome: 'Welcome to LumiFlow',
|
||||
desc: 'Log in to unlock all features',
|
||||
agreement: 'By logging in, you agree to the Terms of Service and Privacy Policy',
|
||||
loginFailed: 'Login failed',
|
||||
agreementTitle: 'Notice',
|
||||
agreementContent: 'Terms of Service and Privacy Policy are coming soon'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,45 @@
|
||||
// Strings for the register page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
subtitle: '完善个人资料',
|
||||
avatarSection: '设置头像',
|
||||
changeAvatar: '点击更换',
|
||||
nicknameSection: '设置昵称',
|
||||
nicknamePlaceholder: '请输入昵称',
|
||||
authorizePhone: '授权手机号',
|
||||
phoneHint: '手机号用于接收服务通知,必须授权',
|
||||
submit: '完成注册',
|
||||
agreement: '注册即表示同意《用户协议》和《隐私政策》',
|
||||
nicknamePrefix: '用户',
|
||||
phoneRequired: '需要授权手机号才能完成注册',
|
||||
phoneAuthSuccess: '手机号授权成功',
|
||||
phoneAuthFailed: '手机号授权失败',
|
||||
authorized: '已授权',
|
||||
uploadFailed: '上传失败',
|
||||
phoneFirst: '请先授权手机号',
|
||||
nicknameRequired: '请输入昵称',
|
||||
agreementTitle: '提示',
|
||||
agreementContent: '用户协议和隐私政策内容建设中'
|
||||
},
|
||||
en: {
|
||||
subtitle: 'Complete Your Profile',
|
||||
avatarSection: 'Set Avatar',
|
||||
changeAvatar: 'Tap to change',
|
||||
nicknameSection: 'Set Nickname',
|
||||
nicknamePlaceholder: 'Enter a nickname',
|
||||
authorizePhone: 'Authorize Phone Number',
|
||||
phoneHint: 'Your phone number is used to receive service notifications and is required',
|
||||
submit: 'Complete Registration',
|
||||
agreement: 'By registering, you agree to the Terms of Service and Privacy Policy',
|
||||
nicknamePrefix: 'User',
|
||||
phoneRequired: 'Phone number authorization is required to complete registration',
|
||||
phoneAuthSuccess: 'Phone number authorized',
|
||||
phoneAuthFailed: 'Phone authorization failed',
|
||||
authorized: 'Authorized',
|
||||
uploadFailed: 'Upload failed',
|
||||
phoneFirst: 'Please authorize your phone number first',
|
||||
nicknameRequired: 'Please enter a nickname',
|
||||
agreementTitle: 'Notice',
|
||||
agreementContent: 'Terms of Service and Privacy Policy are coming soon'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
// Strings for the scan page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '扫码绑定',
|
||||
subtitle: '扫描设备底部二维码',
|
||||
scanText: '扫描设备二维码',
|
||||
scan: '扫码',
|
||||
scanning: '扫描中...',
|
||||
manualInput: '手动输入设备号',
|
||||
manualPlaceholder: '请输入设备ID,如 672B6D5A 4DCD861',
|
||||
invalidQr: '无效的设备二维码',
|
||||
alreadyBound: '已绑定设备',
|
||||
bindFailed: '绑定失败',
|
||||
invalidFormat: '设备号格式不正确'
|
||||
},
|
||||
en: {
|
||||
title: 'Scan to Bind',
|
||||
subtitle: 'Scan the QR code on the bottom of the device',
|
||||
scanText: 'Scan device QR code',
|
||||
scan: 'Scan',
|
||||
scanning: 'Scanning...',
|
||||
manualInput: 'Enter Device ID Manually',
|
||||
manualPlaceholder: 'Enter device ID, e.g. 672B6D5A 4DCD861',
|
||||
invalidQr: 'Invalid device QR code',
|
||||
alreadyBound: 'Device already bound',
|
||||
bindFailed: 'Binding failed',
|
||||
invalidFormat: 'Invalid device ID format'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,33 @@
|
||||
// Strings for the setup page. Fill zh/en with identical key structure.
|
||||
// Strings for the treatment-setup page. Keep zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '使用设置',
|
||||
subtitle: '选择模式和区域',
|
||||
selectMode: '选择模式',
|
||||
normalMode: '普通模式',
|
||||
normalModeSub: '6色循环',
|
||||
smartMode: '智能模式',
|
||||
remainDays: '剩余{days}天',
|
||||
subscribeUnlock: '订阅解锁',
|
||||
selectRegion: '选择区域',
|
||||
normalTip: '普通模式固定 10 分钟,使用区域默认全区域,不可调整',
|
||||
startBtn: '开始使用',
|
||||
noRegion: '请至少选择一个区域',
|
||||
startFailed: '启动失败'
|
||||
},
|
||||
en: {
|
||||
title: 'Session Setup',
|
||||
subtitle: 'Choose mode and regions',
|
||||
selectMode: 'Select Mode',
|
||||
normalMode: 'Normal Mode',
|
||||
normalModeSub: '6-color cycle',
|
||||
smartMode: 'Smart Mode',
|
||||
remainDays: '{days} days left',
|
||||
subscribeUnlock: 'Subscribe to unlock',
|
||||
selectRegion: 'Select Regions',
|
||||
normalTip: 'Normal mode runs a fixed 10 minutes over all regions and cannot be adjusted',
|
||||
startBtn: 'Start',
|
||||
noRegion: 'Please select at least one region',
|
||||
startFailed: 'Failed to start'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,87 @@
|
||||
// Strings for the subPlans page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '订阅服务',
|
||||
subtitle: '解锁智能模式',
|
||||
currentPlanLabel: '当前套餐',
|
||||
remainDaysLabel: '剩余天数',
|
||||
daysValue: '{days}天',
|
||||
choosePlan: '选择订阅套餐',
|
||||
loadingPlans: '加载套餐中...',
|
||||
smartMode: '智能模式',
|
||||
smartModeDesc: '智能自动调节',
|
||||
renew: '续费',
|
||||
confirmPay: '确认支付',
|
||||
agreement: '支付即表示同意《订阅协议》',
|
||||
// plan names (also used as fallback plan labels)
|
||||
planTrial: '试用',
|
||||
planMonthly: '月卡',
|
||||
planYearly: '年卡',
|
||||
// computed plan descriptions
|
||||
free: '免费',
|
||||
descTrial: '{days}天免费体验',
|
||||
descSave: '省¥{amount}',
|
||||
descDaily: '约{price}元/天',
|
||||
tagRecommend: '推荐',
|
||||
tagUsed: '已使用',
|
||||
// modals / toasts
|
||||
tipTitle: '提示',
|
||||
agreementBuilding: '订阅协议内容建设中',
|
||||
activateTrialTitle: '激活试用',
|
||||
activateTrialConfirm: '免费试用 {desc}?',
|
||||
confirmRenewTitle: '确认续费',
|
||||
confirmPayTitle: '确认支付',
|
||||
renewContent: '在现有订阅基础上延长{days}天,支付 ¥{price}',
|
||||
payContent: '支付 ¥{price}',
|
||||
trialActivated: '试用已激活',
|
||||
activateFailed: '激活失败',
|
||||
payUnavailable: '支付服务暂不可用',
|
||||
payCancelled: '已取消支付',
|
||||
payFailed: '支付失败',
|
||||
createOrderFailed: '创建订单失败',
|
||||
paySuccess: '支付成功',
|
||||
payProcessing: '支付处理中,请稍后在订阅页查看'
|
||||
},
|
||||
en: {
|
||||
title: 'Subscription',
|
||||
subtitle: 'Unlock Smart Mode',
|
||||
currentPlanLabel: 'Current plan',
|
||||
remainDaysLabel: 'Days remaining',
|
||||
daysValue: '{days} days',
|
||||
choosePlan: 'Choose a plan',
|
||||
loadingPlans: 'Loading plans...',
|
||||
smartMode: 'Smart Mode',
|
||||
smartModeDesc: 'Automatic smart adjustment',
|
||||
renew: 'Renew',
|
||||
confirmPay: 'Pay Now',
|
||||
agreement: 'By paying you agree to the Subscription Agreement',
|
||||
// plan names (also used as fallback plan labels)
|
||||
planTrial: 'Trial',
|
||||
planMonthly: 'Monthly',
|
||||
planYearly: 'Yearly',
|
||||
// computed plan descriptions
|
||||
free: 'Free',
|
||||
descTrial: '{days}-day free trial',
|
||||
descSave: 'Save ¥{amount}',
|
||||
descDaily: 'About ¥{price}/day',
|
||||
tagRecommend: 'Best value',
|
||||
tagUsed: 'Used',
|
||||
// modals / toasts
|
||||
tipTitle: 'Notice',
|
||||
agreementBuilding: 'The subscription agreement is being prepared',
|
||||
activateTrialTitle: 'Activate trial',
|
||||
activateTrialConfirm: 'Start free trial: {desc}?',
|
||||
confirmRenewTitle: 'Confirm renewal',
|
||||
confirmPayTitle: 'Confirm payment',
|
||||
renewContent: 'Extend your current subscription by {days} days for ¥{price}',
|
||||
payContent: 'Pay ¥{price}',
|
||||
trialActivated: 'Trial activated',
|
||||
activateFailed: 'Activation failed',
|
||||
payUnavailable: 'Payment service is unavailable',
|
||||
payCancelled: 'Payment cancelled',
|
||||
payFailed: 'Payment failed',
|
||||
createOrderFailed: 'Failed to create order',
|
||||
paySuccess: 'Payment successful',
|
||||
payProcessing: 'Payment is processing. Please check the subscription page later.'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
// Strings for the subPrompt page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '使用设置',
|
||||
subtitle: '试用期已结束',
|
||||
selectMode: '选择模式',
|
||||
normalMode: '普通模式',
|
||||
normalModeSub: '6色循环',
|
||||
smartMode: '智能模式',
|
||||
smartModeSub: '订阅解锁',
|
||||
trialEndedTitle: '试用已结束',
|
||||
trialEndedSub: '订阅后继续使用智能模式',
|
||||
subscribeNow: '立即订阅',
|
||||
useNormalFirst: '先使用普通模式'
|
||||
},
|
||||
en: {
|
||||
title: 'Settings',
|
||||
subtitle: 'Your free trial has ended',
|
||||
selectMode: 'Choose a mode',
|
||||
normalMode: 'Standard Mode',
|
||||
normalModeSub: '6-color cycle',
|
||||
smartMode: 'Smart Mode',
|
||||
smartModeSub: 'Unlock with subscription',
|
||||
trialEndedTitle: 'Trial ended',
|
||||
trialEndedSub: 'Subscribe to keep using Smart Mode',
|
||||
subscribeNow: 'Subscribe Now',
|
||||
useNormalFirst: 'Use Standard Mode for now'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,29 @@
|
||||
// Strings for the subSuccess page. Fill zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '订阅成功',
|
||||
subtitle: '欢迎使用智能模式',
|
||||
successTitle: '订阅成功!',
|
||||
subscribed: '已订阅',
|
||||
validUntil: '有效期至:',
|
||||
startSmart: '立即体验智能模式',
|
||||
backHome: '返回首页',
|
||||
planTrial: '试用会员',
|
||||
planMonthly: '月卡会员',
|
||||
planYearly: '年卡会员',
|
||||
planDefault: '会员'
|
||||
},
|
||||
en: {
|
||||
title: 'Subscription Successful',
|
||||
subtitle: 'Welcome to Smart Mode',
|
||||
successTitle: 'Subscription successful!',
|
||||
subscribed: 'Subscribed',
|
||||
validUntil: 'Valid until: ',
|
||||
startSmart: 'Try Smart Mode now',
|
||||
backHome: 'Back to Home',
|
||||
planTrial: 'Trial Member',
|
||||
planMonthly: 'Monthly Member',
|
||||
planYearly: 'Yearly Member',
|
||||
planDefault: 'Member'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,59 @@
|
||||
// Strings for the treating page. Fill zh/en with identical key structure.
|
||||
// Strings for the treating (live treatment) page. Keep zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '使用中',
|
||||
subtitle: '正在使用...',
|
||||
remainingLabel: '剩余时间',
|
||||
smartMode: '✨ 智能模式',
|
||||
normalMode: '🔄 普通模式',
|
||||
allRegions: '全区域',
|
||||
regionTopLeft: '左上区',
|
||||
regionTopRight: '右上区',
|
||||
relax1: '请放松心情',
|
||||
relax2: '享受美好时光',
|
||||
stopBtn: '停止使用',
|
||||
fittingLost: '检测到离肤,请重新佩戴设备',
|
||||
fittingRestored: '已重新贴合,继续使用',
|
||||
faultTitle: '设备故障',
|
||||
faultContent: '设备上报故障,已自动停止。',
|
||||
lowBatteryTitle: '电量过低',
|
||||
lowBatteryContent: '设备电量不足5%,已自动停止。请及时充电。',
|
||||
lowBatteryWarn: '电量低,请及时充电',
|
||||
exceptionTitle: '设备异常',
|
||||
exceptionContent: '使用过程中出现异常',
|
||||
disconnected: '设备连接断开,正在重连...',
|
||||
reconnected: '设备已重新连接',
|
||||
reconnectFailedTitle: '连接丢失',
|
||||
reconnectFailedContent: '设备蓝牙连接已断开,无法恢复。本次使用数据将保存。',
|
||||
stopTitle: '结束使用',
|
||||
stopContent: '确定要提前结束本次使用吗?'
|
||||
},
|
||||
en: {
|
||||
title: 'In Progress',
|
||||
subtitle: 'Treatment in progress...',
|
||||
remainingLabel: 'Time Left',
|
||||
smartMode: '✨ Smart Mode',
|
||||
normalMode: '🔄 Normal Mode',
|
||||
allRegions: 'All regions',
|
||||
regionTopLeft: 'Top-left',
|
||||
regionTopRight: 'Top-right',
|
||||
relax1: 'Relax and unwind',
|
||||
relax2: 'Enjoy your moment',
|
||||
stopBtn: 'Stop',
|
||||
fittingLost: 'Device lifted off skin. Please put it back on',
|
||||
fittingRestored: 'Re-fitted, continuing',
|
||||
faultTitle: 'Device Fault',
|
||||
faultContent: 'The device reported a fault and stopped automatically.',
|
||||
lowBatteryTitle: 'Battery Too Low',
|
||||
lowBatteryContent: 'Battery is below 5%. Stopped automatically. Please charge soon.',
|
||||
lowBatteryWarn: 'Low battery, please charge soon',
|
||||
exceptionTitle: 'Device Error',
|
||||
exceptionContent: 'Something went wrong during the session',
|
||||
disconnected: 'Device disconnected, reconnecting...',
|
||||
reconnected: 'Device reconnected',
|
||||
reconnectFailedTitle: 'Connection Lost',
|
||||
reconnectFailedContent: 'The Bluetooth connection was lost and cannot be restored. This session will be saved.',
|
||||
stopTitle: 'End Session',
|
||||
stopContent: 'Are you sure you want to end this session early?'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
// Strings for the treatmentDone page. Fill zh/en with identical key structure.
|
||||
// Strings for the treatment-done page. Keep zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '使用完成',
|
||||
headerSub: '本次使用已结束',
|
||||
resultTitle: '使用完成!',
|
||||
durationLabel: '使用时长',
|
||||
regionLabel: '使用区域',
|
||||
recorded: '本次使用已记录',
|
||||
backHome: '返回首页',
|
||||
durationMin: '{min}分钟',
|
||||
durationSec: '{sec}秒'
|
||||
},
|
||||
en: {
|
||||
title: 'Complete',
|
||||
headerSub: 'This session has ended',
|
||||
resultTitle: 'Session Complete!',
|
||||
durationLabel: 'Duration',
|
||||
regionLabel: 'Regions',
|
||||
recorded: 'This session has been recorded',
|
||||
backHome: 'Back to Home',
|
||||
durationMin: '{min} min',
|
||||
durationSec: '{sec} s'
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,39 @@
|
||||
// Strings for the wearCheck page. Fill zh/en with identical key structure.
|
||||
// Strings for the wear-check page. Keep zh/en with identical key structure.
|
||||
module.exports = {
|
||||
zh: {},
|
||||
en: {}
|
||||
zh: {
|
||||
title: '确认佩戴',
|
||||
subtitle: '请确保设备正确佩戴',
|
||||
connected: '已连接',
|
||||
disconnected: '未连接',
|
||||
battery: '电量',
|
||||
guideTitle: '佩戴指引',
|
||||
guideImg: '设备佩戴示意图',
|
||||
step1: '1. 取出设备,展开弹性绑带',
|
||||
step2: '2. 将设备正确佩戴',
|
||||
step3: '3. 调节绑带至舒适位置',
|
||||
confirmBtn: '确认已佩戴,开始检测',
|
||||
reconnect: '重新连接',
|
||||
connecting: '正在连接...',
|
||||
connectSuccess: '连接成功',
|
||||
connectFailed: '连接失败',
|
||||
searchTimeout: '搜索超时'
|
||||
},
|
||||
en: {
|
||||
title: 'Confirm Fit',
|
||||
subtitle: 'Make sure the device is worn correctly',
|
||||
connected: 'Connected',
|
||||
disconnected: 'Not connected',
|
||||
battery: 'Battery',
|
||||
guideTitle: 'How to Wear',
|
||||
guideImg: 'Wearing diagram',
|
||||
step1: '1. Take out the device and unfold the strap',
|
||||
step2: '2. Put the device on correctly',
|
||||
step3: '3. Adjust the strap to a comfortable fit',
|
||||
confirmBtn: 'Confirm Fit & Continue',
|
||||
reconnect: 'Reconnect',
|
||||
connecting: 'Connecting...',
|
||||
connectSuccess: 'Connected',
|
||||
connectFailed: 'Connection failed',
|
||||
searchTimeout: 'Search timed out'
|
||||
}
|
||||
}
|
||||
|
||||
在新工单中引用
屏蔽一个用户