fix: 1、添加繁体香港。2、修复简体、繁体(台湾)、繁体(香港)传入显示问题。3、修复网关模块bug。4、添加网关强制删除功能。5、添加网关扫描设备功能。6、修复国际化其他bug

This commit is contained in:
魏少阳 2024-12-13 10:59:42 +08:00
parent 5e4a08e803
commit 4d98561545
69 changed files with 1824 additions and 464 deletions

View File

@ -216,7 +216,6 @@
"添加网关": "إضافة بوابة", "添加网关": "إضافة بوابة",
"重新通电": "إعادة توصيل الطاقة", "重新通电": "إعادة توصيل الطاقة",
"指示灯": "مصباح مؤشر", "指示灯": "مصباح مؤشر",
"将网关重新通电,指示灯交替闪烁时点击下一步": "انقر فوق التالي عندما فلاش الضوء بالتناوب",
"选择网关": "اختر بوابة", "选择网关": "اختر بوابة",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G غير مدعوم. يرجى اختيار واي فاي 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G غير مدعوم. يرجى اختيار واي فاي 2.4G.",
"WiFi密码": "واي فاي Passward", "WiFi密码": "واي فاي Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "يجب أن تحتوي كلمة المرور على الأقل على 2 مما يلي: الأرقام والحروف والأحرف الخاصة", "密码需至少包含数字/字母/字符中的2种组合": "يجب أن تحتوي كلمة المرور على الأقل على 2 مما يلي: الأرقام والحروف والأحرف الخاصة",
"已开锁": "غير مقفل", "已开锁": "غير مقفل",
"已闭锁": "مقفل", "已闭锁": "مقفل",
"两次密码不一致哦": "كلمات المرور غير متسقة" "两次密码不一致哦": "كلمات المرور غير متسقة",
"中功率": "قوة متوسطة",
"常规使用": "استخدام منتظم",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "بعد تشغيل البوابة ، اضغط مع الاستمرار على زر إعادة الضبط لمدة 5 ثوانٍ ، وانقر بعد ذلك عندما يومض مصباح المؤشر بالتناوب",
"扫描设备": "جهاز المسح الضوئي",
"删除失败,网关可能已经离线,是否强制删除该数据?": "فشل الحذف. ربما تكون البوابة قد اختفت دون اتصال. هل تريد فرض حذف البيانات ؟"
} }

View File

@ -217,7 +217,6 @@
"添加网关": "Добавяне на шлюз", "添加网关": "Добавяне на шлюз",
"重新通电": "Повторно свързване на захранването", "重新通电": "Повторно свързване на захранването",
"指示灯": "Индикаторна светлина", "指示灯": "Индикаторна светлина",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Щракнете върху следващия, когато светлинната светкавица се редува",
"选择网关": "Изберете шлюз", "选择网关": "Изберете шлюз",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g не се поддържа,. моля, изберете wifi от 2.4g.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g не се поддържа,. моля, изберете wifi от 2.4g.",
"WiFi密码": "Wifi passward", "WiFi密码": "Wifi passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Паролата трябва да съдържа поне 2 от следните: числа, букви и специални символи", "密码需至少包含数字/字母/字符中的2种组合": "Паролата трябва да съдържа поне 2 от следните: числа, букви и специални символи",
"已开锁": "Отключена", "已开锁": "Отключена",
"已闭锁": "Заключен", "已闭锁": "Заключен",
"两次密码不一致哦": "Паролите са непоследователни" "两次密码不一致哦": "Паролите са непоследователни",
"中功率": "Средна мощност",
"常规使用": "Редовна употреба",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "След като шлюзът е включен, натиснете и задръжте бутона reset за 5 секунди и щракнете върху следващия, когато индикаторната светлина мига алтернативно",
"扫描设备": "Сканиране устройство",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Изтриването не успя. Портата може да е отишла офлайн. Искате ли да принудите изтриване на данните?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "বিরোধী", "添加网关": "বিরোধী",
"重新通电": "পরীক্ষা", "重新通电": "পরীক্ষা",
"指示灯": "কেয়ানারেটরলাইট", "指示灯": "কেয়ানারেটরলাইট",
"将网关重新通电,指示灯交替闪烁时点击下一步": "বিকশিত",
"选择网关": "সিওসিকারওয়ে", "选择网关": "সিওসিকারওয়ে",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5 gisnoteigpped,.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5 gisnoteigpped,.",
"WiFi密码": "উইফিক", "WiFi密码": "উইফিক",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "ইসওয়ার্ডমস্টস্টেটলিয়াস্ট 2ofthefক্লোভিং:", "密码需至少包含数字/字母/字符中的2种组合": "ইসওয়ার্ডমস্টস্টেটলিয়াস্ট 2ofthefক্লোভিং:",
"已开锁": "কনুকলচকেড", "已开锁": "কনুকলচকেড",
"已闭锁": "লোকচকেড", "已闭锁": "লোকচকেড",
"两次密码不一致哦": "Thepasswordsare pencay" "两次密码不一致哦": "Thepasswordsare pencay",
"中功率": "উইউমপোওয়ার",
"常规使用": "গ্যারিউস",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "অ্যারাস্টার্টিউইসপোভেরেডন, প্রেস এবং টিপেস্টেট্রিসেট গানttonfor5sononds, এবং চক্লিক উইভেন্থে-উইন্টার",
"扫描设备": "সিস্কান্লিভাইস",
"删除失败,网关可能已经离线,是否强制删除该数据?": "ডাইজেজেশনিমেরিলেড। টিভওয়েমাইয়ানভিগনোনোআরলাইন। ডো ডাউনডেটা?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Přidat bránu", "添加网关": "Přidat bránu",
"重新通电": "Znovu připojit napájení", "重新通电": "Znovu připojit napájení",
"指示灯": "Indikační světlo", "指示灯": "Indikační světlo",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klepněte na tlačítko další, když světlo záblesky střídavě",
"选择网关": "Zvolte bránu", "选择网关": "Zvolte bránu",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g není podporována,. vyberte wifi 2.4g.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g není podporována,. vyberte wifi 2.4g.",
"WiFi密码": "Wifi passward", "WiFi密码": "Wifi passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovat alespoň 2 z těchto údajů: čísla, písmena a zvláštní znaky", "密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovat alespoň 2 z těchto údajů: čísla, písmena a zvláštní znaky",
"已开锁": "Odemčeno", "已开锁": "Odemčeno",
"已闭锁": "Zamč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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Tilføj gatewayName", "添加网关": "Tilføj gatewayName",
"重新通电": "Tilslut kraften", "重新通电": "Tilslut kraften",
"指示灯": "Indikator Lys", "指示灯": "Indikator Lys",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klik næste, når lyset blinker skiftevist",
"选择网关": "Vælg gatewayName", "选择网关": "Vælg gatewayName",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G understøttes ikke, Vælg et WiFi på 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G understøttes ikke, Vælg et WiFi på 2.4G.",
"WiFi密码": "WiFi- adgangskort", "WiFi密码": "WiFi- adgangskort",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Adgangskoden skal indeholde mindst 2 af følgende: tal, bogstaver og særlige tegn", "密码需至少包含数字/字母/字符中的2种组合": "Adgangskoden skal indeholde mindst 2 af følgende: tal, bogstaver og særlige tegn",
"已开锁": "Ulåset", "已开锁": "Ulåset",
"已闭锁": "Lå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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Gateway hinzufügen", "添加网关": "Gateway hinzufügen",
"重新通电": "Re Verbinden Sie die Strom versorgung", "重新通电": "Re Verbinden Sie die Strom versorgung",
"指示灯": "Anzeige leuchte", "指示灯": "Anzeige leuchte",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klicken Sie als nächstes, wenn das Licht abwechselnd blinkt",
"选择网关": "Wählen Sie Gateway", "选择网关": "Wählen Sie Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G wird nicht unterstützt, Bitte wählen Sie ein WiFi von 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G wird nicht unterstützt, Bitte wählen Sie ein WiFi von 2.4G.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Das Passwort muss mindestens 2 der folgenden Zahlen enthalten: Zahlen, Buchstaben und Sonder zeichen", "密码需至少包含数字/字母/字符中的2种组合": "Das Passwort muss mindestens 2 der folgenden Zahlen enthalten: Zahlen, Buchstaben und Sonder zeichen",
"已开锁": "Entsperrt", "已开锁": "Entsperrt",
"已闭锁": "Gesperrt", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Προσθήκη πύλης", "添加网关": "Προσθήκη πύλης",
"重新通电": "Συνδέστε τη δύναμη", "重新通电": "Συνδέστε τη δύναμη",
"指示灯": "Φως δείκτης", "指示灯": "Φως δείκτης",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Κάντε κλικ στο επόμενο όταν το φως αναβοσβήνει εναλλάξα",
"选择网关": "Επιλογή πύλης", "选择网关": "Επιλογή πύλης",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Το 5G δεν υποστηρίζεται.Παρακαλώ επιλέξτε ένα WiFi των 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Το 5G δεν υποστηρίζεται.Παρακαλώ επιλέξτε ένα WiFi των 2.4G.",
"WiFi密码": "WiFi", "WiFi密码": "WiFi",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 2 από τα ακόλουθα: αριθμούς, γράμματα και ειδικούς χαρακτήρες.", "密码需至少包含数字/字母/字符中的2种组合": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 2 από τα ακόλουθα: αριθμούς, γράμματα και ειδικούς χαρακτήρες.",
"已开锁": "Ξεκλείδωμα", "已开锁": "Ξεκλείδωμα",
"已闭锁": "Κλειδωμένο", "已闭锁": "Κλειδωμένο",
"两次密码不一致哦": "Οι κωδικοί πρόσβασης δεν είναι συνεπείς." "两次密码不一致哦": "Οι κωδικοί πρόσβασης δεν είναι συνεπείς.",
"中功率": "Μέση ισχύς",
"常规使用": "Κανονική χρήση:",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "Αφού ενεργοποιηθεί η πύλη, πατήστε και κρατήστε το κουμπί επαναφοράς για 5 δευτερόλεπτα, και κάντε κλικ Next όταν το φως δείκτη αναβοσβήνει εναλλάξα",
"扫描设备": "Συσκευή σάρωσης",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Η διαγραφή απέτυχε. Η πύλη μπορεί να έχει εκτός λειτουργίας. Θέλετε να αναγκάσετε τη διαγραφή των δεδομένων;"
} }

View File

@ -217,7 +217,7 @@
"添加网关": "Add Gateway", "添加网关": "Add Gateway",
"重新通电": "Re Connect the Power", "重新通电": "Re Connect the Power",
"指示灯": "Indicator Light", "指示灯": "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", "选择网关": "Choose Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G is not supported,.Please select a WiFi of 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G is not supported,.Please select a WiFi of 2.4G.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1112,5 +1112,7 @@
"中功率": "Medium power", "中功率": "Medium power",
"常规使用": "Regular use", "常规使用": "Regular use",
"扫描设备": "Scan device",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Deletion failed. The gateway may have gone offline. Do you want to force delete the data?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Agregar puerta de enlace", "添加网关": "Agregar puerta de enlace",
"重新通电": "Re conectar el poder", "重新通电": "Re conectar el poder",
"指示灯": "Luz indicadora", "指示灯": "Luz indicadora",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Haga clic en siguiente cuando la luz parpadee alternativamente",
"选择网关": "Elegir puerta de enlace", "选择网关": "Elegir puerta de enlace",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G no es compatible, Seleccione un WiFi de 2,4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G no es compatible, Seleccione un WiFi de 2,4G.",
"WiFi密码": "WiFi Passward", "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", "密码需至少包含数字/字母/字符中的2种组合": "La contraseña debe contener al menos 2 de los siguientes: números, letras y caracteres especiales",
"已开锁": "Desbloqueado", "已开锁": "Desbloqueado",
"已闭锁": "Bloqueado", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Lisa väravi", "添加网关": "Lisa väravi",
"重新通电": "Ühendage võimsust", "重新通电": "Ühendage võimsust",
"指示灯": "Näitaja Valguse", "指示灯": "Näitaja Valguse",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klõpsa järgmine, kui valgus vilgutab vaheldumisel",
"选择网关": "Vali väravatee", "选择网关": "Vali väravatee",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G ei ole toetatud, Palun valige WiFi 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G ei ole toetatud, Palun valige WiFi 2.4G.",
"WiFi密码": "WiFi Passivorm", "WiFi密码": "WiFi Passivorm",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Parool peab sisaldama vähemalt kahte järgmistest: numbreid, tähti ja erimärkid", "密码需至少包含数字/字母/字符中的2种组合": "Parool peab sisaldama vähemalt kahte järgmistest: numbreid, tähti ja erimärkid",
"已开锁": "Lukustatud", "已开锁": "Lukustatud",
"已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Lisää porttiComment", "添加网关": "Lisää porttiComment",
"重新通电": "Yhdistä teho", "重新通电": "Yhdistä teho",
"指示灯": "Indikaattori Valo", "指示灯": "Indikaattori Valo",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klikkaa seuraavaa, kun valo välähti vuorotellen.",
"选择网关": "Valitse porttiName", "选择网关": "Valitse porttiName",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G ei ole tuettu, valitse 2.4G:n WiFi.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G ei ole tuettu, valitse 2.4G:n WiFi.",
"WiFi密码": "WiFi", "WiFi密码": "WiFi",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Salasanassa on oltava vähintään kaksi seuraavista: numeroita, kirjaimia ja erityismerkkejä", "密码需至少包含数字/字母/字符中的2种组合": "Salasanassa on oltava vähintään kaksi seuraavista: numeroita, kirjaimia ja erityismerkkejä",
"已开锁": "Avaa lukitus", "已开锁": "Avaa lukitus",
"已闭锁": "Lukittu", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Ajouter une passerelle", "添加网关": "Ajouter une passerelle",
"重新通电": "Re reliez la puissance", "重新通电": "Re reliez la puissance",
"指示灯": "Indicateur de lumière", "指示灯": "Indicateur de lumière",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Cliquez sur suivant lorsque la lumière clignote alternativement",
"选择网关": "Choisissez la passerelle", "选择网关": "Choisissez la passerelle",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G n'est pas pris en charge,. Veuillez sélectionner un WiFi de 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G n'est pas pris en charge,. Veuillez sélectionner un WiFi de 2.4G.",
"WiFi密码": "WiFi Passward", "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", "密码需至少包含数字/字母/字符中的2种组合": "Le mot de passe doit contenir au moins deux des éléments suivants: chiffres, lettres et caractères spéciaux",
"已开锁": "Déverrouillé", "已开锁": "Déverrouillé",
"已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "הוספת שער", "添加网关": "הוספת שער",
"重新通电": "לחבר מחדש את הכוח", "重新通电": "לחבר מחדש את הכוח",
"指示灯": "אור מחוון", "指示灯": "אור מחוון",
"将网关重新通电,指示灯交替闪烁时点击下一步": "לחץ על הבא כאשר הבזק אור לסירוגין",
"选择网关": "בחר שער", "选择网关": "בחר שער",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g אינו נתמך,. בחר WiFi של 2.4g.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g אינו נתמך,. בחר WiFi של 2.4g.",
"WiFi密码": "הפסח", "WiFi密码": "הפסח",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "הסיסמה חייבת להכיל לפחות 2 מאלה: מספרים, אותיות ותווים מיוחדים", "密码需至少包含数字/字母/字符中的2种组合": "הסיסמה חייבת להכיל לפחות 2 מאלה: מספרים, אותיות ותווים מיוחדים",
"已开锁": "נעול", "已开锁": "נעול",
"已闭锁": "נעול", "已闭锁": "נעול",
"两次密码不一致哦": "הסיסמאות אינן עקביות" "两次密码不一致哦": "הסיסמאות אינן עקביות",
"中功率": "כוח בינוני",
"常规使用": "שימוש קבוע",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "לאחר השער מופעל, לחץ והחזק את כפתור איפוס עבור 5 שניות, ולחץ על הבא כאשר מחוון אור מהבהב לסירוגין",
"扫描设备": "התקן סריקה",
"删除失败,网关可能已经离线,是否强制删除该数据?": "מחיקה נכשלה. ייתכן שהשער נעלם מהרשת. האם ברצונך לאלץ למחוק את הנתונים?"
} }

