更新控制页多语言

This commit is contained in:
wyf
2025-08-08 10:22:51 +08:00
parent 88a03a361c
commit 48d8645fd9
15 changed files with 51 additions and 29 deletions

View File

@@ -34,7 +34,7 @@ class _SleepCalendarWidgetState extends State<SleepCalendarWidget> {
CalendarController calendarController = Get.find();
RxMap sleepDate = <dynamic, dynamic>{}.obs;
RxList showLabel = <dynamic>[
{"level": 5, "name": "无报告", "color": "#9E9E9E"}
{"level": 5, "name": "无报告".tr, "color": "#9E9E9E"}
].obs;
// @override
// void initState() {
@@ -149,7 +149,7 @@ class _SleepCalendarWidgetState extends State<SleepCalendarWidget> {
),
),
Obx(() => Text(
'${calendarController.displayedMonth.value.year}${calendarController.displayedMonth.value.month}',
'${calendarController.displayedMonth.value.year}/${calendarController.displayedMonth.value.month}',
style: TextStyle(
color: Colors.white,
fontSize: 30.rpx,

View File

@@ -19,9 +19,7 @@ import 'package:vbvs_app/common/util/CheckNetwork.dart';
import 'package:vbvs_app/common/util/CommonVariables.dart';
import 'package:vbvs_app/common/util/Dio.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/common/util/requestWithLog.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/date/CalendarController.dart';
import 'package:vbvs_app/controller/device/blueteeth_bind_controller.dart';
import 'package:vbvs_app/controller/device/body_device_controller.dart';

View File

@@ -5,6 +5,7 @@ import 'package:ef/ef.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:vbvs_app/common/util/CommonVariables.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/NullDataComponentWidget.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/controller/mh_controller/mh_language_controller.dart';
@@ -195,6 +196,9 @@ class _HomePageState extends State<MainPageBBottomChange>
UserInfoController userInfoController = Get.find();
WebviewTestController webviewTestController = Get.find();
if (index == 2) {
WebviewTestController webviewTestController = Get.find();
webviewTestController.web.jsbridge?.dart
.switchLanguage(mhLanguageController.selectLanguage.value!.language_code);
await webviewTestController.web.jsbridge?.dart.pageActive(true);
//激活websocket
edm.EasyDartModule.websocket.sendData(jsonEncode(WebSocketMessage(

View File

@@ -12,6 +12,7 @@ import 'package:vbvs_app/enum/APPPackageType.dart';
import 'package:vbvs_app/language/AppLanguage.dart';
import 'package:vbvs_app/pages/device_bind/componnet/FancyCircleCheckbox.dart';
import 'package:vbvs_app/pages/mh_page/homepage/controller/mht_home_controller.dart';
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
class LanguagePage extends StatefulWidget {
const LanguagePage({super.key});
@@ -33,7 +34,6 @@ class _LanguagePageState extends State<LanguagePage> {
Widget build(BuildContext context) {
return LayoutBuilder(
builder: (context, bodySize) => GestureDetector(
// onTap: () => FocusScope.of(context).unfocus(),,
child: Container(
decoration: BoxDecoration(
image: DecorationImage(
@@ -147,8 +147,17 @@ class _LanguagePageState extends State<LanguagePage> {
try {
// ef.kv.set("language",
// language.language_code);
ef.kvdb.write("mht/language",
await ef.kvdb.write(
"mht/language",
language.language_code);
//todo 通知语言
WebviewTestController
webviewTestController =
Get.find();
webviewTestController
.web.jsbridge?.dart
.switchLanguage(language
.language_code);
} catch (e) {
print(e);
}
@@ -192,7 +201,6 @@ class _LanguagePageState extends State<LanguagePage> {
lang.selected = (lang ==
language); // 根据选择更新状态
}
await AppLanguage().loadLanguage(
language
.language_code,
@@ -222,6 +230,15 @@ class _LanguagePageState extends State<LanguagePage> {
"mht/language",
language
.language_code);
//todo 通知语言
WebviewTestController
webviewTestController =
Get.find();
webviewTestController
.web.jsbridge?.dart
.switchLanguage(language
.language_code);
} catch (e) {
print(e);
}
@@ -239,15 +256,6 @@ class _LanguagePageState extends State<LanguagePage> {
);
}),
),
// ClickableContainer(
// backgroundColor: Colors.transparent, // 容器背景色
// highlightColor: themeController
// .currentColor.sc21, // 点击时的背景色
// padding: EdgeInsetsDirectional.fromSTEB(
// 40.rpx, 0.rpx, 40.rpx, 0.rpx),
// onTap: () {},
// child: Container(),
// ),
]
.divide(SizedBox(height: 0.rpx))
.addToStart(SizedBox(height: 30.rpx))

View File

@@ -278,8 +278,8 @@ class _BluetoothPageState extends State<BluetoothPage> {
"/mhtWifiAfterPage",
arguments: obsData,
),
// _buildMenuButton(
// context, '睡眠习惯', "/sleepHabitPage"),
_buildMenuButton(
context, '睡眠习惯', "/sleepHabitPage"),
_buildMenuButton(
context, '分享设备'.tr, "/deviceSharePage",
arguments: obsData),
@@ -447,10 +447,11 @@ class _BluetoothPageState extends State<BluetoothPage> {
onTap(); // 自定义点击逻辑优先执行
} else if (path?.isNotEmpty == true) {
if (path == "/sleepHabitPage") {
Get.back();
WebviewTestController webviewTestController = Get.find();
webviewTestController.web.jsbridge?.dart.toSleepHabit();
webviewTestController.web.jsbridge?.dart.toSleepHabit();
return;
}
}
final result = await Get.toNamed(path!, arguments: arguments);
if (result != null && onResult != null) {
onResult(result); // ✅ 有回调就处理返回值

View File

@@ -151,7 +151,8 @@ class DeviceInfoWidget extends GetView {
try {
WebviewTestController webviewTestController =
Get.find();
webviewTestController.web.jsbridge?.dart
.switchLanguage(mhLanguageController.selectLanguage.value!.language_code);
webviewTestController.web.jsbridge?.dart
.pageActive(false);
// await Future.delayed(Duration(seconds: 1));

View File

@@ -4,6 +4,7 @@ import 'package:flutterflow_ui/flutterflow_ui.dart';
import 'package:vbvs_app/common/color/appConstants.dart';
import 'package:vbvs_app/common/util/DailyLogUtils.dart';
import 'package:vbvs_app/common/util/FitTool.dart';
import 'package:vbvs_app/common/util/MyUtils.dart';
import 'package:vbvs_app/component/tool/CustomCard.dart';
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
import 'package:vbvs_app/pages/main_bottom/component/main_page_b_bottom_change.dart';
@@ -85,7 +86,11 @@ class _HomeDeviceStausWidgetState extends State<HomeDeviceStausWidget> {
onTap: () async {
try {
var device = widget.deviceStatus;
WebviewTestController webviewTestController = Get.find();
webviewTestController.web.jsbridge?.dart.switchLanguage(
mhLanguageController
.selectLanguage.value!.language_code);
webviewTestController.web.jsbridge?.dart
.pageActive(false);
await Future.delayed(Duration(seconds: 1));

View File

@@ -98,7 +98,7 @@ class _SnoreViewWidgetWidgetState extends State<BreathePauseNewWidget> {
Container(
child: Text(
// "呼吸暂停监测介绍。",
"呼吸暂停监测是指用户在睡眠过程中产生的呼吸暂停的图表说明。",
"呼吸暂停监测是指用户在睡眠过程中产生的呼吸暂停的图表说明。".tr,
style: TextStyle(
fontSize: 26.rpx,
color: Colors.black,

View File

@@ -128,7 +128,7 @@ class _SnoreViewWidgetWidgetState extends State<SnoreViewWidgetWidget> {
Container(
child: Text(
// "打鼾监测介绍。",
"打鼾监测是指用户在睡眠过程中打鼾频次的图表说明。",
"打鼾监测是指用户在睡眠过程中打鼾频次的图表说明。".tr,
style: TextStyle(
fontSize: 26.rpx,
color: Colors.black,