更新默认本地语言

This commit is contained in:
wyf
2025-08-11 14:55:09 +08:00
parent 50e1ebea20
commit da6da14d6a
16 changed files with 1468 additions and 1290 deletions

View File

@@ -1,5 +1,5 @@
{ {
"语言名称":"English", "语言名称": "English",
"菜单": { "菜单": {
"首页": "Home", "首页": "Home",
"报告": "Report", "报告": "Report",
@@ -32,396 +32,410 @@
"未命名": "Unnamed", "未命名": "Unnamed",
"去登录": "Go to login", "去登录": "Go to login",
"头像限制": "Avatar image cannot exceed 5MB", "头像限制": "Avatar image cannot exceed 5MB",
"头像上传失败":"Avatar upload failed", "头像上传失败": "Avatar upload failed",
"未选择图片":"No image selected", "未选择图片": "No image selected",
"上传成功":"Upload successful", "上传成功": "Upload successful",
"保存失败":"Save failed", "保存失败": "Save failed",
"保存成功":"Save successful", "保存成功": "Save successful",
"昵称为空":"Nickname cannot be empty", "昵称为空": "Nickname cannot be empty",
"查询失败":"Failed to query user information" "查询失败": "Failed to query user information"
}, },
"我的设备": "My devices", "我的设备": "My devices",
"请选择设备类型": "Please select device type", "请选择设备类型": "Please select device type",
"体征监测设备": "Vital sign monitoring device", "体征监测设备": "Vital sign monitoring device",
"智能床/床垫": "Smart bed/mattress", "智能床/床垫": "Smart bed/mattress",
"摄像头": "Camera", "摄像头": "Camera",
"绑定引导":{ "绑定引导": {
"说明标题": "Device placement instructions:", "说明标题": "Device placement instructions:",
"说明正文": "This vital sign monitoring device should be placed under the mattress (label side facing up), preferably directly below the user's chest area. After placement, connect to power. When the control box flashes green rapidly, you can begin the binding process.", "说明正文": "This vital sign monitoring device should be placed under the mattress (label side facing up), preferably directly below the user's chest area. After placement, connect to power. When the control box flashes green rapidly, you can begin the binding process.",
"不再提示": "Don't show again", "不再提示": "Don't show again",
"跳过": "Skip" "跳过": "Skip"
}, },
"蓝牙绑定":{ "蓝牙绑定": {
"标题":"Bluetooth Binding", "标题": "Bluetooth Binding",
"扫描":"Scanning Bluetooth devices...", "扫描": "Scanning Bluetooth devices...",
"信号":"Minimum signal strength", "信号": "Minimum signal strength",
"搜索提示":"Search devices", "搜索提示": "Search devices",
"搜索":"Search", "搜索": "Search",
"匹配":"Matched peripheral devices", "匹配": "Matched peripheral devices",
"信号强度":"Signal strength", "信号强度": "Signal strength",
"SN":"SN", "SN": "SN",
"蓝牙地址":"Bluetooth address", "蓝牙地址": "Bluetooth address",
"mac":"MAC", "mac": "MAC",
"网络":"Network", "网络": "Network",
"在线":"Online", "在线": "Online",
"离线":"Offline", "离线": "Offline",
"版本":"Version", "版本": "Version",
"默认设备名称":"Unknown device", "默认设备名称": "Unknown device",
"传感器":"Sensor", "传感器": "Sensor",
"可绑定":"Available", "可绑定": "Available",
"已被绑定":"Bound", "已被绑定": "Bound",
"双人版绑定标题":"This is a dual-user device, please select", "双人版绑定标题": "This is a dual-user device, please select",
"绑定全部":"Bind all", "绑定全部": "Bind all",
"主设备":"Primary device:", "主设备": "Primary device:",
"从设备":"Secondary device:", "从设备": "Secondary device:",
"确定":"Confirm", "确定": "Confirm",
"取消":"Cancel", "取消": "Cancel",
"无法绑定":"Cannot bind!", "无法绑定": "Cannot bind!",
"无法绑定1":"Detected that this device", "无法绑定1": "Detected that this device",
"无法绑定2":"has been bound", "无法绑定2": "has been bound",
"无法绑定3":", please unbind first before binding. Contact customer service if you have questions", "无法绑定3": ", please unbind first before binding. Contact customer service if you have questions",
"知道了":"Got it", "知道了": "Got it",
"是":"Yes", "是": "Yes",
"否":"No", "否": "No",
"确定绑定提示":"Confirm binding this device?", "确定绑定提示": "Confirm binding this device?",
"连接成功":"Bluetooth connected successfully", "连接成功": "Bluetooth connected successfully",
"连接异常":"Bluetooth connection exception", "连接异常": "Bluetooth connection exception",
"连接":"Connect", "连接": "Connect",
"输入wifi密码":"Please enter WiFi password", "输入wifi密码": "Please enter WiFi password",
"显示密码":"Show", "显示密码": "Show",
"不显示密码":"Hide" "不显示密码": "Hide"
}, },
"登录页":{ "登录页": {
"欢迎使用太和e护":"Welcome to Taihe eCare", "欢迎使用太和e护": "Welcome to Taihe eCare",
"科技睡眠 洞悉万千":"Tech sleep, insightful data", "科技睡眠 洞悉万千": "Tech sleep, insightful data",
"本机号码一键登录/注册":"One-click login/registration with this device's number", "本机号码一键登录/注册": "One-click login/registration with this device's number",
"其他手机号码":"Other account login", "其他手机号码": "Other account login",
"协议1":"By logging in you automatically register and agree to", "协议1": "By logging in you automatically register and agree to",
"协议2":"User Agreement", "协议2": "User Agreement",
"协议3":"and", "协议3": "and",
"协议4":"Privacy Policy", "协议4": "Privacy Policy",
"协议5":"as well as", "协议5": "as well as",
"协议6":"Terms of Use", "协议6": "Terms of Use",
"其他登录方式":"Welcome to Taihe eCare", "其他登录方式": "Welcome to Taihe eCare",
"未同意协议":"Please agree to the terms" "未同意协议": "Please agree to the terms"
}, },
"人员资料":{ "人员资料": {
"标题":"User Information", "标题": "User Information",
"保存":"Save", "保存": "Save",
"名字输入提示":"User name (required)", "名字输入提示": "User name (required)",
"生日输入提示":"Birthday (required)", "生日输入提示": "Birthday (required)",
"体重输入提示":"Weight kg (required)", "体重输入提示": "Weight kg (required)",
"疾病标题":"Chronic disease management", "疾病标题": "Chronic disease management",
"提示":"Tip: Providing accurate user information can make sleep report monitoring data more precise!" "提示": "Tip: Providing accurate user information can make sleep report monitoring data more precise!"
}, },
"绑定成功":{ "绑定成功": {
"标题":"Binding Complete", "标题": "Binding Complete",
"绑定成功":"Binding successful!", "绑定成功": "Binding successful!",
"分享标题":"Share now?", "分享标题": "Share now?",
"分享内容":"After successful device binding, you can share your sleep data with friends or family. After sharing, they will have access to view this device's sleep reports.", "分享内容": "After successful device binding, you can share your sleep data with friends or family. After sharing, they will have access to view this device's sleep reports.",
"立即分享":"Share now", "立即分享": "Share now",
"返回":"Back" "返回": "Back"
}, },
"日期":{ "日期": {
"取消":"Cancel", "取消": "Cancel",
"确定":"Confirm", "确定": "Confirm",
"年":"Year", "年": "Year",
"月":"Month", "月": "Month",
"日":"Day" "日": "Day"
}, },
"wifi页":{ "wifi页": {
"标题":"WiFi Configuration", "标题": "WiFi Configuration",
"跳过":"Skip", "跳过": "Skip",
"WLAN":"Network", "WLAN": "Network",
"未连接":"Not connected", "未连接": "Not connected",
"已连接":"Connected", "已连接": "Connected",
"可用WLAN":"Available WiFi", "可用WLAN": "Available WiFi",
"刷新":"Refresh", "刷新": "Refresh",
"密码为空":"Password cannot be empty", "密码为空": "Password cannot be empty",
"配网成功":"Network configured successfully", "配网成功": "Network configured successfully",
"配网失败":"Network configuration failed", "配网失败": "Network configuration failed",
"配网中":"Configuring network", "配网中": "Configuring network",
"需配网":"Please configure network for device!" "需配网": "Please configure network for device!"
}, },
"其他手机登录页":{ "其他手机登录页": {
"输入内容":"Enter phone number/email", "输入内容": "Enter phone number/email",
"输入验证码":"Enter verification code", "输入验证码": "Enter verification code",
"获取验证码":"Get verification code", "获取验证码": "Get code",
"登录":"Login", "登录": "Login",
"请输入手机号":"Please enter phone number/email", "请输入手机号": "Please enter phone number/email",
"不正确手机号":"Please enter valid phone number or email", "不正确手机号": "Please enter valid phone number or email",
"请输入验证码":"Please enter verification code", "请输入验证码": "Please enter verification code",
"登录成功":"Login successful", "登录成功": "Login successful",
"秒":"seconds", "秒": "seconds",
"发送成功":"Verification code sent successfully", "发送成功": "Verification code sent successfully",
"发送失败":"Failed to send verification code", "发送失败": "Failed to send verification code",
"登录失败":"Login failed" "登录失败": "Login failed"
}, },
"修改资料页":{ "修改资料页": {
"个人信息":"Personal Information", "个人信息": "Personal Information",
"保存":"Save", "保存": "Save",
"点击更换头像":"Click to change avatar", "点击更换头像": "Click to change avatar",
"保存成功":"Saved successfully!", "保存成功": "Saved successfully!",
"保存失败":"Save failed!" "保存失败": "Save failed!"
}, },
"设置页":{ "设置页": {
"标题":"Settings", "标题": "Settings",
"主题模式":"Theme mode", "主题模式": "Theme mode",
"选择语言":"Language selection", "选择语言": "Language selection",
"关于我们":"About us", "关于我们": "About us",
"用户协议":"User Agreement", "用户协议": "User Agreement",
"隐私协议":"Privacy Policy", "隐私协议": "Privacy Policy",
"退出登录":"Logout", "退出登录": "Logout",
"注销账号":"Delete account", "注销账号": "Delete account",
"退出成功":"Logout successful", "退出成功": "Logout successful",
"退出失败":"Logout failed" "退出失败": "Logout failed"
}, },
"关于我们":{ "服务器": {
"标题":"About Us" "失败": "Server error, please contact administrator"
}, },
"服务器":{ "体征检测设备": {
"失败":"Server error, please contact administrator" "标题": "Vital Sign Monitoring Device",
"输入关键词": "Enter keywords",
"搜索": "Search",
"我的e护": "My eCare",
"云关爱": "Cloud Care",
"设备ID": "Device ID",
"更新时间": "Update time",
"设备来源": "Device source",
"设备状态": "Device status",
"人员资料": "User information",
"实时体征": "Real-time vitals",
"消息回看": "Message review",
"健康报告": "Health report",
"首页展示": "Home display",
"设备详情": "Device details",
"重命名": "Rename",
"删除": "Delete"
}, },
"体征检测设备":{ "设备详情": {
"标题":"Vital Sign Monitoring Device", "标题": "Device Details",
"输入关键词":"Enter keywords", "MAC": "MAC",
"搜索":"Search", "设备来源": "Device source",
"我的e护":"My eCare", "型号": "Model",
"云关爱":"Cloud Care", "设备名称": "Device name",
"设备ID":"Device ID", "网络状态": "Network status",
"更新时间":"Update time", "版本": "Version",
"设备来源":"Device source", "更新状态": "Update status",
"设备状态":"Device status", "更新时间": "Update time",
"人员资料":"User information", "故障状态": "Fault status"
"实时体征":"Real-time vitals",
"消息回看":"Message review",
"健康报告":"Health report",
"首页展示":"Home display",
"设备详情":"Device details",
"重命名":"Rename",
"删除":"Delete"
}, },
"设备详情":{ "实时体征": {
"标题":"Device Details", "标题": "Real-time Vitals",
"MAC":"MAC", "姓名": "Name",
"设备来源":"Device source", "年龄": "Age",
"型号":"Model", "设备ID": "Device ID",
"设备名称":"Device name", "体重": "Weight",
"网络状态":"Network status", "提示": "Tip: For real-time vital analysis, the user should lie on the designated bed with the device functioning normally. Keep still for 10-30 seconds to display real-time vital data."
"版本":"Version",
"更新状态":"Update status",
"更新时间":"Update time",
"故障状态":"Fault status"
}, },
"实时体征":{ "待开发": {
"标题":"Real-time Vitals", "提示": "Feature in development..."
"姓名":"Name",
"年龄":"Age",
"设备ID":"Device ID",
"体重":"Weight",
"提示":"Tip: For real-time vital analysis, the user should lie on the designated bed with the device functioning normally. Keep still for 10-30 seconds to display real-time vital data."
}, },
"待开发":{ "扫一扫": {
"提示":"Feature in development..." "标题": "Scan",
"提示": "Please scan device QR code",
"相册": "Album",
"手电筒": "Flashlight"
}, },
"扫一扫":{ "设备": {
"标题":"Scan", "设备列表请求失败": "Device list request failed",
"提示":"Please scan device QR code", "设备列表请求成功": "Device list request successful"
"相册":"Album",
"手电筒":"Flashlight"
}, },
"设备":{ "未命名": "Unnamed",
"设备列表请求失败":"Device list request failed", "未知时间": "Unknown",
"设备列表请求成功":"Device list request successful" "更新时间": "Update time",
}, "已分享": "Shared",
"未命名":"Unnamed", "设备来源": "Device source",
"未知时间":"Unknown", "云关爱": "Cloud Care",
"设备ID":"Device ID", "是否确认解绑": "Confirm unbinding?",
"更新时间":"Update time", "请求失败": "Request failed!",
"已分享":"Shared", "操作成功": "Operation successful!",
"设备来源":"Device source", "操作失败": "Operation failed!",
"云关爱":"Cloud Care", "暂无数据": "No data available",
"是否确认解绑":"Confirm unbinding?", "请输入姓名": "Please enter name",
"请求失败":"Request failed!", "请选择生日": "Please select birthday",
"操作成功":"Operation successful!", "请输入体重": "Please enter weight",
"操作失败":"Operation failed!", "必须登录提示": "Please login first!",
"暂无数据":"No data available", "待开发功能": "New feature coming soon",
"请输入姓名":"Please enter name", "未知数据": "Unknown",
"请选择生日":"Please select birthday", "在离床": "In/Out of bed",
"请输入体重":"Please enter weight", "体动": "Body movement",
"必须登录提示":"Please login first!", "心率": "Heart rate",
"待开发功能":"New feature coming soon", "打鼾": "Snoring",
"未知数据":"Unknown", "呼吸": "Respiration",
"在离床":"In/Out of bed", "呼吸暂停": "Apnea",
"体动":"Body movement", "请保持静止": "Please remain still",
"心率":"Heart rate", "健康报告": "Health report",
"打鼾":"Snoring", "修改人员名称": "Modify user name",
"呼吸":"Respiration", "在线": "Online",
"呼吸暂停":"Apnea", "离线": "Offline",
"请保持静止":"Please remain still", "有更新": "Update available",
"健康报告":"Health report", "无更新": "Up to date",
"修改人员名称":"Modify user name", "有故障": "Malfunction",
"在线":"Online", "无故障": "Normal",
"离线":"Offline", "": "person",
"有更新":"Update available", "WIFI配置": "WiFi Configuration",
"无更新":"Up to date", "分享设备": "Share device",
"有故障":"Malfunction", "消息设置": "Message settings",
"无故障":"Normal", "设备分享": "Device sharing",
"":"person", "请输入对方手机号或邮箱": "Please enter recipient's phone/email",
"WIFI配置":"WiFi Configuration", "微信好友一键分享": "Share via WeChat",
"分享设备":"Share device", "发送邀请": "Send invitation",
"消息设置":"Message settings", "要分享的设备": "Device to share",
"设备分享":"Device sharing", "设备": "Primary device:",
"请输入对方手机号或邮箱":"Please enter recipient's phone/email", "从设备": "Secondary device:",
"微信好友一键分享":"Share via WeChat", "邀请成功": "Invitation sent!",
"发送邀请":"Send invitation", "邀请失败": "Invitation failed!",
"要分享的设备":"Device to share", "请输入手机号或者邮箱": "Please enter phone number or email",
"主设备":"Primary device:", "请输入正确的手机号或者邮箱": "Please enter valid phone number or email",
"从设备":"Secondary device:", "体征消息": "Vital messages",
"邀请成功":"Invitation sent!", "系统消息": "System messages",
"邀请失败":"Invitation failed!", "无需处理": "No action needed",
"请输入手机号或者邮箱":"Please enter phone number or email", "待处理": "Pending",
"请输入正确的手机号或者邮箱":"Please enter valid phone number or email", "已处理": "Processed",
"体征消息":"Vital messages", "已超时": "Timeout",
"系统消息":"System messages", "是否确认接受该设备": "Confirm accepting this device?",
"无需处理":"No action needed", "信号强度": "Signal strength:",
"待处理":"Pending", "设备升级": "Device upgrade",
"已处理":"Processed", "设备故障": "Device malfunction!",
"已超时":"Timeout", "是否在床": "In bed:",
"是否确认接受该设备":"Confirm accepting this device?", "在床": "In bed",
"信号强度":"Signal strength:", "离床": "Out of bed",
"设备升级":"Device upgrade", "较弱": "Weak",
"设备故障":"Device malfunction!", "": "Fair",
"是否在床":"In bed:", "一般": "Average",
"在床":"In bed", "": "Strong",
"离床":"Out of bed", "网络状态": "Network status:",
"较弱":"Weak", "确认": "Confirm",
"":"Fair", "输入关键字": "Enter keywords",
"一般":"Average", "搜索": "Search",
"":"Strong", "名称": "Name:",
"网络状态":"Network status:", "账号": "Account:",
"确认":"Confirm", "分享时间": "Share time",
"输入关键字":"Enter keywords", "设备校准": "Device calibration",
"搜索":"Search", "离床校准": "Out-of-bed calibration",
"名称":"Name:", "未完成": "Incomplete",
"账号":"Account:", "已完成": "Complete",
"分享时间":"Share time", "位置校准": "Position calibration",
"设备校准":"Device calibration", "床头": "Bed head",
"离床校准":"Out-of-bed calibration", "离床校准提示": "Please have the calibrator temporarily leave the bed and keep quiet during calibration",
"未完成":"Incomplete", "位置校准提示": "Please have the calibrator lie on the designated side (arrow) for 10 seconds before starting",
"已完成":"Complete", "开始校准": "Start calibration",
"位置校准":"Position calibration", "校准完成": "Calibration complete!",
"床头":"Bed head", "微信安装提示": "Please install WeChat APP first",
"离床校准提示":"Please have the calibrator temporarily leave the bed and keep quiet during calibration", "安卓启用网络提示": "",
"位置校准提示":"Please have the calibrator lie on the designated side (arrow) for 10 seconds before starting", "ios启用网络提示": "",
"开始校准":"Start calibration", "设备报修": "Device repair",
"校准完成":"Calibration complete!", "联系人": "Contact",
"微信安装提示":"Please install WeChat APP first", "手机号": "Phone",
"安卓启用网络提示":"", "名称输入提示": "Enter contact name",
"ios启用网络提示":"", "手机号输入提示": "Enter contact phone number",
"设备报修":"Device repair", "提交": "Submit",
"联系人":"Contact", "设备参数": "Device parameters",
"手机号":"Phone", "问题描述": "Issue description (within 60 characters)",
"名称输入提示":"Enter contact name", "上传提示": "Click to upload malfunction photos",
"手机号输入提示":"Enter contact phone number", "设备参数提示": "Enter device parameters",
"提交":"Submit", "选择设备": "Select device",
"设备参数":"Device parameters", "上传限制": "File cannot exceed 5MB",
"问题描述":"Issue description (within 60 characters)", "选择语言": "Select language",
"上传提示":"Click to upload malfunction photos", "设备列表": "Device list",
"设备参数提示":"Enter device parameters", "图片未上传": "Image not uploaded",
"选择设备":"Select device", "设备未选择": "Device not selected",
"上传限制":"File cannot exceed 5MB", "参数未填写": "Parameters not filled",
"选择语言":"Select language", "问题描述未填写": "Issue not described",
"设备列表":"Device list", "编辑": "Edit",
"图片未上传":"Image not uploaded", "滑动退出提醒": "Press again to exit",
"设备未选择":"Device not selected", "操作说明": "Instructions",
"参数未填写":"Parameters not filled", "关注我们": "Follow us",
"问题描述未填写":"Issue not described", "申请记录": "Application records",
"编辑":"Edit", "设备类型": "Device type",
"滑动退出提醒":"Press again to exit", "发生时间": "Occurrence time",
"操作说明":"Instructions", "最小信号强度": "Minimum signal strength",
"关注我们":"Follow us", "匹配出的外围设备": "Matched peripheral devices",
"申请记录":"Application records",
"设备类型":"Device type",
"发生时间":"Occurrence time",
"最小信号强度":"Minimum signal strength",
"匹配出的外围设备":"Matched peripheral devices",
"连接中...": "Connecting", "连接中...": "Connecting",
"刷新":"Refresh", "刷新": "Refresh",
"版本":"Version:", "版本": "Version:",
"日报":"Daily", "日报": "Day",
"报":"Monthly", "报": "Week",
"报":"Weekly", "报": "Month",
"4g设备配置wifi提示":"4G device doesn't require WiFi configuration", "4g设备配置wifi提示": "4G device doesn't require WiFi configuration",
"微信客服提示":"Please install WeChat APP first to contact support", "微信客服提示": "Please install WeChat APP first to contact support",
"打开微信客服提示":"Opening WeChat support...", "打开微信客服提示": "Opening WeChat support...",
"身高":"Height", "身高": "Height",
"身高输入提示":"Enter height cm (required)", "身高输入提示": "Enter height cm (required)",
"用户协议":"User Agreement", "用户协议": "User Agreement",
"隐私协议":"Privacy Policy", "隐私协议": "Privacy Policy",
"呼吸基准":"Respiration baseline", "呼吸基准": "Respiration baseline",
"呼吸基准介绍":"Respiration baseline introduction.", "呼吸基准介绍": "Respiration baseline introduction.",
"删除错误提示":"Please select at least one item", "删除错误提示": "Please select at least one item",
"解绑":"Unbind", "解绑": "Unbind",
"删除":"Delete", "删除": "Delete",
"校准未完成提示":"Calibration incomplete, confirm exit?", "校准未完成提示": "Calibration incomplete, confirm exit?",
"确定":"Confirm", "确定": "Confirm",
"查看":"View", "查看": "View",
"报修成功标题":"Repair request submitted", "报修成功标题": "Repair request submitted",
"报修成功":"Repair request successful!", "报修成功": "Repair request successful!",
"查看报修历史":"View repair history", "查看报修历史": "View repair history",
"报修成功标语":"After submission, our support will contact you. Please keep your phone available. Thank you for your support!", "报修成功标语": "After submission, our support will contact you. Please keep your phone available. Thank you for your support!",
"问题描述字数限制":"Description exceeds character limit", "问题描述字数限制": "Description exceeds character limit",
"30天平均分":"30-day ave", "30天平均分": "30-day ave",
"睡眠等级":"Sleep grade", "睡眠等级": "Sleep grade",
"睡眠评分":"Sleep score", "睡眠评分": "Sleep score",
"睡眠规律性":"Sleep regularity", "睡眠规律性": "Sleep regularity",
"入睡时间":"Sleep time", "入睡时间": "Sleep time",
"睡眠时长":"Sleep duration", "睡眠时长": "Sleep duration",
"起床时间":"Wake time", "起床时间": "Wake time",
"小时":"hours", "小时": "hours",
"分钟":"minutes", "分钟": "minutes",
"消息提醒设置":"Message notification settings", "消息提醒设置": "Message notification settings",
"APP消息":"APP messages", "APP消息": "APP messages",
"APP消息介绍":"Open 'Taihe eCare' APP to view device messages", "APP消息介绍": "Open 'Taihe eCare' APP to view device messages",
"通用APP消息介绍":"Open 'Taihe eCare' APP to view messages", "通用APP消息介绍": "Open 'Taihe eCare' APP to view messages",
"服务号消息":"Service account messages", "服务号消息": "Service account messages",
"服务号消息介绍":"No need to open 'Taihe eCare' APP. After following Taihe eCare service account, receive device message notifications directly in WeChat", "服务号消息介绍": "No need to open 'Taihe eCare' APP. After following Taihe eCare service account, receive device message notifications directly in WeChat",
"通用服务号消息介绍":"No need to open 'Taihe eCare' APP. After following Taihe eCare service account, receive message notifications directly in WeChat", "通用服务号消息介绍": "No need to open 'Taihe eCare' APP. After following Taihe eCare service account, receive message notifications directly in WeChat",
"消息通知":"Message notifications", "消息通知": "Message notifications",
"绑定操作提示":"Device placement instructions", "绑定操作提示": "Device placement instructions",
"绑定操作提示介绍":"Enable device placement instructions prompt", "绑定操作提示介绍": "Enable device placement instructions prompt",
"设备升级通知":"Device upgrade notifications", "设备升级通知": "Device upgrade notifications",
"设备升级通知介绍":"Enable device upgrade prompts", "设备升级通知介绍": "Enable device upgrade prompts",
"设备故障通知":"Device malfunction notifications", "设备故障通知": "Device malfunction notifications",
"设备故障通知介绍":"Enable device malfunction prompts", "设备故障通知介绍": "Enable device malfunction prompts",
"全部消息":"All messages", "全部消息": "All messages",
"请先在设置里的消息通知打开全部消息配置":"Please enable all message notifications in settings first", "请先在设置里的消息通知打开全部消息配置": "Please enable all message notifications in settings first",
"请先打开全部消息配置":"Please enable all message notifications first", "请先打开全部消息配置": "Please enable all message notifications first",
"正常值":"range:", "正常值": "range:",
"今日":"Today", "今日": "Today",
"深色":"Dark", "深色": "Dark",
"皮肤指数":"Skin index", "皮肤指数": "Skin index",
"皮肤指数介绍":"The skin index calculates galvanic skin response during sleep to generate comprehensive evaluation metrics for physiological stress or autonomic nervous system activity.", "皮肤指数介绍": "The skin index calculates galvanic skin response during sleep to generate comprehensive evaluation metrics for physiological stress or autonomic nervous system activity.",
"自主神经平衡指数":"Autonomic nervous balance index", "自主神经平衡指数": "Autonomic nervous balance index",
"自主神经平衡指数监测介绍":"The Autonomic Nervous Balance Index is an important metric for assessing the functional state of the human autonomic nervous system (ANS), primarily reflecting the activity balance between sympathetic and parasympathetic nerves.", "自主神经平衡指数监测介绍": "The Autonomic Nervous Balance Index is an important metric for assessing the functional state of the human autonomic nervous system (ANS), primarily reflecting the activity balance between sympathetic and parasympathetic nerves.",
"慢性病风险指数":"Chronic disease risk index", "慢性病风险指数": "Chronic disease risk index",
"慢性病风险指数介绍":"The chronic disease risk index is a quantitative assessment model that integrates physiological indicators, lifestyle and other multidimensional data to predict users' future risk probability of chronic non-communicable diseases (such as hypertension, diabetes, coronary heart disease, cancer, etc.).", "慢性病风险指数介绍": "The chronic disease risk index is a quantitative assessment model that integrates physiological indicators, lifestyle and other multidimensional data to predict users' future risk probability of chronic non-communicable diseases (such as hypertension, diabetes, coronary heart disease, cancer, etc.).",
"心理健康评估":"Mental health assessment", "心理健康评估": "Mental health assessment",
"心理健康评估介绍":"Heart rate health assessment primarily uses sleep report timestamps, vital signs data and HRV data to determine mental health levels and fatigue degree.", "心理健康评估介绍": "Heart rate health assessment primarily uses sleep report timestamps, vital signs data and HRV data to determine mental health levels and fatigue degree.",
"呼吸暂停监测":"Apnea monitoring", "呼吸暂停监测": "Apnea monitoring",
"呼吸暂停监测介绍":"Apnea monitoring refers to graphical explanation of apnea events during user's sleep.", "呼吸暂停监测介绍": "Apnea monitoring refers to graphical explanation of apnea events during user's sleep.",
"打鼾监测":"Snoring monitoring", "打鼾监测": "Snoring monitoring",
"打鼾监测监测介绍":"Snoring monitoring refers to graphical explanation of snoring frequency during user's sleep.", "打鼾监测监测介绍": "Snoring monitoring refers to graphical explanation of snoring frequency during user's sleep.",
"呼吸数据":"Respiration data", "呼吸数据": "Respiration data",
"呼吸数据介绍":"Respiration data refers to basic respiration metrics during sleep, serving as core indicators for evaluating sleep respiration quality and screening sleep breathing disorders.", "呼吸数据介绍": "Respiration data refers to basic respiration metrics during sleep, serving as core indicators for evaluating sleep respiration quality and screening sleep breathing disorders.",
"心率散点图":"Heart rate scatter plot", "心率散点图": "Heart rate scatter plot",
"心率散点图介绍":"The ECG scatter plot is a nonlinear graphical method for recording continuous heart rate RR interval diagrams, also called scatter plots as they consist of scattered points.", "心率散点图介绍": "The ECG scatter plot is a nonlinear graphical method for recording continuous heart rate RR interval diagrams, also called scatter plots as they consist of scattered points.",
"今日数据":"yesterday", "今日数据": "yesterday",
"昨日数据":"today", "昨日数据": "today",
"次":"times", "次": "times",
"秒":"sec", "秒": "sec",
"暂无":"none", "暂无": "none",
"失败": "Failed" "失败": "Failed",
"关于我们": "About Us",
"周一": "Mon",
"周二": "Tue",
"周三": "Wed",
"周四": "Thu",
"周五": "Fri",
"周六": "Sat",
"周日": "Sun",
"无报告": "none",
"姓名": "Name",
"年龄": "Age",
"设备ID": "Device ID",
"体重": "Weight",
"分": "",
"位置权限说明": "Location Permission Description",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "Obtain location information, connect to nearby Bluetooth devices, and recommend nearby stores",
"蓝牙权限说明": "Bluetooth Permission Description",
"搜索链接附近的蓝牙设备": "Search and connect to nearby Bluetooth devices",
"附近设备权限说明": "Nearby Device Permission Description"
} }

