feat:补充国际化
This commit is contained in:
parent
d2dfef0b72
commit
294ee590eb
@ -14,7 +14,6 @@
|
||||
"number": "Number",
|
||||
"additive": "Additive",
|
||||
"addTime": "Add Time",
|
||||
|
||||
"reset": "Reset",
|
||||
"sendKey": "SendKey",
|
||||
"timeLimit": "TimeLimit",
|
||||
@ -43,7 +42,6 @@
|
||||
"fridayShort": "F",
|
||||
"saturdayShort": "S",
|
||||
"sundayShort": "S",
|
||||
|
||||
"realNameAuthentication": "RealNameAuthentication",
|
||||
"sendKeyBottomTip": "The recipient can use it unlimited times during the validity period",
|
||||
"send": "Send",
|
||||
@ -120,7 +118,6 @@
|
||||
"leaveEarly": "Leave Early",
|
||||
"noCardPunched": "No Card Punched",
|
||||
"holidayInfo": "Holiday Info",
|
||||
|
||||
"basicInformation": "Basic Information",
|
||||
"wirelessKeyboard": "Wireless Keyboard",
|
||||
"doorMagnetic": "Door Magnetic",
|
||||
@ -193,7 +190,6 @@
|
||||
"upgrade": "Upgrade",
|
||||
"leisure": "Leisure",
|
||||
"checkedIn": "Checked In",
|
||||
|
||||
"lanEnglish": "English",
|
||||
"lanChinese": "Chinese",
|
||||
"multilingual": "Multilingual",
|
||||
@ -208,7 +204,6 @@
|
||||
"supportStaff": "Support Staff",
|
||||
"set": "Setting",
|
||||
"moreServices": "More Services",
|
||||
|
||||
"moreSet": "More Set",
|
||||
"prompTone": "Promp Tone",
|
||||
"touchUnlock": "Touch Unlock",
|
||||
@ -267,7 +262,6 @@
|
||||
"problemTwo": "Problem Two",
|
||||
"problemThree": "Problem Three",
|
||||
"pleaseEnterYourAnswer": "Please Enter Your Answer",
|
||||
|
||||
"designation": "designation",
|
||||
"state": "State",
|
||||
"wifiName": "Wifi Name",
|
||||
@ -297,7 +291,6 @@
|
||||
"preferredDNS": "Preferred DNS",
|
||||
"alternativeDNS": "Alternative DNS",
|
||||
"noStaticIPIsUsed": "No Static IP Is Used",
|
||||
|
||||
"allLock": "All Lock",
|
||||
"searchAllLockType": "Search All Lock Type",
|
||||
"doorLock": "Door Lock",
|
||||
@ -314,7 +307,6 @@
|
||||
"nearbyLock": "Nearby Lock",
|
||||
"addSuccessfullyPleaseRename": "If you want to change the name, please rename, click OK to add lock",
|
||||
"whenAddingLockThePhoneMustBeNextToTheLock": "When adding a lock, the phone must be next to the lock",
|
||||
|
||||
"login": "Login",
|
||||
"register": "Register",
|
||||
"forgetPassword": "Forget Password",
|
||||
@ -327,20 +319,17 @@
|
||||
"countryAndRegion": "Country And Region",
|
||||
"select": "Select",
|
||||
"getVerificationCode": "Get Verification Code",
|
||||
|
||||
"businessCooperation": "Business Cooperation",
|
||||
"officialWebsite": "Official Website",
|
||||
"computerWebVersion": "Computer Web Version",
|
||||
"hotelSystem": "Hotel System",
|
||||
"manualWebVersion": "Manual Web Version",
|
||||
"introduce": "Introduce",
|
||||
|
||||
"note": "Note",
|
||||
"mail": "Mail",
|
||||
"advancedFunction": "Advanced Function",
|
||||
"pushMessage": "Push Message",
|
||||
"recordsRetention": "Records Retention",
|
||||
|
||||
"smsBuyTip": "You can send the password and electronic key information to the recipient via SMS.",
|
||||
"emailBuyTip": "You can send the password and electronic key information to the recipient by email.",
|
||||
"currentRemainingQuantity": "Current Remaining Quantity",
|
||||
@ -365,7 +354,6 @@
|
||||
"tipsForBuyingAdvancedFeatures": "More advanced features are under development, and if you need them, you are welcome to open the service based on the number of locks. Advanced features are only available for your own locks. If you are an authorized administrator, please contact the top administrator of the lock to open the service",
|
||||
"freeTrial": "Free Trial",
|
||||
"openNow": "Open Now",
|
||||
|
||||
"buySMS": "Buy SMS",
|
||||
"buyMail": "Buy Mail",
|
||||
"buyRealNameAuthenticationTimes": "Purchase Real Name Authentication Times",
|
||||
@ -374,7 +362,6 @@
|
||||
"modeOfPayment": "Mode Of Payment",
|
||||
"alipay": "Alipay",
|
||||
"goToPay": "Go To Pay",
|
||||
|
||||
"customTemplatesTip": "You can define the content of your own template for sending passwords or electronic key information to others",
|
||||
"haveOpened": "Have Opened",
|
||||
"unHaveOpenedTip1": "This function is an advanced function, please open it before using",
|
||||
@ -397,12 +384,10 @@
|
||||
"and": "And",
|
||||
"willBeReplacedWithTheActualValue": "Will be replaced with the actual value",
|
||||
"downloadLink": "Download Link",
|
||||
|
||||
"lockScreenTip": "After the function is enabled, you need to use your fingerprint, face or account password to open the APP. There is no need to verify again for 3 minutes",
|
||||
"hideInvalidUnlockPermissionsTip": "After the function is enabled, the password, electronic key, card, fingerprint and other unlocking permissions that have been invalid for a long time will be hidden and not displayed in the list.",
|
||||
"appUnlockRequiresMobilePhoneAccessToTheLockTip": "For the selected locks, when the user uses the APP to unlock the lock, his phone needs to be connected to the Internet, otherwise the lock cannot be unlocked",
|
||||
"checkAll": "Check All",
|
||||
|
||||
"wifiDistributionNetwork": "WiFi Distribution Network",
|
||||
"configuringWiFi": "Configuring WiFi",
|
||||
"pleaseEnterWifiName": "Please Enter Wifi Name",
|
||||
@ -413,7 +398,6 @@
|
||||
"effectiveDay": "Effective Day",
|
||||
"stressCard": "Stress Card",
|
||||
"stressPassword": "Stress Password",
|
||||
|
||||
"whetherTheEmployeeHasPassword": "If The Employee Has A Password",
|
||||
"whetherTheEmployeeHasCard": "If The Employee Has A Card",
|
||||
"whetherTheEmployeeHasFingerprint": "If The Employee Has A Fingerprint",
|
||||
@ -425,7 +409,6 @@
|
||||
"getFingerprint": "Get Fingerprint",
|
||||
"safeVerify": "Security verification",
|
||||
"deleteAccountTips": "After deleting the account, all your information and related records will be completely deleted from the platform, and can not be recovered, delete or not",
|
||||
|
||||
"humanFace": "Human Face",
|
||||
"monitoring": "Monitoring",
|
||||
"videoLog": "Video Log",
|
||||
@ -433,7 +416,6 @@
|
||||
"superAdmin": "Super Admin",
|
||||
"normalUser": "Normal User",
|
||||
"gatewayDevice": "Gateway Device",
|
||||
|
||||
"illumination": "Illumination",
|
||||
"doorOpener": "Door Opener",
|
||||
"faceUnlocks": "Face Unlocks",
|
||||
@ -442,7 +424,6 @@
|
||||
"motorPowerSetting": "MotorPower Setting",
|
||||
"bluetoothBroadcast": "Bluetooth Broadcast",
|
||||
"whetherInternetRequiredWhenUnlocking": "If Internet Is Required When Unlocking",
|
||||
|
||||
"selectTheLockToJoinTheGroup": "Select the lock to join the group",
|
||||
"lockTrCount": "Lock Count",
|
||||
"xiaomiIOTPlatform": "Xiaomi IOT Platform",
|
||||
@ -450,7 +431,6 @@
|
||||
"pleaseEnterAGroupName": "Please enter a group name",
|
||||
"hint": "Hint",
|
||||
"areYouSureYouWantToDeleteIt": "Are you sure you want to delete it?",
|
||||
|
||||
"faceUnlocksSet": "Face Unlocks Set",
|
||||
"automaticBrighteningScreen": "Automatic brightening screen",
|
||||
"sensingDistance": "Sensing distance",
|
||||
@ -461,23 +441,19 @@
|
||||
"closeRange": "Close Range",
|
||||
"addAndUseFaceWhenUnlocking": "Add and use face when unlocking",
|
||||
"addAndUseFaceWhenUnlockingTip": "\n1, please try to keep a single person in front of the door operation; \n2, please stand in front of the door lock about 0.5~0.8 meters, facing the door lock; \n3. Please keep your face unobstructed and expose your facial features; \n4. When face recognition is abnormal, you can touch any key on the digital keyboard to restart face recognition manually.",
|
||||
|
||||
"second": "S",
|
||||
"motorPowerSettingTip": "Please choose the motor power carefully according to the actual situation of the door lock:",
|
||||
"miniwatt": "miniwatt:",
|
||||
"miniwattTip": "Less power consumption",
|
||||
"highPower": "high-power:",
|
||||
"highPowerTip": "If the lock tongue can not be retracted normally when unlocking, or need to be driven \nHeaven and earth hook, it is recommended to choose high power. At this point, the power consumption will be \nIncrease.",
|
||||
|
||||
"openingDirectionSetTip": "Please carefully choose the direction to open the door of your home (if you choose the wrong direction, you will not be able to open and close the door properly) :",
|
||||
"openLeft": "Open Left",
|
||||
"openRight": "Open Right",
|
||||
"judgmentMethod": "Judgment Method:\n",
|
||||
"judgmentMethodContent": "The man stood outside the house, facing the entrance door. \nIf the hinge or shaft of the door is on the left, the door is left open; \nA door is right-open if its hinge or shaft is on the right. \nIf the setting is wrong, it will not open and close the door properly. \nRecommended to be operated by installation or maintenance personnel.",
|
||||
|
||||
"customMode": "Custom mode",
|
||||
"videoSlot": "Video slot",
|
||||
|
||||
"密码": "Password",
|
||||
"卡": "Card",
|
||||
"指纹": "Fingerprint",
|
||||
@ -614,7 +590,6 @@
|
||||
"跳过": "Skip",
|
||||
"还未获取到位置信息哦,请耐心等待一下!": "The location information has not been obtained yet, please wait patiently!",
|
||||
"请填写信息": "Please fill in the information",
|
||||
|
||||
"有效期": "Validity period",
|
||||
"生效时间": "Effective time",
|
||||
"失效时间": "Expiration time",
|
||||
@ -705,7 +680,6 @@
|
||||
"型号": "Model",
|
||||
"密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。密码激活后,有效期内不限次数使用。": "After the password is generated, please use it once for activation before 23:59 on the same day, otherwise it will be invalid after 0 o'clock. After the password is activated, it can be used unlimited times within the validity period.",
|
||||
"密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。": "After the password is generated, please use it before 23:59 on the same day, otherwise it will be invalid after 0 o'clock. The clear code is used to clear all the passwords generated before 0 o'clock today.",
|
||||
|
||||
"相机": "camera",
|
||||
"相册": "photos",
|
||||
"读写": "storage",
|
||||
@ -725,10 +699,8 @@
|
||||
"当前网络": "Current network",
|
||||
"位置信息": "Location information",
|
||||
"请输入wifi名称": "Please enter the wifi name",
|
||||
|
||||
"虹膜": "iris",
|
||||
"手掌": "palm",
|
||||
|
||||
"商城": "mall",
|
||||
"我的": "my",
|
||||
"微信公众号推送": "Wechat public account",
|
||||
@ -807,5 +779,13 @@
|
||||
"已开通": "Have opened",
|
||||
"该功能是高级功能,请开通后再使用": "This function is an advanced function. Please enable it before using it",
|
||||
"常用程序": "Common Programs",
|
||||
"该锁已被重置":"The lock has been reset"
|
||||
"该锁已被重置": "The lock has been reset",
|
||||
"需要访问读写权限才能使用手动升级固件": "Access to read and write permissions is required to manually upgrade firmware",
|
||||
"错误D固件,请选择正确的文件": "Wrong firmware, please select the correct file",
|
||||
"非SYD固件,请选择正确的文件": "Non SYD firmware, please select the correct file",
|
||||
"文件校验失败 0x01": "File verification failed 0x01",
|
||||
"解析元数据失败,请选择正确的文件": "Failed to parse metadata, please select the correct file",
|
||||
"文件校验失败 0x02": "File verification failed 0x02",
|
||||
"文件校验失败 0x03": "File verification failed 0x03",
|
||||
"固件升级完成": "Firmware upgrade completed"
|
||||
}
|
||||
|
||||
@ -806,5 +806,13 @@
|
||||
"已开通":"已开通",
|
||||
"该功能是高级功能,请开通后再使用":"该功能是高级功能,请开通后再使用",
|
||||
"常用程序":"常用程序",
|
||||
"该锁已被重置":"该锁已被重置"
|
||||
"该锁已被重置":"该锁已被重置",
|
||||
"需要访问读写权限才能使用手动升级固件":"需要访问读写权限才能使用手动升级固件",
|
||||
"错误D固件,请选择正确的文件":"错误固件,请选择正确的文件",
|
||||
"非SYD固件,请选择正确的文件":"非SYD固件,请选择正确的文件",
|
||||
"文件校验失败 0x01":"文件校验失败 0x01",
|
||||
"解析元数据失败,请选择正确的文件":"解析元数据失败,请选择正确的文件",
|
||||
"文件校验失败 0x02":"文件校验失败 0x02",
|
||||
"文件校验失败 0x03":"文件校验失败 0x03",
|
||||
"固件升级完成":"固件升级完成"
|
||||
}
|
||||
|
||||
@ -809,5 +809,13 @@
|
||||
"已开通":"已开通",
|
||||
"该功能是高级功能,请开通后再使用":"该功能是高级功能,请开通后再使用",
|
||||
"常用程序":"常用程序",
|
||||
"该锁已被重置":"该锁已被重置"
|
||||
"需要访问读写权限才能使用手动升级固件":"需要访问读写权限才能使用手动升级固件",
|
||||
"错误D固件,请选择正确的文件":"错误固件,请选择正确的文件",
|
||||
"非SYD固件,请选择正确的文件":"非SYD固件,请选择正确的文件",
|
||||
"文件校验失败 0x01":"文件校验失败 0x01",
|
||||
"解析元数据失败,请选择正确的文件":"解析元数据失败,请选择正确的文件",
|
||||
"文件校验失败 0x02":"文件校验失败 0x02",
|
||||
"文件校验失败 0x03":"文件校验失败 0x03",
|
||||
"固件升级完成":"固件升级完成"
|
||||
|
||||
}
|
||||
|
||||
@ -47,7 +47,7 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
//手动升级
|
||||
Future<void> otaUpdate() async {
|
||||
var status = await PermissionDialog.request(
|
||||
Permission.storage, '需要访问读写权限才能使用手动升级固件');
|
||||
Permission.storage, '需要访问读写权限才能使用手动升级固件'.tr);
|
||||
if (status != true) {
|
||||
return;
|
||||
}
|
||||
@ -162,7 +162,7 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
// 检查文件头
|
||||
Future<Map?> getHeadFile(Uint8List data) async {
|
||||
if (data.length <= 16) {
|
||||
showToast('错误D固件,请选择正确的文件');
|
||||
showToast('错误固件,请选择正确的文件'.tr);
|
||||
return null;
|
||||
}
|
||||
// 检查文件头
|
||||
@ -170,11 +170,11 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
try {
|
||||
header = utf8.decode(data.sublist(0, 12));
|
||||
} catch (e) {
|
||||
showToast('非SYD固件,请选择正确的文件');
|
||||
showToast('非SYD固件,请选择正确的文件'.tr);
|
||||
return null;
|
||||
}
|
||||
if (header != 'SYD-BIN-DATA') {
|
||||
showToast('非SYD固件,请选择正确的文件');
|
||||
showToast('非SYD固件,请选择正确的文件'.tr);
|
||||
return null;
|
||||
}
|
||||
// 解析元数据长度
|
||||
@ -184,11 +184,11 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
metaLenList = data.sublist(12, 16);
|
||||
metaLen = ByteData.sublistView(metaLenList).getUint32(0);
|
||||
} catch (e) {
|
||||
showToast('文件校验失败 0x01');
|
||||
showToast('文件校验失败 0x01'.tr);
|
||||
return null;
|
||||
}
|
||||
if (metaLen < 2 || metaLen > 10240) {
|
||||
showToast('文件校验失败 0x01');
|
||||
showToast('文件校验失败 0x01'.tr);
|
||||
return null;
|
||||
}
|
||||
// 读取和解析元数据
|
||||
@ -198,13 +198,13 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
metaStrList = data.sublist(16, 16 + metaLen);
|
||||
metaStr = utf8.decode(metaStrList);
|
||||
} catch (e) {
|
||||
showToast('解析元数据失败,请选择正确的文件');
|
||||
showToast('解析元数据失败,请选择正确的文件'.tr);
|
||||
return null;
|
||||
}
|
||||
AppLog.log(metaStr);
|
||||
var meta = jsonDecode(metaStr);
|
||||
if (meta is! Map) {
|
||||
showToast('解析元数据失败,请选择正确的文件');
|
||||
showToast('解析元数据失败,请选择正确的文件'.tr);
|
||||
return null;
|
||||
}
|
||||
return meta..['metaLen'] = metaLen;
|
||||
@ -219,11 +219,11 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
String md5Str = md5.convert(bin).toString().toUpperCase();
|
||||
AppLog.log('---> $md5Str ${meta['fwMd5']}');
|
||||
if (md5Str != meta['fwMd5']) {
|
||||
showToast('文件校验失败 0x02');
|
||||
showToast('文件校验失败 0x02'.tr);
|
||||
return null;
|
||||
}
|
||||
if (bin.length != meta['fwSize']) {
|
||||
showToast('文件校验失败 0x03');
|
||||
showToast('文件校验失败 0x03'.tr);
|
||||
return null;
|
||||
}
|
||||
return bin;
|
||||
@ -253,7 +253,7 @@ class LockEscalationLogic extends BaseGetXController {
|
||||
processOtaUpgrade();
|
||||
} else if (reply is ConfirmationOTAUpgradeReply && reply.status == 0x00) {
|
||||
closeOTADAta();
|
||||
showToast('固件升级完成');
|
||||
showToast('固件升级完成'.tr);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user