fix:修复部分国际化bug、增加切换系统语言时更换到对应语言应用昵称

This commit is contained in:
liyi 2024-11-21 11:35:10 +08:00
parent 652a46aa3e
commit 590c834951
25 changed files with 833 additions and 695 deletions

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Star Lock</string>
</resources>

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">星锁</string>
</resources>

View File

@ -0,0 +1,23 @@
{
"sourceLanguage" : "zh-Hans",
"strings" : {
"CFBundleDisplayName" : {
"extractionState" : "manual",
"localizations" : {
"en" : {
"stringUnit" : {
"state" : "translated",
"value" : "Star Lock"
}
},
"zh-Hans" : {
"stringUnit" : {
"state" : "translated",
"value" : "星锁"
}
}
}
}
},
"version" : "1.0"
}

View File

@ -0,0 +1,8 @@
/*
InfoPlist.strings
Runner
Created by mac on 2024/11/21.
*/
"AppName"="Star Lock";

View File

@ -0,0 +1,8 @@
/*
InfoPlist.strings
Runner
Created by mac on 2024/11/21.
*/
"AppName"="星锁";

View File

@ -1,22 +1,22 @@
{
"星锁":"星锁",
"锁通通":"锁通通",
"点击开锁,长按闭锁":"点击开锁,长按闭锁",
"考勤":"考勤",
"星锁": "星锁",
"锁通通": "锁通通",
"点击开锁,长按闭锁": "点击开锁,长按闭锁",
"考勤": "考勤",
"考勤设置": "考勤设置",
"电子钥匙":"电子钥匙",
"电子钥匙": "电子钥匙",
"添加卡": "添加卡",
"卡号": "卡号",
"添加指纹": "添加指纹",
"指纹号": "指纹号",
"遥控": "遥控",
"添加人脸": "添加人脸",
"门锁日志":"门锁日志",
"门锁日志": "门锁日志",
"密码号": "密码号",
"添加者":"添加者",
"添加时间":"添加时间",
"重置":"重置",
"请输入手机号或者邮箱":"请输入手机号或者邮箱",
"添加者": "添加者",
"添加时间": "添加时间",
"重置": "重置",
"请输入手机号或者邮箱": "请输入手机号或者邮箱",
"工作时间": "工作时间",
"工作日设置": "工作日设置",
"星期一": "星期一",
@ -40,17 +40,17 @@
"周五": "周五",
"周六": "周六",
"周日": "周日",
"群发钥匙":"群发钥匙",
"群发钥匙": "群发钥匙",
"锁": "锁",
"请添加":"请添加",
"允许远程开锁":"允许远程开锁",
"请添加": "请添加",
"允许远程开锁": "允许远程开锁",
"请输入验证码": "请输入验证码",
"获取密码": "获取密码",
"请给密码命名":"请给密码命名",
"密码有限期为6个小时只能使用一次":"密码有限期为6个小时只能使用一次",
"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加也可以通过网关远程添加":"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加也可以通过网关远程添加",
"请给密码命名": "请给密码命名",
"密码有限期为6个小时只能使用一次": "密码有限期为6个小时只能使用一次",
"手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加也可以通过网关远程添加": "手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加也可以通过网关远程添加",
"获取": "获取",
"添加":"添加",
"添加": "添加",
"删除公司": "删除公司",
"密码详情": "密码详情",
"修改密码": "修改密码",
@ -60,155 +60,155 @@
"添加手掌": "添加手掌",
"请输入员工账号": "请输入员工账号",
"批量授权锁": "批量授权锁",
"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人":"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人",
"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。":"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。",
"授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人": "授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人",
"功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。": "功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。",
"排列方式": "排列方式",
"早到榜": "早到榜",
"迟到榜": "迟到榜",
"当前模式": "当前模式",
"勤奋榜":"勤奋榜",
"勤奋榜": "勤奋榜",
"延迟时间": "延迟时间",
"经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效。": "经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效。",
"时间": "时间",
"开始时间": "开始时间",
"结束时间": "结束时间",
"工作时间设置": "工作时间设置",
"常开模式":"常开模式",
"常开模式": "常开模式",
"常开时间": "常开时间",
"常开日期": "常开日期",
"添加员工": "添加员工",
"编辑员工": "编辑员工",
"节假日":"节假日",
"打卡方式":"打卡方式",
"员工是否有钥匙":"员工是否有钥匙",
"上班时间":"上班时间",
"下班时间":"下班时间",
"节假日": "节假日",
"打卡方式": "打卡方式",
"员工是否有钥匙": "员工是否有钥匙",
"上班时间": "上班时间",
"下班时间": "下班时间",
"本周": "本周",
"单休":"单休",
"双休":"双休",
"单双休":"单双休",
"年":"年",
"月":"月",
"放假日期":"放假日期",
"补班日期":"补班日期",
"添加假日":"添加假日",
"开始日期":"开始日期",
"必填":"必填",
"结束日期":"结束日期",
"日榜":"日榜",
"月榜":"月榜",
"考勤记录":"考勤记录",
"假日信息":"假日信息",
"基本信息":"基本信息",
"无线键盘":"无线键盘",
"单休": "单休",
"双休": "双休",
"单双休": "单双休",
"年": "年",
"月": "月",
"放假日期": "放假日期",
"补班日期": "补班日期",
"添加假日": "添加假日",
"开始日期": "开始日期",
"必填": "必填",
"结束日期": "结束日期",
"日榜": "日榜",
"月榜": "月榜",
"考勤记录": "考勤记录",
"假日信息": "假日信息",
"基本信息": "基本信息",
"无线键盘": "无线键盘",
"选择无线键盘": "选择无线键盘",
"门磁":"门磁",
"自动闭锁":"自动闭锁",
"锁声音":"锁声音",
"防撬报警":"防撬报警",
"重置键":"重置键",
"锁时间":"锁时间",
"诊断":"诊断",
"上传数据":"上传数据",
"导入其他锁数据":"导入其他锁数据",
"锁升级":"锁升级",
"标记房态":"标记房态",
"开锁提醒":"开锁提醒",
"微信二维码":"微信二维码",
"门磁": "门磁",
"自动闭锁": "自动闭锁",
"锁声音": "锁声音",
"防撬报警": "防撬报警",
"重置键": "重置键",
"锁时间": "锁时间",
"诊断": "诊断",
"上传数据": "上传数据",
"导入其他锁数据": "导入其他锁数据",
"锁升级": "锁升级",
"标记房态": "标记房态",
"开锁提醒": "开锁提醒",
"微信二维码": "微信二维码",
"拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边",
"锁编号":"锁编号",
"电量":"电量",
"锁分组":"锁分组",
"选择分组":"选择分组",
"创建新分组":"创建新分组",
"管理员开锁密码":"管理员开锁密码",
"更新":"更新",
"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新":"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
"当屏幕闪烁时,点击下一步":"当屏幕闪烁时,点击下一步",
"输入*529#或按设置键":"输入*529#或按设置键",
"长按重置键2秒":"长按重置键2秒",
"附近的设备":"附近的设备",
"暂无数据":"暂无数据",
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁":"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
"开始":"开始",
"全天":"全天",
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。":"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
"请选择锁音量":"请选择锁音量",
"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。":"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。",
"低":"低",
"较低":"较低",
"中":"中",
"较高":"较高",
"高":"高",
"开启后,锁被撬动时,会发出报警声":"开启后,锁被撬动时,会发出报警声",
"关闭后重置键无效锁要通过app删除后才能重新添加":"关闭后重置键无效锁要通过app删除后才能重新添加",
"校准时间":"校准时间",
"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因":"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
"上传":"上传",
"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待":"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待",
"请选择要从哪把锁导入":"请选择要从哪把锁导入",
"有新版本":"有新版本",
"当前版本":"当前版本",
"升级":"升级",
"空闲":"空闲",
"已入住":"已入住",
"英文":"英文",
"简体中文":"简体中文",
"多语言":"多语言",
"添加锁":"添加锁",
"锁地址":"锁地址",
"选择锁类型":"选择锁类型",
"NFC无源锁":"NFC无源锁",
"添加设备":"添加设备",
"网关":"网关",
"客服":"客服",
"设置":"设置",
"更多设置":"更多设置",
"消息推送":"消息推送",
"锁用户管理":"锁用户管理",
"拥有的钥匙":"拥有的钥匙",
"批量授权":"批量授权",
"关联设备":"关联设备",
"关联姓名":"关联姓名",
"转移智能锁":"转移智能锁",
"选择锁":"选择锁",
"接收人信息":"接收人信息",
"转移网关":"转移网关",
"锁屏":"锁屏",
"已关闭":"已关闭",
"已开启":"已开启",
"开启":"开启",
"锁编号": "锁编号",
"电量": "电量",
"锁分组": "锁分组",
"选择分组": "选择分组",
"创建新分组": "创建新分组",
"管理员开锁密码": "管理员开锁密码",
"更新": "更新",
"电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新": "电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新",
"当屏幕闪烁时,点击下一步": "当屏幕闪烁时,点击下一步",
"输入*529#或按设置键": "输入*529#或按设置键",
"长按重置键2秒": "长按重置键2秒",
"附近的设备": "附近的设备",
"暂无数据": "暂无数据",
"通过门磁可查询门的开、关状态。每把锁咳添加一个门磁": "通过门磁可查询门的开、关状态。每把锁咳添加一个门磁",
"开始": "开始",
"全天": "全天",
"你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。": "你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。",
"请选择锁音量": "请选择锁音量",
"功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。": "功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。",
"低": "低",
"较低": "较低",
"中": "中",
"较高": "较高",
"高": "高",
"开启后,锁被撬动时,会发出报警声": "开启后,锁被撬动时,会发出报警声",
"关闭后重置键无效锁要通过app删除后才能重新添加": "关闭后重置键无效锁要通过app删除后才能重新添加",
"校准时间": "校准时间",
"诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因": "诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因",
"上传": "上传",
"本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待": "本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待",
"请选择要从哪把锁导入": "请选择要从哪把锁导入",
"有新版本": "有新版本",
"当前版本": "当前版本",
"升级": "升级",
"空闲": "空闲",
"已入住": "已入住",
"英文": "英文",
"简体中文": "简体中文",
"多语言": "多语言",
"添加锁": "添加锁",
"锁地址": "锁地址",
"选择锁类型": "选择锁类型",
"NFC无源锁": "NFC无源锁",
"添加设备": "添加设备",
"网关": "网关",
"客服": "客服",
"设置": "设置",
"更多设置": "更多设置",
"消息推送": "消息推送",
"锁用户管理": "锁用户管理",
"拥有的钥匙": "拥有的钥匙",
"批量授权": "批量授权",
"关联设备": "关联设备",
"关联姓名": "关联姓名",
"转移智能锁": "转移智能锁",
"选择锁": "选择锁",
"接收人信息": "接收人信息",
"转移网关": "转移网关",
"锁屏": "锁屏",
"已关闭": "已关闭",
"已开启": "已开启",
"开启": "开启",
"确定要开启重置键?": "确定要开启重置键?",
"确定要关闭重置键?": "确定要关闭重置键?",
"隐藏无效开锁权限":"隐藏无效开锁权限",
"APP开锁时需手机连网的锁":"APP开锁时需手机连网的锁",
"增值服务":"增值服务",
"关于":"关于",
"退出":"退出",
"删除账号":"删除账号",
"个人信息":"个人信息",
"头像":"头像",
"昵称":"昵称",
"隐藏无效开锁权限": "隐藏无效开锁权限",
"APP开锁时需手机连网的锁": "APP开锁时需手机连网的锁",
"增值服务": "增值服务",
"关于": "关于",
"退出": "退出",
"删除账号": "删除账号",
"个人信息": "个人信息",
"头像": "头像",
"昵称": "昵称",
"请输入昵称": "请输入昵称",
"修改昵称":"修改昵称",
"修改账号":"修改账号",
"重置密码":"重置密码",
"安全问题":"安全问题",
"为了你的账号安全,修改账号前请先使用验证码验证":"为了你的账号安全,修改账号前请先使用验证码验证",
"请输入新账号":"请输入新账号",
"找回密码和登录新设备时,可通过绑定的手机验证":"找回密码和登录新设备时,可通过绑定的手机验证",
"找回密码和登录新设备时,可通过绑定的邮箱验证":"找回密码和登录新设备时,可通过绑定的邮箱验证",
"原密码":"原密码",
"新密码":"新密码",
"确认密码":"确认密码",
"当你手机丢了,可以通过回答设置的安全问题来登录新设备":"当你手机丢了,可以通过回答设置的安全问题来登录新设备",
"问题一":"问题一",
"问题二":"问题二",
"问题三":"问题三",
"请输入你的答案":"请输入你的答案",
"即将到期":"即将到期",
"去授权":"去授权",
"修改名称":"修改名称",
"修改昵称": "修改昵称",
"修改账号": "修改账号",
"重置密码": "重置密码",
"安全问题": "安全问题",
"为了你的账号安全,修改账号前请先使用验证码验证": "为了你的账号安全,修改账号前请先使用验证码验证",
"请输入新账号": "请输入新账号",
"找回密码和登录新设备时,可通过绑定的手机验证": "找回密码和登录新设备时,可通过绑定的手机验证",
"找回密码和登录新设备时,可通过绑定的邮箱验证": "找回密码和登录新设备时,可通过绑定的邮箱验证",
"原密码": "原密码",
"新密码": "新密码",
"确认密码": "确认密码",
"当你手机丢了,可以通过回答设置的安全问题来登录新设备": "当你手机丢了,可以通过回答设置的安全问题来登录新设备",
"问题一": "问题一",
"问题二": "问题二",
"问题三": "问题三",
"请输入你的答案": "请输入你的答案",
"即将到期": "即将到期",
"去授权": "去授权",
"修改名称": "修改名称",
"状态": "状态",
"WiFi名称": "WiFi名称",
"网络MAC": "网络MAC",
@ -237,101 +237,101 @@
"请输入IP地址": "请输入IP地址",
"请输入子网掩码": "请输入子网掩码",
"请输入默认网关": "请输入默认网关",
"所有锁":"所有锁",
"搜索所有类型的锁":"搜索所有类型的锁",
"门锁":"门锁",
"挂锁":"挂锁",
"保险箱锁":"保险箱锁",
"智能门禁":"智能门禁",
"车位锁":"车位锁",
"摸亮触摸屏":"摸亮触摸屏",
"摸亮触摸屏,锁进入可添加状态,点击下一步":"摸亮触摸屏,锁进入可添加状态,点击下一步",
"附近的锁":"附近的锁",
"如需修改名字请重新命名,点击确定添加锁":"如需修改名字请重新命名,点击确定添加锁",
"添加锁时,手机必须在锁旁边":"添加锁时,手机必须在锁旁边",
"登录":"登录",
"注册":"注册",
"我已阅读并同意":"我已阅读并同意",
"验证码":"验证码",
"密码必须是8-20位至少包括数字/字母/符号中的2种":"密码必须是8-20位至少包括数字/字母/符号中的2种",
"手机":"手机",
"邮箱":"邮箱",
"所有锁": "所有锁",
"搜索所有类型的锁": "搜索所有类型的锁",
"门锁": "门锁",
"挂锁": "挂锁",
"保险箱锁": "保险箱锁",
"智能门禁": "智能门禁",
"车位锁": "车位锁",
"摸亮触摸屏": "摸亮触摸屏",
"摸亮触摸屏,锁进入可添加状态,点击下一步": "摸亮触摸屏,锁进入可添加状态,点击下一步",
"附近的锁": "附近的锁",
"如需修改名字请重新命名,点击确定添加锁": "如需修改名字请重新命名,点击确定添加锁",
"添加锁时,手机必须在锁旁边": "添加锁时,手机必须在锁旁边",
"登录": "登录",
"注册": "注册",
"我已阅读并同意": "我已阅读并同意",
"验证码": "验证码",
"密码必须是8-20位至少包括数字/字母/符号中的2种": "密码必须是8-20位至少包括数字/字母/符号中的2种",
"手机": "手机",
"邮箱": "邮箱",
"请输入邮箱": "请输入邮箱",
"国家/地区":"国家/地区",
"国家/地区": "国家/地区",
"你所在的国家/地区": "你所在的国家/地区",
"选择国家/地区": "你所在的国家/地区",
"获取验证码":"获取验证码",
"商务合作":"商务合作",
"电脑网页版":"电脑网页版",
"酒店系统":"酒店系统",
"说明书网页版":"说明书网页版",
"高级功能":"高级功能",
"记录保存":"记录保存",
"您可通过短信将密码、电子钥匙信息发给接收人。":"您可通过短信将密码、电子钥匙信息发给接收人。",
"您可通过邮件将密码、电子钥匙信息发给接收人。":"您可通过邮件将密码、电子钥匙信息发给接收人。",
"购买实名认证提示":"购买实名认证提示",
"请选择你希望的实名认证频次":"请选择你希望的实名认证频次",
"仅首次":"仅首次",
"每日一次":"每日一次",
"每周一次":"每周一次",
"每月一次":"每月一次",
"当前状态":"当前状态",
"试用中":"试用中",
"高级功能权益内容":"高级功能权益内容",
"短信模板":"短信模板",
"邮件模板":"邮件模板",
"发卡工具":"发卡工具",
"购买高级功能须知":"购买高级功能须知",
"购买高级功能提示":"购买高级功能提示",
"免费体验":"免费体验",
"立即开通":"立即开通",
"购买短信":"购买短信",
"购买邮件":"购买邮件",
"购买实名认证次数":"购买实名认证次数",
"开通高级功能":"开通高级功能",
"选择套餐":"选择套餐",
"支付方式":"支付方式",
"支付宝":"支付宝",
"去支付":"去支付",
"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人":"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人",
"高级功能仅能用于你自己的锁":"高级功能仅能用于你自己的锁",
"新建模板":"新建模板",
"类型":"类型",
"模版内容":"模版内容",
"预览":"预览",
"房间名":"房间名",
"预计产生短信条数":"预计产生短信条数",
"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。":"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。",
"对于选中的这些锁当用户用APP开锁时他的手机需要是连网的否则无法开锁":"对于选中的这些锁当用户用APP开锁时他的手机需要是连网的否则无法开锁",
"配置WiFi":"配置WiFi",
"请输入WiFi名字":"请输入WiFi名字",
"WiFi配网":"WiFi配网",
"胁迫卡":"胁迫卡",
"员工是否有密码":"员工是否有密码",
"员工是否有卡":"员工是否有卡",
"员工是否有指纹":"员工是否有指纹",
"获取钥匙":"获取钥匙",
"获取卡":"获取卡",
"获取指纹":"获取指纹",
"安全验证":"安全验证",
"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?":"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?",
"监控":"监控",
"视频日志":"视频日志",
"网关设备":"网关设备",
"开门器":"开门器",
"面容开锁":"面容开锁",
"开门方向设置":"开门方向设置",
"电机功率设置":"电机功率设置",
"开锁时是否需联网":"开锁时是否需联网",
"选择要加入分组的锁":"选择要加入分组的锁",
"锁数量":"锁数量",
"小米IOT平台":"小米IOT平台",
"获取验证码": "获取验证码",
"商务合作": "商务合作",
"电脑网页版": "电脑网页版",
"酒店系统": "酒店系统",
"说明书网页版": "说明书网页版",
"高级功能": "高级功能",
"记录保存": "记录保存",
"您可通过短信将密码、电子钥匙信息发给接收人。": "您可通过短信将密码、电子钥匙信息发给接收人。",
"您可通过邮件将密码、电子钥匙信息发给接收人。": "您可通过邮件将密码、电子钥匙信息发给接收人。",
"购买实名认证提示": "购买实名认证提示",
"请选择你希望的实名认证频次": "请选择你希望的实名认证频次",
"仅首次": "仅首次",
"每日一次": "每日一次",
"每周一次": "每周一次",
"每月一次": "每月一次",
"当前状态": "当前状态",
"试用中": "试用中",
"高级功能权益内容": "高级功能权益内容",
"短信模板": "短信模板",
"邮件模板": "邮件模板",
"发卡工具": "发卡工具",
"购买高级功能须知": "购买高级功能须知",
"购买高级功能提示": "购买高级功能提示",
"免费体验": "免费体验",
"立即开通": "立即开通",
"购买短信": "购买短信",
"购买邮件": "购买邮件",
"购买实名认证次数": "购买实名认证次数",
"开通高级功能": "开通高级功能",
"选择套餐": "选择套餐",
"支付方式": "支付方式",
"支付宝": "支付宝",
"去支付": "去支付",
"你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人": "你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人",
"高级功能仅能用于你自己的锁": "高级功能仅能用于你自己的锁",
"新建模板": "新建模板",
"类型": "类型",
"模版内容": "模版内容",
"预览": "预览",
"房间名": "房间名",
"预计产生短信条数": "预计产生短信条数",
"功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。": "功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。",
"对于选中的这些锁当用户用APP开锁时他的手机需要是连网的否则无法开锁": "对于选中的这些锁当用户用APP开锁时他的手机需要是连网的否则无法开锁",
"配置WiFi": "配置WiFi",
"请输入WiFi名字": "请输入WiFi名字",
"WiFi配网": "WiFi配网",
"胁迫卡": "胁迫卡",
"员工是否有密码": "员工是否有密码",
"员工是否有卡": "员工是否有卡",
"员工是否有指纹": "员工是否有指纹",
"获取钥匙": "获取钥匙",
"获取卡": "获取卡",
"获取指纹": "获取指纹",
"安全验证": "安全验证",
"删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?": "删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?",
"监控": "监控",
"视频日志": "视频日志",
"网关设备": "网关设备",
"开门器": "开门器",
"面容开锁": "面容开锁",
"开门方向设置": "开门方向设置",
"电机功率设置": "电机功率设置",
"开锁时是否需联网": "开锁时是否需联网",
"选择要加入分组的锁": "选择要加入分组的锁",
"锁数量": "锁数量",
"小米IOT平台": "小米IOT平台",
"面容开锁设置": "面容开锁设置",
"感应距离": "感应距离",
"防误开": "防误开",
"防误开已关闭,关门后仍可使用面容开锁": "防误开已关闭,关门后仍可使用面容开锁",
"添加和使用面容开锁时": "添加和使用面容开锁时",
"添加和使用面容开锁时提示":"添加和使用面容开锁时提示",
"添加和使用面容开锁时提示": "添加和使用面容开锁时提示",
"秒": "秒",
"请根据门锁实际情况,请谨慎选择电机功率:": "请根据门锁实际情况,请谨慎选择电机功率:",
"小功率:": "小功率:",
@ -344,43 +344,43 @@
"判断方法:": "判断方法:",
"判断方法内容": "判断方法内容",
"录像时段": "录像时段",
"密码":"密码",
"卡":"卡",
"指纹":"指纹",
"人脸":"人脸",
"配件商城":"配件商城",
"公司名称":"公司名称",
"请输入公司名字":"请输入公司名字",
"提示":"提示",
"是否删除?":"是否删除?",
"员工信息":"员工信息",
"员工":"员工",
"打卡方式无效":"打卡方式无效",
"中国":"中国",
"选择钥匙":"选择钥匙",
"编辑":"编辑",
"无":"无",
"有":"有",
"请输入姓名":"请输入姓名",
"获取人脸":"获取人脸",
"选择密码":"选择密码",
"选择卡":"选择卡",
"选择指纹":"选择指纹",
"选择人脸":"选择人脸",
"员工是否有人脸":"员工是否有人脸",
"同时删除员工钥匙":"同时删除员工钥匙",
"删除":"删除",
"确定要删除员工吗?":"确定要删除员工吗?",
"月统计":"月统计",
"迟到":"迟到",
"早退":"早退",
"未打卡":"未打卡",
"钥匙将在":"钥匙将在",
"天后失效":"天后失效",
"电量更新时间:":"电量更新时间:",
"新增配件":"新增配件",
"钥匙不可用":"钥匙不可用",
"正在开锁中...":"正在开锁中...",
"密码": "密码",
"卡": "卡",
"指纹": "指纹",
"人脸": "人脸",
"配件商城": "配件商城",
"公司名称": "公司名称",
"请输入公司名字": "请输入公司名字",
"提示": "提示",
"是否删除?": "是否删除?",
"员工信息": "员工信息",
"员工": "员工",
"打卡方式无效": "打卡方式无效",
"中国": "中国",
"选择钥匙": "选择钥匙",
"编辑": "编辑",
"无": "无",
"有": "有",
"请输入姓名": "请输入姓名",
"获取人脸": "获取人脸",
"选择密码": "选择密码",
"选择卡": "选择卡",
"选择指纹": "选择指纹",
"选择人脸": "选择人脸",
"员工是否有人脸": "员工是否有人脸",
"同时删除员工钥匙": "同时删除员工钥匙",
"删除": "删除",
"确定要删除员工吗?": "确定要删除员工吗?",
"月统计": "月统计",
"迟到": "迟到",
"早退": "早退",
"未打卡": "未打卡",
"钥匙将在": "钥匙将在",
"天后失效": "天后失效",
"电量更新时间:": "电量更新时间:",
"新增配件": "新增配件",
"钥匙不可用": "钥匙不可用",
"正在开锁中...": "正在开锁中...",
"你的钥匙": "你的钥匙",
"常开模式启动!长按闭锁": "常开模式启动!长按闭锁",
"演示模式": "演示模式",
@ -563,10 +563,10 @@
"厂商": "厂商",
"型号": "型号",
"密码生成后请在当日2359前使用一次进行激活否则过0点后未激活则失效。密码激活后有效期内不限次数使用。": "密码生成后请在当日2359前使用一次进行激活否则过0点后未激活则失效。密码激活后有效期内不限次数使用。",
"密码生成后请在当日2359前使用否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。":"密码生成后请在当日2359前使用否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。",
"密码生成后请在当日2359前使用否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。": "密码生成后请在当日2359前使用否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。",
"密码生成后请在当日2359前使用否则过0点后失效。": "密码生成后请在当日2359前使用否则过0点后失效。",
"清空密码底部提示": "清空密码底部提示",
"密码不一致哦":"密码不一致哦",
"密码不一致哦": "密码不一致哦",
"相机": "相机",
"相册": "相册",
"读写": "读写",
@ -583,137 +583,137 @@
"请手动在系统设置中开启": "请手动在系统设置中开启",
"权限以继续使用应用": "权限以继续使用应用。",
"去设置": "去设置",
"虹膜":"虹膜",
"手掌":"手掌",
"商城":"mall",
"我的":"my",
"微信公众号推送":"微信公众号推送",
"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置":"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置",
"蓝牙":"蓝牙",
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息":"需要访问蓝牙权限才能使用添加钥匙功能的位置信息",
"请输入Email":"请输入Email",
"请输入手机号":"请输入手机号",
"家人到家":"家人到家",
"添加家人":"添加家人",
"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。":"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。",
"消息提醒":"消息提醒",
"开门通知":"开门通知",
"N天未开门":"N天未开门",
"门未关好":"门未关好",
"防拆报警":"防拆报警",
"低电量提醒":"低电量提醒",
"胁迫开门":"胁迫开门",
"有人按门铃":"有人按门铃",
"有人出现在门口":"有人出现在门口",
"提醒方式":"提醒方式",
"开门方式":"开门方式",
"请选择":"请选择",
"家人":"家人",
"保存":"保存",
"APP推送":"APP推送",
"管理员":"管理员",
"未启用":"未启用",
"已启用":"已启用",
"省电模式":"省电模式",
"逗留抓拍模式":"逗留抓拍模式",
"实时监控模式":"实时监控模式",
"自定义模式":"自定义模式",
"猫眼设置":"猫眼设置",
"猫眼工作模式":"猫眼工作模式",
"自动亮屏":"自动亮屏",
"亮屏持续时间":"亮屏持续时间",
"逗留警告":"逗留警告",
"异常警告":"异常警告",
"短信提醒":"短信提醒",
"邮件提醒":"邮件提醒",
"关锁":"Close Lock",
"功能":"Function",
"配件":"Parts",
"N天未开门提醒":"N天未开门提醒",
"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网":"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网",
"胁迫指纹":"胁迫指纹",
"指纹列表":"指纹列表",
"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网":"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网",
"打开提醒后当锁电量低于20%、10%和5%系统会给指定对象发送提醒消息。电量读取方式网关读取或APP读取。":"打开提醒后当锁电量低于20%、10%和5%系统会给指定对象发送提醒消息。电量读取方式网关读取或APP读取。",
"未开门时间":"未开门时间",
"添加和使用面容开锁时:":"添加和使用面容开锁时:",
"云存":"云存",
"本地":"本地",
"3天滚动储存":"3天滚动储存",
"去升级":"去升级",
"下载列表":"下载列表",
"已下载":"已下载",
"全部视频":"全部视频",
"已为本设备免费提供3大滚动视频储存服务":"已为本设备免费提供3大滚动视频储存服务",
"视频播放":"视频播放",
"全选":"全选",
"请选择要删除的视频":"请选择要删除的视频",
"请选择要下载的视频":"请选择要下载的视频",
"欢迎使用":"欢迎使用",
"虹膜": "虹膜",
"手掌": "手掌",
"商城": "mall",
"我的": "my",
"微信公众号推送": "微信公众号推送",
"开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置": "开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置",
"蓝牙": "蓝牙",
"需要访问蓝牙权限才能使用添加钥匙功能的位置信息": "需要访问蓝牙权限才能使用添加钥匙功能的位置信息",
"请输入Email": "请输入Email",
"请输入手机号": "请输入手机号",
"家人到家": "家人到家",
"添加家人": "添加家人",
"若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。": "若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。",
"消息提醒": "消息提醒",
"开门通知": "开门通知",
"N天未开门": "N天未开门",
"门未关好": "门未关好",
"防拆报警": "防拆报警",
"低电量提醒": "低电量提醒",
"胁迫开门": "胁迫开门",
"有人按门铃": "有人按门铃",
"有人出现在门口": "有人出现在门口",
"提醒方式": "提醒方式",
"开门方式": "开门方式",
"请选择": "请选择",
"家人": "家人",
"保存": "保存",
"APP推送": "APP推送",
"管理员": "管理员",
"未启用": "未启用",
"已启用": "已启用",
"省电模式": "省电模式",
"逗留抓拍模式": "逗留抓拍模式",
"实时监控模式": "实时监控模式",
"自定义模式": "自定义模式",
"猫眼设置": "猫眼设置",
"猫眼工作模式": "猫眼工作模式",
"自动亮屏": "自动亮屏",
"亮屏持续时间": "亮屏持续时间",
"逗留警告": "逗留警告",
"异常警告": "异常警告",
"短信提醒": "短信提醒",
"邮件提醒": "邮件提醒",
"关锁": "Close Lock",
"功能": "Function",
"配件": "Parts",
"N天未开门提醒": "N天未开门提醒",
"当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网": "当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网",
"胁迫指纹": "胁迫指纹",
"指纹列表": "指纹列表",
"经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网": "经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网",
"打开提醒后当锁电量低于20%、10%和5%系统会给指定对象发送提醒消息。电量读取方式网关读取或APP读取。": "打开提醒后当锁电量低于20%、10%和5%系统会给指定对象发送提醒消息。电量读取方式网关读取或APP读取。",
"未开门时间": "未开门时间",
"添加和使用面容开锁时:": "添加和使用面容开锁时:",
"云存": "云存",
"本地": "本地",
"3天滚动储存": "3天滚动储存",
"去升级": "去升级",
"下载列表": "下载列表",
"已下载": "已下载",
"全部视频": "全部视频",
"已为本设备免费提供3大滚动视频储存服务": "已为本设备免费提供3大滚动视频储存服务",
"视频播放": "视频播放",
"全选": "全选",
"请选择要删除的视频": "请选择要删除的视频",
"请选择要下载的视频": "请选择要下载的视频",
"欢迎使用": "欢迎使用",
"用户协议和隐私政策概要": "用户协议和隐私政策概要",
"协议概要": "协议概要",
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读":"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读",
"《用户协议》":"《用户协议》",
"和":"和",
"感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读": "感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读",
"《用户协议》": "《用户协议》",
"和": "和",
"《隐私政策》": "《隐私政策》",
"的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。": "的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。",
"不同意":"不同意",
"同意":"同意",
"该功能是高级功能,请开通后再使用":"该功能是高级功能,请开通后再使用",
"常用程序":"常用程序",
"该锁已被重置":"该锁已被重置",
"需要访问读写权限才能使用手动升级固件":"需要访问读写权限才能使用手动升级固件",
"错误D固件请选择正确的文件":"错误固件,请选择正确的文件",
"非SYD固件请选择正确的文件":"非SYD固件请选择正确的文件",
"文件校验失败 0x01":"文件校验失败 0x01",
"解析元数据失败,请选择正确的文件":"解析元数据失败,请选择正确的文件",
"文件校验失败 0x02":"文件校验失败 0x02",
"文件校验失败 0x03":"文件校验失败 0x03",
"固件升级完成":"固件升级完成",
"记录":"记录",
"开通高级功能后才可以对锁进行管理":"开通高级功能后才可以对锁进行管理",
"去开通":"去开通",
"实名认证":"实名认证",
"当前剩余数量":"当前剩余数量",
"购买":"购买",
"实名认证为付费功能,请购买后再使用":"实名认证为付费功能,请购买后再使用",
"退出添加":"退出添加",
"管理员已满":"管理员已满",
"不同意": "不同意",
"同意": "同意",
"该功能是高级功能,请开通后再使用": "该功能是高级功能,请开通后再使用",
"常用程序": "常用程序",
"该锁已被重置": "该锁已被重置",
"需要访问读写权限才能使用手动升级固件": "需要访问读写权限才能使用手动升级固件",
"错误D固件请选择正确的文件": "错误固件,请选择正确的文件",
"非SYD固件请选择正确的文件": "非SYD固件请选择正确的文件",
"文件校验失败 0x01": "文件校验失败 0x01",
"解析元数据失败,请选择正确的文件": "解析元数据失败,请选择正确的文件",
"文件校验失败 0x02": "文件校验失败 0x02",
"文件校验失败 0x03": "文件校验失败 0x03",
"固件升级完成": "固件升级完成",
"记录": "记录",
"开通高级功能后才可以对锁进行管理": "开通高级功能后才可以对锁进行管理",
"去开通": "去开通",
"实名认证": "实名认证",
"当前剩余数量": "当前剩余数量",
"购买": "购买",
"实名认证为付费功能,请购买后再使用": "实名认证为付费功能,请购买后再使用",
"退出添加": "退出添加",
"管理员已满": "管理员已满",
"用户已满": "用户已满",
"锁上面添加指纹已满": "锁上面添加指纹已满",
"指纹已存在": "指纹已存在",
"锁上面添加人脸已满": "锁上面添加人脸已满",
"人脸已存在": "人脸已存在",
"锁上面添加卡已满":"锁上面添加卡已满",
"锁上面添加卡已满": "锁上面添加卡已满",
"卡已存在": "卡已存在",
"锁上面添加密码已满": "锁上面添加密码已满",
"密码已存在": "密码已存在",
"请输入密码": "请输入密码",
"暂无密码,无需重置": "暂无密码,无需重置",
"真实姓名":"真实姓名",
"身份证号":"身份证号",
"请输入真实姓名":"请输入真实姓名",
"请输入身份证号":"请输入身份证号",
"请输入身份证号和真实姓名":"请输入身份证号和真实姓名",
"点击返回设备配对":"点击返回设备配对",
"无法连接?尝试升级":"无法连接?尝试升级",
"固件升级提示":"固件升级提示",
"请先获取固件文件到手机本地,再选择升级":"请先获取固件文件到手机本地,再选择升级",
"固件升级中":"固件升级中",
"取消升级":"取消升级",
"固件传输中":"固件传输中",
"关闭":"关闭",
"传输中'":"传输中",
"操作记录":"操作记录",
"修改姓名":"修改姓名",
"传输中":"传输中",
"发送人":"发送人",
"发送时间":"发送时间",
"钥匙详情":"钥匙详情",
"姓名":"姓名",
"发送":"发送",
"请确认姓名全名和身份证号码是否正确":"请确认姓名全名和身份证号码是否正确",
"传输期间请勿离开当前页面":"传输期间请勿离开当前页面",
"真实姓名": "真实姓名",
"身份证号": "身份证号",
"请输入真实姓名": "请输入真实姓名",
"请输入身份证号": "请输入身份证号",
"请输入身份证号和真实姓名": "请输入身份证号和真实姓名",
"点击返回设备配对": "点击返回设备配对",
"无法连接?尝试升级": "无法连接?尝试升级",
"固件升级提示": "固件升级提示",
"请先获取固件文件到手机本地,再选择升级": "请先获取固件文件到手机本地,再选择升级",
"固件升级中": "固件升级中",
"取消升级": "取消升级",
"固件传输中": "固件传输中",
"关闭": "关闭",
"传输中'": "传输中",
"操作记录": "操作记录",
"修改姓名": "修改姓名",
"传输中": "传输中",
"发送人": "发送人",
"发送时间": "发送时间",
"钥匙详情": "钥匙详情",
"姓名": "姓名",
"发送": "发送",
"请确认姓名全名和身份证号码是否正确": "请确认姓名全名和身份证号码是否正确",
"传输期间请勿离开当前页面": "传输期间请勿离开当前页面",
"机型": "机型",
"硬件版本": "硬件版本",
"固件版本": "固件版本",
@ -724,30 +724,30 @@
"操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。": "操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。",
"如果是全自动锁,请使屏幕变亮": "如果是全自动锁,请使屏幕变亮",
"正在尝试闭锁……": "正在尝试闭锁……",
"清空记录":"清空记录",
"是否要删除操作记录?":"是否要删除操作记录?",
"被删除的记录不能恢复":"被删除的记录不能恢复",
"全部事件":"全部事件",
"开锁事件":"开锁事件",
"异常事件":"异常事件",
"门铃事件":"门铃事件",
"视频事件":"视频事件",
"请开启蓝牙":"请开启蓝牙",
"请选择有效日":"请选择有效日",
"清空记录": "清空记录",
"是否要删除操作记录?": "是否要删除操作记录?",
"被删除的记录不能恢复": "被删除的记录不能恢复",
"全部事件": "全部事件",
"开锁事件": "开锁事件",
"异常事件": "异常事件",
"门铃事件": "门铃事件",
"视频事件": "视频事件",
"请开启蓝牙": "请开启蓝牙",
"请选择有效日": "请选择有效日",
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
"已是最新版本": "已是最新版本",
"一":"一",
"二":"二",
"三":"三",
"四":"四",
"五":"五",
"六":"六",
"日":"日",
"新建短信模版":"新建短信模版",
"新建邮件模版":"新建邮件模版",
"自定义短信模版":"自定义短信模版",
"自定义邮件模版":"自定义邮件模版",
"名称":"名称",
"一": "一",
"二": "二",
"三": "三",
"四": "四",
"五": "五",
"六": "六",
"日": "日",
"新建短信模版": "新建短信模版",
"新建邮件模版": "新建邮件模版",
"自定义短信模版": "自定义短信模版",
"自定义邮件模版": "自定义邮件模版",
"名称": "名称",
"星星锁": "星星锁",
"无考勤记录": "无考勤记录",
"大家干劲十足": "大家干劲十足",
@ -756,7 +756,7 @@
"确认国家或地区": "确认国家或地区",
"我知道了": "我知道了",
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。",
"开启后可通过长按锁上的设置键重新上电用APP重新添加":"开启后可通过长按锁上的设置键重新上电用APP重新添加",
"开启后可通过长按锁上的设置键重新上电用APP重新添加": "开启后可通过长按锁上的设置键重新上电用APP重新添加",
"已有": "已有",
"新增": "新增",
"账号格式错误": "账号格式错误",
@ -784,21 +784,21 @@
"该已锁被删除": "该已锁被删除",
"授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限",
"添加授权管理员": "添加授权管理员",
"导出记录":"导出记录",
"选择时间段":"选择时间段",
"导出":"导出",
"批量导出":"批量导出",
"读取记录":"读取记录",
"手机需联网":"手机需联网",
"设备":"设备",
"消息":"消息",
"智能分析":"智能分析",
"精准识别设备事件,过滤无效信息":"精准识别设备事件,过滤无效信息",
"系统设置":"系统设置",
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
"导出操作记录":"导出操作记录",
"立即查看":"立即查看",
"导出成功":"导出成功",
"导出记录": "导出记录",
"选择时间段": "选择时间段",
"导出": "导出",
"批量导出": "批量导出",
"读取记录": "读取记录",
"手机需联网": "手机需联网",
"设备": "设备",
"消息": "消息",
"智能分析": "智能分析",
"精准识别设备事件,过滤无效信息": "精准识别设备事件,过滤无效信息",
"系统设置": "系统设置",
"系统的全局配置在此项内进行设置": "系统的全局配置在此项内进行设置",
"导出操作记录": "导出操作记录",
"立即查看": "立即查看",
"导出成功": "导出成功",
"发送钥匙": "发送钥匙",
"进度": "进度",
"失败": "失败",
@ -931,7 +931,7 @@
"或发生异常事件时": "或发生异常事件时",
"逗留达到10秒": "逗留达到10秒",
"约1.5米": "约1.5米",
"随时":"随时",
"随时": "随时",
"立即录像": "立即录像",
"录像时机": "录像时机",
"有人出现时录像": "有人出现时录像",
@ -1087,7 +1087,8 @@
"离线": "离线",
"购买记录": "购买记录",
"使用记录": "使用记录",
"失效时间要大于当前时间": "失效时间要大于当前时间",
"修改名字": "修改名字"
"修改名字": "修改名字",
"时": "时",
"分": "分"
}

