Explorar el Código

feat(设置):
- 新增“最小用户名长度”配置项,允许设置1-6位的用户名最小长度。
- `CommonConstants`: 用户名正则`REGEX_USERNAME`改为动态从配置中获取最小长度。
- `AddUserDialog`: 添加用户时,启用并应用新的用户名长度校验。
- 新增“允许共锁人员登录共锁”的全局开关配置。

refactor(初始化):
- `InitDeviceRegistrationKeyAndLockFragment`: 调整应用首次初始化流程,在钥匙和锁注册完成后,直接标记初始化成功并跳转至登录页,跳过后续步骤。

fix(UI):
- `fragment_job_execute`, `fragment_exception_job`: 修复布局问题,将底部操作按钮固定在屏幕下方,避免其随页面内容滚动而消失。

fix(设置):
- `SettingsFragment`: 将“自动登出时间”的单位由秒更改为分钟,并同步更新其显示、校验逻辑(范围调整为1-10分钟)及数据存储转换。

周文健 hace 1 mes
padre
commit
8ac4fb46fd

+ 21 - 1
app/src/main/assets/i18n/en-US.json

@@ -2094,6 +2094,11 @@
     "type": "text",
     "value": "Please wait for [{0}] to complete locking"
   },
+  "ticket_name": {
+    "key": "ticket_name",
+    "type": "text",
+    "value": "Ticket Name"
+  },
   "point_detail": {
     "key": "point_detail",
     "type": "text",
@@ -4027,7 +4032,7 @@
   "auto_logout_time": {
     "key": "auto_logout_time",
     "type": "text",
-    "value": "Auto logout time (min 60, max 1800, unit: s):"
+    "value": "Auto logout time (min 1, max 10, unit: min):"
   },
   "please_input_max_fingerprint_entries_size": {
     "key": "please_input_max_fingerprint_entries_size",
@@ -4158,5 +4163,20 @@
     "key": "excp_job_name_title",
     "type": "text",
     "value": "Exception Job Name"
+  },
+  "allow_colocker_login_to_colock": {
+    "key": "allow_colocker_login_to_colock",
+    "type": "text",
+    "value": "Allow co-locker login to coLock"
+  },
+  "please_input_username_min_size": {
+    "key": "please_input_username_min_size",
+    "type": "text",
+    "value": "Please input username min size"
+  },
+  "username_min_size": {
+    "key": "username_min_size",
+    "type": "text",
+    "value": "Username min size(1-6)"
   }
 }

+ 16 - 1
app/src/main/assets/i18n/zh-CN.json

@@ -4022,7 +4022,7 @@
   "auto_logout_time": {
     "key": "auto_logout_time",
     "type": "text",
-    "value": "自动登出时间(最低60,最高1800,单位:s):"
+    "value": "自动登出时间(最低1,最高10,单位:分钟):"
   },
   "please_input_max_fingerprint_entries_size": {
     "key": "please_input_max_fingerprint_entries_size",
@@ -4163,5 +4163,20 @@
     "key": "excp_job_name_title",
     "type": "text",
     "value": "异常作业名称"
+  },
+  "allow_colocker_login_to_colock": {
+    "key": "allow_colocker_login_to_colock",
+    "type": "text",
+    "value": "允许共锁人登录共锁"
+  },
+  "please_input_username_min_size": {
+    "key": "please_input_username_min_size",
+    "type": "text",
+    "value": "请输入最小用户名长度"
+  },
+  "username_min_size": {
+    "key": "username_min_size",
+    "type": "text",
+    "value": "最小用户名长度(1-6)"
   }
 }

+ 12 - 1
app/src/main/java/com/grkj/iscs/features/init/fragment/InitDeviceRegistrationKeyAndLockFragment.kt

@@ -1,5 +1,6 @@
 package com.grkj.iscs.features.init.fragment
 
+import android.content.Intent
 import androidx.core.view.isVisible
 import androidx.fragment.app.viewModels
 import com.drake.brv.BindingAdapter
@@ -27,10 +28,12 @@ import com.grkj.iscs.databinding.ItemDeviceRegistrationKeyLayoutBinding
 import com.grkj.iscs.databinding.ItemDeviceRegistrationLockBinding
 import com.grkj.iscs.databinding.ItemDeviceRegistrationLockLayoutBinding
 import com.grkj.iscs.features.init.viewmodel.InitDeviceRegistrationKeyAndLockViewModel
+import com.grkj.iscs.features.login.activity.LoginActivity
 import com.grkj.shared.model.EventBean
 import com.grkj.ui_base.base.BaseFragment
 import com.grkj.ui_base.utils.CommonUtils
 import com.sik.sikcore.extension.getMMKVData
+import com.sik.sikcore.extension.saveMMKVData
 import com.sik.sikcore.extension.setDebouncedClickListener
 import com.sik.sikcore.thread.ThreadUtils
 import dagger.hilt.android.AndroidEntryPoint
@@ -63,7 +66,15 @@ class InitDeviceRegistrationKeyAndLockFragment :
                 return@setDebouncedClickListener
             }
             viewModel.deviceRegistrationData().observe(this) {
-                navController.navigate(R.id.action_initDeviceRegistrationKeyAndLockFragment_to_initCardRegistrationFragment)
+                MMKVConstants.APP_INIT.saveMMKVData(true)
+                requireActivity().startActivity(
+                    Intent(
+                        requireActivity(),
+                        LoginActivity::class.java
+                    )
+                )
+                requireActivity().finish()
+//                navController.navigate(R.id.action_initDeviceRegistrationKeyAndLockFragment_to_initCardRegistrationFragment)
             }
         }
         binding.dockRv.apply {

+ 4 - 4
app/src/main/java/com/grkj/iscs/features/main/dialog/data_manage/AddUserDialog.kt

@@ -94,10 +94,10 @@ class AddUserDialog(
             return false
         }
         val username = binding.usernameEt.text.toString()
-//        if (!RegexUtils.isMatch(username, CommonConstants.REGEX_USERNAME)){
-//            PopTip.build().tip(CommonUtils.getStr("username_regex_tip"))
-//            return false
-//        }
+        if (!RegexUtils.isMatch(username, CommonConstants.REGEX_USERNAME)){
+            PopTip.build().tip(CommonUtils.getStr("username_regex_tip"))
+            return false
+        }
         if (binding.nicknameEt.text.isNullOrBlank()) {
             PopTip.build().tip(CommonUtils.getStr("please_input_nickname"))
             return false

+ 16 - 3
app/src/main/java/com/grkj/iscs/features/main/fragment/user_info/SettingsFragment.kt

@@ -52,7 +52,7 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>() {
             "${
                 MMKVConstants.KEY_AUTO_LOGOUT_TIME.getMMKVData(
                     CommonConstants.DEFAULT_AUTO_LOGOUT_TIME
-                ) / 1000
+                ) / 1000 / 60
             }"
         )
         binding.hardwareMode.text =
@@ -66,16 +66,25 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>() {
                 hardwareModeChanged = true
             }
         }
+        binding.usernameMinSize.setText(
+            MMKVConstants.KEY_USERNAME_MIN_SIZE.getMMKVData(1).toString()
+        )
+        binding.allowColockerColock.isChecked =
+            MMKVConstants.KEY_ALLOW_COLOCKER_COLOCK.getMMKVData(false)
         binding.confirm.setDebouncedClickListener {
             if (checkData()) {
                 MMKVConstants.KEY_MAX_FINGERPRINT_INSERT.saveMMKVData(
                     binding.maxFingerprintInsert.text.toString().toInt()
                 )
                 val autoLogoutTime =
-                    binding.autoLogoutTime.text.toString().toLong() * 1000
+                    binding.autoLogoutTime.text.toString().toLong() * 1000 * 60
                 MMKVConstants.KEY_AUTO_LOGOUT_TIME.saveMMKVData(
                     autoLogoutTime
                 )
+                MMKVConstants.KEY_USERNAME_MIN_SIZE.saveMMKVData(
+                    binding.usernameMinSize.text.toString().toInt()
+                )
+                MMKVConstants.KEY_ALLOW_COLOCKER_COLOCK.saveMMKVData(binding.allowColockerColock.isChecked)
                 CountdownTimer.reset(autoLogoutTime)
                 if (hardwareModeChanged) {
                     showToast(CommonUtils.getStr("save_success"))
@@ -108,10 +117,14 @@ class SettingsFragment : BaseFragment<FragmentSettingsBinding>() {
             showToast(CommonUtils.getStr("please_input_auto_logout_time"))
             return false
         }
-        if (binding.autoLogoutTime.text.toString().toLong() !in 60..1800) {
+        if (binding.autoLogoutTime.text.toString().toLong() !in 1..10) {
             showToast(CommonUtils.getStr("please_input_auto_logout_time_correct"))
             return false
         }
+        if (binding.usernameMinSize.text.toString().toLong() !in 1..6) {
+            showToast(CommonUtils.getStr("please_input_username_min_size"))
+            return false
+        }
         var includeDescendant = binding.includeDescendant.text.toString()
         if (includeDescendant.isEmpty()) {
             includeDescendant = "0"

+ 380 - 370
app/src/main/res/layout-land/fragment_job_execute.xml

@@ -30,10 +30,10 @@
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="@dimen/iscs_space_2"
                 android:layout_weight="1"
-                app:i18nKey='@{"job_manage_title"}'
                 android:textColor="?attr/colorTextPrimary"
                 android:textSize="@dimen/iscs_text_md"
-                android:textStyle="bold" />
+                android:textStyle="bold"
+                app:i18nKey='@{"job_manage_title"}' />
 
             <TextView
                 android:id="@+id/back"
@@ -43,424 +43,434 @@
                 android:layout_marginLeft="@dimen/iscs_space_2"
                 android:background="@drawable/common_btn_secondary"
                 android:drawableLeft="@mipmap/icon_back"
-                android:drawableTint="?attr/colorPrimary"
                 android:drawablePadding="@dimen/iscs_space_2"
+                android:drawableTint="?attr/colorPrimary"
                 android:gravity="center"
                 android:minHeight="@dimen/common_btn_height"
                 android:paddingHorizontal="@dimen/iscs_space_4"
-                app:i18nKey='@{"back"}'
                 android:textColor="?attr/colorTextPrimary"
-                android:textSize="@dimen/iscs_text_md" />
+                android:textSize="@dimen/iscs_text_md"
+                app:i18nKey='@{"back"}' />
         </LinearLayout>
 
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/divider_line_space"
             android:background="?attr/colorDivider" />
-        <androidx.core.widget.NestedScrollView
+
+        <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:fillViewport="true">
+            android:layout_height="match_parent">
 
-            <FrameLayout
-                android:id="@+id/full_screen_root_layout"
+            <androidx.core.widget.NestedScrollView
                 android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                android:layout_height="match_parent"
+                android:layout_above="@+id/button_layout"
+                android:fillViewport="true">
 
-                <LinearLayout
+                <FrameLayout
+                    android:id="@+id/full_screen_root_layout"
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical">
-
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/step_rv"
-                        android:layout_width="match_parent"
-                        android:layout_height="@dimen/step_rv_height"
-                        android:layout_marginHorizontal="@dimen/iscs_space_2"
-                        android:layout_marginTop="@dimen/iscs_space_4" />
+                    android:layout_height="match_parent">
 
                     <LinearLayout
                         android:layout_width="match_parent"
-                        android:layout_height="60dp"
-                        android:layout_marginHorizontal="@dimen/iscs_space_4"
-                        android:background="@drawable/common_layout_bg"
-                        android:divider="@drawable/divider_table"
-                        android:gravity="center"
-                        android:orientation="horizontal"
-                        android:showDividers="middle">
-
-                        <FrameLayout
-                            android:id="@+id/description_tab"
-                            android:layout_width="wrap_content"
-                            android:layout_height="match_parent"
-                            android:background="@drawable/bg_common_select">
-
-                            <ImageView
-                                android:layout_width="@dimen/job_execute_info_size"
-                                android:layout_height="@dimen/job_execute_info_size"
-                                android:layout_gravity="center"
-                                android:layout_marginHorizontal="@dimen/iscs_space_2"
-                                android:src="@mipmap/icon_job_execute_info" />
-
-                        </FrameLayout>
-
-                        <RelativeLayout
-                            android:id="@+id/locker_tab"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/bg_common_select">
-
-                            <TextView
-                                android:id="@+id/lock_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:layout_toLeftOf="@+id/lock_iv"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:gravity="center"
-                                android:textSize="@dimen/iscs_text_md"
-                                app:i18nKey='@{"job_execute_tab_title_lock"}' />
-
-                            <ImageView
-                                android:id="@+id/lock_iv"
-                                android:layout_width="@dimen/job_execute_tab_icon_size"
-                                android:layout_height="@dimen/job_execute_tab_icon_size"
-                                android:layout_centerInParent="true"
-                                android:layout_marginHorizontal="5dp"
-                                android:src="@mipmap/icon_job_execute_lock" />
-
-                            <TextView
-                                android:id="@+id/lock_info"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:layout_toRightOf="@+id/lock_iv"
-                                android:textSize="@dimen/iscs_text_md" />
-                        </RelativeLayout>
-
-                        <RelativeLayout
-                            android:id="@+id/colocker_tab"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/bg_common_select">
+                        android:layout_height="match_parent"
+                        android:orientation="vertical">
 
-                            <TextView
-                                android:id="@+id/colock_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:layout_toLeftOf="@+id/colock_iv"
-                                android:gravity="center"
-                                android:textSize="@dimen/iscs_text_md"
-                                app:i18nKey='@{"job_execute_tab_title_colock"}' />
-
-                            <ImageView
-                                android:id="@+id/colock_iv"
-                                android:layout_width="@dimen/job_execute_tab_icon_size"
-                                android:layout_height="@dimen/job_execute_tab_icon_size"
-                                android:layout_centerInParent="true"
-                                android:layout_marginHorizontal="5dp"
-                                android:src="@mipmap/icon_job_execute_colock" />
-
-                            <TextView
-                                android:id="@+id/colock_info"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:layout_toRightOf="@+id/colock_iv"
-                                android:textSize="@dimen/iscs_text_md" />
-                        </RelativeLayout>
-                    </LinearLayout>
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/step_rv"
+                            android:layout_width="match_parent"
+                            android:layout_height="@dimen/step_rv_height"
+                            android:layout_marginHorizontal="@dimen/iscs_space_2"
+                            android:layout_marginTop="@dimen/iscs_space_4" />
 
-                    <LinearLayout
-                        android:id="@+id/data_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_marginHorizontal="@dimen/iscs_space_4"
-                        android:layout_marginTop="@dimen/iscs_space_2"
-                        android:layout_weight="1"
-                        android:background="@drawable/common_card_bg"
-                        android:clipChildren="false"
-                        android:clipToPadding="false"
-                        android:divider="@drawable/divider_table"
-                        android:orientation="vertical"
-                        android:showDividers="middle">
-
-                        <RelativeLayout
+                        <LinearLayout
                             android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
+                            android:layout_height="60dp"
+                            android:layout_marginHorizontal="@dimen/iscs_space_4"
                             android:background="@drawable/common_layout_bg"
-                            android:elevation="@dimen/elevation_3"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:paddingVertical="@dimen/iscs_space_1">
+                            android:divider="@drawable/divider_table"
+                            android:gravity="center"
+                            android:orientation="horizontal"
+                            android:showDividers="middle">
 
-                            <TextView
-                                android:id="@+id/data_title_tv"
+                            <FrameLayout
+                                android:id="@+id/description_tab"
                                 android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerInParent="true"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md" />
+                                android:layout_height="match_parent"
+                                android:background="@drawable/bg_common_select">
 
-                            <ImageView
-                                android:id="@+id/full_screen"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_alignParentRight="true"
-                                android:layout_centerVertical="true"
-                                android:layout_marginRight="@dimen/iscs_space_2"
-                                android:tint="?attr/colorPrimary"
-                                android:src="@mipmap/icon_full_screen" />
-                        </RelativeLayout>
-
-                        <FrameLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="match_parent">
+                                <ImageView
+                                    android:layout_width="@dimen/job_execute_info_size"
+                                    android:layout_height="@dimen/job_execute_info_size"
+                                    android:layout_gravity="center"
+                                    android:layout_marginHorizontal="@dimen/iscs_space_2"
+                                    android:src="@mipmap/icon_job_execute_info" />
 
-                            <LinearLayout
-                                android:id="@+id/lock_status_layout"
-                                android:layout_width="match_parent"
+                            </FrameLayout>
+
+                            <RelativeLayout
+                                android:id="@+id/locker_tab"
+                                android:layout_width="0dp"
                                 android:layout_height="match_parent"
-                                android:orientation="vertical"
-                                android:visibility="gone">
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_common_select">
 
-                                <LinearLayout
-                                    android:layout_width="match_parent"
+                                <TextView
+                                    android:id="@+id/lock_tv"
+                                    android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
-                                    android:background="@drawable/common_layout_bg"
-                                    android:divider="@drawable/divider_table"
-                                    android:showDividers="middle">
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"point_name_tv"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"point_manage_point_group"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"point_manage_point_function"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"lock_status"}' />
-                                </LinearLayout>
+                                    android:layout_centerVertical="true"
+                                    android:layout_toLeftOf="@+id/lock_iv"
+                                    android:gravity="center"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md"
+                                    app:i18nKey='@{"job_execute_tab_title_lock"}' />
+
+                                <ImageView
+                                    android:id="@+id/lock_iv"
+                                    android:layout_width="@dimen/job_execute_tab_icon_size"
+                                    android:layout_height="@dimen/job_execute_tab_icon_size"
+                                    android:layout_centerInParent="true"
+                                    android:layout_marginHorizontal="5dp"
+                                    android:src="@mipmap/icon_job_execute_lock" />
+
+                                <TextView
+                                    android:id="@+id/lock_info"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toRightOf="@+id/lock_iv"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
+                            </RelativeLayout>
+
+                            <RelativeLayout
+                                android:id="@+id/colocker_tab"
+                                android:layout_width="0dp"
+                                android:layout_height="match_parent"
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_common_select">
 
-                                <androidx.recyclerview.widget.RecyclerView
-                                    android:id="@+id/list_rv"
-                                    android:layout_width="match_parent"
-                                    android:layout_height="match_parent"
-                                    android:background="@drawable/common_layout_bg" />
-                            </LinearLayout>
+                                <TextView
+                                    android:id="@+id/colock_tv"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toLeftOf="@+id/colock_iv"
+                                    android:gravity="center"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md"
+                                    app:i18nKey='@{"job_execute_tab_title_colock"}' />
+
+                                <ImageView
+                                    android:id="@+id/colock_iv"
+                                    android:layout_width="@dimen/job_execute_tab_icon_size"
+                                    android:layout_height="@dimen/job_execute_tab_icon_size"
+                                    android:layout_centerInParent="true"
+                                    android:layout_marginHorizontal="5dp"
+                                    android:src="@mipmap/icon_job_execute_colock" />
+
+                                <TextView
+                                    android:id="@+id/colock_info"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toRightOf="@+id/colock_iv"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
+                            </RelativeLayout>
+                        </LinearLayout>
+
+                        <LinearLayout
+                            android:id="@+id/data_layout"
+                            android:layout_width="match_parent"
+                            android:layout_height="match_parent"
+                            android:layout_marginHorizontal="@dimen/iscs_space_4"
+                            android:layout_marginTop="@dimen/iscs_space_2"
+                            android:layout_weight="1"
+                            android:background="@drawable/common_card_bg"
+                            android:clipChildren="false"
+                            android:clipToPadding="false"
+                            android:divider="@drawable/divider_table"
+                            android:orientation="vertical"
+                            android:showDividers="middle">
+
+                            <RelativeLayout
+                                android:layout_width="match_parent"
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/common_layout_bg"
+                                android:elevation="@dimen/elevation_3"
+                                android:paddingVertical="@dimen/iscs_space_1"
+                                android:textColor="?attr/colorTextPrimary">
+
+                                <TextView
+                                    android:id="@+id/data_title_tv"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerInParent="true"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
 
-                            <LinearLayout
-                                android:id="@+id/colocker_layout"
+                                <ImageView
+                                    android:id="@+id/full_screen"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_alignParentRight="true"
+                                    android:layout_centerVertical="true"
+                                    android:layout_marginRight="@dimen/iscs_space_2"
+                                    android:src="@mipmap/icon_full_screen"
+                                    android:tint="?attr/colorPrimary" />
+                            </RelativeLayout>
+
+                            <FrameLayout
                                 android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:divider="@drawable/divider_table"
-                                android:orientation="vertical"
-                                android:showDividers="middle"
-                                android:visibility="gone">
+                                android:layout_height="match_parent">
 
                                 <LinearLayout
+                                    android:id="@+id/lock_status_layout"
                                     android:layout_width="match_parent"
-                                    android:layout_height="wrap_content"
-                                    android:background="@drawable/common_layout_bg"
-                                    android:divider="@drawable/divider_table"
-                                    android:showDividers="middle">
+                                    android:layout_height="match_parent"
+                                    android:orientation="vertical"
+                                    android:visibility="gone">
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
+                                        android:layout_height="wrap_content"
+                                        android:background="@drawable/common_layout_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:showDividers="middle">
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_name_tv"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_manage_point_group"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_manage_point_function"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"lock_status"}' />
+                                    </LinearLayout>
 
-                                    <TextView
-                                        android:id="@+id/wait_to_colock"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_1"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"wait_to_colock"}' />
-
-                                    <TextView
-                                        android:id="@+id/already_colock"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_1"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"already_colock"}' />
-
-                                    <TextView
-                                        android:id="@+id/already_uncolock"
-                                        android:layout_width="0dp"
+                                    <androidx.recyclerview.widget.RecyclerView
+                                        android:id="@+id/list_rv"
+                                        android:layout_width="match_parent"
                                         android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_1"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        android:textColor="?attr/colorTextPrimary"
-                                        app:i18nKey='@{"already_uncolock"}' />
+                                        android:background="@drawable/common_layout_bg" />
                                 </LinearLayout>
 
                                 <LinearLayout
+                                    android:id="@+id/colocker_layout"
                                     android:layout_width="match_parent"
                                     android:layout_height="match_parent"
-                                    android:background="@drawable/common_card_bg"
                                     android:divider="@drawable/divider_table"
-                                    android:orientation="horizontal"
-                                    android:showDividers="middle">
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/wait_to_colock_rv"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/already_colock_rv"
-                                        android:layout_width="0dp"
+                                    android:orientation="vertical"
+                                    android:showDividers="middle"
+                                    android:visibility="gone">
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
+                                        android:layout_height="wrap_content"
+                                        android:background="@drawable/common_layout_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:showDividers="middle">
+
+                                        <TextView
+                                            android:id="@+id/wait_to_colock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_1"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"wait_to_colock"}' />
+
+                                        <TextView
+                                            android:id="@+id/already_colock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_1"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"already_colock"}' />
+
+                                        <TextView
+                                            android:id="@+id/already_uncolock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_1"
+                                            android:textColor="?attr/colorTextPrimary"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"already_uncolock"}' />
+                                    </LinearLayout>
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
                                         android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/already_uncolock_rv"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
+                                        android:background="@drawable/common_card_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:orientation="horizontal"
+                                        android:showDividers="middle">
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/wait_to_colock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/already_colock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/already_uncolock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+                                    </LinearLayout>
                                 </LinearLayout>
-                            </LinearLayout>
 
-                            <TextView
-                                android:id="@+id/step_description_tv"
-                                android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:textSize="@dimen/iscs_text_md"
-                                android:textColor="?attr/colorTextPrimary"
+                                <TextView
+                                    android:id="@+id/step_description_tv"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="match_parent"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md"
+                                    android:visibility="gone" />
+                            </FrameLayout>
+
+                            <View
+                                android:id="@+id/space_view"
+                                android:layout_width="1dp"
+                                android:layout_height="0dp"
+                                android:layout_weight="1"
                                 android:visibility="gone" />
-                        </FrameLayout>
+                        </LinearLayout>
 
-                        <View
-                            android:id="@+id/space_view"
-                            android:layout_width="1dp"
-                            android:layout_height="0dp"
-                            android:layout_weight="1"
-                            android:visibility="gone" />
                     </LinearLayout>
+                </FrameLayout>
+            </androidx.core.widget.NestedScrollView>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="right"
-                        android:minHeight="@dimen/btn_layout_min_height"
-                        android:orientation="horizontal"
-                        android:paddingHorizontal="@dimen/iscs_space_4"
-                        android:paddingVertical="@dimen/iscs_space_2">
-
-                        <TextView
-                            android:id="@+id/to_lock"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_cancel"
-                            android:drawableLeft="@drawable/icon_ticket_lock"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"go_locking"}' />
-
-                        <TextView
-                            android:id="@+id/to_unlock"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_confirm"
-                            android:drawableLeft="@drawable/icon_ticket_unlock"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"go_unlocking"}' />
-
-                        <TextView
-                            android:id="@+id/cancel_job"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_cancel"
-                            android:drawableLeft="@drawable/icon_close"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"cancel_job"}' />
-
-                        <TextView
-                            android:id="@+id/finish_job"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_confirm"
-                            android:drawableLeft="@mipmap/icon_confirm"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"finish_the_job"}' />
-                    </LinearLayout>
-                </LinearLayout>
-            </FrameLayout>
-        </androidx.core.widget.NestedScrollView>
+            <LinearLayout
+                android:id="@+id/button_layout"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:gravity="right"
+                android:minHeight="@dimen/btn_layout_min_height"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/iscs_space_4"
+                android:paddingVertical="@dimen/iscs_space_2">
+
+                <TextView
+                    android:id="@+id/to_lock"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_cancel"
+                    android:drawableLeft="@drawable/icon_ticket_lock"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"go_locking"}' />
+
+                <TextView
+                    android:id="@+id/to_unlock"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_confirm"
+                    android:drawableLeft="@drawable/icon_ticket_unlock"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"go_unlocking"}' />
+
+                <TextView
+                    android:id="@+id/cancel_job"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_cancel"
+                    android:drawableLeft="@drawable/icon_close"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"cancel_job"}' />
+
+                <TextView
+                    android:id="@+id/finish_job"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_confirm"
+                    android:drawableLeft="@mipmap/icon_confirm"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"finish_the_job"}' />
+            </LinearLayout>
+        </RelativeLayout>
     </LinearLayout>
 </layout>