View File

@@ -1,5 +1,5 @@
{ {
"语言名称":"中文简体", "语言名称": "中文简体",
"菜单": { "菜单": {
"首页": "首页", "首页": "首页",
"报告": "报告", "报告": "报告",
@@ -32,412 +32,423 @@
"未命名": "未命名", "未命名": "未命名",
"去登录": "去登录", "去登录": "去登录",
"头像限制": "头像图片不能超过5MB", "头像限制": "头像图片不能超过5MB",
"头像上传失败":"头像上传失败", "头像上传失败": "头像上传失败",
"未选择图片":"未选择图片", "未选择图片": "未选择图片",
"上传成功":"上传成功", "上传成功": "上传成功",
"保存失败":"保存失败", "保存失败": "保存失败",
"保存成功":"保存成功", "保存成功": "保存成功",
"昵称为空":"昵称不能为空", "昵称为空": "昵称不能为空",
"查询失败":"查询用户资料失败" "查询失败": "查询用户资料失败"
}, },
"我的设备": "我的设备", "我的设备": "我的设备",
"请选择设备类型": "请选择设备类型", "请选择设备类型": "请选择设备类型",
"体征监测设备": "体征监测设备", "体征监测设备": "体征监测设备",
"智能床/床垫": "智能床/床垫", "智能床/床垫": "智能床/床垫",
"摄像头": "摄像头", "摄像头": "摄像头",
"绑定引导":{ "绑定引导": {
"说明标题": "设备放置说明:", "说明标题": "设备放置说明:",
"说明正文": "该体征监测设备在床垫下方使用(注意贴有标签的一面朝上),放置在靠近使用人胸腔正下方为宜。放置完成后,连接电源,控制盒绿灯快闪时,可以进行绑定流程。", "说明正文": "该体征监测设备在床垫下方使用(注意贴有标签的一面朝上),放置在靠近使用人胸腔正下方为宜。放置完成后,连接电源,控制盒绿灯快闪时,可以进行绑定流程。",
"不再提示": "不再提示", "不再提示": "不再提示",
"跳过": "跳过" "跳过": "跳过"
}, },
"蓝牙绑定":{ "蓝牙绑定": {
"标题":"蓝牙绑定", "标题": "蓝牙绑定",
"扫描":"扫描蓝牙设备中…", "扫描": "扫描蓝牙设备中…",
"信号":"最小信号强度", "信号": "最小信号强度",
"搜索提示":"检索设备", "搜索提示": "检索设备",
"搜索":"搜索", "搜索": "搜索",
"匹配":"匹配出的外围设备", "匹配": "匹配出的外围设备",
"信号强度":"信号强度", "信号强度": "信号强度",
"SN":"SN", "SN": "SN",
"蓝牙地址":"蓝牙地址", "蓝牙地址": "蓝牙地址",
"mac":"mac", "mac": "mac",
"网络":"网络", "网络": "网络",
"在线":"在线", "在线": "在线",
"离线":"离线", "离线": "离线",
"版本":"版本", "版本": "版本",
"默认设备名称":"未知设备", "默认设备名称": "未知设备",
"传感器":"传感器", "传感器": "传感器",
"可绑定":"可绑定", "可绑定": "可绑定",
"已被绑定":"已被绑定", "已被绑定": "已被绑定",
"双人版绑定标题":"该设备为双人版,请选择", "双人版绑定标题": "该设备为双人版,请选择",
"绑定全部":"绑定全部", "绑定全部": "绑定全部",
"主设备":"主设备:", "主设备": "主设备:",
"从设备":"从设备:", "从设备": "从设备:",
"确定":"确定", "确定": "确定",
"取消":"取消", "取消": "取消",
"无法绑定":"无法绑定!", "无法绑定": "无法绑定!",
"无法绑定1":"检测到该设备", "无法绑定1": "检测到该设备",
"无法绑定2":"已被绑定", "无法绑定2": "已被绑定",
"无法绑定3":",绑定前请先进行解绑,有疑问请联系客服", "无法绑定3": ",绑定前请先进行解绑,有疑问请联系客服",
"知道了":"知道了", "知道了": "知道了",
"是":"是", "是": "是",
"否":"否", "否": "否",
"确定绑定提示":"确定绑定该设备吗?", "确定绑定提示": "确定绑定该设备吗?",
"连接成功":"蓝牙连接成功", "连接成功": "蓝牙连接成功",
"连接异常":"蓝牙连接异常", "连接异常": "蓝牙连接异常",
"连接":"连接", "连接": "连接",
"输入wifi密码":"请输入wifi密码", "输入wifi密码": "请输入wifi密码",
"显示密码":"显示", "显示密码": "显示",
"不显示密码":"不显示" "不显示密码": "不显示"
}, },
"登录页":{ "登录页": {
"欢迎使用太和e护":"欢迎使用太和e护", "欢迎使用太和e护": "欢迎使用太和e护",
"科技睡眠 洞悉万千":"科技睡眠 洞悉万千", "科技睡眠 洞悉万千": "科技睡眠 洞悉万千",
"本机号码一键登录/注册":"本机号码一键登录/注册", "本机号码一键登录/注册": "本机号码一键登录/注册",
"其他手机号码":"其他账号登录", "其他手机号码": "其他账号登录",
"协议1":"登录时将自动注册,且代表您同意", "协议1": "登录时将自动注册,且代表您同意",
"协议2":"《用户协议》", "协议2": "《用户协议》",
"协议3":"和", "协议3": "和",
"协议4":"《隐私政策》", "协议4": "《隐私政策》",
"协议5":"以及", "协议5": "以及",
"协议6":"《用户使用条款》", "协议6": "《用户使用条款》",
"其他登录方式":"欢迎使用太和e护", "其他登录方式": "欢迎使用太和e护",
"未同意协议":"请确认同意协议" "未同意协议": "请确认同意协议"
}, },
"人员资料":{ "人员资料": {
"标题":"人员资料", "标题": "人员资料",
"保存":"保存", "保存": "保存",
"名字输入提示":"使用人员姓名(必填)", "名字输入提示": "使用人员姓名(必填)",
"生日输入提示":"生日(必填)", "生日输入提示": "生日(必填)",
"体重输入提示":"体重kg(必填)", "体重输入提示": "体重kg(必填)",
"疾病标题":"慢病管理", "疾病标题": "慢病管理",
"提示":"提示:填写准确的使用人员相关资料,可以使睡眠报告监测数据更加精准!" "提示": "提示:填写准确的使用人员相关资料,可以使睡眠报告监测数据更加精准!"
}, },
"绑定成功":{ "绑定成功": {
"标题":"绑定完成", "标题": "绑定完成",
"绑定成功":"配置成功! ", "绑定成功": "配置成功! ",
"分享标题":"是否进行分享?", "分享标题": "是否进行分享?",
"分享内容":"设备绑定成功后,如需对朋友或家人共享我的睡眠情况,可以进行立即分享,分享成功后,对方即可享受查看该设备权限,可以收到该设备的睡眠报告。", "分享内容": "设备绑定成功后,如需对朋友或家人共享我的睡眠情况,可以进行立即分享,分享成功后,对方即可享受查看该设备权限,可以收到该设备的睡眠报告。",
"立即分享":"立即分享", "立即分享": "立即分享",
"返回":"返回" "返回": "返回"
}, },
"日期":{ "日期": {
"取消":"取消", "取消": "取消",
"确定":"确定", "确定": "确定",
"年":"年", "年": "年",
"月":"月", "月": "月",
"日":"日" "日": "日"
}, },
"wifi页":{ "wifi页": {
"标题":"WIFI配置", "标题": "WIFI配置",
"跳过":"下一步", "跳过": "下一步",
"WLAN":"网络", "WLAN": "网络",
"未连接":"未连接", "未连接": "未连接",
"已连接":"已连接", "已连接": "已连接",
"可用WLAN":"可用WLAN", "可用WLAN": "可用WLAN",
"刷新":"刷新", "刷新": "刷新",
"密码为空":"密码不能为空", "密码为空": "密码不能为空",
"配网成功":"配网成功", "配网成功": "配网成功",
"配网失败":"配网失败", "配网失败": "配网失败",
"配网中":"配网中", "配网中": "配网中",
"需配网":"请给设备配置网络!" "需配网": "请给设备配置网络!"
}, },
"其他手机登录页":{ "其他手机登录页": {
"输入内容":"输入手机号码/邮箱", "输入内容": "输入手机号码/邮箱",
"输入验证码":"输入验证码", "输入验证码": "输入验证码",
"获取验证码":"获取验证码", "获取验证码": "获取验证码",
"登录":"登录", "登录": "登录",
"请输入手机号":"请输入手机号/邮箱", "请输入手机号": "请输入手机号/邮箱",
"不正确手机号":"请输入正确的手机号或者邮箱", "不正确手机号": "请输入正确的手机号或者邮箱",
"请输入验证码":"请输入验证码", "请输入验证码": "请输入验证码",
"登录成功":"登录成功", "登录成功": "登录成功",
"秒":"秒", "秒": "秒",
"发送成功":"验证码发送成功", "发送成功": "验证码发送成功",
"发送失败":"验证码发送失败", "发送失败": "验证码发送失败",
"登录失败":"登录失败" "登录失败": "登录失败"
}, },
"修改资料页":{ "修改资料页": {
"个人信息":"个人信息", "个人信息": "个人信息",
"保存":"保存", "保存": "保存",
"点击更换头像":"点击更换头像", "点击更换头像": "点击更换头像",
"保存成功":"保存成功!", "保存成功": "保存成功!",
"保存失败":"保存失败!" "保存失败": "保存失败!"
}, },
"设置页":{ "设置页": {
"标题":"设置", "标题": "设置",
"主题模式":"主题模式", "主题模式": "主题模式",
"选择语言":"选择语言", "选择语言": "选择语言",
"关于我们":"关于我们", "关于我们": "关于我们",
"用户协议":"用户协议", "用户协议": "用户协议",
"隐私协议":"隐私协议", "隐私协议": "隐私协议",
"退出登录":"退出登录", "退出登录": "退出登录",
"注销账号":"注销账号", "注销账号": "注销账号",
"退出成功":"退出成功", "退出成功": "退出成功",
"退出失败":"退出失败" "退出失败": "退出失败"
}, },
"关于我们":{ "服务器": {
"标题":"关于我们" "失败": "服务器内部错误,请联系管理员"
}, },
"服务器":{ "体征检测设备": {
"失败":"服务器内部错误,请联系管理员" "标题": "体征监测设备",
"输入关键词": "输入关键词",
"搜索": "搜索",
"我的e护": "我的e护",
"云关爱": "云关爱",
"设备ID": "设备ID",
"更新时间": "更新时间",
"设备来源": "设备来源",
"设备状态": "设备状态",
"人员资料": "人员资料",
"实时体征": "实时体征",
"消息回看": "消息回看",
"健康报告": "健康报告",
"首页展示": "首页展示",
"设备详情": "设备详情",
"重命名": "重命名",
"删除": "删除"
}, },
"体征检测设备":{ "设备详情": {
"标题":"体征监测设备", "标题": "设备详情",
"输入关键词":"输入关键词", "MAC": "MAC",
"搜索":"搜索", "设备来源": "设备来源",
"我的e护":"我的e护", "型号": "型号",
"云关爱":"云关爱", "设备名称": "设备名称",
"设备ID":"设备ID", "网络状态": "网络状态",
"更新时间":"更新时间", "版本": "版本",
"设备来源":"设备来源", "更新状态": "更新状态",
"设备状态":"设备状态", "更新时间": "更新时间",
"人员资料":"人员资料", "故障状态": "故障状态"
"实时体征":"实时体征",
"消息回看":"消息回看",
"健康报告":"健康报告",
"首页展示":"首页展示",
"设备详情":"设备详情",
"重命名":"重命名",
"删除":"删除"
}, },
"设备详情":{ "实时体征": {
"标题":"设备详情", "标题": "实时体征",
"MAC":"MAC", "姓名": "姓名",
"设备来源":"设备来源", "年龄": "年龄",
"型号":"型号", "设备ID": "设备ID",
"设备名称":"设备名称", "体重": "体重",
"网络状态":"网络状态", "提示": "提示实时体征分析时人员应躺在指定床位上且设备正常运行保持身体静止不动状态下10~30秒左右即可显示实时体征数据。"
"版本":"版本",
"更新状态":"更新状态",
"更新时间":"更新时间",
"故障状态":"故障状态"
}, },
"实时体征":{ "待开发": {
"标题":"实时体征", "提示": "功能开发中..."
"姓名":"姓名",
"年龄":"年龄",
"设备ID":"设备ID",
"体重":"体重",
"提示":"提示实时体征分析时人员应躺在指定床位上且设备正常运行保持身体静止不动状态下10~30秒左右即可显示实时体征数据。"
}, },
"待开发":{ "扫一扫": {
"提示":"功能开发中..." "标题": "扫一扫",
"提示": "请扫描设备二维码",
"相册": "相册",
"手电筒": "手电筒"
}, },
"扫一扫":{ "设备": {
"标题":"扫一扫", "设备列表请求失败": "设备列表请求失败",
"提示":"请扫描设备二维码", "设备列表请求成功": "设备列表请求成功"
"相册":"相册",
"手电筒":"手电筒"
}, },
"设备":{ "未命名": "未命名",
"设备列表请求失败":"设备列表请求失败", "未知时间": "-",
"设备列表请求成功":"设备列表请求成功" "更新时间": "更新时间",
}, "已分享": "已分享",
"未命名":"未命名", "设备来源": "设备来源",
"未知时间":"-", "云关爱": "云关爱",
"设备ID":"设备ID", "是否确认解绑": "是否确认解绑?",
"更新时间":"更新时间", "请求失败": "请求失败!",
"已分享":"已分享", "操作成功": "操作成功!",
"设备来源":"设备来源", "操作失败": "操作失败!",
"云关爱":"云关爱", "暂无数据": "暂无数据",
"是否确认解绑":"是否确认解绑?", "请输入姓名": "请输入姓名",
"请求失败":"请求失败!", "请选择生日": "请选择生日",
"操作成功":"操作成功!", "请输入体重": "请输入体重",
"操作失败":"操作失败!", "必须登录提示": "请先登录!",
"暂无数据":"暂无数据", "待开发功能": "新功能开发中,敬请期待",
"请输入姓名":"请输入姓名", "未知数据": "-",
"请选择生日":"请选择生日", "在离床": "在离床",
"请输入体重":"请输入体重", "体动": "体动",
"必须登录提示":"请先登录!", "心率": "心率",
"待开发功能":"新功能开发中,敬请期待", "打鼾": "打鼾",
"未知数据":"-", "呼吸": "呼吸",
"在离床":"在离床", "呼吸暂停": "呼吸暂停",
"体动":"体动", "请保持静止": "请保持身体静止",
"心率":"心率", "健康报告": "健康报告",
"打鼾":"打鼾", "修改人员名称": "修改人员名称",
"呼吸":"呼吸", "在线": "在线",
"呼吸暂停":"呼吸暂停", "离线": "离线",
"请保持静止":"请保持身体静止", "有更新": "有更新",
"健康报告":"健康报告", "无更新": "无更新",
"修改人员名称":"修改人员名称", "有故障": "有故障",
"在线":"在线", "无故障": "无故障",
"离线":"离线", "": "",
"有更新":"有更新", "WIFI配置": "WIFI配置",
"无更新":"无更新", "分享设备": "分享设备",
"有故障":"有故障", "消息设置": "消息设置",
"无故障":"无故障", "设备分享": "设备分享",
"":"", "请输入对方手机号或邮箱": "请输入对方手机号或邮箱",
"WIFI配置":"WIFI配置", "微信好友一键分享": "微信好友一键分享",
"分享设备":"分享设备", "发送邀请": "发送邀请",
"消息设置":"消息设置", "要分享的设备": "要分享的设备",
"设备分享":"设备分享", "设备": "设备",
"请输入对方手机号或邮箱":"请输入对方手机号或邮箱", "从设备": "从设备:",
"微信好友一键分享":"微信好友一键分享", "邀请成功": "邀请成功!",
"发送邀请":"发送邀请", "邀请失败": "邀请失败!",
"要分享的设备":"要分享的设备", "请输入手机号或者邮箱": "请输入手机号或者邮箱",
"主设备":"主设备:", "请输入正确的手机号或者邮箱": "请输入正确的手机号或者邮箱",
"从设备":"从设备:", "体征消息": "体征消息",
"邀请成功":"邀请成功!", "系统消息": "系统消息",
"邀请失败":"邀请失败!", "无需处理": "无需处理",
"请输入手机号或者邮箱":"请输入手机号或者邮箱", "待处理": "待处理",
"请输入正确的手机号或者邮箱":"请输入正确的手机号或者邮箱", "已处理": "已处理",
"体征消息":"体征消息", "已超时": "已超时",
"系统消息":"系统消息", "是否确认接受该设备": "是否确认接受该设备?",
"无需处理":"无需处理", "信号强度": "信号强度:",
"待处理":"待处理", "设备升级": "设备升级",
"已处理":"已处理", "设备故障": "设备发生故障!",
"已超时":"已超时", "是否在床": "是否在床:",
"是否确认接受该设备":"是否确认接受该设备?", "在床": "在床",
"信号强度":"信号强度:", "离床": "离床",
"设备升级":"设备升级", "较弱": "较弱",
"设备故障":"设备发生故障!", "": "",
"是否在床":"是否在床:", "一般": "一般",
"在床":"在床", "": "",
"离床":"离床", "网络状态": "网络状态:",
"较弱":"较弱", "确认": "确认",
"":"", "输入关键字": "输入关键字",
"一般":"一般", "搜索": "搜索",
"":"", "名称": "名称:",
"网络状态":"网络状态:", "账号": "账号:",
"确认":"确认", "分享时间": "分享时间",
"输入关键字":"输入关键字", "设备校准": "设备校准",
"搜索":"搜索", "离床校准": "离床校准",
"名称":"名称:", "未完成": "未完成",
"账号":"账号:", "已完成": "已完成",
"分享时间":"分享时间", "位置校准": "位置校准",
"设备校准":"设备校准", "床头": "床头",
"离床校准":"离床校准", "离床校准提示": "请校准人员暂时离开床铺且在校准期间保持周围安静",
"未完成":"未完成", "位置校准提示": "请校准人员到箭头指定一侧 平躺后点击开始保持10秒",
"已完成":"已完成", "开始校准": "开始校准",
"位置校准":"位置校准", "校准完成": "校准完成!",
"床头":"床头", "微信安装提示": "请先安装微信APP再使用微信登录",
"离床校准提示":"请校准人员暂时离开床铺且在校准期间保持周围安静", "安卓启用网络提示": "",
"位置校准提示":"请校准人员到箭头指定一侧 平躺后点击开始保持10秒", "ios启用网络提示": "",
"开始校准":"开始校准", "设备报修": "设备报修",
"校准完成":"校准完成!", "联系人": "联系人",
"微信安装提示":"请先安装微信APP再使用微信登录", "手机号": "手机号",
"安卓启用网络提示":"", "名称输入提示": "请输入联系人名称",
"ios启用网络提示":"", "手机号输入提示": "请输入联系人手机号",
"设备报修":"设备报修", "提交": "提交",
"联系人":"联系人", "设备参数": "设备参数",
"手机号":"手机号", "问题描述": "问题描述60个字以内",
"名称输入提示":"请输入联系人名称", "上传提示": "点击上传设备故障照片",
"手机号输入提示":"请输入联系人手机号", "设备参数提示": "请输入设备参数",
"提交":"提交", "选择设备": "请选择设备",
"设备参数":"设备参数", "上传限制": "文件不能超过5MB",
"问题描述":"问题描述60个字以内", "选择语言": "选择语言",
"上传提示":"点击上传设备故障照片", "设备列表": "设备列表",
"设备参数提示":"请输入设备参数", "图片未上传": "图片未上传",
"选择设备":"请选择设备", "设备未选择": "设备未选择",
"上传限制":"文件不能超过5MB", "参数未填写": "参数未填写",
"选择语言":"选择语言", "问题描述未填写": "问题描述未填写",
"设备列表":"设备列表", "编辑": "编辑",
"图片未上传":"图片未上传", "滑动退出提醒": "再按一次退出程序",
"设备未选择":"设备未选择", "操作说明": "操作说明",
"参数未填写":"参数未填写", "关注我们": "关注我们",
"问题描述未填写":"问题描述未填写", "申请记录": "申请记录",
"编辑":"编辑", "设备类型": "设备类型",
"滑动退出提醒":"再按一次退出程序", "发生时间": "发生时间",
"操作说明":"操作说明", "最小信号强度": "最小信号强度",
"关注我们":"关注我们", "匹配出的外围设备": "匹配出的外围设备",
"申请记录":"申请记录",
"设备类型":"设备类型",
"发生时间":"发生时间",
"最小信号强度":"最小信号强度",
"匹配出的外围设备":"匹配出的外围设备",
"连接中...": "连接中", "连接中...": "连接中",
"刷新":"刷新", "刷新": "刷新",
"版本":"版本:", "版本": "版本:",
"日报":"日报", "日报": "日报",
"月报":"月报", "月报": "月报",
"周报":"周报", "周报": "周报",
"4g设备配置wifi提示":"该设备为4G设备无需配置wifi", "4g设备配置wifi提示": "该设备为4G设备无需配置wifi",
"微信客服提示":"请先安装微信APP再联系客服", "微信客服提示": "请先安装微信APP再联系客服",
"打开微信客服提示":"正在打开微信客服...", "打开微信客服提示": "正在打开微信客服...",
"身高":"身高", "身高": "身高",
"身高输入提示":"请输入身高cm(必填)", "身高输入提示": "请输入身高cm(必填)",
"用户协议":"用户协议", "用户协议": "用户协议",
"隐私协议":"隐私协议", "隐私协议": "隐私协议",
"呼吸基准":"呼吸基准", "呼吸基准": "呼吸基准",
"呼吸基准介绍":"呼吸基准介绍。", "呼吸基准介绍": "呼吸基准介绍。",
"删除错误提示":"请至少选择一项", "删除错误提示": "请至少选择一项",
"解绑":"解绑", "解绑": "解绑",
"删除":"删除", "删除": "删除",
"校准未完成提示":"校准还未完成,是否确认退出校准流程?", "校准未完成提示": "校准还未完成,是否确认退出校准流程?",
"确定":"确定", "确定": "确定",
"查看":"查看", "查看": "查看",
"报修成功标题":"报修成功", "报修成功标题": "报修成功",
"报修成功":"报修成功!", "报修成功": "报修成功!",
"查看报修历史":"查看报修历史", "查看报修历史": "查看报修历史",
"报修成功标语":"报修申请提交后,我们的后台客服人员会与您取得联系,请保持电话畅通,感谢您对本产品的支持!", "报修成功标语": "报修申请提交后,我们的后台客服人员会与您取得联系,请保持电话畅通,感谢您对本产品的支持!",
"问题描述字数限制":"问题描述字数超过限制", "问题描述字数限制": "问题描述字数超过限制",
"30天平均分":"30天平均分", "30天平均分": "30天平均分",
"睡眠等级":"睡眠等级", "睡眠等级": "睡眠等级",
"睡眠评分":"睡眠评分", "睡眠评分": "睡眠评分",
"睡眠规律性":"睡眠规律性", "睡眠规律性": "睡眠规律性",
"入睡时间":"入睡时间", "入睡时间": "入睡时间",
"睡眠时长":"睡眠时长", "睡眠时长": "睡眠时长",
"起床时间":"起床时间", "起床时间": "起床时间",
"小时":"小时", "小时": "小时",
"分钟":"分钟", "分钟": "分钟",
"消息提醒设置":"消息提醒设置", "消息提醒设置": "消息提醒设置",
"APP消息":"APP消息", "APP消息": "APP消息",
"APP消息介绍":"打开“太和e护”APP可以查看该设备的消息内容", "APP消息介绍": "打开“太和e护”APP可以查看该设备的消息内容",
"通用APP消息介绍":"打开“太和e护”APP可以查看消息内容", "通用APP消息介绍": "打开“太和e护”APP可以查看消息内容",
"服务号消息":"服务号消息", "服务号消息": "服务号消息",
"服务号消息介绍":"无需打开“太和e护”APP关注太和e护服务号后微信内即可接收该设备消息推送", "服务号消息介绍": "无需打开“太和e护”APP关注太和e护服务号后微信内即可接收该设备消息推送",
"通用服务号消息介绍":"无需打开“太和e护”APP关注太和e护服务号后微信内即可接收消息推送", "通用服务号消息介绍": "无需打开“太和e护”APP关注太和e护服务号后微信内即可接收消息推送",
"消息通知":"消息通知", "消息通知": "消息通知",
"绑定操作提示":"设备放置说明", "绑定操作提示": "设备放置说明",
"绑定操作提示介绍":"是否打开设备放置说明的提示", "绑定操作提示介绍": "是否打开设备放置说明的提示",
"设备升级通知":"设备升级通知", "设备升级通知": "设备升级通知",
"设备升级通知介绍":"是否打开设备升级的提示", "设备升级通知介绍": "是否打开设备升级的提示",
"设备故障通知":"设备故障通知", "设备故障通知": "设备故障通知",
"设备故障通知介绍":"是否打开设备故障的提示", "设备故障通知介绍": "是否打开设备故障的提示",
"全部消息":"全部消息", "全部消息": "全部消息",
"请先在设置里的消息通知打开全部消息配置":"请先在设置里的消息通知打开全部消息配置", "请先在设置里的消息通知打开全部消息配置": "请先在设置里的消息通知打开全部消息配置",
"请先打开全部消息配置":"请先打开全部消息配置", "请先打开全部消息配置": "请先打开全部消息配置",
"正常值":"正常值:", "正常值": "正常值:",
"今日":"今日", "今日": "今日",
"深色":"深色", "深色": "深色",
"皮肤指数":"皮肤指数", "皮肤指数": "皮肤指数",
"皮肤指数介绍":"皮肤指数通过用户睡眠过程中的体征数据,计算皮肤电反应,生成综合评估指标,用于睡眠中的生理应激状态或自主神经活动。", "皮肤指数介绍": "皮肤指数通过用户睡眠过程中的体征数据,计算皮肤电反应,生成综合评估指标,用于睡眠中的生理应激状态或自主神经活动。",
"自主神经平衡指数":"自主神经平衡指数", "自主神经平衡指数": "自主神经平衡指数",
"自主神经平衡指数监测介绍":"自主神经平衡指数 是评估人体自主神经系统ANS功能状态的重要指标主要反映交感神经和副交感神经的活性平衡关系。", "自主神经平衡指数监测介绍": "自主神经平衡指数 是评估人体自主神经系统ANS功能状态的重要指标主要反映交感神经和副交感神经的活性平衡关系。",
"慢性病风险指数":"慢性病风险指数", "慢性病风险指数": "慢性病风险指数",
"慢性病风险指数介绍":"慢性病风险指数是通过整合个体的生理指标、生活方式等多维度数据,构建的量化评估模型,用于预测用户未来患慢性非传染性疾病(如高血压、糖尿病、冠心病、癌症等)的风险概率。", "慢性病风险指数介绍": "慢性病风险指数是通过整合个体的生理指标、生活方式等多维度数据,构建的量化评估模型,用于预测用户未来患慢性非传染性疾病(如高血压、糖尿病、冠心病、癌症等)的风险概率。",
"心理健康评估":"心理健康评估", "心理健康评估": "心理健康评估",
"心理健康评估介绍":"心率健康评估主要通过用户睡眠报告中的时间点、体征数据及HRV数据等信息来判断其心理健康水平、疲劳程度。", "心理健康评估介绍": "心率健康评估主要通过用户睡眠报告中的时间点、体征数据及HRV数据等信息来判断其心理健康水平、疲劳程度。",
"呼吸暂停监测":"呼吸暂停监测", "呼吸暂停监测": "呼吸暂停监测",
"呼吸暂停监测介绍":"呼吸暂停监测是指用户在睡眠过程中产生的呼吸暂停的图表说明。", "呼吸暂停监测介绍": "呼吸暂停监测是指用户在睡眠过程中产生的呼吸暂停的图表说明。",
"打鼾监测":"打鼾监测", "打鼾监测": "打鼾监测",
"打鼾监测监测介绍":"打鼾监测是指用户在睡眠过程中打鼾频次的图表说明。", "打鼾监测监测介绍": "打鼾监测是指用户在睡眠过程中打鼾频次的图表说明。",
"呼吸数据":"呼吸数据", "呼吸数据": "呼吸数据",
"呼吸数据介绍":"呼吸数据是指用户在睡眠过程中呼吸的基本数据,是评估睡眠呼吸质量、筛查睡眠呼吸障碍的核心指标。", "呼吸数据介绍": "呼吸数据是指用户在睡眠过程中呼吸的基本数据,是评估睡眠呼吸质量、筛查睡眠呼吸障碍的核心指标。",
"心率散点图":"心率散点图", "心率散点图": "心率散点图",
"心率散点图介绍":"心电散点图是用非线性的图形方法描记的连续心冲击图的RR间期图因图形由散点组成又称散点图。", "心率散点图介绍": "心电散点图是用非线性的图形方法描记的连续心冲击图的RR间期图因图形由散点组成又称散点图。",
"今日数据":"今日数据", "今日数据": "今日数据",
"昨日数据":"昨日数据", "昨日数据": "昨日数据",
"次":"频次", "次": "频次",
"秒":"秒", "秒": "秒",
"当前暂无数据":"当前暂无数据", "当前暂无数据": "当前暂无数据",
"下一步":"下一步", "下一步": "下一步",
"未配置网络提示":"当前设备未进行网络配置,是否确认跳过网络配置", "未配置网络提示": "当前设备未进行网络配置,是否确认跳过网络配置",
"退出":"退出", "退出": "退出",
"完成":"完成", "完成": "完成",
"时长":"时长:", "时长": "时长:",
"继续":"继续", "继续": "继续",
"下次再说":"下次再说", "下次再说": "下次再说",
"发现":"发现!", "发现": "发现!",
"检测到":"检测到", "检测到": "检测到",
"绑定流程未走完是否继续":"绑定流程未走完是否继续", "绑定流程未走完是否继续": "绑定流程未走完是否继续",
"暂无":"暂无", "暂无": "暂无",
"设备连接超时,请重试":"设备连接超时,请点击刷新重试", "设备连接超时,请重试": "设备连接超时,请点击刷新重试",
"设备连接失败":"设备连接失败,请点击刷新重试", "设备连接失败": "设备连接失败,请点击刷新重试",
"失败":"服务器内部错误,请联系管理员" "失败": "服务器内部错误,请联系管理员",
"关于我们": "关于我们",
"周一": "周一",
"周二": "周二",
"周三": "周三",
"周四": "周四",
"周五": "周五",
"周六": "周六",
"周日": "周日",
"无报告": "无报告",
"姓名": "姓名",
"年龄": "年龄",
"设备ID": "设备ID",
"体重": "体重",
"分":"分",
"位置权限说明":"位置权限说明",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店":"获得位置信息,连接附近的蓝牙设备与推荐附近门店",
"蓝牙权限说明":"蓝牙权限说明",
"搜索链接附近的蓝牙设备":"搜索链接附近的蓝牙设备",
"附近设备权限说明":"附近设备权限说明"
} }