View File

@ -734,13 +734,13 @@
"请选择有效日": "请选择有效日",
"公司名字长度不能小于 6 ": "公司名字长度不能小于 6 ",
"已是最新版本": "已是最新版本",
"一":"一",
"二":"二",
"三":"三",
"四":"四",
"五":"五",
"六":"六",
"日":"日",
"一": "一",
"二": "二",
"三": "三",
"四": "四",
"五": "五",
"六": "六",
"日": "日",
"新建短信模版": "新建短信模版",
"新建邮件模版": "新建邮件模版",
"自定义短信模版": "自定义短信模版",
@ -782,21 +782,21 @@
"该已锁被删除": "该已锁被删除",
"授权管理员只能查看和管理自己下发的钥匙、密码等权限": "授权管理员只能查看和管理自己下发的钥匙、密码等权限",
"添加授权管理员": "添加授权管理员",
"导出记录":"导出记录",
"选择时间段":"选择时间段",
"导出":"导出",
"批量导出":"批量导出",
"读取记录":"读取记录",
"手机需联网":"手机需联网",
"设备":"设备",
"消息":"消息",
"智能分析":"智能分析",
"精准识别设备事件,过滤无效信息":"精准识别设备事件,过滤无效信息",
"系统设置":"系统设置",
"系统的全局配置在此项内进行设置":"系统的全局配置在此项内进行设置",
"导出操作记录":"导出操作记录",
"立即查看":"立即查看",
"导出成功":"导出成功",
"导出记录": "导出记录",
"选择时间段": "选择时间段",
"导出": "导出",
"批量导出": "批量导出",
"读取记录": "读取记录",
"手机需联网": "手机需联网",
"设备": "设备",
"消息": "消息",
"智能分析": "智能分析",
"精准识别设备事件,过滤无效信息": "精准识别设备事件,过滤无效信息",
"系统设置": "系统设置",
"系统的全局配置在此项内进行设置": "系统的全局配置在此项内进行设置",
"导出操作记录": "导出操作记录",
"立即查看": "立即查看",
"导出成功": "导出成功",
"发送钥匙": "发送钥匙",
"进度": "进度",
"失败": "失败",
@ -929,7 +929,7 @@
"或发生异常事件时": "或发生异常事件时",
"逗留达到10秒": "逗留达到10秒",
"约1.5米": "约1.5米",
"随时":"随时",
"随时": "随时",
"立即录像": "立即录像",
"录像时机": "录像时机",
"有人出现时录像": "有人出现时录像",
@ -1087,7 +1087,8 @@
"离线": "离线",
"购买记录": "购买记录",
"使用记录": "使用记录",
"失效时间要大于当前时间": "失效时间要大于当前时间",
"修改名字": "修改名字"
"修改名字": "修改名字",
"时": "时",
"分": "分"
}