1114
lan/lan_hk.json Normal file

File diff suppressed because it is too large Load Diff

View File

@ -216,7 +216,6 @@
"添加网关": "Dodaj prolaz", "添加网关": "Dodaj prolaz",
"重新通电": "Poveži moć", "重新通电": "Poveži moć",
"指示灯": "Svjetlo pokazatelja", "指示灯": "Svjetlo pokazatelja",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknite sljedeći kada svjetlo bljesno",
"选择网关": "Izaberite prolaz", "选择网关": "Izaberite prolaz",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nije podržan, molimo odaberite WiFi od 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nije podržan, molimo odaberite WiFi od 2.4G.",
"WiFi密码": "WiFi prolaz", "WiFi密码": "WiFi prolaz",
@ -250,13 +249,13 @@
"注册": "Prijavi", "注册": "Prijavi",
"我已阅读并同意": "Èitao sam i pristao", "我已阅读并同意": "Èitao sam i pristao",
"验证码": "Kod", "验证码": "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:", "手机": "Telefon:",
"邮箱": "Emal", "邮箱": "Emal",
"请输入邮箱": "Unesite svoj email", "请输入邮箱": "Unesite svoj email",
"国家\/地区": "Država\/Regija", "国家/地区": "Država/Regija",
"你所在的国家\/地区": "Vaša zemlja\/regija", "你所在的国家/地区": "Vaša zemlja/regija",
"选择国家\/地区": "Odaberite svoju zemlju ili regiju.", "选择国家/地区": "Odaberite svoju zemlju ili regiju.",
"获取验证码": "Dobavi kodu", "获取验证码": "Dobavi kodu",
"商务合作": "Posao", "商务合作": "Posao",
"电脑网页版": "Web sistem", "电脑网页版": "Web sistem",
@ -518,7 +517,7 @@
"是否删除钥匙?": "Obriši ovaj ekey?", "是否删除钥匙?": "Obriši ovaj ekey?",
"邮箱绑定成功": "Uspeh koji se obavezuju e- pošta", "邮箱绑定成功": "Uspeh koji se obavezuju e- pošta",
"手机绑定成功": "Uspeh vezivanja mobilnih telefona", "手机绑定成功": "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", "清空": "_Očisti",
"是否清空?": "Jasno?", "是否清空?": "Jasno?",
"消息详情": "Informacije o poruku", "消息详情": "Informacije o poruku",
@ -742,8 +741,8 @@
"无考勤记录": "Nema zapisa", "无考勤记录": "Nema zapisa",
"大家干劲十足": "Svi dolaze na vrijeme.", "大家干劲十足": "Svi dolaze na vrijeme.",
"工作时长未出炉": "Nema radnog vremena", "工作时长未出炉": "Nema radnog vremena",
"国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "Izbor zemlje\/regije će utjecati na sigurnost podataka.Trenutno ste odabrali Albaniju, molimo potvrdite prije nastavka.", "国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续": "Izbor zemlje/regije će utjecati na sigurnost podataka.Trenutno ste odabrali Albaniju, molimo potvrdite prije nastavka.",
"确认国家或地区": "Potvrdi državu\/regiju", "确认国家或地区": "Potvrdi državu/regiju",
"我知道了": "Imam ga.", "我知道了": "Imam ga.",
"为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "Za primanje važnih ažuriranja, molimo kliknite 'OK' i omogućite obavijesti u postavkama.", "为了让您及时收到重要通知和更新,我们需要获取通知权限。请点击“确定”按钮,然后在设置页面中启用通知权限。": "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.", "开启后可通过长按锁上的设置键重新上电用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", "请输入星寓管理员的账号": "Molimo unesite račun upravitelja zvjezdanog stana",
"选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "Svi podaci odabranih brava bit će trajno preneseni primatelju.", "选中的智能锁将会转移到您输入的账号中,您将失去锁的管理权": "Svi podaci odabranih brava bit će trajno preneseni primatelju.",
"暂不支持跨平台转移,敬请期待": "Transfer preko platforme nije podržan za sada, molim vas da se radujete tome", "暂不支持跨平台转移,敬请期待": "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.", "转移确认": "Potvrdi prijenos.",
"本次共转移": "Ovaj put ukupno.", "本次共转移": "Ovaj put ukupno.",
"把智能锁": "Pametna brava", "把智能锁": "Pametna brava",
@ -832,7 +831,7 @@
"实名认证为付费功能,请联系锁的管理员购买后再使用": "Autentifikacija stvarnih imena je plaćena funkcija, molimo kontaktirajte administratora za kupnju i korištenje.", "实名认证为付费功能,请联系锁的管理员购买后再使用": "Autentifikacija stvarnih imena je plaćena funkcija, molimo kontaktirajte administratora za kupnju i korištenje.",
"位置权限": "Dozvola za lokaciju", "位置权限": "Dozvola za lokaciju",
"请开启位置权限,应用需要位置权限才可以完成智能锁和网关的蓝牙操作": "Molimo odobrite aplikaciju za korištenje vašeg locacijana.Koristi se za skeniranje BLE brave i prolazi.", "请开启位置权限,应用需要位置权限才可以完成智能锁和网关的蓝牙操作": "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.", "请开启本地存储权限,允许应用读写设备上的照片及文件": "Molimo da odobrite aplikaciju za čitanje i pisanje fotografije i datoteke iz Skladišta.",
"点击选择": "Kliknite za odabir", "点击选择": "Kliknite za odabir",
"微信": "WeChat", "微信": "WeChat",
@ -983,7 +982,7 @@
"请输入6位数字开锁密码": "Unesite 6-cifrenu otključavanju", "请输入6位数字开锁密码": "Unesite 6-cifrenu otključavanju",
"请输入开锁密码": "Unesite zaporku otključanje", "请输入开锁密码": "Unesite zaporku otključanje",
"接收者在有效期内可以不限次数使用": "Primatelji mogu koristiti ekeys za neograničeno vrijeme u razdoblju valjanosti.", "接收者在有效期内可以不限次数使用": "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.", "单次钥匙有效期为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.", "接收者可以在有效期内的固定时间段里,不限次数使用": "Primatelji mogu koristiti ekeys za neograničeno vrijeme unutar fiksnog ciklusa vremena.",
"获取模板失败": "Nisam uspio dobaviti šablon", "获取模板失败": "Nisam uspio dobaviti šablon",
@ -1046,7 +1045,7 @@
"五": "Pet.", "五": "Pet.",
"六": "Šest.", "六": "Šest.",
"日": "Sunce", "日": "Sunce",
"英文": "English", "英文": "English",
"简体中文": "简体中文", "简体中文": "简体中文",
"繁体中文": "繁體中文", "繁体中文": "繁體中文",
"法语": "Français", "法语": "Français",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Lozinka mora sadržavati najmanje 2 od sljedećih: brojeve, slova i posebne znakove", "密码需至少包含数字/字母/字符中的2种组合": "Lozinka mora sadržavati najmanje 2 od sljedećih: brojeve, slova i posebne znakove",
"已开锁": "Otključan", "已开锁": "Otključan",
"已闭锁": "Zaključano", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Gateway hozzáadása", "添加网关": "Gateway hozzáadása",
"重新通电": "Újra csatlakoztassa a hatalom", "重新通电": "Újra csatlakoztassa a hatalom",
"指示灯": "Jelző fény", "指示灯": "Jelző fény",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Kattintson a tovább, ha a fény vaku felváltva",
"选择网关": "Válaszd az átjárót", "选择网关": "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.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g nem támogatott,. kérjük, válassza ki a wifi 2.4g.",
"WiFi密码": "Wifi passward", "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", "密码需至少包含数字/字母/字符中的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", "已开锁": "Unlocked",
"已闭锁": "Locked", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Tambah Gateway", "添加网关": "Tambah Gateway",
"重新通电": "Sambungkan kembali daya", "重新通电": "Sambungkan kembali daya",
"指示灯": "Lampu indikator", "指示灯": "Lampu indikator",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klik berikutnya ketika lampu berkedip secara bersamaan",
"选择网关": "Pilih Gateway", "选择网关": "Pilih Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G belum support Gan, silakan pilih WiFi 2.4G", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G belum support Gan, silakan pilih WiFi 2.4G",
"WiFi密码": "WiFi Pass", "WiFi密码": "WiFi Pass",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Kata sandi harus berisi setidaknya 2 karakter berikut: angka, huruf, dan karakter khusus", "密码需至少包含数字/字母/字符中的2种组合": "Kata sandi harus berisi setidaknya 2 karakter berikut: angka, huruf, dan karakter khusus",
"已开锁": "Tidak terkunci", "已开锁": "Tidak terkunci",
"已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Aggiungi gateway", "添加网关": "Aggiungi gateway",
"重新通电": "Ri collegare il potere", "重新通电": "Ri collegare il potere",
"指示灯": "Indicatore luminoso", "指示灯": "Indicatore luminoso",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Clicca dopo quando la luce lampeggia alternativamente",
"选择网关": "Scegli Gateway", "选择网关": "Scegli Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Il 5G non è supportato, Si prega di selezionare un WiFi di 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Il 5G non è supportato, Si prega di selezionare un WiFi di 2.4G.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "La password deve contenere almeno 2 dei seguenti: numeri, lettere e caratteri speciali", "密码需至少包含数字/字母/字符中的2种组合": "La password deve contenere almeno 2 dei seguenti: numeri, lettere e caratteri speciali",
"已开锁": "Sbloccato", "已开锁": "Sbloccato",
"已闭锁": "Bloccato", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "ゲートウェイの追加", "添加网关": "ゲートウェイの追加",
"重新通电": "力を接続して下さい", "重新通电": "力を接続して下さい",
"指示灯": "インジケータライト", "指示灯": "インジケータライト",
"将网关重新通电,指示灯交替闪烁时点击下一步": "ライトが交互に点滅するときに次をクリックしてください",
"选择网关": "ゲートウェイの選択", "选择网关": "ゲートウェイの選択",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5Gはサポートされていません。2.4GのWiFiを選択してください。", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5Gはサポートされていません。2.4GのWiFiを選択してください。",
"WiFi密码": "WiFiの通路", "WiFi密码": "WiFiの通路",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "パスワードには、数字、文字、特殊文字のうち少なくとも2つを含める必要があります。", "密码需至少包含数字/字母/字符中的2种组合": "パスワードには、数字、文字、特殊文字のうち少なくとも2つを含める必要があります。",
"已开锁": "ロック解除", "已开锁": "ロック解除",
"已闭锁": "ロック済み", "已闭锁": "ロック済み",
"两次密码不一致哦": "パスワードが一致しない" "两次密码不一致哦": "パスワードが一致しない",
"中功率": "ミディアムパワー",
"常规使用": "通常の使用",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "ゲートウェイの電源がオンになった後、リセットボタンを5秒間押し続け、インジケーターライトが交互に点滅したら [次へ] をクリックします。",
"扫描设备": "スキャン装置",
"删除失败,网关可能已经离线,是否强制删除该数据?": "削除に失敗しました。ゲートウェイがオフラインになった可能性があります。強制的にデータを削除しますか?"
} }

View File