+ 377 - 367
app/src/main/res/layout/fragment_exception_job.xml

@@ -31,10 +31,10 @@
                 android:layout_height="wrap_content"
                 android:layout_marginLeft="@dimen/iscs_space_2"
                 android:layout_weight="1"
-                app:i18nKey='@{"exception_job_title"}'
                 android:textColor="?attr/colorTextPrimary"
                 android:textSize="@dimen/iscs_text_md"
-                android:textStyle="bold" />
+                android:textStyle="bold"
+                app:i18nKey='@{"exception_job_title"}' />
 
             <TextView
                 android:id="@+id/back"
@@ -49,423 +49,433 @@
                 android:gravity="center"
                 android:minHeight="@dimen/common_btn_height"
                 android:paddingHorizontal="@dimen/iscs_space_4"
-                app:i18nKey='@{"back"}'
                 android:textColor="?attr/colorTextPrimary"
-                android:textSize="@dimen/iscs_text_md" />
+                android:textSize="@dimen/iscs_text_md"
+                app:i18nKey='@{"back"}' />
         </LinearLayout>
 
         <View
             android:layout_width="match_parent"
             android:layout_height="@dimen/divider_line_space"
             android:background="?attr/colorBlack" />
-        <androidx.core.widget.NestedScrollView
+
+        <RelativeLayout
             android:layout_width="match_parent"
-            android:layout_height="match_parent"
-            android:fillViewport="true">
+            android:layout_height="match_parent">
 
-            <FrameLayout
-                android:id="@+id/full_screen_root_layout"
+            <androidx.core.widget.NestedScrollView
                 android:layout_width="match_parent"
-                android:layout_height="match_parent">
+                android:layout_height="match_parent"
+                android:layout_above="@+id/button_layout"
+                android:fillViewport="true">
 
-                <LinearLayout
+                <FrameLayout
+                    android:id="@+id/full_screen_root_layout"
                     android:layout_width="match_parent"
-                    android:layout_height="match_parent"
-                    android:orientation="vertical">
-
-                    <TableLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginHorizontal="@dimen/iscs_space_4"
-                        android:layout_marginTop="@dimen/iscs_space_4"
-                        android:background="@drawable/table_border"
-                        android:shrinkColumns="1"
-                        android:stretchColumns="1">
-
-                        <TableRow>
-
-                            <TextView
-                                style="@style/TableCellKey"
-                                app:i18nKey='@{"excp_job_name_title"}' />
-
-                            <TextView
-                                android:id="@+id/exception_job"
-                                style="@style/TableCellValue"
-                                tools:text="仓位异常" />
-                        </TableRow>
-
-                        <TableRow>
-
-                            <TextView
-                                style="@style/TableCellKey"
-                                app:i18nKey='@{"exception_description"}' />
-
-                            <TextView
-                                android:id="@+id/exception_description"
-                                style="@style/TableCellValue"
-                                tools:text="仓位2-7" />
-                        </TableRow>
-                    </TableLayout>
-
-                    <androidx.recyclerview.widget.RecyclerView
-                        android:id="@+id/step_rv"
-                        android:layout_width="match_parent"
-                        android:layout_height="@dimen/step_rv_height"
-                        android:layout_marginHorizontal="@dimen/iscs_space_2"
-                        android:layout_marginTop="@dimen/iscs_space_4" />
+                    android:layout_height="match_parent">
 
                     <LinearLayout
                         android:layout_width="match_parent"
-                        android:layout_height="60dp"
-                        android:layout_marginHorizontal="@dimen/iscs_space_4"
-                        android:background="@drawable/common_layout_bg"
-                        android:divider="@drawable/divider_table"
-                        android:gravity="center"
-                        android:orientation="horizontal"
-                        android:showDividers="middle">
-
-                        <FrameLayout
-                            android:id="@+id/description_tab"
-                            android:layout_width="wrap_content"
-                            android:layout_height="match_parent"
-                            android:background="@drawable/bg_common_select">
-
-                            <ImageView
-                                android:layout_width="@dimen/job_execute_info_size"
-                                android:layout_height="@dimen/job_execute_info_size"
-                                android:layout_gravity="center"
-                                android:layout_marginHorizontal="@dimen/iscs_space_2"
-                                android:src="@mipmap/icon_job_execute_info" />
+                        android:layout_height="match_parent"
+                        android:orientation="vertical">
 
-                        </FrameLayout>
+                        <TableLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginHorizontal="@dimen/iscs_space_4"
+                            android:layout_marginTop="@dimen/iscs_space_4"
+                            android:background="@drawable/table_border"
+                            android:shrinkColumns="1"
+                            android:stretchColumns="1">
+
+                            <TableRow>
+
+                                <TextView
+                                    style="@style/TableCellKey"
+                                    app:i18nKey='@{"excp_job_name_title"}' />
+
+                                <TextView
+                                    android:id="@+id/exception_job"
+                                    style="@style/TableCellValue"
+                                    tools:text="仓位异常" />
+                            </TableRow>
+
+                            <TableRow>
+
+                                <TextView
+                                    style="@style/TableCellKey"
+                                    app:i18nKey='@{"exception_description"}' />
+
+                                <TextView
+                                    android:id="@+id/exception_description"
+                                    style="@style/TableCellValue"
+                                    tools:text="仓位2-7" />
+                            </TableRow>
+                        </TableLayout>
+
+                        <androidx.recyclerview.widget.RecyclerView
+                            android:id="@+id/step_rv"
+                            android:layout_width="match_parent"
+                            android:layout_height="@dimen/step_rv_height"
+                            android:layout_marginHorizontal="@dimen/iscs_space_2"
+                            android:layout_marginTop="@dimen/iscs_space_4" />
 
-                        <RelativeLayout
-                            android:id="@+id/locker_tab"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/bg_common_select">
+                        <LinearLayout
+                            android:layout_width="match_parent"
+                            android:layout_height="60dp"
+                            android:layout_marginHorizontal="@dimen/iscs_space_4"
+                            android:background="@drawable/common_layout_bg"
+                            android:divider="@drawable/divider_table"
+                            android:gravity="center"
+                            android:orientation="horizontal"
+                            android:showDividers="middle">
 
-                            <TextView
-                                android:id="@+id/lock_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:layout_toLeftOf="@+id/lock_iv"
-                                android:gravity="center"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md"
-                                app:i18nKey='@{"job_execute_tab_title_lock"}' />
-
-                            <ImageView
-                                android:id="@+id/lock_iv"
-                                android:layout_width="@dimen/job_execute_tab_icon_size"
-                                android:layout_height="30dp"
-                                android:layout_centerInParent="true"
-                                android:layout_marginHorizontal="5dp"
-                                android:src="@mipmap/icon_job_execute_lock" />
-
-                            <TextView
-                                android:id="@+id/lock_info"
+                            <FrameLayout
+                                android:id="@+id/description_tab"
                                 android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:layout_toRightOf="@+id/lock_iv"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md" />
-                        </RelativeLayout>
+                                android:layout_height="match_parent"
+                                android:background="@drawable/bg_common_select">
 
+                                <ImageView
+                                    android:layout_width="@dimen/job_execute_info_size"
+                                    android:layout_height="@dimen/job_execute_info_size"
+                                    android:layout_gravity="center"
+                                    android:layout_marginHorizontal="@dimen/iscs_space_2"
+                                    android:src="@mipmap/icon_job_execute_info" />
 
-                        <RelativeLayout
-                            android:id="@+id/colocker_tab"
-                            android:layout_width="0dp"
-                            android:layout_height="match_parent"
-                            android:layout_weight="1"
-                            android:background="@drawable/bg_common_select">
+                            </FrameLayout>
 
-                            <TextView
-                                android:id="@+id/colock_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:layout_toLeftOf="@+id/colock_iv"
-                                android:gravity="center"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md"
-                                app:i18nKey='@{"job_execute_tab_title_colock"}' />
-
-                            <ImageView
-                                android:id="@+id/colock_iv"
-                                android:layout_width="30dp"
-                                android:layout_height="30dp"
-                                android:layout_centerInParent="true"
-                                android:layout_marginHorizontal="5dp"
-                                android:src="@mipmap/icon_job_execute_colock" />
-
-                            <TextView
-                                android:id="@+id/colock_info"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerVertical="true"
-                                android:layout_toRightOf="@+id/colock_iv"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md" />
-                        </RelativeLayout>
-                    </LinearLayout>
+                            <RelativeLayout
+                                android:id="@+id/locker_tab"
+                                android:layout_width="0dp"
+                                android:layout_height="match_parent"
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_common_select">
 
-                    <TextView
-                        android:id="@+id/step_tip_tv"
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:layout_marginLeft="@dimen/iscs_space_4"
-                        android:layout_marginTop="@dimen/iscs_space_2"
-                        android:drawableLeft="@mipmap/tip"
-                        android:drawablePadding="@dimen/iscs_space_2"
-                        android:gravity="center_vertical"
-                        android:textColor="?attr/colorTextPrimary"
-                        android:textSize="@dimen/iscs_text_md"
-                        android:visibility="gone" />
+                                <TextView
+                                    android:id="@+id/lock_tv"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toLeftOf="@+id/lock_iv"
+                                    android:gravity="center"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md"
+                                    app:i18nKey='@{"job_execute_tab_title_lock"}' />
+
+                                <ImageView
+                                    android:id="@+id/lock_iv"
+                                    android:layout_width="@dimen/job_execute_tab_icon_size"
+                                    android:layout_height="30dp"
+                                    android:layout_centerInParent="true"
+                                    android:layout_marginHorizontal="5dp"
+                                    android:src="@mipmap/icon_job_execute_lock" />
+
+                                <TextView
+                                    android:id="@+id/lock_info"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toRightOf="@+id/lock_iv"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
+                            </RelativeLayout>
 
-                    <LinearLayout
-                        android:id="@+id/data_layout"
-                        android:layout_width="match_parent"
-                        android:layout_height="match_parent"
-                        android:layout_marginHorizontal="@dimen/iscs_space_4"
-                        android:layout_marginTop="@dimen/iscs_space_2"
-                        android:layout_weight="1"
-                        android:background="@drawable/common_layout_bg"
-                        android:clipChildren="false"
-                        android:clipToPadding="false"
-                        android:divider="@drawable/divider_table"
-                        android:orientation="vertical"
-                        android:showDividers="middle">
-
-                        <RelativeLayout
-                            android:layout_width="match_parent"
-                            android:layout_height="wrap_content"
-                            android:background="@drawable/common_layout_bg"
-                            android:elevation="@dimen/elevation_3"
-                            android:paddingVertical="@dimen/iscs_space_2">
 
-                            <TextView
-                                android:id="@+id/data_title_tv"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_centerInParent="true"
-                                android:textColor="?attr/colorTextPrimary"
-                                android:textSize="@dimen/iscs_text_md" />
+                            <RelativeLayout
+                                android:id="@+id/colocker_tab"
+                                android:layout_width="0dp"
+                                android:layout_height="match_parent"
+                                android:layout_weight="1"
+                                android:background="@drawable/bg_common_select">
 
-                            <ImageView
-                                android:id="@+id/full_screen"
-                                android:layout_width="wrap_content"
-                                android:layout_height="wrap_content"
-                                android:layout_alignParentRight="true"
-                                android:layout_centerVertical="true"
-                                android:layout_marginRight="@dimen/iscs_space_2"
-                                android:src="@mipmap/icon_full_screen" />
-                        </RelativeLayout>
+                                <TextView
+                                    android:id="@+id/colock_tv"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toLeftOf="@+id/colock_iv"
+                                    android:gravity="center"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md"
+                                    app:i18nKey='@{"job_execute_tab_title_colock"}' />
+
+                                <ImageView
+                                    android:id="@+id/colock_iv"
+                                    android:layout_width="30dp"
+                                    android:layout_height="30dp"
+                                    android:layout_centerInParent="true"
+                                    android:layout_marginHorizontal="5dp"
+                                    android:src="@mipmap/icon_job_execute_colock" />
+
+                                <TextView
+                                    android:id="@+id/colock_info"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_centerVertical="true"
+                                    android:layout_toRightOf="@+id/colock_iv"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
+                            </RelativeLayout>
+                        </LinearLayout>
+
+                        <TextView
+                            android:id="@+id/step_tip_tv"
+                            android:layout_width="match_parent"
+                            android:layout_height="wrap_content"
+                            android:layout_marginLeft="@dimen/iscs_space_4"
+                            android:layout_marginTop="@dimen/iscs_space_2"
+                            android:drawableLeft="@mipmap/tip"
+                            android:drawablePadding="@dimen/iscs_space_2"
+                            android:gravity="center_vertical"
+                            android:textColor="?attr/colorTextPrimary"
+                            android:textSize="@dimen/iscs_text_md"
+                            android:visibility="gone" />
 
-                        <FrameLayout
+                        <LinearLayout
+                            android:id="@+id/data_layout"
                             android:layout_width="match_parent"
-                            android:layout_height="match_parent">
+                            android:layout_height="match_parent"
+                            android:layout_marginHorizontal="@dimen/iscs_space_4"
+                            android:layout_marginTop="@dimen/iscs_space_2"
+                            android:layout_weight="1"
+                            android:background="@drawable/common_layout_bg"
+                            android:clipChildren="false"
+                            android:clipToPadding="false"
+                            android:divider="@drawable/divider_table"
+                            android:orientation="vertical"
+                            android:showDividers="middle">
 
-                            <LinearLayout
-                                android:id="@+id/lock_status_layout"
+                            <RelativeLayout
                                 android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:orientation="vertical"
-                                android:visibility="gone">
+                                android:layout_height="wrap_content"
+                                android:background="@drawable/common_layout_bg"
+                                android:elevation="@dimen/elevation_3"
+                                android:paddingVertical="@dimen/iscs_space_2">
 
-                                <LinearLayout
-                                    android:layout_width="match_parent"
+                                <TextView
+                                    android:id="@+id/data_title_tv"
+                                    android:layout_width="wrap_content"
                                     android:layout_height="wrap_content"
-                                    android:background="@drawable/common_layout_bg"
-                                    android:divider="@drawable/divider_table"
-                                    android:showDividers="middle">
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"point_name_tv"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"point_manage_point_group"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"point_manage_point_function"}' />
-
-                                    <TextView
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"lock_status"}' />
-                                </LinearLayout>
+                                    android:layout_centerInParent="true"
+                                    android:textColor="?attr/colorTextPrimary"
+                                    android:textSize="@dimen/iscs_text_md" />
 
-                                <androidx.recyclerview.widget.RecyclerView
-                                    android:id="@+id/list_rv"
-                                    android:layout_width="match_parent"
-                                    android:layout_height="match_parent"
-                                    android:background="@drawable/common_layout_bg" />
-                            </LinearLayout>
+                                <ImageView
+                                    android:id="@+id/full_screen"
+                                    android:layout_width="wrap_content"
+                                    android:layout_height="wrap_content"
+                                    android:layout_alignParentRight="true"
+                                    android:layout_centerVertical="true"
+                                    android:layout_marginRight="@dimen/iscs_space_2"
+                                    android:src="@mipmap/icon_full_screen" />
+                            </RelativeLayout>
 
-                            <LinearLayout
-                                android:id="@+id/colocker_layout"
+                            <FrameLayout
                                 android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:divider="@drawable/divider_table"
-                                android:orientation="vertical"
-                                android:showDividers="middle"
-                                android:visibility="gone">
+                                android:layout_height="match_parent">
 
                                 <LinearLayout
+                                    android:id="@+id/lock_status_layout"
                                     android:layout_width="match_parent"
-                                    android:layout_height="wrap_content"
-                                    android:background="@drawable/common_layout_bg"
-                                    android:divider="@drawable/divider_table"
-                                    android:showDividers="middle">
+                                    android:layout_height="match_parent"
+                                    android:orientation="vertical"
+                                    android:visibility="gone">
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
+                                        android:layout_height="wrap_content"
+                                        android:background="@drawable/common_layout_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:showDividers="middle">
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_name_tv"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_manage_point_group"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"point_manage_point_function"}' />
+
+                                        <TextView
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"lock_status"}' />
+                                    </LinearLayout>
 
-                                    <TextView
-                                        android:id="@+id/wait_to_colock"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"wait_to_colock"}' />
-
-                                    <TextView
-                                        android:id="@+id/already_colock"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"already_colock"}' />
-
-                                    <TextView
-                                        android:id="@+id/already_uncolock"
-                                        android:layout_width="0dp"
+                                    <androidx.recyclerview.widget.RecyclerView
+                                        android:id="@+id/list_rv"
+                                        android:layout_width="match_parent"
                                         android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:gravity="center"
-                                        android:paddingVertical="@dimen/iscs_space_2"
-                                        android:textSize="@dimen/iscs_text_md"
-                                        app:i18nKey='@{"already_uncolock"}' />
+                                        android:background="@drawable/common_layout_bg" />
                                 </LinearLayout>
 
                                 <LinearLayout
+                                    android:id="@+id/colocker_layout"
                                     android:layout_width="match_parent"
                                     android:layout_height="match_parent"
-                                    android:background="@drawable/common_layout_bg"
                                     android:divider="@drawable/divider_table"
-                                    android:orientation="horizontal"
-                                    android:showDividers="middle">
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/wait_to_colock_rv"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/already_colock_rv"
-                                        android:layout_width="0dp"
-                                        android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
-
-                                    <androidx.recyclerview.widget.RecyclerView
-                                        android:id="@+id/already_uncolock_rv"
-                                        android:layout_width="0dp"
+                                    android:orientation="vertical"
+                                    android:showDividers="middle"
+                                    android:visibility="gone">
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
+                                        android:layout_height="wrap_content"
+                                        android:background="@drawable/common_layout_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:showDividers="middle">
+
+                                        <TextView
+                                            android:id="@+id/wait_to_colock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"wait_to_colock"}' />
+
+                                        <TextView
+                                            android:id="@+id/already_colock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"already_colock"}' />
+
+                                        <TextView
+                                            android:id="@+id/already_uncolock"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:gravity="center"
+                                            android:paddingVertical="@dimen/iscs_space_2"
+                                            android:textSize="@dimen/iscs_text_md"
+                                            app:i18nKey='@{"already_uncolock"}' />
+                                    </LinearLayout>
+
+                                    <LinearLayout
+                                        android:layout_width="match_parent"
                                         android:layout_height="match_parent"
-                                        android:layout_weight="1"
-                                        android:padding="@dimen/iscs_space_2" />
+                                        android:background="@drawable/common_layout_bg"
+                                        android:divider="@drawable/divider_table"
+                                        android:orientation="horizontal"
+                                        android:showDividers="middle">
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/wait_to_colock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/already_colock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+
+                                        <androidx.recyclerview.widget.RecyclerView
+                                            android:id="@+id/already_uncolock_rv"
+                                            android:layout_width="0dp"
+                                            android:layout_height="match_parent"
+                                            android:layout_weight="1"
+                                            android:padding="@dimen/iscs_space_2" />
+                                    </LinearLayout>
                                 </LinearLayout>
-                            </LinearLayout>
 
-                            <TextView
-                                android:id="@+id/step_description_tv"
-                                android:layout_width="match_parent"
-                                android:layout_height="match_parent"
-                                android:padding="@dimen/iscs_space_2"
-                                android:textSize="@dimen/iscs_text_md" />
-                        </FrameLayout>
-
-                        <View
-                            android:id="@+id/space_view"
-                            android:layout_width="1dp"
-                            android:layout_height="0dp"
-                            android:layout_weight="1"
-                            android:visibility="gone" />
-                    </LinearLayout>
+                                <TextView
+                                    android:id="@+id/step_description_tv"
+                                    android:layout_width="match_parent"
+                                    android:layout_height="match_parent"
+                                    android:padding="@dimen/iscs_space_2"
+                                    android:textSize="@dimen/iscs_text_md" />
+                            </FrameLayout>
 
+                            <View
+                                android:id="@+id/space_view"
+                                android:layout_width="1dp"
+                                android:layout_height="0dp"
+                                android:layout_weight="1"
+                                android:visibility="gone" />
+                        </LinearLayout>
 
-                    <LinearLayout
-                        android:layout_width="match_parent"
-                        android:layout_height="wrap_content"
-                        android:gravity="right"
-                        android:minHeight="@dimen/btn_layout_min_height"
-                        android:orientation="horizontal"
-                        android:paddingHorizontal="@dimen/iscs_space_4"
-                        android:paddingVertical="@dimen/iscs_space_2">
-
-                        <TextView
-                            android:id="@+id/cancel_exception"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_confirm"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"cancel_exception"}' />
-
-                        <TextView
-                            android:id="@+id/handle_exception"
-                            android:layout_width="wrap_content"
-                            android:layout_height="wrap_content"
-                            android:layout_marginLeft="@dimen/iscs_space_2"
-                            android:background="@drawable/common_btn_cancel"
-                            android:drawablePadding="@dimen/iscs_space_2"
-                            android:drawableTint="?attr/colorWhite"
-                            android:gravity="center"
-                            android:minHeight="@dimen/common_btn_height"
-                            android:paddingHorizontal="@dimen/iscs_space_2"
-                            android:textColor="?attr/colorTextPrimary"
-                            android:textSize="@dimen/iscs_text_md"
-                            android:visibility="gone"
-                            app:i18nKey='@{"handle_exception"}' />
 
                     </LinearLayout>
-                </LinearLayout>
-            </FrameLayout>
-        </androidx.core.widget.NestedScrollView>
+                </FrameLayout>
+            </androidx.core.widget.NestedScrollView>
+
+            <LinearLayout
+                android:id="@+id/button_layout"
+                android:layout_width="match_parent"
+                android:layout_height="wrap_content"
+                android:layout_alignParentBottom="true"
+                android:gravity="right"
+                android:minHeight="@dimen/btn_layout_min_height"
+                android:orientation="horizontal"
+                android:paddingHorizontal="@dimen/iscs_space_4"
+                android:paddingVertical="@dimen/iscs_space_2">
+
+                <TextView
+                    android:id="@+id/cancel_exception"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_confirm"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"cancel_exception"}' />
+
+                <TextView
+                    android:id="@+id/handle_exception"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="@dimen/iscs_space_2"
+                    android:background="@drawable/common_btn_cancel"
+                    android:drawablePadding="@dimen/iscs_space_2"
+                    android:drawableTint="?attr/colorWhite"
+                    android:gravity="center"
+                    android:minHeight="@dimen/common_btn_height"
+                    android:paddingHorizontal="@dimen/iscs_space_2"
+                    android:textColor="?attr/colorTextPrimary"
+                    android:textSize="@dimen/iscs_text_md"
+                    android:visibility="gone"
+                    app:i18nKey='@{"handle_exception"}' />
+
+            </LinearLayout>
+        </RelativeLayout>
     </LinearLayout>
 </layout>

+ 56 - 0
app/src/main/res/layout/fragment_settings.xml

@@ -158,6 +158,62 @@
                 android:textSize="@dimen/iscs_text_md"
                 app:formRole="field" />
 
+            <TextView
+                android:id="@+id/username_min_size_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/hardware_mode"
+                android:layout_marginTop="@dimen/iscs_space_4"
+                android:textColor="?attr/colorTextPrimary"
+                android:textSize="@dimen/iscs_text_md"
+                app:formRole="label"
+                app:i18nKey='@{"username_min_size"}'
+                app:markPosition="start"
+                app:required="true" />
+
+            <EditText
+                android:id="@+id/username_min_size"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/username_min_size_tv"
+                android:layout_alignLeft="@+id/username_min_size_tv"
+                android:layout_marginTop="@dimen/iscs_space_2"
+                android:background="@drawable/bg_common_input"
+                android:inputType="number"
+                android:maxLines="1"
+                android:minWidth="@dimen/add_to_map_input_min_width"
+                android:paddingHorizontal="@dimen/iscs_space_2"
+                android:paddingVertical="2dp"
+                android:singleLine="true"
+                android:textColor="?attr/colorTextPrimary"
+                android:textSize="@dimen/iscs_text_md"
+                app:formRole="field"
+                app:i18nHint='@{"please_input_username_min_size"}' />
+
+            <TextView
+                android:id="@+id/allow_colocker_colock_tv"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/username_min_size"
+                android:layout_marginTop="@dimen/iscs_space_4"
+                android:textColor="?attr/colorTextPrimary"
+                android:textSize="@dimen/iscs_text_md"
+                app:formRole="label"
+                app:i18nKey='@{"allow_colocker_login_to_colock"}'
+                app:markPosition="start"
+                app:required="true" />
+
+            <CheckBox
+                android:id="@+id/allow_colocker_colock"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_below="@+id/allow_colocker_colock_tv"
+                android:layout_alignLeft="@+id/allow_colocker_colock_tv"
+                android:layout_marginTop="@dimen/iscs_space_2"
+                android:paddingHorizontal="@dimen/iscs_space_2"
+                android:paddingVertical="2dp"
+                app:formRole="field" />
+
             <TextView
                 android:id="@+id/include_descendant_tv"
                 android:layout_width="wrap_content"

+ 3 - 1
data/src/main/java/com/grkj/data/data/CommonConstants.kt

@@ -1,5 +1,7 @@
 package com.grkj.data.data
 
+import com.sik.sikcore.extension.getMMKVData
+
 /**
  * 通用常量
  */
