语言的本地缓存

This commit is contained in:
czz
2025-07-30 18:10:25 +08:00
parent 300e3b31f6
commit 8fa1907370
5 changed files with 70 additions and 50 deletions

View File

@@ -235,28 +235,19 @@ class MyUtils {
return '$dateStr $weekStr'; return '$dateStr $weekStr';
} }
// static String getFormatEnglishDate(int millis) { static String getFormatEnglishDate(int millis, {bool showWeekday = true}) {
// final date = DateTime.fromMillisecondsSinceEpoch(millis); final date = DateTime.fromMillisecondsSinceEpoch(millis);
// const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
// final weekday = weekdays[date.weekday - 1];
// final formattedDate =
// '${date.year}/${date.month.toString().padLeft(2, '0')}/${date.day.toString().padLeft(2, '0')}';
// return '$weekday, $formattedDate';
// // return '$formattedDate';
// }
static String getFormatEnglishDate(int millis) {
final date = DateTime.fromMillisecondsSinceEpoch(millis);
// 英文星期简写 // 英文星期简写
const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']; const weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
final weekday = weekdays[date.weekday - 1]; final weekday = weekdays[date.weekday - 1];
// 格式化年月日2025/07/21 // 格式化年月日2025/07/21
final formattedDate = final formattedDate =
'${date.year}/${date.month.toString().padLeft(2, '0')}/${date.day.toString().padLeft(2, '0')}'; '${date.year}/${date.month.toString().padLeft(2, '0')}/${date.day.toString().padLeft(2, '0')}';
if (!showWeekday) return formattedDate;
return '$weekday, $formattedDate'; return '$weekday, $formattedDate';
} }
} }
Color stringToColor(String hexColor) { Color stringToColor(String hexColor) {

View File

@@ -111,6 +111,6 @@ class AppLanguage extends Translations {
} }
bool isChinese() { bool isChinese() {
return _currentLanguageCode == "zh_CN"; return _currentLanguageCode == "zh_CN"||_currentLanguageCode == "zh_TW";
} }
} }

View File

@@ -88,7 +88,8 @@ Future<void> main() async {
// final selectapp = "th"; // final selectapp = "th";
final selectapp = "mht"; final selectapp = "mht";
// await AppLanguage().loadLanguage("en_US"); // await AppLanguage().loadLanguage("en_US");
await AppLanguage().loadLanguage("zh_CN", project: selectapp);
await loadLanguageSetting(selectapp);
await initLanguageSetting(); await initLanguageSetting();
WidgetsFlutterBinding.ensureInitialized(); WidgetsFlutterBinding.ensureInitialized();
@@ -98,6 +99,7 @@ Future<void> main() async {
await initLocalStorage(); await initLocalStorage();
initEasyDartModule(); initEasyDartModule();
await initLogin(); await initLogin();
await messageStatus(); await messageStatus();
startMessagePolling(selectapp); startMessagePolling(selectapp);
@@ -117,6 +119,14 @@ Future<void> main() async {
}); });
} }
loadLanguageSetting(String selectapp) async {
await ef.kvdb.openDir("mht");
String? language = await ef.kvdb.read("mht/language");
language ??= 'zh_CN';
await AppLanguage().loadLanguage(language, project: selectapp);
}
void initwebService() { void initwebService() {
ef.kvRoot.appmanger = MiniAppManager(assetsfilePath: 'assets/file.json'); ef.kvRoot.appmanger = MiniAppManager(assetsfilePath: 'assets/file.json');
ef.kvRoot.appmanger.register(["mhtControl"]); ef.kvRoot.appmanger.register(["mhtControl"]);

View File

@@ -1,6 +1,7 @@
import 'package:ef/ef.dart'; import 'package:ef/ef.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:get_storage/get_storage.dart';
import 'package:vbvs_app/common/color/appConstants.dart'; import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart'; import 'package:vbvs_app/common/util/MyUtils.dart';
@@ -136,6 +137,15 @@ class _LanguagePageState extends State<LanguagePage> {
.personnelList.value; .personnelList.value;
deviceController.getHomeSleeps( deviceController.getHomeSleeps(
list[0]["mac"], context); list[0]["mac"], context);
try {
// ef.kv.set("language",
// language.language_code);
ef.kvdb.write("mht/language",
language.language_code);
} catch (e) {
print(e);
}
}, },
child: Row( child: Row(
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
@@ -168,33 +178,42 @@ class _LanguagePageState extends State<LanguagePage> {
value: language.selected ?? value: language.selected ??
false, // 根据 selected 状态显示选中或未选中 false, // 根据 selected 状态显示选中或未选中
onChanged: (value) async { onChanged: (value) async {
// 保持原有的状态更改逻辑 // // 保持原有的状态更改逻辑
for (var lang // for (var lang
in languageController // in languageController
.languageList) { // .languageList) {
lang.selected = (lang == // lang.selected = (lang ==
language); // 更新选中状态 // language); // 更新选中状态
} // }
await AppLanguage() // await AppLanguage()
.loadLanguage( // .loadLanguage(
language // language
.language_code, // .language_code,
project: // project:
"mht"); // 加载语言 // "mht"); // 加载语言
languageController // languageController
.updateAll(); // 更新操作 // .updateAll(); // 更新操作
languageController // languageController
.selectLanguage // .selectLanguage
.value = language; // .value = language;
final list = // final list =
deviceController // deviceController
.personnelList // .personnelList
.value; // .value;
deviceController // deviceController
.getHomeSleeps( // .getHomeSleeps(
list[0]["mac"], // list[0]["mac"],
context); // context);
// final box = GetStorage();
// try {
// box.write(
// 'language',
// language
// .language_code);
// } catch (e) {
// print(e);
// }
}, },
), ),
].divide(SizedBox( ].divide(SizedBox(

View File

@@ -442,7 +442,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
width: double.infinity, width: double.infinity,
child: Padding( child: Padding(
padding: EdgeInsetsDirectional.fromSTEB( padding: EdgeInsetsDirectional.fromSTEB(
0.rpx, 32.rpx, 30.rpx, 32.rpx), 30.rpx, 32.rpx, 30.rpx, 32.rpx),
child: getTimeWidget(), child: getTimeWidget(),
), ),
), ),
@@ -1116,7 +1116,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
selectedDate.subtract(Duration(days: selectedDate.weekday - 1)); selectedDate.subtract(Duration(days: selectedDate.weekday - 1));
final endOfWeek = startOfWeek.add(const Duration(days: 6)); final endOfWeek = startOfWeek.add(const Duration(days: 6));
displayText = displayText =
'${MyUtils.getFormatEnglishDate(startOfWeek.millisecondsSinceEpoch)} - ${MyUtils.getFormatEnglishDate(endOfWeek.millisecondsSinceEpoch)}'; '${MyUtils.getFormatEnglishDate(startOfWeek.millisecondsSinceEpoch, showWeekday: false)} - ${MyUtils.getFormatEnglishDate(endOfWeek.millisecondsSinceEpoch, showWeekday: false)}';
} else if (type == 3) { } else if (type == 3) {
// Monthly Report // Monthly Report
displayText = displayText =