View File

@@ -1,5 +1,5 @@
{ {
"语言名称":"中文繁體", "语言名称": "中文繁體",
"菜单": { "菜单": {
"首页": "首頁", "首页": "首頁",
"报告": "報告", "报告": "報告",
@@ -32,394 +32,409 @@
"未命名": "未命名", "未命名": "未命名",
"去登录": "去登錄", "去登录": "去登錄",
"头像限制": "頭像圖片不能超過5MB", "头像限制": "頭像圖片不能超過5MB",
"头像上传失败":"頭像上傳失敗", "头像上传失败": "頭像上傳失敗",
"未选择图片":"未選擇圖片", "未选择图片": "未選擇圖片",
"上传成功":"上傳成功", "上传成功": "上傳成功",
"保存失败":"保存失敗", "保存失败": "保存失敗",
"保存成功":"保存成功", "保存成功": "保存成功",
"昵称为空":"暱稱不能為空", "昵称为空": "暱稱不能為空",
"查询失败":"查詢用戶資料失敗" "查询失败": "查詢用戶資料失敗"
}, },
"我的设备": "我的設備", "我的设备": "我的設備",
"请选择设备类型": "請選擇設備類型", "请选择设备类型": "請選擇設備類型",
"体征监测设备": "體徵監測設備", "体征监测设备": "體徵監測設備",
"智能床/床垫": "智能床/床墊", "智能床/床垫": "智能床/床墊",
"摄像头": "攝像頭", "摄像头": "攝像頭",
"绑定引导":{ "绑定引导": {
"说明标题": "設備放置說明:", "说明标题": "設備放置說明:",
"说明正文": "該體徵監測設備在床墊下方使用(注意貼有標籤的一面朝上),放置在靠近使用人胸腔正下方為宜。放置完成後,連接電源,控制盒綠燈快閃時,可以進行綁定流程。", "说明正文": "該體徵監測設備在床墊下方使用(注意貼有標籤的一面朝上),放置在靠近使用人胸腔正下方為宜。放置完成後,連接電源,控制盒綠燈快閃時,可以進行綁定流程。",
"不再提示": "不再提示", "不再提示": "不再提示",
"跳过": "跳過" "跳过": "跳過"
}, },
"蓝牙绑定":{ "蓝牙绑定": {
"标题":"藍牙綁定", "标题": "藍牙綁定",
"扫描":"掃描藍牙設備中…", "扫描": "掃描藍牙設備中…",
"信号":"最小信號強度", "信号": "最小信號強度",
"搜索提示":"檢索設備", "搜索提示": "檢索設備",
"搜索":"搜索", "搜索": "搜索",
"匹配":"匹配出的外圍設備", "匹配": "匹配出的外圍設備",
"信号强度":"信號強度", "信号强度": "信號強度",
"SN":"SN", "SN": "SN",
"蓝牙地址":"藍牙地址", "蓝牙地址": "藍牙地址",
"mac":"mac", "mac": "mac",
"网络":"網絡", "网络": "網絡",
"在线":"在線", "在线": "在線",
"离线":"離線", "离线": "離線",
"版本":"版本", "版本": "版本",
"默认设备名称":"未知設備", "默认设备名称": "未知設備",
"传感器":"傳感器", "传感器": "傳感器",
"可绑定":"可綁定", "可绑定": "可綁定",
"已被绑定":"已被綁定", "已被绑定": "已被綁定",
"双人版绑定标题":"該設備為雙人版,請選擇", "双人版绑定标题": "該設備為雙人版,請選擇",
"绑定全部":"綁定全部", "绑定全部": "綁定全部",
"主设备":"主設備:", "主设备": "主設備:",
"从设备":"從設備:", "从设备": "從設備:",
"确定":"確定", "确定": "確定",
"取消":"取消", "取消": "取消",
"无法绑定":"無法綁定!", "无法绑定": "無法綁定!",
"无法绑定1":"檢測到該設備", "无法绑定1": "檢測到該設備",
"无法绑定2":"已被綁定", "无法绑定2": "已被綁定",
"无法绑定3":",綁定前請先進行解綁,有疑問請聯繫客服", "无法绑定3": ",綁定前請先進行解綁,有疑問請聯繫客服",
"知道了":"知道了", "知道了": "知道了",
"是":"是", "是": "是",
"否":"否", "否": "否",
"确定绑定提示":"確定綁定該設備嗎?", "确定绑定提示": "確定綁定該設備嗎?",
"连接成功":"藍牙連接成功", "连接成功": "藍牙連接成功",
"连接异常":"藍牙連接異常", "连接异常": "藍牙連接異常",
"连接":"連接", "连接": "連接",
"输入wifi密码":"請輸入wifi密碼", "输入wifi密码": "請輸入wifi密碼",
"显示密码":"顯示", "显示密码": "顯示",
"不显示密码":"不顯示" "不显示密码": "不顯示"
}, },
"登录页":{ "登录页": {
"欢迎使用太和e护":"歡迎使用太和e護", "欢迎使用太和e护": "歡迎使用太和e護",
"科技睡眠 洞悉万千":"科技睡眠 洞悉萬千", "科技睡眠 洞悉万千": "科技睡眠 洞悉萬千",
"本机号码一键登录/注册":"本機號碼一鍵登錄/註冊", "本机号码一键登录/注册": "本機號碼一鍵登錄/註冊",
"其他手机号码":"其他賬號登錄", "其他手机号码": "其他賬號登錄",
"协议1":"登錄時將自動註冊,且代表您同意", "协议1": "登錄時將自動註冊,且代表您同意",
"协议2":"《用戶協議》", "协议2": "《用戶協議》",
"协议3":"和", "协议3": "和",
"协议4":"《隱私政策》", "协议4": "《隱私政策》",
"协议5":"以及", "协议5": "以及",
"协议6":"《用戶使用條款》", "协议6": "《用戶使用條款》",
"其他登录方式":"歡迎使用太和e護", "其他登录方式": "歡迎使用太和e護",
"未同意协议":"請確認同意協議" "未同意协议": "請確認同意協議"
}, },
"人员资料":{ "人员资料": {
"标题":"人員資料", "标题": "人員資料",
"保存":"保存", "保存": "保存",
"名字输入提示":"使用人員姓名(必填)", "名字输入提示": "使用人員姓名(必填)",
"生日输入提示":"生日(必填)", "生日输入提示": "生日(必填)",
"体重输入提示":"體重kg(必填)", "体重输入提示": "體重kg(必填)",
"疾病标题":"慢病管理", "疾病标题": "慢病管理",
"提示":"提示:填寫準確的使用人員相關資料,可以使睡眠報告監測數據更加精準!" "提示": "提示:填寫準確的使用人員相關資料,可以使睡眠報告監測數據更加精準!"
}, },
"绑定成功":{ "绑定成功": {
"标题":"綁定完成", "标题": "綁定完成",
"绑定成功":"綁定成功! ", "绑定成功": "綁定成功! ",
"分享标题":"是否進行分享?", "分享标题": "是否進行分享?",
"分享内容":"設備綁定成功後,如需對朋友或家人共享我的睡眠情況,可以進行立即分享,分享成功后,對方即可享受查看該設備權限,可以收到該設備的睡眠報告。", "分享内容": "設備綁定成功後,如需對朋友或家人共享我的睡眠情況,可以進行立即分享,分享成功后,對方即可享受查看該設備權限,可以收到該設備的睡眠報告。",
"立即分享":"立即分享", "立即分享": "立即分享",
"返回":"返回" "返回": "返回"
}, },
"日期":{ "日期": {
"取消":"取消", "取消": "取消",
"确定":"確定", "确定": "確定",
"年":"年", "年": "年",
"月":"月", "月": "月",
"日":"日" "日": "日"
}, },
"wifi页":{ "wifi页": {
"标题":"WIFI配置", "标题": "WIFI配置",
"跳过":"跳過", "跳过": "跳過",
"WLAN":"網絡", "WLAN": "網絡",
"未连接":"未連接", "未连接": "未連接",
"已连接":"已連接", "已连接": "已連接",
"可用WLAN":"可用WLAN", "可用WLAN": "可用WLAN",
"刷新":"刷新", "刷新": "刷新",
"密码为空":"密碼不能為空", "密码为空": "密碼不能為空",
"配网成功":"配網成功", "配网成功": "配網成功",
"配网失败":"配網失敗", "配网失败": "配網失敗",
"配网中":"配網中", "配网中": "配網中",
"需配网":"請給設備配置網絡!" "需配网": "請給設備配置網絡!"
}, },
"其他手机登录页":{ "其他手机登录页": {
"输入内容":"輸入手機號碼/郵箱", "输入内容": "輸入手機號碼/郵箱",
"输入验证码":"輸入驗證碼", "输入验证码": "輸入驗證碼",
"获取验证码":"獲取驗證碼", "获取验证码": "獲取驗證碼",
"登录":"登錄", "登录": "登錄",
"请输入手机号":"請輸入手機號/郵箱", "请输入手机号": "請輸入手機號/郵箱",
"不正确手机号":"請輸入正確的手機號或者郵箱", "不正确手机号": "請輸入正確的手機號或者郵箱",
"请输入验证码":"請輸入驗證碼", "请输入验证码": "請輸入驗證碼",
"登录成功":"登錄成功", "登录成功": "登錄成功",
"秒":"秒", "秒": "秒",
"发送成功":"驗證碼發送成功", "发送成功": "驗證碼發送成功",
"发送失败":"驗證碼發送失敗", "发送失败": "驗證碼發送失敗",
"登录失败":"登錄失敗" "登录失败": "登錄失敗"
}, },
"修改资料页":{ "修改资料页": {
"个人信息":"個人信息", "个人信息": "個人信息",
"保存":"保存", "保存": "保存",
"点击更换头像":"點擊更換頭像", "点击更换头像": "點擊更換頭像",
"保存成功":"保存成功!", "保存成功": "保存成功!",
"保存失败":"保存失敗!" "保存失败": "保存失敗!"
}, },
"设置页":{ "设置页": {
"标题":"設置", "标题": "設置",
"主题模式":"主題模式", "主题模式": "主題模式",
"选择语言":"選擇語言", "选择语言": "選擇語言",
"关于我们":"關於我們", "关于我们": "關於我們",
"用户协议":"用戶協議", "用户协议": "用戶協議",
"隐私协议":"隱私協議", "隐私协议": "隱私協議",
"退出登录":"退出登錄", "退出登录": "退出登錄",
"注销账号":"註銷賬號", "注销账号": "註銷賬號",
"退出成功":"退出成功", "退出成功": "退出成功",
"退出失败":"退出失敗" "退出失败": "退出失敗"
}, },
"关于我们":{ "服务器": {
"标题":"關於我們" "失败": "服務器內部錯誤,請聯繫管理員"
}, },
"服务器":{ "体征检测设备": {
"失败":"服務器內部錯誤,請聯繫管理員" "标题": "體徵監測設備",
"输入关键词": "輸入關鍵詞",
"搜索": "搜索",
"我的e护": "我的e護",
"云关爱": "雲關愛",
"设备ID": "設備ID",
"更新时间": "更新時間",
"设备来源": "設備來源",
"设备状态": "設備狀態",
"人员资料": "人員資料",
"实时体征": "實時體徵",
"消息回看": "消息回看",
"健康报告": "健康報告",
"首页展示": "首頁展示",
"设备详情": "設備詳情",
"重命名": "重命名",
"删除": "刪除"
}, },
"体征检测设备":{ "设备详情": {
"标题":"體徵監測設備", "标题": "設備詳情",
"输入关键词":"輸入關鍵詞", "MAC": "MAC",
"搜索":"搜索", "设备来源": "設備來源",
"我的e护":"我的e護", "型号": "型號",
"云关爱":"雲關愛", "设备名称": "設備名稱",
"设备ID":"設備ID", "网络状态": "網絡狀態",
"更新时间":"更新時間", "版本": "版本",
"设备来源":"設備來源", "更新状态": "更新狀態",
"设备状态":"設備狀態", "更新时间": "更新時間",
"人员资料":"人員資料", "故障状态": "故障狀態"
"实时体征":"實時體徵",
"消息回看":"消息回看",
"健康报告":"健康報告",
"首页展示":"首頁展示",
"设备详情":"設備詳情",
"重命名":"重命名",
"删除":"刪除"
}, },
"设备详情":{ "实时体征": {
"标题":"設備詳情", "标题": "實時體徵",
"MAC":"MAC", "姓名": "姓名",
"设备来源":"設備來源", "年龄": "年齡",
"型号":"型號", "设备ID": "設備ID",
"设备名称":"設備名稱", "体重": "體重",
"网络状态":"網絡狀態", "提示": "提示實時體徵分析時人員應躺在指定床位上且設備正常運行保持身體靜止不動狀態下10~30秒左右即可顯示實時體徵數據。"
"版本":"版本",
"更新状态":"更新狀態",
"更新时间":"更新時間",
"故障状态":"故障狀態"
}, },
"实时体征":{ "待开发": {
"标题":"實時體徵", "提示": "功能開發中..."
"姓名":"姓名",
"年龄":"年齡",
"设备ID":"設備ID",
"体重":"體重",
"提示":"提示實時體徵分析時人員應躺在指定床位上且設備正常運行保持身體靜止不動狀態下10~30秒左右即可顯示實時體徵數據。"
}, },
"待开发":{ "扫一扫": {
"提示":"功能開發中..." "标题": "掃一掃",
"提示": "請掃描設備二維碼",
"相册": "相冊",
"手电筒": "手電筒"
}, },
"扫一扫":{ "设备": {
"标题":"掃一掃", "设备列表请求失败": "設備列表請求失敗",
"提示":"請掃描設備二維碼", "设备列表请求成功": "設備列表請求成功"
"相册":"相冊",
"手电筒":"手電筒"
}, },
"设备":{ "未命名": "未命名",
"设备列表请求失败":"設備列表請求失敗", "未知时间": "-",
"设备列表请求成功":"設備列表請求成功" "设备ID": "設備ID",
}, "更新时间": "更新時間",
"未命名":"未命名", "已分享": "已分享",
"未知时间":"-", "设备来源": "設備來源",
"设备ID":"設備ID", "云关爱": "雲關愛",
"更新时间":"更新時間", "是否确认解绑": "是否確認解綁?",
"已分享":"已分享", "请求失败": "請求失敗!",
"设备来源":"設備來源", "操作成功": "操作成功!",
"云关爱":"雲關愛", "操作失败": "操作失敗!",
"是否确认解绑":"是否確認解綁?", "暂无数据": "暫無數據",
"请求失败":"請求失敗!", "请输入姓名": "請輸入姓名",
"操作成功":"操作成功!", "请选择生日": "請選擇生日",
"操作失败":"操作失敗!", "请输入体重": "請輸入體重",
"暂无数据":"暫無數據", "必须登录提示": "請先登錄!",
"请输入姓名":"請輸入姓名", "待开发功能": "新功能開發中,敬請期待",
"请选择生日":"請選擇生日", "未知数据": "-",
"请输入体重":"請輸入體重", "在离床": "在離床",
"必须登录提示":"請先登錄!", "体动": "體動",
"待开发功能":"新功能開發中,敬請期待", "心率": "心率",
"未知数据":"-", "打鼾": "打鼾",
"在离床":"在離床", "呼吸": "呼吸",
"体动":"體動", "呼吸暂停": "呼吸暫停",
"心率":"心率", "请保持静止": "請保持身體靜止",
"打鼾":"打鼾", "健康报告": "健康報告",
"呼吸":"呼吸", "修改人员名称": "修改人員名稱",
"呼吸暂停":"呼吸暫停", "在线": "在線",
"请保持静止":"請保持身體靜止", "离线": "離線",
"健康报告":"健康報告", "有更新": "有更新",
"修改人员名称":"修改人員名稱", "无更新": "無更新",
"在线":"在線", "有故障": "有故障",
"离线":"離線", "无故障": "無故障",
"有更新":"有更新", "": "",
"无更新":"無更新", "WIFI配置": "WIFI配置",
"有故障":"有故障", "分享设备": "分享設備",
"无故障":"無故障", "消息设置": "消息設置",
"":"", "设备分享": "設備分享",
"WIFI配置":"WIFI配置", "请输入对方手机号或邮箱": "請輸入對方手機號或郵箱",
"分享设备":"分享設備", "微信好友一键分享": "微信好友一鍵分享",
"消息设置":"消息設置", "发送邀请": "發送邀請",
"设备分享":"設備分享", "要分享的设备": "要分享的設備",
"请输入对方手机号或邮箱":"請輸入對方手機號或郵箱", "主设备": "主設備:",
"微信好友一键分享":"微信好友一鍵分享", "从设备": "從設備:",
"发送邀请":"發送邀請", "邀请成功": "邀請成功!",
"要分享的设备":"要分享的設備", "邀请失败": "邀請失敗!",
"主设备":"主設備:", "请输入手机号或者邮箱": "請輸入手機號或者郵箱",
"从设备":"從設備:", "请输入正确的手机号或者邮箱": "請輸入正確的手機號或者郵箱",
"邀请成功":"邀請成功!", "体征消息": "體徵消息",
"邀请失败":"邀請失敗!", "系统消息": "系統消息",
"请输入手机号或者邮箱":"請輸入手機號或者郵箱", "无需处理": "無需處理",
"请输入正确的手机号或者邮箱":"請輸入正確的手機號或者郵箱", "待处理": "待處理",
"体征消息":"體徵消息", "已处理": "已處理",
"系统消息":"系統消息", "已超时": "已超時",
"无需处理":"無需處理", "是否确认接受该设备": "是否確認接受該設備?",
"待处理":"待處理", "信号强度": "信號強度:",
"已处理":"已處理", "设备升级": "設備升級",
"已超时":"已超時", "设备故障": "設備發生故障!",
"是否确认接受该设备":"是否確認接受該設備?", "是否在床": "是否在床:",
"信号强度":"信號強度:", "在床": "在床",
"设备升级":"設備升級", "离床": "離床",
"设备故障":"設備發生故障!", "较弱": "較弱",
"是否在床":"是否在床:", "": "",
"在床":"在床", "一般": "一般",
"离床":"離床", "": "",
"较弱":"較弱", "网络状态": "網絡狀態:",
"":"", "确认": "確認",
"一般":"一般", "输入关键字": "輸入關鍵字",
"":"", "搜索": "搜索",
"网络状态":"網絡狀態:", "名称": "名稱:",
"确认":"確認", "账号": "賬號:",
"输入关键字":"輸入關鍵字", "分享时间": "分享時間",
"搜索":"搜索", "设备校准": "設備校準",
"名称":"名稱:", "离床校准": "離床校準",
"账号":"賬號:", "未完成": "未完成",
"分享时间":"分享時間", "已完成": "已完成",
"设备校准":"設備校準", "位置校准": "位置校準",
"离床校准":"離床校準", "床头": "床頭",
"未完成":"未完成", "离床校准提示": "請校準人員暫時離開床鋪且在校準期間保持周圍安靜",
"已完成":"已完成", "位置校准提示": "請校準人員到箭頭指定一側 平躺後點擊開始保持10秒",
"位置校准":"位置校準", "开始校准": "開始校準",
"床头":"床頭", "校准完成": "校準完成!",
"离床校准提示":"請校準人員暫時離開床鋪且在校準期間保持周圍安靜", "微信安装提示": "請先安裝微信APP再使用微信登錄",
"位置校准提示":"請校準人員到箭頭指定一側 平躺後點擊開始保持10秒", "安卓启用网络提示": "",
"开始校准":"開始校準", "ios启用网络提示": "",
"校准完成":"校準完成!", "设备报修": "設備報修",
"微信安装提示":"請先安裝微信APP再使用微信登錄", "联系人": "聯繫人",
"安卓启用网络提示":"", "手机号": "手機號",
"ios启用网络提示":"", "名称输入提示": "請輸入聯繫人名稱",
"设备报修":"設備報修", "手机号输入提示": "請輸入聯繫人手機號",
"联系人":"聯繫人", "提交": "提交",
"手机号":"手機號", "设备参数": "設備參數",
"名称输入提示":"請輸入聯繫人名稱", "问题描述": "問題描述60個字以內",
"手机号输入提示":"請輸入聯繫人手機號", "上传提示": "點擊上傳設備故障照片",
"提交":"提交", "设备参数提示": "請輸入設備參數",
"设备参数":"設備參數", "选择设备": "請選擇設備",
"问题描述":"問題描述60個字以內", "上传限制": "文件不能超過5MB",
"上传提示":"點擊上傳設備故障照片", "选择语言": "選擇語言",
"设备参数提示":"請輸入設備參數", "设备列表": "設備列表",
"选择设备":"請選擇設備", "图片未上传": "圖片未上傳",
"上传限制":"文件不能超過5MB", "设备未选择": "設備未選擇",
"选择语言":"選擇語言", "参数未填写": "參數未填寫",
"设备列表":"設備列表", "问题描述未填写": "問題描述未填寫",
"图片未上传":"圖片未上傳", "编辑": "編輯",
"设备未选择":"設備未選擇", "滑动退出提醒": "再按一次退出程序",
"参数未填写":"參數未填寫", "操作说明": "操作說明",
"问题描述未填写":"問題描述未填寫", "关注我们": "關注我們",
"编辑":"編輯", "申请记录": "申請記錄",
"滑动退出提醒":"再按一次退出程序", "设备类型": "設備類型",
"操作说明":"操作說明", "发生时间": "發生時間",
"关注我们":"關注我們", "最小信号强度": "最小信號強度",
"申请记录":"申請記錄", "匹配出的外围设备": "匹配出的外圍設備",
"设备类型":"設備類型",
"发生时间":"發生時間",
"最小信号强度":"最小信號強度",
"匹配出的外围设备":"匹配出的外圍設備",
"连接中...": "連接中", "连接中...": "連接中",
"刷新":"刷新", "刷新": "刷新",
"版本":"版本:", "版本": "版本:",
"日报":"日報", "日报": "日報",
"月报":"月報", "月报": "月報",
"周报":"週報", "周报": "週報",
"4g设备配置wifi提示":"該設備為4G設備無需配置wifi", "4g设备配置wifi提示": "該設備為4G設備無需配置wifi",
"微信客服提示":"請先安裝微信APP再聯繫客服", "微信客服提示": "請先安裝微信APP再聯繫客服",
"打开微信客服提示":"正在打開微信客服...", "打开微信客服提示": "正在打開微信客服...",
"身高":"身高", "身高": "身高",
"身高输入提示":"請輸入身高cm(必填)", "身高输入提示": "請輸入身高cm(必填)",
"用户协议":"用戶協議", "用户协议": "用戶協議",
"隐私协议":"隱私協議", "隐私协议": "隱私協議",
"呼吸基准":"呼吸基準", "呼吸基准": "呼吸基準",
"呼吸基准介绍":"呼吸基準介紹。", "呼吸基准介绍": "呼吸基準介紹。",
"删除错误提示":"請至少選擇一項", "删除错误提示": "請至少選擇一項",
"解绑":"解綁", "解绑": "解綁",
"删除":"刪除", "删除": "刪除",
"校准未完成提示":"校準還未完成,是否確認退出校準流程?", "校准未完成提示": "校準還未完成,是否確認退出校準流程?",
"确定":"確定", "确定": "確定",
"查看":"查看", "查看": "查看",
"报修成功标题":"報修成功", "报修成功标题": "報修成功",
"报修成功":"報修成功!", "报修成功": "報修成功!",
"查看报修历史":"查看報修歷史", "查看报修历史": "查看報修歷史",
"报修成功标语":"報修申請提交後,我們的後台客服人員會與您取得聯繫,請保持電話暢通,感謝您對本產品的支持!", "报修成功标语": "報修申請提交後,我們的後台客服人員會與您取得聯繫,請保持電話暢通,感謝您對本產品的支持!",
"问题描述字数限制":"問題描述字數超過限制", "问题描述字数限制": "問題描述字數超過限制",
"30天平均分":"30天平均分", "30天平均分": "30天平均分",
"睡眠等级":"睡眠等級", "睡眠等级": "睡眠等級",
"睡眠评分":"睡眠評分", "睡眠评分": "睡眠評分",
"睡眠规律性":"睡眠規律性", "睡眠规律性": "睡眠規律性",
"入睡时间":"入睡時間", "入睡时间": "入睡時間",
"睡眠时长":"睡眠時長", "睡眠时长": "睡眠時長",
"起床时间":"起床時間", "起床时间": "起床時間",
"小时":"小時", "小时": "小時",
"分钟":"分鐘", "分钟": "分鐘",
"消息提醒设置":"消息提醒設置", "消息提醒设置": "消息提醒設置",
"APP消息":"APP消息", "APP消息": "APP消息",
"APP消息介绍":"打開“太和e護”APP可以查看該設備的消息內容", "APP消息介绍": "打開“太和e護”APP可以查看該設備的消息內容",
"通用APP消息介绍":"打開“太和e護”APP可以查看消息內容", "通用APP消息介绍": "打開“太和e護”APP可以查看消息內容",
"服务号消息":"服務號消息", "服务号消息": "服務號消息",
"服务号消息介绍":"無需打開“太和e護”APP關注太和e護服務號後微信內即可接收該設備消息推送", "服务号消息介绍": "無需打開“太和e護”APP關注太和e護服務號後微信內即可接收該設備消息推送",
"通用服务号消息介绍":"無需打開“太和e護”APP關注太和e護服務號後微信內即可接收消息推送", "通用服务号消息介绍": "無需打開“太和e護”APP關注太和e護服務號後微信內即可接收消息推送",
"消息通知":"消息通知", "消息通知": "消息通知",
"绑定操作提示":"設備放置說明", "绑定操作提示": "設備放置說明",
"绑定操作提示介绍":"是否打開設備放置說明的提示", "绑定操作提示介绍": "是否打開設備放置說明的提示",
"设备升级通知":"設備升級通知", "设备升级通知": "設備升級通知",
"设备升级通知介绍":"是否打開設備升級的提示", "设备升级通知介绍": "是否打開設備升級的提示",
"设备故障通知":"設備故障通知", "设备故障通知": "設備故障通知",
"设备故障通知介绍":"是否打開設備故障的提示", "设备故障通知介绍": "是否打開設備故障的提示",
"全部消息":"全部消息", "全部消息": "全部消息",
"请先在设置里的消息通知打开全部消息配置":"請先在設置裡的消息通知打開全部消息配置", "请先在设置里的消息通知打开全部消息配置": "請先在設置裡的消息通知打開全部消息配置",
"请先打开全部消息配置":"請先打開全部消息配置", "请先打开全部消息配置": "請先打開全部消息配置",
"正常值":"正常值:", "正常值": "正常值:",
"今日":"今日", "今日": "今日",
"深色":"深色", "深色": "深色",
"皮肤指数":"皮膚指數", "皮肤指数": "皮膚指數",
"皮肤指数介绍":"皮膚指數通過用戶睡眠過程中的體徵數據,計算皮膚電反應,生成綜合評估指標,用於睡眠中的生理應激狀態或自主神經活動。", "皮肤指数介绍": "皮膚指數通過用戶睡眠過程中的體徵數據,計算皮膚電反應,生成綜合評估指標,用於睡眠中的生理應激狀態或自主神經活動。",
"自主神经平衡指数":"自主神經平衡指數", "自主神经平衡指数": "自主神經平衡指數",
"自主神经平衡指数监测介绍":"自主神經平衡指數 是評估人體自主神經系統ANS功能狀態的重要指標主要反映交感神經和副交感神經的活性平衡關係。", "自主神经平衡指数监测介绍": "自主神經平衡指數 是評估人體自主神經系統ANS功能狀態的重要指標主要反映交感神經和副交感神經的活性平衡關係。",
"慢性病风险指数":"慢性病風險指數", "慢性病风险指数": "慢性病風險指數",
"慢性病风险指数介绍":"慢性病風險指數是通過整合個體的生理指標、生活方式等多維度數據,構建的量化評估模型,用於預測用戶未來患慢性非傳染性疾病(如高血壓、糖尿病、冠心病、癌症等)的風險概率。", "慢性病风险指数介绍": "慢性病風險指數是通過整合個體的生理指標、生活方式等多維度數據,構建的量化評估模型,用於預測用戶未來患慢性非傳染性疾病(如高血壓、糖尿病、冠心病、癌症等)的風險概率。",
"心理健康评估":"心理健康評估", "心理健康评估": "心理健康評估",
"心理健康评估介绍":"心率健康評估主要通過用戶睡眠報告中的時間點、體徵數據及HRV數據等信息來判斷其心理健康水平、疲勞程度。", "心理健康评估介绍": "心率健康評估主要通過用戶睡眠報告中的時間點、體徵數據及HRV數據等信息來判斷其心理健康水平、疲勞程度。",
"呼吸暂停监测":"呼吸暫停監測", "呼吸暂停监测": "呼吸暫停監測",
"呼吸暂停监测介绍":"呼吸暫停監測是指用戶在睡眠過程中產生的呼吸暫停的圖表說明。", "呼吸暂停监测介绍": "呼吸暫停監測是指用戶在睡眠過程中產生的呼吸暫停的圖表說明。",
"打鼾监测":"打鼾監測", "打鼾监测": "打鼾監測",
"打鼾监测监测介绍":"打鼾監測是指用戶在睡眠過程中打鼾頻次的圖表說明。", "打鼾监测监测介绍": "打鼾監測是指用戶在睡眠過程中打鼾頻次的圖表說明。",
"呼吸数据":"呼吸數據", "呼吸数据": "呼吸數據",
"呼吸数据介绍":"呼吸數據是指用戶在睡眠過程中呼吸的基本數據,是評估睡眠呼吸質量、篩查睡眠呼吸障礙的核心指標。", "呼吸数据介绍": "呼吸數據是指用戶在睡眠過程中呼吸的基本數據,是評估睡眠呼吸質量、篩查睡眠呼吸障礙的核心指標。",
"心率散点图":"心率散點圖", "心率散点图": "心率散點圖",
"心率散点图介绍":"心電散點圖是用非線性的圖形方法描記的連續心衝擊圖的RR間期圖因圖形由散點組成又稱散點圖。", "心率散点图介绍": "心電散點圖是用非線性的圖形方法描記的連續心衝擊圖的RR間期圖因圖形由散點組成又稱散點圖。",
"今日数据":"今日數據", "今日数据": "今日數據",
"昨日数据":"昨日數據", "昨日数据": "昨日數據",
"次":"次", "次": "次",
"秒":"秒", "秒": "秒",
"失败": "失敗" "失败": "失敗",
"关于我们": "關於我們",
"周一": "週一",
"周二": "週二",
"周三": "週三",
"周四": "週四",
"周五": "週五",
"周六": "週六",
"周日": "週日",
"无报告": "无报告",
"姓名": "姓名",
"年龄": "年齡",
"体重": "體重",
"分": "分",
"位置权限说明": "位置權限說明",
"获得位置信息,连接附近的蓝牙设备与推荐附近门店": "獲得位置信息,連接附近的藍牙設備與推薦附近門店",
"蓝牙权限说明": "藍牙權限說明",
"搜索链接附近的蓝牙设备": "搜索連接附近的藍牙設備",
"附近设备权限说明": "附近設備權限說明"
} }

