语言的本地缓存

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,16 +235,7 @@ class MyUtils {
return '$dateStr $weekStr';
}
// static String getFormatEnglishDate(int 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) {
static String getFormatEnglishDate(int millis, {bool showWeekday = true}) {
final date = DateTime.fromMillisecondsSinceEpoch(millis);
// 英文星期简写
@@ -254,9 +245,9 @@ static String getFormatEnglishDate(int millis) {
// 格式化年月日2025/07/21
final formattedDate =
'${date.year}/${date.month.toString().padLeft(2, '0')}/${date.day.toString().padLeft(2, '0')}';
if (!showWeekday) return formattedDate;
return '$weekday, $formattedDate';
}
}
}
Color stringToColor(String hexColor) {

View File

@@ -111,6 +111,6 @@ class AppLanguage extends Translations {
}
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 = "mht";
// await AppLanguage().loadLanguage("en_US");
await AppLanguage().loadLanguage("zh_CN", project: selectapp);
await loadLanguageSetting(selectapp);
await initLanguageSetting();
WidgetsFlutterBinding.ensureInitialized();
@@ -98,6 +99,7 @@ Future<void> main() async {
await initLocalStorage();
initEasyDartModule();
await initLogin();
await messageStatus();
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() {
ef.kvRoot.appmanger = MiniAppManager(assetsfilePath: 'assets/file.json');
ef.kvRoot.appmanger.register(["mhtControl"]);

View File

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

View File

@@ -442,7 +442,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
width: double.infinity,
child: Padding(
padding: EdgeInsetsDirectional.fromSTEB(
0.rpx, 32.rpx, 30.rpx, 32.rpx),
30.rpx, 32.rpx, 30.rpx, 32.rpx),
child: getTimeWidget(),
),
),
@@ -1116,7 +1116,7 @@ class _NewSleepReportPageState extends State<NewSleepReportPage> {
selectedDate.subtract(Duration(days: selectedDate.weekday - 1));
final endOfWeek = startOfWeek.add(const Duration(days: 6));
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) {
// Monthly Report
displayText =