@@ -53,7 +55,7 @@ object CommonConstants {
     /**
      * 密码正则
      */
-    const val REGEX_USERNAME = "^[A-Za-z0-9]{6,20}$"
+    val REGEX_USERNAME get() = "^[A-Za-z0-9]{${MMKVConstants.KEY_USERNAME_MIN_SIZE.getMMKVData(1)},20}$"
 
     /**
      * 密码正则

+ 9 - 0
data/src/main/java/com/grkj/data/data/MMKVConstants.kt

@@ -74,4 +74,13 @@ object MMKVConstants {
      * 是否能查看区域下级目录
      */
     const val KEY_INCLUDE_DESCENDANTS = "key_include_descendants"
+
+    /**
+     * 允许共锁人员共锁
+     */
+    const val KEY_ALLOW_COLOCKER_COLOCK = "KEY_ALLOW_COLOCKER_COLOCK"
+    /**
+     * 最小用户名长度
+     */
+    const val KEY_USERNAME_MIN_SIZE = "KEY_USERNAME_MIN_SIZE"
 }

+ 839 - 0
ui-base/src/main/res/values-en/strings.xml

@@ -0,0 +1,839 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="FRI">Friday</string>
+    <string name="MON">Monday</string>
+    <string name="SAT">Saturday</string>
+    <string name="SUN">Sunday</string>
+    <string name="THU">Thursday</string>
+    <string name="TUE">Tuesday</string>
+    <string name="WED">Wednesday</string>
+    <string name="abnormal">Abnormal</string>
+    <string name="action_confirm">Action Confirmation</string>
+    <string name="action_confirm_content">Are you sure you want to perform {0}?</string>
+    <string name="action_failed">Action Failed</string>
+    <string name="action_hint">Action Notification</string>
+    <string name="action_succeed">Action Successful</string>
+    <string name="add_card_failed">Failed to Add Card</string>
+    <string name="add_card_succeed">Card Added Successfully</string>
+    <string name="add_colocker">Add Co-lock User ({0})</string>
+    <string name="add_group">+Group</string>
+    <string name="add_key_failed">Failed to Add Key</string>
+    <string name="add_key_succeed">Key Added Successfully</string>
+    <string name="add_lock_failed">Failed to Add Padlock</string>
+    <string name="add_lock_succeed">Padlock Added Successfully</string>
+    <string name="add_point_failed">Failed to Add Isolation Point</string>
+    <string name="add_point_succeed">Isolation Point Added Successfully</string>
+    <string name="add_rfid_token_failed">Failed to Add RFID Tag</string>
+    <string name="add_rfid_token_succeed">RFID Tag Added Successfully</string>
+    <string name="add_role_failed">Failed to Add Role</string>
+    <string name="add_role_succeed">Role Added Successfully</string>
+    <string name="add_to_map_point_name">Point Name:</string>
+    <string name="add_to_map_point_serial_number">Point Serial Number:</string>
+    <string name="add_to_map_x">Coordinate X:</string>
+    <string name="add_to_map_y">Coordinate Y:</string>
+    <string name="add_user_succeed">User Added Successfully</string>
+    <string name="add_workstation_failed">Failed to Add Area</string>
+    <string name="add_workstation_succeed">Area Added Successfully</string>
+    <string name="admin">Super Admin</string>
+    <string name="admin_role_can_not_edit">Administrator Role Cannot Be Edited</string>
+    <string name="admin_username">Admin Account: (Numbers, Letters, 6–20 characters)</string>
+    <string name="administrator">administrator</string>
+    <string name="air_energy">Compressed Air</string>
+    <string name="all">All</string>
+    <string name="all_hardware_tv">All Hardware</string>
+    <string name="all_job_tv">All Jobs</string>
+    <string name="all_new_lock_registration">Register all new pedLocks</string>
+    <string name="all_points_tv">All Points</string>
+    <string name="all_quick_entrance">All Shortcuts</string>
+    <string name="all_select_not_all_select">Select All</string>
+    <string name="all_slot_turn_off">All slot turn off</string>
+    <string name="all_slot_turn_on">All slot turn on</string>
+    <string name="allow_colocker_login_to_colock">Allow co-locker login to coLock</string>
+    <string name="already_colock">Co-locked ({0})</string>
+    <string name="already_uncolock">Co-lock Released ({0})</string>
+    <string name="apply_finish_job">Apply to Finish Job</string>
+    <string name="apply_master_key">Apply for Master Key</string>
+    <string name="apply_scrap_key">Apply to Scrap Key</string>
+    <string name="apply_scrap_lock">Apply to Scrap Padlock</string>
+    <string name="apply_scrap_slot">Apply to Scrap Slot</string>
+    <string name="auto_backup">Auto Backup</string>
+    <string name="auto_confirm">Auto Confirm</string>
+    <string name="auto_logout_time">Auto logout time (min 1, max 10, unit: min):</string>
+    <string name="back">Back</string>
+    <string name="backup">Backup</string>
+    <string name="backup_and_restore">Bkp/Rst</string>
+    <string name="backup_failed">Backup Failed</string>
+    <string name="backup_frequency">Bkp Freq</string>
+    <string name="backup_frequency_every_day">Every Day</string>
+    <string name="backup_now">Backup Now</string>
+    <string name="backup_now_please_wait">Backing up,please wait…</string>
+    <string name="backup_path">Backup Path</string>
+    <string name="backup_range">Range: {0}</string>
+    <string name="backup_restoring">Restoring backup…</string>
+    <string name="backup_success">Backup Successful</string>
+    <string name="backup_time">Backup Time</string>
+    <string name="backup_tip">Note: The app must remain running during auto backup.</string>
+    <string name="backup_title">Backup/Restore</string>
+    <string name="base_info_title">Basic Information</string>
+    <string name="ble_connect_fail">Connection Failed, Please Retry!</string>
+    <string name="ble_connecting">Connecting, Please Wait...</string>
+    <string name="can_not_remove_current_colocker">Cannot Remove Current Co-lock User</string>
+    <string name="can_not_remove_current_locker">Cannot Remove Current Locker</string>
+    <string name="cancel">Cancel</string>
+    <string name="cancel_countdown">Cancel ({0}s)</string>
+    <string name="cancel_exception">Cancel Exception</string>
+    <string name="cancel_exception_failed">Failed to Cancel Exception</string>
+    <string name="cancel_exception_success">Exception Cancelled Successfully</string>
+    <string name="cancel_job">Cancel Job</string>
+    <string name="cancel_job_tip">Are you sure you want to cancel the current job?</string>
+    <string name="canceld">Canceled</string>
+    <string name="canceled">Canceled</string>
+    <string name="capture_tip_content">1. The system will automatically take a photo. During the process, please ensure:\n       · Face is facing the camera\n       · Maintain an appropriate distance so the entire face fits within the left frame\n       · Adequate lighting\n       · Natural expression \n 2. After the photo is taken, you can click the Confirm button to submit, or click the Retake button to take the photo again. \n 3. To cancel enrollment, please click the Cancel button.</string>
+    <string name="capture_tip_title">Capture Prompt</string>
+    <string name="card_already_registration">Card Already Registered</string>
+    <string name="card_code">Card Name</string>
+    <string name="card_login">Card Login</string>
+    <string name="card_manage">Cards</string>
+    <string name="card_manage_card_detail_title">Card Details</string>
+    <string name="card_manage_delete_failed">Failed to Delete Card</string>
+    <string name="card_manage_delete_succeed">Card Deleted Successfully</string>
+    <string name="card_manage_new_card_title">Add New Card</string>
+    <string name="card_manage_title">Card Management</string>
+    <string name="card_nfc">Card NFC</string>
+    <string name="card_setting">Job Card</string>
+    <string name="change_to_standard">Switch to Standard Version</string>
+    <string name="check_before_unlocking">Pre-Unlocking Check</string>
+    <string name="check_delete_card">Are you sure you want to delete the selected card?</string>
+    <string name="check_delete_job">Are you sure you want to delete the job?</string>
+    <string name="check_delete_key">Are you sure you want to delete the selected key?</string>
+    <string name="check_delete_lock">Are you sure you want to delete the selected padlock?</string>
+    <string name="check_delete_point">Are you sure you want to delete the isolation point?</string>
+    <string name="check_delete_rfid_token">Are you sure you want to delete the selected RFID tag?</string>
+    <string name="check_delete_role">Are you sure you want to delete the role?</string>
+    <string name="check_delete_sop">Are you sure you want to delete the selected SOP?</string>
+    <string name="check_delete_user">Are you sure you want to delete the user?</string>
+    <string name="check_delete_workflow_mode">Are you sure you want to delete the selected workflow mode?</string>
+    <string name="check_delete_workstation">Are you sure you want to delete the area &quot;{0}&quot;?</string>
+    <string name="check_device_info">Detected {0} unregistered keys, {1} unregistered padlocks</string>
+    <string name="check_key_and_lock">Checking Keys and Padlocks</string>
+    <string name="check_lock_is_new_device">Checking if Padlock is New Device</string>
+    <string name="check_new_key_need_register">New Key Detected. Register Now?</string>
+    <string name="check_new_lock_need_register">New Padlock Detected. Register Now?</string>
+    <string name="click_confirm">Click Confirm</string>
+    <string name="close">Close</string>
+    <string name="colock">Add Co-lock</string>
+    <string name="colock_complete">Co-lock Added Successfully</string>
+    <string name="colock_failed">Failed to Add Co-lock</string>
+    <string name="colocker">Co-lock User</string>
+    <string name="colocking">Co-locking</string>
+    <string name="common_batch_delete">Batch Delete</string>
+    <string name="common_batch_export">Batch Export</string>
+    <string name="common_disable">Disable</string>
+    <string name="common_enable">Enable</string>
+    <string name="common_export">Export</string>
+    <string name="confirm">Confirm</string>
+    <string name="confirm_cancel_exception">Are you sure you want to cancel the exception?</string>
+    <string name="confirm_create_lock_job">Confirm Creating Locking Job?</string>
+    <string name="confirm_create_unlock_job">Confirm Creating Unlocking Job?</string>
+    <string name="confirm_exec">Confirm Execution</string>
+    <string name="confirm_handle_exception">Are you sure you want to handle the exception?</string>
+    <string name="confirm_to_colock">Should {0} confirm co-locking?</string>
+    <string name="confirm_to_uncolock">Should {0} confirm releasing co-lock?</string>
+    <string name="continue_the_ticket">Please Continue Completing the Work Permit</string>
+    <string name="create_job">New Job</string>
+    <string name="create_job_failed">Failed to Create Job</string>
+    <string name="create_job_name">Job Name</string>
+    <string name="create_job_title">Create New Job</string>
+    <string name="create_sop">New SOP</string>
+    <string name="create_sop_job">New SOPJob</string>
+    <string name="create_sop_job_sop">SOP</string>
+    <string name="create_sop_job_tip">Are you sure you want to execute job &quot;{0}&quot;?</string>
+    <string name="create_sop_job_title">Create New SOP Job</string>
+    <string name="create_sop_name">SOP Name</string>
+    <string name="create_sop_title">Create New SOP</string>
+    <string name="current_job_has_cross_job">Warning! Current job overlaps with another. Continue handling exception?</string>
+    <string name="current_role_no_user">No Users Assigned to Current Role</string>
+    <string name="current_slot_has_no_key">No Key in Current Slot</string>
+    <string name="current_slot_has_no_lock">No Padlock in Current Slot</string>
+    <string name="current_sop_has_job_in_progress">Current SOP Has Ongoing Job</string>
+    <string name="current_ticket_report_lock_take_exception_tip">Padlock Exception Reported in Current Job. Please Return Padlock</string>
+    <string name="current_user_has_not_face_data">Current User Has No Face Data</string>
+    <string name="current_workflow_mode_error">Current Workflow Mode Error</string>
+    <string name="currently_no_hardware_can_be_report">No Hardware Available for Reporting</string>
+    <string name="currently_no_job_can_be_report">No Job Available for Reporting</string>
+    <string name="currently_unable_to_lock_together">Unable to Co-lock at Current Stage</string>
+    <string name="data_content_error">Data Content Error</string>
+    <string name="data_decrypt_failed">Data Decryption Failed</string>
+    <string name="data_exception">Data exception</string>
+    <string name="data_export">Data Export</string>
+    <string name="data_export">Please select the table you want to export and click Export.</string>
+    <string name="data_export_error">Data Export failed.</string>
+    <string name="data_export_success_tip">Data Export completed. Please select a folder and click the bottom right button to save.</string>
+    <string name="data_file_is_corrupted">Data File Corrupted</string>
+    <string name="data_file_not_exists">Data File Does Not Exist</string>
+    <string name="data_in_backup">Data backup in progress……</string>
+    <string name="data_manage">Data</string>
+    <string name="data_table">Data Table</string>
+    <string name="date">{0}-{1}-{2}</string>
+    <string name="day"></string>
+    <string name="default_map">Default Map</string>
+    <string name="delete">Delete</string>
+    <string name="delete_backup_file_confirm">Are you sure you want to delete this backup? Once deleted,it cannot be recovered.</string>
+    <string name="delete_group">Delete</string>
+    <string name="delete_selected_backup_file_confirm">Are you sure you want to delete the selected backups? Once deleted,they cannot be recovered.</string>
+    <string name="delete_success">Deleted Successfully</string>
+    <string name="detail">Details</string>
+    <string name="detect_face_tip">Face Detected. Capturing Soon</string>
+    <string name="detect_port">Scanning Devices...</string>
+    <string name="detect_slot">Detecting Slot</string>
+    <string name="device_in_detect">Device Recognition in Progress</string>
+    <string name="do_you_want_to_remove_exception">Are you sure you want to remove this exception?</string>
+    <string name="doing_checking">Verifying...</string>
+    <string name="doing_login">Logging In...</string>
+    <string name="done_header">Processed</string>
+    <string name="edit">Edit</string>
+    <string name="edit_job_title">Job Details</string>
+    <string name="edit_sop_job_title">SOP Job Details</string>
+    <string name="edit_sop_title">SOP Details</string>
+    <string name="electric_energy">Electrical Energy</string>
+    <string name="end">End Job</string>
+    <string name="end_job">End Job</string>
+    <string name="end_time">End Time</string>
+    <string name="end_time_must_large_then_start_time">End time must be later than start time</string>
+    <string name="ensure_power_isolation">Energy Isolation Confirmation</string>
+    <string name="error_date_range_invalid">Start Time Cannot Be Later Than End Time</string>
+    <string name="exception_data_not_exists">Exception Data Not Found</string>
+    <string name="exception_description">Exception Description:</string>
+    <string name="exception_description_tv">Exception Description</string>
+    <string name="exception_detail_title">Exception Details</string>
+    <string name="exception_info">Exception Information</string>
+    <string name="exception_job">Excp Jobs</string>
+    <string name="exception_job_title">Exception Job</string>
+    <string name="exception_lost">Exception Lost</string>
+    <string name="exception_manage">Exceptions</string>
+    <string name="exception_manage_title">Exception Management</string>
+    <string name="exception_occurrence_time">Exception Occurrence Time:</string>
+    <string name="exception_occurrence_time_header">Occurrence Time</string>
+    <string name="exception_reason">Exception Reason</string>
+    <string name="exception_release_time">Exception Release Time:</string>
+    <string name="exception_report">Excp Rpt</string>
+    <string name="exception_report_success">Exception Report Successful</string>
+    <string name="exception_reporter">Reporter:</string>
+    <string name="exception_source">Exception Source:</string>
+    <string name="exception_source_tv">Exception Source</string>
+    <string name="exception_status">Status:</string>
+    <string name="exception_status_header">Exception Status</string>
+    <string name="exception_type">Exception Type:</string>
+    <string name="exception_type_header">Exception Type</string>
+    <string name="exception_type_tv">Exception Type</string>
+    <string name="excp_job_name_title">Exception Job Name</string>
+    <string name="expand_collapse">Expand all</string>
+    <string name="export_selected_backup_file_confirm">Launch the path selector, select and click on the bottom right corner to choose 'Export'</string>
+    <string name="export_success">Export Successful</string>
+    <string name="exporting">Exporting……</string>
+    <string name="face_can_not_process">Face Recognition Engine Activation Failed, Recognition Unavailable</string>
+    <string name="face_detected_do_login">Face Detected, Logging In...</string>
+    <string name="face_login">Face Login</string>
+    <string name="face_login_failed">Face Match Failed, Please Retry</string>
+    <string name="face_login_success">Face Authentication Successful</string>
+    <string name="face_not_set_tip">Face Data Not Set</string>
+    <string name="face_set_tip">Face Data Configured</string>
+    <string name="face_setting">Face</string>
+    <string name="file_not_exists">File Does Not Exist</string>
+    <string name="filter">Filter</string>
+    <string name="fingerprint_add_success_tip">Fingerprint Data Added Successfully</string>
+    <string name="fingerprint_code">Fingerprint ID</string>
+    <string name="fingerprint_code_str">Fingerprint_{0}</string>
+    <string name="fingerprint_delete_confirm_tip">Are you sure you want to delete {0}?</string>
+    <string name="fingerprint_delete_selected_confirm_tip">Are you sure you want to delete the selected fingerprint(s)?</string>
+    <string name="fingerprint_limit_tip">The number of fingerprints has reached the upper limit</string>
+    <string name="fingerprint_login">Fingerprint Login</string>
+    <string name="fingerprint_login_failed">Fingerprint Recognition Failed, Please Retry</string>
+    <string name="fingerprint_login_success">Fingerprint Authentication Successful</string>
+    <string name="fingerprint_scan_tip">Please Press Fingerprint Sensor {0} Times</string>
+    <string name="fingerprint_setting">Fingerprint</string>
+    <string name="finish_job_tip">Are you sure you want to end the current job?</string>
+    <string name="finish_the_job">End Job</string>
+    <string name="finished">Finished</string>
+    <string name="footer_failed">Load failed</string>
+    <string name="footer_finish">Load complete</string>
+    <string name="footer_loading">Refreshing...</string>
+    <string name="footer_nothing">No more data</string>
+    <string name="footer_pulling">Pull up to load more</string>
+    <string name="footer_refreshing">Loading...</string>
+    <string name="footer_release">Release to load</string>
+    <string name="force_multi_lock">Forced Multi-Lock Mode</string>
+    <string name="force_shared_lock">Forced Shared-Lock Mode</string>
+    <string name="gas">Gas</string>
+    <string name="get_key_info_fail">Failed to Retrieve Key Information</string>
+    <string name="go_locking">Proceed to Lock</string>
+    <string name="go_unlocking">Proceed to Unlock</string>
+    <string name="group_at_least_has_one_point">Each Group Must Contain at Least One Point</string>
+    <string name="group_job_in_progress">Group Job in Progress</string>
+    <string name="group_name_must_not_empty">Group Name Cannot Be Empty</string>
+    <string name="handle">Handle</string>
+    <string name="handle_colock">Please Confirm to Add Co-lock</string>
+    <string name="handle_exception">Handle Exception</string>
+    <string name="handle_exception_success">Exception Handled Successfully</string>
+    <string name="handle_exception_will_release_all_colock">Warning! Handling Exception Will Remove All Co-locks. Continue?</string>
+    <string name="handle_failed">Handling Failed</string>
+    <string name="handle_lock_take_key">Confirm to Take Key for Locking?</string>
+    <string name="handle_release_colock">Please Confirm to Release Co-lock</string>
+    <string name="handle_step_confirm">Please Confirm Completion of [{0}]</string>
+    <string name="handle_time">Handling Time:</string>
+    <string name="handle_time_custom_time_range">Custom Range</string>
+    <string name="handle_time_last_30_days">Last 30 Days</string>
+    <string name="handle_time_last_7_days">Last 7 Days</string>
+    <string name="handle_unknown">Unknown Handling Type, Unable to Process</string>
+    <string name="handle_unlock_take_key">Confirm to Take Key for Unlocking?</string>
+    <string name="hardware_exception">Hardware Exception</string>
+    <string name="hardware_in_use_tv">Hardware In Use</string>
+    <string name="hardware_info">Hardware Info: {0}</string>
+    <string name="hardware_key">Key</string>
+    <string name="hardware_lock">Padlock</string>
+    <string name="hardware_manage">Hardware</string>
+    <string name="hardware_mode">Hardware mode (mode modification and saving require restarting the application)</string>
+    <string name="hardware_mode">Hardware Mode</string>
+    <string name="hardware_unknown">Unknown</string>
+    <string name="has_job_in_progress">Job in Progress Exists</string>
+    <string name="has_locked">Locked</string>
+    <string name="has_user_in_progress_job">User(s) Currently in Job</string>
+    <string name="header_failed">Refresh failed</string>
+    <string name="header_finish">Refresh complete</string>
+    <string name="header_loading">Loading...</string>
+    <string name="header_pulling">Pull down to refresh</string>
+    <string name="header_refreshing">Refreshing...</string>
+    <string name="header_release">Release to refresh</string>
+    <string name="header_secondary">Release to enter second floor</string>
+    <string name="header_update">'Last update' M-d HH:mm</string>
+    <string name="heat_energy">Thermal Energy</string>
+    <string name="home">Home</string>
+    <string name="home_overview_data_title">Overview Data</string>
+    <string name="home_realtime_data_title">Real-time Data</string>
+    <string name="hour"></string>
+    <string name="hydraulic_pressure">Hydraulic</string>
+    <string name="i18n.language_name">English</string>
+    <string name="import_str">Import</string>
+    <string name="import_success">Import Successful</string>
+    <string name="in_progress_job">Active Jobs</string>
+    <string name="in_progress_job_manage_title">Jobs in Progress</string>
+    <string name="init_card_registration_step_hint">Please Swipe Card on Reader</string>
+    <string name="init_card_registration_step_tip">Identify and Register Card</string>
+    <string name="init_device_registration_key_and_lock_complete_step_hint">Scan Complete</string>
+    <string name="init_device_registration_key_and_lock_step_hint">Please Wait for System to Identify Keys and Padlocks</string>
+    <string name="init_device_registration_key_and_lock_step_tip">Identify Keys and Padlocks</string>
+    <string name="init_point_rfid_registration_step_hint">Please Scan Point RFID Tag on Reader</string>
+    <string name="init_point_rfid_registration_step_tip">Identify and Register Point RFID Tag</string>
+    <string name="init_set_admin_account_step">1</string>
+    <string name="init_set_admin_account_step_hint">Please Set Admin Username and Password</string>
+    <string name="init_set_admin_account_step_tip">Configure Admin Account</string>
+    <string name="init_set_remote_server_step_hint">Please Set Server Address and Port</string>
+    <string name="init_set_remote_server_step_tip">Configure Server</string>
+    <string name="insert">Add</string>
+    <string name="invalid_card">Invalid Card</string>
+    <string name="invalid_user">User Does Not Exist</string>
+    <string name="item_my_todo_complete_time_title">Completion Time:</string>
+    <string name="item_my_todo_current_operation_title">Current Operation:</string>
+    <string name="item_my_todo_current_step_title">Current Step:</string>
+    <string name="item_my_todo_job_name_title">Related Job:</string>
+    <string name="job">Job</string>
+    <string name="job_already_finished">This job has already been completed</string>
+    <string name="job_canceled">Job canceled</string>
+    <string name="job_card_login_failed">Invalid job card</string>
+    <string name="job_card_login_success">Job card recognized successfully</string>
+    <string name="job_card_not_set_tip">You have not set up a job card</string>
+    <string name="job_card_scan_tip">Please scan your card on the reader</string>
+    <string name="job_card_set_tip">Job card data has been set</string>
+    <string name="job_cat_not_exec">Job Ticket Not Executable</string>
+    <string name="job_create_and_execute_failed">Job execution failed</string>
+    <string name="job_create_and_execute_succeed">Job started successfully</string>
+    <string name="job_create_failed">Job save failed</string>
+    <string name="job_create_succeed">Job saved successfully</string>
+    <string name="job_exception">Job Exception</string>
+    <string name="job_execute_colocker_colock_status_title">Co-lock personnel status</string>
+    <string name="job_execute_lock_status_title">Isolation point lock status</string>
+    <string name="job_execute_step_description">Operation instructions ({0})</string>
+    <string name="job_execute_tab_title_colock">Co-lock</string>
+    <string name="job_execute_tab_title_lock">Lock</string>
+    <string name="job_execute_title">Job Execution</string>
+    <string name="job_finished">Job completed</string>
+    <string name="job_lost">Job lost</string>
+    <string name="job_manage">Jobs</string>
+    <string name="job_manage_delete_failed">Failed to delete selected job</string>
+    <string name="job_manage_delete_succeed">Selected job deleted successfully</string>
+    <string name="job_manage_title">Job Management</string>
+    <string name="job_name">Job Name</string>
+    <string name="job_save_and_execute_tip">Are you sure you want to execute job &quot;{0}&quot;?</string>
+    <string name="job_save_tip">Are you sure you want to save job &quot;{0}&quot;?</string>
+    <string name="job_status">Job Status</string>
+    <string name="job_ticket_manage">Jobs</string>
+    <string name="job_workstation">Job Area</string>
+    <string name="jtcolocker">Co-locker</string>
+    <string name="jtdrawer">Job Admin</string>
+    <string name="jtguard">Observer</string>
+    <string name="jtlocker">Locker</string>
+    <string name="key">Key</string>
+    <string name="key_damage">Damaged Key</string>
+    <string name="key_exception_tag">This key has been flagged as abnormal</string>
+    <string name="key_in_use">Key is in use</string>
+    <string name="key_info_already_exists">Key information already exists</string>
+    <string name="key_is_in_failure_mode">Key is in failure mode</string>
+    <string name="key_mac">Key MAC</string>
+    <string name="key_manage">Keys</string>
+    <string name="key_manage_delete_failed">Failed to delete key</string>
+    <string name="key_manage_delete_succeed">Key deleted successfully</string>
+    <string name="key_manage_key_detail_title">Key Details</string>
+    <string name="key_manage_new_key_title">Add New Key</string>
+    <string name="key_manage_title">Key Management</string>
+    <string name="key_name">Key Name</string>
+    <string name="key_nfc">Key NFC</string>
+    <string name="key_not_exists">Key does not exist</string>
+    <string name="key_return_success">Key returned successfully</string>
+    <string name="key_return_tip">Job ticket not completed; returning key is prohibited</string>
+    <string name="key_take_error_tip">Key allocation failed; please check hardware status</string>
+    <string name="last_export_datetime">Last export time</string>
+    <string name="loading_backup">Reading backup file…</string>
+    <string name="loading_data">Loading data</string>
+    <string name="loading_device">Loading hardware...</string>
+    <string name="loading_msg_get_ticket_status_start">Reading key job ticket</string>
+    <string name="loading_msg_return_key_start">Connecting to key, please wait...</string>
+    <string name="lock">Padlock</string>
+    <string name="lock_already_exists">Lock information already exists</string>
+    <string name="lock_code">Lock Name</string>
+    <string name="lock_damage">Damaged Padlock</string>
+    <string name="lock_exception_tag">This lock has been flagged as abnormal</string>
+    <string name="lock_in_use">Lock is currently in use</string>
+    <string name="lock_is_not_enough">Insufficient lock quantity</string>
+    <string name="lock_key_return_tip">Job ticket not completed; force upload data?</string>
+    <string name="lock_manage">Locks</string>
+    <string name="lock_manage_delete_failed">Failed to delete lock</string>
+    <string name="lock_manage_delete_succeed">Lock deleted successfully</string>
+    <string name="lock_manage_lock_detail_title">Lock Details</string>
+    <string name="lock_manage_new_lock_title">Add New Lock</string>
+    <string name="lock_manage_title">Lock Management</string>
+    <string name="lock_name">Lock Name</string>
+    <string name="lock_nfc">Lock NFC</string>
+    <string name="lock_return_key">Finish Locking</string>
+    <string name="lock_status">Lock Status</string>
+    <string name="lock_take_key">Start Locking</string>
+    <string name="lock_take_report_fail">Lock removal reporting failed</string>
+    <string name="locked_point">Lock-Points</string>
+    <string name="locked_points_title">Locked Points</string>
+    <string name="locked_points_tv">Locked Points</string>
+    <string name="locker">Locker</string>
+    <string name="locking">Locking</string>
+    <string name="login">Login</string>
+    <string name="login_tip">You can log in directly through fingerprint or swipe card</string>
+    <string name="logout">Logout</string>
+    <string name="loto">Intelligent Lock Control System</string>
+    <string name="loto_en">Intelligent Lock Control System</string>
+    <string name="manage_filter_status">Status</string>
+    <string name="manage_role_function_permission">Func Perms</string>
+    <string name="max_backup_tip">The maximum number of backups has been reached. Continuing will remove the oldest backup.</string>
+    <string name="max_fingerprint_insert">Max fingerprint entries:</string>
+    <string name="max_fingerprint_insert_tip">(Up to {0} fingerprints can be entered)</string>
+    <string name="maximumNumberOfBackupsNotCorrect">Please enter a valid maximum number of backups</string>
+    <string name="maximum_number_of_backups">Max No. of Bkps</string>
+    <string name="mechanical_energy">Mechanical Energy</string>
+    <string name="member_info_title">Personnel Information</string>
+    <string name="min"></string>
+    <string name="mixed_mode">Mixed Mode</string>
+    <string name="month"></string>
+    <string name="move_down">Move Down</string>
+    <string name="move_up">Move Up</string>
+    <string name="my_todo_title">My To-Do</string>
+    <string name="navigate_to_step">Navigate to Step {0}</string>
+    <string name="new_device">New Device</string>
+    <string name="new_group">New Group {0}</string>
+    <string name="new_password">New Password (6-20 characters: letters, numbers, special symbols)</string>
+    <string name="new_password_and_repeat_new_password_not_same">New password and repeated password do not match</string>
+    <string name="new_password_cannot_be_the_same_as_the_old_password">New password cannot be the same as the old password</string>
+    <string name="next">Next</string>
+    <string name="nickname">Name</string>
+    <string name="no_available_key">No available keys</string>
+    <string name="no_backup_data">No backup data available</string>
+    <string name="no_data">No data</string>
+    <string name="no_goto_step">No jump step</string>
+    <string name="no_permission_to_handle">You do not have permission to operate the current job ticket</string>
+    <string name="no_response_board_exists">Unresponsive main board exists</string>
+    <string name="normal">Normal</string>
+    <string name="not_group_can_lock">No group available for locking</string>
+    <string name="not_group_can_unlock">No group available for unlocking</string>
+    <string name="not_in_slot">Not in slot</string>
+    <string name="not_save_tip">Data not saved yet. Are you sure you want to discard changes and leave this page?</string>
+    <string name="not_start">Not Started</string>
+    <string name="number">Number:</string>
+    <string name="old_password">Old Password</string>
+    <string name="old_password_error">Incorrect old password</string>
+    <string name="one_key_cancel">One-Click Cancel</string>
+    <string name="one_key_handle">One-Click Handle</string>
+    <string name="ongoing_job_tv">Ongoing Jobs</string>
+    <string name="only_one_person_allowed">Only one person allowed in view</string>
+    <string name="operation">Operation</string>
+    <string name="password">Password</string>
+    <string name="password_and_repeat_password_not_same">Password and repeated password do not match</string>
+    <string name="password_hint">6–20: letters/numbers/symbols</string>
+    <string name="password_login">Password Login</string>
+    <string name="password_regex_tip">Password does not meet requirements</string>
+    <string name="pending">Pending</string>
+    <string name="phone">Phone</string>
+    <string name="please_do_colock">Please complete co-locking</string>
+    <string name="please_do_uncolock">Please release co-locking</string>
+    <string name="please_done_operation">Please complete {0} first</string>
+    <string name="please_go_locking">Please proceed to locking operation</string>
+    <string name="please_go_unlocking">Please proceed to unlocking operation</string>
+    <string name="please_input_account">Please enter username</string>
+    <string name="please_input_admin_username">Please enter admin account</string>
+    <string name="please_input_area">Please enter area</string>
+    <string name="please_input_auto_logout_time">Please input auto logout time</string>
+    <string name="please_input_auto_logout_time_correct">Please input auto logout time correct</string>
+    <string name="please_input_card_code">Please enter job card number</string>
+    <string name="please_input_card_nfc">Please enter card NFC</string>
+    <string name="please_input_correct_phone">Please enter a valid phone number</string>
+    <string name="please_input_exception_reason">Please enter exception reason</string>
+    <string name="please_input_job_name">Please enter job name</string>
+    <string name="please_input_key_mac">Please enter key MAC</string>
+    <string name="please_input_key_name">Please enter key name</string>
+    <string name="please_input_key_nfc">Please enter key NFC</string>
+    <string name="please_input_key_word">Please enter keyword</string>
+    <string name="please_input_lock_code">Please enter lock number</string>
+    <string name="please_input_lock_nfc">Please enter lock NFC</string>
+    <string name="please_input_max_fingerprint_entries_size">Please input max fingerprint entries size</string>
+    <string name="please_input_new_password">Please enter new password</string>
+    <string name="please_input_nickname">Please enter name</string>
+    <string name="please_input_old_password">Please enter old password</string>
+    <string name="please_input_password">Please enter password</string>
+    <string name="please_input_permission_characters">Please enter permission characters</string>
+    <string name="please_input_phone">Please enter phone number</string>
+    <string name="please_input_point_function">Please enter isolation point function</string>
+    <string name="please_input_point_name">Please enter isolation point name</string>
+    <string name="please_input_point_serial_number">Please input point serial number(0-31)</string>
+    <string name="please_input_remark">Please enter remark</string>
+    <string name="please_input_remote_server_address">Please enter server address</string>
+    <string name="please_input_repeat_new_password">Please repeat new password</string>
+    <string name="please_input_repeat_password">Please enter repeated password</string>
+    <string name="please_input_rfid">Please enter RFID tag</string>
+    <string name="please_input_rfid_code">Please enter RFID Name</string>
+    <string name="please_input_rfid_tag">Please enter RFID tag</string>
+    <string name="please_input_role_name">Please enter role name</string>
+    <string name="please_input_sop_name">Please enter SOP name</string>
+    <string name="please_input_step_description">Please enter step operation instructions</string>
+    <string name="please_input_step_title">Please enter step title</string>
+    <string name="please_input_step_title_short">Please enter step title abbreviation</string>
+    <string name="please_input_username">Please enter login name</string>
+    <string name="please_input_username_min_size">Please username min size</string>
+    <string name="please_input_workstation_name">Please enter area name</string>
+    <string name="please_input_x_in_map">Please input coordinate X(Max 1920)</string>
+    <string name="please_input_y_in_map">Please input coordinate Y(Max 1080)</string>
+    <string name="please_must_select_at_least_one_point">You must add at least one point</string>
+    <string name="please_press_fingerprint_again">Please press fingerprint again</string>
+    <string name="please_re_press_fingerprint_again">Please press fingerprint again</string>
+    <string name="please_return_key_after_locking">Please return key after locking operation</string>
+    <string name="please_return_key_after_unlocking">Please return key after unlocking operation</string>
+    <string name="please_scan_face">Please scan face</string>
+    <string name="please_scan_fingerprint">Please scan fingerprint</string>
+    <string name="please_select_area">Please select area</string>
+    <string name="please_select_backup_file">Please select backup file</string>
+    <string name="please_select_backup_frequency">Please select a backup frequency</string>
+    <string name="please_select_card">Please select card</string>
+    <string name="please_select_card_username">Please select user name</string>
+    <string name="please_select_colocker">Please select co-locker</string>
+    <string name="please_select_data_you_want_to_export">Please select the data table you want to export.</string>
+    <string name="please_select_exception_description">Please select exception description</string>
+    <string name="please_select_exception_source">Please select exception source</string>
+    <string name="please_select_exception_type">Please select exception type</string>
+    <string name="please_select_flow_mode">Please select workflow mode</string>
+    <string name="please_select_group">Please select group</string>
+    <string name="please_select_handle_time">Please select handling time</string>
+    <string name="please_select_job">Please select job</string>
+    <string name="please_select_job_workstation">Please select job area</string>
+    <string name="please_select_key">Please select key</string>
+    <string name="please_select_lock">Please select lock</string>
+    <string name="please_select_locker">Please select locker</string>
+    <string name="please_select_member">You can select personnel to add</string>
+    <string name="please_select_point">Please select isolation point</string>
+    <string name="please_select_power_type">Please select power source</string>
+    <string name="please_select_process_application">Please select process application</string>
+    <string name="please_select_rfid_token">Please select RFID tag</string>
+    <string name="please_select_role">Please select role</string>
+    <string name="please_select_sop">Please select SOP</string>
+    <string name="please_select_sop_workstation">Please select SOP area</string>
+    <string name="please_select_start_time">Please select start time first</string>
+    <string name="please_select_status">Please select status</string>
+    <string name="please_select_step_confirm_member">Please select execution confirmation personnel</string>
+    <string name="please_select_step_confirm_role">Please select execution confirmation role</string>
+    <string name="please_select_step_confirm_type">Please select execution confirmation method</string>
+    <string name="please_select_time">Please select a time</string>
+    <string name="please_select_user">Please select user</string>
+    <string name="please_select_workflow_mode">Please select workflow mode</string>
+    <string name="please_select_workstation">Please select area</string>
+    <string name="please_set_point_coordinate_first">please_set_point_coordinate_first</string>
+    <string name="please_swipe_card">Please swipe card</string>
+    <string name="please_take_out_ready_device_first">Please remove devices with activated card locks first</string>
+    <string name="please_wait_ticket_name_lock_complete">Please wait for [{0}] to complete locking</string>
+    <string name="point">Point</string>
+    <string name="point_detail">Point Details</string>
+    <string name="point_in_use">Point is in use and cannot be modified</string>
+    <string name="point_info_title">Point Information</string>
+    <string name="point_list_title">Point List</string>
+    <string name="point_manage">Points</string>
+    <string name="point_manage_add_title">Add Point</string>
+    <string name="point_manage_delete_failed">Unable to delete isolation point</string>
+    <string name="point_manage_delete_succeed">Isolation point deleted successfully</string>
+    <string name="point_manage_point_function">Isolation Point Func</string>
+    <string name="point_manage_point_group">Group Name</string>
+    <string name="point_manage_point_name">Isolation Point Name</string>
+    <string name="point_manage_point_power_type">Power Source</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_rfid_tag">RFID Tag</string>
+    <string name="point_manage_switch_icon">Switch Icon</string>
+    <string name="point_manage_title">Point Management</string>
+    <string name="point_manage_update_title">Edit Point</string>
+    <string name="point_manage_workstation">Area</string>
+    <string name="point_name_tv">Isolation Point</string>
+    <string name="position">Position</string>
+    <string name="potential_energy">Potential Energy</string>
+    <string name="power_isolation_way">Confirm Isolation Method</string>
+    <string name="preset_workflow_can_not_delete">Preset workflow mode cannot be deleted</string>
+    <string name="previous">Previous</string>
+    <string name="process_application_tv">Process Application</string>
+    <string name="processed">Processed</string>
+    <string name="progressing">In Progress</string>
+    <string name="quick_entrance_most_set_tip">A maximum of 8 shortcuts can be set</string>
+    <string name="quick_entrance_title">Shortcut Configuration</string>
+    <string name="re_recognize">Re-recognize</string>
+    <string name="real_person_verification_required">Please ensure real-person operation</string>
+    <string name="recapture">Retake</string>
+    <string name="recognize_work_content">Recognize Work Content</string>
+    <string name="recognized_card_rfid">Recognized Card RFID</string>
+    <string name="recognized_point_rfid">Recognized Point RFID</string>
+    <string name="reduce_colocker">Reduce co-locker ({0})</string>
+    <string name="register_failed">Registration failed</string>
+    <string name="register_success">Registration succeeded</string>
+    <string name="release_colock">Release Co-lock</string>
+    <string name="release_colocker">Release Co-locking</string>
+    <string name="remark">Remark</string>
+    <string name="remove">remove</string>
+    <string name="repeat_new_password">Repeat New Password (6-20 characters: letters, numbers, special symbols)</string>
+    <string name="repeat_password">Repeat Password (6-20 characters: letters, numbers, special symbols)</string>
+    <string name="reset">Reset</string>
+    <string name="reset_data_tv">Click to reset</string>
+    <string name="reset_password">Password</string>
+    <string name="reset_password_title">Reset Password</string>
+    <string name="reset_user_password_failed">User password reset failed</string>
+    <string name="reset_user_password_succeed">User password reset succeeded</string>
+    <string name="restart_app_after_set">App will restart after settings are applied</string>
+    <string name="restore">Restore</string>
+    <string name="restore_backup_confirm">Restoring a backup will erase all data from the backup date to now. Are you sure you want to continue?</string>
+    <string name="restore_backup_success">Backup restored successfully</string>
+    <string name="rfid">RFID Tag</string>
+    <string name="rfid_already_bind">This RFID tag is already bound</string>
+    <string name="rfid_already_registration">RFID tag already registered</string>
+    <string name="rfid_code">RFID Name</string>
+    <string name="rfid_in_use">RFID tag in use, cannot modify</string>
+    <string name="rfid_manage">RFID</string>
+    <string name="rfid_name">RFID Name</string>
+    <string name="rfid_token_manage_delete_failed">RFID tag deletion failed</string>
+    <string name="rfid_token_manage_delete_succeed">RFID tag deleted successfully</string>
+    <string name="rfid_token_manage_new_rfid_token_title">Add RFID Tag</string>
+    <string name="rfid_token_manage_rfid_token_detail_title">RFID Tag Details</string>
+    <string name="rfid_token_manage_title">RFID Management</string>
+    <string name="role">Role</string>
+    <string name="role_confirm">Role Confirm</string>
+    <string name="role_in_preset_tip">Preset roles cannot be deleted</string>
+    <string name="role_in_use">Role is in use in current jobs</string>
+    <string name="role_key_already_exists">Role permission characters already exist</string>
+    <string name="role_manage">Roles</string>
+    <string name="role_manage_add_title">Add Role</string>
+    <string name="role_manage_delete_failed">Unable to delete role</string>
+    <string name="role_manage_delete_succeed">Role deleted successfully</string>
+    <string name="role_manage_permission_string">Perm Chars</string>
+    <string name="role_manage_role_name">Role Name</string>
+    <string name="role_manage_role_num">Role Number</string>
+    <string name="role_manage_title">Role Management</string>
+    <string name="role_manage_update_title">Update Role</string>
+    <string name="save">Save</string>
+    <string name="save_and_execute">Save and Execute</string>
+    <string name="save_sop_check">Generate SOP</string>
+    <string name="save_success">Saved successfully!</string>
+    <string name="scan_complete_app_restarting">Scan complete, app will restart automatically</string>
+    <string name="sec"></string>
+    <string name="select">Select</string>
+    <string name="select_colocker_tip">Please select co-locker from the following personnel</string>
+    <string name="select_coloker">Please select co-locker</string>
+    <string name="select_group_tip">Click empty space in group to select</string>
+    <string name="select_locker">Select Locker</string>
+    <string name="select_locker_tip">Please select [{0}] as locker from the following personnel</string>
+    <string name="select_member">Select Member</string>
+    <string name="select_member_title">Select Personnel</string>
+    <string name="select_point_title">Select Point</string>
+    <string name="selected_point_already_in_use">Some selected points are already in use</string>
+    <string name="selected_point_info_title">Default Group</string>
+    <string name="selected_quick_entrance">Configured Shortcuts (up to 8, draggable)</string>
+    <string name="selected_rfid_in_use">Some selected RFID tags are in use</string>
+    <string name="send_ticket_fail">Job ticket issuance failed</string>
+    <string name="sending_ticket">Sending job ticket...</string>
+    <string name="server_address">Server Address</string>
+    <string name="server_address_error">Server address error</string>
+    <string name="set_colocker">Set Co-locker</string>
+    <string name="set_data_tv">Click to set</string>
+    <string name="set_default">Set as default</string>
+    <string name="set_face_title">Set Face</string>
+    <string name="set_fingerprint_title">Set Fingerprint</string>
+    <string name="set_job_card_title">Set Job Card</string>
+    <string name="set_locker">Set Locker</string>
+    <string name="set_password">Set Password (6-20 characters: letters, numbers, special symbols)</string>
+    <string name="settings">Settings</string>
+    <string name="show_in_map">Show in Map</string>
+    <string name="show_member_when_selected_sop">Personnel information will be displayed automatically after selecting SOP</string>
+    <string name="show_points_when_selected_sop">Point information will be displayed automatically after selecting SOP</string>
+    <string name="shutdown">Shutdown</string>
+    <string name="ski_step">Skip this step</string>
+    <string name="skip_and_complete">Skip and Complete</string>
+    <string name="slot">Slot</string>
+    <string name="slot_damage">Damaged Slot</string>
+    <string name="slot_exception_tag">This lock slot has been marked as abnormal</string>
+    <string name="slot_manage">Slots</string>
+    <string name="slots_exception_report">Slot Exception Report</string>
+    <string name="slots_manage_title">Slot Management</string>
+    <string name="sop">SOP</string>
+    <string name="sop_create_failed">SOP creation failed</string>
+    <string name="sop_create_succeed">SOP created successfully</string>
+    <string name="sop_job_save_and_execute_failed">SOP job execution failed</string>
+    <string name="sop_job_save_and_execute_succeed">SOP job started successfully</string>
+    <string name="sop_job_save_failed">SOP job save failed</string>
+    <string name="sop_job_save_succeed">SOP job saved successfully</string>
+    <string name="sop_manage">SOP</string>
+    <string name="sop_manage_delete_failed">Unable to delete selected SOP</string>
+    <string name="sop_manage_delete_succeed">Selected SOP deleted successfully</string>
+    <string name="sop_manage_sop_name">SOP Name</string>
+    <string name="sop_manage_title">SOP Management</string>
+    <string name="sop_manage_workstation">Area</string>
+    <string name="sop_save_failed">SOP save failed</string>
+    <string name="sop_save_succeed">SOP saved successfully</string>
+    <string name="sop_save_tip">Are you sure you want to save &quot;{0}&quot;?</string>
+    <string name="sop_workstation">SOP Area</string>
+    <string name="start">Start</string>
+    <string name="start_detect_key_slot">Start detecting key slot</string>
+    <string name="start_detect_lock_slot">Start detecting lock slot</string>
+    <string name="start_scan_key_mac">Start scanning key information</string>
+    <string name="start_time">Start Time</string>
+    <string name="start_tip">Initialize the system according to the instructions</string>
+    <string name="start_to_send_ticket">Start sending job ticket...</string>
+    <string name="status">Status</string>
+    <string name="step_confirm_failed">Step confirmation failed</string>
+    <string name="switch">Switch</string>
+    <string name="switch_alarm">Alarm</string>
+    <string name="switch_close">Locked</string>
+    <string name="switch_id">ID:{0}</string>
+    <string name="switch_information">Switch Info</string>
+    <string name="switch_layout">Switch Layout</string>
+    <string name="switch_open">Unlocked</string>
+    <string name="switch_status">Switch Status:</string>
+    <string name="sysconfig">System Configurator</string>
+    <string name="take_out_key">Please take out the key</string>
+    <string name="take_out_key_tip">Please take the key from the opened key slot</string>
+    <string name="take_out_lock_tip">Please take the lock from the opened lock slot, {0} remaining</string>
+    <string name="take_out_rest_locks">Please take out remaining locks with activated card locks</string>
+    <string name="tec_support">Wenzhou Doctor Safety Products Co., Ltd.</string>
+    <string name="the_verification_file_not_exists">Verification file does not exist</string>
+    <string name="ticket_data_error">Job ticket data corrupted</string>
+    <string name="ticket_get_failed">Failed to obtain job ticket, Please shutdown the key then take and return key again.</string>
+    <string name="ticket_lost">Job ticket does not exist</string>
+    <string name="ticket_name">Ticket Name</string>
+    <string name="time_frame_tv">Time Range</string>
+    <string name="todo_header">In Progress</string>
+    <string name="todo_list">My To-Do</string>
+    <string name="todo_wait">Wait:</string>
+    <string name="turn_off">Off</string>
+    <string name="turn_on">On</string>
+    <string name="turn_read">Read</string>
+    <string name="uncolock_complete">Co-lock release successful</string>
+    <string name="uncolock_failed">Co-lock release failed</string>
+    <string name="unknown">Unknown To-Do</string>
+    <string name="unlock">Unlock</string>
+    <string name="unlock_and_restore_switch">Unlock and restore switch</string>
+    <string name="unlock_return_key">Finish Unlocking</string>
+    <string name="unlock_take_key">Start Unlocking</string>
+    <string name="unlocking">Unlocking</string>
+    <string name="unzip">Unzipping… {0}</string>
+    <string name="update_card_failed">Update card failed</string>
+    <string name="update_card_succeed">Card updated successfully</string>
+    <string name="update_info">Update Info</string>
+    <string name="update_key_failed">Update key failed</string>
+    <string name="update_key_succeed">Key updated successfully</string>
+    <string name="update_lock_failed">Update lock failed</string>
+    <string name="update_lock_succeed">Lock updated successfully</string>
+    <string name="update_point_failed">Save point failed</string>
+    <string name="update_point_succeed">Point saved successfully</string>
+    <string name="update_rfid_token_failed">Update RFID tag failed</string>
+    <string name="update_rfid_token_succeed">RFID tag updated successfully</string>
+    <string name="update_role_failed">Role update failed</string>
+    <string name="update_role_succeed">Role updated successfully</string>
+    <string name="update_user_failed">User update failed</string>
+    <string name="update_user_succeed">User updated successfully</string>
+    <string name="update_workstation_failed">Update area failed</string>
+    <string name="update_workstation_succeed">Area updated successfully</string>
+    <string name="user">User</string>
+    <string name="user_already_exists">User already exists</string>
+    <string name="user_info">Profile</string>
+    <string name="user_info_title">Personal Information</string>
+    <string name="user_manage">Users</string>
+    <string name="user_manage_area">Area</string>
+    <string name="user_manage_card_code">Job Card</string>
+    <string name="user_manage_delete_failed">Unable to delete user</string>
+    <string name="user_manage_delete_succeed">User deleted successfully</string>
+    <string name="user_manage_filter_activate">Active</string>
+    <string name="user_manage_filter_deactivate">Inactive</string>
+    <string name="user_manage_filter_title">Filter Criteria</string>
+    <string name="user_manage_new_user_title">Add User</string>
+    <string name="user_manage_role">Role</string>
+    <string name="user_manage_title">User Management</string>
+    <string name="user_manage_user_detail_title">User Details</string>
+    <string name="user_manage_view">View</string>
+    <string name="user_name">Login Name</string>
+    <string name="username">Username</string>
+    <string name="username_min_size">Username min size(1-6)</string>
+    <string name="username_or_password_error">Incorrect username or password</string>
+    <string name="username_passowrd_login_success">Username and password verified successfully</string>
+    <string name="username_password_not_exists">Username or password does not exist</string>
+    <string name="username_regex_tip">Username does not meet requirements</string>
+    <string name="verify_failed">Verification failed</string>
+    <string name="view">View</string>
+    <string name="wait_header">Waiting</string>
+    <string name="wait_to_colock">Pending co-lock ({0})</string>
+    <string name="warn">Warning</string>
+    <string name="welcome_tip">Hello, welcome</string>
+    <string name="workflow_already_exists">Workflow mode already exists</string>
+    <string name="workflow_manage">Workflow</string>
+    <string name="workflow_manage_title">Workflow Mode Management</string>
+    <string name="workflow_mode">Workflow Mode</string>
+    <string name="workflow_mode_manage_delete_succeed">Workflow mode deleted successfully</string>
+    <string name="workflow_mode_status_update_failed">Status update failed</string>
+    <string name="workflow_mode_status_update_succeed">Status updated successfully</string>
+    <string name="workflow_name">Workflow Mode Name</string>
+    <string name="workflow_setting">Workflow Settings</string>
+    <string name="workflow_step_confirm_member">Execution confirmation personnel</string>
+    <string name="workflow_step_confirm_role">Execution confirmation role</string>
+    <string name="workflow_step_confirm_type">Execution confirmation method</string>
+    <string name="workflow_step_description">Step Instructions</string>
+    <string name="workflow_step_function">Step Function</string>
+    <string name="workflow_step_title">Step Title</string>
+    <string name="workflow_step_title_short">Step Title Abbreviation</string>
+    <string name="workstation">Area</string>
+    <string name="workstation_already_exists">Area already exists</string>
+    <string name="workstation_info">Area info</string>
+    <string name="workstation_is_in_bottom">Area is already at the bottom</string>
+    <string name="workstation_is_in_top">Area is already at the top</string>
+    <string name="workstation_manage">Areas</string>
+    <string name="workstation_manage_delete_failed">Unable to delete area {0}</string>
+    <string name="workstation_manage_delete_succeed">Area {0} deleted successfully</string>
+    <string name="workstation_manage_new_workstation">Add Area</string>
+    <string name="workstation_manage_parent_workstation_name">Parent area Name</string>
+    <string name="workstation_manage_title">Area Management</string>
+    <string name="workstation_manage_update_workstation">Edit Area</string>
+    <string name="workstation_manage_workstation_name">Area Name</string>
+    <string name="year"></string>
+    <string name="you_are_not_locker_tip">You are not the locker and cannot perform this operation</string>
+    <string name="zone">Area Range</string>
+</resources>