View File

@@ -1,10 +1,10 @@
class ServiceConstant { class ServiceConstant {
// static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址 // static const String baseHost = "zhmht.swes.com.cn:27021"; //服务地址 眠花糖测试地址
static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址 // static const String baseHost = "zhmht.swes.com.cn:27020"; //服务地址 眠花糖正式地址
// static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址 static const String baseHost = "vsbs-test.he-info.cn"; //服务地址 本地测试地址
// static const String baseHost = "vsbst-api.he-info.cn";//服务地址 // static const String baseHost = "vsbst-api.he-info.cn";//服务地址
// static const String service_address = "http://$baseHost"; static const String service_address = "http://$baseHost";
static const String service_address = "https://$baseHost"; // static const String service_address = "https://$baseHost";
static String server_service = "/vsbs_app_server"; //服务名称 static String server_service = "/vsbs_app_server"; //服务名称

View File

@@ -17,42 +17,6 @@ class SleepdateWidget extends StatelessWidget {
this.highlightColor = Colors.black, // 默认值黑色 this.highlightColor = Colors.black, // 默认值黑色
}); });
@override
// Widget build(BuildContext context) {
// return ClickableContainer(
// onTap: onTap,
// backgroundColor: Colors.transparent,
// highlightColor: Colors.transparent,
// padding: EdgeInsets.all(4.rpx),
// child: Container(
// width: 90.rpx,
// height: 90.rpx,
// decoration: BoxDecoration(
// borderRadius: BorderRadius.circular(30.rpx),
// color: isSelected ? highlightColor : Colors.transparent, // 使用传入的颜色
// ),
// child: Padding(
// padding:
// EdgeInsetsDirectional.fromSTEB(10.rpx, 10.rpx, 10.rpx, 10.rpx),
// child: Container(
// decoration: BoxDecoration(
// color: Color(0xFF757575),
// shape: BoxShape.circle,
// ),
// alignment: Alignment.center,
// child: Text(
// '${date.day}',
// style: TextStyle(
// color: Colors.white,
// fontSize: 26.rpx,
// letterSpacing: 0.0,
// ),
// ),
// ),
// ),
// ),
// );
// }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Color? fillColor; Color? fillColor;

