基本完成APP的所有页面中的语言切换支持的开发和设计
This commit is contained in:
@@ -2,6 +2,7 @@ import 'package:cc_ui_kit/cc_ui_kit.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:maibu_satabot_v2/core/localization/app_localizations.dart';
|
||||
|
||||
import '../bloc/remote_control_cubit.dart';
|
||||
import 'emergency_stop_button.dart';
|
||||
@@ -41,7 +42,7 @@ class CenterControlArea extends StatelessWidget {
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [
|
||||
_buildSliderBox(expandedWidth, "底盘", true,context),
|
||||
_buildSliderBox(expandedWidth, AppLocalizations.of(context).translate('remote_control.chassis'), true,context),
|
||||
SizedBox(height: totalWidth * 0.01),
|
||||
],
|
||||
),
|
||||
@@ -57,9 +58,9 @@ class CenterControlArea extends StatelessWidget {
|
||||
|
||||
SizedBox(height: totalWidth * 0.05),
|
||||
|
||||
const Text(
|
||||
'双击空白处切换视角',
|
||||
style: TextStyle(fontSize: 8, color: Colors.grey),
|
||||
Text(
|
||||
AppLocalizations.of(context).translate('remote_control.switch_view_hint'),
|
||||
style: const TextStyle(fontSize: 8, color: Colors.grey),
|
||||
),
|
||||
],
|
||||
),
|
||||
@@ -71,7 +72,7 @@ class CenterControlArea extends StatelessWidget {
|
||||
width: expandedWidth,
|
||||
child: Column(
|
||||
mainAxisAlignment: MainAxisAlignment.end,
|
||||
children: [_buildSliderBox(expandedWidth, "割刀", false,context)],
|
||||
children: [_buildSliderBox(expandedWidth, AppLocalizations.of(context).translate('remote_control.mower'), false,context)],
|
||||
),
|
||||
),
|
||||
],
|
||||
@@ -93,7 +94,9 @@ class CenterControlArea extends StatelessWidget {
|
||||
svgStart: "assets/svgs/remote_up.svg",
|
||||
svgCenter: switch (label) {
|
||||
"割刀" => "assets/svgs/remote_scissors.svg",
|
||||
"Mower" => "assets/svgs/remote_scissors.svg",
|
||||
"底盘" => "assets/svgs/remote_layers.svg",
|
||||
"Chassis" => "assets/svgs/remote_layers.svg",
|
||||
_ => "assets/svgs/remote_layers.svg", // 下划线表示默认值
|
||||
},
|
||||
svgEnd: "assets/svgs/remote_down.svg",
|
||||
@@ -111,12 +114,15 @@ class CenterControlArea extends StatelessWidget {
|
||||
void _handleSliderAction(String label, String action, BuildContext context) {
|
||||
debugPrint('🎯 [Slider 业务] label: $label, action: $action');
|
||||
|
||||
final loc = AppLocalizations.of(context);
|
||||
// 🔥 根据 label 区分不同的设备
|
||||
switch (label) {
|
||||
case "底盘":
|
||||
case "Chassis":
|
||||
_handleChassisAction(action, context);
|
||||
break;
|
||||
case "割刀":
|
||||
case "Mower":
|
||||
_handleMowerAction(action, context);
|
||||
break;
|
||||
default:
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:vibration/vibration.dart';
|
||||
import 'package:maibu_satabot_v2/core/localization/app_localizations.dart';
|
||||
|
||||
import '../bloc/remote_control_cubit.dart';
|
||||
|
||||
@@ -158,7 +159,9 @@ class _EmergencyStopButtonState extends State<EmergencyStopButton>
|
||||
),
|
||||
const SizedBox(height: 6),
|
||||
Text(
|
||||
isEmergencyActive ? "急停中" : "急停",
|
||||
isEmergencyActive
|
||||
? AppLocalizations.of(context).translate('remote_control.emergency_stopping')
|
||||
: AppLocalizations.of(context).translate('remote_control.emergency_stop'),
|
||||
style: TextStyle(
|
||||
color: Colors.white.withValues(alpha: 0.5),
|
||||
fontSize: 14,
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'package:cc_ui_kit/cc_ui_kit.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:vibration/vibration.dart';
|
||||
import 'package:maibu_satabot_v2/core/localization/app_localizations.dart';
|
||||
|
||||
import '../bloc/remote_control_cubit.dart';
|
||||
|
||||
@@ -63,7 +64,7 @@ class _LeftJoystickAreaState extends State<LeftJoystickArea> {
|
||||
),
|
||||
const SizedBox(height: 18),
|
||||
Text(
|
||||
"前后控制",
|
||||
AppLocalizations.of(context).translate('remote_control.forward_backward'),
|
||||
style: TextStyle(
|
||||
color: Colors.white.withOpacity(0.5),
|
||||
fontSize: 12,
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:vibration/vibration.dart';
|
||||
import 'package:maibu_satabot_v2/core/localization/app_localizations.dart';
|
||||
|
||||
import '../bloc/remote_control_cubit.dart';
|
||||
|
||||
@@ -58,7 +59,7 @@ class _RightJoystickAreaState extends State<RightJoystickArea> {
|
||||
),
|
||||
const SizedBox(height: 18),
|
||||
Text(
|
||||
"左右控制",
|
||||
AppLocalizations.of(context).translate('remote_control.left_right'),
|
||||
style: TextStyle(
|
||||
color: Colors.white.withOpacity(0.5),
|
||||
fontSize: 12,
|
||||
|
||||
@@ -2,6 +2,7 @@ import 'package:flutter/material.dart';
|
||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||
import 'package:flutter_svg/svg.dart';
|
||||
import 'package:go_router/go_router.dart';
|
||||
import 'package:maibu_satabot_v2/core/localization/app_localizations.dart';
|
||||
import 'package:maibu_satabot_v2/features/remote_control/presentation/bloc/remote_control_state.dart';
|
||||
import 'package:maibu_satabot_v2/features/remote_control/presentation/widgets/status_chip.dart';
|
||||
import 'package:cc_ui_kit/cc_ui_kit.dart';
|
||||
@@ -51,7 +52,9 @@ class TopStatusBar extends StatelessWidget {
|
||||
|
||||
// 2. 控制状态 (对应 StatusChipLeft)
|
||||
StatusChip(
|
||||
text: remoteState.hasPermission ? "正在控制" : "未在控制",
|
||||
text: remoteState.hasPermission
|
||||
? AppLocalizations.of(context).translate('remote_control.controlling')
|
||||
: AppLocalizations.of(context).translate('remote_control.not_controlling'),
|
||||
color: remoteState.hasPermission
|
||||
? const Color(0xFF1DB954)
|
||||
: Colors.red,
|
||||
@@ -81,7 +84,7 @@ class TopStatusBar extends StatelessWidget {
|
||||
// const SizedBox(width: 8),
|
||||
// 5. 火技能按钮 (对应 SmallFunctionButton)
|
||||
//_buildIconButton("assets/svgs/fire.svg", () {}),
|
||||
_buildSliderBox("火技能按钮", false,context),
|
||||
_buildSliderBox(AppLocalizations.of(context).translate('remote_control.fire_skill'), false,context),
|
||||
|
||||
const Spacer(),
|
||||
_buildExpandIconButton(
|
||||
@@ -127,7 +130,7 @@ class TopStatusBar extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
const SizedBox(width: 8),
|
||||
_buildControlModeChip(remoteState.runningStatusModel.controlMode),
|
||||
_buildControlModeChip(remoteState.runningStatusModel.controlMode, context),
|
||||
const SizedBox(width: 8),
|
||||
_buildVoltageChip(remoteState.runningStatusModel.voltage),
|
||||
const SizedBox(width: 8),
|
||||
@@ -245,10 +248,10 @@ class TopStatusBar extends StatelessWidget {
|
||||
);
|
||||
}
|
||||
|
||||
Widget _buildControlModeChip(String mode) {
|
||||
Widget _buildControlModeChip(String mode, BuildContext context) {
|
||||
String displayText;
|
||||
if(mode == ''){
|
||||
displayText = '无模式';
|
||||
displayText = AppLocalizations.of(context).translate('remote_control.mode_none');
|
||||
}else{
|
||||
displayText = mode;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user