+ 839 - 0
ui-base/src/main/res/values-zh/strings.xml

@@ -0,0 +1,839 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="FRI">星期五</string>
+    <string name="MON">星期一</string>
+    <string name="SAT">星期六</string>
+    <string name="SUN">星期日</string>
+    <string name="THU">星期四</string>
+    <string name="TUE">星期二</string>
+    <string name="WED">星期三</string>
+    <string name="abnormal">异常</string>
+    <string name="action_confirm">操作确认</string>
+    <string name="action_confirm_content">确定要执行{0}吗?</string>
+    <string name="action_failed">操作失败</string>
+    <string name="action_hint">操作提醒</string>
+    <string name="action_succeed">操作成功</string>
+    <string name="add_card_failed">添加卡片失败</string>
+    <string name="add_card_succeed">添加卡片成功</string>
+    <string name="add_colocker">添加共锁人({0})</string>
+    <string name="add_group">添加分组</string>
+    <string name="add_key_failed">新增钥匙失败</string>
+    <string name="add_key_succeed">新增钥匙成功</string>
+    <string name="add_lock_failed">添加挂锁失败</string>
+    <string name="add_lock_succeed">添加挂锁成功</string>
+    <string name="add_point_failed">新增隔离点失败</string>
+    <string name="add_point_succeed">新增隔离点成功</string>
+    <string name="add_rfid_token_failed">添加RFID标签失败</string>
+    <string name="add_rfid_token_succeed">添加RFID标签成功</string>
+    <string name="add_role_failed">新增角色失败</string>
+    <string name="add_role_succeed">新增角色成功</string>
+    <string name="add_to_map_point_name">点位名称:</string>
+    <string name="add_to_map_point_serial_number">开关序号:</string>
+    <string name="add_to_map_x">坐标X:</string>
+    <string name="add_to_map_y">坐标Y:</string>
+    <string name="add_user_succeed">新增用户成功</string>
+    <string name="add_workstation_failed">新增区域失败</string>
+    <string name="add_workstation_succeed">新增区域成功</string>
+    <string name="admin">超级管理员</string>
+    <string name="admin_role_can_not_edit">管理员角色无法编辑</string>
+    <string name="admin_username">管理员账号:(数字、字母)</string>
+    <string name="administrator">管理员</string>
+    <string name="air_energy">空气能</string>
+    <string name="all">全部</string>
+    <string name="all_hardware_tv">全部硬件</string>
+    <string name="all_job_tv">全部作业</string>
+    <string name="all_new_lock_registration">录入所有新挂锁</string>
+    <string name="all_points_tv">全部点位</string>
+    <string name="all_quick_entrance">所有快捷入口</string>
+    <string name="all_select_not_all_select">全选/全不选</string>
+    <string name="all_slot_turn_off">全仓位关</string>
+    <string name="all_slot_turn_on">全仓位开</string>
+    <string name="allow_colocker_login_to_colock">允许共锁人登录共锁</string>
+    <string name="already_colock">已共锁({0})</string>
+    <string name="already_uncolock">已解除共锁({0})</string>
+    <string name="apply_finish_job">申请结束作业</string>
+    <string name="apply_master_key">申请万能钥匙</string>
+    <string name="apply_scrap_key">申请报废钥匙</string>
+    <string name="apply_scrap_lock">申请报废挂锁</string>
+    <string name="apply_scrap_slot">申请报废仓位</string>
+    <string name="auto_backup">自动备份</string>
+    <string name="auto_confirm">自动确认</string>
+    <string name="auto_logout_time">自动登出时间(最低1,最高10,单位:分钟):</string>
+    <string name="back">返回</string>
+    <string name="backup">备份</string>
+    <string name="backup_and_restore">备份/还原</string>
+    <string name="backup_failed">备份失败</string>
+    <string name="backup_frequency">备份频率</string>
+    <string name="backup_frequency_every_day">每天</string>
+    <string name="backup_now">立即备份</string>
+    <string name="backup_now_please_wait">正在备份中,请稍等……</string>
+    <string name="backup_path">备份路径</string>
+    <string name="backup_range">范围:{0}</string>
+    <string name="backup_restoring">备份还原中……</string>
+    <string name="backup_success">备份成功</string>
+    <string name="backup_time">备份时间</string>
+    <string name="backup_tip">注意:自动备份时必须保证应用处于启动状态。</string>
+    <string name="backup_title">备份/还原</string>
+    <string name="base_info_title">基本信息</string>
+    <string name="ble_connect_fail">连接失败,请重试!</string>
+    <string name="ble_connecting">连接中,请稍后...</string>
+    <string name="can_not_remove_current_colocker">无法移除当前共锁人</string>
+    <string name="can_not_remove_current_locker">无法移除当前上锁人</string>
+    <string name="cancel">取消</string>
+    <string name="cancel_countdown">取消({0}秒)</string>
+    <string name="cancel_exception">取消异常</string>
+    <string name="cancel_exception_failed">取消异常失败</string>
+    <string name="cancel_exception_success">异常取消成功</string>
+    <string name="cancel_job">取消作业</string>
+    <string name="cancel_job_tip">是否确认取消当前作业</string>
+    <string name="canceld">已取消</string>
+    <string name="canceled">已取消</string>
+    <string name="capture_tip_content">1. 系统将自动拍摄照片,在拍摄过程中请确保:\n      · 脸部正对摄像头\n      · 保持适当距离,让整个脸部出现在左侧框中\n      · 光线充足\n      · 表情自然\n2. 拍摄完成后,您可以点击确认按钮进行提交,也可以点击重拍按钮重新进行拍摄。\n3. 取消录入,请点击取消按钮</string>
+    <string name="capture_tip_title">录入提示</string>
+    <string name="card_already_registration">卡片已录入</string>
+    <string name="card_code">卡片名称</string>
+    <string name="card_login">刷卡登录</string>
+    <string name="card_manage">卡片管理</string>
+    <string name="card_manage_card_detail_title">卡片详情</string>
+    <string name="card_manage_delete_failed">卡片删除失败</string>
+    <string name="card_manage_delete_succeed">卡片删除成功</string>
+    <string name="card_manage_new_card_title">新增卡片</string>
+    <string name="card_manage_title">卡片管理</string>
+    <string name="card_nfc">卡片 NFC</string>
+    <string name="card_setting">设置工卡</string>
+    <string name="change_to_standard">切换标准版</string>
+    <string name="check_before_unlocking">取锁前检查</string>
+    <string name="check_delete_card">确定要删除选中的卡片吗?</string>
+    <string name="check_delete_job">您确认要删除作业吗</string>
+    <string name="check_delete_key">您确定要删除选中的钥匙吗</string>
+    <string name="check_delete_lock">确定要删除选中的挂锁吗?</string>
+    <string name="check_delete_point">您确定要删除隔离点吗</string>
+    <string name="check_delete_rfid_token">确定要删除选中的RFID标签吗?</string>
+    <string name="check_delete_role">您确认要删除角色吗</string>
+    <string name="check_delete_sop">您确定要删除选中的SOP吗</string>
+    <string name="check_delete_user">您确认要删除用户吗?</string>
+    <string name="check_delete_workflow_mode">确定要删除选中的流程模式吗</string>
+    <string name="check_delete_workstation">您确定要删除区域{0}吗</string>
+    <string name="check_device_info">检测到未注册钥匙{0}把</string>
+    <string name="check_key_and_lock">正在检查钥匙和挂锁</string>
+    <string name="check_lock_is_new_device">检查挂锁是否为新硬件</string>
+    <string name="check_new_key_need_register">检测到新钥匙,是否注册</string>
+    <string name="check_new_lock_need_register">检测到新挂锁,是否注册</string>
+    <string name="click_confirm">点击确认</string>
+    <string name="close">关闭</string>
+    <string name="colock">添加共锁</string>
+    <string name="colock_complete">添加共锁完成</string>
+    <string name="colock_failed">添加共锁失败</string>
+    <string name="colocker">共锁人</string>
+    <string name="colocking">共锁中</string>
+    <string name="common_batch_delete">批量删除</string>
+    <string name="common_batch_export">批量导出</string>
+    <string name="common_disable">停用</string>
+    <string name="common_enable">启用</string>
+    <string name="common_export">导出</string>
+    <string name="confirm">确认</string>
+    <string name="confirm_cancel_exception">是否确认取消异常</string>
+    <string name="confirm_create_lock_job">确认是否创建上锁作业</string>
+    <string name="confirm_create_unlock_job">是否创建解锁作业</string>
+    <string name="confirm_exec">执行确认</string>
+    <string name="confirm_handle_exception">是否确认处理异常</string>
+    <string name="confirm_to_colock">{0}是否确认共锁?</string>
+    <string name="confirm_to_uncolock">{0}是否确认解除共锁?</string>
+    <string name="continue_the_ticket">请继续完成作业票</string>
+    <string name="create_job">新建作业</string>
+    <string name="create_job_failed">创建作业失败</string>
+    <string name="create_job_name">作业名称</string>
+    <string name="create_job_title">新建作业</string>
+    <string name="create_sop">新建SOP</string>
+    <string name="create_sop_job">新建SOP作业</string>
+    <string name="create_sop_job_sop">SOP</string>
+    <string name="create_sop_job_tip">确定要执行作业{0}吗?</string>
+    <string name="create_sop_job_title">新建SOP作业</string>
+    <string name="create_sop_name">SOP名称</string>
+    <string name="create_sop_title">新建SOP</string>
+    <string name="current_job_has_cross_job">警告!当前作业存在交叉作业,是否继续处理异常</string>
+    <string name="current_role_no_user">当前角色暂无用户</string>
+    <string name="current_slot_has_no_key">当前仓位不存在钥匙</string>
+    <string name="current_slot_has_no_lock">当前仓位不存在挂锁</string>
+    <string name="current_sop_has_job_in_progress">当前SOP存在进行中的作业</string>
+    <string name="current_ticket_report_lock_take_exception_tip">当前作业挂锁上报异常,请归还挂锁</string>
+    <string name="current_user_has_not_face_data">当前用户不存在人脸数据</string>
+    <string name="current_workflow_mode_error">当前流程模式错误</string>
+    <string name="currently_no_hardware_can_be_report">当前没有硬件可以上报</string>
+    <string name="currently_no_job_can_be_report">当前没有作业可以上报</string>
+    <string name="currently_unable_to_lock_together">当前阶段无法共锁</string>
+    <string name="data_content_error">数据内容错误</string>
+    <string name="data_decrypt_failed">数据解密失败</string>
+    <string name="data_exception">数据异常</string>
+    <string name="data_export">数据导出</string>
+    <string name="data_export">请选择您要导出的表,然后点击导出。</string>
+    <string name="data_export_error">数据导出失败。</string>
+    <string name="data_export_success_tip">数据导出完成,请选择文件夹并点击右下角按钮进行保存。</string>
+    <string name="data_file_is_corrupted">数据文件已损坏</string>
+    <string name="data_file_not_exists">数据文件不存在</string>
+    <string name="data_in_backup">数据备份中……</string>
+    <string name="data_manage">数据管理</string>
+    <string name="data_table">数据表</string>
+    <string name="date">{0}年{1}月{2}日</string>
+    <string name="day">日</string>
+    <string name="default_map">默认地图</string>
+    <string name="delete">删除</string>
+    <string name="delete_backup_file_confirm">是否确认删除该备份,删除后备份无法恢复。</string>
+    <string name="delete_group">删除分组</string>
+    <string name="delete_selected_backup_file_confirm">是否确认删除选中备份,删除后备份无法恢复。</string>
+    <string name="delete_success">删除成功</string>
+    <string name="detail">详情</string>
+    <string name="detect_face_tip">检测到人脸,即将拍摄</string>
+    <string name="detect_port">正在扫描设备......</string>
+    <string name="detect_slot">检测仓位</string>
+    <string name="device_in_detect">设备识别中</string>
+    <string name="do_you_want_to_remove_exception">是否确认移除该异常</string>
+    <string name="doing_checking">正在验证......</string>
+    <string name="doing_login">正在登录······</string>
+    <string name="done_header">已处理</string>
+    <string name="edit">编辑</string>
+    <string name="edit_job_title">作业详情</string>
+    <string name="edit_sop_job_title">SOP作业详情</string>
+    <string name="edit_sop_title">SOP详情</string>
+    <string name="electric_energy">电能</string>
+    <string name="end">结束作业</string>
+    <string name="end_job">结束作业</string>
+    <string name="end_time">结束时间</string>
+    <string name="end_time_must_large_then_start_time">结束时间必须大于开始时间</string>
+    <string name="ensure_power_isolation">能量隔离证实</string>
+    <string name="error_date_range_invalid">开始时间不能晚于结束时间</string>
+    <string name="exception_data_not_exists">异常数据不存在</string>
+    <string name="exception_description">异常描述:</string>
+    <string name="exception_description_tv">异常描述</string>
+    <string name="exception_detail_title">异常详情</string>
+    <string name="exception_info">异常信息</string>
+    <string name="exception_job">异常作业</string>
+    <string name="exception_job_title">异常作业</string>
+    <string name="exception_lost">异常丢失</string>
+    <string name="exception_manage">异常管理</string>
+    <string name="exception_manage_title">异常管理</string>
+    <string name="exception_occurrence_time">异常发生时间:</string>
+    <string name="exception_occurrence_time_header">发生时间</string>
+    <string name="exception_reason">异常信息</string>
+    <string name="exception_release_time">异常解除时间:</string>
+    <string name="exception_report">异常上报</string>
+    <string name="exception_report_success">异常上报成功</string>
+    <string name="exception_reporter">上报人:</string>
+    <string name="exception_source">异常源:</string>
+    <string name="exception_source_tv">异常源</string>
+    <string name="exception_status">状态:</string>
+    <string name="exception_status_header">异常状态</string>
+    <string name="exception_type">异常类型:</string>
+    <string name="exception_type_header">异常类型</string>
+    <string name="exception_type_tv">异常类型</string>
+    <string name="excp_job_name_title">异常作业名称</string>
+    <string name="expand_collapse">展开/折叠</string>
+    <string name="export_selected_backup_file_confirm">将启动路径选择器,选择之后点击右下角选择进行导出</string>
+    <string name="export_success">导出成功</string>
+    <string name="exporting">导出中……</string>
+    <string name="face_can_not_process">人脸引擎激活失败,识别暂不可用</string>
+    <string name="face_detected_do_login">检测到人脸,正在登录······</string>
+    <string name="face_login">人脸登录</string>
+    <string name="face_login_failed">人脸匹配失败,请重试</string>
+    <string name="face_login_success">人脸验证通过</string>
+    <string name="face_not_set_tip">您尚未设置人脸数据</string>
+    <string name="face_set_tip">您已设置了人脸数据</string>
+    <string name="face_setting">设置人脸</string>
+    <string name="file_not_exists">文件不存在</string>
+    <string name="filter">筛选</string>
+    <string name="fingerprint_add_success_tip">已成功添加指纹数据</string>
+    <string name="fingerprint_code">指纹编号</string>
+    <string name="fingerprint_code_str">指纹_{0}</string>
+    <string name="fingerprint_delete_confirm_tip">确定要删除{0}吗?</string>
+    <string name="fingerprint_delete_selected_confirm_tip">确定要删除选中的指纹吗?</string>
+    <string name="fingerprint_limit_tip">指纹数量已达到上限</string>
+    <string name="fingerprint_login">指纹登录</string>
+    <string name="fingerprint_login_failed">指纹识别失败,请重试</string>
+    <string name="fingerprint_login_success">指纹验证通过</string>
+    <string name="fingerprint_scan_tip">请连续按压{0}次指纹识别区</string>
+    <string name="fingerprint_setting">设置指纹</string>
+    <string name="finish_job_tip">是否确认结束当前作业</string>
+    <string name="finish_the_job">结束作业</string>
+    <string name="finished">已结束</string>
+    <string name="footer_failed">加载失败</string>
+    <string name="footer_finish">加载完成</string>
+    <string name="footer_loading">正在刷新...</string>
+    <string name="footer_nothing">全部加载完成</string>
+    <string name="footer_pulling">上拉加载更多</string>
+    <string name="footer_refreshing">正在加载...</string>
+    <string name="footer_release">释放立即加载</string>
+    <string name="force_multi_lock">强制多锁模式</string>
+    <string name="force_shared_lock">强制共享锁模式</string>
+    <string name="gas">燃气</string>
+    <string name="get_key_info_fail">获取钥匙信息失败</string>
+    <string name="go_locking">去上锁</string>
+    <string name="go_unlocking">去解锁</string>
+    <string name="group_at_least_has_one_point">每个分组至少需要存在一个点位</string>
+    <string name="group_job_in_progress">分组作业进行中</string>
+    <string name="group_name_must_not_empty">分组名称不能为空</string>
+    <string name="handle">处理</string>
+    <string name="handle_colock">请确认是否要进行添加共锁</string>
+    <string name="handle_exception">处理异常</string>
+    <string name="handle_exception_success">异常处理成功</string>
+    <string name="handle_exception_will_release_all_colock">警告!处理异常将移除所有共锁,请确认是否继续</string>
+    <string name="handle_failed">处理失败</string>
+    <string name="handle_lock_take_key">确认获取钥匙进行上锁吗?</string>
+    <string name="handle_release_colock">请确认是否要进行解除共锁</string>
+    <string name="handle_step_confirm">请确认是否完成[{0}]</string>
+    <string name="handle_time">处理时间:</string>
+    <string name="handle_time_custom_time_range">自定义区间</string>
+    <string name="handle_time_last_30_days">近30天</string>
+    <string name="handle_time_last_7_days">近7天</string>
+    <string name="handle_unknown">当前处理类型未知,无法处理</string>
+    <string name="handle_unlock_take_key">确认获取钥匙进行解锁吗?</string>
+    <string name="hardware_exception">硬件异常</string>
+    <string name="hardware_in_use_tv">使用中的硬件</string>
+    <string name="hardware_info">硬件信息: {0}</string>
+    <string name="hardware_key">钥匙</string>
+    <string name="hardware_lock">挂锁</string>
+    <string name="hardware_manage">硬件管理</string>
+    <string name="hardware_mode">硬件模式(模式修改保存需要重启应用)</string>
+    <string name="hardware_mode">硬件模式</string>
+    <string name="hardware_unknown">未知</string>
+    <string name="has_job_in_progress">存在正在进行中的作业</string>
+    <string name="has_locked">已上锁</string>
+    <string name="has_user_in_progress_job">有用户在进行的作业中</string>
+    <string name="header_failed">刷新失败</string>
+    <string name="header_finish">刷新完成</string>
+    <string name="header_loading">正在加载...</string>
+    <string name="header_pulling">下拉可以刷新</string>
+    <string name="header_refreshing">正在刷新...</string>
+    <string name="header_release">释放立即刷新</string>
+    <string name="header_secondary">释放进入二楼</string>
+    <string name="header_update">上次更新 M-d HH:mm</string>
+    <string name="heat_energy">热能</string>
+    <string name="home">主页</string>
+    <string name="home_overview_data_title">总览数据</string>
+    <string name="home_realtime_data_title">实时数据</string>
+    <string name="hour">时</string>
+    <string name="hydraulic_pressure">液压</string>
+    <string name="i18n.language_name">中文</string>
+    <string name="import_str">导入</string>
+    <string name="import_success">导入成功</string>
+    <string name="in_progress_job">进行中的作业</string>
+    <string name="in_progress_job_manage_title">进行中的作业</string>
+    <string name="init_card_registration_step_hint">请在读卡器上刷卡</string>
+    <string name="init_card_registration_step_tip">识别并录入卡片</string>
+    <string name="init_device_registration_key_and_lock_complete_step_hint">扫描完成</string>
+    <string name="init_device_registration_key_and_lock_step_hint">请等待系统识别钥匙和挂锁</string>
+    <string name="init_device_registration_key_and_lock_step_tip">识别钥匙和挂锁</string>
+    <string name="init_point_rfid_registration_step_hint">请在读卡器上刷点位RFID标签</string>
+    <string name="init_point_rfid_registration_step_tip">识别并录入点位RFID标签</string>
+    <string name="init_set_admin_account_step">1</string>
+    <string name="init_set_admin_account_step_hint">请设置管理员账号密码</string>
+    <string name="init_set_admin_account_step_tip">设置管理员账号</string>
+    <string name="init_set_remote_server_step_hint">请设置服务器的地址和端口</string>
+    <string name="init_set_remote_server_step_tip">配置服务器</string>
+    <string name="insert">新增</string>
+    <string name="invalid_card">卡片无效</string>
+    <string name="invalid_user">用户不存在</string>
+    <string name="item_my_todo_complete_time_title">完成时间:</string>
+    <string name="item_my_todo_current_operation_title">当前操作:</string>
+    <string name="item_my_todo_current_step_title">当前步骤:</string>
+    <string name="item_my_todo_job_name_title">相关作业:</string>
+    <string name="job">作业</string>
+    <string name="job_already_finished">该作业已被结束</string>
+    <string name="job_canceled">作业已取消</string>
+    <string name="job_card_login_failed">工卡无效</string>
+    <string name="job_card_login_success">工卡识别成功</string>
+    <string name="job_card_not_set_tip">您尚未设置工卡</string>
+    <string name="job_card_scan_tip">请在读卡器上读卡</string>
+    <string name="job_card_set_tip">您已设置了工卡数据</string>
+    <string name="job_cat_not_exec">作业票无法执行</string>
+    <string name="job_create_and_execute_failed">作业执行失败</string>
+    <string name="job_create_and_execute_succeed">作业开始执行</string>
+    <string name="job_create_failed">作业保存失败</string>
+    <string name="job_create_succeed">作业保存成功</string>
+    <string name="job_exception">作业异常</string>
+    <string name="job_execute_colocker_colock_status_title">共锁人员共锁状态</string>
+    <string name="job_execute_lock_status_title">隔离点锁定状态</string>
+    <string name="job_execute_step_description">操作说明({0})</string>
+    <string name="job_execute_tab_title_colock">共锁</string>
+    <string name="job_execute_tab_title_lock">锁定</string>
+    <string name="job_execute_title">作业执行</string>
+    <string name="job_finished">作业已结束</string>
+    <string name="job_lost">作业丢失</string>
+    <string name="job_manage">作业管理</string>
+    <string name="job_manage_delete_failed">无法删除选中的作业</string>
+    <string name="job_manage_delete_succeed">删除选中的作业成功</string>
+    <string name="job_manage_title">作业管理</string>
+    <string name="job_name">作业名称</string>
+    <string name="job_save_and_execute_tip">确定要执行作业{0}吗?</string>
+    <string name="job_save_tip">确定要保存作业{0}吗?</string>
+    <string name="job_status">作业状态</string>
+    <string name="job_ticket_manage">作业管理</string>
+    <string name="job_workstation">作业区域</string>
+    <string name="jtcolocker">共锁人</string>
+    <string name="jtdrawer">作业管理员</string>
+    <string name="jtguard">作业观察员</string>
+    <string name="jtlocker">上锁人</string>
+    <string name="key">钥匙</string>
+    <string name="key_damage">钥匙损坏</string>
+    <string name="key_exception_tag">该钥匙已被标记异常</string>
+    <string name="key_in_use">钥匙正在使用</string>
+    <string name="key_info_already_exists">钥匙信息已存在</string>
+    <string name="key_is_in_failure_mode">钥匙处于故障模式</string>
+    <string name="key_mac">钥匙MAC</string>
+    <string name="key_manage">钥匙管理</string>
+    <string name="key_manage_delete_failed">钥匙删除失败</string>
+    <string name="key_manage_delete_succeed">钥匙删除成功</string>
+    <string name="key_manage_key_detail_title">钥匙详情</string>
+    <string name="key_manage_new_key_title">新增钥匙</string>
+    <string name="key_manage_title">钥匙管理</string>
+    <string name="key_name">钥匙名称</string>
+    <string name="key_nfc">钥匙NFC</string>
+    <string name="key_not_exists">钥匙不存在</string>
+    <string name="key_return_success">钥匙归还成功</string>
+    <string name="key_return_tip">作业票尚未完成,禁止归还钥匙</string>
+    <string name="key_take_error_tip">钥匙分配失败,请检查硬件状态</string>
+    <string name="last_export_datetime">上次导出时间</string>
+    <string name="loading_backup">正在读取备份文件</string>
+    <string name="loading_data">数据加载中</string>
+    <string name="loading_device">正在加载硬件......</string>
+    <string name="loading_msg_get_ticket_status_start">正在读取钥匙作业票</string>
+    <string name="loading_msg_return_key_start">开始连接钥匙,请稍候······</string>
+    <string name="lock">挂锁</string>
+    <string name="lock_already_exists">挂锁信息已存在</string>
+    <string name="lock_code">挂锁编号</string>
+    <string name="lock_damage">挂锁损坏</string>
+    <string name="lock_exception_tag">该挂锁已被标记异常</string>
+    <string name="lock_in_use">挂锁正在使用中</string>
+    <string name="lock_is_not_enough">锁具数量不足</string>
+    <string name="lock_key_return_tip">作业票尚未完成,是否强制上传数据</string>
+    <string name="lock_manage">挂锁管理</string>
+    <string name="lock_manage_delete_failed">挂锁删除失败</string>
+    <string name="lock_manage_delete_succeed">挂锁删除成功</string>
+    <string name="lock_manage_lock_detail_title">挂锁详情</string>
+    <string name="lock_manage_new_lock_title">新增挂锁</string>
+    <string name="lock_manage_title">挂锁管理</string>
+    <string name="lock_name">挂锁名称</string>
+    <string name="lock_nfc">挂锁 NFC</string>
+    <string name="lock_return_key">完成上锁</string>
+    <string name="lock_status">上锁状态</string>
+    <string name="lock_take_key">启动上锁</string>
+    <string name="lock_take_report_fail">挂锁取出上报失败</string>
+    <string name="locked_point">锁定中的点位</string>
+    <string name="locked_points_title">锁定中的点位</string>
+    <string name="locked_points_tv">锁定中的点位</string>
+    <string name="locker">上锁人</string>
+    <string name="locking">上锁中</string>
+    <string name="login">登录</string>
+    <string name="login_tip">您可以通过指纹或刷卡直接进行登录</string>
+    <string name="logout">退出登录</string>
+    <string name="loto">智能锁控系统</string>
+    <string name="loto_en">Intelligent Lock Control System</string>
+    <string name="manage_filter_status">状态</string>
+    <string name="manage_role_function_permission">功能权限</string>
+    <string name="max_backup_tip">备份数量已经达到上限,继续备份将移除最老的数据。</string>
+    <string name="max_fingerprint_insert">最大指纹录入数量:</string>
+    <string name="max_fingerprint_insert_tip">(指纹最多可录入{0}个)</string>
+    <string name="maximumNumberOfBackupsNotCorrect">请填写正确的备份数量上限</string>
+    <string name="maximum_number_of_backups">备份数量上限</string>
+    <string name="mechanical_energy">机械能</string>
+    <string name="member_info_title">人员信息</string>
+    <string name="min">分</string>
+    <string name="mixed_mode">混合模式</string>
+    <string name="month">月</string>
+    <string name="move_down">下移</string>
+    <string name="move_up">上移</string>
+    <string name="my_todo_title">我的待办</string>
+    <string name="navigate_to_step">跳转到第{0}步</string>
+    <string name="new_device">New</string>
+    <string name="new_group">新分组{0}</string>
+    <string name="new_password">新密码(数字、字母、特殊符号、6-20位)</string>
+    <string name="new_password_and_repeat_new_password_not_same">新密码与重复新密码不一致</string>
+    <string name="new_password_cannot_be_the_same_as_the_old_password">新密码与旧密码不能相同</string>
+    <string name="next">下一步</string>
+    <string name="nickname">姓名</string>
+    <string name="no_available_key">暂无可用钥匙</string>
+    <string name="no_backup_data">暂无备份数据</string>
+    <string name="no_data">暂无数据</string>
+    <string name="no_goto_step">无跳转</string>
+    <string name="no_permission_to_handle">您暂无权限操作当前作业票</string>
+    <string name="no_response_board_exists">存在未响应的主板</string>
+    <string name="normal">正常</string>
+    <string name="not_group_can_lock">当前无分组可上锁</string>
+    <string name="not_group_can_unlock">当前无分组可解锁</string>
+    <string name="not_in_slot">未在仓位</string>
+    <string name="not_save_tip">数据还没有保存,您确定要放弃保存,离开当前页面吗?</string>
+    <string name="not_start">未开始</string>
+    <string name="number">编号:</string>
+    <string name="old_password">旧密码</string>
+    <string name="old_password_error">旧密码错误</string>
+    <string name="one_key_cancel">一键取消</string>
+    <string name="one_key_handle">一键处理</string>
+    <string name="ongoing_job_tv">进行中的作业</string>
+    <string name="only_one_person_allowed">请保持单人入镜</string>
+    <string name="operation">操作</string>
+    <string name="password">密码</string>
+    <string name="password_and_repeat_password_not_same">密码与重复密码不一致</string>
+    <string name="password_hint">6-20位:字母/数字/符号</string>
+    <string name="password_login">密码登录</string>
+    <string name="password_regex_tip">密码不符合要求</string>
+    <string name="pending">待处理</string>
+    <string name="phone">电话</string>
+    <string name="please_do_colock">请共锁人完成共锁</string>
+    <string name="please_do_uncolock">请共锁人解除共锁</string>
+    <string name="please_done_operation">请先完成{0}</string>
+    <string name="please_go_locking">请上锁员执行去上锁操作</string>
+    <string name="please_go_unlocking">请上锁员执行去解锁操作</string>
+    <string name="please_input_account">请输入用户名</string>
+    <string name="please_input_admin_username">请输入管理员账号</string>
+    <string name="please_input_area">请输入区域</string>
+    <string name="please_input_auto_logout_time">请输入自动登出时间</string>
+    <string name="please_input_auto_logout_time_correct">请设置正确的自动登出时间</string>
+    <string name="please_input_card_code">请输入工卡</string>
+    <string name="please_input_card_nfc">请输入卡片 NFC</string>
+    <string name="please_input_correct_phone">请输入正确的手机号</string>
+    <string name="please_input_exception_reason">请输入异常原因</string>
+    <string name="please_input_job_name">请输入作业名称</string>
+    <string name="please_input_key_mac">请输入钥匙MAC</string>
+    <string name="please_input_key_name">请输入钥匙名称</string>
+    <string name="please_input_key_nfc">请输入钥匙NFC</string>
+    <string name="please_input_key_word">请输入关键字</string>
+    <string name="please_input_lock_code">请输入挂锁编号</string>
+    <string name="please_input_lock_nfc">请输入挂锁 NFC</string>
+    <string name="please_input_max_fingerprint_entries_size">请输入最大指纹录入数量</string>
+    <string name="please_input_new_password">请输入新密码</string>
+    <string name="please_input_nickname">请输入姓名</string>
+    <string name="please_input_old_password">请输入旧密码</string>
+    <string name="please_input_password">请输入密码</string>
+    <string name="please_input_permission_characters">请输入权限字符</string>
+    <string name="please_input_phone">请输入电话</string>
+    <string name="please_input_point_function">请输入隔离点作用</string>
+    <string name="please_input_point_name">请输入隔离点名称</string>
+    <string name="please_input_point_serial_number">请输入开关序号(0-31)</string>
+    <string name="please_input_remark">请输入备注</string>
+    <string name="please_input_remote_server_address">请输入服务地址</string>
+    <string name="please_input_repeat_new_password">请重复新密码</string>
+    <string name="please_input_repeat_password">请输入重复密码</string>
+    <string name="please_input_rfid">请输入 RFID 标签</string>
+    <string name="please_input_rfid_code">请输入 RFID 编号</string>
+    <string name="please_input_rfid_tag">请输入RFID标签</string>
+    <string name="please_input_role_name">请输入角色名称</string>
+    <string name="please_input_sop_name">请输入SOP名称</string>
+    <string name="please_input_step_description">请输入步骤操作说明</string>
+    <string name="please_input_step_title">请填写步骤标题</string>
+    <string name="please_input_step_title_short">请输入步骤标题缩写</string>
+    <string name="please_input_username">请输入登录名</string>
+    <string name="please_input_username_min_size">请输入最小用户名长度</string>
+    <string name="please_input_workstation_name">请输入区域名称</string>
+    <string name="please_input_x_in_map">请输入坐标X(最大1920)</string>
+    <string name="please_input_y_in_map">请输入坐标X(最大1080)</string>
+    <string name="please_must_select_at_least_one_point">您至少需要添加一个点位</string>
+    <string name="please_press_fingerprint_again">请再次按压指纹</string>
+    <string name="please_re_press_fingerprint_again">请重新按压指纹</string>
+    <string name="please_return_key_after_locking">请上锁员完成上锁后,归还钥匙</string>
+    <string name="please_return_key_after_unlocking">请上锁员完成解锁后,归还钥匙</string>
+    <string name="please_scan_face">请刷脸</string>
+    <string name="please_scan_fingerprint">请刷指纹</string>
+    <string name="please_select_area">请选择区域</string>
+    <string name="please_select_backup_file">请先选择备份文件</string>
+    <string name="please_select_backup_frequency">请选择备份频率</string>
+    <string name="please_select_card">请选择卡片</string>
+    <string name="please_select_card_username">请选择用户名称</string>
+    <string name="please_select_colocker">请选择共锁人</string>
+    <string name="please_select_data_you_want_to_export">请选择你需要导出的数据表。</string>
+    <string name="please_select_exception_description">请选择异常描述</string>
+    <string name="please_select_exception_source">请选择异常源</string>
+    <string name="please_select_exception_type">请选择异常类型</string>
+    <string name="please_select_flow_mode">请选择流程模式</string>
+    <string name="please_select_group">请选择分组</string>
+    <string name="please_select_handle_time">请选择处理时间</string>
+    <string name="please_select_job">请选择作业</string>
+    <string name="please_select_job_workstation">请选择作业区域</string>
+    <string name="please_select_key">请选择钥匙</string>
+    <string name="please_select_lock">请选择挂锁</string>
+    <string name="please_select_locker">请选择上锁人</string>
+    <string name="please_select_member">您可以选择添加人员</string>
+    <string name="please_select_point">请选择隔离点</string>
+    <string name="please_select_power_type">请选择能量源</string>
+    <string name="please_select_process_application">请选择处理申请</string>
+    <string name="please_select_rfid_token">请选择RFID标签</string>
+    <string name="please_select_role">请选择角色</string>
+    <string name="please_select_sop">请选择SOP</string>
+    <string name="please_select_sop_workstation">请选择SOP区域</string>
+    <string name="please_select_start_time">请先选择开始时间</string>
+    <string name="please_select_status">请选择状态</string>
+    <string name="please_select_step_confirm_member">请选择执行确认人员</string>
+    <string name="please_select_step_confirm_role">请选择执行确认角色</string>
+    <string name="please_select_step_confirm_type">请选择执行确认方式</string>
+    <string name="please_select_time">请选择时间</string>
+    <string name="please_select_user">请选择用户</string>
+    <string name="please_select_workflow_mode">请选择流程模式</string>
+    <string name="please_select_workstation">请选择区域</string>
+    <string name="please_set_point_coordinate_first">请先设置点位坐标。</string>
+    <string name="please_swipe_card">请刷卡</string>
+    <string name="please_take_out_ready_device_first">请先取出已开卡扣的设备</string>
+    <string name="please_wait_ticket_name_lock_complete">请等待[{0}]上锁完成</string>
+    <string name="point">点位</string>
+    <string name="point_detail">点位明细</string>
+    <string name="point_in_use">点位正在使用无法修改</string>
+    <string name="point_info_title">点位信息</string>
+    <string name="point_list_title">点位清单</string>
+    <string name="point_manage">点位管理</string>
+    <string name="point_manage_add_title">添加点位</string>
+    <string name="point_manage_delete_failed">无法删除隔离点</string>
+    <string name="point_manage_delete_succeed">隔离点删除成功</string>
+    <string name="point_manage_point_function">隔离点作用</string>
+    <string name="point_manage_point_group">分组名称</string>
+    <string name="point_manage_point_name">隔离点名称</string>
+    <string name="point_manage_point_power_type">能量源</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_rfid_tag">RFID 标签</string>
+    <string name="point_manage_switch_icon">开关图标</string>
+    <string name="point_manage_title">点位管理</string>
+    <string name="point_manage_update_title">修改点位</string>
+    <string name="point_manage_workstation">区域</string>
+    <string name="point_name_tv">隔离点</string>
+    <string name="position">定位</string>
+    <string name="potential_energy">势能</string>
+    <string name="power_isolation_way">确认隔离方式</string>
+    <string name="preset_workflow_can_not_delete">预设流程模式无法删除</string>
+    <string name="previous">上一步</string>
+    <string name="process_application_tv">处理申请</string>
+    <string name="processed">已处理</string>
+    <string name="progressing">进行中</string>
+    <string name="quick_entrance_most_set_tip">快捷入口最多设置8个</string>
+    <string name="quick_entrance_title">快捷入口配置</string>
+    <string name="re_recognize">重新识别</string>
+    <string name="real_person_verification_required">请保持真人操作</string>
+    <string name="recapture">重拍</string>
+    <string name="recognize_work_content">识别工作内容</string>
+    <string name="recognized_card_rfid">已识别的卡片RFID</string>
+    <string name="recognized_point_rfid">已识别的点位RFID</string>
+    <string name="reduce_colocker">减少共锁人({0})</string>
+    <string name="register_failed">注册失败</string>
+    <string name="register_success">注册成功</string>
+    <string name="release_colock">解除共锁</string>
+    <string name="release_colocker">解除共锁</string>
+    <string name="remark">备注</string>
+    <string name="remove">移除</string>
+    <string name="repeat_new_password">重复新密码(数字、字母、特殊符号、6-20位)</string>
+    <string name="repeat_password">重复密码:(数字、字母、特殊符号、6-20位)</string>
+    <string name="reset">重置</string>
+    <string name="reset_data_tv">点击重设</string>
+    <string name="reset_password">重置密码</string>
+    <string name="reset_password_title">重置密码</string>
+    <string name="reset_user_password_failed">用户密码重置失败</string>
+    <string name="reset_user_password_succeed">用户密码重置成功</string>
+    <string name="restart_app_after_set">App将在设置完成后重启</string>
+    <string name="restore">还原</string>
+    <string name="restore_backup_confirm">还原备份将清除备份日期到当前时间的所有数据,是否确认还原备份?</string>
+    <string name="restore_backup_success">备份还原成功</string>
+    <string name="rfid">RFID 标签</string>
+    <string name="rfid_already_bind">该Rfid标签已被绑定</string>
+    <string name="rfid_already_registration">RFID标签已录入</string>
+    <string name="rfid_code">RFID 编号</string>
+    <string name="rfid_in_use">RFID标签使用中,无法修改</string>
+    <string name="rfid_manage">RFID管理</string>
+    <string name="rfid_name">RFID编号</string>
+    <string name="rfid_token_manage_delete_failed">RFID标签删除失败</string>
+    <string name="rfid_token_manage_delete_succeed">RFID标签删除成功</string>
+    <string name="rfid_token_manage_new_rfid_token_title">新增 RFID 标签</string>
+    <string name="rfid_token_manage_rfid_token_detail_title">RFID标签详情</string>
+    <string name="rfid_token_manage_title">RFID管理</string>
+    <string name="role">角色</string>
+    <string name="role_confirm">角色确认</string>
+    <string name="role_in_preset_tip">预设角色不允许删除</string>
+    <string name="role_in_use">角色已有作业在使用</string>
+    <string name="role_key_already_exists">该角色权限字符已存在</string>
+    <string name="role_manage">角色管理</string>
+    <string name="role_manage_add_title">添加角色</string>
+    <string name="role_manage_delete_failed">无法删除角色</string>
+    <string name="role_manage_delete_succeed">角色已删除</string>
+    <string name="role_manage_permission_string">权限字符</string>
+    <string name="role_manage_role_name">角色名称</string>
+    <string name="role_manage_role_num">角色编号</string>
+    <string name="role_manage_title">角色管理</string>
+    <string name="role_manage_update_title">修改角色</string>
+    <string name="save">保存</string>
+    <string name="save_and_execute">保存并执行</string>
+    <string name="save_sop_check">生成SOP</string>
+    <string name="save_success">保存成功!</string>
+    <string name="scan_complete_app_restarting">扫描完成,APP将自动重启</string>
+    <string name="sec">秒</string>
+    <string name="select">选择</string>
+    <string name="select_colocker_tip">请在以下人员中选择共锁人</string>
+    <string name="select_coloker">请选择共锁人</string>
+    <string name="select_group_tip">点击分组空白区域进行选中</string>
+    <string name="select_locker">选择上锁人</string>
+    <string name="select_locker_tip">请在以下人员中选择[{0}]上锁人</string>
+    <string name="select_member">选择人员</string>
+    <string name="select_member_title">选择人员</string>
+    <string name="select_point_title">选择点位</string>
+    <string name="selected_point_already_in_use">存在使用中的点位</string>
+    <string name="selected_point_info_title">默认分组</string>
+    <string name="selected_quick_entrance">已配置的快捷入口(最多添加8个快捷入口,可拖拽排序)</string>
+    <string name="selected_rfid_in_use">存在正在使用的RFID标签</string>
+    <string name="send_ticket_fail">作业票下发失败</string>
+    <string name="sending_ticket">工作票下发中······</string>
+    <string name="server_address">服务地址</string>
+    <string name="server_address_error">服务器地址错误</string>
+    <string name="set_colocker">设置共锁人</string>
+    <string name="set_data_tv">点击设置</string>
+    <string name="set_default">设为默认</string>
+    <string name="set_face_title">设置人脸</string>
+    <string name="set_fingerprint_title">设置指纹</string>
+    <string name="set_job_card_title">设置工卡</string>
+    <string name="set_locker">设置上锁人</string>
+    <string name="set_password">设置密码:(数字、字母、特殊符号、6-20位)</string>
+    <string name="settings">设置</string>
+    <string name="show_in_map">在地图中显示:</string>
+    <string name="show_member_when_selected_sop">选择SOP后,将自动展示SOP的人员信息。</string>
+    <string name="show_points_when_selected_sop">选择SOP后,将自动展示SOP的点位信息。</string>
+    <string name="shutdown">操作停机</string>
+    <string name="ski_step">跳过该步骤</string>
+    <string name="skip_and_complete">跳过并完成</string>
+    <string name="slot">仓位</string>
+    <string name="slot_damage">仓位损坏</string>
+    <string name="slot_exception_tag">该锁仓已被标记异常</string>
+    <string name="slot_manage">仓位管理</string>
+    <string name="slots_exception_report">仓位异常上报</string>
+    <string name="slots_manage_title">仓位管理</string>
+    <string name="sop">SOP</string>
+    <string name="sop_create_failed">SOP创建失败</string>
+    <string name="sop_create_succeed">SOP创建成功</string>
+    <string name="sop_job_save_and_execute_failed">SOP作业执行失败</string>
+    <string name="sop_job_save_and_execute_succeed">SOP作业开始执行</string>
+    <string name="sop_job_save_failed">SOP作业保存失败</string>
+    <string name="sop_job_save_succeed">SOP作业保存成功</string>
+    <string name="sop_manage">SOP管理</string>
+    <string name="sop_manage_delete_failed">无法删除选中的SOP</string>
+    <string name="sop_manage_delete_succeed">删除选中的SOP成功</string>
+    <string name="sop_manage_sop_name">SOP名称</string>
+    <string name="sop_manage_title">SOP管理</string>
+    <string name="sop_manage_workstation">所属岗位</string>
+    <string name="sop_save_failed">SOP保存失败</string>
+    <string name="sop_save_succeed">SOP保存成功</string>
+    <string name="sop_save_tip">确定要保存{0}吗?</string>
+    <string name="sop_workstation">SOP区域</string>
+    <string name="start">开始</string>
+    <string name="start_detect_key_slot">开始检测钥匙仓位</string>
+    <string name="start_detect_lock_slot">开始检测挂锁仓位</string>
+    <string name="start_scan_key_mac">开始扫描钥匙信息</string>
+    <string name="start_time">开始时间</string>
+    <string name="start_tip">根据提示对系统进行初始化</string>
+    <string name="start_to_send_ticket">开始下发工作票······</string>
+    <string name="status">状态</string>
+    <string name="step_confirm_failed">步骤确认失败</string>
+    <string name="switch">切换</string>
+    <string name="switch_alarm">警告</string>
+    <string name="switch_close">关闭</string>
+    <string name="switch_id">编号:{0}</string>
+    <string name="switch_information">开关信息</string>
+    <string name="switch_layout">开关布局图</string>
+    <string name="switch_open">开启</string>
+    <string name="switch_status">开关状态:</string>
+    <string name="sysconfig">系统配置员</string>
+    <string name="take_out_key">请取出钥匙</string>
+    <string name="take_out_key_tip">请从打开的钥匙仓取出钥匙</string>
+    <string name="take_out_lock_tip">请从打开的锁仓取出锁,还有{0}把待取出</string>
+    <string name="take_out_rest_locks">请取出剩余开启卡扣的挂锁</string>
+    <string name="tec_support">温州博士安全用品有限公司</string>
+    <string name="the_verification_file_not_exists">校验文件不存在</string>
+    <string name="ticket_data_error">工作票数据损坏</string>
+    <string name="ticket_get_failed">作业票获取失败,请关闭钥匙电源并重新拿取并归还钥匙</string>
+    <string name="ticket_lost">作业票不存在</string>
+    <string name="ticket_name">作业名称</string>
+    <string name="time_frame_tv">时间范围</string>
+    <string name="todo_header">处理中</string>
+    <string name="todo_list">我的待办</string>
+    <string name="todo_wait">等待:</string>
+    <string name="turn_off">关</string>
+    <string name="turn_on">开</string>
+    <string name="turn_read">读</string>
+    <string name="uncolock_complete">解除共锁成功</string>
+    <string name="uncolock_failed">解除共锁失败</string>
+    <string name="unknown">未知待办</string>
+    <string name="unlock">解锁</string>
+    <string name="unlock_and_restore_switch">拆锁恢复开关</string>
+    <string name="unlock_return_key">完成解锁</string>
+    <string name="unlock_take_key">启动解锁</string>
+    <string name="unlocking">解锁中</string>
+    <string name="unzip">解压中……{0}</string>
+    <string name="update_card_failed">更新卡片失败</string>
+    <string name="update_card_succeed">更新卡片成功</string>
+    <string name="update_info">修改信息</string>
+    <string name="update_key_failed">更新钥匙失败</string>
+    <string name="update_key_succeed">更新钥匙成功</string>
+    <string name="update_lock_failed">更新挂锁失败</string>
+    <string name="update_lock_succeed">更新挂锁成功</string>
+    <string name="update_point_failed">保存点位失败</string>
+    <string name="update_point_succeed">保存点位成功</string>
+    <string name="update_rfid_token_failed">更新RFID标签失败</string>
+    <string name="update_rfid_token_succeed">更新RFID标签成功</string>
+    <string name="update_role_failed">角色更新失败</string>
+    <string name="update_role_succeed">角色更新成功</string>
+    <string name="update_user_failed">用户更新失败</string>
+    <string name="update_user_succeed">用户更新成功</string>
+    <string name="update_workstation_failed">更新区域失败</string>
+    <string name="update_workstation_succeed">更新区域成功</string>
+    <string name="user">用户</string>
+    <string name="user_already_exists">用户已存在</string>
+    <string name="user_info">个人信息</string>
+    <string name="user_info_title">个人信息</string>
+    <string name="user_manage">用户管理</string>
+    <string name="user_manage_area">区域</string>
+    <string name="user_manage_card_code">工卡</string>
+    <string name="user_manage_delete_failed">无法删除用户</string>
+    <string name="user_manage_delete_succeed">用户已删除</string>
+    <string name="user_manage_filter_activate">正常</string>
+    <string name="user_manage_filter_deactivate">停用</string>
+    <string name="user_manage_filter_title">筛选条件</string>
+    <string name="user_manage_new_user_title">新增用户</string>
+    <string name="user_manage_role">角色</string>
+    <string name="user_manage_title">用户管理</string>
+    <string name="user_manage_user_detail_title">用户详情</string>
+    <string name="user_manage_view">查看</string>
+    <string name="user_name">登录名</string>
+    <string name="username">用户名称</string>
+    <string name="username_min_size">最小用户名长度(1-6)</string>
+    <string name="username_or_password_error">账号或密码错误</string>
+    <string name="username_passowrd_login_success">账号密码验证通过</string>
+    <string name="username_password_not_exists">账号密码不存在</string>
+    <string name="username_regex_tip">账号不符合要求</string>
+    <string name="verify_failed">验证失败</string>
+    <string name="view">查看</string>
+    <string name="wait_header">等待中</string>
+    <string name="wait_to_colock">待共锁({0})</string>
+    <string name="warn">警告</string>
+    <string name="welcome_tip">您好,欢迎您使用</string>
+    <string name="workflow_already_exists">流程模式已存在</string>
+    <string name="workflow_manage">流程模式</string>
+    <string name="workflow_manage_title">流程模式</string>
+    <string name="workflow_mode">流程模式</string>
+    <string name="workflow_mode_manage_delete_succeed">删除流程模式成功</string>
+    <string name="workflow_mode_status_update_failed">状态修改失败</string>
+    <string name="workflow_mode_status_update_succeed">状态修改成功</string>
+    <string name="workflow_name">流程模式名称</string>
+    <string name="workflow_setting">流程设置</string>
+    <string name="workflow_step_confirm_member">执行确认人员</string>
+    <string name="workflow_step_confirm_role">执行确认角色</string>
+    <string name="workflow_step_confirm_type">执行确认方式</string>
+    <string name="workflow_step_description">步骤操作说明</string>
+    <string name="workflow_step_function">步骤功能</string>
+    <string name="workflow_step_title">步骤标题</string>
+    <string name="workflow_step_title_short">步骤标题缩写</string>
+    <string name="workstation">区域</string>
+    <string name="workstation_already_exists">区域已存在</string>
+    <string name="workstation_info">区域信息</string>
+    <string name="workstation_is_in_bottom">区域已经在底部</string>
+    <string name="workstation_is_in_top">区域已经在顶部</string>
+    <string name="workstation_manage">区域管理</string>
+    <string name="workstation_manage_delete_failed">无法删除区域{0}</string>
+    <string name="workstation_manage_delete_succeed">删除区域{0}成功</string>
+    <string name="workstation_manage_new_workstation">新增区域</string>
+    <string name="workstation_manage_parent_workstation_name">上级区域名称</string>
+    <string name="workstation_manage_title">区域管理</string>
+    <string name="workstation_manage_update_workstation">编辑区域</string>
+    <string name="workstation_manage_workstation_name">区域名称</string>
+    <string name="year">年</string>
+    <string name="you_are_not_locker_tip">您不是上锁人,无法执行此操作</string>
+    <string name="zone">区域范围</string>
+</resources>