@ -219,7 +219,7 @@
"添加网关": "添加网关", "添加网关": "添加网关",
"重新通电": "重新通电", "重新通电": "重新通电",
"指示灯": "指示灯", "指示灯": "指示灯",
"网关重新通电,指示灯交替闪烁时点击下一步": "网关重新通电,指示灯交替闪烁时点击下一步", "网关通电长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电长按重置按钮5秒,指示灯交替闪烁时点击下一步",
"选择网关": "选择网关", "选择网关": "选择网关",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络请选择2.4G WiFi网络进行配置", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络请选择2.4G WiFi网络进行配置",
"WiFi密码": "WiFi密码", "WiFi密码": "WiFi密码",
@ -1110,5 +1110,7 @@
"两次密码不一致哦": "两次密码不一致哦", "两次密码不一致哦": "两次密码不一致哦",
"中功率": "中功率", "中功率": "中功率",
"常规使用": "常规使用" "常规使用": "常规使用",
"扫描设备": "扫描设备",
"删除失败,网关可能已经离线,是否强制删除该数据?": "删除失败,网关可能已经离线,是否强制删除该数据?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Шлюзді қосу", "添加网关": "Шлюзді қосу",
"重新通电": "Қуатты қосылу", "重新通电": "Қуатты қосылу",
"指示灯": "Нұсқасы:", "指示灯": "Нұсқасы:",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Төменгі жарықты ауыстырғанда келесі басыңыз",
"选择网关": "Шығыс таңдау", "选择网关": "Шығыс таңдау",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G қолдауы жоқ.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G қолдауы жоқ.",
"WiFi密码": "WiFi өту", "WiFi密码": "WiFi өту",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Парольді келесінің кемінде 2- кемде болу керек: сандар, әріптер мен арнаулы таңбалары", "密码需至少包含数字/字母/字符中的2种组合": "Парольді келесінің кемінде 2- кемде болу керек: сандар, әріптер мен арнаулы таңбалары",
"已开锁": "Жүктеу", "已开锁": "Жүктеу",
"已闭锁": "Бұғатталған", "已闭锁": "Бұғатталған",
"两次密码不一致哦": "Парольдер болмаған" "两次密码不一致哦": "Парольдер болмаған",
"中功率": "Орташа қуары",
"常规使用": "Қалыпты қолданылсын",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "Келесі періңізнен соң, ысырып тасымалдау батырмасын басып 5 секунд басыңыз, Индикаторның жарықты ауыстырғанда, келесі басыңыз",
"扫描设备": "Сканер құрылғысы",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Өшіру жаңылысы. Келесі жіберді. Деректерді өшіргіңіз келе ме?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "게이트웨이 추가", "添加网关": "게이트웨이 추가",
"重新通电": "전원을 다시 연결하십시오.", "重新通电": "전원을 다시 연결하십시오.",
"指示灯": "표시등", "指示灯": "표시등",
"将网关重新通电,指示灯交替闪烁时点击下一步": "빛이 번갈아 깜박일 때 다음을 클릭하십시오.",
"选择网关": "게이트웨이 선택", "选择网关": "게이트웨이 선택",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G 는 지원되지 않습니다. 2.4G 의 WiFi를 선택하십시오.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G 는 지원되지 않습니다. 2.4G 의 WiFi를 선택하십시오.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "암호에는 숫자, 문자 및 특수 문자 중 2 개 이상이 있어야합니다.", "密码需至少包含数字/字母/字符中的2种组合": "암호에는 숫자, 문자 및 특수 문자 중 2 개 이상이 있어야합니다.",
"已开锁": "잠금 해제", "已开锁": "잠금 해제",
"已闭锁": "잠긴", "已闭锁": "잠긴",
"两次密码不一致哦": "암호가 일치하지 않습니다." "两次密码不一致哦": "암호가 일치하지 않습니다.",
"中功率": "중간 전력",
"常规使用": "정사이즈 사용",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "게이트웨이의 전원이 켜진 후 5 초 동안 리셋 버튼을 누르고 누르고 표시등이 번갈아 깜박이면 다음 을 클릭하십시오.",
"扫描设备": "스캔 장치",
"删除失败,网关可能已经离线,是否强制删除该数据?": "삭제가 실패했습니다. 게이트웨이가 오프라인 상태일 수 있다. 강제로 데이터 삭제를 하시겠습니까?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Pridėti vartai", "添加网关": "Pridėti vartai",
"重新通电": "Vėl prijungti maitinimo", "重新通电": "Vėl prijungti maitinimo",
"指示灯": "Indikatoriaus šviesa", "指示灯": "Indikatoriaus šviesa",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Spustelėkite toliau, kai šviesos blykstė pakaitomis",
"选择网关": "Pasirinkite vartai", "选择网关": "Pasirinkite vartai",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g nepalaikomas,. pasirinkite 2.4g wifi.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g nepalaikomas,. pasirinkite 2.4g wifi.",
"WiFi密码": "Wifi passward", "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", "密码需至少包含数字/字母/字符中的2种组合": "Slaptažodyje turi būti bent 2 iš šių: skaičiai, raidės ir specialūs simboliai",
"已开锁": "Atrakinta", "已开锁": "Atrakinta",
"已闭锁": "Užrakinta", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Tambah pintu masuk", "添加网关": "Tambah pintu masuk",
"重新通电": "Sambung semula kuasa", "重新通电": "Sambung semula kuasa",
"指示灯": "Lampu penunjuk", "指示灯": "Lampu penunjuk",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klik seterusnya apabila kilat cahaya bergantian",
"选择网关": "Pilih Gateway", "选择网关": "Pilih Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G tidak disokong,. Sila pilih WiFi 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G tidak disokong,. Sila pilih WiFi 2.4G.",
"WiFi密码": "Laluan WiFi", "WiFi密码": "Laluan WiFi",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Kata laluan mesti mengandungi sekurang-kurangnya 2 daripada yang berikut: nombor, huruf, dan aksara khas", "密码需至少包含数字/字母/字符中的2种组合": "Kata laluan mesti mengandungi sekurang-kurangnya 2 daripada yang berikut: nombor, huruf, dan aksara khas",
"已开锁": "Dikunci", "已开锁": "Dikunci",
"已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Gateway toevoegen", "添加网关": "Gateway toevoegen",
"重新通电": "Verbind de stroom opnieuw", "重新通电": "Verbind de stroom opnieuw",
"指示灯": "Indicatielampje", "指示灯": "Indicatielampje",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klik op Volgende wanneer het lampje afwisselend knippert",
"选择网关": "Gateway kiezen", "选择网关": "Gateway kiezen",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G wordt niet ondersteund. Selecteer een WiFi van 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G wordt niet ondersteund. Selecteer een WiFi van 2.4G.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Het wachtwoord moet ten minste 2 van de volgende bevatten: cijfers, letters en speciale tekens", "密码需至少包含数字/字母/字符中的2种组合": "Het wachtwoord moet ten minste 2 van de volgende bevatten: cijfers, letters en speciale tekens",
"已开锁": "Ontgrendeld", "已开锁": "Ontgrendeld",
"已闭锁": "Vergrendeld", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Dodaj bramę", "添加网关": "Dodaj bramę",
"重新通电": "Ponownie podłącz zasilanie", "重新通电": "Ponownie podłącz zasilanie",
"指示灯": "Wskaźnik świetlny", "指示灯": "Wskaźnik świetlny",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknij następny, gdy światło mignie na przemian",
"选择网关": "Wybierz Bramę", "选择网关": "Wybierz Bramę",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nie jest obsługiwane, proszę wybrać WiFi 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nie jest obsługiwane, proszę wybrać WiFi 2.4G.",
"WiFi密码": "WiFi Passward", "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", "密码需至少包含数字/字母/字符中的2种组合": "Hasło musi zawierać co najmniej 2 z następujących elementów: cyfry, litery i znaki specjalne",
"已开锁": "Odblokowany", "已开锁": "Odblokowany",
"已闭锁": "Zamknięty", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Adicionar Gateway", "添加网关": "Adicionar Gateway",
"重新通电": "Re Conecte o Poder", "重新通电": "Re Conecte o Poder",
"指示灯": "Luz indicadora", "指示灯": "Luz indicadora",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Clique próximo quando a luz piscar alternadamente",
"选择网关": "Escolha o Gateway", "选择网关": "Escolha o Gateway",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G não é suportado,. Por favor, selecione um WiFi de 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G não é suportado,. Por favor, selecione um WiFi de 2.4G.",
"WiFi密码": "WiFi Passar", "WiFi密码": "WiFi Passar",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "A senha deve conter pelo menos 2 dos seguintes elementos: números, letras e caracteres especiais.", "密码需至少包含数字/字母/字符中的2种组合": "A senha deve conter pelo menos 2 dos seguintes elementos: números, letras e caracteres especiais.",
"已开锁": "Desbloqueado", "已开锁": "Desbloqueado",
"已闭锁": "Trancado", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Adaugă poartă", "添加网关": "Adaugă poartă",
"重新通电": "Reconectează puterea", "重新通电": "Reconectează puterea",
"指示灯": "Indicator de lumină", "指示灯": "Indicator de lumină",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Faceţi clic pe următorul când lumina aprinde alternativ.",
"选择网关": "Alege port", "选择网关": "Alege port",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nu este suportat.Vă rugăm să selectați un WiFi de 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G nu este suportat.Vă rugăm să selectați un WiFi de 2.4G.",
"WiFi密码": "WiFi PasswardComment", "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", "密码需至少包含数字/字母/字符中的2种组合": "Parola trebuie să conțină cel puțin 2 dintre următoarele: numere, litere și caractere speciale",
"已开锁": "Deblocat", "已开锁": "Deblocat",
"已闭锁": "Blocat", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Добавить шлюз", "添加网关": "Добавить шлюз",
"重新通电": "Re Подключите питание", "重新通电": "Re Подключите питание",
"指示灯": "Световой индикатор", "指示灯": "Световой индикатор",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Нажмите дальше, когда свет начнет попеременно мигать",
"选择网关": "Выберите шлюз", "选择网关": "Выберите шлюз",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G не поддерживается. Выберите Wi-Fi 2,4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G не поддерживается. Выберите Wi-Fi 2,4G.",
"WiFi密码": "WiFi Пассвард", "WiFi密码": "WiFi Пассвард",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Пароль должен содержать не менее 2 из следующих символов: цифры, буквы и специальные символы.", "密码需至少包含数字/字母/字符中的2种组合": "Пароль должен содержать не менее 2 из следующих символов: цифры, буквы и специальные символы.",
"已开锁": "Разблокирован", "已开锁": "Разблокирован",
"已闭锁": "Заперт", "已闭锁": "Заперт",
"两次密码不一致哦": "Пароли являются несовместимыми" "两次密码不一致哦": "Пароли являются несовместимыми",
"中功率": "Средняя мощность",
"常规使用": "Регулярное использование",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "После включения шлюза нажмите и удерживайте кнопку сброса в течение 5 секунд и нажмите «Далее», когда индикатор попеременно начнет мигать.",
"扫描设备": "Устройство сканирования",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Ошибка удаления. Возможно, шлюз ушел в автономный режим. Хотите ли вы принудительно удалить данные?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Pridať bránu", "添加网关": "Pridať bránu",
"重新通电": "Re pripojiť napájanie", "重新通电": "Re pripojiť napájanie",
"指示灯": "Indikátorové svetlo", "指示灯": "Indikátorové svetlo",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Kliknite na ďalšie, keď svetlo záblesk striedavo",
"选择网关": "Vyberte bránu", "选择网关": "Vyberte bránu",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g nie je podporovaný,. vyberte wifi z 2.4g.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g nie je podporovaný,. vyberte wifi z 2.4g.",
"WiFi密码": "Wifi passward", "WiFi密码": "Wifi passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovať najmenej 2 z nasledujúcich: čísla, písmená a špeciálne znaky", "密码需至少包含数字/字母/字符中的2种组合": "Heslo musí obsahovať najmenej 2 z nasledujúcich: čísla, písmená a špeciálne znaky",
"已开锁": "Odomknuté", "已开锁": "Odomknuté",
"已闭锁": "Uzamknutý", "已闭锁": "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?"
} }

View File

