多语言

This commit is contained in:
czz
2025-07-30 16:48:48 +08:00
parent 92b6896176
commit 300e3b31f6
96 changed files with 3741 additions and 2710 deletions

View File

@@ -7,6 +7,7 @@ import 'package:flutter/services.dart';
import 'package:vbvs_app/common/util/CommonVariables.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';
import 'package:vbvs_app/controller/user_info_controller.dart';
import 'package:vbvs_app/model/WebSocketMessage.dart';
import 'package:vbvs_app/pages/common/bezier_bottom_navigation_bar.dart';
@@ -17,14 +18,35 @@ import 'package:vbvs_app/pages/mh_page/new_mine_page.dart';
import 'package:vbvs_app/pages/mh_page/test/WebviewTestModel.dart';
import 'package:EasyDartModule/EasyDartModule.dart' as edm;
// class MainPageBBottomChange extends StatefulWidget {
// // 全局 key用于静态访问 _HomePageState
// static final GlobalKey<_HomePageState> globalKey =
// GlobalKey<_HomePageState>();
// MainPageBBottomChange({Key? key}) : super(key: globalKey);
// // 静态方法:外部调用,跳转 tab
// static void jumpTo(int index) {
// final state = globalKey.currentState;
// if (state != null) {
// state.switchTab(index);
// }
// }
// static int? getCurrentIndex() {
// final state = globalKey.currentState;
// return state?.selectedIndex;
// }
// @override
// _HomePageState createState() => _HomePageState();
// }
class MainPageBBottomChange extends StatefulWidget {
// 全局 key用于静态访问 _HomePageState
static final GlobalKey<_HomePageState> globalKey =
GlobalKey<_HomePageState>();
final GlobalKey<_HomePageState>? externalKey;
MainPageBBottomChange({Key? key}) : super(key: globalKey);
MainPageBBottomChange({Key? key, this.externalKey})
: super(key: key ?? externalKey);
// 静态方法:外部调用,跳转 tab
static void jumpTo(int index) {
final state = globalKey.currentState;
if (state != null) {
@@ -37,6 +59,9 @@ class MainPageBBottomChange extends StatefulWidget {
return state?.selectedIndex;
}
static final GlobalKey<_HomePageState> globalKey =
GlobalKey<_HomePageState>();
@override
_HomePageState createState() => _HomePageState();
}
@@ -47,8 +72,8 @@ class _HomePageState extends State<MainPageBBottomChange>
late AnimationController _controller;
late Animation<double> _positionAnimation;
double currentPosition = 0.0;
final List<String> titles = ['首页', '报告', '控制', '我的'];
MHLanguageController languageController = Get.find();
List<String> get titles => ['首页', '报告', '控制', '我的'];
final List<String> path = [
"assets/images/bar_home.svg",
"assets/images/bar_heart.svg",
@@ -113,11 +138,15 @@ class _HomePageState extends State<MainPageBBottomChange>
DateTime? _lastBackPressedTime; // 记录上一次返回的时间
@override
Widget build(BuildContext context) {
return PopScope(
return Obx(() {
final currentLanguage =
languageController.selectLanguage.value; // 监听此变量变化
return PopScope(
canPop: false,
onPopInvokedWithResult: (disposition, result) async {
if (Platform.isAndroid) {
var flag = await _handleBackPressed(context); // 自定义返回逻辑
var flag = await _handleBackPressed(context);
if (flag) {
SystemNavigator.pop();
}
@@ -134,9 +163,13 @@ class _HomePageState extends State<MainPageBBottomChange>
animatedPosition: _positionAnimation.value,
onTap: _onTabTapped,
path: path,
titles: titles,
titles: titles
.map((title) => title.tr) // 这里依赖 .tr 会自动根据 Get.locale 变化刷新
.toList(),
),
));
),
);
});
}
void switchTab(int index) {
@@ -226,7 +259,7 @@ class _HomePageState extends State<MainPageBBottomChange>
//如果当前没有连接该设备,则返回
return;
}
if (webviewTestController.selectDevice['blueToothStatus']!=2) {
if (webviewTestController.selectDevice['blueToothStatus'] != 2) {
return;
}
edm.EasyDartModule.websocket.sendData(jsonEncode(WebSocketMessage(