Эх сурвалжийг харах

移动端测量项中文支持

gavin.chen 2 жил өмнө
parent
commit
2b82015dc7

+ 31 - 13
lib/view/mobile_view/mobile_right_panel/mobile_measure_tool.dart

@@ -6,6 +6,7 @@ import 'package:fis_measure/interfaces/process/items/terms.dart';
 import 'package:fis_measure/interfaces/process/items/types.dart';
 import 'package:fis_measure/interfaces/process/player/play_controller.dart';
 import 'package:fis_measure/interfaces/process/workspace/application.dart';
+import 'package:fis_measure/process/language/measure_language.dart';
 import 'package:fis_measure/process/workspace/measure_data_controller.dart';
 import 'package:fis_measure/process/workspace/measure_handler.dart';
 import 'package:fis_measure/view/mobile_view/mobile_right_panel/mobile_more_measure_item_dialog.dart';
@@ -130,19 +131,7 @@ class _MobileMeasureSelector extends FState<MobileMeasureSelector> {
       mainAxisSize: MainAxisSize.max,
       children: [
         FExpanded(child: FContainer()),
-        FText(
-          i18nBook.measure.currentMeasureTool.t,
-          textAlign: TextAlign.center,
-          style: const TextStyle(color: Colors.grey),
-        ),
-        const FSizedBox(
-          height: 10,
-        ),
-        FText(
-          activeName,
-          textAlign: TextAlign.center,
-          style: const TextStyle(color: Colors.white),
-        ),
+        ..._buildCurrentMeasureItem(),
         FExpanded(child: FContainer()),
         _buildCancelCurrMeasureItemBtn(),
         _buildChangeMoreMeasureItem(),
@@ -150,6 +139,35 @@ class _MobileMeasureSelector extends FState<MobileMeasureSelector> {
     );
   }
 
+  List<FWidget> _buildCurrentMeasureItem() {
+    final measureLanguage = MeasureLanguage();
+    final displayName = measureLanguage.t('measure', activeName);
+    return [
+      FText(
+        i18nBook.measure.currentMeasureTool.t,
+        textAlign: TextAlign.center,
+        style: const TextStyle(color: Colors.grey),
+      ),
+      const FSizedBox(
+        height: 10,
+      ),
+      FText(
+        activeName,
+        textAlign: TextAlign.center,
+        style: const TextStyle(color: Colors.white),
+      ),
+      const FSizedBox(
+        height: 10,
+      ),
+      if (i18nBook.isCurrentChinese)
+        FText(
+          displayName,
+          textAlign: TextAlign.center,
+          style: const TextStyle(color: Colors.grey, fontSize: 12),
+        ),
+    ];
+  }
+
   /// 构建基础测量项按钮
   FWidget _buildBaseMeasureBtn(
       ItemMeta itemMeta, bool ifActive, String displayName, IconData icon) {

+ 12 - 18
lib/view/mobile_view/mobile_right_panel/mobile_more_measure_item_dialog.dart

@@ -3,6 +3,7 @@ import 'package:fis_i18n/i18n.dart';
 import 'package:fis_jsonrpc/services/remedical.m.dart';
 import 'package:fis_measure/interfaces/process/items/item_metas.dart';
 import 'package:fis_measure/process/items/item_meta_convert.dart';
+import 'package:fis_measure/process/language/measure_language.dart';
 import 'package:fis_measure/view/mobile_view/mobile_right_panel/mobile_measure_tool.dart';
 import 'package:fis_ui/index.dart';
 import 'package:flutter/material.dart';
@@ -25,6 +26,9 @@ class _MobileMoreMeasureItemDialogState
   final scrollController = ScrollController();
   final searchBarController = TextEditingController();
 
+  /// 测量语言包
+  final measureLanguage = MeasureLanguage();
+
   /// 当前模式的下标
   int currentModeIndex = 0;
 
@@ -63,13 +67,7 @@ class _MobileMoreMeasureItemDialogState
   /// 构建更多测量项弹窗容器
   FWidget _buildMoreMeasureItemDialog() {
     return FDialog(
-      // title: _buildDialogTitle(),
-      // titleColor: const Color.fromARGB(255, 36, 36, 36),
       backgroundColor: const Color.fromARGB(255, 36, 36, 36),
-      // isDefault: false,
-      // onCancel: () {
-      //   Get.back();
-      // },
       shape: const RoundedRectangleBorder(
         borderRadius: BorderRadius.all(
           Radius.circular(7),
@@ -93,16 +91,6 @@ class _MobileMoreMeasureItemDialogState
           )
         ],
       ),
-      // bottomButton: FContainer(
-      //   height: 20,
-      //   decoration: const BoxDecoration(
-      //     color: Color.fromARGB(255, 36, 36, 36),
-      //     borderRadius: BorderRadius.only(
-      //       bottomLeft: Radius.circular(7),
-      //       bottomRight: Radius.circular(7),
-      //     ),
-      //   ),
-      // ),
     );
   }
 
@@ -196,6 +184,10 @@ class _MobileMoreMeasureItemDialogState
     ItemMetaDTO itemMeta,
   ) {
     final bool isActive = widget.activeItemName == itemMeta.name;
+    String displayName = itemMeta.name ?? '';
+    if (i18nBook.isCurrentChinese) {
+      displayName = measureLanguage.t('measure', itemMeta.description ?? '');
+    }
     return FInkWell(
       onTap: () {
         if (isActive) return;
@@ -214,12 +206,14 @@ class _MobileMoreMeasureItemDialogState
       child: Container(
         decoration: BoxDecoration(
           border: Border.all(
-              color: isActive ? Colors.white : Color.fromARGB(255, 71, 71, 71)),
+              color: isActive
+                  ? Colors.white
+                  : const Color.fromARGB(255, 71, 71, 71)),
           borderRadius: BorderRadius.circular(4),
         ),
         child: FCenter(
           child: FText(
-            itemMeta.name ?? '',
+            displayName,
             textAlign: TextAlign.center,
             style: TextStyle(
               fontSize: 12,