diff --git a/lan/lan_ar.json b/lan/lan_ar.json index 6fc70cf0..1cd0e45a 100644 --- a/lan/lan_ar.json +++ b/lan/lan_ar.json @@ -216,7 +216,6 @@ "添加网关": "إضافة بوابة", "重新通电": "إعادة توصيل الطاقة", "指示灯": "مصباح مؤشر", - "将网关重新通电,指示灯交替闪烁时点击下一步": "انقر فوق التالي عندما فلاش الضوء بالتناوب", "选择网关": "اختر بوابة", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G غير مدعوم. يرجى اختيار واي فاي 2.4G.", "WiFi密码": "واي فاي Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "يجب أن تحتوي كلمة المرور على الأقل على 2 مما يلي: الأرقام والحروف والأحرف الخاصة", "已开锁": "غير مقفل", "已闭锁": "مقفل", - "两次密码不一致哦": "كلمات المرور غير متسقة" + "两次密码不一致哦": "كلمات المرور غير متسقة", + "中功率": "قوة متوسطة", + "常规使用": "استخدام منتظم", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "بعد تشغيل البوابة ، اضغط مع الاستمرار على زر إعادة الضبط لمدة 5 ثوانٍ ، وانقر بعد ذلك عندما يومض مصباح المؤشر بالتناوب", + "扫描设备": "جهاز المسح الضوئي", + "删除失败,网关可能已经离线,是否强制删除该数据?": "فشل الحذف. ربما تكون البوابة قد اختفت دون اتصال. هل تريد فرض حذف البيانات ؟" } \ No newline at end of file diff --git a/lan/lan_bg.json b/lan/lan_bg.json index db07b1ee..42500e03 100644 --- a/lan/lan_bg.json +++ b/lan/lan_bg.json @@ -217,7 +217,6 @@ "添加网关": "Добавяне на шлюз", "重新通电": "Повторно свързване на захранването", "指示灯": "Индикаторна светлина", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Щракнете върху следващия, когато светлинната светкавица се редува", "选择网关": "Изберете шлюз", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g не се поддържа,. моля, изберете wifi от 2.4g.", "WiFi密码": "Wifi passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Паролата трябва да съдържа поне 2 от следните: числа, букви и специални символи", "已开锁": "Отключена", "已闭锁": "Заключен", - "两次密码不一致哦": "Паролите са непоследователни" + "两次密码不一致哦": "Паролите са непоследователни", + "中功率": "Средна мощност", + "常规使用": "Редовна употреба", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "След като шлюзът е включен, натиснете и задръжте бутона reset за 5 секунди и щракнете върху следващия, когато индикаторната светлина мига алтернативно", + "扫描设备": "Сканиране устройство", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Изтриването не успя. Портата може да е отишла офлайн. Искате ли да принудите изтриване на данните?" } \ No newline at end of file diff --git a/lan/lan_bn.json b/lan/lan_bn.json index f0781bb6..24d339ed 100644 --- a/lan/lan_bn.json +++ b/lan/lan_bn.json @@ -216,7 +216,6 @@ "添加网关": "বিরোধী", "重新通电": "পরীক্ষা", "指示灯": "কেয়ানারেটরলাইট", - "将网关重新通电,指示灯交替闪烁时点击下一步": "বিকশিত", "选择网关": "সিওসিকারওয়ে", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5 gisnoteigpped,.", "WiFi密码": "উইফিক", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "ইসওয়ার্ডমস্টস্টেটলিয়াস্ট 2ofthefক্লোভিং:", "已开锁": "কনুকলচকেড", "已闭锁": "লোকচকেড", - "两次密码不一致哦": "Thepasswordsare pencay" + "两次密码不一致哦": "Thepasswordsare pencay", + "中功率": "উইউমপোওয়ার", + "常规使用": "গ্যারিউস", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "অ্যারাস্টার্টিউইসপোভেরেডন, প্রেস এবং টিপেস্টেট্রিসেট গানttonfor5sononds, এবং চক্লিক উইভেন্থে-উইন্টার", + "扫描设备": "সিস্কান্লিভাইস", + "删除失败,网关可能已经离线,是否强制删除该数据?": "ডাইজেজেশনিমেরিলেড। টিভওয়েমাইয়ানভিগনোনোআরলাইন। ডো ডাউনডেটা?" } \ No newline at end of file diff --git a/lan/lan_cs.json b/lan/lan_cs.json index 911a65a8..454a51d4 100644 --- a/lan/lan_cs.json +++ b/lan/lan_cs.json @@ -216,7 +216,6 @@ "添加网关": "Přidat bránu", "重新通电": "Znovu připojit napájení", "指示灯": "Indikační světlo", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klepněte na tlačítko další, když světlo záblesky střídavě", "选择网关": "Zvolte bránu", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g není podporována,. vyberte wifi 2.4g.", "WiFi密码": "Wifi passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovat alespoň 2 z těchto údajů: čísla, písmena a zvláštní znaky", "已开锁": "Odemčeno", "已闭锁": "Zamčeno", - "两次密码不一致哦": "Hesla jsou nekonzistentní" + "两次密码不一致哦": "Hesla jsou nekonzistentní", + "中功率": "Střední síla", + "常规使用": "Pravidelné použití", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po zapnutí brány stiskněte a podržte tlačítko reset po dobu 5 sekund a klepněte na tlačítko next", + "扫描设备": "Skenovat zařízení", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Odstranění se nezdařilo. Brána možná byla offline. Chcete vynutit smazat data?" } \ No newline at end of file diff --git a/lan/lan_da.json b/lan/lan_da.json index a1a62fde..b954a372 100644 --- a/lan/lan_da.json +++ b/lan/lan_da.json @@ -216,7 +216,6 @@ "添加网关": "Tilføj gatewayName", "重新通电": "Tilslut kraften", "指示灯": "Indikator Lys", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klik næste, når lyset blinker skiftevist", "选择网关": "Vælg gatewayName", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G understøttes ikke, Vælg et WiFi på 2.4G.", "WiFi密码": "WiFi- adgangskort", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Adgangskoden skal indeholde mindst 2 af følgende: tal, bogstaver og særlige tegn", "已开锁": "Ulåset", "已闭锁": "Låset", - "两次密码不一致哦": "Adgangskoderne er inkonsekvente" + "两次密码不一致哦": "Adgangskoderne er inkonsekvente", + "中功率": "Mellem effekt", + "常规使用": "Regelmæssig anvendelse", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Når gateway er tændt, tryk og hold nulstillingsknappen i 5 sekunder, og klik Next, når indikator lys blinker skiftevist", + "扫描设备": "Scan- enhed", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Sletning mislykkedes. Porten er måske offline. Vil du tvinge slette data?" } \ No newline at end of file diff --git a/lan/lan_de.json b/lan/lan_de.json index 898ac9df..8f257d7b 100644 --- a/lan/lan_de.json +++ b/lan/lan_de.json @@ -216,7 +216,6 @@ "添加网关": "Gateway hinzufügen", "重新通电": "Re Verbinden Sie die Strom versorgung", "指示灯": "Anzeige leuchte", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klicken Sie als nächstes, wenn das Licht abwechselnd blinkt", "选择网关": "Wählen Sie Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G wird nicht unterstützt, Bitte wählen Sie ein WiFi von 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Das Passwort muss mindestens 2 der folgenden Zahlen enthalten: Zahlen, Buchstaben und Sonder zeichen", "已开锁": "Entsperrt", "已闭锁": "Gesperrt", - "两次密码不一致哦": "Die Passwörter sind inkonsistent" + "两次密码不一致哦": "Die Passwörter sind inkonsistent", + "中功率": "Mittlere Leistung", + "常规使用": "Regelmäßige Verwendung", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nachdem das Gateway eingesc haltet ist, drücken und halten Sie die Reset-Taste für 5 Sekunden, und klicken Sie auf Weiter, wenn die Kontroll leuchte blinkt abwechselnd", + "扫描设备": "Scan-Gerät", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Löschung fehl geschlagen. Das Gateway ist möglicher weise offline gegangen. Möchten Sie das Löschen der Daten erzwingen?" } \ No newline at end of file diff --git a/lan/lan_el.json b/lan/lan_el.json index 8c90bc2e..050fc964 100644 --- a/lan/lan_el.json +++ b/lan/lan_el.json @@ -216,7 +216,6 @@ "添加网关": "Προσθήκη πύλης", "重新通电": "Συνδέστε τη δύναμη", "指示灯": "Φως δείκτης", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Κάντε κλικ στο επόμενο όταν το φως αναβοσβήνει εναλλάξα", "选择网关": "Επιλογή πύλης", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "Το 5G δεν υποστηρίζεται.Παρακαλώ επιλέξτε ένα WiFi των 2.4G.", "WiFi密码": "WiFi", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 2 από τα ακόλουθα: αριθμούς, γράμματα και ειδικούς χαρακτήρες.", "已开锁": "Ξεκλείδωμα", "已闭锁": "Κλειδωμένο", - "两次密码不一致哦": "Οι κωδικοί πρόσβασης δεν είναι συνεπείς." + "两次密码不一致哦": "Οι κωδικοί πρόσβασης δεν είναι συνεπείς.", + "中功率": "Μέση ισχύς", + "常规使用": "Κανονική χρήση:", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Αφού ενεργοποιηθεί η πύλη, πατήστε και κρατήστε το κουμπί επαναφοράς για 5 δευτερόλεπτα, και κάντε κλικ Next όταν το φως δείκτη αναβοσβήνει εναλλάξα", + "扫描设备": "Συσκευή σάρωσης", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Η διαγραφή απέτυχε. Η πύλη μπορεί να έχει εκτός λειτουργίας. Θέλετε να αναγκάσετε τη διαγραφή των δεδομένων;" } \ No newline at end of file diff --git a/lan/lan_en.json b/lan/lan_en.json index 6d6cf7e0..108785fa 100644 --- a/lan/lan_en.json +++ b/lan/lan_en.json @@ -217,7 +217,7 @@ "添加网关": "Add Gateway", "重新通电": "Re Connect the Power", "指示灯": "Indicator Light", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Click next when the light flash alternately", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "After the gateway is powered on, press and hold the reset button for 5 seconds, and click Next when the indicator light flashes alternately", "选择网关": "Choose Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G is not supported,.Please select a WiFi of 2.4G.", "WiFi密码": "WiFi Passward", @@ -1112,5 +1112,7 @@ "中功率": "Medium power", "常规使用": "Regular use", + "扫描设备": "Scan device", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Deletion failed. The gateway may have gone offline. Do you want to force delete the data?" } diff --git a/lan/lan_es.json b/lan/lan_es.json index 66978b35..248e721c 100644 --- a/lan/lan_es.json +++ b/lan/lan_es.json @@ -216,7 +216,6 @@ "添加网关": "Agregar puerta de enlace", "重新通电": "Re conectar el poder", "指示灯": "Luz indicadora", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Haga clic en siguiente cuando la luz parpadee alternativamente", "选择网关": "Elegir puerta de enlace", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G no es compatible, Seleccione un WiFi de 2,4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "La contraseña debe contener al menos 2 de los siguientes: números, letras y caracteres especiales", "已开锁": "Desbloqueado", "已闭锁": "Bloqueado", - "两次密码不一致哦": "Las contraseñas son inconsistentes" + "两次密码不一致哦": "Las contraseñas son inconsistentes", + "中功率": "Potencia media", + "常规使用": "Uso regular", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Después de encender la puerta de enlace, mantenga presionado el botón de reinicio durante 5 segundos y haga clic en Siguiente cuando la luz indicadora parpadee alternativamente", + "扫描设备": "Dispositivo de exploración", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Falló la eliminación. Es posible que la puerta de enlace se haya desconectado. ¿Desea forzar la eliminación de los datos?" } \ No newline at end of file diff --git a/lan/lan_et.json b/lan/lan_et.json index 8ea3f020..299d4c1d 100644 --- a/lan/lan_et.json +++ b/lan/lan_et.json @@ -216,7 +216,6 @@ "添加网关": "Lisa väravi", "重新通电": "Ühendage võimsust", "指示灯": "Näitaja Valguse", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klõpsa järgmine, kui valgus vilgutab vaheldumisel", "选择网关": "Vali väravatee", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G ei ole toetatud, Palun valige WiFi 2.4G.", "WiFi密码": "WiFi Passivorm", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Parool peab sisaldama vähemalt kahte järgmistest: numbreid, tähti ja erimärkid", "已开锁": "Lukustatud", "已闭锁": "Lukustatud", - "两次密码不一致哦": "Paroolid ei ole järjekindlad" + "两次密码不一致哦": "Paroolid ei ole järjekindlad", + "中功率": "Keskmine võimse", + "常规使用": "Regulaarne kasutamine", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Kui värav on sisse lülitatud, vajutage ja hoidke nuppu 5 sekundit, ja klõpsa Järgmine, kui indikaator valgus vilgub vaheldumisel", + "扫描设备": "Skaneerimisseade", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Kustutamine nurjus. Värav võis välja lülitada. Kas soovid kustutada andmed?" } \ No newline at end of file diff --git a/lan/lan_fi.json b/lan/lan_fi.json index 18fcb735..4b2fe7ae 100644 --- a/lan/lan_fi.json +++ b/lan/lan_fi.json @@ -216,7 +216,6 @@ "添加网关": "Lisää porttiComment", "重新通电": "Yhdistä teho", "指示灯": "Indikaattori Valo", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klikkaa seuraavaa, kun valo välähti vuorotellen.", "选择网关": "Valitse porttiName", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G ei ole tuettu, valitse 2.4G:n WiFi.", "WiFi密码": "WiFi", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Salasanassa on oltava vähintään kaksi seuraavista: numeroita, kirjaimia ja erityismerkkejä", "已开锁": "Avaa lukitus", "已闭锁": "Lukittu", - "两次密码不一致哦": "Salasanat ovat epäjohdonmukaiset." + "两次密码不一致哦": "Salasanat ovat epäjohdonmukaiset.", + "中功率": "Keskimääräinen teho", + "常规使用": "Säännöllinen käyttö", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Kun portti on käytössä, paina ja pidä painiketta nollauspainiketta 5 sekunnin ajan, ja klikkaa Seuraava kun ilmaisin valo vilkkuu vuorotellensa", + "扫描设备": "Skannauslaite", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Poisto epäonnistui. Portti on ehkä pois päältä. Haluatko pakottaa poistamaan tiedot?" } \ No newline at end of file diff --git a/lan/lan_fr.json b/lan/lan_fr.json index 7f66064d..87e47a72 100644 --- a/lan/lan_fr.json +++ b/lan/lan_fr.json @@ -216,7 +216,6 @@ "添加网关": "Ajouter une passerelle", "重新通电": "Re reliez la puissance", "指示灯": "Indicateur de lumière", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Cliquez sur suivant lorsque la lumière clignote alternativement", "选择网关": "Choisissez la passerelle", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G n'est pas pris en charge,. Veuillez sélectionner un WiFi de 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Le mot de passe doit contenir au moins deux des éléments suivants: chiffres, lettres et caractères spéciaux", "已开锁": "Déverrouillé", "已闭锁": "Verrouillé", - "两次密码不一致哦": "Les mots de passe sont incohérents" + "两次密码不一致哦": "Les mots de passe sont incohérents", + "中功率": "Puissance moyenne", + "常规使用": "Utilisation régulière", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Une fois la passerelle allumée, appuyez et maintenez enfoncé le bouton de réinitialisation pendant 5 secondes, puis cliquez sur Suivant lorsque le voyant clignote alternativement", + "扫描设备": "Appareil de numérisation", + "删除失败,网关可能已经离线,是否强制删除该数据?": "La suppression a échoué. La passerelle est peut-être hors ligne. Voulez-vous forcer la suppression des données?" } \ No newline at end of file diff --git a/lan/lan_he.json b/lan/lan_he.json index b09e9188..7e7e4579 100644 --- a/lan/lan_he.json +++ b/lan/lan_he.json @@ -216,7 +216,6 @@ "添加网关": "הוספת שער", "重新通电": "לחבר מחדש את הכוח", "指示灯": "אור מחוון", - "将网关重新通电,指示灯交替闪烁时点击下一步": "לחץ על הבא כאשר הבזק אור לסירוגין", "选择网关": "בחר שער", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g אינו נתמך,. בחר WiFi של 2.4g.", "WiFi密码": "הפסח", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "הסיסמה חייבת להכיל לפחות 2 מאלה: מספרים, אותיות ותווים מיוחדים", "已开锁": "נעול", "已闭锁": "נעול", - "两次密码不一致哦": "הסיסמאות אינן עקביות" + "两次密码不一致哦": "הסיסמאות אינן עקביות", + "中功率": "כוח בינוני", + "常规使用": "שימוש קבוע", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "לאחר השער מופעל, לחץ והחזק את כפתור איפוס עבור 5 שניות, ולחץ על הבא כאשר מחוון אור מהבהב לסירוגין", + "扫描设备": "התקן סריקה", + "删除失败,网关可能已经离线,是否强制删除该数据?": "מחיקה נכשלה. ייתכן שהשער נעלם מהרשת. האם ברצונך לאלץ למחוק את הנתונים?" } \ No newline at end of file diff --git a/lan/lan_hk.json b/lan/lan_hk.json new file mode 100644 index 00000000..39083939 --- /dev/null +++ b/lan/lan_hk.json @@ -0,0 +1,1114 @@ +{ + "星锁": "星锁", + "锁通通": "锁在", + "点击开锁,长按闭锁": "触摸解锁,长按锁定", + "考勤": "出席", + "考勤设置": "考勤设置", + "电子钥匙": "eKeys", + "添加卡": "添加卡", + "卡号": "卡号", + "添加指纹": "添加指纹", + "指纹号": "指纹数量", + "遥控": "远程", + "添加人脸": "添加的脸", + "门锁日志": "门锁日志", + "密码号": "密码数字", + "添加者": "操作符", + "添加时间": "时间", + "重置": "重置", + "请输入手机号或者邮箱": "电话号码或电邮地址", + "工作时间": "工作时间", + "工作日设置": "工作时间设置", + "星期一": "周一", + "星期二": "周二", + "星期三": "周三", + "星期四": "周四", + "星期五": "星期五", + "星期六": "周六", + "星期日": "周日", + "简写周一": "米", + "简写周二": "T", + "简写周三": "W", + "简写周四": "T", + "简写周五": "F", + "简写周六": "年代", + "简写周日": "年代", + "周一": "我的", + "周二": "星期二", + "周三": "结婚", + "周四": "星期四", + "周五": "星期五", + "周六": "坐", + "周日": "太阳", + "群发钥匙": "发送多个ekey", + "锁": "锁", + "请添加": "收件人", + "允许远程开锁": "远程解锁", + "请输入验证码": "验证码", + "获取密码": "生成密码", + "请给密码命名": "为这个密码输入一个名称", + "密码有限期为6个小时,只能使用一次": "此密码必须在当前时间起6小时内使用,否则将因安全原因暂停使用。此密码只可使用一次。", + "手动输入6-9位数字作为密码。可在锁旁边通过手机蓝牙添加,也可以通过网关远程添加": "手动输入6 ~ 9位数字作为密码。可以通过手机蓝牙添加旁边的锁,还是通过网关远程添加", + "获取": "得到", + "添加": "添加", + "删除公司": "删除公司", + "密码详情": "密码信息", + "修改密码": "改变密码", + "添加虹膜": "添加虹膜", + "添加门磁": "门传感器", + "添加无线键盘": "无线键盘", + "添加手掌": "添加棕榈", + "请输入员工账号": "输入员工账号", + "批量授权锁": "授予多个锁", + "授权管理员拥有操作这把锁的重要权限,请确保只发给我你信任的人": "授权的管理员将拥有操作此锁的多数权限。", + "功能开启后,你将可以通过网关远程开锁。此功能的开启和关闭只能在锁附近通过手机蓝牙进行。": "此功能允许您通过网关远程解锁智能锁。此功能只能通过蓝牙开启或关闭。", + "排列方式": "列表类型", + "早到榜": "早期的列表", + "迟到榜": "晚列表", + "当前模式": "当前模式", + "勤奋榜": "努力工作清单", + "延迟时间": "延迟时间", + "经过以上设定的时间,锁会自动关闭。开启或修改设置后,请先开一次锁,使时间生效。": "时间过后,锁会自动锁上。请先解锁一次,以使设置可用。", + "时间": "时间", + "开始时间": "开始时间", + "结束时间": "结束时间", + "工作时间设置": "工作时间设置", + "常开模式": "通道模式", + "常开时间": "在这段时间里", + "常开日期": "在这些日子里", + "添加员工": "添加员工", + "编辑员工": "编辑人员", + "节假日": "假期", + "打卡方式": "方法", + "员工是否有钥匙": "已经有了钥匙", + "上班时间": "起始时间", + "下班时间": "结束营业的时间", + "本周": "本周", + "单休": "一天周末", + "双休": "为期两天的周末", + "单双休": "One-two-day周末", + "年": "一年", + "月": "月", + "放假日期": "假期", + "补班日期": "工作日", + "添加假日": "添加假日", + "开始日期": "开始日期", + "必填": "要求", + "结束日期": "结束日期", + "日榜": "每天", + "月榜": "每月", + "考勤记录": "记录", + "假日信息": "假期的信息", + "基本信息": "基础知识", + "无线键盘": "无线键盘", + "选择无线键盘": "添加键盘", + "门磁": "门传感器", + "自动闭锁": "汽车锁", + "锁声音": "锁的声音", + "防撬报警": "夯警报", + "重置键": "重置按钮", + "锁时间": "锁定时钟", + "诊断": "诊断", + "上传数据": "上传数据", + "导入其他锁数据": "从另一个锁导入", + "锁升级": "固件更新", + "标记房态": "房间状态", + "开锁提醒": "解锁的通知", + "微信二维码": "解锁二维码", + "拥有电子钥匙的人,通过微信扫一扫这个二维码,即可开门。每把锁的二维码都不相同,你可以将其打印出来贴在对应的锁旁边": "持电子钥匙的人可以通过微信扫描二维码开门。每个锁的二维码都不一样。您可以打印出来并粘贴到相应的锁旁边", + "锁编号": "锁的数量", + "电量": "电池", + "锁分组": "锁定组", + "选择分组": "选择组", + "创建新分组": "创建组", + "管理员开锁密码": "管理员密码", + "更新": "更新", + "电量信息可以通过网关远程更新,或通过手机蓝牙在锁旁边更新": "电池电量将通过网关或手机蓝牙更新", + "当屏幕闪烁时,点击下一步": "当键盘闪烁时,单击next", + "输入*529#或按设置键": "输入*529#或按Settings键", + "长按重置键2秒": "按住复位键2秒", + "附近的设备": "附近的设备", + "暂无数据": "没有数据", + "通过门磁可查询门的开、关状态。每把锁咳添加一个门磁": "您将能够获得门的状态与门传感器与网关在一起。只允许一个传感器与锁相关联。", + "开始": "开始", + "全天": "所有的时间", + "你可以设置多个常开时间段,在设置的时间段内,锁被打开后一直处于打开的状态。": "您可以为通行模式设置多个时间段。在设定的时间段内,锁被解锁后将保持打开状态。", + "请选择锁音量": "请选择锁定音量", + "功能开启后,你将可以听到智能锁的提示音。包括电量过低,密码错误等提示。": "按“ON”键,你会听到锁发出的声音", + "低": "低", + "较低": "介质低", + "中": "媒介", + "较高": "中等高", + "高": "高", + "开启后,锁被撬动时,会发出报警声": "通过打开,您启用了TAMPER警报。", + "关闭后,重置键无效,锁要通过app删除后才能重新添加": "通过关闭,RESET按钮被禁用。", + "校准时间": "校准时间", + "诊断是读取锁内的配置信息并上传,以便工作人员分析故障的原因": "诊断是读取锁内部的配置信息并上传,以便工作人员分析故障原因", + "上传": "上传", + "本操作将上传锁内数据到服务器,过程可能需要几分钟,请耐心等待": "从锁上传数据到服务器。这可能需要几分钟", + "请选择要从哪把锁导入": "选择要导入的锁", + "有新版本": "有新版本", + "当前版本": "当前版本", + "升级": "更新", + "空闲": "空", + "已入住": "被占领的", + "多语言": "语言", + "添加锁": "加锁", + "锁地址": "锁的地址", + "选择锁类型": "选择锁类型", + "NFC无源锁": "NFC无源锁", + "添加设备": "添加设备", + "网关": "网关", + "客服": "客户服务", + "设置": "设置", + "更多设置": "更多的设置", + "消息推送": "通知推", + "锁用户管理": "锁定用户", + "拥有的钥匙": "与此用户关联的eKeys", + "批量授权": "权限管理", + "关联设备": "相关的设备", + "关联姓名": "相关的名字", + "转移智能锁": "把锁", + "选择锁": "屏幕锁", + "接收人信息": "收件人", + "转移网关": "传输网关", + "锁屏": "屏幕锁", + "已关闭": "从", + "已开启": "在", + "开启": "打开", + "确定要开启重置键?": "继续启用重置按钮?", + "确定要关闭重置键?": "继续禁用重置按钮?", + "隐藏无效开锁权限": "隐藏无效访问", + "APP开锁时需手机连网的锁": "锁需要手机在线", + "增值服务": "服务", + "关于": "关于", + "退出": "注销", + "删除账号": "删除账户", + "个人信息": "账户信息", + "头像": "《阿凡达》", + "昵称": "昵称", + "请输入昵称": "请输入您的昵称", + "修改昵称": "重命名", + "修改账号": "编辑帐户", + "重置密码": "重置密码", + "安全问题": "安全问题", + "为了你的账号安全,修改账号前请先使用验证码验证": "为保证您的帐户安全,请在修改帐户前进行帐户密码验证", + "请输入新账号": "请输入新帐户", + "找回密码和登录新设备时,可通过绑定的手机验证": "绑定电话号码将用于接收验证码。", + "找回密码和登录新设备时,可通过绑定的邮箱验证": "绑定电子邮件将用于接收验证码。", + "原密码": "当前的密码", + "新密码": "新密码", + "确认密码": "确认密码", + "当你手机丢了,可以通过回答设置的安全问题来登录新设备": "如果您的手机丢失,您可以通过回答安全问题登录新手机。", + "问题一": "问题1", + "问题二": "问题2", + "问题三": "问题3", + "请输入你的答案": "请输入答案", + "即将到期": "很快到期", + "去授权": "点击授权", + "修改名称": "编辑的名字", + "状态": "状态", + "WiFi名称": "无线网络名称", + "网络MAC": "网络MAC", + "网关升级": "网关更新", + "网关连接的锁": "连接到此网关的锁", + "信号强": "强大的", + "选择网关类型": "选择网关类型", + "添加网关": "添加网关", + "重新通电": "重新连接电源", + "指示灯": "指示灯", + "选择网关": "选择网关", + "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5G。请选择2.4G WiFi。", + "WiFi密码": "WiFi Passward", + "请输入WiFi密码": "输入WiFi密码", + "网关名称": "网关的名字", + "请输入网关名称": "输入网关名称", + "IP地址": "IP地址", + "子网掩码": "子网掩码", + "默认网关": "默认网关", + "自动获取DNS服务器地址": "自动获取DNS服务器地址", + "首选DNS": "首选DNS", + "备选DNS": "选择域名", + "不使用静态IP": "没有使用静态IP", + "使用静态IP": "使用静态IP", + "请输入IP地址": "输入IP地址", + "请输入子网掩码": "输入子网掩码", + "请输入默认网关": "输入默认网关", + "所有锁": "所有的锁", + "搜索所有类型的锁": "扫描所有类型的锁", + "门锁": "门锁", + "挂锁": "挂锁", + "保险箱锁": "安全锁", + "智能门禁": "智能访问控制", + "车位锁": "停车锁", + "摸亮触摸屏": "触摸任何键激活键盘", + "摸亮触摸屏,锁进入可添加状态,点击下一步": "请触摸任意键激活锁并将其置于配对模式。按下一个", + "附近的锁": "附近的锁", + "如需修改名字请重新命名,点击确定添加锁": "如果要更改名称,请重命名,单击“确定”添加锁定", + "添加锁时,手机必须在锁旁边": "添加锁时,手机必须在锁旁边", + "登录": "登录", + "注册": "注册", + "我已阅读并同意": "我读过并同意了", + "验证码": "代码", + "密码必须是8-20位,至少包括数字/字母/符号中的2种": "您的密码必须有8-20个字符,并包括至少两种类型的数字,字母和符号", + "手机": "电话", + "邮箱": "电子邮件", + "请输入邮箱": "输入你的电子邮箱", + "国家/地区": "国家/地区", + "你所在的国家/地区": "你的国家/地区", + "选择国家/地区": "选择您的国家或地区", + "获取验证码": "获取代码", + "商务合作": "业务", + "电脑网页版": "网络系统", + "酒店系统": "酒店系统", + "说明书网页版": "用户手册", + "高级功能": "先进的功能", + "记录保存": "记录保留", + "您可通过短信将密码、电子钥匙信息发给接收人。": "短信可用于向接收方发送密码和密钥信息。", + "您可通过邮件将密码、电子钥匙信息发给接收人。": "该电子邮件可用于发送密码和ekey信息给收件人。", + "购买实名认证提示": "开启该功能后,您需要使用指纹、人脸或账号密码打开APP, 3分钟内无需再次验证", + "请选择你希望的实名认证频次": "请选择您需要的实名认证频率", + "仅首次": "第一次", + "每日一次": "一天一次", + "每周一次": "一周一次", + "每月一次": "每月一次", + "当前状态": "当前的状态", + "试用中": "受审", + "高级功能权益内容": "先进的功能", + "短信模板": "短信模板", + "邮件模板": "电子邮件模板", + "发卡工具": "卡编码器", + "购买高级功能须知": "请注意", + "购买高级功能提示": "更高级的功能正在开发中,如果您需要,欢迎您根据锁的数量打开服务。高级功能只适用于您自己的锁。如果您是授权管理员,请联系该锁的顶级管理员开启该服务", + "免费体验": "免费试用", + "立即开通": "打开现在", + "购买短信": "买手机", + "购买邮件": "购买电子邮件", + "购买实名认证次数": "购买实名认证次数", + "开通高级功能": "启用高级功能", + "选择套餐": "选择包", + "支付方式": "付款方式", + "支付宝": "支付宝", + "去支付": "支付", + "你可以自己定义模版的内容,用于发送密码或电子钥匙信息给他人": "您可以自己定义消息。它用于向他人发送密码和密钥信息。", + "高级功能仅能用于你自己的锁": "高级功能只能应用于您自己的锁。", + "新建模板": "创造模板", + "类型": "类型", + "模版内容": "模板内容", + "预览": "预览", + "房间名": "房间", + "预计产生短信条数": "估计的消息段", + "功能开启后,已失效较长时间的密码、电子钥匙、卡、指纹等开锁权限将被隐藏,不在列表里显示。": "此功能允许您隐藏一段时间内无效的密码、密钥、卡片和指纹。", + "对于选中的这些锁,当用户用APP开锁时,他的手机需要是连网的,否则无法开锁": "用户的手机需要在线才能通过APP解锁这些选定的锁。", + "配置WiFi": "配置无线网络", + "请输入WiFi名字": "请输入Wifi名称", + "WiFi配网": "WiFi分布网络", + "胁迫卡": "压力卡片", + "员工是否有密码": "已经有了密码", + "员工是否有卡": "已经有卡了", + "员工是否有指纹": "已经设置指纹", + "获取钥匙": "得到关键", + "获取卡": "让卡", + "获取指纹": "得到指纹", + "安全验证": "身份验证", + "删除账号后,你的所有信息及相关记录都会从平台彻底删除,且不可恢复,是否删除?": "您的所有账户信息将从平台上永久删除,且无法恢复。要删除吗?", + "监控": "监控", + "视频日志": "视频日志", + "网关设备": "网关", + "开门器": "开门器", + "面容开锁": "脸解锁", + "开门方向设置": "开启方向集", + "电机功率设置": "MotorPower设置", + "开锁时是否需联网": "如果解锁时需要上网", + "选择要加入分组的锁": "选择要添加到该组的lockS", + "锁数量": "锁的数量", + "小米IOT平台": "小米物联网平台", + "面容开锁设置": "面部解锁设置", + "感应距离": "感应距离", + "防误开": "防止开错", + "防误开已关闭,关门后仍可使用面容开锁": "防止误开已关闭,关闭后仍可使用面锁", + "添加和使用面容开锁时": "解锁时添加并使用人脸", + "添加和使用面容开锁时提示": "\n1、请尽量保持单人在门前操作;\n2、请站在门锁前约0.5~0.8米,面向门锁;\n3. 请保持面部畅通,露出五官;\n4. 当人脸识别异常时,可以手动触摸数字键盘上的任意键重新启动人脸识别。", + "秒": "年代", + "请根据门锁实际情况,请谨慎选择电机功率:": "请根据门锁的实际情况仔细选择电机功率:", + "小功率:": "小功率:", + "耗电少": "更少的电力消耗", + "大功率": "高功率:", + "大功率提示": "如果锁舌在开锁时不能正常缩回,或需要驱动\n天地挂钩,建议选用大功率的。此时,功耗将为\n增加。", + "开门方向设置提示": "请慎重选择你家的开门方向(如果选错方向,将无法正常开门和关门):", + "左开": "打开了", + "右开": "开放的权利", + "判断方法:": "判断方法:", + "判断方法内容": "那人站在房子外面,面向大门。\n如果门的铰链或轴在左边,则门是开着的;\n如果门的铰链或轴在右边,则门是右开的。\n如果设置错误,将不能正常开门和关门。\n建议由安装或维护人员操作。", + "录像时段": "视频插槽", + "密码": "密码", + "卡": "卡片", + "指纹": "指纹", + "人脸": "脸", + "配件商城": "锁购物中心", + "公司名称": "公司名称", + "请输入公司名字": "输入公司名称", + "提示": "提示", + "是否删除?": "是否删除?", + "员工信息": "员工信息", + "员工": "工作人员", + "打卡方式无效": "不可用", + "中国": "中国", + "选择钥匙": "选择ekey", + "编辑": "编辑", + "无": "没有", + "有": "是的", + "请输入姓名": "请输入名称", + "获取人脸": "让脸", + "选择密码": "选择密码", + "选择卡": "选择卡", + "选择指纹": "选择指纹", + "选择人脸": "选择面对", + "员工是否有人脸": "员工是否有脸", + "同时删除员工钥匙": "删除他/她的密钥", + "删除": "删除", + "确定要删除员工吗?": "删除该员工", + "月统计": "每月统计数据", + "迟到": "晚些时候", + "早退": "早走", + "未打卡": "没有记录", + "钥匙将在": "此密钥将在", + "天后失效": "天(s)", + "电量更新时间:": "电池更新时间:", + "新增配件": "添加", + "钥匙不可用": "密钥不可用", + "正在开锁中...": "解锁……", + "你的钥匙": "你的关键", + "常开模式启动!长按闭锁": "开启模式启动!长按锁定", + "演示模式": "演示模式", + "请先同意用户协议及隐私政策": "请先同意本用户协议及隐私政策", + "用户协议": "用户条款", + "隐私政策": "隐私政策", + "注册成功": "注册成功", + "你所在的": "你入选了", + "手机号": "电话号码", + "忘记密码": "忘记了密码", + "重置成功": "重置成功", + "确定要退出吗?": "退出吗?", + "功能暂未开放": "功能尚未打开", + "设置成功": "设置成功", + "删除成功": "删除成功", + "单次": "一次性", + "永久": "永久", + "限时": "定时", + "自定义": "自定义", + "清空码": "擦除", + "循环": "反复出现的", + "工作日": "工作日", + "每日": "每天", + "周末": "周末", + "确定要删除吗?": "删除吗?", + "该锁的密码都将被删除": "此锁的所有密码将被删除", + "已过期": "无效的", + "该锁的电子钥匙都将被删除": "此锁的所有ekey都将被删除", + "同时删除其发送的所有钥匙,钥匙删除后不能恢复": "删除与此ekey关联的所有ekey。此步骤不可撤消!", + "删除钥匙会在用户APP连网后生效": "当用户的APP连接到网络时,eKey将被删除", + "有效时间": "有效的时间", + "接收者": "收件人", + "仅管理自己创建的用户": "只管理自己的用户", + "远程开锁": "远程解锁", + "请输入钥匙名称": "请输入密钥名称", + "修改成功": "修改成功", + "冻结": "冻结", + "解除冻结": "解冻", + "授权": "授权", + "取消授权": "取消授权", + "同时解冻其发送的钥匙": "解冻该用户发出的所有密钥", + "会在用户APP连网后生效": "当用户的APP连接到网络时,此密钥将被解冻", + "同时冻结其发送的钥匙": "冻结该用户颁发的所有密钥", + "冻结会在用户APP连网后生效": "当用户的APP连接到网络时,此ekey将被冻结", + "取消授权会在用户APP连网后生效": "当用户的APP连接到网络时,用户将失去其权限", + "授权用户拥有管理员的大部分权限,比如发送钥匙、发送密码": "授权用户具有与锁管理器几乎相同的权限(例如:发送密钥和密码的能力)", + "失效时间需晚于生效时间": "过期时间必须晚于有效时间", + "生效时间需晚于当前时间": "生效时间必须晚于当前时间", + "失效日期需晚于生效日期": "有效期必须晚于生效日期", + "修改有效期": "改变时间", + "生效日期": "开始日期", + "失效日期": "结束日期", + "开锁": "解锁", + "开锁成功": "解锁成功", + "请选择锁": "请选择锁", + "请选择接收者": "请选择接收方", + "请选择有效期": "请选择有效期限", + "请选择发送方式": "请选择发送方式", + "请选择结束时间": "请选择结束时间", + "完成": "完整的", + "有效日": "周期", + "发送成功": "发送成功", + "请选择开始时间": "请选择开始时间", + "选择用户": "选择收件人", + "已选中": "选择", + "确定": "确定", + "请选择要发送的锁": "请选择锁", + "人脸实名认证指的是用户在使用手机APP开锁时,需要先进行本人人脸验证,验证通过才能开锁。": "人脸实名认证是指用户在解锁手机APP前需要对自己的脸部进行验证,验证后即可解锁。", + "分享": "分享", + "请输入接收者账号": "请输入接收人账户", + "接收者号码未注册,请重新发送": "收件人号码未注册,请重新发送", + "是否发送电子钥匙给未注册账号": "您要发送密钥到新帐户吗", + "取消": "取消", + "标记成功": "标志着成功", + "微信好友": "微信的朋友", + "短信": "短信", + "邮件": "电子邮件", + "更多": "更多的", + "您好,您的电子钥匙生成成功": "您好,您的电子密钥生成成功", + "生效时间不能小于当前时间": "有效时间不能小于当前时间", + "结束时间不能小于当前时间": "结束时间不能小于当前时间", + "是否为管理员": "是管理员吗?", + "已连接到锁,请将卡靠近门锁的读卡区": "连接。将卡片贴在读卡器上", + "尝试连接设备...": "连接与锁。请稍等…", + "地理位置": "地理位置", + "检查以确保以下地址是正确的": "请检查以下地址是否正确", + "地图加载中,请稍候。。": "地图正在加载中,请稍等…", + "跳过": "跳过", + "还未获取到位置信息哦,请耐心等待一下!": "位置信息尚未获取,请耐心等待!", + "请填写信息": "请填写这些信息", + "有效期": "有效期", + "生效时间": "开始时间", + "失效时间": "结束时间", + "上传成功": "上传成功", + "未生效": "不活跃的", + "已生效": "有效的", + "指纹详情": "指纹信息", + "添加过程中,请根据提示,在指纹采集器上进行多次的抬起按压": "您将被要求将您的手指放在传感器几次。请按照提示……", + "开始添加": "开始", + "请将您的手指按下": "将手指放在传感器上", + "根据提示,抬起手指后再进行下一次指纹采集": "按照提示去做……您将需要将手指移到传感器上以进行下一个记录", + "添加成功": "添加成功", + "更新成功": "更新成功", + "搜索": "搜索", + "重置后,该锁的卡都将被删除哦,确认要重置吗?": "重置后,锁上的卡会被删除,您要重置吗?", + "已失效": "无效的", + "卡详情": "卡信息", + "请输入": "请在这里输入", + "关闭后,智能锁将设置为全天常开模式,直到手动关闭": "通过关闭,锁将保持解锁一整天,直到它被手动锁定", + "请输入小于或等于60的数字": "请输入一个小于60的数字", + "操作成功": "操作成功", + "管理员密码相同,无需修改": "管理员密码保持一致,无需修改", + "请输入6-9位数字": "长度为6 ~ 9位", + "请输入6-9位管理员密码": "请输入6-9位的管理员密码", + "请输入新的管理员密码": "请输入新的管理员密码", + "未分组": "未分组的", + "请输入分组名称": "创建组", + "创建成功": "创建成功", + "设置锁分组成功": "设置锁组成功", + "电池1电量": "电池1", + "电池2电量": "电池2", + "电量更新时间": "电池更新时间", + "锁电量更新成功": "锁定电源更新成功", + "您的钥匙未生效": "你的钥匙没用", + "您的钥匙已冻结": "你的钥匙被冻住了", + "您的钥匙已过期": "您的钥匙过期了", + "常开模式开启": "锁处于通道模式", + "超级管理员": "超级管理员", + "授权管理员": "使管理", + "普通用户": "普通用户", + "余": "平衡", + "天": "一天", + "删除锁后,所有信息都会一起删除,确定删除锁吗?": "删除锁后,所有信息将被一并删除,您确定要删除锁吗?", + "请输入登录密码": "请输入应用程式密码", + "删除设备失败,请确保在设备附近,设备未被连接,设备已打开": "删除设备失败,请确保设备在设备附近,设备未连接,设备已打开", + "用户无权限": "用户没有权限", + "创建公司后,考勤功能才能使用": "请先创建一个公司", + "是否删除钥匙?": "删除这个密钥?", + "邮箱绑定成功": "邮件绑定成功", + "手机绑定成功": "手机绑定成功", + "网络访问失败,请检查网络是否正常": "请求失败。网络不可用,请检查并连接到3G/4G/WIFI", + "清空": "清晰的", + "是否清空?": "清楚了吗?", + "消息详情": "消息信息", + "创建时间": "创建时间", + "管理员详情": "管理员详细信息", + "当被胁迫要求强行开锁时,使用胁迫卡会触发报警,报警信息会推送给管理员,该功能需要锁联网。": "如果有人强迫你开门,你可以用这张卡。告警信息将被发送给管理员。要使用此功能,请确保您的锁处于在线状态。", + "请不要将胁迫卡用于日常开锁": "请不要在日常使用中使用强制卡。", + "当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警信息会推送给管理员,该功能需要锁联网。": "如果有人强迫你开门,你可以用这个指纹。告警信息将被发送给管理员。要使用此功能,请确保您的锁处于在线状态。", + "请不要将胁迫指纹用于日常开锁": "请不要日常使用强制指纹。", + "创建公司": "创建一家公司", + "公司名称不能超过30个字符": "公司名称不能超过30个字符", + "公司名称不能小于6个字符": "公司名称不能少于6个字符", + "WIFI列表": "无线网络列表", + "刷新": "刷新", + "手动配网": "人工配电网", + "远距离": "长途", + "中距离": "中等距离", + "近距离": "短的距离", + "锁时间更新成功": "锁定时间更新成功", + "锁用户": "锁定用户", + "请选择常开日期": "请选择开放日期", + "结束时间不能小于开始时间哦": "结束时间不能小于开始时间", + "介绍": "我们的故事", + "个人信息收集清单": "个人信息收集清单", + "应用权限说明": "应用权限说明", + "第三方信息共享清单": "第三方信息共享列表", + "请选择您的位置": "请选择您的位置", + "请先选择位置": "请先选择位置", + "管理员密码": "管理员密码", + "如需修改,请输入新的管理员密码(6位),点击确定即可修改": "如果需要修改,请输入新的管理员密码(6位数字),单击“确定”进行修改", + "修改": "修改", + "网络摄像头": "相机", + "重命名": "重命名", + "分组下的锁将被移到未分组里": "组下的锁将移至未分组状态", + "编辑成功": "编辑成功", + "厂商": "制造商", + "型号": "模型", + "密码生成后,请在当日23:59前使用一次进行激活,否则过0点后未激活则失效。密码激活后,有效期内不限次数使用。": "密码生成后,请在当天23:59之前使用一次激活,否则0点后无效。密码激活后,在有效期内可以无限次使用。", + "密码生成后,请在当日23:59前使用,否则过0点后失效。清空码用于清空今天0点之前生成的所有密码。": "密码生成后,请在当天23:59前使用,否则0点后无效。清除码用于清除今天0点之前产生的所有密码。", + "密码生成后,请在当日23:59前使用,否则过0点后失效。": "密码生成后,请在当天23:59前使用,否则0点后无效。", + "清空密码底部提示": "密码有效期到清空当天23:59\n空内容1:当天0:00之前生成的所有密码(0:00之后生成的密码不受清除密码影响,可继续使用)\n空内容2:清空密码所有自定义密码(已使用和未使用)在使用后立即清空\n要完全清除所有密码,请使用“重置所有密码”功能", + "相机": "相机", + "相册": "照片", + "读写": "存储", + "定位": "位置", + "需要访问相机权限才能拍照上传文件例如头像上传": "需要使用摄像头拍照和上传文件,例如上传头像", + "需要访问相机权限才能使用相册图片上传文件上传头像": "使用相册图片上传文件和头像需要访问摄像头", + "需要访问读写权限才能使用本地图片上传头像": "使用本地映像上传头像需要具有读写权限", + "需要访问定位权限才能使用添加钥匙功能的位置信息": "使用add键功能需要访问位置信息", + "申请": "应用程序", + "权限": "许可", + "不允许": "不允许", + "允许": "允许", + "权限被拒绝": "没有权限", + "请手动在系统设置中开启": "请在系统设置中手动启用", + "权限以继续使用应用": "继续使用应用程序的权限。", + "去设置": "把它设置好", + "当前网络": "当前网络", + "位置信息": "位置信息", + "请输入wifi名称": "请输入wifi名称", + "虹膜": "虹膜", + "手掌": "棕榈", + "商城": "购物中心", + "我的": "我的", + "微信公众号推送": "微信公众账号", + "开启微信接收报警消息需要先关注斯凯智能锁微信公众号,请保存二维码并使用微信扫一扫设置": "打开微信接收报警信息,需先关注天凯智能锁微信公众账号,保存二维码后使用微信扫描设置", + "蓝牙": "蓝牙", + "需要访问蓝牙权限才能使用添加钥匙功能的位置信息": "使用add key功能的位置信息需要有蓝牙权限", + "请输入Email": "输入你的电子邮箱", + "请输入手机号": "输入您的电话号码", + "家人到家": "家人到家了", + "添加家人": "添加家庭成员", + "若锁没有联网,除电子钥匙外,密码、卡、指纹等开门提醒无法及时发送,请根据你的实际情况选择。": "如果锁具未联网,则无法及时发送密码、刷卡、指纹等开门方式的提醒。", + "消息提醒": "提醒", + "开门通知": "开始注意到", + "N天未开门": "N天没有开门", + "门未关好": "门没关", + "防拆报警": "防拆报警", + "低电量提醒": "电池电量过低", + "胁迫开门": "强行开门", + "有人按门铃": "有人按了门铃", + "有人出现在门口": "有人出现在门口", + "提醒方式": "提醒方法", + "开门方式": "开门法", + "请选择": "请选择", + "家人": "家庭成员", + "保存": "保存", + "APP推送": "应用推", + "管理员": "管理", + "未启用": "未启用", + "已启用": "启用", + "省电模式": "省电模式", + "逗留抓拍模式": "停留捕获模式", + "实时监控模式": "实时监控模式", + "自定义模式": "自定义模式", + "猫眼设置": "猫眼设置", + "猫眼工作模式": "猫眼工作方式", + "自动亮屏": "自动亮屏", + "亮屏持续时间": "屏幕准时", + "逗留警告": "保持警告", + "异常警告": "异常的警告", + "短信提醒": "短信", + "邮件提醒": "电子邮件", + "N天未开门提醒": "N天没有开门", + "当被胁迫要求强行开锁时,使用胁迫指纹会触发报警,报警消息会推送给管理员,该功能需要锁联网": "如果有人强迫你开锁,你可以用这个指纹。告警信息将被发送给管理员。要使用此功能,请确保您的锁处于在线状态。", + "胁迫指纹": "迫使指纹", + "指纹列表": "指纹列表", + "经过以上设定的时间,锁没有被开启,系统会给指定对象发送提醒消息,该功能需要锁联网": "在设定时间后,如果锁未打开,系统将发送提醒信息给指定的收件人。此功能要求锁连接到互联网。", + "打开提醒后,当锁电量低于20%、10%和5%,系统会给指定对象发送提醒消息。电量读取方式:网关读取或APP读取。": "开启提醒功能后,当锁定电池电量低于20%、10%和5%时,系统会向指定的接收人发送提醒信息。", + "未开门时间": "不开门的日子", + "添加和使用面容开锁时:": "解锁时添加和使用Face:", + "关锁": "关闭锁", + "功能": "函数", + "配件": "部分", + "云存": "云存储", + "本地": "本地", + "3天滚动储存": "3天滚动存储", + "去升级": "现在升级", + "下载列表": "下载列表", + "已下载": "下载", + "全部视频": "所有的视频", + "已为本设备免费提供3大滚动视频储存服务": "该设备已免费提供三次滚动视频存储服务", + "视频播放": "视频播放", + "全选": "所有", + "请选择要删除的视频": "请选择要删除的视频", + "请选择要下载的视频": "请选择您要下载的影片", + "欢迎使用": "欢迎使用", + "用户协议和隐私政策概要": "用户协议和隐私政策摘要", + "协议概要": "协议总结", + "感谢您使用本应用。我们非常重视您的个人信息和隐私保护,在使用本产品之前,请认真阅读": "感谢您使用此应用程序。我们非常重视您的个人信息和隐私保护。使用本产品前,请仔细阅读", + "《用户协议》": "用户条款", + "和": "和", + "《隐私政策》": "“私隐政策”", + "的全部内容。点击“同意”即表示您同意并接受全部条款。若选择不同意,将无法使用我们的产品和服务,并会退出应用。": "的全部内容。点击“同意”,即表示您同意并接受所有条款。如果您选择不同意,您将不能使用我们的产品和服务,并将退出应用程序。", + "不同意": "不同意", + "同意": "同意", + "该功能是高级功能,请开通后再使用": "这是高级功能。请先启用它。", + "常用程序": "常见的项目", + "该锁已被重置": "锁已重置", + "需要访问读写权限才能使用手动升级固件": "手动升级固件需要具有读写权限", + "错误D固件,请选择正确的文件": "固件错误,请选择正确的文件", + "非SYD固件,请选择正确的文件": "非SYD固件,请选择正确的文件", + "文件校验失败 0x01": "文件验证失败0x01", + "解析元数据失败,请选择正确的文件": "解析元数据失败,请选择正确的文件", + "文件校验失败 0x02": "文件校验失败0x02", + "文件校验失败 0x03": "文件验证失败0x03", + "固件升级完成": "固件升级完成", + "记录": "记录", + "开通高级功能后才可以对锁进行管理": "请先开启高级功能对锁进行管理。", + "去开通": "启用", + "实名认证": "实名认证", + "当前剩余数量": "剩下的", + "购买": "买", + "实名认证为付费功能,请购买后再使用": "实名认证为付费功能,请购买后使用", + "密码不一致哦": "密码不一致", + "退出添加": "退出添加", + "管理员已满": "管理全", + "用户已满": "用户已满", + "锁上面添加指纹已满": "添加指纹锁已满", + "指纹已存在": "指纹已经存在。", + "锁上面添加人脸已满": "上面加脸锁满了", + "人脸已存在": "脸已经存在了", + "锁上面添加卡已满": "以上加卡锁定已满", + "卡已存在": "卡已存在", + "锁上面添加密码已满": "上面的锁添加密码已满", + "密码已存在": "已经存在相同的密码。请选择一个不同的", + "请输入密码": "请输入密码", + "暂无密码,无需重置": "无需密码,无需重置", + "真实姓名": "的真实姓名", + "身份证号": "身份证号码", + "请输入真实姓名": "请输入您的真实姓名", + "请输入身份证号": "请输入您的身份证号", + "请输入身份证号和真实姓名": "请输入您的身份证号和真实姓名", + "点击返回设备配对": "轻按“返回设备配对”", + "无法连接?尝试升级": "不能连接?尝试升级", + "固件升级提示": "固件升级提示", + "请先获取固件文件到手机本地,再选择升级": "请先获取固件文件到本地,然后选择“升级”", + "固件升级中": "固件正在升级", + "取消升级": "取消升级", + "固件传输中": "传输中的固件", + "关闭": "关掉", + "传输中'": "在运输过程中", + "操作记录": "记录", + "修改姓名": "编辑的名字", + "传输中": "在运输过程中", + "发送人": "发行的", + "发送时间": "一次发布", + "钥匙详情": "ekey信息", + "姓名": "名字", + "发送": "发送", + "请确认姓名全名和身份证号码是否正确": "请确认全名和身份证号是否正确", + "传输期间请勿离开当前页面": "在传输过程中不离开当前页面", + "机型": "模型", + "硬件版本": "硬件版本", + "固件版本": "固件版本", + "手动升级": "手动升级", + "设备连接中...": "设备连接…", + "未避免异常情况,请在门打开时升级": "不可避免的例外,请在门打开时升级", + "钥匙无效": "密钥无效", + "操作失败,请确认锁是否在附近,或重启手机蓝牙后再试。": "无法连接到锁。请重新启动您的手机蓝牙,然后再试一次。", + "如果是全自动锁,请使屏幕变亮": "如果是全自动锁,请将屏幕调亮", + "正在尝试闭锁……": "试图锁定。请稍等…", + "清空记录": "清晰的记录", + "是否要删除操作记录?": "继续删除记录?", + "被删除的记录不能恢复": "记录删除后将无法恢复。", + "全部事件": "所有事件", + "开锁事件": "打开事件", + "异常事件": "异常事件", + "门铃事件": "门铃事件", + "视频事件": "视频事件", + "请开启蓝牙": "请打开蓝牙", + "请选择有效日": "请选择生效日期", + "公司名字长度不能小于 6 ": "公司名称的长度不能小于6", + "已是最新版本": "没有更新", + "一": "一个", + "二": "两个", + "三": "三个", + "四": "四个", + "五": "五个", + "六": "六个", + "日": "太阳", + "新建短信模版": "伟大的短信模板", + "新建邮件模版": "创建电子邮件模板", + "自定义短信模版": "短信模板", + "自定义邮件模版": "电子邮件模板", + "名称": "名字", + "星星锁": "星锁", + "无考勤记录": "没有记录", + "大家干劲十足": "每个人都及时到来", + "工作时长未出炉": "无工作时间", + "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "国家/地区的选择会影响数据安全。您目前已选择阿尔巴尼亚,请确认后再继续。", + "确认国家或地区": "确认国家/地区", + "我知道了": "明白了吗", + "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "要接收重要的更新,请点击“确定”并在设置中启用通知。", + "开启后,可通过长按锁上的设置键重新上电,用APP重新添加": "开机后,可以长按锁上的设置键重新开机,用APP重新添加", + "已有": "当前的", + "新增": "新", + "账号格式错误": "坏的格式", + "接收者信息为空": "收件人信息为空", + "请输入时间(秒)": "请输入时间(秒)", + "加载数据失败": "加载数据失败", + "重试": "再试一次", + "升级中,是否退出": "升级过程中,是否退出", + "下一步": "下一个", + "公寓": "公寓", + "个人用户": "个人", + "星寓": "明星的公寓", + "账号": "账户", + "请输入手机号或email": "电话号码或电邮地址", + "请输入星寓管理员的账号": "请输入星级公寓管理员账号", + "选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "所选锁的所有数据将永久传输给接收方。", + "暂不支持跨平台转移,敬请期待": "跨平台传输暂时不支持,敬请期待", + "移除坏锁": "移动故障/损坏的锁到垃圾桶", + "转移确认": "确认转让", + "本次共转移": "这次共", + "把智能锁": "智能锁", + "确认": "好吧", + "移除成功": "删除成功", + "转移成功": "转移成功", + "该已锁被删除": "被锁的被删除", + "授权管理员只能查看和管理自己下发的钥匙、密码等权限": "被授权的管理员只能管理自己创建的密码、密钥等。", + "添加授权管理员": "创建管理", + "导出记录": "出口记录", + "选择时间段": "选择时间段", + "导出": "出口", + "批量导出": "批量出口", + "读取记录": "刷新记录", + "手机需联网": "NeedNet", + "设备": "设备", + "消息": "消息", + "智能分析": "智能分析", + "精准识别设备事件,过滤无效信息": "准确识别设备事件,过滤掉无效信息", + "系统设置": "系统设置", + "系统的全局配置在此项内进行设置": "在此设置系统的全局配置", + "导出操作记录": "出口记录", + "立即查看": "视图", + "导出成功": "导出成功", + "发送钥匙": "发送ekey", + "进度": "率", + "失败": "失败的", + "人脸详情": "面对细节", + "感应到门前约1.5米有人时,将自动启动面部识别开锁。": "当感应到门前1.5米左右有人时,人脸识别解锁会自动启动。", + "感应到门前约0.8米有人时,将自动启动面部识别开锁。": "当感应到门前0.8米左右有人时,人脸识别解锁会自动启动。", + "感应到门前约0.5米有人时,将自动启动面部识别开锁。": "当感应到门前0.5米左右有人时,人脸识别解锁会自动启动。", + "感应距离已关闭,需手动触摸键盘任意键,进行面部识别开锁。": "感应距离已关闭,您需要手动触摸键盘上的任意键进行人脸识别解锁。", + "防误开已打开,开锁后": "防误开启已开启,解锁后", + "秒内不可使用面容开锁": "面部解锁不能在几秒钟内使用", + "掌静脉": "手掌静脉", + "添加掌静脉": "添加掌脉", + "胁迫掌静脉": "强迫掌静脉", + "请不要将胁迫掌静脉用于日常开锁": "请不要使用强制掌纹进行日常解锁", + "已连接到锁,请自然张开手掌,掌心正对摄像头": "接通锁后,请自然张开手掌,掌心正对摄像头", + "掌静脉详情": "手掌静脉细节", + "掌静脉号": "掌脉数", + "蓝牙未打开,请到设置里面打开蓝牙": "蓝牙未开启,请在设置中开启蓝牙", + "删除用户时,会将用户拥有的钥匙一起删除。": "如果用户被删除,与该用户关联的所有ekey也将被删除。", + "配置网络": "配置网络", + "你好": "你好", + "成功": "成功的", + "类型选择": "类型选择", + "请选择要使用哪种类型": "请选择要使用的类型", + "系统邮件(推荐)": "系统邮件(推荐)", + "系统短信(推荐)": "系统短信(推荐)", + "邮件将从软件平台直接发给用户,请根据需要在软件里购买邮件数量。": "邮件将从这个应用程序发送。请先购买邮件包。", + "短信将从软件平台直接发给用户,请根据需要在软件里购买短信数量。": "短信将从这个应用程序发送。请先购买电子邮件包。", + "个人邮件": "个人电子邮件", + "个人短信": "个人短信", + "邮件将从你的个人邮箱发给用户": "电子邮件将从您的个人电子邮件帐户发送。", + "短信将从你的个人手机号发给用户,费用由运营商从你的手机号扣除": "短信将从您的个人电话号码发送。你付钱给你的电信运营商。", + "为了更好地应用体验,请确定权限": "为了获得更好的应用体验,请确认权限", + "您第一次拒绝权限,请确定权限": "您是第一次拒绝权限,请确认权限", + "您第二次拒绝权限,请去应用设置开启权限": "您第二次拒绝了权限,请转到应用程序设置中启用权限", + "去应用市场": "去应用商店", + "温馨提示": "温馨提示", + "关闭应用": "关闭应用程序", + "开启微信接收报警消息需要先关注": "打开微信接收告警信息,需要执行以下操作", + "微信公众号,请保存二维码并使用微信扫一扫设置": "微信公众号,保存二维码,使用微信扫描设置", + "实名认证为付费功能,请联系锁的管理员购买后再使用": "实名认证为付费功能,请联系锁具管理员购买和使用", + "位置权限": "位置的许可", + "请开启位置权限,应用需要位置权限才可以完成智能锁和网关的蓝牙操作": "请允许应用程序使用您的位置。用于扫描BLE锁和网关。", + "相机/相册权限": "相机/相册权限", + "请开启本地存储权限,允许应用读写设备上的照片及文件": "请允许应用程序从存储中读取和写入照片和文件。", + "点击选择": "按此选择", + "微信": "微信", + "朋友圈": "时刻", + "QQ": "QQ", + "QQ空间": "时不时神光", + "微博": "微博", + "FaceBook": "脸谱网", + "链接": "链接", + "今天": "今天", + "密码错误": "无效的密码", + "网络中断": "网络中断", + "钥匙不存在": "键不存在", + "钥匙过期": "关键过期", + "钥匙已存在": "密钥已存在", + "密码失效": "密码无效", + "门锁时间异常": "门锁时间异常", + "APP(手机)未联网": "APP(手机)未连接互联网", + "数据不存在": "数据不存在", + "待接收": "BeReceived", + "已冻结": "冻", + "已删除": "删除", + "未知": "未知的", + "拖动下方滑块完成拼图": "将滑块拖动到正确的位置", + "验证成功": "验证成功", + "验证失败": "验证失败", + "向右拖动滑块填充拼图": "向右拖动滑块来填充拼图", + "请先获取到位置信息哦": "请先获取位置信息", + "请选择国家": "请选择国家", + "获取锁信息": "获取锁信息", + "锁数据异常,请重试": "锁数据异常,请重试", + "连接设备中...": "连接设备……", + "把锁": "锁", + "条": "带", + "封": "密封", + "次": "次", + "支付成功": "支付成功", + "查看详情": "查看详细信息", + "请输入模板名称": "请输入模板名称", + "模版类型": "类型", + "再返回一次退出": "再退出", + "请先添加锁": "请先加锁", + "可视对讲": "可视对讲系统", + "详细日志": "详细的日志", + "已复制到剪切板": "复制", + "拍照": "照片", + "从相册选择": "从相册中选择", + "选择问题": "请选择问题", + "确认长度不足8位": "确认长度小于8位", + "新密码长度不足8位": "新密码长度小于8位", + "两次密码不一致": "密码不匹配。请再试一次", + "请点击获取验证码,验证码将发送到": "请获取验证码。代码将被发送到", + "切换": "开关", + "验证": "验证", + "验证成功,账号已删除": "验证成功,帐户已删除", + "该密码不是自定义密码,无法修改": "该密码不是自定义密码,不能修改", + "请选择设备要关联哪些姓名": "请选择该设备应关联的名称", + "请选择姓名要关联哪些设备": "请选择该名称应关联的设备", + "确定要移除所选中的坏锁吗?": "拆下故障锁?", + "邮件通知": "通过电子邮件通知", + "短信通知": "短信通知", + "您好,您的授权管理员生成成功": "您好,您的授权管理员已成功生成", + "请输入接收者姓名": "请在这里输入", + "版本更新": "版本更新", + "下次再说": "下次", + "配网成功": "网络分销成功", + "配网失败": "网络分发失败", + "该锁的无线键盘都将被删除": "此锁的所有无线键盘将被删除", + "实时画面": "实时图片", + "适合门口较为安全的环境。": "适用于相对安全的门口环境。", + "仅发生特定事件才录像,并可查看实时画面。": "只记录特定的事件,可以查看实时画面。", + "一般情况下,满电可使用7-8个月": "正常情况下,充满电后可使用7-8个月", + "有人逗留或发生特定事件才录像,可随时查看": "有人停留或特定事件被记录下来,可以随时查看", + "实时画面。": "实时画面。", + "一般情况下,满电可使用5~6个月。": "正常情况下,充满电后可使用5~6个月。", + "适合门口人员复杂、较不安全的环境。": "适用于复杂且相对不安全的门口环境。", + "有人出现就录像,可随时查看实时画面。": "有人出现时进行记录,随时查看实时画面。", + "一般情况下,满电可使用2~4个月。": "正常情况下,充满电后可使用2~4个月。", + "根据您家门口实际情况设置录像和实时画面功能。": "根据门口的实际情况设置视频和实时图片功能。", + "可使用时长由具体设置决定。": "使用时间由具体设置决定。", + "查看": "视图", + "有人按门铃或发生": "有人按门铃或者", + "异常事件时": "异常事件", + "不录像": "没有视频", + "有人出现、按门铃": "有人出现,按了门铃", + "或发生异常事件时": "或者发生异常事件", + "逗留达到10秒": "停留10秒", + "约1.5米": "约1.5米", + "随时": "任何时候", + "立即录像": "立即记录", + "录像时机": "视频时间", + "有人出现时录像": "记录某人出现的时间", + "人体侦测距离": "人体探测距离", + "查看实时画面": "查看实时图片", + "自定义时间": "自定义时间", + "当日": "今天", + "次日": "第二天", + "自定义时段": "自定义时间段", + "发生事件时查看": "查看事件发生的时间", + "实时查看": "实时视图", + "有人在门口出现10秒后开始录像。": "有人在门口出现了10秒钟才开始录音。", + "有人按门铃时立即录像。": "当有人按门铃时,立即记录。", + "有人出现在门前1.5米范围时启动录像": "当有人出现在门前1.5米范围内时开始录制", + "约0.8米": "约0.8米", + "约3.0米": "约3.0米", + "添加指纹失败": "操作失败。", + "项": "项目", + "播放中": "玩", + "下载": "下载", + "暂无下载内容": "无下载内容", + "亮度": "亮度", + "音量": "体积", + "快进至": "快进到", + "快退至": "倒带,", + "暂无视频信息": "无视频信息", + "加载出错": "加载错误", + "请单人正对门锁,距离一个成年人手臂长度": "请独自站在门锁前,与门锁保持一臂的距离", + "(约0.6米)。": "(约0.6米)。", + "保持脸部无遮挡,露出五官。": "保持面部畅通,展示面部特征。", + "准备好了,开始添加": "准备好,开始添加", + "正在录入中...": "记录……", + "添加人脸失败": "添加脸失败", + "重置后,该锁的人脸都将被删除哦,确认要重置吗?": "重置后,锁的面将被删除。你确定要重置吗?", + "人脸号": "面对数量", + "虹膜详情": "虹膜的细节", + "虹膜号": "虹膜数量", + "选择设备类型": "选择设备类型", + "照明灯具": "照明灯具", + "电动窗帘": "电动窗帘", + "门窗传感器": "门窗传感器", + "传感器": "传感器", + "清除数据成功": "数据清除成功", + "1.锁没有联网,密码、IC卡、指纹等开门记录无法实时上传,可以点击右上角按钮,然后读取记录。": "锁具没有联网,无法实时上传密码、刷卡、指纹等开门方式的记录。", + "2.如果您需要保留历史记录,可以点击右上角按钮,然后导出记录": "如果需要保留历史记录,可以将历史记录导出。", + "看不到操作记录,可能原因有": "无法看到操作记录,可能原因", + "操作记录详情": "操作记录明细", + "操作时间": "操作时间", + "此模块功能需要锁联网后设置方可生效": "此模块功能需要在锁连接到互联网后进行设置才能生效", + "用户已存在": "用户已存在", + "钥匙数量已到上限": "键数已达到上限", + "附近没有可用网关": "附近没有可用的网关", + "正在创建安全连接...": "创建安全连接…", + "监视状态下不能发送录音": "监控模式下无法发送录音", + "挂断": "挂断电话", + "监视中暂不能开锁": "在监控期间不可解锁", + "长按说话": "长按说话", + "松开发送": "释放发送", + "请输入6位数字开锁密码": "请输入6位数的解锁密码", + "请输入开锁密码": "请输入解锁密码", + "接收者在有效期内可以不限次数使用": "收件人可在有效期内无限次使用电子密钥。", + "接收者可以使用此App开关锁": "收件人可以通过此应用程序锁定/解锁。", + "单次钥匙有效期为1小时,只能使用一次": "“一次性钥匙”有效期为一小时,只能使用一次。", + "接收者可以在有效期内的固定时间段里,不限次数使用": "收件人可以在固定的周期内无限次地使用密钥。", + "获取模板失败": "日志含义获取模板失败", + "微信通知": "微信通知", + "系统短信": "系统短信", + "系统邮件": "系统邮件", + "模板": "模板", + "新建模版": "创建模板", + "您好,您的密码是": "你好,你的密码是", + "密码名字": "密码的名字", + "请输入6-9位密码": "请输入6-9位的密码", + "设置密码": "设置密码", + "操作成功,密码为": "成功了。密码是", + "类型:自定义-永久": "类型:Custom-Permanent", + "实时播放": "实时播放", + "点击对讲": "点击对讲机", + "长按开锁": "长按解锁", + "接听失败": "没能回答", + "请在锁设置中开启远程开锁": "请在锁定设置中开启远程解锁", + "接听": "回答", + "截图已保存到相册": "截图保存到相册", + "添加遥控": "添加远程控制", + "已连接到锁,请按遥控": "连接上锁后,请按下遥控器", + "遥控号": "遥控号码", + "遥控详情": "遥控细节", + "照明": "照明", + "退出演示模式": "退出演示模式", + "提示:当前界面为展示界面,添加设备后才能继续使用": "提示:当前接口是显示接口。添加设备后,您可以继续使用设备", + "门已上锁": "门是锁着的", + "您的账号在异地登录,如非本人,请尽快修改密码": "您的帐户已用于从新设备登录", + "开门成功": "成功开门", + "开门失败": "没能打开门", + "呼叫提醒": "电话提醒", + "收到来自": "收到", + "锁的呼叫": "锁调用", + "加载数据中": "加载数据", + "搜索所有锁类型": "搜索所有锁类型", + "锁电量更新时间": "锁定电池更新时间", + "1月": "1月", + "2月": "2月", + "3月": "3月", + "4月": "4月", + "5月": "可以", + "6月": "小君", + "7月": "7月", + "8月": "8月", + "9月": "9月", + "10月": "10月", + "11月": "11月", + "12月": "12月", + "热门城市": "炎热的城市", + "导出锁数据": "导出锁数据", + "一键开锁": "一键解锁", + "已开通": "打开", + "英文": "英语", + "简体中文": "简体中文", + "繁体中文": "繁體中文", + "法语": "法语", + "俄语": "Русский", + "德语": "多伊奇", + "日语": "日本語", + "韩语": "嘻嘻哈哈", + "意大利语": "意大利语", + "乌克兰语": "Українська", + "葡萄牙语": "葡萄牙商业银行", + "西班牙语": "西班牙语", + "阿拉伯语": "العربية", + "越南语": "Tiếng Việt", + "马来语": "马来语", + "荷兰语": "荷兰语", + "罗马尼亚语": "罗马ă", + "立陶宛语": "Lietuvių", + "瑞典语": "瑞典语", + "爱沙尼亚语": "Eesti", + "波兰语": "波兰语", + "斯洛伐克语": "懒散的人č艾娜", + "捷克语": "Češ蒂娜", + "希腊语": "Ελληνικά", + "希伯来语": "עברית", + "塞尔维亚语": "Српски", + "土耳其语": "Turkce", + "匈牙利语": "马札尔人的", + "保加利亚语": "Български", + "哈萨克斯坦语": "Қазақ", + "孟加拉语": "বাংলা", + "克罗地亚语": "Hrvatski", + "泰语": "ไทย", + "印度尼西亚语": "印度尼西亚语", + "芬兰语": "芬兰语", + "丹麦语": "丹麦语", + "重置后,该锁的掌静脉都将被删除哦,确认要重置吗?": "重置后,锁上的掌骨静脉会被删除。你确定要重置吗?", + "在线": "在线", + "离线": "离线", + "购买记录": "购买记录", + "使用记录": "用户记录", + "失效时间要大于当前时间": "过期时间必须大于当前时间", + "修改名字": "编辑的名字", + "时": "小时", + "分": "一分钟", + "Amazon Alexa": "亚马逊Alexa", + "您可以使用Alexa进行开锁、闭锁和查看锁状态": "您可以使用Alexa解锁,锁定和检查锁定状态", + "支持的国家": "支持国家", + "支持的国家值": "美国、加拿大、英国、澳大利亚、印度、德国、法国、意大利、西班牙、日本", + "操作流程": "操作过程", + "操作流程值": "1通过智能锁APP添加锁和网关\n\n2在APP中开启该锁的远程开锁功能(默认关闭)。如果你没有这个选项,锁不支持Alexa\n\n3向Alexa添加技能,并使用智能锁APP的账号和密码进行授权。授权成功后,可以发现该帐号下的设备\n\n4在Alexa app中找到需要解锁的锁,打开语音解锁功能,设置语言密码\n\n5锁可通过Alexa操作", + "Google Home": "谷歌的家", + "Action name": "动作名称", + "ScienerSmart": "ScienerSmart", + "支持的语言": "支持的语言", + "英语": "英语", + "Google Home操作流程的值": "1. 通过智能锁APP添加锁和网关\n\n2. 在APP中开启锁的远程开锁功能(默认关闭)。如果没有这个选项,锁不支持谷歌Home\n\n3. 安装谷歌Home APP,点击左上角的“+”按钮\n\n4. 在“设置”页面,选择“使用谷歌”。\n\n5. 搜索“ScienerSmart”,使用智能锁APP账号和密码进行授权", + "密码需至少包含数字/字母/字符中的2种组合": "密码必须包含数字、字母和特殊字符中的至少2种", + "已开锁": "解锁", + "已闭锁": "锁着的", + "两次密码不一致哦": "密码不一致", + "中功率": "媒介权力", + "常规使用": "经常使用", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "待设备上电后,长按复位键5秒,指示灯交替闪烁后,单击“下一步”", + "扫描设备": "扫描设备", + "删除失败,网关可能已经离线,是否强制删除该数据?": "删除失败。网关可能已经脱机。是否要强制删除数据?" +} \ No newline at end of file diff --git a/lan/lan_hr.json b/lan/lan_hr.json index 32746830..0260ecaa 100644 --- a/lan/lan_hr.json +++ b/lan/lan_hr.json @@ -216,7 +216,6 @@ "添加网关": "Dodaj prolaz", "重新通电": "Poveži moć", "指示灯": "Svjetlo pokazatelja", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknite sljedeći kada svjetlo bljesno", "选择网关": "Izaberite prolaz", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G nije podržan, molimo odaberite WiFi od 2.4G.", "WiFi密码": "WiFi prolaz", @@ -250,13 +249,13 @@ "注册": "Prijavi", "我已阅读并同意": "Èitao sam i pristao", "验证码": "Kod", - "密码必须是8-20位,至少包括数字\/字母\/符号中的2种": "Vaša lozinka mora imati 8-20 znakova i sadržavati najmanje dvije vrste brojeva, slova i simbola", + "密码必须是8-20位,至少包括数字/字母/符号中的2种": "Vaša lozinka mora imati 8-20 znakova i sadržavati najmanje dvije vrste brojeva, slova i simbola", "手机": "Telefon:", "邮箱": "Emal", "请输入邮箱": "Unesite svoj email", - "国家\/地区": "Država\/Regija", - "你所在的国家\/地区": "Vaša zemlja\/regija", - "选择国家\/地区": "Odaberite svoju zemlju ili regiju.", + "国家/地区": "Država/Regija", + "你所在的国家/地区": "Vaša zemlja/regija", + "选择国家/地区": "Odaberite svoju zemlju ili regiju.", "获取验证码": "Dobavi kodu", "商务合作": "Posao", "电脑网页版": "Web sistem", @@ -518,7 +517,7 @@ "是否删除钥匙?": "Obriši ovaj ekey?", "邮箱绑定成功": "Uspeh koji se obavezuju e- pošta", "手机绑定成功": "Uspeh vezivanja mobilnih telefona", - "网络访问失败,请检查网络是否正常": "Zahtjev Neuspješno.Network nedostupna,Molim provjerite i spojite vaš uređaj na 3G\/4G\/WIFI", + "网络访问失败,请检查网络是否正常": "Zahtjev Neuspješno.Network nedostupna,Molim provjerite i spojite vaš uređaj na 3G/4G/WIFI", "清空": "_Očisti", "是否清空?": "Jasno?", "消息详情": "Informacije o poruku", @@ -742,8 +741,8 @@ "无考勤记录": "Nema zapisa", "大家干劲十足": "Svi dolaze na vrijeme.", "工作时长未出炉": "Nema radnog vremena", - "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "Izbor zemlje\/regije će utjecati na sigurnost podataka.Trenutno ste odabrali Albaniju, molimo potvrdite prije nastavka.", - "确认国家或地区": "Potvrdi državu\/regiju", + "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "Izbor zemlje/regije će utjecati na sigurnost podataka.Trenutno ste odabrali Albaniju, molimo potvrdite prije nastavka.", + "确认国家或地区": "Potvrdi državu/regiju", "我知道了": "Imam ga.", "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "Za primanje važnih ažuriranja, molimo kliknite 'OK' i omogućite obavijesti u postavkama.", "开启后,可通过长按锁上的设置键重新上电,用APP重新添加": "Nakon uključenja, možete ponovno uključiti pritisnuti tipku za postavljanje na bravi, i ponovno dodati s APP-om.", @@ -764,7 +763,7 @@ "请输入星寓管理员的账号": "Molimo unesite račun upravitelja zvjezdanog stana", "选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "Svi podaci odabranih brava bit će trajno preneseni primatelju.", "暂不支持跨平台转移,敬请期待": "Transfer preko platforme nije podržan za sada, molim vas da se radujete tome", - "移除坏锁": "Pomjeri neispravne\/oštećene brave u smeće", + "移除坏锁": "Pomjeri neispravne/oštećene brave u smeće", "转移确认": "Potvrdi prijenos.", "本次共转移": "Ovaj put ukupno.", "把智能锁": "Pametna brava", @@ -832,7 +831,7 @@ "实名认证为付费功能,请联系锁的管理员购买后再使用": "Autentifikacija stvarnih imena je plaćena funkcija, molimo kontaktirajte administratora za kupnju i korištenje.", "位置权限": "Dozvola za lokaciju", "请开启位置权限,应用需要位置权限才可以完成智能锁和网关的蓝牙操作": "Molimo odobrite aplikaciju za korištenje vašeg locacijana.Koristi se za skeniranje BLE brave i prolazi.", - "相机\/相册权限": "Dozvola kamere\/Album", + "相机/相册权限": "Dozvola kamere/Album", "请开启本地存储权限,允许应用读写设备上的照片及文件": "Molimo da odobrite aplikaciju za čitanje i pisanje fotografije i datoteke iz Skladišta.", "点击选择": "Kliknite za odabir", "微信": "WeChat", @@ -983,7 +982,7 @@ "请输入6位数字开锁密码": "Unesite 6-cifrenu otključavanju", "请输入开锁密码": "Unesite zaporku otključanje", "接收者在有效期内可以不限次数使用": "Primatelji mogu koristiti ekeys za neograničeno vrijeme u razdoblju valjanosti.", - "接收者可以使用此App开关锁": "Primatelj može zaključati\/otključati po ovoj aplikaciji.", + "接收者可以使用此App开关锁": "Primatelj može zaključati/otključati po ovoj aplikaciji.", "单次钥匙有效期为1小时,只能使用一次": "Jedanput ekey vrijedi jedan sat i može se koristiti samo jednom.", "接收者可以在有效期内的固定时间段里,不限次数使用": "Primatelji mogu koristiti ekeys za neograničeno vrijeme unutar fiksnog ciklusa vremena.", "获取模板失败": "Nisam uspio dobaviti šablon", @@ -1046,7 +1045,7 @@ "五": "Pet.", "六": "Šest.", "日": "Sunce", - "英文": "English", + "英文": "English", "简体中文": "简体中文", "繁体中文": "繁體中文", "法语": "Français", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Lozinka mora sadržavati najmanje 2 od sljedećih: brojeve, slova i posebne znakove", "已开锁": "Otključan", "已闭锁": "Zaključano", - "两次密码不一致哦": "Šifre nisu dosljedne" + "两次密码不一致哦": "Šifre nisu dosljedne", + "中功率": "Srednja snaga", + "常规使用": "Redovna upotreba", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nakon što se prolaz ukljuèi, pritisnite i zadržite dugme za reset 5 sekundi, i kliknite Sljedeća kada svjetlost indikatora izmijeniti", + "扫描设备": "Skeniraj uređaj", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Brisanje nije uspjelo. Prolaz je možda nestao. Želite li prisiliti brisati podatke?" } \ No newline at end of file diff --git a/lan/lan_hu.json b/lan/lan_hu.json index 8222336e..19496163 100644 --- a/lan/lan_hu.json +++ b/lan/lan_hu.json @@ -216,7 +216,6 @@ "添加网关": "Gateway hozzáadása", "重新通电": "Újra csatlakoztassa a hatalom", "指示灯": "Jelző fény", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Kattintson a tovább, ha a fény vaku felváltva", "选择网关": "Válaszd az átjárót", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g nem támogatott,. kérjük, válassza ki a wifi 2.4g.", "WiFi密码": "Wifi passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "A jelszónak a következők közül legalább 2 kell tartalmaznia: számok, betűk és speciális karakterek", "已开锁": "Unlocked", "已闭锁": "Locked", - "两次密码不一致哦": "A jelszavak nem következetesek" + "两次密码不一致哦": "A jelszavak nem következetesek", + "中功率": "Közepes teljesítmény", + "常规使用": "Rendszeres használat", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Miután az átjáró be van kapcsolva, nyomja meg és tartsa a reset gombot 5 másodpercig, és kattintson a következő gombra, amikor a jelző fény felváltva villog", + "扫描设备": "Beolvasási eszköz", + "删除失败,网关可能已经离线,是否强制删除该数据?": "A törlés nem sikerült. Az átjáró lehet, hogy offline lett. Szeretné kényszeríteni az adatok törlését?" } \ No newline at end of file diff --git a/lan/lan_id.json b/lan/lan_id.json index cba766f0..2ec41527 100644 --- a/lan/lan_id.json +++ b/lan/lan_id.json @@ -216,7 +216,6 @@ "添加网关": "Tambah Gateway", "重新通电": "Sambungkan kembali daya", "指示灯": "Lampu indikator", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klik berikutnya ketika lampu berkedip secara bersamaan", "选择网关": "Pilih Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G belum support Gan, silakan pilih WiFi 2.4G", "WiFi密码": "WiFi Pass", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Kata sandi harus berisi setidaknya 2 karakter berikut: angka, huruf, dan karakter khusus", "已开锁": "Tidak terkunci", "已闭锁": "Terkunci", - "两次密码不一致哦": "Kata sandi tidak konsisten" + "两次密码不一致哦": "Kata sandi tidak konsisten", + "中功率": "Kekuatan sedang", + "常规使用": "Penggunaan biasa", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Setelah gateway menyala, tekan dan tahan tombol reset selama 5 detik, dan klik berikutnya ketika lampu indikator berkedip secara bersamaan", + "扫描设备": "Perangkat Pindai", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Penghapusan gagal. Gateway mungkin telah offline. Ingin menghapus data?" } \ No newline at end of file diff --git a/lan/lan_it.json b/lan/lan_it.json index cecb00b1..faeda996 100644 --- a/lan/lan_it.json +++ b/lan/lan_it.json @@ -216,7 +216,6 @@ "添加网关": "Aggiungi gateway", "重新通电": "Ri collegare il potere", "指示灯": "Indicatore luminoso", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Clicca dopo quando la luce lampeggia alternativamente", "选择网关": "Scegli Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "Il 5G non è supportato, Si prega di selezionare un WiFi di 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "La password deve contenere almeno 2 dei seguenti: numeri, lettere e caratteri speciali", "已开锁": "Sbloccato", "已闭锁": "Bloccato", - "两次密码不一致哦": "Le password sono incoerenti" + "两次密码不一致哦": "Le password sono incoerenti", + "中功率": "Potenza media", + "常规使用": "Uso regolare", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Dopo aver acceso il gateway, tenere premuto il pulsante di ripristino per 5 secondi e fare clic su Avanti quando l'indicatore luminoso lampeggia alternativamente", + "扫描设备": "Dispositivo di scansione", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Eliminazione non riuscita. Il gateway potrebbe essere andato offline. Vuoi forzare l'eliminazione dei dati?" } \ No newline at end of file diff --git a/lan/lan_ja.json b/lan/lan_ja.json index ed7bc40f..4e1801c0 100644 --- a/lan/lan_ja.json +++ b/lan/lan_ja.json @@ -216,7 +216,6 @@ "添加网关": "ゲートウェイの追加", "重新通电": "力を接続して下さい", "指示灯": "インジケータライト", - "将网关重新通电,指示灯交替闪烁时点击下一步": "ライトが交互に点滅するときに次をクリックしてください", "选择网关": "ゲートウェイの選択", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5Gはサポートされていません。2.4GのWiFiを選択してください。", "WiFi密码": "WiFiの通路", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "パスワードには、数字、文字、特殊文字のうち少なくとも2つを含める必要があります。", "已开锁": "ロック解除", "已闭锁": "ロック済み", - "两次密码不一致哦": "パスワードが一致しない" + "两次密码不一致哦": "パスワードが一致しない", + "中功率": "ミディアムパワー", + "常规使用": "通常の使用", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "ゲートウェイの電源がオンになった後、リセットボタンを5秒間押し続け、インジケーターライトが交互に点滅したら [次へ] をクリックします。", + "扫描设备": "スキャン装置", + "删除失败,网关可能已经离线,是否强制删除该数据?": "削除に失敗しました。ゲートウェイがオフラインになった可能性があります。強制的にデータを削除しますか?" } \ No newline at end of file diff --git a/lan/lan_keys.json b/lan/lan_keys.json index 9724b0f1..1babbe1b 100755 --- a/lan/lan_keys.json +++ b/lan/lan_keys.json @@ -219,7 +219,7 @@ "添加网关": "添加网关", "重新通电": "重新通电", "指示灯": "指示灯", - "将网关重新通电,指示灯交替闪烁时点击下一步": "将网关重新通电,指示灯交替闪烁时点击下一步", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步", "选择网关": "选择网关", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置", "WiFi密码": "WiFi密码", @@ -1110,5 +1110,7 @@ "两次密码不一致哦": "两次密码不一致哦", "中功率": "中功率", - "常规使用": "常规使用" + "常规使用": "常规使用", + "扫描设备": "扫描设备", + "删除失败,网关可能已经离线,是否强制删除该数据?": "删除失败,网关可能已经离线,是否强制删除该数据?" } diff --git a/lan/lan_kk.json b/lan/lan_kk.json index 88a39f99..65b7b013 100644 --- a/lan/lan_kk.json +++ b/lan/lan_kk.json @@ -216,7 +216,6 @@ "添加网关": "Шлюзді қосу", "重新通电": "Қуатты қосылу", "指示灯": "Нұсқасы:", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Төменгі жарықты ауыстырғанда келесі басыңыз", "选择网关": "Шығыс таңдау", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G қолдауы жоқ.", "WiFi密码": "WiFi өту", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Парольді келесінің кемінде 2- кемде болу керек: сандар, әріптер мен арнаулы таңбалары", "已开锁": "Жүктеу", "已闭锁": "Бұғатталған", - "两次密码不一致哦": "Парольдер болмаған" + "两次密码不一致哦": "Парольдер болмаған", + "中功率": "Орташа қуары", + "常规使用": "Қалыпты қолданылсын", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Келесі періңізнен соң, ысырып тасымалдау батырмасын басып 5 секунд басыңыз, Индикаторның жарықты ауыстырғанда, келесі басыңыз", + "扫描设备": "Сканер құрылғысы", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Өшіру жаңылысы. Келесі жіберді. Деректерді өшіргіңіз келе ме?" } \ No newline at end of file diff --git a/lan/lan_ko.json b/lan/lan_ko.json index 6cd45c13..547c9091 100644 --- a/lan/lan_ko.json +++ b/lan/lan_ko.json @@ -216,7 +216,6 @@ "添加网关": "게이트웨이 추가", "重新通电": "전원을 다시 연결하십시오.", "指示灯": "표시등", - "将网关重新通电,指示灯交替闪烁时点击下一步": "빛이 번갈아 깜박일 때 다음을 클릭하십시오.", "选择网关": "게이트웨이 선택", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G 는 지원되지 않습니다. 2.4G 의 WiFi를 선택하십시오.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "암호에는 숫자, 문자 및 특수 문자 중 2 개 이상이 있어야합니다.", "已开锁": "잠금 해제", "已闭锁": "잠긴", - "两次密码不一致哦": "암호가 일치하지 않습니다." + "两次密码不一致哦": "암호가 일치하지 않습니다.", + "中功率": "중간 전력", + "常规使用": "정사이즈 사용", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "게이트웨이의 전원이 켜진 후 5 초 동안 리셋 버튼을 누르고 누르고 표시등이 번갈아 깜박이면 다음 을 클릭하십시오.", + "扫描设备": "스캔 장치", + "删除失败,网关可能已经离线,是否强制删除该数据?": "삭제가 실패했습니다. 게이트웨이가 오프라인 상태일 수 있다. 강제로 데이터 삭제를 하시겠습니까?" } \ No newline at end of file diff --git a/lan/lan_lt.json b/lan/lan_lt.json index b209b6dc..b986a3ed 100644 --- a/lan/lan_lt.json +++ b/lan/lan_lt.json @@ -216,7 +216,6 @@ "添加网关": "Pridėti vartai", "重新通电": "Vėl prijungti maitinimo", "指示灯": "Indikatoriaus šviesa", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Spustelėkite toliau, kai šviesos blykstė pakaitomis", "选择网关": "Pasirinkite vartai", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g nepalaikomas,. pasirinkite 2.4g wifi.", "WiFi密码": "Wifi passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Slaptažodyje turi būti bent 2 iš šių: skaičiai, raidės ir specialūs simboliai", "已开锁": "Atrakinta", "已闭锁": "Užrakinta", - "两次密码不一致哦": "Slaptažodžiai yra nenuoseklūs" + "两次密码不一致哦": "Slaptažodžiai yra nenuoseklūs", + "中功率": "Vidutinės galios", + "常规使用": "Reguliarus naudojimas", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Įjungus vartus, 5 sekundes paspauskite ir palaikykite reset mygtuką ir spustelėkite toliau, kai indikatoriaus lemputė mirksi pakaitomis.", + "扫描设备": "Nuskaitymo įrenginys", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Ištrynimas nepavyko. Vartai gali būti neprisijungę. Ar norite priversti ištrinti duomenis?" } \ No newline at end of file diff --git a/lan/lan_ms.json b/lan/lan_ms.json index 59e6ebe3..9adef58c 100644 --- a/lan/lan_ms.json +++ b/lan/lan_ms.json @@ -216,7 +216,6 @@ "添加网关": "Tambah pintu masuk", "重新通电": "Sambung semula kuasa", "指示灯": "Lampu penunjuk", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klik seterusnya apabila kilat cahaya bergantian", "选择网关": "Pilih Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G tidak disokong,. Sila pilih WiFi 2.4G.", "WiFi密码": "Laluan WiFi", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Kata laluan mesti mengandungi sekurang-kurangnya 2 daripada yang berikut: nombor, huruf, dan aksara khas", "已开锁": "Dikunci", "已闭锁": "Dikunci", - "两次密码不一致哦": "Kata laluan tidak konsisten" + "两次密码不一致哦": "Kata laluan tidak konsisten", + "中功率": "Kuasa sederhana", + "常规使用": "Penggunaan biasa", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Selepas pintu masuk dihidupkan, tekan dan tahan butang reset selama 5 saat, dan klik seterusnya apabila lampu penunjuk berkelip bergantian", + "扫描设备": "Imbas peranti", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Penghapusan gagal. Pintu masuk mungkin telah pergi di luar talian. Adakah anda mahu memaksa memadam data?" } \ No newline at end of file diff --git a/lan/lan_nl.json b/lan/lan_nl.json index e69eaa2e..1df7d3e7 100644 --- a/lan/lan_nl.json +++ b/lan/lan_nl.json @@ -216,7 +216,6 @@ "添加网关": "Gateway toevoegen", "重新通电": "Verbind de stroom opnieuw", "指示灯": "Indicatielampje", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klik op Volgende wanneer het lampje afwisselend knippert", "选择网关": "Gateway kiezen", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G wordt niet ondersteund. Selecteer een WiFi van 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Het wachtwoord moet ten minste 2 van de volgende bevatten: cijfers, letters en speciale tekens", "已开锁": "Ontgrendeld", "已闭锁": "Vergrendeld", - "两次密码不一致哦": "De wachtwoorden zijn inconsistent" + "两次密码不一致哦": "De wachtwoorden zijn inconsistent", + "中功率": "Middelgroot vermogen", + "常规使用": "Regelmatig gebruik", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Nadat de gateway is ingeschakeld, houdt u de resetknop 5 seconden ingedrukt en klikt u op Volgende wanneer het indicatielampje afwisselend knippert", + "扫描设备": "Scan apparaat", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Verwijdering is mislukt. De gateway is mogelijk offline gegaan. Wilt u de gegevens forceren verwijderen?" } \ No newline at end of file diff --git a/lan/lan_pl.json b/lan/lan_pl.json index 5102fc05..f0b2f14f 100644 --- a/lan/lan_pl.json +++ b/lan/lan_pl.json @@ -216,7 +216,6 @@ "添加网关": "Dodaj bramę", "重新通电": "Ponownie podłącz zasilanie", "指示灯": "Wskaźnik świetlny", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknij następny, gdy światło mignie na przemian", "选择网关": "Wybierz Bramę", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G nie jest obsługiwane, proszę wybrać WiFi 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Hasło musi zawierać co najmniej 2 z następujących elementów: cyfry, litery i znaki specjalne", "已开锁": "Odblokowany", "已闭锁": "Zamknięty", - "两次密码不一致哦": "Hasła są niespójne" + "两次密码不一致哦": "Hasła są niespójne", + "中功率": "Średnia moc", + "常规使用": "Regularne stosowanie", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po włączeniu bramy naciśnij i przytrzymaj przycisk resetowania przez 5 sekund i kliknij przycisk Dalej, gdy wskaźnik miga na przemian", + "扫描设备": "Urządzenie skanujące", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Usunięcie nie powiodło się. Brama mogła zostać wyłączona. Czy chcesz wymusić usunięcie danych?" } \ No newline at end of file diff --git a/lan/lan_pt.json b/lan/lan_pt.json index 85513033..8a12675b 100644 --- a/lan/lan_pt.json +++ b/lan/lan_pt.json @@ -216,7 +216,6 @@ "添加网关": "Adicionar Gateway", "重新通电": "Re Conecte o Poder", "指示灯": "Luz indicadora", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Clique próximo quando a luz piscar alternadamente", "选择网关": "Escolha o Gateway", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G não é suportado,. Por favor, selecione um WiFi de 2.4G.", "WiFi密码": "WiFi Passar", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "A senha deve conter pelo menos 2 dos seguintes elementos: números, letras e caracteres especiais.", "已开锁": "Desbloqueado", "已闭锁": "Trancado", - "两次密码不一致哦": "As senhas são inconsistentes" + "两次密码不一致哦": "As senhas são inconsistentes", + "中功率": "Potência média", + "常规使用": "Uso regular", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Depois que o gateway estiver ligado, pressione e segure o botão de reset por 5 segundos e clique em Next quando a luz indicadora pisca alternadamente", + "扫描设备": "Digitalizar dispositivo", + "删除失败,网关可能已经离线,是否强制删除该数据?": "A eliminação falhou. O gateway pode ter ficado offline. Você quer forçar a exclusão dos dados?" } \ No newline at end of file diff --git a/lan/lan_ro.json b/lan/lan_ro.json index ece286f7..8b3258b0 100644 --- a/lan/lan_ro.json +++ b/lan/lan_ro.json @@ -216,7 +216,6 @@ "添加网关": "Adaugă poartă", "重新通电": "Reconectează puterea", "指示灯": "Indicator de lumină", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Faceţi clic pe următorul când lumina aprinde alternativ.", "选择网关": "Alege port", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G nu este suportat.Vă rugăm să selectați un WiFi de 2.4G.", "WiFi密码": "WiFi PasswardComment", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Parola trebuie să conțină cel puțin 2 dintre următoarele: numere, litere și caractere speciale", "已开锁": "Deblocat", "已闭锁": "Blocat", - "两次密码不一致哦": "Parolele sunt inconsistente" + "两次密码不一致哦": "Parolele sunt inconsistente", + "中功率": "Putere medie", + "常规使用": "Utilizare regulată", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "După ce poarta este pornită, apăsați și țineți butonul de resetare timp de 5 secunde, și faceți clic pe Următor atunci când lumina indicatorului se aprinde alternativ.", + "扫描设备": "Dispozitiv de scanare", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Ștergerea a eșuat. Poarta poate s-a oprit. Doriți să forțați ștergerea datelor?" } \ No newline at end of file diff --git a/lan/lan_ru.json b/lan/lan_ru.json index 243bde8d..43aa4f45 100644 --- a/lan/lan_ru.json +++ b/lan/lan_ru.json @@ -216,7 +216,6 @@ "添加网关": "Добавить шлюз", "重新通电": "Re Подключите питание", "指示灯": "Световой индикатор", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Нажмите дальше, когда свет начнет попеременно мигать", "选择网关": "Выберите шлюз", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G не поддерживается. Выберите Wi-Fi 2,4G.", "WiFi密码": "WiFi Пассвард", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Пароль должен содержать не менее 2 из следующих символов: цифры, буквы и специальные символы.", "已开锁": "Разблокирован", "已闭锁": "Заперт", - "两次密码不一致哦": "Пароли являются несовместимыми" + "两次密码不一致哦": "Пароли являются несовместимыми", + "中功率": "Средняя мощность", + "常规使用": "Регулярное использование", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "После включения шлюза нажмите и удерживайте кнопку сброса в течение 5 секунд и нажмите «Далее», когда индикатор попеременно начнет мигать.", + "扫描设备": "Устройство сканирования", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Ошибка удаления. Возможно, шлюз ушел в автономный режим. Хотите ли вы принудительно удалить данные?" } \ No newline at end of file diff --git a/lan/lan_sk.json b/lan/lan_sk.json index 2a3b98fc..d7b46780 100644 --- a/lan/lan_sk.json +++ b/lan/lan_sk.json @@ -216,7 +216,6 @@ "添加网关": "Pridať bránu", "重新通电": "Re pripojiť napájanie", "指示灯": "Indikátorové svetlo", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknite na ďalšie, keď svetlo záblesk striedavo", "选择网关": "Vyberte bránu", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g nie je podporovaný,. vyberte wifi z 2.4g.", "WiFi密码": "Wifi passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovať najmenej 2 z nasledujúcich: čísla, písmená a špeciálne znaky", "已开锁": "Odomknuté", "已闭锁": "Uzamknutý", - "两次密码不一致哦": "Heslá sú nekonzistentné" + "两次密码不一致哦": "Heslá sú nekonzistentné", + "中功率": "Stredný výkon", + "常规使用": "Pravidelné použitie", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Po zapnutí brány stlačte a podržte tlačidlo reset po dobu 5 sekúnd a kliknite na ďalšie, keď indikátorové svetlo záblesky striedavo", + "扫描设备": "Skenovanie zariadenia", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Vymazanie sa nepodarilo. Brána môže ísť offline. Chcete vynútiť odstránenie údajov?" } \ No newline at end of file diff --git a/lan/lan_sr_cyrl.json b/lan/lan_sr_cyrl.json index 3f3ce7a2..eaf1375b 100644 --- a/lan/lan_sr_cyrl.json +++ b/lan/lan_sr_cyrl.json @@ -217,7 +217,6 @@ "添加网关": "Додај Гатеваи", "重新通电": "Поново прикључите напајање", "指示灯": "Индикаторска лампица", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Кликните следеће када светло трепери наизменично", "选择网关": "Изаберите Гатеваи", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G није подржан. Молимо Вас да изаберете ВиФи од 2.4G.", "WiFi密码": "Ви -Фи Пассвард", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Лозинка мора да садржи најмање 2 од следећег: бројеве, слова и специјалне знакове", "已开锁": "Откљуиана", "已闭锁": "Закљуиана", - "两次密码不一致哦": "Лозинке су недоследне" + "两次密码不一致哦": "Лозинке су недоследне", + "中功率": "Средња снага", + "常规使用": "Редовна употреба", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Након што је гатеваи укључен, притисните и држите дугме за ресетовање за 5 секунди, и кликните Следећи када индикатор трепери наизменично", + "扫描设备": "Уређај за скенирање", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Брисање није успело. Гатеваи је можда отишао ван мреже. Да ли желите да присилите брисање података?" } \ No newline at end of file diff --git a/lan/lan_sv.json b/lan/lan_sv.json index 6d194410..c284f4da 100644 --- a/lan/lan_sv.json +++ b/lan/lan_sv.json @@ -216,7 +216,6 @@ "添加网关": "Lägg till gatewe", "重新通电": "Uppkoppla kraften", "指示灯": "Indikator Ljus", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Klicka nästa när ljuset blinkar växelvist", "选择网关": "Välj gatewe", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G stöds inte, välj ett WiFi på 2.4G.", "WiFi密码": "WiFi Passward...", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Lösenordet måste innehålla minst två av följande: siffror, bokstäver och specialtecken.", "已开锁": "Olås", "已闭锁": "Låst", - "两次密码不一致哦": "Lösenord är inkonsekventa" + "两次密码不一致哦": "Lösenord är inkonsekventa", + "中功率": "Medelse", + "常规使用": "Regelbunden användning", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "När gateway är på, tryck och håll omställningsknappen i 5 sekunder, och klicka Nästa när indikatorljuset blinkar växelvist", + "扫描设备": "Söka enheter", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Borttagning misslyckades. Porten kan ha gått offline. Vill du tvinga bort data?" } \ No newline at end of file diff --git a/lan/lan_th.json b/lan/lan_th.json index d91c70d6..73c491b8 100644 --- a/lan/lan_th.json +++ b/lan/lan_th.json @@ -216,7 +216,6 @@ "添加网关": "เพิ่มเกตเวย์", "重新通电": "เชื่อมต่อพลังงานอีกครั้ง", "指示灯": "ไฟแสดงสถานะ", - "将网关重新通电,指示灯交替闪烁时点击下一步": "คลิกถัดไปเมื่อไฟกะพริบสลับกัน", "选择网关": "เลือกเกตเวย์", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "ไม่รองรับ5G ครับรบกวนเลือก WIFI 2.4G นะครับ", "WiFi密码": "WIFI passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "รหัสผ่านต้องมีอย่างน้อย2รายการต่อไปนี้: ตัวเลขตัวอักษรและอักขระพิเศษ", "已开锁": "ปลดล็อคแล้ว", "已闭锁": "ล็อคล็อคได้", - "两次密码不一致哦": "รหัสผ่านไม่สอดคล้องกัน" + "两次密码不一致哦": "รหัสผ่านไม่สอดคล้องกัน", + "中功率": "กำลังไฟปานกลาง", + "常规使用": "ใช้เป็นประจำ", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "หลังจากเปิดเกตเวย์แล้วให้กดปุ่มรีเซ็ตค้างไว้5วินาทีและคลิกถัดไปเมื่อไฟแสดงสถานะกะพริบสลับกัน", + "扫描设备": "อุปกรณ์สแกน", + "删除失败,网关可能已经离线,是否强制删除该数据?": "การลบล้มเหลวเกตเวย์อาจออฟไลน์ไปแล้วคุณต้องการบังคับให้ลบข้อมูลหรือไม่?" } \ No newline at end of file diff --git a/lan/lan_tr.json b/lan/lan_tr.json index 7179ecd8..ee69bc05 100644 --- a/lan/lan_tr.json +++ b/lan/lan_tr.json @@ -216,7 +216,6 @@ "添加网关": "Ağ geçidi ekle", "重新通电": "Gücü tekrar bağlayın", "指示灯": "Gösterge ışığı", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Işık dönüşümlü olarak yanıp söndüğünde İleri'ye tıklayın", "选择网关": "Ağ geçidini seç", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5g desteklenmiyor. lütfen 2.4g wifi seçin.", "WiFi密码": "Wifi geçidi", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Şifre aşağıdakilerden en az 2 tane içermelidir: sayılar, harfler ve özel karakterler", "已开锁": "Unlocked", "已闭锁": "Kilitli", - "两次密码不一致哦": "Şifreler tutarsız" + "两次密码不一致哦": "Şifreler tutarsız", + "中功率": "Orta güç", + "常规使用": "Düzenli kullanım", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Ağ geçidi açıldıktan sonra, sıfırlama düğmesine 5 saniye basılı tutun ve gösterge ışığı dönüşümlü olarak yanıp söndüğünde İleri'ye tıklayın.", + "扫描设备": "Tarama cihazı", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Silme başarısız oldu. Ağ geçidi çevrimdışı geçmiş olabilir. Verileri silmeye zorlamak ister misiniz?" } \ No newline at end of file diff --git a/lan/lan_tw.json b/lan/lan_tw.json index 3fc83d0f..5e2e0575 100644 --- a/lan/lan_tw.json +++ b/lan/lan_tw.json @@ -216,7 +216,6 @@ "添加网关": "添加網關", "重新通电": "重新連接電源", "指示灯": "指示燈", - "将网关重新通电,指示灯交替闪烁时点击下一步": "當燈光交替閃爍時,單擊 「下一步」", "选择网关": "選擇網關", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5g,請選擇2.4的WiFi。", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "密碼必須至少包含以下兩項: 數字、字母和特殊字符", "已开锁": "已解鎖", "已闭锁": "已鎖定", - "两次密码不一致哦": "密碼不一致" + "两次密码不一致哦": "密碼不一致", + "中功率": "媒介權力", + "常规使用": "經常使用", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "網關通電後,按住reset按鈕5秒鐘,當指示燈交替閃爍時單擊Next", + "扫描设备": "掃描設備", + "删除失败,网关可能已经离线,是否强制删除该数据?": "刪除失敗。 網關可能已脫機。 是否要強制刪除數據?" } \ No newline at end of file diff --git a/lan/lan_uk.json b/lan/lan_uk.json index 07815037..239316e6 100644 --- a/lan/lan_uk.json +++ b/lan/lan_uk.json @@ -217,7 +217,6 @@ "添加网关": "Додати шлюз", "重新通电": "Повторно підключіть живлення", "指示灯": "Світловий індикатор", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Натисніть далі, коли індикатор почне блимати по черзі", "选择网关": "Виберіть шлюз", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "5G не підтримується,. Будь ласка, виберіть Wi-Fi 2.4G.", "WiFi密码": "WiFi Passward", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Пароль повинен містити не менше 2 з наступних: цифри, букви та спеціальні символи", "已开锁": "Розблокована", "已闭锁": "Заблокований", - "两次密码不一致哦": "Паролі несумісні" + "两次密码不一致哦": "Паролі несумісні", + "中功率": "Середня потужність", + "常规使用": "Регулярне використання", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Після ввімкнення шлюзу натисніть і утримуйте кнопку скидання протягом 5 секунд, а потім натисніть «Далі», коли індикатор почне блимати по черзі", + "扫描设备": "Сканування пристрою", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Видалення не вдалося. Можливо, шлюз перейшов в автономний режим. Ви хочете примусово видалити дані?" } \ No newline at end of file diff --git a/lan/lan_vi.json b/lan/lan_vi.json index 4a1f6831..c39b0f23 100644 --- a/lan/lan_vi.json +++ b/lan/lan_vi.json @@ -216,7 +216,6 @@ "添加网关": "Thêm cổng", "重新通电": "Kết nối lại nguồn điện", "指示灯": "Đèn báo", - "将网关重新通电,指示灯交替闪烁时点击下一步": "Nhấp vào tiếp theo khi đèn nhấp nháy xen kẽ", "选择网关": "Chọn cổng", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "Không hỗ trợ 5g ạ. Vui lòng chọn Wifi 2.4G.", "WiFi密码": "Wifi chuyển tiếp", @@ -1106,5 +1105,10 @@ "密码需至少包含数字/字母/字符中的2种组合": "Mật khẩu phải chứa ít nhất 2 trong số những điều sau: số, chữ cái và ký tự đặc biệt", "已开锁": "Đã mở khóa", "已闭锁": "Khóa", - "两次密码不一致哦": "Mật khẩu không nhất quán" + "两次密码不一致哦": "Mật khẩu không nhất quán", + "中功率": "Công suất trung bình", + "常规使用": "Sử dụng thường xuyên", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "Sau khi cổng được bật, Nhấn và giữ nút đặt lại trong 5 giây và Nhấp vào tiếp theo khi đèn báo nhấp nháy luân phiên", + "扫描设备": "Thiết bị quét", + "删除失败,网关可能已经离线,是否强制删除该数据?": "Xóa thất bại. Cổng có thể đã tắt. Bạn có muốn buộc xóa dữ liệu không?" } \ No newline at end of file diff --git a/lan/lan_zh.json b/lan/lan_zh.json index a315ffb4..a293b024 100755 --- a/lan/lan_zh.json +++ b/lan/lan_zh.json @@ -218,7 +218,7 @@ "添加网关": "添加网关", "重新通电": "重新通电", "指示灯": "指示灯", - "将网关重新通电,指示灯交替闪烁时点击下一步": "将网关重新通电,指示灯交替闪烁时点击下一步", + "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步", "选择网关": "选择网关", "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络,请选择2.4G WiFi网络进行配置", "WiFi密码": "WiFi密码", @@ -1110,6 +1110,7 @@ "两次密码不一致哦": "两次密码不一致哦", "中功率": "中功率", - "常规使用": "常规使用" - + "常规使用": "常规使用", + "扫描设备": "扫描设备", + "删除失败,网关可能已经离线,是否强制删除该数据?": "删除失败,网关可能已经离线,是否强制删除该数据?" } diff --git a/lib/app.dart b/lib/app.dart index 2ecca8cc..d4ae7596 100755 --- a/lib/app.dart +++ b/lib/app.dart @@ -3,12 +3,14 @@ import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/blue/blue_manage.dart'; import 'package:star_lock/flavors.dart'; import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/tools/app_manager.dart'; import 'package:star_lock/tools/bindings/app_binding.dart'; +import 'package:star_lock/tools/change_language_format.dart'; import 'package:star_lock/tools/storage.dart'; import 'package:star_lock/translations/app_dept.dart'; @@ -57,30 +59,40 @@ class _MyAppState extends State with WidgetsBindingObserver, BaseWidget { GlobalCupertinoLocalizations.delegate, GlobalWidgetsLocalizations.delegate, ], + // localeResolutionCallback用于在启动时动态确定应该使用哪种语言和地区。 localeResolutionCallback: (Locale? locale, Iterable supportedLocales) { - if (!supportedLocales.contains(locale)) { - final int idx = appSupportedLocales.indexWhere((Locale element) => - element.languageCode == locale!.languageCode); - if (idx != -1) { - locale = appSupportedLocales[idx]; + if (widget.isLogin) { + // 登录之后调用存储的语言 + if (StoreService.to.getLanguageCode()!.isNotEmpty) { + locale = appDept.deptSupportedLocales + .where((Locale element) => + element.toString() == StoreService.to.getLanguageCode()) + .first; } else { - locale = Get.locale; + // 如果没储存则调用系统的语言 + locale = Get.deviceLocale; } + } else { + // 没登录之前调用系统的语言 + locale = Get.deviceLocale; } - AppManager().setLanCode( - code: '${locale!.languageCode}_${locale.countryCode}'); - // AppLog.log('1111locale:$locale'); - return locale; + locale = ChangeLanguageFormat.convertLocale(locale!); + return supportedLocales.contains(locale) + ? locale + : supportedLocales.first; }, + // 用来指定应用当前使用的语言和地区。它定义了应用在启动时加载的默认语言环境。 locale: StoreService.to.getLanguageCode()!.isNotEmpty ? appDept.deptSupportedLocales .where((Locale element) => - element.languageCode == StoreService.to.getLanguageCode()) + element.languageCode.toString() == + StoreService.to.getLanguageCode()) .first : Get.deviceLocale, // locale: Get.deviceLocale, - fallbackLocale: Get.locale, + // fallbackLocale用于指定在无法找到匹配的语言时,应用应该使用的默认语言和地区。 + fallbackLocale: Get.deviceLocale, theme: ThemeData( scaffoldBackgroundColor: const Color(0xFFF6F6F6), backgroundColor: const Color(0xFFF6F6F6), diff --git a/lib/blue/blue_manage.dart b/lib/blue/blue_manage.dart index f04ac16a..eea8f7bc 100755 --- a/lib/blue/blue_manage.dart +++ b/lib/blue/blue_manage.dart @@ -754,6 +754,7 @@ class BlueManage { Future stopScan() async { try { await FlutterBluePlus.stopScan(); + AppLog.log('调用停止扫描成功'); } catch (e) { AppLog.log('停止扫描失败'); } diff --git a/lib/login/login/starLock_login_logic.dart b/lib/login/login/starLock_login_logic.dart index fdd944c3..c7e64334 100755 --- a/lib/login/login/starLock_login_logic.dart +++ b/lib/login/login/starLock_login_logic.dart @@ -76,7 +76,7 @@ class StarLockLoginLogic extends BaseGetXController { Future checkIpAction() async { final CheckIPEntity entity = await ApiRepository.to.checkIpAction(ip: ''); if (entity.errorCode!.codeIsSuccessful) { - if (state.countryName.value == entity.data!.name) { + if (state.countryName == entity.data!.name) { ShowTipView().showSureAlertDialog( '国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续'.tr, tipTitle: '确认国家或地区'.tr, diff --git a/lib/login/login/starLock_login_page.dart b/lib/login/login/starLock_login_page.dart index 42f00b78..59da733a 100755 --- a/lib/login/login/starLock_login_page.dart +++ b/lib/login/login/starLock_login_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -48,8 +47,8 @@ class _StarLockLoginPageState extends State { haveBack: false, backgroundColor: AppColors.mainColor, actionsList: [ - IconButton( - onPressed: (){ + IconButton( + onPressed: () { WechatManageTool.getAppInfo(CustomerTool.openCustomerService); }, icon: const Icon( @@ -84,15 +83,14 @@ class _StarLockLoginPageState extends State { width: 110.w, height: 110.w))), SizedBox(height: 50.w), Obx(() => CommonItem( - leftTitel: - '你所在的国家/地区'.tr, + leftTitel: '你所在的国家/地区'.tr, rightTitle: '', isHaveLine: true, isPadding: false, isHaveRightWidget: true, isHaveDirection: true, rightWidget: Text( - '${state.countryName.value} +${state.countryCode.value}', + '${state.countryName} +${state.countryCode.value}', textAlign: TextAlign.end, style: TextStyle( fontSize: 22.sp, color: AppColors.darkGrayTextColor), @@ -103,7 +101,7 @@ class _StarLockLoginPageState extends State { if (result != null) { result as Map; state.countryCode.value = result['code']; - state.countryName.value = result['countryName']; + state.countryKey = result['countryName']; logic.checkIpAction(); } }, @@ -123,7 +121,7 @@ class _StarLockLoginPageState extends State { height: 36.w, ), ), - hintText:'请输入手机号或者邮箱'.tr, + hintText: '请输入手机号或者邮箱'.tr, // keyboardType: TextInputType.number, inputFormatters: [ // FilteringTextInputFormatter.allow(RegExp('[0-9]')), @@ -185,8 +183,7 @@ class _StarLockLoginPageState extends State { WidgetSpan( alignment: PlaceholderAlignment.middle, child: GestureDetector( - child: Text( - '《${'用户协议'.tr}》', + child: Text('《${'用户协议'.tr}》', style: TextStyle( color: AppColors.mainColor, fontSize: 20.sp)), @@ -201,8 +198,7 @@ class _StarLockLoginPageState extends State { WidgetSpan( alignment: PlaceholderAlignment.middle, child: GestureDetector( - child: Text( - '《${'隐私政策'.tr}》', + child: Text('《${'隐私政策'.tr}》', style: TextStyle( color: AppColors.mainColor, fontSize: 20.sp)), @@ -246,8 +242,7 @@ class _StarLockLoginPageState extends State { height: 50.h, // color: Colors.red, child: Center( - child: Text( - '${'忘记密码'.tr}?', + child: Text('${'忘记密码'.tr}?', style: TextStyle( fontSize: 22.sp, color: AppColors.mainColor)), ), diff --git a/lib/login/login/starLock_login_state.dart b/lib/login/login/starLock_login_state.dart index 2e8b1f15..6edb1563 100755 --- a/lib/login/login/starLock_login_state.dart +++ b/lib/login/login/starLock_login_state.dart @@ -10,7 +10,10 @@ class StarLockLoginState { RxBool agree = false.obs; RxString countryCode = '86'.obs; - RxString countryName = '中国'.tr.obs; + RxString countryKey = '中国'.tr.obs; + + /// 获取翻译后的国家名称 + String get countryName => countryKey.value.tr; RxString emailOrPhone = ''.obs; RxString pwd = ''.obs; diff --git a/lib/login/login/starLock_login_xhj_page.dart b/lib/login/login/starLock_login_xhj_page.dart index 7e05b386..76e06922 100755 --- a/lib/login/login/starLock_login_xhj_page.dart +++ b/lib/login/login/starLock_login_xhj_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -65,8 +64,9 @@ class _StarLockLoginPageState extends State { ), ), IconButton( - onPressed: (){ - WechatManageTool.getAppInfo(CustomerTool.openCustomerService); + onPressed: () { + WechatManageTool.getAppInfo( + CustomerTool.openCustomerService); }, icon: Icon( Icons.support_agent, @@ -82,7 +82,7 @@ class _StarLockLoginPageState extends State { if (result != null) { result as Map; state.countryCode.value = result['code']; - state.countryName.value = result['countryName']; + state.countryKey.value = result['countryName']; logic.checkIpAction(); } }, @@ -104,7 +104,7 @@ class _StarLockLoginPageState extends State { ), Obx(() { return Text( - '${state.countryName.value} +${state.countryCode.value}', + '${state.countryName} +${state.countryCode.value}', style: TextStyle( fontSize: 22.sp, color: AppColors.mainColor), @@ -327,7 +327,8 @@ class _StarLockLoginPageState extends State { Widget _buildBottomAgreement() { return Container( width: 1.sw, - padding: EdgeInsets.only(left: 40.w, bottom:30.w, right: 40.w, top: 40.h), + padding: + EdgeInsets.only(left: 40.w, bottom: 30.w, right: 40.w, top: 40.h), child: Wrap( // mainAxisAlignment: MainAxisAlignment.start, children: [ @@ -351,40 +352,32 @@ class _StarLockLoginPageState extends State { width: 20.w, height: 20.w, ), - ) - )), + ))), SizedBox( width: 10.w, ), Text( - '我已阅读并同意'.tr, - style: - TextStyle(color: const Color(0xff333333), fontSize: 20.sp), + '我已阅读并同意'.tr, + style: TextStyle(color: const Color(0xff333333), fontSize: 20.sp), ), GestureDetector( - child: Text( - '《${'用户协议'.tr}》', - style: TextStyle( - color: AppColors.mainColor, fontSize: 20.sp)), + child: Text('《${'用户协议'.tr}》', + style: TextStyle(color: AppColors.mainColor, fontSize: 20.sp)), onTap: () { - Get.toNamed(Routers.webviewShowPage, - arguments: { - 'url': XSConstantMacro.userAgreementURL, - 'title': '用户协议'.tr - }); + Get.toNamed(Routers.webviewShowPage, arguments: { + 'url': XSConstantMacro.userAgreementURL, + 'title': '用户协议'.tr + }); }, ), GestureDetector( - child: Text( - '《${'隐私政策'.tr}》', - style: TextStyle( - color: AppColors.mainColor, fontSize: 20.sp)), + child: Text('《${'隐私政策'.tr}》', + style: TextStyle(color: AppColors.mainColor, fontSize: 20.sp)), onTap: () { - Get.toNamed(Routers.webviewShowPage, - arguments: { - 'url': XSConstantMacro.privacyPolicyURL, - 'title': '隐私政策'.tr - }); + Get.toNamed(Routers.webviewShowPage, arguments: { + 'url': XSConstantMacro.privacyPolicyURL, + 'title': '隐私政策'.tr + }); }, ) diff --git a/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart b/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart index ae8fe185..426ddef6 100755 --- a/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart +++ b/lib/mine/addLock/nearbyLock/nearbyLock_logic.dart @@ -206,7 +206,7 @@ class NearbyLockLogic extends BaseGetXController { state.lockInfo['serialNum0'] = serialNum0Str; // state.lockInfo["serialNum0"] = "${DateTime.now().millisecondsSinceEpoch ~/ 10}"; index = index + 16; - AppLog.log('厂商序列号 serialNum0Str:${serialNum0Str.length}'); + AppLog.log('厂商序列号 serialNum0Str:$serialNum0Str'); // 成品商序列号 final List serialNum1 = reply.data.sublist(index, index + 16); diff --git a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_logic.dart b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_logic.dart index b0e2ffbb..2f8f208e 100644 --- a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_logic.dart +++ b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_logic.dart @@ -24,7 +24,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController { Future gatewayDistributionNetwork() async { final LoginEntity entity = await ApiRepository.to .gatewayDistributionNetwork( - gatewayName: state.gatewayNamePasswardTF.text, + gatewayName: state.gatewayNameTF.text, gatewayMac: state.gatewayModel.mac, serialNumber: state.gatewayModel.serialNum, gatewayType: 2, @@ -104,6 +104,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController { default: //失败 dismissEasyLoading(); + cancelBlueConnetctToastTimer(); showToast('配网失败'.tr); break; } @@ -123,7 +124,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController { return; } - if (state.gatewayNamePasswardTF.text.isEmpty) { + if (state.gatewayNameTF.text.isEmpty) { showToast('请输入网关名称'.tr); return; } diff --git a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart index c733ddd2..02433378 100755 --- a/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart +++ b/lib/mine/gateway/addGateway/gatewayConfigurationWifi/gatewayConfigurationWifi_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -21,9 +20,12 @@ class GatewayConfigurationWifiPage extends StatefulWidget { _GatewayConfigurationWifiPageState(); } -class _GatewayConfigurationWifiPageState extends State with RouteAware { - final GatewayConfigurationWifiLogic logic = Get.put(GatewayConfigurationWifiLogic()); - final GatewayConfigurationWifiState state = Get.find().state; +class _GatewayConfigurationWifiPageState + extends State with RouteAware { + final GatewayConfigurationWifiLogic logic = + Get.put(GatewayConfigurationWifiLogic()); + final GatewayConfigurationWifiState state = + Get.find().state; @override Widget build(BuildContext context) { @@ -53,16 +55,13 @@ class _GatewayConfigurationWifiPageState extends State macList = reply.data.sublist(index, index + 20); @@ -95,6 +98,7 @@ class SelectGatewayListLogic extends BaseGetXController { void startScanBlueList() { BlueManage().startScan(2000, DeviceType.gateway, (List list) { + AppLog.log('ScanResultList:$list'); state.devices.clear(); for (int i = 0; i < list.length; i++) { final ScanResult device = list[i]; @@ -110,9 +114,9 @@ class SelectGatewayListLogic extends BaseGetXController { }); } - void stopScanBlueList() { + Future stopScanBlueList() async { // BlueManage().disconnect(); - BlueManage().stopScan(); + await BlueManage().stopScan(); } void blueDisconnect() { @@ -162,9 +166,9 @@ class SelectGatewayListLogic extends BaseGetXController { dismissEasyLoading(); }); BlueManage().blueSendData(device.advertisementData.advName, - (BluetoothConnectionState state) async { + (BluetoothConnectionState bluetoothConnectionState) async { // AppLog.log('点击要添加的设备了'); - if (state == BluetoothConnectionState.connected) { + if (bluetoothConnectionState == BluetoothConnectionState.connected) { dismissEasyLoading(); // 没有网关调试,做假数据调试 @@ -194,6 +198,8 @@ class SelectGatewayListLogic extends BaseGetXController { @override void onReady() { super.onReady(); + + AppLog.log('扫描网关列表 onReadyonReady被调用了'); getNearByLimits(); } diff --git a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_page.dart b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_page.dart index e3ad0791..e05dc70e 100755 --- a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_page.dart +++ b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_page.dart @@ -4,6 +4,7 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/tools/noData.dart'; import '../../../../appRouters.dart'; @@ -57,6 +58,7 @@ class _SelectGatewayListPageState extends State itemBuilder: (BuildContext c, int index) { final ScanResult device = state.devices[index]; return _selectGatewayListListItem(device, () { + state.currentDevice = device; logic.connect(device); }); })), @@ -162,19 +164,22 @@ class _SelectGatewayListPageState extends State /// 返回上一个界面 当前界面即将消失 @override - void didPop() { + Future didPop() async { super.didPop(); EasyLoading.isShow ? EasyLoading.dismiss() : null; logic.cancelBlueConnetctToastTimer(); logic.blueDisconnect(); - logic.stopScanBlueList(); + await Future.delayed(Duration(milliseconds: 500)); + await logic.stopScanBlueList(); + AppLog.log('停止网关列表 didPop被调用了'); } /// 从下级返回 当前界面即将出现 @override void didPopNext() { super.didPopNext(); + AppLog.log('扫描网关列表 didPopNext被调用了'); logic.blueDisconnect(); logic.startScanBlueList(); } diff --git a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_state.dart b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_state.dart index 1721d940..f66a0940 100644 --- a/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_state.dart +++ b/lib/mine/gateway/addGateway/selectGateway/selectGatewayList_state.dart @@ -1,9 +1,9 @@ - import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:get/get.dart'; -class SelectGatewayListState{ +class SelectGatewayListState { RxList devices = [].obs; RxBool ifCurrentScreen = true.obs; // 是否是当前界面,用于判断是否需要针对当前界面进行展示 -} \ No newline at end of file + ScanResult? currentDevice; +} diff --git a/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart b/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart index 88dfdf78..6626f63f 100755 --- a/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart +++ b/lib/mine/gateway/addGateway/selectGatewayTypeNextTip/selectGatewayTypeNextTip_page.dart @@ -53,7 +53,7 @@ class _SelectGatewayTypeNextTipPageState padding: EdgeInsets.all(20.w), child: Center( child: Text( - '将网关重新通电,指示灯交替闪烁时点击下一步'.tr, + '网关通电后,长按重置按钮5秒,指示灯交替闪烁时点击下一步'.tr, textAlign: TextAlign.center, style: TextStyle(fontSize: 18.sp), ))), diff --git a/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_logic.dart b/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_logic.dart index 9b11979d..d670c100 100644 --- a/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_logic.dart +++ b/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_logic.dart @@ -1,6 +1,6 @@ - import 'package:star_lock/tools/baseGetXController.dart'; +import '../../../login/login/entity/LoginEntity.dart'; import '../../../network/api_repository.dart'; import 'gatewayConnectionLockList_entity.dart'; import 'gatewayConnectionLockList_state.dart'; @@ -9,20 +9,28 @@ class GatewayConnectionLockListLogic extends BaseGetXController { GatewayConnectionLockListState state = GatewayConnectionLockListState(); // 网关-附近的锁 - Future gatewayConnectionLockListDataRequest() async { - final GatewayConnectionLockListEntity entity = await ApiRepository.to.gatewayConnectionLockLoadData( - gatewayId:state.gatewayId.value - ); + Future + gatewayConnectionLockListDataRequest() async { + final GatewayConnectionLockListEntity entity = await ApiRepository.to + .gatewayConnectionLockLoadData(gatewayId: state.gatewayId.value); if (entity.errorCode!.codeIsSuccessful) { state.itemDataList.value = entity.data!.list!; } return entity; } + Future gatewayScanDevice() async { + final LoginEntity entity = await ApiRepository.to + .gatewayScanDevice(gatewayId: state.gatewayId.value); + if (entity.errorCode!.codeIsSuccessful) { + gatewayConnectionLockListDataRequest(); + } + } + @override void onReady() { super.onReady(); gatewayConnectionLockListDataRequest(); } -} \ No newline at end of file +} diff --git a/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart b/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart index 7f6f67aa..803d8baa 100755 --- a/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart +++ b/lib/mine/gateway/gatewayConnectionLock/gatewayConnectionLockList_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; @@ -14,21 +13,31 @@ class GatewayConnectionLockListPage extends StatefulWidget { const GatewayConnectionLockListPage({Key? key}) : super(key: key); @override - State createState() => _GatewayConnectionLockListPageState(); + State createState() => + _GatewayConnectionLockListPageState(); } -class _GatewayConnectionLockListPageState extends State { - final GatewayConnectionLockListLogic logic = Get.put(GatewayConnectionLockListLogic()); - final GatewayConnectionLockListState state = Get.find().state; +class _GatewayConnectionLockListPageState + extends State { + final GatewayConnectionLockListLogic logic = + Get.put(GatewayConnectionLockListLogic()); + final GatewayConnectionLockListState state = + Get.find().state; @override Widget build(BuildContext context) { return Scaffold( backgroundColor: AppColors.mainBackgroundColor, appBar: TitleAppBar( - barTitle: '网关'.tr, - haveBack:true, - backgroundColor: AppColors.mainColor + barTitle: '网关'.tr, + haveBack: true, + backgroundColor: AppColors.mainColor, + actionsList: [ + TextButton( + onPressed: logic.gatewayScanDevice, + child: Text('扫描设备'.tr, + style: TextStyle(color: Colors.white, fontSize: 22.sp))) + ], ), body: Column( children: [ @@ -36,41 +45,51 @@ class _GatewayConnectionLockListPageState extends State Expanded( - child: - state.itemDataList.value.isNotEmpty ? - ListView.builder( - itemCount:10, - itemBuilder: (BuildContext c, int index){ - final GatewayConnectionLockItemEntity entity = state.itemDataList[index]; - return _gatewayConnectionLockListItem('images/mine/icon_mine_gatewaySignal_prompt.png', entity.lockAlias ?? '', '信号强'.tr,(){ - // Navigator.pushNamed(context, Routers.gatewayDetailPage); - }); - } - ):NoData(), - )) + child: state.itemDataList.value.isNotEmpty + ? ListView.builder( + itemCount: 10, + itemBuilder: (BuildContext c, int index) { + final GatewayConnectionLockItemEntity entity = + state.itemDataList[index]; + return _gatewayConnectionLockListItem( + 'images/mine/icon_mine_gatewaySignal_prompt.png', + entity.lockAlias ?? '', + '信号强'.tr, () { + // Navigator.pushNamed(context, Routers.gatewayDetailPage); + }); + }) + : NoData(), + )) ], ), ); } - Widget _gatewayConnectionLockListItem(String lockTypeIcon, String gateWayName, String signalStrength, Function() action){ + Widget _gatewayConnectionLockListItem(String lockTypeIcon, String gateWayName, + String signalStrength, Function() action) { return GestureDetector( onTap: action, child: Container( // height: 100.h, margin: const EdgeInsets.only(bottom: 2), - padding: EdgeInsets.only(left: 15.w, right: 20.w, top: 15.h, bottom: 15.h), - decoration: BoxDecoration( + padding: + EdgeInsets.only(left: 15.w, right: 20.w, top: 15.h, bottom: 15.h), + decoration: BoxDecoration( color: Colors.white, borderRadius: BorderRadius.circular(10.w), ), child: Row( children: [ - Image.asset(lockTypeIcon, width: 70.w, height: 70.w,), - SizedBox(width: 20.w,), + Image.asset( + lockTypeIcon, + width: 70.w, + height: 70.w, + ), + SizedBox( + width: 20.w, + ), Expanded( child: Column( mainAxisAlignment: MainAxisAlignment.center, @@ -78,24 +97,35 @@ class _GatewayConnectionLockListPageState extends State[ - Text(gateWayName, style: TextStyle(fontSize: 24.sp, fontWeight: FontWeight.w500)), + Text(gateWayName, + style: TextStyle( + fontSize: 24.sp, fontWeight: FontWeight.w500)), ], ), - SizedBox(height:5.h), + SizedBox(height: 5.h), Row( mainAxisAlignment: MainAxisAlignment.start, children: [ - Image.asset('images/mine/icon_mine_gatewaySignal_strong.png', width: 30.w, height: 30.w,), - SizedBox(width: 10.w,), - Text(signalStrength, style: TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w500), ), + Image.asset( + 'images/mine/icon_mine_gatewaySignal_strong.png', + width: 30.w, + height: 30.w, + ), + SizedBox( + width: 10.w, + ), + Text( + signalStrength, + style: TextStyle( + fontSize: 22.sp, fontWeight: FontWeight.w500), + ), ], ), - SizedBox(width:20.h), + SizedBox(width: 20.h), ], ), ), - SizedBox(width:20.h), - + SizedBox(width: 20.h), ], ), ), diff --git a/lib/mine/gateway/gatewayDetail/gatewayDetail_logic.dart b/lib/mine/gateway/gatewayDetail/gatewayDetail_logic.dart index c869839f..5ea251f0 100644 --- a/lib/mine/gateway/gatewayDetail/gatewayDetail_logic.dart +++ b/lib/mine/gateway/gatewayDetail/gatewayDetail_logic.dart @@ -1,36 +1,38 @@ - import 'package:get/get.dart'; import 'package:star_lock/tools/baseGetXController.dart'; import '../../../login/login/entity/LoginEntity.dart'; import '../../../network/api_repository.dart'; +import '../../../tools/showTipView.dart'; import 'gatewayDetail_state.dart'; -class GatewayDetailLogic extends BaseGetXController{ +class GatewayDetailLogic extends BaseGetXController { GatewayDetailState state = GatewayDetailState(); - Future deletGateway() async{ + Future deletGateway(int isForce) async { final LoginEntity entity = await ApiRepository.to.gatewayDelet( - gatewayId: state.getewayItemData.value.gatewayId ?? 0, - ); - if(entity.errorCode!.codeIsSuccessful){ - showToast('删除成功'.tr, something:(){ + gatewayId: state.getewayItemData.value.gatewayId ?? 0, + isForce: isForce); + if (entity.errorCode!.codeIsSuccessful) { + showToast('删除成功'.tr, something: () { // eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value)); Get.back(); }); + } else if (entity.errorCode! == 10005) { + ShowTipView().showIosTipWithContentDialog( + '是否要强制删除?(强制删除后,网关要初始化才能被添加)'.tr, () => deletGateway(1)); } } - Future updateGateway(String gatewayName) async{ + Future updateGateway(String gatewayName) async { final LoginEntity entity = await ApiRepository.to.gatewayUpdate( gatewayId: state.getewayItemData.value.gatewayId ?? 0, - gatewayName:gatewayName - ); - if(entity.errorCode!.codeIsSuccessful){ - showToast('修改成功'.tr, something:(){ + gatewayName: gatewayName); + if (entity.errorCode!.codeIsSuccessful) { + showToast('修改成功'.tr, something: () { // eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value)); Get.back(); }); } } -} \ No newline at end of file +} diff --git a/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart b/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart index 14cf2138..1c1a19d6 100755 --- a/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart +++ b/lib/mine/gateway/gatewayDetail/gatewayDetail_page.dart @@ -1,4 +1,3 @@ - import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -24,7 +23,7 @@ class GatewayDetailPage extends StatefulWidget { class _GatewayDetailPageState extends State { final GatewayDetailLogic logic = Get.put(GatewayDetailLogic()); final GatewayDetailState state = Get.find().state; - + @override Widget build(BuildContext context) { return Scaffold( @@ -34,77 +33,81 @@ class _GatewayDetailPageState extends State { haveBack: true, backgroundColor: AppColors.mainColor), body: Obx(() => ListView( - children: [ - CommonItem( - leftTitel: '名称'.tr, - rightTitle: state.getewayItemData.value.gatewayName, - isHaveLine: true, - isHaveDirection: true, - action: () { - ShowTipView().showTFViewAlertDialog( - state.changeGatewayNameController, - '请输入姓名'.tr, - '请输入姓名'.tr, () { - if (state.changeGatewayNameController.text.isEmpty) { - logic.showToast('请输入姓名'.tr); - return; - } - Get.back(); - logic.updateGateway(state.changeGatewayNameController.text); - }, inputFormatters: [ - FilteringTextInputFormatter.deny('\n'), - LengthLimitingTextInputFormatter(50), - ]); - }), - CommonItem( - leftTitel: '状态'.tr, - rightTitle: state.getewayItemData.value.isOnline == 1 ? '在线'.tr : '离线'.tr, - isHaveLine: true, - isHaveDirection: false), - CommonItem( - leftTitel: 'WiFi名称'.tr, - rightTitle: state.getewayItemData.value.networkName, - isHaveLine: true, - isHaveDirection: false), - CommonItem( - leftTitel: '网络MAC'.tr, - rightTitle: state.getewayItemData.value.gatewayMac, - isHaveLine: false, - isHaveDirection: false), - SizedBox( - height: 10.h, - ), - CommonItem( - leftTitel: '附近的锁'.tr, - rightTitle: state.getewayItemData.value.lockNum.toString(), - isHaveLine: true, - isHaveDirection: true, - action: () { - Get.toNamed(Routers.gatewayConnectionLockPage, arguments: { - 'gatewayId':state.getewayItemData.value.gatewayId ?? 0 - }); - }), - // CommonItem( - // leftTitel: '网关升级'.tr, - // rightTitle: '', - // isHaveLine: false, - // isHaveDirection: true, - // action: () {}), - SizedBox( - height: 80.h, - ), - SubmitBtn( - btnName: '删除'.tr, - isDelete: true, - borderRadius: 20.w, - fontSize: 32.sp, - margin: EdgeInsets.only(left: 30.w, right: 30.w), - padding: EdgeInsets.only(top: 15.w, bottom: 15.w), - onClick: () { - ShowTipView().showIosTipWithContentDialog('确定要删除吗?'.tr, logic.deletGateway); - }), - ], - )), + children: [ + CommonItem( + leftTitel: '名称'.tr, + rightTitle: state.getewayItemData.value.gatewayName, + isHaveLine: true, + isHaveDirection: true, + action: () { + ShowTipView().showTFViewAlertDialog( + state.changeGatewayNameController, + '请输入姓名'.tr, + '请输入姓名'.tr, () { + if (state.changeGatewayNameController.text.isEmpty) { + logic.showToast('请输入姓名'.tr); + return; + } + Get.back(); + logic.updateGateway( + state.changeGatewayNameController.text); + }, inputFormatters: [ + FilteringTextInputFormatter.deny('\n'), + LengthLimitingTextInputFormatter(50), + ]); + }), + CommonItem( + leftTitel: '状态'.tr, + rightTitle: state.getewayItemData.value.isOnline == 1 + ? '在线'.tr + : '离线'.tr, + isHaveLine: true, + isHaveDirection: false), + CommonItem( + leftTitel: 'WiFi名称'.tr, + rightTitle: state.getewayItemData.value.networkName, + isHaveLine: true, + isHaveDirection: false), + CommonItem( + leftTitel: '网络MAC'.tr, + rightTitle: state.getewayItemData.value.gatewayMac, + isHaveLine: false, + isHaveDirection: false), + SizedBox( + height: 10.h, + ), + CommonItem( + leftTitel: '附近的锁'.tr, + // rightTitle: state.getewayItemData.value.lockNum.toString(), + isHaveLine: true, + isHaveDirection: true, + action: () { + Get.toNamed(Routers.gatewayConnectionLockPage, arguments: { + 'gatewayId': state.getewayItemData.value.gatewayId ?? 0 + }); + }), + // CommonItem( + // leftTitel: '网关升级'.tr, + // rightTitle: '', + // isHaveLine: false, + // isHaveDirection: true, + // action: () {}), + SizedBox( + height: 80.h, + ), + SubmitBtn( + btnName: '删除'.tr, + isDelete: true, + borderRadius: 20.w, + fontSize: 32.sp, + margin: EdgeInsets.only(left: 30.w, right: 30.w), + padding: EdgeInsets.only(top: 15.w, bottom: 15.w), + onClick: () { + ShowTipView().showIosTipWithContentDialog( + '确定要删除吗?'.tr, () => logic.deletGateway(0)); + }), + ], + )), ); } } diff --git a/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart b/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart index d572d0cd..573b04f5 100755 --- a/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart +++ b/lib/mine/mineMultiLanguage/mineMultiLanguage_state.dart @@ -1,4 +1,3 @@ - import 'dart:ui'; import 'package:get/get.dart'; import 'package:star_lock/app_settings/app_settings.dart'; @@ -7,7 +6,6 @@ import '../../tools/store_service.dart'; import '../../translations/app_dept.dart'; class MineMultiLanguageState { - MineMultiLanguageState() { resetLan(); } @@ -21,6 +19,6 @@ class MineMultiLanguageState { Future resetLan() async { currentLanguageType.value = ExtensionLanguageType.fromLocale(Get.locale!); // AppLog.log('currentLanguageType.value:${currentLanguageType.value} Get.locale!.languageCode:${Get.locale!.languageCode} languages:$languages'); - await StoreService.to.saveLanguageCode(Get.locale!.languageCode); + await StoreService.to.saveLanguageCode(Get.locale!.toString()); } -} \ No newline at end of file +} diff --git a/lib/mine/mineSet/mineSet/mineSet_logic.dart b/lib/mine/mineSet/mineSet/mineSet_logic.dart index 5cbcee65..7f3f7fad 100755 --- a/lib/mine/mineSet/mineSet/mineSet_logic.dart +++ b/lib/mine/mineSet/mineSet/mineSet_logic.dart @@ -20,6 +20,7 @@ import '../../../../tools/baseGetXController.dart'; import '../../../app_settings/app_settings.dart'; import '../../../blue/blue_manage.dart'; import '../../../talk/udp/udp_help.dart'; +import '../../../tools/change_language_format.dart'; import '../../../tools/dateTool.dart'; import '../../../tools/eventBusEventManage.dart'; import '../../../tools/store_service.dart'; @@ -189,14 +190,15 @@ class MineSetLogic extends BaseGetXController { } String _getCurrentLanguage() { - String? languageCode = StoreService.to.getLanguageCode(); - // AppLog.log('languageCode: $languageCode'); - if (languageCode!.isEmpty) { - languageCode = Get.locale!.languageCode; + String? language = StoreService.to.getLanguageCode(); + AppLog.log('language: $language Get.locale!: ${Get.locale!}'); + if (language!.isEmpty) { + language = ChangeLanguageFormat.convertLocale(Get.locale!).toString(); } + AppLog.log('language: $language'); final String currentLanguage = ExtensionLanguageType.fromLocale(appDept .deptSupportedLocales - .where((Locale element) => element.languageCode == languageCode) + .where((Locale element) => element.toString() == language) .first) .lanTitle; return currentLanguage; diff --git a/lib/mine/mineSet/mineSet/mineSet_state.dart b/lib/mine/mineSet/mineSet/mineSet_state.dart index 629773bb..d4e18272 100755 --- a/lib/mine/mineSet/mineSet/mineSet_state.dart +++ b/lib/mine/mineSet/mineSet/mineSet_state.dart @@ -14,9 +14,9 @@ class MineSetState { RxString qrCodeUrl = ''.obs; //二维码地址 RxString qrCodeText = ''.obs; //二维码提示语 - var lockScreen = 2.obs; //锁屏 - var hideExpiredAccessFlag = 2.obs; //隐藏无效开锁 - var currentLanguage = "".obs; //隐藏无效开锁 + RxInt lockScreen = 2.obs; //锁屏 + RxInt hideExpiredAccessFlag = 2.obs; //隐藏无效开锁 + RxString currentLanguage = ''.obs; //隐藏无效开锁 RxBool isAmazonAlexa = false.obs; //亚马逊Alexa RxBool isGoogleHome = false.obs; //谷歌Home Rx amazonAlexaData = AmazonAlexa().obs; diff --git a/lib/network/api.dart b/lib/network/api.dart index 7f1f9e7a..09ec5b51 100755 --- a/lib/network/api.dart +++ b/lib/network/api.dart @@ -162,6 +162,7 @@ abstract class Api { final String gatewayListByLockURL = '/gateway/listByLock'; // 网关-附近的锁 final String getGatewayConfigURL = '/gateway/getGatewayConfig'; // 获取网关配置 final String remoteOpenLockURL = '/gateway/unlock'; // 远程开锁 + final String gatewayScanDeviceURL = '/gateway/scanDevice'; // 网关-扫描设备 final String getKeyDetailURL = '/key/get'; //获取单把钥匙详情信息 final String lockUserListURL = '/keyUser/listKeyUser'; //锁用户列表 diff --git a/lib/network/api_provider.dart b/lib/network/api_provider.dart index 1c753af3..76677fa1 100755 --- a/lib/network/api_provider.dart +++ b/lib/network/api_provider.dart @@ -801,13 +801,12 @@ class ApiProvider extends BaseProvider { })); // 电机扭力设置 - Future setMotorPowerData(int lockId, int motorTorsion) => - post( - updateLockSettingUrl.toUrl, - jsonEncode({ - 'lockId': lockId, - 'motorTorsion': motorTorsion, - })); + Future setMotorPowerData(int lockId, int motorTorsion) => post( + updateLockSettingUrl.toUrl, + jsonEncode({ + 'lockId': lockId, + 'motorTorsion': motorTorsion, + })); // 远程开锁 Future remoteUnlockingOpenOrCloseLoadData( @@ -1757,14 +1756,12 @@ class ApiProvider extends BaseProvider { })); // 删除网关 - Future deletGateway( - int gatewayId, - ) => - post( - deletGatewayURL.toUrl, - jsonEncode({ - 'gatewayId': gatewayId, - })); + Future deletGateway(int gatewayId, int isForce) => post( + deletGatewayURL.toUrl, + jsonEncode({ + 'gatewayId': gatewayId, + 'isForce': isForce, + })); // 网关更新 Future gatewayUpdate( @@ -1817,6 +1814,9 @@ class ApiProvider extends BaseProvider { Future gatewayConnectionLockListLoadData(int gatewayId) => post(gatewayListByLockURL.toUrl, jsonEncode({'gatewayId': gatewayId})); + Future gatewayScanDevice(int gatewayId) => + post(gatewayScanDeviceURL.toUrl, jsonEncode({'gatewayId': gatewayId})); + // 移除坏锁 Future removeBrokenLockData(List lockIdList) => post(removeBadLockURL.toUrl, jsonEncode({'lockIds': lockIdList})); diff --git a/lib/network/api_repository.dart b/lib/network/api_repository.dart index 72cb332f..aef01783 100755 --- a/lib/network/api_repository.dart +++ b/lib/network/api_repository.dart @@ -1943,8 +1943,9 @@ class ApiRepository { // 删除网关 Future gatewayDelet({ required int gatewayId, + required int isForce, }) async { - final res = await apiProvider.deletGateway(gatewayId); + final res = await apiProvider.deletGateway(gatewayId, isForce); return LoginEntity.fromJson(res.body); } @@ -1974,6 +1975,14 @@ class ApiRepository { return GatewayConnectionLockListEntity.fromJson(res.body); } + // 网关-扫描设备 + Future gatewayScanDevice({ + required int gatewayId, + }) async { + final res = await apiProvider.gatewayScanDevice(gatewayId); + return LoginEntity.fromJson(res.body); + } + // 远程开锁 Future remoteOpenLock({required String lockId}) async { final res = await apiProvider.remoteOpenLock(lockId); diff --git a/lib/network/request_interceptor.dart b/lib/network/request_interceptor.dart index e09badaf..d40188a8 100755 --- a/lib/network/request_interceptor.dart +++ b/lib/network/request_interceptor.dart @@ -6,6 +6,7 @@ import 'package:get/get_connect/http/src/request/request.dart'; import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/login/login/entity/LoginData.dart'; +import '../tools/change_language_format.dart'; import '../tools/platform_info_services.dart'; import '../tools/storage.dart'; import '../tools/store_service.dart'; @@ -38,9 +39,13 @@ String getLanguageCode() { final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty ? appDept.deptSupportedLocales .where((Locale element) => - element.languageCode == StoreService.to.getLanguageCode()) + element.languageCode.toString() == + StoreService.to.getLanguageCode()) .first : Get.locale!; // Get.deviceLocale; - AppLog.log('languageCode: ${locale.toLanguageTag()} locale: $locale'); - return locale.toLanguageTag(); + String languageCode = + ChangeLanguageFormat.convertLocale(locale).toLanguageTag(); + AppLog.log( + 'languageCode: ${locale.toLanguageTag()} locale: $locale languageCode:$languageCode'); + return languageCode; } diff --git a/lib/tools/change_language_format.dart b/lib/tools/change_language_format.dart new file mode 100644 index 00000000..46e2ef8e --- /dev/null +++ b/lib/tools/change_language_format.dart @@ -0,0 +1,21 @@ +import 'dart:ui'; + +class ChangeLanguageFormat { + static Locale convertLocale(Locale locale) { + if (locale.languageCode == 'zh') { + if (locale.scriptCode == 'Hans') { + // 简体中文 + return const Locale('zh', 'CN'); + } else if (locale.scriptCode == 'Hant') { + // 繁体中文 + if (locale.countryCode == 'CN') { + return const Locale('zh', 'TW'); + } else if (locale.countryCode == 'HK') { + return const Locale('zh', 'HK'); + } + } + } + // 默认返回 Locale 的完整格式 + return locale; + } +} diff --git a/lib/translations/app_dept.dart b/lib/translations/app_dept.dart index f8cb9e28..bd4febad 100755 --- a/lib/translations/app_dept.dart +++ b/lib/translations/app_dept.dart @@ -21,6 +21,7 @@ extension ExtensionAppDept on AppDept { const Locale enL = Locale('en', 'US'); const Locale zhL = Locale('zh', 'CN'); const Locale twL = Locale('zh', 'TW'); + const Locale hkL = Locale('zh', 'HK'); const Locale frL = Locale('fr', 'FR'); const Locale ruL = Locale('ru', 'RU'); const Locale deL = Locale('de', 'DE'); @@ -59,6 +60,7 @@ extension ExtensionAppDept on AppDept { enL, zhL, twL, + hkL, frL, ruL, deL, @@ -103,8 +105,10 @@ final List appSupportedLocales = appDept.deptSupportedLocales; enum LanguageType { chinese, english, - // 繁体中文 - traditionalChinese, + // 繁体中文(中国台湾) + traditionalChineseTW, + // 繁体中文(中国香港) + traditionalChineseHK, // 法语 french, // 俄语 @@ -185,8 +189,11 @@ extension ExtensionLanguageType on LanguageType { case LanguageType.chinese: str = '简体中文'.tr; break; - case LanguageType.traditionalChinese: - str = '繁体中文'.tr; + case LanguageType.traditionalChineseTW: + str = '繁体中文(中国台湾)'.tr; + break; + case LanguageType.traditionalChineseHK: + str = '繁体中文(中国香港)'.tr; break; case LanguageType.french: str = '法语'.tr; @@ -417,8 +424,10 @@ extension ExtensionLanguageType on LanguageType { case 'zh': if (countryCode.toLowerCase() == 'cn') { languageType = LanguageType.chinese; - } else { - languageType = LanguageType.traditionalChinese; + } else if (countryCode.toLowerCase() == 'tw') { + languageType = LanguageType.traditionalChineseTW; + } else if (countryCode.toLowerCase() == 'hk') { + languageType = LanguageType.traditionalChineseHK; } break; case 'fr': diff --git a/lib/translations/translation_loader.dart b/lib/translations/translation_loader.dart index 545600f0..9dddc4d9 100755 --- a/lib/translations/translation_loader.dart +++ b/lib/translations/translation_loader.dart @@ -1,7 +1,6 @@ part of lib_trans; class TranslationLoader { - // LAN_ZH_CN="zh" # 简体中文 // LAN_EN_US="en" # 英文 // LAN_ZH_TW="tw" # 繁体中文 @@ -39,90 +38,92 @@ class TranslationLoader { // LAN_ZH_FI="fi" # 芬兰语 // LAN_ZH_DA="da" # 丹麦语 - // static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh'; // static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en'; - static Map _zhMap = {}; - static Map _enMap = {}; - static Map _twMap = {}; - static Map _frMap = {}; - static Map _ruMap = {}; - static Map _deMap = {}; - static Map _jaMap = {}; - static Map _koMap = {}; - static Map _itMap = {}; - static Map _ukMap = {}; - static Map _ptMap = {}; - static Map _esMap = {}; - static Map _arMap = {}; - static Map _viMap = {}; - static Map _msMap = {}; - static Map _nlMap = {}; - static Map _roMap = {}; - static Map _ltMap = {}; - static Map _svMap = {}; - static Map _etMap = {}; - static Map _plMap = {}; - static Map _skMap = {}; - static Map _csMap = {}; - static Map _elMap = {}; - static Map _heMap = {}; - static Map _srMap = {}; - static Map _trMap = {}; - static Map _huMap = {}; - static Map _bgMap = {}; - static Map _kkMap = {}; - static Map _bnMap = {}; - static Map _hrMap = {}; - static Map _thMap = {}; - static Map _idMap = {}; - static Map _fiMap = {}; - static Map _daMap = {}; + static Map _zhMap = {}; + static Map _enMap = {}; + static Map _twMap = {}; + static Map _hkMap = {}; + static Map _frMap = {}; + static Map _ruMap = {}; + static Map _deMap = {}; + static Map _jaMap = {}; + static Map _koMap = {}; + static Map _itMap = {}; + static Map _ukMap = {}; + static Map _ptMap = {}; + static Map _esMap = {}; + static Map _arMap = {}; + static Map _viMap = {}; + static Map _msMap = {}; + static Map _nlMap = {}; + static Map _roMap = {}; + static Map _ltMap = {}; + static Map _svMap = {}; + static Map _etMap = {}; + static Map _plMap = {}; + static Map _skMap = {}; + static Map _csMap = {}; + static Map _elMap = {}; + static Map _heMap = {}; + static Map _srMap = {}; + static Map _trMap = {}; + static Map _huMap = {}; + static Map _bgMap = {}; + static Map _kkMap = {}; + static Map _bnMap = {}; + static Map _hrMap = {}; + static Map _thMap = {}; + static Map _idMap = {}; + static Map _fiMap = {}; + static Map _daMap = {}; - static Map get zhDic => _zhMap; - static Map get enDic => _enMap; - static Map get twDic => _twMap; - static Map get frDic => _frMap; - static Map get ruDic => _ruMap; - static Map get deDic => _deMap; - static Map get jaDic => _jaMap; - static Map get koDic => _koMap; - static Map get itDic => _itMap; - static Map get ukDic => _ukMap; - static Map get ptDic => _ptMap; - static Map get esDic => _esMap; - static Map get arDic => _arMap; - static Map get viDic => _viMap; - static Map get msDic => _msMap; - static Map get nlDic => _nlMap; - static Map get roDic => _roMap; - static Map get ltDic => _ltMap; - static Map get svDic => _svMap; - static Map get etDic => _etMap; - static Map get plDic => _plMap; - static Map get skDic => _skMap; - static Map get csDic => _csMap; - static Map get elDic => _elMap; - static Map get heDic => _heMap; - static Map get srDic => _srMap; - static Map get trDic => _trMap; - static Map get huDic => _huMap; - static Map get bgDic => _bgMap; - static Map get kkDic => _kkMap; - static Map get bnDic => _bnMap; - static Map get hrDic => _hrMap; - static Map get thDic => _thMap; - static Map get idDic => _idMap; - static Map get fiDic => _fiMap; - static Map get daDic => _daMap; - static Map get ukMap => _ukMap; - static Map get srMap => _srMap; + static Map get zhDic => _zhMap; + static Map get enDic => _enMap; + static Map get twDic => _twMap; + static Map get hkDic => _hkMap; + static Map get frDic => _frMap; + static Map get ruDic => _ruMap; + static Map get deDic => _deMap; + static Map get jaDic => _jaMap; + static Map get koDic => _koMap; + static Map get itDic => _itMap; + static Map get ukDic => _ukMap; + static Map get ptDic => _ptMap; + static Map get esDic => _esMap; + static Map get arDic => _arMap; + static Map get viDic => _viMap; + static Map get msDic => _msMap; + static Map get nlDic => _nlMap; + static Map get roDic => _roMap; + static Map get ltDic => _ltMap; + static Map get svDic => _svMap; + static Map get etDic => _etMap; + static Map get plDic => _plMap; + static Map get skDic => _skMap; + static Map get csDic => _csMap; + static Map get elDic => _elMap; + static Map get heDic => _heMap; + static Map get srDic => _srMap; + static Map get trDic => _trMap; + static Map get huDic => _huMap; + static Map get bgDic => _bgMap; + static Map get kkDic => _kkMap; + static Map get bnDic => _bnMap; + static Map get hrDic => _hrMap; + static Map get thDic => _thMap; + static Map get idDic => _idMap; + static Map get fiDic => _fiMap; + static Map get daDic => _daMap; + static Map get ukMap => _ukMap; + static Map get srMap => _srMap; static Future loadTranslation() async { _zhMap = await _loadJsonFile('lan/lan_zh.json'); _enMap = await _loadJsonFile('lan/lan_en.json'); _twMap = await _loadJsonFile('lan/lan_tw.json'); + _hkMap = await _loadJsonFile('lan/lan_hk.json'); _frMap = await _loadJsonFile('lan/lan_fr.json'); _ruMap = await _loadJsonFile('lan/lan_ru.json'); _deMap = await _loadJsonFile('lan/lan_de.json'); @@ -160,15 +161,15 @@ class TranslationLoader { _srMap = await _loadJsonFile('lan/lan_sr_cyrl.json'); } - static Future> _loadJsonFile(String filePath) async => rootBundle.loadString(filePath).then((String jsonString){ - final Map enJson = jsonDecode(jsonString); - final Map map = {}; - enJson.forEach((String key,dynamic value) { - map[key] = value.toString(); - }); - return map; - }).onError((Object? error, StackTrace stackTrace){ - return Future>.value({}); - }); - + static Future> _loadJsonFile(String filePath) async => + rootBundle.loadString(filePath).then((String jsonString) { + final Map enJson = jsonDecode(jsonString); + final Map map = {}; + enJson.forEach((String key, dynamic value) { + map[key] = value.toString(); + }); + return map; + }).onError((Object? error, StackTrace stackTrace) { + return Future>.value({}); + }); } diff --git a/lib/translations/translation_message.dart b/lib/translations/translation_message.dart index 42a47822..8c31cb3a 100755 --- a/lib/translations/translation_message.dart +++ b/lib/translations/translation_message.dart @@ -1,47 +1,46 @@ part of lib_trans; class TranslationMessage extends Translations { - @override Map> get keys => { - 'zh_CN': TranslationLoader.zhDic, - 'en_US' : TranslationLoader.enDic, - 'zh_TW': TranslationLoader.twDic, - 'fr_FR': TranslationLoader.frDic, - 'ru_RU': TranslationLoader.ruDic, - 'de_DE': TranslationLoader.deDic, - 'ja_JA': TranslationLoader.jaDic, - 'ko_KO': TranslationLoader.koDic, - 'it_IT': TranslationLoader.itDic, - 'uk_UK': TranslationLoader.ukDic, - 'pt_PT': TranslationLoader.ptDic, - 'es_ES': TranslationLoader.esDic, - 'ar_AR': TranslationLoader.arDic, - 'vi_VI': TranslationLoader.viDic, - 'ms_MS': TranslationLoader.msDic, - 'nl_NL': TranslationLoader.nlDic, - 'ro_RO': TranslationLoader.roDic, - 'lt_LT': TranslationLoader.ltDic, - 'sv_SV': TranslationLoader.svDic, - 'et_ET': TranslationLoader.etDic, - 'pl_PL': TranslationLoader.plDic, - 'sk_SK': TranslationLoader.skDic, - 'cs_CS': TranslationLoader.csDic, - 'el_EL': TranslationLoader.elDic, - 'he_HE': TranslationLoader.heDic, - 'sr_SR': TranslationLoader.srDic, - 'tr_TR': TranslationLoader.trDic, - 'hu_HU': TranslationLoader.huDic, - 'bg_BG': TranslationLoader.bgDic, - 'kk_KK': TranslationLoader.kkDic, - 'bn_BN': TranslationLoader.bnDic, - 'hr_HR': TranslationLoader.hrDic, - 'th_TH': TranslationLoader.thDic, - 'id_ID': TranslationLoader.idDic, - 'fi_FI': TranslationLoader.fiDic, - 'da_DA': TranslationLoader.daDic, - }; + 'zh_CN': TranslationLoader.zhDic, + 'en_US': TranslationLoader.enDic, + 'zh_TW': TranslationLoader.twDic, + 'hk_HK': TranslationLoader.hkDic, + 'fr_FR': TranslationLoader.frDic, + 'ru_RU': TranslationLoader.ruDic, + 'de_DE': TranslationLoader.deDic, + 'ja_JA': TranslationLoader.jaDic, + 'ko_KO': TranslationLoader.koDic, + 'it_IT': TranslationLoader.itDic, + 'uk_UK': TranslationLoader.ukDic, + 'pt_PT': TranslationLoader.ptDic, + 'es_ES': TranslationLoader.esDic, + 'ar_AR': TranslationLoader.arDic, + 'vi_VI': TranslationLoader.viDic, + 'ms_MS': TranslationLoader.msDic, + 'nl_NL': TranslationLoader.nlDic, + 'ro_RO': TranslationLoader.roDic, + 'lt_LT': TranslationLoader.ltDic, + 'sv_SV': TranslationLoader.svDic, + 'et_ET': TranslationLoader.etDic, + 'pl_PL': TranslationLoader.plDic, + 'sk_SK': TranslationLoader.skDic, + 'cs_CS': TranslationLoader.csDic, + 'el_EL': TranslationLoader.elDic, + 'he_HE': TranslationLoader.heDic, + 'sr_SR': TranslationLoader.srDic, + 'tr_TR': TranslationLoader.trDic, + 'hu_HU': TranslationLoader.huDic, + 'bg_BG': TranslationLoader.bgDic, + 'kk_KK': TranslationLoader.kkDic, + 'bn_BN': TranslationLoader.bnDic, + 'hr_HR': TranslationLoader.hrDic, + 'th_TH': TranslationLoader.thDic, + 'id_ID': TranslationLoader.idDic, + 'fi_FI': TranslationLoader.fiDic, + 'da_DA': TranslationLoader.daDic, + }; void updateLocal(Locale l) => Get.updateLocale(l); - -} \ No newline at end of file +} diff --git a/pubspec.yaml b/pubspec.yaml index d97797c9..6b1cb9ef 100755 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -104,7 +104,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # 1.0.85+2024120301:完善网关功能 # 1.0.85+2024120401:修复网关问题,打包给谢敬调试 -version: 1.0.85+2024120402 +version: 1.0.85+2024121201 environment: sdk: '>=2.12.0 <3.0.0'