@ -217,7 +217,6 @@
"添加网关": "Додај Гатеваи", "添加网关": "Додај Гатеваи",
"重新通电": "Поново прикључите напајање", "重新通电": "Поново прикључите напајање",
"指示灯": "Индикаторска лампица", "指示灯": "Индикаторска лампица",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Кликните следеће када светло трепери наизменично",
"选择网关": "Изаберите Гатеваи", "选择网关": "Изаберите Гатеваи",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G није подржан. Молимо Вас да изаберете ВиФи од 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G није подржан. Молимо Вас да изаберете ВиФи од 2.4G.",
"WiFi密码": "Ви -Фи Пассвард", "WiFi密码": "Ви -Фи Пассвард",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Лозинка мора да садржи најмање 2 од следећег: бројеве, слова и специјалне знакове", "密码需至少包含数字/字母/字符中的2种组合": "Лозинка мора да садржи најмање 2 од следећег: бројеве, слова и специјалне знакове",
"已开锁": "Откљуиана", "已开锁": "Откљуиана",
"已闭锁": "Закљуиана", "已闭锁": "Закљуиана",
"两次密码不一致哦": "Лозинке су недоследне" "两次密码不一致哦": "Лозинке су недоследне",
"中功率": "Средња снага",
"常规使用": "Редовна употреба",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "Након што је гатеваи укључен, притисните и држите дугме за ресетовање за 5 секунди, и кликните Следећи када индикатор трепери наизменично",
"扫描设备": "Уређај за скенирање",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Брисање није успело. Гатеваи је можда отишао ван мреже. Да ли желите да присилите брисање података?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Lägg till gatewe", "添加网关": "Lägg till gatewe",
"重新通电": "Uppkoppla kraften", "重新通电": "Uppkoppla kraften",
"指示灯": "Indikator Ljus", "指示灯": "Indikator Ljus",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Klicka nästa när ljuset blinkar växelvist",
"选择网关": "Välj gatewe", "选择网关": "Välj gatewe",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G stöds inte, välj ett WiFi på 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G stöds inte, välj ett WiFi på 2.4G.",
"WiFi密码": "WiFi Passward...", "WiFi密码": "WiFi Passward...",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Lösenordet måste innehålla minst två av följande: siffror, bokstäver och specialtecken.", "密码需至少包含数字/字母/字符中的2种组合": "Lösenordet måste innehålla minst två av följande: siffror, bokstäver och specialtecken.",
"已开锁": "Olås", "已开锁": "Olås",
"已闭锁": "Låst", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "เพิ่มเกตเวย์", "添加网关": "เพิ่มเกตเวย์",
"重新通电": "เชื่อมต่อพลังงานอีกครั้ง", "重新通电": "เชื่อมต่อพลังงานอีกครั้ง",
"指示灯": "ไฟแสดงสถานะ", "指示灯": "ไฟแสดงสถานะ",
"将网关重新通电,指示灯交替闪烁时点击下一步": "คลิกถัดไปเมื่อไฟกะพริบสลับกัน",
"选择网关": "เลือกเกตเวย์", "选择网关": "เลือกเกตเวย์",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "ไม่รองรับ5G ครับรบกวนเลือก WIFI 2.4G นะครับ", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "ไม่รองรับ5G ครับรบกวนเลือก WIFI 2.4G นะครับ",
"WiFi密码": "WIFI passward", "WiFi密码": "WIFI passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "รหัสผ่านต้องมีอย่างน้อย2รายการต่อไปนี้: ตัวเลขตัวอักษรและอักขระพิเศษ", "密码需至少包含数字/字母/字符中的2种组合": "รหัสผ่านต้องมีอย่างน้อย2รายการต่อไปนี้: ตัวเลขตัวอักษรและอักขระพิเศษ",
"已开锁": "ปลดล็อคแล้ว", "已开锁": "ปลดล็อคแล้ว",
"已闭锁": "ล็อคล็อคได้", "已闭锁": "ล็อคล็อคได้",
"两次密码不一致哦": "รหัสผ่านไม่สอดคล้องกัน" "两次密码不一致哦": "รหัสผ่านไม่สอดคล้องกัน",
"中功率": "กำลังไฟปานกลาง",
"常规使用": "ใช้เป็นประจำ",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "หลังจากเปิดเกตเวย์แล้วให้กดปุ่มรีเซ็ตค้างไว้5วินาทีและคลิกถัดไปเมื่อไฟแสดงสถานะกะพริบสลับกัน",
"扫描设备": "อุปกรณ์สแกน",
"删除失败,网关可能已经离线,是否强制删除该数据?": "การลบล้มเหลวเกตเวย์อาจออฟไลน์ไปแล้วคุณต้องการบังคับให้ลบข้อมูลหรือไม่?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Ağ geçidi ekle", "添加网关": "Ağ geçidi ekle",
"重新通电": "Gücü tekrar bağlayın", "重新通电": "Gücü tekrar bağlayın",
"指示灯": "Gösterge ışığı", "指示灯": "Gösterge ışığı",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Işık dönüşümlü olarak yanıp söndüğünde İleri'ye tıklayın",
"选择网关": "Ağ geçidini seç", "选择网关": "Ağ geçidini seç",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g desteklenmiyor. lütfen 2.4g wifi seçin.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5g desteklenmiyor. lütfen 2.4g wifi seçin.",
"WiFi密码": "Wifi geçidi", "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", "密码需至少包含数字/字母/字符中的2种组合": "Şifre aşağıdakilerden en az 2 tane içermelidir: sayılar, harfler ve özel karakterler",
"已开锁": "Unlocked", "已开锁": "Unlocked",
"已闭锁": "Kilitli", "已闭锁": "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?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "添加網關", "添加网关": "添加網關",
"重新通电": "重新連接電源", "重新通电": "重新連接電源",
"指示灯": "指示燈", "指示灯": "指示燈",
"将网关重新通电,指示灯交替闪烁时点击下一步": "當燈光交替閃爍時,單擊 「下一步」",
"选择网关": "選擇網關", "选择网关": "選擇網關",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5g,請選擇2.4的WiFi。", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5g,請選擇2.4的WiFi。",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "密碼必須至少包含以下兩項: 數字、字母和特殊字符", "密码需至少包含数字/字母/字符中的2种组合": "密碼必須至少包含以下兩項: 數字、字母和特殊字符",
"已开锁": "已解鎖", "已开锁": "已解鎖",
"已闭锁": "已鎖定", "已闭锁": "已鎖定",
"两次密码不一致哦": "密碼不一致" "两次密码不一致哦": "密碼不一致",
"中功率": "媒介權力",
"常规使用": "經常使用",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "網關通電後,按住reset按鈕5秒鐘,當指示燈交替閃爍時單擊Next",
"扫描设备": "掃描設備",
"删除失败,网关可能已经离线,是否强制删除该数据?": "刪除失敗。 網關可能已脫機。 是否要強制刪除數據?"
} }

View File

@ -217,7 +217,6 @@
"添加网关": "Додати шлюз", "添加网关": "Додати шлюз",
"重新通电": "Повторно підключіть живлення", "重新通电": "Повторно підключіть живлення",
"指示灯": "Світловий індикатор", "指示灯": "Світловий індикатор",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Натисніть далі, коли індикатор почне блимати по черзі",
"选择网关": "Виберіть шлюз", "选择网关": "Виберіть шлюз",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G не підтримується,. Будь ласка, виберіть Wi-Fi 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "5G не підтримується,. Будь ласка, виберіть Wi-Fi 2.4G.",
"WiFi密码": "WiFi Passward", "WiFi密码": "WiFi Passward",
@ -1106,5 +1105,10 @@
"密码需至少包含数字/字母/字符中的2种组合": "Пароль повинен містити не менше 2 з наступних: цифри, букви та спеціальні символи", "密码需至少包含数字/字母/字符中的2种组合": "Пароль повинен містити не менше 2 з наступних: цифри, букви та спеціальні символи",
"已开锁": "Розблокована", "已开锁": "Розблокована",
"已闭锁": "Заблокований", "已闭锁": "Заблокований",
"两次密码不一致哦": "Паролі несумісні" "两次密码不一致哦": "Паролі несумісні",
"中功率": "Середня потужність",
"常规使用": "Регулярне використання",
"网关通电后长按重置按钮5秒指示灯交替闪烁时点击下一步": "Після ввімкнення шлюзу натисніть і утримуйте кнопку скидання протягом 5 секунд, а потім натисніть «Далі», коли індикатор почне блимати по черзі",
"扫描设备": "Сканування пристрою",
"删除失败,网关可能已经离线,是否强制删除该数据?": "Видалення не вдалося. Можливо, шлюз перейшов в автономний режим. Ви хочете примусово видалити дані?"
} }

View File

@ -216,7 +216,6 @@
"添加网关": "Thêm cổng", "添加网关": "Thêm cổng",
"重新通电": "Kết nối lại nguồn điện", "重新通电": "Kết nối lại nguồn điện",
"指示灯": "Đèn báo", "指示灯": "Đèn báo",
"将网关重新通电,指示灯交替闪烁时点击下一步": "Nhấp vào tiếp theo khi đèn nhấp nháy xen kẽ",
"选择网关": "Chọn cổng", "选择网关": "Chọn cổng",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Không hỗ trợ 5g ạ. Vui lòng chọn Wifi 2.4G.", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "Không hỗ trợ 5g ạ. Vui lòng chọn Wifi 2.4G.",
"WiFi密码": "Wifi chuyển tiếp", "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", "密码需至少包含数字/字母/字符中的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", "已开锁": "Đã mở khóa",
"已闭锁": "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?"
} }

View File

@ -218,7 +218,7 @@
"添加网关": "添加网关", "添加网关": "添加网关",
"重新通电": "重新通电", "重新通电": "重新通电",
"指示灯": "指示灯", "指示灯": "指示灯",
"网关重新通电,指示灯交替闪烁时点击下一步": "网关重新通电,指示灯交替闪烁时点击下一步", "网关通电长按重置按钮5秒,指示灯交替闪烁时点击下一步": "网关通电长按重置按钮5秒,指示灯交替闪烁时点击下一步",
"选择网关": "选择网关", "选择网关": "选择网关",
"不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络请选择2.4G WiFi网络进行配置", "不支持5G WiFi网络请选择2.4G WiFi网络进行配置": "不支持5G WiFi网络请选择2.4G WiFi网络进行配置",
"WiFi密码": "WiFi密码", "WiFi密码": "WiFi密码",
@ -1110,6 +1110,7 @@
"两次密码不一致哦": "两次密码不一致哦", "两次密码不一致哦": "两次密码不一致哦",
"中功率": "中功率", "中功率": "中功率",
"常规使用": "常规使用" "常规使用": "常规使用",
"扫描设备": "扫描设备",
"删除失败,网关可能已经离线,是否强制删除该数据?": "删除失败,网关可能已经离线,是否强制删除该数据?"
} }

View File