View File

@@ -6,7 +6,6 @@ import 'package:ef/ef.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart';
import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart';
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
import 'package:vbvs_app/controller/setting/language/language_controller.dart'; import 'package:vbvs_app/controller/setting/language/language_controller.dart';
import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/model/api_response.dart';
@@ -40,7 +39,7 @@ class DeviceTypeController extends GetControllerEx<DeviceTypeModel> {
attr = GetModel(DeviceTypeModel()).obs; attr = GetModel(DeviceTypeModel()).obs;
} }
RxList deviceTypeList = [].obs; RxList deviceTypeList = [].obs;
MHLanguageController languageController = Get.find(); LanguageController languageController = Get.find();
Future<ApiResponse> getDeviceType() async { Future<ApiResponse> getDeviceType() async {
ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr); ApiResponse apiResponse = ApiResponse(code: -1, msg: "请求失败".tr);

View File

@@ -181,6 +181,10 @@ class MessageController extends GetControllerEx<MessageModel> {
queryUrl += "?lang=$language"; queryUrl += "?lang=$language";
} }
} }
if (type != null) {
queryUrl = "$queryUrl&type=$type";
}
queryUrl = "$queryUrl&mid=ALL";
var response = await EasyDartModule.dio.post(queryUrl); var response = await EasyDartModule.dio.post(queryUrl);
if (response != null) { if (response != null) {

View File

@@ -5,6 +5,8 @@ import 'package:ef/ef.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:path/path.dart' as path; import 'package:path/path.dart' as path;
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/language/AppLanguage.dart'; import 'package:vbvs_app/language/AppLanguage.dart';
part 'mh_language_controller.g.dart'; // 由json_serializable自动生成的部分 part 'mh_language_controller.g.dart'; // 由json_serializable自动生成的部分
@@ -47,10 +49,25 @@ class MHLanguageController extends GetControllerEx<MHLanguageModel> {
final Map<String, dynamic> manifestMap = json.decode(manifestContent); final Map<String, dynamic> manifestMap = json.decode(manifestContent);
// 筛选出 langs 目录下的 .json 文件 // 筛选出 langs 目录下的 .json 文件
final langFiles = manifestMap.keys
int code = AppConstants().ent_type;
final langFiles;
if (APPPackageType.TH.code == code) {
langFiles = manifestMap.keys
.where((String key) =>
key.startsWith('assets/langs/') && key.endsWith('.json'))
.toList();
} else if (APPPackageType.MHT.code == code) {
langFiles = manifestMap.keys
.where((String key) => .where((String key) =>
key.startsWith('assets/mhlangs/') && key.endsWith('.json')) key.startsWith('assets/mhlangs/') && key.endsWith('.json'))
.toList(); .toList();
} else {
langFiles = manifestMap.keys
.where((String key) =>
key.startsWith('assets/langs/') && key.endsWith('.json'))
.toList();
}
// 2. 遍历所有语言文件 // 2. 遍历所有语言文件
for (final filePath in langFiles) { for (final filePath in langFiles) {

View File

@@ -6,6 +6,7 @@ import 'package:get_storage/get_storage.dart';
import 'package:img_picker/img_picker.dart'; import 'package:img_picker/img_picker.dart';
import 'package:json_annotation/json_annotation.dart'; import 'package:json_annotation/json_annotation.dart';
import 'package:vbvs_app/common/color/ServiceConstant.dart'; import 'package:vbvs_app/common/color/ServiceConstant.dart';
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/color/app_uri_status.dart'; import 'package:vbvs_app/common/color/app_uri_status.dart';
import 'package:vbvs_app/common/util/DailyLogUtils.dart'; import 'package:vbvs_app/common/util/DailyLogUtils.dart';
import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart';
@@ -14,6 +15,7 @@ import 'package:vbvs_app/controller/home/home_controller.dart';
import 'package:vbvs_app/controller/login/login_controller.dart'; import 'package:vbvs_app/controller/login/login_controller.dart';
import 'package:vbvs_app/controller/message/message_controller.dart'; import 'package:vbvs_app/controller/message/message_controller.dart';
import 'package:vbvs_app/controller/time/countdown_controller.dart'; import 'package:vbvs_app/controller/time/countdown_controller.dart';
import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/model/api_response.dart';
import 'package:vbvs_app/model/user_data.dart'; import 'package:vbvs_app/model/user_data.dart';
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart'; import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
@@ -225,7 +227,11 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
} }
ApiResponse logOut() { ApiResponse logOut() {
int code = AppConstants().ent_type;
if (APPPackageType.MHT.code == code) {
MHTHomeController mhtHomeController = Get.find(); MHTHomeController mhtHomeController = Get.find();
mhtHomeController.personnelList.value = [];
}
ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr); ApiResponse apiResponse = ApiResponse(code: 1, msg: "退出成功".tr);
EasyDartModule.logger.info("退出登录"); EasyDartModule.logger.info("退出登录");
DailyLogUtils.writeLog("退出登录"); DailyLogUtils.writeLog("退出登录");
@@ -246,9 +252,9 @@ class UserInfoController extends GetControllerEx<UserInfoModel> {
messageController.model.system_message_read = 0; messageController.model.system_message_read = 0;
CountdownController countdownController = Get.find(); CountdownController countdownController = Get.find();
countdownController.countdown.value = 0; countdownController.countdown.value = 0;
mhtHomeController.personnelList.value = [];
return apiResponse; return apiResponse;
} }
ApiResponse deleteAccount() { ApiResponse deleteAccount() {
MHTHomeController mhtHomeController = Get.find(); MHTHomeController mhtHomeController = Get.find();
ApiResponse apiResponse = ApiResponse(code: 1, msg: "注销成功".tr); ApiResponse apiResponse = ApiResponse(code: 1, msg: "注销成功".tr);

View File

@@ -91,7 +91,7 @@ Future<void> main() async {
final Locale? deviceLocale = Get.deviceLocale; final Locale? deviceLocale = Get.deviceLocale;
print('系统语言: ${deviceLocale?.languageCode}'); print('系统语言: ${deviceLocale?.languageCode}');
await loadLanguageSetting(); await loadLanguageSetting(deviceLocale?.languageCode);
await initLanguageSetting(); await initLanguageSetting();
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
@@ -121,12 +121,37 @@ Future<void> main() async {
}); });
} }
loadLanguageSetting() async { // languageCode 系统默认语言码 en/zh
await ef.kvdb.openDir("mht"); loadLanguageSetting(String? languageCode) async {
String? language = await ef.kvdb.read("mht/language"); int code = AppConstants().ent_type;
String? language;
language ??= 'zh_CN'; if (APPPackageType.MHT.code == code) {
await AppLanguage().loadLanguage(language, project: APPPackageType.MHT.code); await ef.kvdb.openDir("mht");
language = await ef.kvdb.read("mht/language");
} else if (APPPackageType.TH.code == code) {
await ef.kvdb.openDir("th");
language = await ef.kvdb.read("th/language");
} else {
await ef.kvdb.openDir("th");
language = await ef.kvdb.read("th/language");
}
// 如果 kvdb 没有存储
if (language == null || language.isEmpty) {
if (languageCode == null || languageCode.isEmpty) {
language = 'en_US'; // 系统默认为空时用 en_US
} else {
language = (languageCode.toLowerCase() == 'zh') ? 'zh_CN' : 'en_US';
}
}
await AppLanguage().loadLanguage(
language,
project: (APPPackageType.MHT.code == code)
? APPPackageType.MHT.code
: APPPackageType.TH.code,
);
} }
void initwebService() { void initwebService() {

View File

@@ -1,5 +1,6 @@
import 'package:EasyDartModule/EasyDartModule.dart' as edm; import 'package:EasyDartModule/EasyDartModule.dart' as edm;
import 'package:ef/ef.dart'; import 'package:ef/ef.dart';
import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:fluwx/fluwx.dart'; import 'package:fluwx/fluwx.dart';
@@ -19,6 +20,8 @@ import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
import 'package:vbvs_app/controller/time/countdown_controller.dart'; import 'package:vbvs_app/controller/time/countdown_controller.dart';
import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/model/api_response.dart'; import 'package:vbvs_app/model/api_response.dart';
import 'package:vbvs_app/pages/user/privacy_scheme_page.dart';
import 'package:vbvs_app/pages/user/user_scheme_page.dart';
class OtherLoginPage extends StatefulWidget { class OtherLoginPage extends StatefulWidget {
const OtherLoginPage({super.key}); const OtherLoginPage({super.key});
@@ -34,10 +37,32 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
CountdownController countdownController = Get.find(); CountdownController countdownController = Get.find();
LoginController loginController = Get.find(); LoginController loginController = Get.find();
late TapGestureRecognizer _tapRecognizer2;
late TapGestureRecognizer _tapRecognizer4;
@override
void dispose() {
_tapRecognizer2.dispose();
_tapRecognizer4.dispose();
super.dispose();
}
@override @override
void initState() { void initState() {
// TODO: implement initState // TODO: implement initState
super.initState(); _tapRecognizer2 = TapGestureRecognizer()
..onTap = () {
// 协议2点击事件逻辑
print('点击了协议2');
// Get.to(() => UserSchemePage());
Get.toNamed("/userSchemePage");
};
_tapRecognizer4 = TapGestureRecognizer()
..onTap = () {
// 协议4点击事件逻辑
print('点击了协议4');
Get.toNamed("/privacyPage");
};
super.initState(); super.initState();
LoginController loginController = Get.find(); LoginController loginController = Get.find();
Fluwx fluwx = loginController.fluwx; Fluwx fluwx = loginController.fluwx;
@@ -668,6 +693,86 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
checkColor: Colors.white, checkColor: Colors.white,
), ),
)), )),
// Expanded(
// child: Padding(
// padding: EdgeInsetsDirectional.fromSTEB(
// 0.rpx, 10.rpx, 0.rpx, 0.rpx),
// child: Container(
// width: bodysize.maxWidth,
// constraints: BoxConstraints(
// minWidth: 500.rpx,
// minHeight: 90.rpx,
// ),
// child: RichText(
// text: TextSpan(
// children: [
// TextSpan(
// text: '登录页.协议1'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color: themeController
// .currentColor.sc3,
// ),
// ),
// TextSpan(
// text: '登录页.协议2'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color:
// stringToColor("#FF9F66"),
// ),
// ),
// TextSpan(
// text: '登录页.协议3'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color: themeController
// .currentColor.sc3,
// ),
// ),
// TextSpan(
// text: '登录页.协议4'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color:
// stringToColor("#FF9F66"),
// ),
// ),
// TextSpan(
// text: '登录页.协议5'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color: themeController
// .currentColor.sc3,
// ),
// ),
// TextSpan(
// text: '登录页.协议6'.tr,
// style: TextStyle(
// fontFamily: 'Inter',
// letterSpacing: 0.0,
// fontSize: 20.rpx,
// color:
// stringToColor("#FF9F66"),
// ),
// ),
// ],
// ),
// ),
// ),
// ),
// ),
Expanded( Expanded(
child: Padding( child: Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
@@ -700,6 +805,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
color: color:
stringToColor("#FF9F66"), stringToColor("#FF9F66"),
), ),
recognizer: _tapRecognizer2,
), ),
TextSpan( TextSpan(
text: '登录页.协议3'.tr, text: '登录页.协议3'.tr,
@@ -720,27 +826,28 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
color: color:
stringToColor("#FF9F66"), stringToColor("#FF9F66"),
), ),
recognizer: _tapRecognizer4,
), ),
TextSpan( // TextSpan(
text: '登录页.协议5'.tr, // text: '登录页.协议5'.tr,
style: TextStyle( // style: TextStyle(
fontFamily: 'Inter', // fontFamily: 'Inter',
letterSpacing: 0.0, // letterSpacing: 0.0,
fontSize: 20.rpx, // fontSize: 20.rpx,
color: themeController // color: themeController
.currentColor.sc3, // .currentColor.sc3,
), // ),
), // ),
TextSpan( // TextSpan(
text: '登录页.协议6'.tr, // text: '登录页.协议6'.tr,
style: TextStyle( // style: TextStyle(
fontFamily: 'Inter', // fontFamily: 'Inter',
letterSpacing: 0.0, // letterSpacing: 0.0,
fontSize: 20.rpx, // fontSize: 20.rpx,
color: // color:
stringToColor("#FF9F66"), // stringToColor("#FF9F66"),
), // ),
), // ),
], ],
), ),
), ),