View File

@ -1,10 +1,12 @@
import 'package:date_format/date_format.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:star_lock/main/lockDetail/checkingIn/checkingInHolidays/checkingInAddHolidays/checkingInAddHolidays_state.dart';
import 'package:star_lock/tools/pickers/pickers.dart';
import 'package:star_lock/tools/pickers/time_picker/model/date_mode.dart';
import 'package:star_lock/tools/pickers/time_picker/model/pduration.dart';
import '../../../../../app_settings/app_colors.dart';
import '../../../../../tools/commonItem.dart';
@ -43,9 +45,7 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
isHaveLine: true,
isHaveRightWidget: true,
setHeight: false,
rightWidget: getTFWidget(
'(${"必填".tr})',
maxSize: 50)),
rightWidget: getTFWidget('(${"必填".tr})', maxSize: 50)),
Obx(() => CommonItem(
leftTitel: '开始日期'.tr,
rightTitle: state.beginDate.value.isEmpty
@ -54,19 +54,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
isHaveLine: true,
isHaveDirection: false,
action: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return ShowCalendar(
datePickerMode: DatePickerMode.day,
selectAction: (DateTime dateTime) {
final String beginDate = formatDate(
dateTime, <String>[yyyy, '-', mm, '-', dd]);
state.beginDate.value = beginDate;
Get.back();
// Navigator.of(context).pop(true);
});
});
Pickers.showDatePicker(context,
selectDate: PDuration.now(),
mode: DateMode.YMD, onConfirm: (PDuration p) {
state.beginDate.value = formatDate(p);
});
})),
Obx(() => CommonItem(
leftTitel: '结束日期'.tr,
@ -76,18 +68,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
isHaveLine: true,
isHaveDirection: false,
action: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return ShowCalendar(
datePickerMode: DatePickerMode.day,
selectAction: (DateTime dateTime) {
final String endDate = formatDate(
dateTime, <String>[yyyy, '-', mm, '-', dd]);
state.endDate.value = endDate;
Get.back();
});
});
Pickers.showDatePicker(context,
selectDate: PDuration.now(),
mode: DateMode.YMD, onConfirm: (PDuration p) {
state.endDate.value = formatDate(p);
});
})),
Obx(() => CommonItem(
leftTitel: '补班日期'.tr,
@ -95,18 +80,11 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
isHaveLine: false,
isHaveDirection: false,
action: () async {
await showDialog(
context: context,
builder: (BuildContext context) {
return ShowCalendar(
datePickerMode: DatePickerMode.day,
selectAction: (DateTime dateTime) {
final String makeUpWorkDate = formatDate(
dateTime, <String>[yyyy, '-', mm, '-', dd]);
state.makeUpWorkDate.value = makeUpWorkDate;
Get.back();
});
});
Pickers.showDatePicker(context,
selectDate: PDuration.now(),
mode: DateMode.YMD, onConfirm: (PDuration p) {
state.makeUpWorkDate.value = formatDate(p);
});
})),
SizedBox(
height: 50.w,
@ -168,4 +146,21 @@ class _CheckingInAddHolidaysPageState extends State<CheckingInAddHolidaysPage> {
),
);
}
String formatDate(PDuration p) {
if (p == null) {
throw ArgumentError('Input must be a valid DateTime object');
}
String formatPart(int part) {
return part.toString().padLeft(2, '0');
}
String monthFormatted = formatPart(p.month!);
String dayFormatted = formatPart(p.day!);
String hourFormatted = formatPart(p.hour!);
String minuteFormatted = formatPart(p.minute!);
return '${p.year}-${monthFormatted}-${dayFormatted}';
}
}

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@ -219,8 +218,6 @@ class _CheckingInSetHolidaysPageState extends State<CheckingInSetHolidaysPage> {
context,
//
mode: DateMode.Y,
// Suffix.normal()Suffix()
suffix: Suffix(years: ''.tr),
//
pickerStyle: PickerStyle(
cancelButton: GestureDetector(

View File

@ -1,6 +1,7 @@
import 'package:cached_network_image/cached_network_image.dart';
import 'package:date_format/date_format.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@ -101,106 +102,108 @@ class _CheckingInListPageState extends State<CheckingInListPage> {
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
// SizedBox(width: 30.w,),
Row(
children: <Widget>[
SizedBox(
width: 20.w,
),
GestureDetector(
onTap: () async {
final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
setState(() {
state.isDay.value = true;
final DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(
state.checkListDateTimestamp.value);
final String beginDate =
formatDate(dateTime, <String>[mm, '-', dd]);
state.checkListDate.value = beginDate;
logic.loadDataByType();
});
} else {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast('演示模式'.tr);
}
},
child: Container(
width: 90.w,
// height: 100.h,
color: Colors.white,
child: Obx(() => Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('日榜'.tr,
style: TextStyle(
color: state.isDay.value
? AppColors.mainColor
: Colors.black,
fontSize: 22.sp)),
SizedBox(height: 10.h),
Visibility(
visible: state.isDay.value,
child: Container(
width: 20.w,
height: 2.h,
color: state.isDay.value
? AppColors.mainColor
: Colors.black),
)
],
)),
Expanded(
child: Row(
children: <Widget>[
SizedBox(
width: 20.w,
),
),
// SizedBox(width: 20.w,),
GestureDetector(
onTap: () async {
final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
setState(() {
state.isDay.value = false;
final DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(
state.checkListDateTimestamp.value);
final String beginDate =
formatDate(dateTime, <String>[mm]);
state.checkListDate.value = beginDate;
logic.loadDataByType();
});
} else {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast('演示模式'.tr);
}
},
child: Container(
width: 90.w,
// height: 100.h,
color: Colors.white,
child: Obx(() => Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('月榜'.tr,
style: TextStyle(
color: !state.isDay.value
? AppColors.mainColor
: Colors.black,
fontSize: 22.sp)),
SizedBox(height: 10.h),
Visibility(
visible: !state.isDay.value,
GestureDetector(
onTap: () async {
final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
setState(() {
state.isDay.value = true;
final DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(
state.checkListDateTimestamp.value);
final String beginDate =
formatDate(dateTime, <String>[mm, '-', dd]);
state.checkListDate.value = beginDate;
logic.loadDataByType();
});
} else {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast('演示模式'.tr);
}
},
child: Container(
// height: 100.h,
color: Colors.white,
child: Obx(() => Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('日榜'.tr,
style: TextStyle(
color: state.isDay.value
? AppColors.mainColor
: Colors.black,
fontSize: 22.sp)),
SizedBox(height: 10.h),
Visibility(
visible: state.isDay.value,
child: Container(
width: 20.w,
height: 2.h,
color: !state.isDay.value
color: state.isDay.value
? AppColors.mainColor
: Colors.black))
],
)),
: Colors.black),
)
],
)),
),
),
),
],
SizedBox(width: 20.w,),
GestureDetector(
onTap: () async {
final bool? isDemoMode =
await Storage.getBool(ifIsDemoModeOrNot);
if (isDemoMode == false) {
setState(() {
state.isDay.value = false;
final DateTime dateTime =
DateTime.fromMillisecondsSinceEpoch(
state.checkListDateTimestamp.value);
final String beginDate =
formatDate(dateTime, <String>[mm]);
state.checkListDate.value = beginDate;
logic.loadDataByType();
});
} else {
// Get.toNamed(Routers.selectLockTypePage);
logic.showToast('演示模式'.tr);
}
},
child: Container(
// height: 100.h,
color: Colors.white,
child: Obx(() => Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Text('月榜'.tr,
style: TextStyle(
color: !state.isDay.value
? AppColors.mainColor
: Colors.black,
fontSize: 22.sp)),
SizedBox(height: 10.h),
Visibility(
visible: !state.isDay.value,
child: Container(
width: 20.w,
height: 2.h,
color: !state.isDay.value
? AppColors.mainColor
: Colors.black))
],
)),
),
),
],
),
),
GestureDetector(
onTap: () async {

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
@ -19,8 +18,10 @@ class CheckingInSetWorkdaySet extends StatefulWidget {
}
class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
final CheckingInSetWorkdaySetLogic logic = Get.put(CheckingInSetWorkdaySetLogic());
final CheckingInSetWorkdaySetState state = Get.find<CheckingInSetWorkdaySetLogic>().state;
final CheckingInSetWorkdaySetLogic logic =
Get.put(CheckingInSetWorkdaySetLogic());
final CheckingInSetWorkdaySetState state =
Get.find<CheckingInSetWorkdaySetLogic>().state;
@override
Widget build(BuildContext context) {
@ -33,22 +34,28 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
body: ListView(
children: <Widget>[
topBtnWidget(),
Obx(() => Visibility(visible: state.isCustom.value, child: bottomCustomSelectBtn())),
Obx(() => Visibility(visible: !state.isCustom.value, child: bottomOddOrEvenDaysOffSelectBtn())),
SizedBox(height: 50.h,),
Obx(() => Visibility(
visible: state.isCustom.value, child: bottomCustomSelectBtn())),
Obx(() => Visibility(
visible: !state.isCustom.value,
child: bottomOddOrEvenDaysOffSelectBtn())),
SizedBox(
height: 50.h,
),
Container(
margin: EdgeInsets.only(left: 20.w, right: 20.w),
child: SubmitBtn(btnName: '确定'.tr, onClick: () {
if(state.pushType.value == '2'){
logic.editCheckInSetInfoData();
}else{
Get.back(result: <String, Object>{
'attendanceType':state.isCustom.value,
'weekDays':state.weekDays.value,
});
}
}),
child: SubmitBtn(
btnName: '确定'.tr,
onClick: () {
if (state.pushType.value == '2') {
logic.editCheckInSetInfoData();
} else {
Get.back(result: <String, Object>{
'attendanceType': state.isCustom.value,
'weekDays': state.weekDays.value,
});
}
}),
),
],
),
@ -58,58 +65,64 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
Widget topBtnWidget() {
return Container(
width: 1.sw,
height: 100.h,
constraints: BoxConstraints(minHeight: 100.h),
// color: Colors.red,
padding: EdgeInsets.all(10.w),
child: Obx(() => Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
GestureDetector(
onTap: (){
setState(() {
state.isCustom.value = true;
});
},
child: Container(
width: (1.sw - 5.w * 2) / 2,
height: 100.h,
color: state.isCustom.value ? AppColors.mainColor : AppColors.btnDisableColor,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(child: Text('自定义'.tr, style: TextStyle(fontSize: 26.sp, color: Colors.white))),
],
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
GestureDetector(
onTap: () {
setState(() {
state.isCustom.value = true;
});
},
child: Container(
width: (1.sw - 5.w * 2) / 2,
height: 100.h,
color: state.isCustom.value
? AppColors.mainColor
: AppColors.btnDisableColor,
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Center(
child: Text('自定义'.tr,
style: TextStyle(
fontSize: 26.sp, color: Colors.white))),
],
),
),
),
),
),
// SizedBox(width: 10.w,),
GestureDetector(
onTap: (){
setState(() {
state.isCustom.value = false;
});
},
child: Container(
width: (1.sw - 10 * 3) / 2,
height: 100.h,
color: state.isCustom.value ? AppColors.btnDisableColor : AppColors.mainColor,
padding: EdgeInsets.all(10.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Center(
child: Text(
'单双休'.tr,
style: TextStyle(fontSize: 26.sp, color: Colors.white),
textAlign: TextAlign.center,
))),
],
// SizedBox(width: 10.w,),
GestureDetector(
onTap: () {
setState(() {
state.isCustom.value = false;
});
},
child: Container(
width: (1.sw - 10 * 3) / 2,
color: state.isCustom.value
? AppColors.btnDisableColor
: AppColors.mainColor,
padding: EdgeInsets.all(10.w),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: Center(
child: Text(
'单双休'.tr,
style: TextStyle(fontSize: 26.sp, color: Colors.white),
textAlign: TextAlign.center,
))),
],
),
),
),
),
),
],
)),
],
)),
);
}
@ -129,36 +142,46 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
allHeight: 60.h,
isHaveLine: true,
isHaveRightWidget: true,
action: (){
action: () {
setState(() {
state.isSingledayWeekend.value = 0;
state.weekDays.value = <int>[1, 2 , 3, 4, 5, 6];
state.weekDays.value = <int>[1, 2, 3, 4, 5, 6];
});
},
rightWidget: Row(
children: <Widget>[
Image.asset(state.isSingledayWeekend.value == 0 ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
Image.asset(
state.isSingledayWeekend.value == 0
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 30.w,
height: 30.w,
),
],
)
)),
))),
Obx(() => CommonItem(
leftTitel: '双休'.tr,
rightTitle: '',
allHeight: 60.h,
isHaveLine: false,
isHaveRightWidget: true,
action: (){
action: () {
setState(() {
state.isSingledayWeekend.value = 1;
state.weekDays.value = <int>[1, 2 , 3, 4, 5];
state.weekDays.value = <int>[1, 2, 3, 4, 5];
});
},
rightWidget: Row(
children: <Widget>[
Image.asset(state.isSingledayWeekend.value == 1 ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
Image.asset(
state.isSingledayWeekend.value == 1
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 30.w,
height: 30.w,
),
],
)
)),
))),
],
),
);
@ -206,12 +229,12 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
allHeight: 60.h,
isHaveLine: true,
isHaveRightWidget: true,
action: (){
action: () {
setState(() {
state.isSingledayWeekend.value = 2;
if(state.weekDays.value.contains(index)){
if (state.weekDays.value.contains(index)) {
state.weekDays.value.remove(index);
}else{
} else {
state.weekDays.value.add(index);
}
state.weekDays.value.sort();
@ -219,13 +242,16 @@ class _CheckingInSetWorkdaySetState extends State<CheckingInSetWorkdaySet> {
},
rightWidget: Row(
children: <Widget>[
Image.asset(state.weekDays.value.contains(index) ? 'images/icon_round_select.png' : 'images/icon_round_unSelect.png', width: 30.w, height: 30.w,),
Image.asset(
state.weekDays.value.contains(index)
? 'images/icon_round_select.png'
: 'images/icon_round_unSelect.png',
width: 30.w,
height: 30.w,
),
],
)
));
}
),
)));
}),
);
}
}