@ -3,12 +3,14 @@ import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.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/blue/blue_manage.dart';
import 'package:star_lock/flavors.dart'; import 'package:star_lock/flavors.dart';
import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart'; import 'package:star_lock/main/lockMian/lockMain/lockMain_logic.dart';
import 'package:star_lock/tools/appFirstEnterHandle.dart'; import 'package:star_lock/tools/appFirstEnterHandle.dart';
import 'package:star_lock/tools/app_manager.dart'; import 'package:star_lock/tools/app_manager.dart';
import 'package:star_lock/tools/bindings/app_binding.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/tools/storage.dart';
import 'package:star_lock/translations/app_dept.dart'; import 'package:star_lock/translations/app_dept.dart';
@ -57,30 +59,40 @@ class _MyAppState extends State<MyApp> with WidgetsBindingObserver, BaseWidget {
GlobalCupertinoLocalizations.delegate, GlobalCupertinoLocalizations.delegate,
GlobalWidgetsLocalizations.delegate, GlobalWidgetsLocalizations.delegate,
], ],
// localeResolutionCallback用于在启动时动态确定应该使用哪种语言和地区
localeResolutionCallback: localeResolutionCallback:
(Locale? locale, Iterable<Locale> supportedLocales) { (Locale? locale, Iterable<Locale> supportedLocales) {
if (!supportedLocales.contains(locale)) { if (widget.isLogin) {
final int idx = appSupportedLocales.indexWhere((Locale element) => //
element.languageCode == locale!.languageCode); if (StoreService.to.getLanguageCode()!.isNotEmpty) {
if (idx != -1) { locale = appDept.deptSupportedLocales
locale = appSupportedLocales[idx]; .where((Locale element) =>
element.toString() == StoreService.to.getLanguageCode())
.first;
} else { } else {
locale = Get.locale; //
locale = Get.deviceLocale;
} }
} else {
//
locale = Get.deviceLocale;
} }
AppManager().setLanCode( locale = ChangeLanguageFormat.convertLocale(locale!);
code: '${locale!.languageCode}_${locale.countryCode}'); return supportedLocales.contains(locale)
// AppLog.log('1111locale:$locale'); ? locale
return locale; : supportedLocales.first;
}, },
// 使
locale: StoreService.to.getLanguageCode()!.isNotEmpty locale: StoreService.to.getLanguageCode()!.isNotEmpty
? appDept.deptSupportedLocales ? appDept.deptSupportedLocales
.where((Locale element) => .where((Locale element) =>
element.languageCode == StoreService.to.getLanguageCode()) element.languageCode.toString() ==
StoreService.to.getLanguageCode())
.first .first
: Get.deviceLocale, : Get.deviceLocale,
// locale: Get.deviceLocale, // locale: Get.deviceLocale,
fallbackLocale: Get.locale, // fallbackLocale用于指定在无法找到匹配的语言时使
fallbackLocale: Get.deviceLocale,
theme: ThemeData( theme: ThemeData(
scaffoldBackgroundColor: const Color(0xFFF6F6F6), scaffoldBackgroundColor: const Color(0xFFF6F6F6),
backgroundColor: const Color(0xFFF6F6F6), backgroundColor: const Color(0xFFF6F6F6),

View File

@ -754,6 +754,7 @@ class BlueManage {
Future<void> stopScan() async { Future<void> stopScan() async {
try { try {
await FlutterBluePlus.stopScan(); await FlutterBluePlus.stopScan();
AppLog.log('调用停止扫描成功');
} catch (e) { } catch (e) {
AppLog.log('停止扫描失败'); AppLog.log('停止扫描失败');
} }

View File

@ -76,7 +76,7 @@ class StarLockLoginLogic extends BaseGetXController {
Future<void> checkIpAction() async { Future<void> checkIpAction() async {
final CheckIPEntity entity = await ApiRepository.to.checkIpAction(ip: ''); final CheckIPEntity entity = await ApiRepository.to.checkIpAction(ip: '');
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
if (state.countryName.value == entity.data!.name) { if (state.countryName == entity.data!.name) {
ShowTipView().showSureAlertDialog( ShowTipView().showSureAlertDialog(
'国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续'.tr, '国家地区的选择将影响数据安全,你当前选择的是阿尔巴尼亚,请确认后再继续'.tr,
tipTitle: '确认国家或地区'.tr, tipTitle: '确认国家或地区'.tr,

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -48,8 +47,8 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
haveBack: false, haveBack: false,
backgroundColor: AppColors.mainColor, backgroundColor: AppColors.mainColor,
actionsList: <Widget>[ actionsList: <Widget>[
IconButton( IconButton(
onPressed: (){ onPressed: () {
WechatManageTool.getAppInfo(CustomerTool.openCustomerService); WechatManageTool.getAppInfo(CustomerTool.openCustomerService);
}, },
icon: const Icon( icon: const Icon(
@ -84,15 +83,14 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
width: 110.w, height: 110.w))), width: 110.w, height: 110.w))),
SizedBox(height: 50.w), SizedBox(height: 50.w),
Obx(() => CommonItem( Obx(() => CommonItem(
leftTitel: leftTitel: '你所在的国家/地区'.tr,
'你所在的国家/地区'.tr,
rightTitle: '', rightTitle: '',
isHaveLine: true, isHaveLine: true,
isPadding: false, isPadding: false,
isHaveRightWidget: true, isHaveRightWidget: true,
isHaveDirection: true, isHaveDirection: true,
rightWidget: Text( rightWidget: Text(
'${state.countryName.value} +${state.countryCode.value}', '${state.countryName} +${state.countryCode.value}',
textAlign: TextAlign.end, textAlign: TextAlign.end,
style: TextStyle( style: TextStyle(
fontSize: 22.sp, color: AppColors.darkGrayTextColor), fontSize: 22.sp, color: AppColors.darkGrayTextColor),
@ -103,7 +101,7 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
if (result != null) { if (result != null) {
result as Map<String, dynamic>; result as Map<String, dynamic>;
state.countryCode.value = result['code']; state.countryCode.value = result['code'];
state.countryName.value = result['countryName']; state.countryKey = result['countryName'];
logic.checkIpAction(); logic.checkIpAction();
} }
}, },
@ -123,7 +121,7 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
height: 36.w, height: 36.w,
), ),
), ),
hintText:'请输入手机号或者邮箱'.tr, hintText: '请输入手机号或者邮箱'.tr,
// keyboardType: TextInputType.number, // keyboardType: TextInputType.number,
inputFormatters: <TextInputFormatter>[ inputFormatters: <TextInputFormatter>[
// FilteringTextInputFormatter.allow(RegExp('[0-9]')), // FilteringTextInputFormatter.allow(RegExp('[0-9]')),
@ -185,8 +183,7 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
WidgetSpan( WidgetSpan(
alignment: PlaceholderAlignment.middle, alignment: PlaceholderAlignment.middle,
child: GestureDetector( child: GestureDetector(
child: Text( child: Text('${'用户协议'.tr}',
'${'用户协议'.tr}',
style: TextStyle( style: TextStyle(
color: AppColors.mainColor, color: AppColors.mainColor,
fontSize: 20.sp)), fontSize: 20.sp)),
@ -201,8 +198,7 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
WidgetSpan( WidgetSpan(
alignment: PlaceholderAlignment.middle, alignment: PlaceholderAlignment.middle,
child: GestureDetector( child: GestureDetector(
child: Text( child: Text('${'隐私政策'.tr}',
'${'隐私政策'.tr}',
style: TextStyle( style: TextStyle(
color: AppColors.mainColor, color: AppColors.mainColor,
fontSize: 20.sp)), fontSize: 20.sp)),
@ -246,8 +242,7 @@ class _StarLockLoginPageState extends State<StarLockLoginPage> {
height: 50.h, height: 50.h,
// color: Colors.red, // color: Colors.red,
child: Center( child: Center(
child: Text( child: Text('${'忘记密码'.tr}',
'${'忘记密码'.tr}',
style: TextStyle( style: TextStyle(
fontSize: 22.sp, color: AppColors.mainColor)), fontSize: 22.sp, color: AppColors.mainColor)),
), ),

View File

@ -10,7 +10,10 @@ class StarLockLoginState {
RxBool agree = false.obs; RxBool agree = false.obs;
RxString countryCode = '86'.obs; RxString countryCode = '86'.obs;
RxString countryName = '中国'.tr.obs; RxString countryKey = '中国'.tr.obs;
///
String get countryName => countryKey.value.tr;
RxString emailOrPhone = ''.obs; RxString emailOrPhone = ''.obs;
RxString pwd = ''.obs; RxString pwd = ''.obs;

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -65,8 +64,9 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
), ),
), ),
IconButton( IconButton(
onPressed: (){ onPressed: () {
WechatManageTool.getAppInfo(CustomerTool.openCustomerService); WechatManageTool.getAppInfo(
CustomerTool.openCustomerService);
}, },
icon: Icon( icon: Icon(
Icons.support_agent, Icons.support_agent,
@ -82,7 +82,7 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
if (result != null) { if (result != null) {
result as Map<String, dynamic>; result as Map<String, dynamic>;
state.countryCode.value = result['code']; state.countryCode.value = result['code'];
state.countryName.value = result['countryName']; state.countryKey.value = result['countryName'];
logic.checkIpAction(); logic.checkIpAction();
} }
}, },
@ -104,7 +104,7 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
), ),
Obx(() { Obx(() {
return Text( return Text(
'${state.countryName.value} +${state.countryCode.value}', '${state.countryName} +${state.countryCode.value}',
style: TextStyle( style: TextStyle(
fontSize: 22.sp, fontSize: 22.sp,
color: AppColors.mainColor), color: AppColors.mainColor),
@ -327,7 +327,8 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
Widget _buildBottomAgreement() { Widget _buildBottomAgreement() {
return Container( return Container(
width: 1.sw, 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( child: Wrap(
// mainAxisAlignment: MainAxisAlignment.start, // mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
@ -351,40 +352,32 @@ class _StarLockLoginPageState extends State<StarLockLoginXHJPage> {
width: 20.w, width: 20.w,
height: 20.w, height: 20.w,
), ),
) ))),
)),
SizedBox( SizedBox(
width: 10.w, width: 10.w,
), ),
Text( Text(
'我已阅读并同意'.tr, '我已阅读并同意'.tr,
style: style: TextStyle(color: const Color(0xff333333), fontSize: 20.sp),
TextStyle(color: const Color(0xff333333), fontSize: 20.sp),
), ),
GestureDetector( GestureDetector(
child: Text( child: Text('${'用户协议'.tr}',
'${'用户协议'.tr}', style: TextStyle(color: AppColors.mainColor, fontSize: 20.sp)),
style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () { onTap: () {
Get.toNamed(Routers.webviewShowPage, Get.toNamed(Routers.webviewShowPage, arguments: <String, String>{
arguments: <String, String>{ 'url': XSConstantMacro.userAgreementURL,
'url': XSConstantMacro.userAgreementURL, 'title': '用户协议'.tr
'title': '用户协议'.tr });
});
}, },
), ),
GestureDetector( GestureDetector(
child: Text( child: Text('${'隐私政策'.tr}',
'${'隐私政策'.tr}', style: TextStyle(color: AppColors.mainColor, fontSize: 20.sp)),
style: TextStyle(
color: AppColors.mainColor, fontSize: 20.sp)),
onTap: () { onTap: () {
Get.toNamed(Routers.webviewShowPage, Get.toNamed(Routers.webviewShowPage, arguments: <String, String>{
arguments: <String, String>{ 'url': XSConstantMacro.privacyPolicyURL,
'url': XSConstantMacro.privacyPolicyURL, 'title': '隐私政策'.tr
'title': '隐私政策'.tr });
});
}, },
) )

View File

@ -206,7 +206,7 @@ class NearbyLockLogic extends BaseGetXController {
state.lockInfo['serialNum0'] = serialNum0Str; state.lockInfo['serialNum0'] = serialNum0Str;
// state.lockInfo["serialNum0"] = "${DateTime.now().millisecondsSinceEpoch ~/ 10}"; // state.lockInfo["serialNum0"] = "${DateTime.now().millisecondsSinceEpoch ~/ 10}";
index = index + 16; index = index + 16;
AppLog.log('厂商序列号 serialNum0Str:${serialNum0Str.length}'); AppLog.log('厂商序列号 serialNum0Str:$serialNum0Str');
// //
final List<int> serialNum1 = reply.data.sublist(index, index + 16); final List<int> serialNum1 = reply.data.sublist(index, index + 16);

View File

@ -24,7 +24,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController {
Future<void> gatewayDistributionNetwork() async { Future<void> gatewayDistributionNetwork() async {
final LoginEntity entity = await ApiRepository.to final LoginEntity entity = await ApiRepository.to
.gatewayDistributionNetwork( .gatewayDistributionNetwork(
gatewayName: state.gatewayNamePasswardTF.text, gatewayName: state.gatewayNameTF.text,
gatewayMac: state.gatewayModel.mac, gatewayMac: state.gatewayModel.mac,
serialNumber: state.gatewayModel.serialNum, serialNumber: state.gatewayModel.serialNum,
gatewayType: 2, gatewayType: 2,
@ -104,6 +104,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController {
default: default:
// //
dismissEasyLoading(); dismissEasyLoading();
cancelBlueConnetctToastTimer();
showToast('配网失败'.tr); showToast('配网失败'.tr);
break; break;
} }
@ -123,7 +124,7 @@ class GatewayConfigurationWifiLogic extends BaseGetXController {
return; return;
} }
if (state.gatewayNamePasswardTF.text.isEmpty) { if (state.gatewayNameTF.text.isEmpty) {
showToast('请输入网关名称'.tr); showToast('请输入网关名称'.tr);
return; return;
} }

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -21,9 +20,12 @@ class GatewayConfigurationWifiPage extends StatefulWidget {
_GatewayConfigurationWifiPageState(); _GatewayConfigurationWifiPageState();
} }
class _GatewayConfigurationWifiPageState extends State<GatewayConfigurationWifiPage> with RouteAware { class _GatewayConfigurationWifiPageState
final GatewayConfigurationWifiLogic logic = Get.put(GatewayConfigurationWifiLogic()); extends State<GatewayConfigurationWifiPage> with RouteAware {
final GatewayConfigurationWifiState state = Get.find<GatewayConfigurationWifiLogic>().state; final GatewayConfigurationWifiLogic logic =
Get.put(GatewayConfigurationWifiLogic());
final GatewayConfigurationWifiState state =
Get.find<GatewayConfigurationWifiLogic>().state;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -53,16 +55,13 @@ class _GatewayConfigurationWifiPageState extends State<GatewayConfigurationWifiP
isHaveRightWidget: true, isHaveRightWidget: true,
allHeight: 80.h, allHeight: 80.h,
isHaveLine: true, isHaveLine: true,
rightWidget: getTFWidget( rightWidget: getTFWidget(state.wifiNameTF, '请输入wifi名称'.tr)),
state.wifiNameTF,
'请输入wifi名称'.tr)),
CommonItem( CommonItem(
leftTitel: 'WiFi密码'.tr, leftTitel: 'WiFi密码'.tr,
rightTitle: '', rightTitle: '',
isHaveRightWidget: true, isHaveRightWidget: true,
rightWidget: getTFWidget( rightWidget:
state.wifiPasswardTF, getTFWidget(state.wifiPasswardTF, '请输入WiFi密码'.tr)),
'请输入WiFi密码'.tr)),
SizedBox( SizedBox(
height: 10.h, height: 10.h,
), ),
@ -70,8 +69,8 @@ class _GatewayConfigurationWifiPageState extends State<GatewayConfigurationWifiP
leftTitel: '网关名称'.tr, leftTitel: '网关名称'.tr,
rightTitle: '', rightTitle: '',
isHaveRightWidget: true, isHaveRightWidget: true,
rightWidget: getTFWidget(state.gatewayNamePasswardTF, rightWidget:
'请输入网关名称'.tr)), getTFWidget(state.gatewayNameTF, '请输入网关名称'.tr)),
SizedBox( SizedBox(
height: 10.h, height: 10.h,
), ),
@ -214,16 +213,16 @@ class _GatewayConfigurationWifiPageState extends State<GatewayConfigurationWifiP
hintStyle: TextStyle(fontSize: 22.sp), hintStyle: TextStyle(fontSize: 22.sp),
focusedBorder: const OutlineInputBorder( focusedBorder: const OutlineInputBorder(
borderSide: borderSide:
BorderSide(width: 0, color: Colors.transparent)), BorderSide(width: 0, color: Colors.transparent)),
disabledBorder: const OutlineInputBorder( disabledBorder: const OutlineInputBorder(
borderSide: borderSide:
BorderSide(width: 0, color: Colors.transparent)), BorderSide(width: 0, color: Colors.transparent)),
enabledBorder: const OutlineInputBorder( enabledBorder: const OutlineInputBorder(
borderSide: borderSide:
BorderSide(width: 0, color: Colors.transparent)), BorderSide(width: 0, color: Colors.transparent)),
border: const OutlineInputBorder( border: const OutlineInputBorder(
borderSide: borderSide:
BorderSide(width: 0, color: Colors.transparent)), BorderSide(width: 0, color: Colors.transparent)),
contentPadding: const EdgeInsets.symmetric(vertical: 0), contentPadding: const EdgeInsets.symmetric(vertical: 0),
), ),
), ),

View File

@ -12,6 +12,7 @@ class GatewayConfigurationWifiState {
if (map['gatewayModel'] != null && map['gatewayModel'] != '') { if (map['gatewayModel'] != null && map['gatewayModel'] != '') {
gatewayModel = map['gatewayModel']; gatewayModel = map['gatewayModel'];
gatewayNameTF.text = gatewayModel.gatewayName;
// AppLog.log('gatewayModel.mac:${gatewayModel.mac} gatewayModel.mac:${gatewayModel.mac}'); // AppLog.log('gatewayModel.mac:${gatewayModel.mac} gatewayModel.mac:${gatewayModel.mac}');
} }
} }
@ -21,7 +22,7 @@ class GatewayConfigurationWifiState {
final TextEditingController wifiNameTF = TextEditingController(); final TextEditingController wifiNameTF = TextEditingController();
final TextEditingController wifiPasswardTF = TextEditingController(); final TextEditingController wifiPasswardTF = TextEditingController();
final TextEditingController gatewayNamePasswardTF = TextEditingController(); final TextEditingController gatewayNameTF = TextEditingController();
final TextEditingController ipAddressTF = TextEditingController(); final TextEditingController ipAddressTF = TextEditingController();
final TextEditingController subnetMaskTF = TextEditingController(); final TextEditingController subnetMaskTF = TextEditingController();
final TextEditingController defaultGatewayTF = TextEditingController(); final TextEditingController defaultGatewayTF = TextEditingController();

View File

@ -1,4 +1,5 @@
class GetGatewayInfoModel { class GetGatewayInfoModel {
late String gatewayName;
late String mac; late String mac;
late String serialNum; late String serialNum;
late String gatewayVersion; late String gatewayVersion;

View File

@ -47,6 +47,9 @@ class SelectGatewayListLogic extends BaseGetXController {
dismissEasyLoading(); dismissEasyLoading();
final GetGatewayInfoModel gatewayModel = GetGatewayInfoModel(); final GetGatewayInfoModel gatewayModel = GetGatewayInfoModel();
gatewayModel.gatewayName =
state.currentDevice!.advertisementData.advName;
// MAC地址 // MAC地址
int index = 3; int index = 3;
final List<int> macList = reply.data.sublist(index, index + 20); final List<int> macList = reply.data.sublist(index, index + 20);
@ -95,6 +98,7 @@ class SelectGatewayListLogic extends BaseGetXController {
void startScanBlueList() { void startScanBlueList() {
BlueManage().startScan(2000, DeviceType.gateway, (List<ScanResult> list) { BlueManage().startScan(2000, DeviceType.gateway, (List<ScanResult> list) {
AppLog.log('ScanResultList:$list');
state.devices.clear(); state.devices.clear();
for (int i = 0; i < list.length; i++) { for (int i = 0; i < list.length; i++) {
final ScanResult device = list[i]; final ScanResult device = list[i];
@ -110,9 +114,9 @@ class SelectGatewayListLogic extends BaseGetXController {
}); });
} }
void stopScanBlueList() { Future<void> stopScanBlueList() async {
// BlueManage().disconnect(); // BlueManage().disconnect();
BlueManage().stopScan(); await BlueManage().stopScan();
} }
void blueDisconnect() { void blueDisconnect() {
@ -162,9 +166,9 @@ class SelectGatewayListLogic extends BaseGetXController {
dismissEasyLoading(); dismissEasyLoading();
}); });
BlueManage().blueSendData(device.advertisementData.advName, BlueManage().blueSendData(device.advertisementData.advName,
(BluetoothConnectionState state) async { (BluetoothConnectionState bluetoothConnectionState) async {
// AppLog.log('点击要添加的设备了'); // AppLog.log('点击要添加的设备了');
if (state == BluetoothConnectionState.connected) { if (bluetoothConnectionState == BluetoothConnectionState.connected) {
dismissEasyLoading(); dismissEasyLoading();
// //
@ -194,6 +198,8 @@ class SelectGatewayListLogic extends BaseGetXController {
@override @override
void onReady() { void onReady() {
super.onReady(); super.onReady();
AppLog.log('扫描网关列表 onReadyonReady被调用了');
getNearByLimits(); getNearByLimits();
} }

View File

@ -4,6 +4,7 @@ import 'package:flutter_blue_plus/flutter_blue_plus.dart';
import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart';
import 'package:star_lock/tools/noData.dart'; import 'package:star_lock/tools/noData.dart';
import '../../../../appRouters.dart'; import '../../../../appRouters.dart';
@ -57,6 +58,7 @@ class _SelectGatewayListPageState extends State<SelectGatewayListPage>
itemBuilder: (BuildContext c, int index) { itemBuilder: (BuildContext c, int index) {
final ScanResult device = state.devices[index]; final ScanResult device = state.devices[index];
return _selectGatewayListListItem(device, () { return _selectGatewayListListItem(device, () {
state.currentDevice = device;
logic.connect(device); logic.connect(device);
}); });
})), })),
@ -162,19 +164,22 @@ class _SelectGatewayListPageState extends State<SelectGatewayListPage>
/// ///
@override @override
void didPop() { Future<void> didPop() async {
super.didPop(); super.didPop();
EasyLoading.isShow ? EasyLoading.dismiss() : null; EasyLoading.isShow ? EasyLoading.dismiss() : null;
logic.cancelBlueConnetctToastTimer(); logic.cancelBlueConnetctToastTimer();
logic.blueDisconnect(); logic.blueDisconnect();
logic.stopScanBlueList(); await Future.delayed(Duration(milliseconds: 500));
await logic.stopScanBlueList();
AppLog.log('停止网关列表 didPop被调用了');
} }
/// ///
@override @override
void didPopNext() { void didPopNext() {
super.didPopNext(); super.didPopNext();
AppLog.log('扫描网关列表 didPopNext被调用了');
logic.blueDisconnect(); logic.blueDisconnect();
logic.startScanBlueList(); logic.startScanBlueList();
} }

View File

@ -1,9 +1,9 @@
import 'package:flutter_blue_plus/flutter_blue_plus.dart'; import 'package:flutter_blue_plus/flutter_blue_plus.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
class SelectGatewayListState{ class SelectGatewayListState {
RxList<ScanResult> devices = <ScanResult>[].obs; RxList<ScanResult> devices = <ScanResult>[].obs;
RxBool ifCurrentScreen = true.obs; // , RxBool ifCurrentScreen = true.obs; // ,
ScanResult? currentDevice;
} }

View File

@ -53,7 +53,7 @@ class _SelectGatewayTypeNextTipPageState
padding: EdgeInsets.all(20.w), padding: EdgeInsets.all(20.w),
child: Center( child: Center(
child: Text( child: Text(
'网关重新通电,指示灯交替闪烁时点击下一步'.tr, '网关通电长按重置按钮5秒,指示灯交替闪烁时点击下一步'.tr,
textAlign: TextAlign.center, textAlign: TextAlign.center,
style: TextStyle(fontSize: 18.sp), style: TextStyle(fontSize: 18.sp),
))), ))),

View File

@ -1,6 +1,6 @@
import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/baseGetXController.dart';
import '../../../login/login/entity/LoginEntity.dart';
import '../../../network/api_repository.dart'; import '../../../network/api_repository.dart';
import 'gatewayConnectionLockList_entity.dart'; import 'gatewayConnectionLockList_entity.dart';
import 'gatewayConnectionLockList_state.dart'; import 'gatewayConnectionLockList_state.dart';
@ -9,16 +9,24 @@ class GatewayConnectionLockListLogic extends BaseGetXController {
GatewayConnectionLockListState state = GatewayConnectionLockListState(); GatewayConnectionLockListState state = GatewayConnectionLockListState();
// - // -
Future<GatewayConnectionLockListEntity> gatewayConnectionLockListDataRequest() async { Future<GatewayConnectionLockListEntity>
final GatewayConnectionLockListEntity entity = await ApiRepository.to.gatewayConnectionLockLoadData( gatewayConnectionLockListDataRequest() async {
gatewayId:state.gatewayId.value final GatewayConnectionLockListEntity entity = await ApiRepository.to
); .gatewayConnectionLockLoadData(gatewayId: state.gatewayId.value);
if (entity.errorCode!.codeIsSuccessful) { if (entity.errorCode!.codeIsSuccessful) {
state.itemDataList.value = entity.data!.list!; state.itemDataList.value = entity.data!.list!;
} }
return entity; return entity;
} }
Future<void> gatewayScanDevice() async {
final LoginEntity entity = await ApiRepository.to
.gatewayScanDevice(gatewayId: state.gatewayId.value);
if (entity.errorCode!.codeIsSuccessful) {
gatewayConnectionLockListDataRequest();
}
}
@override @override
void onReady() { void onReady() {
super.onReady(); super.onReady();

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
@ -14,21 +13,31 @@ class GatewayConnectionLockListPage extends StatefulWidget {
const GatewayConnectionLockListPage({Key? key}) : super(key: key); const GatewayConnectionLockListPage({Key? key}) : super(key: key);
@override @override
State<GatewayConnectionLockListPage> createState() => _GatewayConnectionLockListPageState(); State<GatewayConnectionLockListPage> createState() =>
_GatewayConnectionLockListPageState();
} }
class _GatewayConnectionLockListPageState extends State<GatewayConnectionLockListPage> { class _GatewayConnectionLockListPageState
final GatewayConnectionLockListLogic logic = Get.put(GatewayConnectionLockListLogic()); extends State<GatewayConnectionLockListPage> {
final GatewayConnectionLockListState state = Get.find<GatewayConnectionLockListLogic>().state; final GatewayConnectionLockListLogic logic =
Get.put(GatewayConnectionLockListLogic());
final GatewayConnectionLockListState state =
Get.find<GatewayConnectionLockListLogic>().state;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Scaffold( return Scaffold(
backgroundColor: AppColors.mainBackgroundColor, backgroundColor: AppColors.mainBackgroundColor,
appBar: TitleAppBar( appBar: TitleAppBar(
barTitle: '网关'.tr, barTitle: '网关'.tr,
haveBack:true, haveBack: true,
backgroundColor: AppColors.mainColor backgroundColor: AppColors.mainColor,
actionsList: [
TextButton(
onPressed: logic.gatewayScanDevice,
child: Text('扫描设备'.tr,
style: TextStyle(color: Colors.white, fontSize: 22.sp)))
],
), ),
body: Column( body: Column(
children: <Widget>[ children: <Widget>[
@ -36,41 +45,51 @@ class _GatewayConnectionLockListPageState extends State<GatewayConnectionLockLis
width: 1.sw, width: 1.sw,
color: Colors.grey.shade300, color: Colors.grey.shade300,
padding: EdgeInsets.all(10.h), padding: EdgeInsets.all(10.h),
child: Text('网关连接的锁'.tr, style: TextStyle(fontSize: 24.sp)) child: Text('网关连接的锁'.tr, style: TextStyle(fontSize: 24.sp))),
),
Obx(() => Expanded( Obx(() => Expanded(
child: child: state.itemDataList.value.isNotEmpty
state.itemDataList.value.isNotEmpty ? ? ListView.builder(
ListView.builder( itemCount: 10,
itemCount:10, itemBuilder: (BuildContext c, int index) {
itemBuilder: (BuildContext c, int index){ final GatewayConnectionLockItemEntity entity =
final GatewayConnectionLockItemEntity entity = state.itemDataList[index]; state.itemDataList[index];
return _gatewayConnectionLockListItem('images/mine/icon_mine_gatewaySignal_prompt.png', entity.lockAlias ?? '', '信号强'.tr,(){ return _gatewayConnectionLockListItem(
// Navigator.pushNamed(context, Routers.gatewayDetailPage); 'images/mine/icon_mine_gatewaySignal_prompt.png',
}); entity.lockAlias ?? '',
} '信号强'.tr, () {
):NoData(), // 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( return GestureDetector(
onTap: action, onTap: action,
child: Container( child: Container(
// height: 100.h, // height: 100.h,
margin: const EdgeInsets.only(bottom: 2), margin: const EdgeInsets.only(bottom: 2),
padding: EdgeInsets.only(left: 15.w, right: 20.w, top: 15.h, bottom: 15.h), padding:
decoration: BoxDecoration( EdgeInsets.only(left: 15.w, right: 20.w, top: 15.h, bottom: 15.h),
decoration: BoxDecoration(
color: Colors.white, color: Colors.white,
borderRadius: BorderRadius.circular(10.w), borderRadius: BorderRadius.circular(10.w),
), ),
child: Row( child: Row(
children: <Widget>[ children: <Widget>[
Image.asset(lockTypeIcon, width: 70.w, height: 70.w,), Image.asset(
SizedBox(width: 20.w,), lockTypeIcon,
width: 70.w,
height: 70.w,
),
SizedBox(
width: 20.w,
),
Expanded( Expanded(
child: Column( child: Column(
mainAxisAlignment: MainAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center,
@ -78,24 +97,35 @@ class _GatewayConnectionLockListPageState extends State<GatewayConnectionLockLis
Row( Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[ children: <Widget>[
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( Row(
mainAxisAlignment: MainAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[ children: <Widget>[
Image.asset('images/mine/icon_mine_gatewaySignal_strong.png', width: 30.w, height: 30.w,), Image.asset(
SizedBox(width: 10.w,), 'images/mine/icon_mine_gatewaySignal_strong.png',
Text(signalStrength, style: TextStyle(fontSize: 22.sp, fontWeight: FontWeight.w500), ), 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),
], ],
), ),
), ),

View File

@ -1,33 +1,35 @@
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/tools/baseGetXController.dart'; import 'package:star_lock/tools/baseGetXController.dart';
import '../../../login/login/entity/LoginEntity.dart'; import '../../../login/login/entity/LoginEntity.dart';
import '../../../network/api_repository.dart'; import '../../../network/api_repository.dart';
import '../../../tools/showTipView.dart';
import 'gatewayDetail_state.dart'; import 'gatewayDetail_state.dart';
class GatewayDetailLogic extends BaseGetXController{ class GatewayDetailLogic extends BaseGetXController {
GatewayDetailState state = GatewayDetailState(); GatewayDetailState state = GatewayDetailState();
Future<void> deletGateway() async{ Future<void> deletGateway(int isForce) async {
final LoginEntity entity = await ApiRepository.to.gatewayDelet( final LoginEntity entity = await ApiRepository.to.gatewayDelet(
gatewayId: state.getewayItemData.value.gatewayId ?? 0, gatewayId: state.getewayItemData.value.gatewayId ?? 0,
); isForce: isForce);
if(entity.errorCode!.codeIsSuccessful){ if (entity.errorCode!.codeIsSuccessful) {
showToast('删除成功'.tr, something:(){ showToast('删除成功'.tr, something: () {
// eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value)); // eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value));
Get.back(); Get.back();
}); });
} else if (entity.errorCode! == 10005) {
ShowTipView().showIosTipWithContentDialog(
'是否要强制删除?(强制删除后,网关要初始化才能被添加)'.tr, () => deletGateway(1));
} }
} }
Future<void> updateGateway(String gatewayName) async{ Future<void> updateGateway(String gatewayName) async {
final LoginEntity entity = await ApiRepository.to.gatewayUpdate( final LoginEntity entity = await ApiRepository.to.gatewayUpdate(
gatewayId: state.getewayItemData.value.gatewayId ?? 0, gatewayId: state.getewayItemData.value.gatewayId ?? 0,
gatewayName:gatewayName gatewayName: gatewayName);
); if (entity.errorCode!.codeIsSuccessful) {
if(entity.errorCode!.codeIsSuccessful){ showToast('修改成功'.tr, something: () {
showToast('修改成功'.tr, something:(){
// eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value)); // eventBus.fire(PassCurrentLockInformationEvent(state.lockSetInfoData.value));
Get.back(); Get.back();
}); });

View File

@ -1,4 +1,3 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
@ -34,77 +33,81 @@ class _GatewayDetailPageState extends State<GatewayDetailPage> {
haveBack: true, haveBack: true,
backgroundColor: AppColors.mainColor), backgroundColor: AppColors.mainColor),
body: Obx(() => ListView( body: Obx(() => ListView(
children: <Widget>[ children: <Widget>[
CommonItem( CommonItem(
leftTitel: '名称'.tr, leftTitel: '名称'.tr,
rightTitle: state.getewayItemData.value.gatewayName, rightTitle: state.getewayItemData.value.gatewayName,
isHaveLine: true, isHaveLine: true,
isHaveDirection: true, isHaveDirection: true,
action: () { action: () {
ShowTipView().showTFViewAlertDialog( ShowTipView().showTFViewAlertDialog(
state.changeGatewayNameController, state.changeGatewayNameController,
'请输入姓名'.tr, '请输入姓名'.tr,
'请输入姓名'.tr, () { '请输入姓名'.tr, () {
if (state.changeGatewayNameController.text.isEmpty) { if (state.changeGatewayNameController.text.isEmpty) {
logic.showToast('请输入姓名'.tr); logic.showToast('请输入姓名'.tr);
return; return;
} }
Get.back(); Get.back();
logic.updateGateway(state.changeGatewayNameController.text); logic.updateGateway(
}, inputFormatters: <TextInputFormatter>[ state.changeGatewayNameController.text);
FilteringTextInputFormatter.deny('\n'), }, inputFormatters: <TextInputFormatter>[
LengthLimitingTextInputFormatter(50), FilteringTextInputFormatter.deny('\n'),
]); LengthLimitingTextInputFormatter(50),
}), ]);
CommonItem( }),
leftTitel: '状态'.tr, CommonItem(
rightTitle: state.getewayItemData.value.isOnline == 1 ? '在线'.tr : '离线'.tr, leftTitel: '状态'.tr,
isHaveLine: true, rightTitle: state.getewayItemData.value.isOnline == 1
isHaveDirection: false), ? '在线'.tr
CommonItem( : '离线'.tr,
leftTitel: 'WiFi名称'.tr, isHaveLine: true,
rightTitle: state.getewayItemData.value.networkName, isHaveDirection: false),
isHaveLine: true, CommonItem(
isHaveDirection: false), leftTitel: 'WiFi名称'.tr,
CommonItem( rightTitle: state.getewayItemData.value.networkName,
leftTitel: '网络MAC'.tr, isHaveLine: true,
rightTitle: state.getewayItemData.value.gatewayMac, isHaveDirection: false),
isHaveLine: false, CommonItem(
isHaveDirection: false), leftTitel: '网络MAC'.tr,
SizedBox( rightTitle: state.getewayItemData.value.gatewayMac,
height: 10.h, isHaveLine: false,
), isHaveDirection: false),
CommonItem( SizedBox(
leftTitel: '附近的锁'.tr, height: 10.h,
rightTitle: state.getewayItemData.value.lockNum.toString(), ),
isHaveLine: true, CommonItem(
isHaveDirection: true, leftTitel: '附近的锁'.tr,
action: () { // rightTitle: state.getewayItemData.value.lockNum.toString(),
Get.toNamed(Routers.gatewayConnectionLockPage, arguments: { isHaveLine: true,
'gatewayId':state.getewayItemData.value.gatewayId ?? 0 isHaveDirection: true,
}); action: () {
}), Get.toNamed(Routers.gatewayConnectionLockPage, arguments: {
// CommonItem( 'gatewayId': state.getewayItemData.value.gatewayId ?? 0
// leftTitel: '网关升级'.tr, });
// rightTitle: '', }),
// isHaveLine: false, // CommonItem(
// isHaveDirection: true, // leftTitel: '网关升级'.tr,
// action: () {}), // rightTitle: '',
SizedBox( // isHaveLine: false,
height: 80.h, // isHaveDirection: true,
), // action: () {}),
SubmitBtn( SizedBox(
btnName: '删除'.tr, height: 80.h,
isDelete: true, ),
borderRadius: 20.w, SubmitBtn(
fontSize: 32.sp, btnName: '删除'.tr,
margin: EdgeInsets.only(left: 30.w, right: 30.w), isDelete: true,
padding: EdgeInsets.only(top: 15.w, bottom: 15.w), borderRadius: 20.w,
onClick: () { fontSize: 32.sp,
ShowTipView().showIosTipWithContentDialog('确定要删除吗?'.tr, logic.deletGateway); 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));
}),
],
)),
); );
} }
} }

View File

@ -1,4 +1,3 @@
import 'dart:ui'; import 'dart:ui';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:star_lock/app_settings/app_settings.dart'; import 'package:star_lock/app_settings/app_settings.dart';
@ -7,7 +6,6 @@ import '../../tools/store_service.dart';
import '../../translations/app_dept.dart'; import '../../translations/app_dept.dart';
class MineMultiLanguageState { class MineMultiLanguageState {
MineMultiLanguageState() { MineMultiLanguageState() {
resetLan(); resetLan();
} }
@ -21,6 +19,6 @@ class MineMultiLanguageState {
Future<void> resetLan() async { Future<void> resetLan() async {
currentLanguageType.value = ExtensionLanguageType.fromLocale(Get.locale!); currentLanguageType.value = ExtensionLanguageType.fromLocale(Get.locale!);
// AppLog.log('currentLanguageType.value:${currentLanguageType.value} Get.locale!.languageCode:${Get.locale!.languageCode} languages:$languages'); // 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());
} }
} }

View File

@ -20,6 +20,7 @@ import '../../../../tools/baseGetXController.dart';
import '../../../app_settings/app_settings.dart'; import '../../../app_settings/app_settings.dart';
import '../../../blue/blue_manage.dart'; import '../../../blue/blue_manage.dart';
import '../../../talk/udp/udp_help.dart'; import '../../../talk/udp/udp_help.dart';
import '../../../tools/change_language_format.dart';
import '../../../tools/dateTool.dart'; import '../../../tools/dateTool.dart';
import '../../../tools/eventBusEventManage.dart'; import '../../../tools/eventBusEventManage.dart';
import '../../../tools/store_service.dart'; import '../../../tools/store_service.dart';
@ -189,14 +190,15 @@ class MineSetLogic extends BaseGetXController {
} }
String _getCurrentLanguage() { String _getCurrentLanguage() {
String? languageCode = StoreService.to.getLanguageCode(); String? language = StoreService.to.getLanguageCode();
// AppLog.log('languageCode: $languageCode'); AppLog.log('language: $language Get.locale!: ${Get.locale!}');
if (languageCode!.isEmpty) { if (language!.isEmpty) {
languageCode = Get.locale!.languageCode; language = ChangeLanguageFormat.convertLocale(Get.locale!).toString();
} }
AppLog.log('language: $language');
final String currentLanguage = ExtensionLanguageType.fromLocale(appDept final String currentLanguage = ExtensionLanguageType.fromLocale(appDept
.deptSupportedLocales .deptSupportedLocales
.where((Locale element) => element.languageCode == languageCode) .where((Locale element) => element.toString() == language)
.first) .first)
.lanTitle; .lanTitle;
return currentLanguage; return currentLanguage;

View File

@ -14,9 +14,9 @@ class MineSetState {
RxString qrCodeUrl = ''.obs; // RxString qrCodeUrl = ''.obs; //
RxString qrCodeText = ''.obs; // RxString qrCodeText = ''.obs; //
var lockScreen = 2.obs; // RxInt lockScreen = 2.obs; //
var hideExpiredAccessFlag = 2.obs; // RxInt hideExpiredAccessFlag = 2.obs; //
var currentLanguage = "".obs; // RxString currentLanguage = ''.obs; //
RxBool isAmazonAlexa = false.obs; //Alexa RxBool isAmazonAlexa = false.obs; //Alexa
RxBool isGoogleHome = false.obs; //Home RxBool isGoogleHome = false.obs; //Home
Rx<AmazonAlexa> amazonAlexaData = AmazonAlexa().obs; Rx<AmazonAlexa> amazonAlexaData = AmazonAlexa().obs;

View File

@ -162,6 +162,7 @@ abstract class Api {
final String gatewayListByLockURL = '/gateway/listByLock'; // - final String gatewayListByLockURL = '/gateway/listByLock'; // -
final String getGatewayConfigURL = '/gateway/getGatewayConfig'; // final String getGatewayConfigURL = '/gateway/getGatewayConfig'; //
final String remoteOpenLockURL = '/gateway/unlock'; // final String remoteOpenLockURL = '/gateway/unlock'; //
final String gatewayScanDeviceURL = '/gateway/scanDevice'; // -
final String getKeyDetailURL = '/key/get'; // final String getKeyDetailURL = '/key/get'; //
final String lockUserListURL = '/keyUser/listKeyUser'; // final String lockUserListURL = '/keyUser/listKeyUser'; //

View File

@ -801,13 +801,12 @@ class ApiProvider extends BaseProvider {
})); }));
// //
Future<Response> setMotorPowerData(int lockId, int motorTorsion) => Future<Response> setMotorPowerData(int lockId, int motorTorsion) => post(
post( updateLockSettingUrl.toUrl,
updateLockSettingUrl.toUrl, jsonEncode({
jsonEncode({ 'lockId': lockId,
'lockId': lockId, 'motorTorsion': motorTorsion,
'motorTorsion': motorTorsion, }));
}));
// //
Future<Response> remoteUnlockingOpenOrCloseLoadData( Future<Response> remoteUnlockingOpenOrCloseLoadData(
@ -1757,14 +1756,12 @@ class ApiProvider extends BaseProvider {
})); }));
// //
Future<Response> deletGateway( Future<Response> deletGateway(int gatewayId, int isForce) => post(
int gatewayId, deletGatewayURL.toUrl,
) => jsonEncode({
post( 'gatewayId': gatewayId,
deletGatewayURL.toUrl, 'isForce': isForce,
jsonEncode({ }));
'gatewayId': gatewayId,
}));
// //
Future<Response> gatewayUpdate( Future<Response> gatewayUpdate(
@ -1817,6 +1814,9 @@ class ApiProvider extends BaseProvider {
Future<Response> gatewayConnectionLockListLoadData(int gatewayId) => Future<Response> gatewayConnectionLockListLoadData(int gatewayId) =>
post(gatewayListByLockURL.toUrl, jsonEncode({'gatewayId': gatewayId})); post(gatewayListByLockURL.toUrl, jsonEncode({'gatewayId': gatewayId}));
Future<Response> gatewayScanDevice(int gatewayId) =>
post(gatewayScanDeviceURL.toUrl, jsonEncode({'gatewayId': gatewayId}));
// //
Future<Response> removeBrokenLockData(List lockIdList) => Future<Response> removeBrokenLockData(List lockIdList) =>
post(removeBadLockURL.toUrl, jsonEncode({'lockIds': lockIdList})); post(removeBadLockURL.toUrl, jsonEncode({'lockIds': lockIdList}));

View File

@ -1943,8 +1943,9 @@ class ApiRepository {
// //
Future<LoginEntity> gatewayDelet({ Future<LoginEntity> gatewayDelet({
required int gatewayId, required int gatewayId,
required int isForce,
}) async { }) async {
final res = await apiProvider.deletGateway(gatewayId); final res = await apiProvider.deletGateway(gatewayId, isForce);
return LoginEntity.fromJson(res.body); return LoginEntity.fromJson(res.body);
} }
@ -1974,6 +1975,14 @@ class ApiRepository {
return GatewayConnectionLockListEntity.fromJson(res.body); return GatewayConnectionLockListEntity.fromJson(res.body);
} }
// -
Future<LoginEntity> gatewayScanDevice({
required int gatewayId,
}) async {
final res = await apiProvider.gatewayScanDevice(gatewayId);
return LoginEntity.fromJson(res.body);
}
// //
Future<LoginEntity> remoteOpenLock({required String lockId}) async { Future<LoginEntity> remoteOpenLock({required String lockId}) async {
final res = await apiProvider.remoteOpenLock(lockId); final res = await apiProvider.remoteOpenLock(lockId);

View File

@ -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/app_settings/app_settings.dart';
import 'package:star_lock/login/login/entity/LoginData.dart'; import 'package:star_lock/login/login/entity/LoginData.dart';
import '../tools/change_language_format.dart';
import '../tools/platform_info_services.dart'; import '../tools/platform_info_services.dart';
import '../tools/storage.dart'; import '../tools/storage.dart';
import '../tools/store_service.dart'; import '../tools/store_service.dart';
@ -38,9 +39,13 @@ String getLanguageCode() {
final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty final Locale locale = StoreService.to.getLanguageCode()!.isNotEmpty
? appDept.deptSupportedLocales ? appDept.deptSupportedLocales
.where((Locale element) => .where((Locale element) =>
element.languageCode == StoreService.to.getLanguageCode()) element.languageCode.toString() ==
StoreService.to.getLanguageCode())
.first .first
: Get.locale!; // Get.deviceLocale; : Get.locale!; // Get.deviceLocale;
AppLog.log('languageCode: ${locale.toLanguageTag()} locale: $locale'); String languageCode =
return locale.toLanguageTag(); ChangeLanguageFormat.convertLocale(locale).toLanguageTag();
AppLog.log(
'languageCode: ${locale.toLanguageTag()} locale: $locale languageCode:$languageCode');
return languageCode;
} }

View File

@ -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;
}
}

View File

@ -21,6 +21,7 @@ extension ExtensionAppDept on AppDept {
const Locale enL = Locale('en', 'US'); const Locale enL = Locale('en', 'US');
const Locale zhL = Locale('zh', 'CN'); const Locale zhL = Locale('zh', 'CN');
const Locale twL = Locale('zh', 'TW'); const Locale twL = Locale('zh', 'TW');
const Locale hkL = Locale('zh', 'HK');
const Locale frL = Locale('fr', 'FR'); const Locale frL = Locale('fr', 'FR');
const Locale ruL = Locale('ru', 'RU'); const Locale ruL = Locale('ru', 'RU');
const Locale deL = Locale('de', 'DE'); const Locale deL = Locale('de', 'DE');
@ -59,6 +60,7 @@ extension ExtensionAppDept on AppDept {
enL, enL,
zhL, zhL,
twL, twL,
hkL,
frL, frL,
ruL, ruL,
deL, deL,
@ -103,8 +105,10 @@ final List<Locale> appSupportedLocales = appDept.deptSupportedLocales;
enum LanguageType { enum LanguageType {
chinese, chinese,
english, english,
// // ()
traditionalChinese, traditionalChineseTW,
// ()
traditionalChineseHK,
// //
french, french,
// //
@ -185,8 +189,11 @@ extension ExtensionLanguageType on LanguageType {
case LanguageType.chinese: case LanguageType.chinese:
str = '简体中文'.tr; str = '简体中文'.tr;
break; break;
case LanguageType.traditionalChinese: case LanguageType.traditionalChineseTW:
str = '繁体中文'.tr; str = '繁体中文(中国台湾)'.tr;
break;
case LanguageType.traditionalChineseHK:
str = '繁体中文(中国香港)'.tr;
break; break;
case LanguageType.french: case LanguageType.french:
str = '法语'.tr; str = '法语'.tr;
@ -417,8 +424,10 @@ extension ExtensionLanguageType on LanguageType {
case 'zh': case 'zh':
if (countryCode.toLowerCase() == 'cn') { if (countryCode.toLowerCase() == 'cn') {
languageType = LanguageType.chinese; languageType = LanguageType.chinese;
} else { } else if (countryCode.toLowerCase() == 'tw') {
languageType = LanguageType.traditionalChinese; languageType = LanguageType.traditionalChineseTW;
} else if (countryCode.toLowerCase() == 'hk') {
languageType = LanguageType.traditionalChineseHK;
} }
break; break;
case 'fr': case 'fr':

View File

@ -1,7 +1,6 @@
part of lib_trans; part of lib_trans;
class TranslationLoader { class TranslationLoader {
// LAN_ZH_CN="zh" # // LAN_ZH_CN="zh" #
// LAN_EN_US="en" # // LAN_EN_US="en" #
// LAN_ZH_TW="tw" # // LAN_ZH_TW="tw" #
@ -39,90 +38,92 @@ class TranslationLoader {
// LAN_ZH_FI="fi" # // LAN_ZH_FI="fi" #
// LAN_ZH_DA="da" # // LAN_ZH_DA="da" #
// static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh'; // static bool get isZh => Get.locale?.languageCode.toLowerCase() == 'zh';
// static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en'; // static bool get isEn => Get.locale?.languageCode.toLowerCase() == 'en';
static Map<String,String> _zhMap = <String, String>{}; static Map<String, String> _zhMap = <String, String>{};
static Map<String,String> _enMap = <String, String>{}; static Map<String, String> _enMap = <String, String>{};
static Map<String,String> _twMap = <String, String>{}; static Map<String, String> _twMap = <String, String>{};
static Map<String,String> _frMap = <String, String>{}; static Map<String, String> _hkMap = <String, String>{};
static Map<String,String> _ruMap = <String, String>{}; static Map<String, String> _frMap = <String, String>{};
static Map<String,String> _deMap = <String, String>{}; static Map<String, String> _ruMap = <String, String>{};
static Map<String,String> _jaMap = <String, String>{}; static Map<String, String> _deMap = <String, String>{};
static Map<String,String> _koMap = <String, String>{}; static Map<String, String> _jaMap = <String, String>{};
static Map<String,String> _itMap = <String, String>{}; static Map<String, String> _koMap = <String, String>{};
static Map<String,String> _ukMap = <String, String>{}; static Map<String, String> _itMap = <String, String>{};
static Map<String,String> _ptMap = <String, String>{}; static Map<String, String> _ukMap = <String, String>{};
static Map<String,String> _esMap = <String, String>{}; static Map<String, String> _ptMap = <String, String>{};
static Map<String,String> _arMap = <String, String>{}; static Map<String, String> _esMap = <String, String>{};
static Map<String,String> _viMap = <String, String>{}; static Map<String, String> _arMap = <String, String>{};
static Map<String,String> _msMap = <String, String>{}; static Map<String, String> _viMap = <String, String>{};
static Map<String,String> _nlMap = <String, String>{}; static Map<String, String> _msMap = <String, String>{};
static Map<String,String> _roMap = <String, String>{}; static Map<String, String> _nlMap = <String, String>{};
static Map<String,String> _ltMap = <String, String>{}; static Map<String, String> _roMap = <String, String>{};
static Map<String,String> _svMap = <String, String>{}; static Map<String, String> _ltMap = <String, String>{};
static Map<String,String> _etMap = <String, String>{}; static Map<String, String> _svMap = <String, String>{};
static Map<String,String> _plMap = <String, String>{}; static Map<String, String> _etMap = <String, String>{};
static Map<String,String> _skMap = <String, String>{}; static Map<String, String> _plMap = <String, String>{};
static Map<String,String> _csMap = <String, String>{}; static Map<String, String> _skMap = <String, String>{};
static Map<String,String> _elMap = <String, String>{}; static Map<String, String> _csMap = <String, String>{};
static Map<String,String> _heMap = <String, String>{}; static Map<String, String> _elMap = <String, String>{};
static Map<String,String> _srMap = <String, String>{}; static Map<String, String> _heMap = <String, String>{};
static Map<String,String> _trMap = <String, String>{}; static Map<String, String> _srMap = <String, String>{};
static Map<String,String> _huMap = <String, String>{}; static Map<String, String> _trMap = <String, String>{};
static Map<String,String> _bgMap = <String, String>{}; static Map<String, String> _huMap = <String, String>{};
static Map<String,String> _kkMap = <String, String>{}; static Map<String, String> _bgMap = <String, String>{};
static Map<String,String> _bnMap = <String, String>{}; static Map<String, String> _kkMap = <String, String>{};
static Map<String,String> _hrMap = <String, String>{}; static Map<String, String> _bnMap = <String, String>{};
static Map<String,String> _thMap = <String, String>{}; static Map<String, String> _hrMap = <String, String>{};
static Map<String,String> _idMap = <String, String>{}; static Map<String, String> _thMap = <String, String>{};
static Map<String,String> _fiMap = <String, String>{}; static Map<String, String> _idMap = <String, String>{};
static Map<String,String> _daMap = <String, String>{}; static Map<String, String> _fiMap = <String, String>{};
static Map<String, String> _daMap = <String, String>{};
static Map<String,String> get zhDic => _zhMap; static Map<String, String> get zhDic => _zhMap;
static Map<String,String> get enDic => _enMap; static Map<String, String> get enDic => _enMap;
static Map<String,String> get twDic => _twMap; static Map<String, String> get twDic => _twMap;
static Map<String,String> get frDic => _frMap; static Map<String, String> get hkDic => _hkMap;
static Map<String,String> get ruDic => _ruMap; static Map<String, String> get frDic => _frMap;
static Map<String,String> get deDic => _deMap; static Map<String, String> get ruDic => _ruMap;
static Map<String,String> get jaDic => _jaMap; static Map<String, String> get deDic => _deMap;
static Map<String,String> get koDic => _koMap; static Map<String, String> get jaDic => _jaMap;
static Map<String,String> get itDic => _itMap; static Map<String, String> get koDic => _koMap;
static Map<String,String> get ukDic => _ukMap; static Map<String, String> get itDic => _itMap;
static Map<String,String> get ptDic => _ptMap; static Map<String, String> get ukDic => _ukMap;
static Map<String,String> get esDic => _esMap; static Map<String, String> get ptDic => _ptMap;
static Map<String,String> get arDic => _arMap; static Map<String, String> get esDic => _esMap;
static Map<String,String> get viDic => _viMap; static Map<String, String> get arDic => _arMap;
static Map<String,String> get msDic => _msMap; static Map<String, String> get viDic => _viMap;
static Map<String,String> get nlDic => _nlMap; static Map<String, String> get msDic => _msMap;
static Map<String,String> get roDic => _roMap; static Map<String, String> get nlDic => _nlMap;
static Map<String,String> get ltDic => _ltMap; static Map<String, String> get roDic => _roMap;
static Map<String,String> get svDic => _svMap; static Map<String, String> get ltDic => _ltMap;
static Map<String,String> get etDic => _etMap; static Map<String, String> get svDic => _svMap;
static Map<String,String> get plDic => _plMap; static Map<String, String> get etDic => _etMap;
static Map<String,String> get skDic => _skMap; static Map<String, String> get plDic => _plMap;
static Map<String,String> get csDic => _csMap; static Map<String, String> get skDic => _skMap;
static Map<String,String> get elDic => _elMap; static Map<String, String> get csDic => _csMap;
static Map<String,String> get heDic => _heMap; static Map<String, String> get elDic => _elMap;
static Map<String,String> get srDic => _srMap; static Map<String, String> get heDic => _heMap;
static Map<String,String> get trDic => _trMap; static Map<String, String> get srDic => _srMap;
static Map<String,String> get huDic => _huMap; static Map<String, String> get trDic => _trMap;
static Map<String,String> get bgDic => _bgMap; static Map<String, String> get huDic => _huMap;
static Map<String,String> get kkDic => _kkMap; static Map<String, String> get bgDic => _bgMap;
static Map<String,String> get bnDic => _bnMap; static Map<String, String> get kkDic => _kkMap;
static Map<String,String> get hrDic => _hrMap; static Map<String, String> get bnDic => _bnMap;
static Map<String,String> get thDic => _thMap; static Map<String, String> get hrDic => _hrMap;
static Map<String,String> get idDic => _idMap; static Map<String, String> get thDic => _thMap;
static Map<String,String> get fiDic => _fiMap; static Map<String, String> get idDic => _idMap;
static Map<String,String> get daDic => _daMap; static Map<String, String> get fiDic => _fiMap;
static Map<String,String> get ukMap => _ukMap; static Map<String, String> get daDic => _daMap;
static Map<String,String> get srMap => _srMap; static Map<String, String> get ukMap => _ukMap;
static Map<String, String> get srMap => _srMap;
static Future<void> loadTranslation() async { static Future<void> loadTranslation() async {
_zhMap = await _loadJsonFile('lan/lan_zh.json'); _zhMap = await _loadJsonFile('lan/lan_zh.json');
_enMap = await _loadJsonFile('lan/lan_en.json'); _enMap = await _loadJsonFile('lan/lan_en.json');
_twMap = await _loadJsonFile('lan/lan_tw.json'); _twMap = await _loadJsonFile('lan/lan_tw.json');
_hkMap = await _loadJsonFile('lan/lan_hk.json');
_frMap = await _loadJsonFile('lan/lan_fr.json'); _frMap = await _loadJsonFile('lan/lan_fr.json');
_ruMap = await _loadJsonFile('lan/lan_ru.json'); _ruMap = await _loadJsonFile('lan/lan_ru.json');
_deMap = await _loadJsonFile('lan/lan_de.json'); _deMap = await _loadJsonFile('lan/lan_de.json');
@ -160,15 +161,15 @@ class TranslationLoader {
_srMap = await _loadJsonFile('lan/lan_sr_cyrl.json'); _srMap = await _loadJsonFile('lan/lan_sr_cyrl.json');
} }
static Future<Map<String,String>> _loadJsonFile(String filePath) async => rootBundle.loadString(filePath).then((String jsonString){ static Future<Map<String, String>> _loadJsonFile(String filePath) async =>
final Map<String,dynamic> enJson = jsonDecode(jsonString); rootBundle.loadString(filePath).then((String jsonString) {
final Map<String,String> map = <String, String>{}; final Map<String, dynamic> enJson = jsonDecode(jsonString);
enJson.forEach((String key,dynamic value) { final Map<String, String> map = <String, String>{};
map[key] = value.toString(); enJson.forEach((String key, dynamic value) {
}); map[key] = value.toString();
return map; });
}).onError((Object? error, StackTrace stackTrace){ return map;
return Future<Map<String,String>>.value(<String, String>{}); }).onError((Object? error, StackTrace stackTrace) {
}); return Future<Map<String, String>>.value(<String, String>{});
});
} }

View File

@ -1,47 +1,46 @@
part of lib_trans; part of lib_trans;
class TranslationMessage extends Translations { class TranslationMessage extends Translations {
@override @override
Map<String, Map<String, String>> get keys => { Map<String, Map<String, String>> get keys => {
'zh_CN': TranslationLoader.zhDic, 'zh_CN': TranslationLoader.zhDic,
'en_US' : TranslationLoader.enDic, 'en_US': TranslationLoader.enDic,
'zh_TW': TranslationLoader.twDic, 'zh_TW': TranslationLoader.twDic,
'fr_FR': TranslationLoader.frDic, 'hk_HK': TranslationLoader.hkDic,
'ru_RU': TranslationLoader.ruDic, 'fr_FR': TranslationLoader.frDic,
'de_DE': TranslationLoader.deDic, 'ru_RU': TranslationLoader.ruDic,
'ja_JA': TranslationLoader.jaDic, 'de_DE': TranslationLoader.deDic,
'ko_KO': TranslationLoader.koDic, 'ja_JA': TranslationLoader.jaDic,
'it_IT': TranslationLoader.itDic, 'ko_KO': TranslationLoader.koDic,
'uk_UK': TranslationLoader.ukDic, 'it_IT': TranslationLoader.itDic,
'pt_PT': TranslationLoader.ptDic, 'uk_UK': TranslationLoader.ukDic,
'es_ES': TranslationLoader.esDic, 'pt_PT': TranslationLoader.ptDic,
'ar_AR': TranslationLoader.arDic, 'es_ES': TranslationLoader.esDic,
'vi_VI': TranslationLoader.viDic, 'ar_AR': TranslationLoader.arDic,
'ms_MS': TranslationLoader.msDic, 'vi_VI': TranslationLoader.viDic,
'nl_NL': TranslationLoader.nlDic, 'ms_MS': TranslationLoader.msDic,
'ro_RO': TranslationLoader.roDic, 'nl_NL': TranslationLoader.nlDic,
'lt_LT': TranslationLoader.ltDic, 'ro_RO': TranslationLoader.roDic,
'sv_SV': TranslationLoader.svDic, 'lt_LT': TranslationLoader.ltDic,
'et_ET': TranslationLoader.etDic, 'sv_SV': TranslationLoader.svDic,
'pl_PL': TranslationLoader.plDic, 'et_ET': TranslationLoader.etDic,
'sk_SK': TranslationLoader.skDic, 'pl_PL': TranslationLoader.plDic,
'cs_CS': TranslationLoader.csDic, 'sk_SK': TranslationLoader.skDic,
'el_EL': TranslationLoader.elDic, 'cs_CS': TranslationLoader.csDic,
'he_HE': TranslationLoader.heDic, 'el_EL': TranslationLoader.elDic,
'sr_SR': TranslationLoader.srDic, 'he_HE': TranslationLoader.heDic,
'tr_TR': TranslationLoader.trDic, 'sr_SR': TranslationLoader.srDic,
'hu_HU': TranslationLoader.huDic, 'tr_TR': TranslationLoader.trDic,
'bg_BG': TranslationLoader.bgDic, 'hu_HU': TranslationLoader.huDic,
'kk_KK': TranslationLoader.kkDic, 'bg_BG': TranslationLoader.bgDic,
'bn_BN': TranslationLoader.bnDic, 'kk_KK': TranslationLoader.kkDic,
'hr_HR': TranslationLoader.hrDic, 'bn_BN': TranslationLoader.bnDic,
'th_TH': TranslationLoader.thDic, 'hr_HR': TranslationLoader.hrDic,
'id_ID': TranslationLoader.idDic, 'th_TH': TranslationLoader.thDic,
'fi_FI': TranslationLoader.fiDic, 'id_ID': TranslationLoader.idDic,
'da_DA': TranslationLoader.daDic, 'fi_FI': TranslationLoader.fiDic,
}; 'da_DA': TranslationLoader.daDic,
};
void updateLocal(Locale l) => Get.updateLocale(l); void updateLocal(Locale l) => Get.updateLocale(l);
} }

View File

@ -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+2024120301完善网关功能
# 1.0.85+2024120401修复网关问题打包给谢敬调试 # 1.0.85+2024120401修复网关问题打包给谢敬调试
version: 1.0.85+2024120402 version: 1.0.85+2024121201
environment: environment:
sdk: '>=2.12.0 <3.0.0' sdk: '>=2.12.0 <3.0.0'