View File

@@ -7,6 +7,7 @@ import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart'; import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/main_bottom/global_controller.dart'; import 'package:vbvs_app/controller/main_bottom/global_controller.dart';
import 'package:vbvs_app/controller/user_info_controller.dart'; import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/enum/LoginStatus.dart';
class EPage extends StatefulWidget { class EPage extends StatefulWidget {
const EPage({super.key}); const EPage({super.key});
@@ -69,7 +70,17 @@ class _EPageState extends State<EPage> {
highlightColor: Colors.transparent, highlightColor: Colors.transparent,
padding: EdgeInsets.all(0.rpx), padding: EdgeInsets.all(0.rpx),
onTap: () { onTap: () {
UserInfoController userInfoController = Get.find();
bool isLoggedIn =
userInfoController.model.login == LoginStatus.LOGIN.code;
if (!isLoggedIn) {
TopSlideNotification.show(context,
text: "必须登录提示".tr,
textColor: themeController.currentColor.sc9);
Get.toNamed("/otherLoginPage");
} else {
TopSlideNotification.show(context, text: "待开发功能".tr); TopSlideNotification.show(context, text: "待开发功能".tr);
}
}, },
child: Container( child: Container(
// child: widget.webView, // child: widget.webView,

View File

@@ -995,16 +995,14 @@ class _HomePageState extends State<HomePage> {
} }
return Expanded( return Expanded(
child: SingleChildScrollView(child: child: SingleChildScrollView(
Column( child: Column(
children: [ children: [
SizedBox(height: 26.rpx), // 第一个上方间距 SizedBox(height: 26.rpx), // 第一个上方间距
...List.generate(deviceList.length, (i) { ...List.generate(deviceList.length, (i) {
String mac = macList[i]; String mac = macList[i];
List<dynamic> dailyDataList = List<dynamic> dailyDataList = reportData[mac]!;
reportData[mac]!; Map? targetDevice = deviceList.firstWhereOrNull(
Map? targetDevice =
deviceList.firstWhereOrNull(
(device) => device['mac'] == mac, (device) => device['mac'] == mac,
); );
List stateModule = []; List stateModule = [];
@@ -1020,11 +1018,9 @@ class _HomePageState extends State<HomePage> {
targetDevice: targetDevice!, targetDevice: targetDevice!,
sleepDateWidgets: List.generate( sleepDateWidgets: List.generate(
dailyDataList.length, (j) { dailyDataList.length, (j) {
var dayData = dailyDataList[j]; var dayData = dailyDataList[j];
DateTime date = DateTime DateTime date =
.fromMillisecondsSinceEpoch( DateTime.fromMillisecondsSinceEpoch(
dayData['time'] is String dayData['time'] is String
? int.parse(dayData['time']) ? int.parse(dayData['time'])
: dayData['time'], : dayData['time'],
@@ -1059,8 +1055,7 @@ class _HomePageState extends State<HomePage> {
stateModule[j]['time'] = stateModule[j]['time'] =
currentTime; currentTime;
stateModule[j]['mac'] = goalMac; stateModule[j]['mac'] = goalMac;
stateModule[j]['person'] = stateModule[j]['person'] = person;
person;
return SleepDataModuleWidget( return SleepDataModuleWidget(
data: stateModule[j]); data: stateModule[j]);
}) })
@@ -1073,8 +1068,7 @@ class _HomePageState extends State<HomePage> {
); );
}), }),
], ],
) )),
),
); );
}), }),
], ],

View File

@@ -141,7 +141,8 @@ class MainPageBottomChange extends GetView<MainPageController> {
bool isLoggedIn = userInfoController.model.login == bool isLoggedIn = userInfoController.model.login ==
LoginStatus.LOGIN.code; LoginStatus.LOGIN.code;
if ((index == 1 || index == 2) && !isLoggedIn) { // if ((index == 1 || index == 2) && !isLoggedIn) {
if ((index == 2) && !isLoggedIn) {
TopSlideNotification.show( TopSlideNotification.show(
context, context,
text: "必须登录提示".tr, text: "必须登录提示".tr,

View File

@@ -6,7 +6,6 @@ import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/ClickableContainer.dart'; import 'package:vbvs_app/component/tool/ClickableContainer.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart'; import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
import 'package:vbvs_app/controller/setting/language/language_controller.dart'; import 'package:vbvs_app/controller/setting/language/language_controller.dart';
import 'package:vbvs_app/language/AppLanguage.dart'; import 'package:vbvs_app/language/AppLanguage.dart';
import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart'; import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart';
@@ -19,7 +18,7 @@ class LanguageSetting extends StatefulWidget {
} }
class _LanguageSettingState extends State<LanguageSetting> { class _LanguageSettingState extends State<LanguageSetting> {
MHLanguageController languageController = Get.find(); LanguageController languageController = Get.find();
@override @override
void initState() { void initState() {
// languageController.initLanuageList(); // languageController.initLanuageList();
@@ -129,6 +128,15 @@ class _LanguageSettingState extends State<LanguageSetting> {
.language_code); // 加载语言 .language_code); // 加载语言
languageController languageController
.updateAll(); // 更新操作 .updateAll(); // 更新操作
try {
// ef.kv.set("language",
// language.language_code);
await ef.kvdb.write(
"th/language",
language.language_code);
} catch (e) {
print(e);
}
}, },
child: Row( child: Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,

View File

@@ -57,7 +57,7 @@ var routes = {
// "/loginPage": (contxt) => LoginPage(), // "/loginPage": (contxt) => LoginPage(),
// "/otherLoginPage": (contxt) => OtherLoginPage(), // "/otherLoginPage": (contxt) => OtherLoginPage(),
"/loginPage": (contxt) => OtherLoginPage(), "/loginPage": (contxt) => OtherLoginPage(),
// "/otherLoginPage": (contxt) => OtherLoginPage(), "/otherLoginPage": (contxt) => OtherLoginPage(),
"/deviceType": (contxt, {arguments}) => DeviceTypePage(), "/deviceType": (contxt, {arguments}) => DeviceTypePage(),
"/blueteethDevice": (contxt) => BlueteethDevicePage(), "/blueteethDevice": (contxt) => BlueteethDevicePage(),
"/personPage": (contxt) => PersonPage(), "/personPage": (contxt) => PersonPage(),
@@ -119,7 +119,9 @@ var onGenerateRoute = (RouteSettings settings) {
// 如果用户未登录且访问的不是登录页面等,展示提示并重定向 // 如果用户未登录且访问的不是登录页面等,展示提示并重定向
if (settings.name != "/loginPage" && if (settings.name != "/loginPage" &&
settings.name != "/otherLoginPage" && settings.name != "/otherLoginPage" &&
settings.name != "/mianPageBottomChange") { settings.name != "/mianPageBottomChange" &&
settings.name != "/userSchemePage" &&
settings.name != "/privacyPage") {
TopSlideNotification.show( TopSlideNotification.show(
Get.context!, Get.context!,
text: "必须登录提示".tr, text: "必须登录提示".tr,