+ 839 - 0
ui-base/src/main/res/values/strings.xml

@@ -0,0 +1,839 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <string name="FRI">星期五</string>
+    <string name="MON">星期一</string>
+    <string name="SAT">星期六</string>
+    <string name="SUN">星期日</string>
+    <string name="THU">星期四</string>
+    <string name="TUE">星期二</string>
+    <string name="WED">星期三</string>
+    <string name="abnormal">异常</string>
+    <string name="action_confirm">操作确认</string>
+    <string name="action_confirm_content">确定要执行{0}吗?</string>
+    <string name="action_failed">操作失败</string>
+    <string name="action_hint">操作提醒</string>
+    <string name="action_succeed">操作成功</string>
+    <string name="add_card_failed">添加卡片失败</string>
+    <string name="add_card_succeed">添加卡片成功</string>
+    <string name="add_colocker">添加共锁人({0})</string>
+    <string name="add_group">添加分组</string>
+    <string name="add_key_failed">新增钥匙失败</string>
+    <string name="add_key_succeed">新增钥匙成功</string>
+    <string name="add_lock_failed">添加挂锁失败</string>
+    <string name="add_lock_succeed">添加挂锁成功</string>
+    <string name="add_point_failed">新增隔离点失败</string>
+    <string name="add_point_succeed">新增隔离点成功</string>
+    <string name="add_rfid_token_failed">添加RFID标签失败</string>
+    <string name="add_rfid_token_succeed">添加RFID标签成功</string>
+    <string name="add_role_failed">新增角色失败</string>
+    <string name="add_role_succeed">新增角色成功</string>
+    <string name="add_to_map_point_name">点位名称:</string>
+    <string name="add_to_map_point_serial_number">开关序号:</string>
+    <string name="add_to_map_x">坐标X:</string>
+    <string name="add_to_map_y">坐标Y:</string>
+    <string name="add_user_succeed">新增用户成功</string>
+    <string name="add_workstation_failed">新增区域失败</string>
+    <string name="add_workstation_succeed">新增区域成功</string>
+    <string name="admin">超级管理员</string>
+    <string name="admin_role_can_not_edit">管理员角色无法编辑</string>
+    <string name="admin_username">管理员账号:(数字、字母)</string>
+    <string name="administrator">管理员</string>
+    <string name="air_energy">空气能</string>
+    <string name="all">全部</string>
+    <string name="all_hardware_tv">全部硬件</string>
+    <string name="all_job_tv">全部作业</string>
+    <string name="all_new_lock_registration">录入所有新挂锁</string>
+    <string name="all_points_tv">全部点位</string>
+    <string name="all_quick_entrance">所有快捷入口</string>
+    <string name="all_select_not_all_select">全选/全不选</string>
+    <string name="all_slot_turn_off">全仓位关</string>
+    <string name="all_slot_turn_on">全仓位开</string>
+    <string name="allow_colocker_login_to_colock">允许共锁人登录共锁</string>
+    <string name="already_colock">已共锁({0})</string>
+    <string name="already_uncolock">已解除共锁({0})</string>
+    <string name="apply_finish_job">申请结束作业</string>
+    <string name="apply_master_key">申请万能钥匙</string>
+    <string name="apply_scrap_key">申请报废钥匙</string>
+    <string name="apply_scrap_lock">申请报废挂锁</string>
+    <string name="apply_scrap_slot">申请报废仓位</string>
+    <string name="auto_backup">自动备份</string>
+    <string name="auto_confirm">自动确认</string>
+    <string name="auto_logout_time">自动登出时间(最低1,最高10,单位:分钟):</string>
+    <string name="back">返回</string>
+    <string name="backup">备份</string>
+    <string name="backup_and_restore">备份/还原</string>
+    <string name="backup_failed">备份失败</string>
+    <string name="backup_frequency">备份频率</string>
+    <string name="backup_frequency_every_day">每天</string>
+    <string name="backup_now">立即备份</string>
+    <string name="backup_now_please_wait">正在备份中,请稍等……</string>
+    <string name="backup_path">备份路径</string>
+    <string name="backup_range">范围:{0}</string>
+    <string name="backup_restoring">备份还原中……</string>
+    <string name="backup_success">备份成功</string>
+    <string name="backup_time">备份时间</string>
+    <string name="backup_tip">注意:自动备份时必须保证应用处于启动状态。</string>
+    <string name="backup_title">备份/还原</string>
+    <string name="base_info_title">基本信息</string>
+    <string name="ble_connect_fail">连接失败,请重试!</string>
+    <string name="ble_connecting">连接中,请稍后...</string>
+    <string name="can_not_remove_current_colocker">无法移除当前共锁人</string>
+    <string name="can_not_remove_current_locker">无法移除当前上锁人</string>
+    <string name="cancel">取消</string>
+    <string name="cancel_countdown">取消({0}秒)</string>
+    <string name="cancel_exception">取消异常</string>
+    <string name="cancel_exception_failed">取消异常失败</string>
+    <string name="cancel_exception_success">异常取消成功</string>
+    <string name="cancel_job">取消作业</string>
+    <string name="cancel_job_tip">是否确认取消当前作业</string>
+    <string name="canceld">已取消</string>
+    <string name="canceled">已取消</string>
+    <string name="capture_tip_content">1. 系统将自动拍摄照片,在拍摄过程中请确保:\n      · 脸部正对摄像头\n      · 保持适当距离,让整个脸部出现在左侧框中\n      · 光线充足\n      · 表情自然\n2. 拍摄完成后,您可以点击确认按钮进行提交,也可以点击重拍按钮重新进行拍摄。\n3. 取消录入,请点击取消按钮</string>
+    <string name="capture_tip_title">录入提示</string>
+    <string name="card_already_registration">卡片已录入</string>
+    <string name="card_code">卡片名称</string>
+    <string name="card_login">刷卡登录</string>
+    <string name="card_manage">卡片管理</string>
+    <string name="card_manage_card_detail_title">卡片详情</string>
+    <string name="card_manage_delete_failed">卡片删除失败</string>
+    <string name="card_manage_delete_succeed">卡片删除成功</string>
+    <string name="card_manage_new_card_title">新增卡片</string>
+    <string name="card_manage_title">卡片管理</string>
+    <string name="card_nfc">卡片 NFC</string>
+    <string name="card_setting">设置工卡</string>
+    <string name="change_to_standard">切换标准版</string>
+    <string name="check_before_unlocking">取锁前检查</string>
+    <string name="check_delete_card">确定要删除选中的卡片吗?</string>
+    <string name="check_delete_job">您确认要删除作业吗</string>
+    <string name="check_delete_key">您确定要删除选中的钥匙吗</string>
+    <string name="check_delete_lock">确定要删除选中的挂锁吗?</string>
+    <string name="check_delete_point">您确定要删除隔离点吗</string>
+    <string name="check_delete_rfid_token">确定要删除选中的RFID标签吗?</string>
+    <string name="check_delete_role">您确认要删除角色吗</string>
+    <string name="check_delete_sop">您确定要删除选中的SOP吗</string>
+    <string name="check_delete_user">您确认要删除用户吗?</string>
+    <string name="check_delete_workflow_mode">确定要删除选中的流程模式吗</string>
+    <string name="check_delete_workstation">您确定要删除区域{0}吗</string>
+    <string name="check_device_info">检测到未注册钥匙{0}把</string>
+    <string name="check_key_and_lock">正在检查钥匙和挂锁</string>
+    <string name="check_lock_is_new_device">检查挂锁是否为新硬件</string>
+    <string name="check_new_key_need_register">检测到新钥匙,是否注册</string>
+    <string name="check_new_lock_need_register">检测到新挂锁,是否注册</string>
+    <string name="click_confirm">点击确认</string>
+    <string name="close">关闭</string>
+    <string name="colock">添加共锁</string>
+    <string name="colock_complete">添加共锁完成</string>
+    <string name="colock_failed">添加共锁失败</string>
+    <string name="colocker">共锁人</string>
+    <string name="colocking">共锁中</string>
+    <string name="common_batch_delete">批量删除</string>
+    <string name="common_batch_export">批量导出</string>
+    <string name="common_disable">停用</string>
+    <string name="common_enable">启用</string>
+    <string name="common_export">导出</string>
+    <string name="confirm">确认</string>
+    <string name="confirm_cancel_exception">是否确认取消异常</string>
+    <string name="confirm_create_lock_job">确认是否创建上锁作业</string>
+    <string name="confirm_create_unlock_job">是否创建解锁作业</string>
+    <string name="confirm_exec">执行确认</string>
+    <string name="confirm_handle_exception">是否确认处理异常</string>
+    <string name="confirm_to_colock">{0}是否确认共锁?</string>
+    <string name="confirm_to_uncolock">{0}是否确认解除共锁?</string>
+    <string name="continue_the_ticket">请继续完成作业票</string>
+    <string name="create_job">新建作业</string>
+    <string name="create_job_failed">创建作业失败</string>
+    <string name="create_job_name">作业名称</string>
+    <string name="create_job_title">新建作业</string>
+    <string name="create_sop">新建SOP</string>
+    <string name="create_sop_job">新建SOP作业</string>
+    <string name="create_sop_job_sop">SOP</string>
+    <string name="create_sop_job_tip">确定要执行作业{0}吗?</string>
+    <string name="create_sop_job_title">新建SOP作业</string>
+    <string name="create_sop_name">SOP名称</string>
+    <string name="create_sop_title">新建SOP</string>
+    <string name="current_job_has_cross_job">警告!当前作业存在交叉作业,是否继续处理异常</string>
+    <string name="current_role_no_user">当前角色暂无用户</string>
+    <string name="current_slot_has_no_key">当前仓位不存在钥匙</string>
+    <string name="current_slot_has_no_lock">当前仓位不存在挂锁</string>
+    <string name="current_sop_has_job_in_progress">当前SOP存在进行中的作业</string>
+    <string name="current_ticket_report_lock_take_exception_tip">当前作业挂锁上报异常,请归还挂锁</string>
+    <string name="current_user_has_not_face_data">当前用户不存在人脸数据</string>
+    <string name="current_workflow_mode_error">当前流程模式错误</string>
+    <string name="currently_no_hardware_can_be_report">当前没有硬件可以上报</string>
+    <string name="currently_no_job_can_be_report">当前没有作业可以上报</string>
+    <string name="currently_unable_to_lock_together">当前阶段无法共锁</string>
+    <string name="data_content_error">数据内容错误</string>
+    <string name="data_decrypt_failed">数据解密失败</string>
+    <string name="data_exception">数据异常</string>
+    <string name="data_export">数据导出</string>
+    <string name="data_export">请选择您要导出的表,然后点击导出。</string>
+    <string name="data_export_error">数据导出失败。</string>
+    <string name="data_export_success_tip">数据导出完成,请选择文件夹并点击右下角按钮进行保存。</string>
+    <string name="data_file_is_corrupted">数据文件已损坏</string>
+    <string name="data_file_not_exists">数据文件不存在</string>
+    <string name="data_in_backup">数据备份中……</string>
+    <string name="data_manage">数据管理</string>
+    <string name="data_table">数据表</string>
+    <string name="date">{0}年{1}月{2}日</string>
+    <string name="day">日</string>
+    <string name="default_map">默认地图</string>
+    <string name="delete">删除</string>
+    <string name="delete_backup_file_confirm">是否确认删除该备份,删除后备份无法恢复。</string>
+    <string name="delete_group">删除分组</string>
+    <string name="delete_selected_backup_file_confirm">是否确认删除选中备份,删除后备份无法恢复。</string>
+    <string name="delete_success">删除成功</string>
+    <string name="detail">详情</string>
+    <string name="detect_face_tip">检测到人脸,即将拍摄</string>
+    <string name="detect_port">正在扫描设备......</string>
+    <string name="detect_slot">检测仓位</string>
+    <string name="device_in_detect">设备识别中</string>
+    <string name="do_you_want_to_remove_exception">是否确认移除该异常</string>
+    <string name="doing_checking">正在验证......</string>
+    <string name="doing_login">正在登录······</string>
+    <string name="done_header">已处理</string>
+    <string name="edit">编辑</string>
+    <string name="edit_job_title">作业详情</string>
+    <string name="edit_sop_job_title">SOP作业详情</string>
+    <string name="edit_sop_title">SOP详情</string>
+    <string name="electric_energy">电能</string>
+    <string name="end">结束作业</string>
+    <string name="end_job">结束作业</string>
+    <string name="end_time">结束时间</string>
+    <string name="end_time_must_large_then_start_time">结束时间必须大于开始时间</string>
+    <string name="ensure_power_isolation">能量隔离证实</string>
+    <string name="error_date_range_invalid">开始时间不能晚于结束时间</string>
+    <string name="exception_data_not_exists">异常数据不存在</string>
+    <string name="exception_description">异常描述:</string>
+    <string name="exception_description_tv">异常描述</string>
+    <string name="exception_detail_title">异常详情</string>
+    <string name="exception_info">异常信息</string>
+    <string name="exception_job">异常作业</string>
+    <string name="exception_job_title">异常作业</string>
+    <string name="exception_lost">异常丢失</string>
+    <string name="exception_manage">异常管理</string>
+    <string name="exception_manage_title">异常管理</string>
+    <string name="exception_occurrence_time">异常发生时间:</string>
+    <string name="exception_occurrence_time_header">发生时间</string>
+    <string name="exception_reason">异常信息</string>
+    <string name="exception_release_time">异常解除时间:</string>
+    <string name="exception_report">异常上报</string>
+    <string name="exception_report_success">异常上报成功</string>
+    <string name="exception_reporter">上报人:</string>
+    <string name="exception_source">异常源:</string>
+    <string name="exception_source_tv">异常源</string>
+    <string name="exception_status">状态:</string>
+    <string name="exception_status_header">异常状态</string>
+    <string name="exception_type">异常类型:</string>
+    <string name="exception_type_header">异常类型</string>
+    <string name="exception_type_tv">异常类型</string>
+    <string name="excp_job_name_title">异常作业名称</string>
+    <string name="expand_collapse">展开/折叠</string>
+    <string name="export_selected_backup_file_confirm">将启动路径选择器,选择之后点击右下角选择进行导出</string>
+    <string name="export_success">导出成功</string>
+    <string name="exporting">导出中……</string>
+    <string name="face_can_not_process">人脸引擎激活失败,识别暂不可用</string>
+    <string name="face_detected_do_login">检测到人脸,正在登录······</string>
+    <string name="face_login">人脸登录</string>
+    <string name="face_login_failed">人脸匹配失败,请重试</string>
+    <string name="face_login_success">人脸验证通过</string>
+    <string name="face_not_set_tip">您尚未设置人脸数据</string>
+    <string name="face_set_tip">您已设置了人脸数据</string>
+    <string name="face_setting">设置人脸</string>
+    <string name="file_not_exists">文件不存在</string>
+    <string name="filter">筛选</string>
+    <string name="fingerprint_add_success_tip">已成功添加指纹数据</string>
+    <string name="fingerprint_code">指纹编号</string>
+    <string name="fingerprint_code_str">指纹_{0}</string>
+    <string name="fingerprint_delete_confirm_tip">确定要删除{0}吗?</string>
+    <string name="fingerprint_delete_selected_confirm_tip">确定要删除选中的指纹吗?</string>
+    <string name="fingerprint_limit_tip">指纹数量已达到上限</string>
+    <string name="fingerprint_login">指纹登录</string>
+    <string name="fingerprint_login_failed">指纹识别失败,请重试</string>
+    <string name="fingerprint_login_success">指纹验证通过</string>
+    <string name="fingerprint_scan_tip">请连续按压{0}次指纹识别区</string>
+    <string name="fingerprint_setting">设置指纹</string>
+    <string name="finish_job_tip">是否确认结束当前作业</string>
+    <string name="finish_the_job">结束作业</string>
+    <string name="finished">已结束</string>
+    <string name="footer_failed">加载失败</string>
+    <string name="footer_finish">加载完成</string>
+    <string name="footer_loading">正在刷新...</string>
+    <string name="footer_nothing">全部加载完成</string>
+    <string name="footer_pulling">上拉加载更多</string>
+    <string name="footer_refreshing">正在加载...</string>
+    <string name="footer_release">释放立即加载</string>
+    <string name="force_multi_lock">强制多锁模式</string>
+    <string name="force_shared_lock">强制共享锁模式</string>
+    <string name="gas">燃气</string>
+    <string name="get_key_info_fail">获取钥匙信息失败</string>
+    <string name="go_locking">去上锁</string>
+    <string name="go_unlocking">去解锁</string>
+    <string name="group_at_least_has_one_point">每个分组至少需要存在一个点位</string>
+    <string name="group_job_in_progress">分组作业进行中</string>
+    <string name="group_name_must_not_empty">分组名称不能为空</string>
+    <string name="handle">处理</string>
+    <string name="handle_colock">请确认是否要进行添加共锁</string>
+    <string name="handle_exception">处理异常</string>
+    <string name="handle_exception_success">异常处理成功</string>
+    <string name="handle_exception_will_release_all_colock">警告!处理异常将移除所有共锁,请确认是否继续</string>
+    <string name="handle_failed">处理失败</string>
+    <string name="handle_lock_take_key">确认获取钥匙进行上锁吗?</string>
+    <string name="handle_release_colock">请确认是否要进行解除共锁</string>
+    <string name="handle_step_confirm">请确认是否完成[{0}]</string>
+    <string name="handle_time">处理时间:</string>
+    <string name="handle_time_custom_time_range">自定义区间</string>
+    <string name="handle_time_last_30_days">近30天</string>
+    <string name="handle_time_last_7_days">近7天</string>
+    <string name="handle_unknown">当前处理类型未知,无法处理</string>
+    <string name="handle_unlock_take_key">确认获取钥匙进行解锁吗?</string>
+    <string name="hardware_exception">硬件异常</string>
+    <string name="hardware_in_use_tv">使用中的硬件</string>
+    <string name="hardware_info">硬件信息: {0}</string>
+    <string name="hardware_key">钥匙</string>
+    <string name="hardware_lock">挂锁</string>
+    <string name="hardware_manage">硬件管理</string>
+    <string name="hardware_mode">硬件模式(模式修改保存需要重启应用)</string>
+    <string name="hardware_mode">硬件模式</string>
+    <string name="hardware_unknown">未知</string>
+    <string name="has_job_in_progress">存在正在进行中的作业</string>
+    <string name="has_locked">已上锁</string>
+    <string name="has_user_in_progress_job">有用户在进行的作业中</string>
+    <string name="header_failed">刷新失败</string>
+    <string name="header_finish">刷新完成</string>
+    <string name="header_loading">正在加载...</string>
+    <string name="header_pulling">下拉可以刷新</string>
+    <string name="header_refreshing">正在刷新...</string>
+    <string name="header_release">释放立即刷新</string>
+    <string name="header_secondary">释放进入二楼</string>
+    <string name="header_update">上次更新 M-d HH:mm</string>
+    <string name="heat_energy">热能</string>
+    <string name="home">主页</string>
+    <string name="home_overview_data_title">总览数据</string>
+    <string name="home_realtime_data_title">实时数据</string>
+    <string name="hour">时</string>
+    <string name="hydraulic_pressure">液压</string>
+    <string name="i18n.language_name">中文</string>
+    <string name="import_str">导入</string>
+    <string name="import_success">导入成功</string>
+    <string name="in_progress_job">进行中的作业</string>
+    <string name="in_progress_job_manage_title">进行中的作业</string>
+    <string name="init_card_registration_step_hint">请在读卡器上刷卡</string>
+    <string name="init_card_registration_step_tip">识别并录入卡片</string>
+    <string name="init_device_registration_key_and_lock_complete_step_hint">扫描完成</string>
+    <string name="init_device_registration_key_and_lock_step_hint">请等待系统识别钥匙和挂锁</string>
+    <string name="init_device_registration_key_and_lock_step_tip">识别钥匙和挂锁</string>
+    <string name="init_point_rfid_registration_step_hint">请在读卡器上刷点位RFID标签</string>
+    <string name="init_point_rfid_registration_step_tip">识别并录入点位RFID标签</string>
+    <string name="init_set_admin_account_step">1</string>
+    <string name="init_set_admin_account_step_hint">请设置管理员账号密码</string>
+    <string name="init_set_admin_account_step_tip">设置管理员账号</string>
+    <string name="init_set_remote_server_step_hint">请设置服务器的地址和端口</string>
+    <string name="init_set_remote_server_step_tip">配置服务器</string>
+    <string name="insert">新增</string>
+    <string name="invalid_card">卡片无效</string>
+    <string name="invalid_user">用户不存在</string>
+    <string name="item_my_todo_complete_time_title">完成时间:</string>
+    <string name="item_my_todo_current_operation_title">当前操作:</string>
+    <string name="item_my_todo_current_step_title">当前步骤:</string>
+    <string name="item_my_todo_job_name_title">相关作业:</string>
+    <string name="job">作业</string>
+    <string name="job_already_finished">该作业已被结束</string>
+    <string name="job_canceled">作业已取消</string>
+    <string name="job_card_login_failed">工卡无效</string>
+    <string name="job_card_login_success">工卡识别成功</string>
+    <string name="job_card_not_set_tip">您尚未设置工卡</string>
+    <string name="job_card_scan_tip">请在读卡器上读卡</string>
+    <string name="job_card_set_tip">您已设置了工卡数据</string>
+    <string name="job_cat_not_exec">作业票无法执行</string>
+    <string name="job_create_and_execute_failed">作业执行失败</string>
+    <string name="job_create_and_execute_succeed">作业开始执行</string>
+    <string name="job_create_failed">作业保存失败</string>
+    <string name="job_create_succeed">作业保存成功</string>
+    <string name="job_exception">作业异常</string>
+    <string name="job_execute_colocker_colock_status_title">共锁人员共锁状态</string>
+    <string name="job_execute_lock_status_title">隔离点锁定状态</string>
+    <string name="job_execute_step_description">操作说明({0})</string>
+    <string name="job_execute_tab_title_colock">共锁</string>
+    <string name="job_execute_tab_title_lock">锁定</string>
+    <string name="job_execute_title">作业执行</string>
+    <string name="job_finished">作业已结束</string>
+    <string name="job_lost">作业丢失</string>
+    <string name="job_manage">作业管理</string>
+    <string name="job_manage_delete_failed">无法删除选中的作业</string>
+    <string name="job_manage_delete_succeed">删除选中的作业成功</string>
+    <string name="job_manage_title">作业管理</string>
+    <string name="job_name">作业名称</string>
+    <string name="job_save_and_execute_tip">确定要执行作业{0}吗?</string>
+    <string name="job_save_tip">确定要保存作业{0}吗?</string>
+    <string name="job_status">作业状态</string>
+    <string name="job_ticket_manage">作业管理</string>
+    <string name="job_workstation">作业区域</string>
+    <string name="jtcolocker">共锁人</string>
+    <string name="jtdrawer">作业管理员</string>
+    <string name="jtguard">作业观察员</string>
+    <string name="jtlocker">上锁人</string>
+    <string name="key">钥匙</string>
+    <string name="key_damage">钥匙损坏</string>
+    <string name="key_exception_tag">该钥匙已被标记异常</string>
+    <string name="key_in_use">钥匙正在使用</string>
+    <string name="key_info_already_exists">钥匙信息已存在</string>
+    <string name="key_is_in_failure_mode">钥匙处于故障模式</string>
+    <string name="key_mac">钥匙MAC</string>
+    <string name="key_manage">钥匙管理</string>
+    <string name="key_manage_delete_failed">钥匙删除失败</string>
+    <string name="key_manage_delete_succeed">钥匙删除成功</string>
+    <string name="key_manage_key_detail_title">钥匙详情</string>
+    <string name="key_manage_new_key_title">新增钥匙</string>
+    <string name="key_manage_title">钥匙管理</string>
+    <string name="key_name">钥匙名称</string>
+    <string name="key_nfc">钥匙NFC</string>
+    <string name="key_not_exists">钥匙不存在</string>
+    <string name="key_return_success">钥匙归还成功</string>
+    <string name="key_return_tip">作业票尚未完成,禁止归还钥匙</string>
+    <string name="key_take_error_tip">钥匙分配失败,请检查硬件状态</string>
+    <string name="last_export_datetime">上次导出时间</string>
+    <string name="loading_backup">正在读取备份文件</string>
+    <string name="loading_data">数据加载中</string>
+    <string name="loading_device">正在加载硬件......</string>
+    <string name="loading_msg_get_ticket_status_start">正在读取钥匙作业票</string>
+    <string name="loading_msg_return_key_start">开始连接钥匙,请稍候······</string>
+    <string name="lock">挂锁</string>
+    <string name="lock_already_exists">挂锁信息已存在</string>
+    <string name="lock_code">挂锁编号</string>
+    <string name="lock_damage">挂锁损坏</string>
+    <string name="lock_exception_tag">该挂锁已被标记异常</string>
+    <string name="lock_in_use">挂锁正在使用中</string>
+    <string name="lock_is_not_enough">锁具数量不足</string>
+    <string name="lock_key_return_tip">作业票尚未完成,是否强制上传数据</string>
+    <string name="lock_manage">挂锁管理</string>
+    <string name="lock_manage_delete_failed">挂锁删除失败</string>
+    <string name="lock_manage_delete_succeed">挂锁删除成功</string>
+    <string name="lock_manage_lock_detail_title">挂锁详情</string>
+    <string name="lock_manage_new_lock_title">新增挂锁</string>
+    <string name="lock_manage_title">挂锁管理</string>
+    <string name="lock_name">挂锁名称</string>
+    <string name="lock_nfc">挂锁 NFC</string>
+    <string name="lock_return_key">完成上锁</string>
+    <string name="lock_status">上锁状态</string>
+    <string name="lock_take_key">启动上锁</string>
+    <string name="lock_take_report_fail">挂锁取出上报失败</string>
+    <string name="locked_point">锁定中的点位</string>
+    <string name="locked_points_title">锁定中的点位</string>
+    <string name="locked_points_tv">锁定中的点位</string>
+    <string name="locker">上锁人</string>
+    <string name="locking">上锁中</string>
+    <string name="login">登录</string>
+    <string name="login_tip">您可以通过指纹或刷卡直接进行登录</string>
+    <string name="logout">退出登录</string>
+    <string name="loto">智能锁控系统</string>
+    <string name="loto_en">Intelligent Lock Control System</string>
+    <string name="manage_filter_status">状态</string>
+    <string name="manage_role_function_permission">功能权限</string>
+    <string name="max_backup_tip">备份数量已经达到上限,继续备份将移除最老的数据。</string>
+    <string name="max_fingerprint_insert">最大指纹录入数量:</string>
+    <string name="max_fingerprint_insert_tip">(指纹最多可录入{0}个)</string>
+    <string name="maximumNumberOfBackupsNotCorrect">请填写正确的备份数量上限</string>
+    <string name="maximum_number_of_backups">备份数量上限</string>
+    <string name="mechanical_energy">机械能</string>
+    <string name="member_info_title">人员信息</string>
+    <string name="min">分</string>
+    <string name="mixed_mode">混合模式</string>
+    <string name="month">月</string>
+    <string name="move_down">下移</string>
+    <string name="move_up">上移</string>
+    <string name="my_todo_title">我的待办</string>
+    <string name="navigate_to_step">跳转到第{0}步</string>
+    <string name="new_device">New</string>
+    <string name="new_group">新分组{0}</string>
+    <string name="new_password">新密码(数字、字母、特殊符号、6-20位)</string>
+    <string name="new_password_and_repeat_new_password_not_same">新密码与重复新密码不一致</string>
+    <string name="new_password_cannot_be_the_same_as_the_old_password">新密码与旧密码不能相同</string>
+    <string name="next">下一步</string>
+    <string name="nickname">姓名</string>
+    <string name="no_available_key">暂无可用钥匙</string>
+    <string name="no_backup_data">暂无备份数据</string>
+    <string name="no_data">暂无数据</string>
+    <string name="no_goto_step">无跳转</string>
+    <string name="no_permission_to_handle">您暂无权限操作当前作业票</string>
+    <string name="no_response_board_exists">存在未响应的主板</string>
+    <string name="normal">正常</string>
+    <string name="not_group_can_lock">当前无分组可上锁</string>
+    <string name="not_group_can_unlock">当前无分组可解锁</string>
+    <string name="not_in_slot">未在仓位</string>
+    <string name="not_save_tip">数据还没有保存,您确定要放弃保存,离开当前页面吗?</string>
+    <string name="not_start">未开始</string>
+    <string name="number">编号:</string>
+    <string name="old_password">旧密码</string>
+    <string name="old_password_error">旧密码错误</string>
+    <string name="one_key_cancel">一键取消</string>
+    <string name="one_key_handle">一键处理</string>
+    <string name="ongoing_job_tv">进行中的作业</string>
+    <string name="only_one_person_allowed">请保持单人入镜</string>
+    <string name="operation">操作</string>
+    <string name="password">密码</string>
+    <string name="password_and_repeat_password_not_same">密码与重复密码不一致</string>
+    <string name="password_hint">6-20位:字母/数字/符号</string>
+    <string name="password_login">密码登录</string>
+    <string name="password_regex_tip">密码不符合要求</string>
+    <string name="pending">待处理</string>
+    <string name="phone">电话</string>
+    <string name="please_do_colock">请共锁人完成共锁</string>
+    <string name="please_do_uncolock">请共锁人解除共锁</string>
+    <string name="please_done_operation">请先完成{0}</string>
+    <string name="please_go_locking">请上锁员执行去上锁操作</string>
+    <string name="please_go_unlocking">请上锁员执行去解锁操作</string>
+    <string name="please_input_account">请输入用户名</string>
+    <string name="please_input_admin_username">请输入管理员账号</string>
+    <string name="please_input_area">请输入区域</string>
+    <string name="please_input_auto_logout_time">请输入自动登出时间</string>
+    <string name="please_input_auto_logout_time_correct">请设置正确的自动登出时间</string>
+    <string name="please_input_card_code">请输入工卡</string>
+    <string name="please_input_card_nfc">请输入卡片 NFC</string>
+    <string name="please_input_correct_phone">请输入正确的手机号</string>
+    <string name="please_input_exception_reason">请输入异常原因</string>
+    <string name="please_input_job_name">请输入作业名称</string>
+    <string name="please_input_key_mac">请输入钥匙MAC</string>
+    <string name="please_input_key_name">请输入钥匙名称</string>
+    <string name="please_input_key_nfc">请输入钥匙NFC</string>
+    <string name="please_input_key_word">请输入关键字</string>
+    <string name="please_input_lock_code">请输入挂锁编号</string>
+    <string name="please_input_lock_nfc">请输入挂锁 NFC</string>
+    <string name="please_input_max_fingerprint_entries_size">请输入最大指纹录入数量</string>
+    <string name="please_input_new_password">请输入新密码</string>
+    <string name="please_input_nickname">请输入姓名</string>
+    <string name="please_input_old_password">请输入旧密码</string>
+    <string name="please_input_password">请输入密码</string>
+    <string name="please_input_permission_characters">请输入权限字符</string>
+    <string name="please_input_phone">请输入电话</string>
+    <string name="please_input_point_function">请输入隔离点作用</string>
+    <string name="please_input_point_name">请输入隔离点名称</string>
+    <string name="please_input_point_serial_number">请输入开关序号(0-31)</string>
+    <string name="please_input_remark">请输入备注</string>
+    <string name="please_input_remote_server_address">请输入服务地址</string>
+    <string name="please_input_repeat_new_password">请重复新密码</string>
+    <string name="please_input_repeat_password">请输入重复密码</string>
+    <string name="please_input_rfid">请输入 RFID 标签</string>
+    <string name="please_input_rfid_code">请输入 RFID 编号</string>
+    <string name="please_input_rfid_tag">请输入RFID标签</string>
+    <string name="please_input_role_name">请输入角色名称</string>
+    <string name="please_input_sop_name">请输入SOP名称</string>
+    <string name="please_input_step_description">请输入步骤操作说明</string>
+    <string name="please_input_step_title">请填写步骤标题</string>
+    <string name="please_input_step_title_short">请输入步骤标题缩写</string>
+    <string name="please_input_username">请输入登录名</string>
+    <string name="please_input_username_min_size">请输入最小用户名长度</string>
+    <string name="please_input_workstation_name">请输入区域名称</string>
+    <string name="please_input_x_in_map">请输入坐标X(最大1920)</string>
+    <string name="please_input_y_in_map">请输入坐标X(最大1080)</string>
+    <string name="please_must_select_at_least_one_point">您至少需要添加一个点位</string>
+    <string name="please_press_fingerprint_again">请再次按压指纹</string>
+    <string name="please_re_press_fingerprint_again">请重新按压指纹</string>
+    <string name="please_return_key_after_locking">请上锁员完成上锁后,归还钥匙</string>
+    <string name="please_return_key_after_unlocking">请上锁员完成解锁后,归还钥匙</string>
+    <string name="please_scan_face">请刷脸</string>
+    <string name="please_scan_fingerprint">请刷指纹</string>
+    <string name="please_select_area">请选择区域</string>
+    <string name="please_select_backup_file">请先选择备份文件</string>
+    <string name="please_select_backup_frequency">请选择备份频率</string>
+    <string name="please_select_card">请选择卡片</string>
+    <string name="please_select_card_username">请选择用户名称</string>
+    <string name="please_select_colocker">请选择共锁人</string>
+    <string name="please_select_data_you_want_to_export">请选择你需要导出的数据表。</string>
+    <string name="please_select_exception_description">请选择异常描述</string>
+    <string name="please_select_exception_source">请选择异常源</string>
+    <string name="please_select_exception_type">请选择异常类型</string>
+    <string name="please_select_flow_mode">请选择流程模式</string>
+    <string name="please_select_group">请选择分组</string>
+    <string name="please_select_handle_time">请选择处理时间</string>
+    <string name="please_select_job">请选择作业</string>
+    <string name="please_select_job_workstation">请选择作业区域</string>
+    <string name="please_select_key">请选择钥匙</string>
+    <string name="please_select_lock">请选择挂锁</string>
+    <string name="please_select_locker">请选择上锁人</string>
+    <string name="please_select_member">您可以选择添加人员</string>
+    <string name="please_select_point">请选择隔离点</string>
+    <string name="please_select_power_type">请选择能量源</string>
+    <string name="please_select_process_application">请选择处理申请</string>
+    <string name="please_select_rfid_token">请选择RFID标签</string>
+    <string name="please_select_role">请选择角色</string>
+    <string name="please_select_sop">请选择SOP</string>
+    <string name="please_select_sop_workstation">请选择SOP区域</string>
+    <string name="please_select_start_time">请先选择开始时间</string>
+    <string name="please_select_status">请选择状态</string>
+    <string name="please_select_step_confirm_member">请选择执行确认人员</string>
+    <string name="please_select_step_confirm_role">请选择执行确认角色</string>
+    <string name="please_select_step_confirm_type">请选择执行确认方式</string>
+    <string name="please_select_time">请选择时间</string>
+    <string name="please_select_user">请选择用户</string>
+    <string name="please_select_workflow_mode">请选择流程模式</string>
+    <string name="please_select_workstation">请选择区域</string>
+    <string name="please_set_point_coordinate_first">请先设置点位坐标。</string>
+    <string name="please_swipe_card">请刷卡</string>
+    <string name="please_take_out_ready_device_first">请先取出已开卡扣的设备</string>
+    <string name="please_wait_ticket_name_lock_complete">请等待[{0}]上锁完成</string>
+    <string name="point">点位</string>
+    <string name="point_detail">点位明细</string>
+    <string name="point_in_use">点位正在使用无法修改</string>
+    <string name="point_info_title">点位信息</string>
+    <string name="point_list_title">点位清单</string>
+    <string name="point_manage">点位管理</string>
+    <string name="point_manage_add_title">添加点位</string>
+    <string name="point_manage_delete_failed">无法删除隔离点</string>
+    <string name="point_manage_delete_succeed">隔离点删除成功</string>
+    <string name="point_manage_point_function">隔离点作用</string>
+    <string name="point_manage_point_group">分组名称</string>
+    <string name="point_manage_point_name">隔离点名称</string>
+    <string name="point_manage_point_power_type">能量源</string>
+    <string name="point_manage_rfid">RFID</string>
+    <string name="point_manage_rfid_tag">RFID 标签</string>
+    <string name="point_manage_switch_icon">开关图标</string>
+    <string name="point_manage_title">点位管理</string>
+    <string name="point_manage_update_title">修改点位</string>
+    <string name="point_manage_workstation">区域</string>
+    <string name="point_name_tv">隔离点</string>
+    <string name="position">定位</string>
+    <string name="potential_energy">势能</string>
+    <string name="power_isolation_way">确认隔离方式</string>
+    <string name="preset_workflow_can_not_delete">预设流程模式无法删除</string>
+    <string name="previous">上一步</string>
+    <string name="process_application_tv">处理申请</string>
+    <string name="processed">已处理</string>
+    <string name="progressing">进行中</string>
+    <string name="quick_entrance_most_set_tip">快捷入口最多设置8个</string>
+    <string name="quick_entrance_title">快捷入口配置</string>
+    <string name="re_recognize">重新识别</string>
+    <string name="real_person_verification_required">请保持真人操作</string>
+    <string name="recapture">重拍</string>
+    <string name="recognize_work_content">识别工作内容</string>
+    <string name="recognized_card_rfid">已识别的卡片RFID</string>
+    <string name="recognized_point_rfid">已识别的点位RFID</string>
+    <string name="reduce_colocker">减少共锁人({0})</string>
+    <string name="register_failed">注册失败</string>
+    <string name="register_success">注册成功</string>
+    <string name="release_colock">解除共锁</string>
+    <string name="release_colocker">解除共锁</string>
+    <string name="remark">备注</string>
+    <string name="remove">移除</string>
+    <string name="repeat_new_password">重复新密码(数字、字母、特殊符号、6-20位)</string>
+    <string name="repeat_password">重复密码:(数字、字母、特殊符号、6-20位)</string>
+    <string name="reset">重置</string>
+    <string name="reset_data_tv">点击重设</string>
+    <string name="reset_password">重置密码</string>
+    <string name="reset_password_title">重置密码</string>
+    <string name="reset_user_password_failed">用户密码重置失败</string>
+    <string name="reset_user_password_succeed">用户密码重置成功</string>
+    <string name="restart_app_after_set">App将在设置完成后重启</string>
+    <string name="restore">还原</string>
+    <string name="restore_backup_confirm">还原备份将清除备份日期到当前时间的所有数据,是否确认还原备份?</string>
+    <string name="restore_backup_success">备份还原成功</string>
+    <string name="rfid">RFID 标签</string>
+    <string name="rfid_already_bind">该Rfid标签已被绑定</string>
+    <string name="rfid_already_registration">RFID标签已录入</string>
+    <string name="rfid_code">RFID 编号</string>
+    <string name="rfid_in_use">RFID标签使用中,无法修改</string>
+    <string name="rfid_manage">RFID管理</string>
+    <string name="rfid_name">RFID编号</string>
+    <string name="rfid_token_manage_delete_failed">RFID标签删除失败</string>
+    <string name="rfid_token_manage_delete_succeed">RFID标签删除成功</string>
+    <string name="rfid_token_manage_new_rfid_token_title">新增 RFID 标签</string>
+    <string name="rfid_token_manage_rfid_token_detail_title">RFID标签详情</string>
+    <string name="rfid_token_manage_title">RFID管理</string>
+    <string name="role">角色</string>
+    <string name="role_confirm">角色确认</string>
+    <string name="role_in_preset_tip">预设角色不允许删除</string>
+    <string name="role_in_use">角色已有作业在使用</string>
+    <string name="role_key_already_exists">该角色权限字符已存在</string>
+    <string name="role_manage">角色管理</string>
+    <string name="role_manage_add_title">添加角色</string>
+    <string name="role_manage_delete_failed">无法删除角色</string>
+    <string name="role_manage_delete_succeed">角色已删除</string>
+    <string name="role_manage_permission_string">权限字符</string>
+    <string name="role_manage_role_name">角色名称</string>
+    <string name="role_manage_role_num">角色编号</string>
+    <string name="role_manage_title">角色管理</string>
+    <string name="role_manage_update_title">修改角色</string>
+    <string name="save">保存</string>
+    <string name="save_and_execute">保存并执行</string>
+    <string name="save_sop_check">生成SOP</string>
+    <string name="save_success">保存成功!</string>
+    <string name="scan_complete_app_restarting">扫描完成,APP将自动重启</string>
+    <string name="sec">秒</string>
+    <string name="select">选择</string>
+    <string name="select_colocker_tip">请在以下人员中选择共锁人</string>
+    <string name="select_coloker">请选择共锁人</string>
+    <string name="select_group_tip">点击分组空白区域进行选中</string>
+    <string name="select_locker">选择上锁人</string>
+    <string name="select_locker_tip">请在以下人员中选择[{0}]上锁人</string>
+    <string name="select_member">选择人员</string>
+    <string name="select_member_title">选择人员</string>
+    <string name="select_point_title">选择点位</string>
+    <string name="selected_point_already_in_use">存在使用中的点位</string>
+    <string name="selected_point_info_title">默认分组</string>
+    <string name="selected_quick_entrance">已配置的快捷入口(最多添加8个快捷入口,可拖拽排序)</string>
+    <string name="selected_rfid_in_use">存在正在使用的RFID标签</string>
+    <string name="send_ticket_fail">作业票下发失败</string>
+    <string name="sending_ticket">工作票下发中······</string>
+    <string name="server_address">服务地址</string>
+    <string name="server_address_error">服务器地址错误</string>
+    <string name="set_colocker">设置共锁人</string>
+    <string name="set_data_tv">点击设置</string>
+    <string name="set_default">设为默认</string>
+    <string name="set_face_title">设置人脸</string>
+    <string name="set_fingerprint_title">设置指纹</string>
+    <string name="set_job_card_title">设置工卡</string>
+    <string name="set_locker">设置上锁人</string>
+    <string name="set_password">设置密码:(数字、字母、特殊符号、6-20位)</string>
+    <string name="settings">设置</string>
+    <string name="show_in_map">在地图中显示:</string>
+    <string name="show_member_when_selected_sop">选择SOP后,将自动展示SOP的人员信息。</string>
+    <string name="show_points_when_selected_sop">选择SOP后,将自动展示SOP的点位信息。</string>
+    <string name="shutdown">操作停机</string>
+    <string name="ski_step">跳过该步骤</string>
+    <string name="skip_and_complete">跳过并完成</string>
+    <string name="slot">仓位</string>
+    <string name="slot_damage">仓位损坏</string>
+    <string name="slot_exception_tag">该锁仓已被标记异常</string>
+    <string name="slot_manage">仓位管理</string>
+    <string name="slots_exception_report">仓位异常上报</string>
+    <string name="slots_manage_title">仓位管理</string>
+    <string name="sop">SOP</string>
+    <string name="sop_create_failed">SOP创建失败</string>
+    <string name="sop_create_succeed">SOP创建成功</string>
+    <string name="sop_job_save_and_execute_failed">SOP作业执行失败</string>
+    <string name="sop_job_save_and_execute_succeed">SOP作业开始执行</string>
+    <string name="sop_job_save_failed">SOP作业保存失败</string>
+    <string name="sop_job_save_succeed">SOP作业保存成功</string>
+    <string name="sop_manage">SOP管理</string>
+    <string name="sop_manage_delete_failed">无法删除选中的SOP</string>
+    <string name="sop_manage_delete_succeed">删除选中的SOP成功</string>
+    <string name="sop_manage_sop_name">SOP名称</string>
+    <string name="sop_manage_title">SOP管理</string>
+    <string name="sop_manage_workstation">所属岗位</string>
+    <string name="sop_save_failed">SOP保存失败</string>
+    <string name="sop_save_succeed">SOP保存成功</string>
+    <string name="sop_save_tip">确定要保存{0}吗?</string>
+    <string name="sop_workstation">SOP区域</string>
+    <string name="start">开始</string>
+    <string name="start_detect_key_slot">开始检测钥匙仓位</string>
+    <string name="start_detect_lock_slot">开始检测挂锁仓位</string>
+    <string name="start_scan_key_mac">开始扫描钥匙信息</string>
+    <string name="start_time">开始时间</string>
+    <string name="start_tip">根据提示对系统进行初始化</string>
+    <string name="start_to_send_ticket">开始下发工作票······</string>
+    <string name="status">状态</string>
+    <string name="step_confirm_failed">步骤确认失败</string>
+    <string name="switch">切换</string>
+    <string name="switch_alarm">警告</string>
+    <string name="switch_close">关闭</string>
+    <string name="switch_id">编号:{0}</string>
+    <string name="switch_information">开关信息</string>
+    <string name="switch_layout">开关布局图</string>
+    <string name="switch_open">开启</string>
+    <string name="switch_status">开关状态:</string>
+    <string name="sysconfig">系统配置员</string>
+    <string name="take_out_key">请取出钥匙</string>
+    <string name="take_out_key_tip">请从打开的钥匙仓取出钥匙</string>
+    <string name="take_out_lock_tip">请从打开的锁仓取出锁,还有{0}把待取出</string>
+    <string name="take_out_rest_locks">请取出剩余开启卡扣的挂锁</string>
+    <string name="tec_support">温州博士安全用品有限公司</string>
+    <string name="the_verification_file_not_exists">校验文件不存在</string>
+    <string name="ticket_data_error">工作票数据损坏</string>
+    <string name="ticket_get_failed">作业票获取失败,请关闭钥匙电源并重新拿取并归还钥匙</string>
+    <string name="ticket_lost">作业票不存在</string>
+    <string name="ticket_name">作业名称</string>
+    <string name="time_frame_tv">时间范围</string>
+    <string name="todo_header">处理中</string>
+    <string name="todo_list">我的待办</string>
+    <string name="todo_wait">等待:</string>
+    <string name="turn_off">关</string>
+    <string name="turn_on">开</string>
+    <string name="turn_read">读</string>
+    <string name="uncolock_complete">解除共锁成功</string>
+    <string name="uncolock_failed">解除共锁失败</string>
+    <string name="unknown">未知待办</string>
+    <string name="unlock">解锁</string>
+    <string name="unlock_and_restore_switch">拆锁恢复开关</string>
+    <string name="unlock_return_key">完成解锁</string>
+    <string name="unlock_take_key">启动解锁</string>
+    <string name="unlocking">解锁中</string>
+    <string name="unzip">解压中……{0}</string>
+    <string name="update_card_failed">更新卡片失败</string>
+    <string name="update_card_succeed">更新卡片成功</string>
+    <string name="update_info">修改信息</string>
+    <string name="update_key_failed">更新钥匙失败</string>
+    <string name="update_key_succeed">更新钥匙成功</string>
+    <string name="update_lock_failed">更新挂锁失败</string>
+    <string name="update_lock_succeed">更新挂锁成功</string>
+    <string name="update_point_failed">保存点位失败</string>
+    <string name="update_point_succeed">保存点位成功</string>
+    <string name="update_rfid_token_failed">更新RFID标签失败</string>
+    <string name="update_rfid_token_succeed">更新RFID标签成功</string>
+    <string name="update_role_failed">角色更新失败</string>
+    <string name="update_role_succeed">角色更新成功</string>
+    <string name="update_user_failed">用户更新失败</string>
+    <string name="update_user_succeed">用户更新成功</string>
+    <string name="update_workstation_failed">更新区域失败</string>
+    <string name="update_workstation_succeed">更新区域成功</string>
+    <string name="user">用户</string>
+    <string name="user_already_exists">用户已存在</string>
+    <string name="user_info">个人信息</string>
+    <string name="user_info_title">个人信息</string>
+    <string name="user_manage">用户管理</string>
+    <string name="user_manage_area">区域</string>
+    <string name="user_manage_card_code">工卡</string>
+    <string name="user_manage_delete_failed">无法删除用户</string>
+    <string name="user_manage_delete_succeed">用户已删除</string>
+    <string name="user_manage_filter_activate">正常</string>
+    <string name="user_manage_filter_deactivate">停用</string>
+    <string name="user_manage_filter_title">筛选条件</string>
+    <string name="user_manage_new_user_title">新增用户</string>
+    <string name="user_manage_role">角色</string>
+    <string name="user_manage_title">用户管理</string>
+    <string name="user_manage_user_detail_title">用户详情</string>
+    <string name="user_manage_view">查看</string>
+    <string name="user_name">登录名</string>
+    <string name="username">用户名称</string>
+    <string name="username_min_size">最小用户名长度(1-6)</string>
+    <string name="username_or_password_error">账号或密码错误</string>
+    <string name="username_passowrd_login_success">账号密码验证通过</string>
+    <string name="username_password_not_exists">账号密码不存在</string>
+    <string name="username_regex_tip">账号不符合要求</string>
+    <string name="verify_failed">验证失败</string>
+    <string name="view">查看</string>
+    <string name="wait_header">等待中</string>
+    <string name="wait_to_colock">待共锁({0})</string>
+    <string name="warn">警告</string>
+    <string name="welcome_tip">您好,欢迎您使用</string>
+    <string name="workflow_already_exists">流程模式已存在</string>
+    <string name="workflow_manage">流程模式</string>
+    <string name="workflow_manage_title">流程模式</string>
+    <string name="workflow_mode">流程模式</string>
+    <string name="workflow_mode_manage_delete_succeed">删除流程模式成功</string>
+    <string name="workflow_mode_status_update_failed">状态修改失败</string>
+    <string name="workflow_mode_status_update_succeed">状态修改成功</string>
+    <string name="workflow_name">流程模式名称</string>
+    <string name="workflow_setting">流程设置</string>
+    <string name="workflow_step_confirm_member">执行确认人员</string>
+    <string name="workflow_step_confirm_role">执行确认角色</string>
+    <string name="workflow_step_confirm_type">执行确认方式</string>
+    <string name="workflow_step_description">步骤操作说明</string>
+    <string name="workflow_step_function">步骤功能</string>
+    <string name="workflow_step_title">步骤标题</string>
+    <string name="workflow_step_title_short">步骤标题缩写</string>
+    <string name="workstation">区域</string>
+    <string name="workstation_already_exists">区域已存在</string>
+    <string name="workstation_info">区域信息</string>
+    <string name="workstation_is_in_bottom">区域已经在底部</string>
+    <string name="workstation_is_in_top">区域已经在顶部</string>
+    <string name="workstation_manage">区域管理</string>
+    <string name="workstation_manage_delete_failed">无法删除区域{0}</string>
+    <string name="workstation_manage_delete_succeed">删除区域{0}成功</string>
+    <string name="workstation_manage_new_workstation">新增区域</string>
+    <string name="workstation_manage_parent_workstation_name">上级区域名称</string>
+    <string name="workstation_manage_title">区域管理</string>
+    <string name="workstation_manage_update_workstation">编辑区域</string>
+    <string name="workstation_manage_workstation_name">区域名称</string>
+    <string name="year">年</string>
+    <string name="you_are_not_locker_tip">您不是上锁人,无法执行此操作</string>
+    <string name="zone">区域范围</string>
+</resources>