View File

@ -1,4 +1,3 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -32,7 +31,7 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
barTitle: '面容开锁设置'.tr,
haveBack: true,
backgroundColor: AppColors.mainColor),
body: Obx(() => Column(
body: Obx(() => ListView(
children: <Widget>[
Container(
margin: EdgeInsets.only(left: 20.w),
@ -58,11 +57,15 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
'防误开'.tr,
state.antiMisoperation.value == 0
? '防误开已关闭,关门后仍可使用面容开锁'.tr
:'防误开已打开,开锁后'.tr + state.antiMisoperation.value.toString() + '秒内不可使用面容开锁'.tr,
: '防误开已打开,开锁后'.tr +
state.antiMisoperation.value.toString() +
'秒内不可使用面容开锁'.tr,
// state.antiMisoperation.value == 0 ? '关闭' :
'${state.antiMisoperation.value}' + ''.tr,
state.faceOn.value, () {
Pickers.showSinglePicker(Get.context!, data: state.antiMisoperationStrList.value, onConfirm: (var data, int position) {
Pickers.showSinglePicker(Get.context!,
data: state.antiMisoperationStrList.value,
onConfirm: (var data, int position) {
AppLog.log('data = $data, position = $position');
state.antiMisoperation.value = position;
state.setType.value = 2;
@ -79,7 +82,8 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
)));
}
Widget _buildSubTitleItem(String leftStr, String subTitle, String rightStr, bool isAble, Function()? action) {
Widget _buildSubTitleItem(String leftStr, String subTitle, String rightStr,
bool isAble, Function()? action) {
return GestureDetector(
onTap: isAble ? action : null,
child: Container(
@ -99,7 +103,11 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
alignment: Alignment.centerLeft,
child: Text(
leftStr,
style: TextStyle(fontSize: 24.sp, color: isAble ? Colors.black : AppColors.placeholderTextColor),
style: TextStyle(
fontSize: 24.sp,
color: isAble
? Colors.black
: AppColors.placeholderTextColor),
),
),
SizedBox(
@ -109,8 +117,6 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
alignment: Alignment.centerLeft,
child: Text(
subTitle,
maxLines: 2,
overflow: TextOverflow.ellipsis,
style: TextStyle(
fontSize: 20.sp, color: AppColors.btnDisableColor),
),
@ -123,7 +129,9 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
Text(
rightStr,
style: TextStyle(
fontSize: 22.sp, color: isAble ? Colors.black : AppColors.placeholderTextColor),
fontSize: 22.sp,
color:
isAble ? Colors.black : AppColors.placeholderTextColor),
),
SizedBox(
width: 10.w,
@ -159,7 +167,8 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
activeColor: CupertinoColors.activeBlue,
trackColor: CupertinoColors.systemGrey5,
thumbColor: CupertinoColors.white,
value: state.faceOn.value, // getIndex == 1 ? state.faceOn.value : state.autoBright.value,
value: state.faceOn.value,
// getIndex == 1 ? state.faceOn.value : state.autoBright.value,
onChanged: (bool value) {
if (getIndex == 1) {
//
@ -181,8 +190,7 @@ class _FaceUnlockPageState extends State<FaceUnlockPage> {
topTitle: '',
items: bottomItemList,
chooseCallback: (int value) {
state.senseDistance.value =
state.senseDistanceList.value[value];
state.senseDistance.value = state.senseDistanceList.value[value];
state.setType.value = 1;
logic.sendFaceUnlock();
},

View File

@ -532,7 +532,7 @@ class LockSetLogic extends BaseGetXController {
///
void deleyLockLogicOfRoles() {
if (state.lockBasicInfo.value.isLockOwner == 1) {
//
// q
state.showTipView.showIosTipWithContentDialog('删除锁后,所有信息都会一起删除,确定删除锁吗?'.tr, () {
//
state.showTipView.resetGetController();

View File

@ -1,3 +1,4 @@
import 'dart:io';
import 'package:flutter/cupertino.dart';
@ -10,6 +11,7 @@ import 'package:permission_handler/permission_handler.dart';
import 'package:star_lock/flavors.dart';
import 'package:star_lock/mine/mineSet/mineSet/mineSet_logic.dart';
import 'package:star_lock/mine/mineSet/mineSet/mineSet_state.dart';
import 'package:star_lock/tools/langue/langue_tool.dart';
import 'package:star_lock/tools/wechat/customer_tool.dart';
import '../../../appRouters.dart';
import '../../../app_settings/app_colors.dart';
@ -149,6 +151,8 @@ class _MineSetPageState extends State<MineSetPage>
}
Widget getListDataView() {
//
bool isChinese = LanguageTool.instance.isChinese;
return Column(
children: <Widget>[
/* 2024-01-12 by DaisyWu
@ -192,17 +196,20 @@ class _MineSetPageState extends State<MineSetPage>
height: 50.h,
child: Obx(_isPushNotificationSwitch))),
// if (F.appFlavor == Flavor.sky)
CommonItem(
if (isChinese)
CommonItem(
leftTitel: '微信公众号推送'.tr,
rightTitle: '',
isHaveLine: true,
isHaveRightWidget: true,
rightWidget: SizedBox(
width: 60.w,
height: 50.h,
child: Obx(_isWechatPublicAccountPushSwitch))),
// else
// Container(),
width: 60.w,
height: 50.h,
child: Obx(_isWechatPublicAccountPushSwitch),
),
)
else
Container(),
SizedBox(height: 10.h),
CommonItem(
leftTitel: '锁用户管理'.tr,

View File

@ -0,0 +1,13 @@
import 'package:get/get.dart';
class LanguageTool {
LanguageTool._();
static LanguageTool? _instance;
static LanguageTool get instance => _instance ??= LanguageTool._();
String get currentLanguage => Get.locale?.languageCode ?? 'zh';
bool get isChinese => currentLanguage == 'zh';
}