diff --git a/lms/nladmin-system/.idea/encodings.xml b/lms/nladmin-system/.idea/encodings.xml
new file mode 100644
index 0000000..1d82e82
--- /dev/null
+++ b/lms/nladmin-system/.idea/encodings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lms/nladmin-system/.idea/jarRepositories.xml b/lms/nladmin-system/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/lms/nladmin-system/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lms/nladmin-system/.idea/misc.xml b/lms/nladmin-system/.idea/misc.xml
new file mode 100644
index 0000000..d5cd614
--- /dev/null
+++ b/lms/nladmin-system/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/lms/nladmin-system/src/main/java/org/nl/common/language/InitLocaleResolver.java b/lms/nladmin-system/src/main/java/org/nl/common/language/InitLocaleResolver.java
new file mode 100644
index 0000000..1256686
--- /dev/null
+++ b/lms/nladmin-system/src/main/java/org/nl/common/language/InitLocaleResolver.java
@@ -0,0 +1,37 @@
+package org.nl.common.language;
+
+import org.apache.commons.lang3.StringUtils;
+import org.nl.common.utils.MapOf;
+import org.springframework.web.servlet.LocaleResolver;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Locale;
+import java.util.Map;
+
+
+public class InitLocaleResolver implements LocaleResolver {
+ public static Map Language_Country = MapOf.of("id","in-ID","in","in-ID","en-US,en;q=0.9","en-US","en","en-US","zh","zh-CN","ko","ko-KR");
+ public static String language = "";
+ @Override
+ public Locale resolveLocale(HttpServletRequest request) {
+ String header = request.getHeader("Accept-Language");
+ if (StringUtils.isNotEmpty(header)){
+ String lang = Language_Country.get(header);
+ language = lang;
+ if (StringUtils.isNotEmpty(lang)){
+ String[] l = lang.split("-");
+ //印尼的ISO标准国家代码为id-ID
+ return new Locale(l[0], l[1]);
+ }
+ }
+ return Locale.getDefault();
+ }
+
+ @Override
+ public void setLocale(HttpServletRequest request, HttpServletResponse response, Locale locale) {
+ }
+ public String getLanguage(){
+ return language;
+ }
+}
diff --git a/lms/nladmin-system/src/main/java/org/nl/common/language/LangProcess.java b/lms/nladmin-system/src/main/java/org/nl/common/language/LangProcess.java
new file mode 100644
index 0000000..deccc9b
--- /dev/null
+++ b/lms/nladmin-system/src/main/java/org/nl/common/language/LangProcess.java
@@ -0,0 +1,19 @@
+package org.nl.common.language;
+
+import org.apache.commons.lang3.StringUtils;
+import org.nl.modules.wql.util.SpringContextHolder;
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+
+public class LangProcess {
+
+ public static String msg(String code,String...args){
+ MessageSource bean = SpringContextHolder.getBean(MessageSource.class);
+ if (StringUtils.isEmpty(code)){
+ return " ";
+ }
+ String message = bean.getMessage(code, args, LocaleContextHolder.getLocale());
+ return message;
+ }
+}
diff --git a/lms/nladmin-system/src/main/java/org/nl/common/utils/AssertNullUtils.java b/lms/nladmin-system/src/main/java/org/nl/common/utils/AssertNullUtils.java
new file mode 100644
index 0000000..c580de2
--- /dev/null
+++ b/lms/nladmin-system/src/main/java/org/nl/common/utils/AssertNullUtils.java
@@ -0,0 +1,23 @@
+package org.nl.common.utils;
+
+import cn.hutool.core.util.ObjectUtil;
+import org.nl.common.language.LangProcess;
+import org.nl.modules.common.exception.BadRequestException;
+import org.springframework.util.CollectionUtils;
+
+import java.util.Map;
+
+public class AssertNullUtils {
+
+ public static void batch(Map paramCheck){
+ if (CollectionUtils.isEmpty(paramCheck)){
+ throw new BadRequestException(LangProcess.msg("common_checkNull"));
+ }
+ for (Map.Entry entry : paramCheck.entrySet()) {
+ Object value = entry.getValue();
+ if (ObjectUtil.isEmpty(value)){
+ throw new BadRequestException(LangProcess.msg("common_checkNull",entry.getKey()));
+ }
+ }
+ }
+}
diff --git a/lms/nladmin-system/src/main/resources/config/application-dev.yml b/lms/nladmin-system/src/main/resources/config/application-dev.yml
index 63c7ad6..a397ac0 100644
--- a/lms/nladmin-system/src/main/resources/config/application-dev.yml
+++ b/lms/nladmin-system/src/main/resources/config/application-dev.yml
@@ -7,10 +7,10 @@ spring:
db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:88lmsdb}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
- url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:lzhl_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
+ url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.251}:${DB_PORT:3306}/${DB_NAME:yinni_lms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
username: ${DB_USER:root}
# password: ${DB_PWD:NLABC&hl123}
- password: ${DB_PWD:root}
+ password: ${DB_PWD:123456}
# 初始连接数
initial-size: 5
# 最小连接数
diff --git a/lms/nladmin-system/src/main/resources/config/application.yml b/lms/nladmin-system/src/main/resources/config/application.yml
index 3937200..ad4c69a 100644
--- a/lms/nladmin-system/src/main/resources/config/application.yml
+++ b/lms/nladmin-system/src/main/resources/config/application.yml
@@ -3,6 +3,8 @@ server:
relaxed-query-chars: [ '|','{','}','[',']' ] #字符问题:https://blog.csdn.net/CanYue_Yi/article/details/109182577
relaxed-path-chars: [ '|','{','}','[',']' ] #字符问题: https://blog.csdn.net/weixin_41996632/article/details/90715118
spring:
+ messages:
+ basename: language/login/login,language/error/error,language/buss/buss,language/task/task,language/monitor/one_device/one_device,language/monitor/two_device/two_device,language/monitor/universal/universal
freemarker:
check-template-location: false
profiles:
diff --git a/lms/nladmin-system/src/main/resources/language/buss/buss.properties b/lms/nladmin-system/src/main/resources/language/buss/buss.properties
new file mode 100644
index 0000000..b7aa0fd
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/buss/buss.properties
@@ -0,0 +1,9 @@
+device_checkAdd=设备{0}未设置电气调度号
+device_checkNull=未找到该设备{0}
+device_checkRoute=设备{0}路由已存在,无法操作
+device_checkStatus=该设备已有呼叫请求未响应,操作失败\!
+device_checkrelate=设备{0}关联信息{1}异常\:{2}
+route_isNull=路由不通
+physical_cpu=个物理CPU
+physical_core=个物理核心
+logical_cpu=个逻辑CPU
\ No newline at end of file
diff --git a/lms/nladmin-system/src/main/resources/language/buss/buss_en_US.properties b/lms/nladmin-system/src/main/resources/language/buss/buss_en_US.properties
new file mode 100644
index 0000000..7449017
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/buss/buss_en_US.properties
@@ -0,0 +1,9 @@
+device_checkAdd=Device {0} has not set an electrical dispatch number
+device_checkNull=The device {0} was not found
+device_checkRoute=Device {0} route already exists and cannot be operated
+device_checkStatus=The device has an unresponsive call request and the operation has failed\!
+device_checkrelate=Device {0} association information {1} exception\: {2}
+route_isNull=Routing not working
+physical_cpu=Physical CPU
+physical_core=Physical core
+logical_cpu=Logical CPU
\ No newline at end of file
diff --git a/lms/nladmin-system/src/main/resources/language/buss/buss_in_ID.properties b/lms/nladmin-system/src/main/resources/language/buss/buss_in_ID.properties
new file mode 100644
index 0000000..a7ace04
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/buss/buss_in_ID.properties
@@ -0,0 +1,10 @@
+device_checkAdd=Peranti {0} tidak menetapkan nomor pengiriman listrik
+device_checkNull=Perangkat {0} tidak ditemukan
+device_checkRoute=Jalan perangkat {0} sudah ada dan tidak dapat beroperasi
+device_checkStatus=Perangkat memiliki permintaan panggilan yang tidak respon dan operasinya gagal\!
+device_checkrelate=Informasi asosiasi perangkat {0} pengecualian {1}\: {2}
+route_isNull=Jalan tidak bekerja
+physical_cpu=CPU fisik
+physical_core=CPU logis
+logical_cpu=CPU logis
+
diff --git a/lms/nladmin-system/src/main/resources/language/buss/buss_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/buss/buss_zh_CN.properties
new file mode 100644
index 0000000..05b5da2
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/buss/buss_zh_CN.properties
@@ -0,0 +1,9 @@
+device_checkAdd=设备{0}未设置电气调度号
+device_checkNull=未找到该设备{0}
+device_checkRoute=设备{0}路由已存在,无法操作
+device_checkStatus=该设备已有呼叫请求未响应,操作失败\!
+device_checkrelate=设备{0}关联信息{1}异常\:{2}
+route_isNull=路由不通
+physical_cpu=个物理CPU
+physical_core=个物理核心
+logical_cpu=个逻辑CPU
diff --git a/lms/nladmin-system/src/main/resources/language/common/common.properties b/lms/nladmin-system/src/main/resources/language/common/common.properties
new file mode 100644
index 0000000..5cd7a71
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/common/common.properties
@@ -0,0 +1,31 @@
+common_checkEq=\u53C2\u6570\u6821\u9A8C\u5F02\u5E38\uFF1A\u4FE1\u606F\u4E0D\u4E00\u81F4
+common_checkExist=\u4FE1\u606F\u5DF2\u7ECF\u5B58\u5728{0}
+common_checkFile=\u53EA\u80FD\u4E0A\u4F20\u56FE\u7247
+common_checkFileSize=\u6587\u4EF6\u8D85\u51FA\u89C4\u5B9A\u5927\u5C0F\!
+common_checkNull={0}请求参数不能为空
+common_checkNumber=\u957F\u5EA6\u4E0D\u662F\u5076\u6570\!
+common_checkParam=\u53C2\u6570\u4E0D\u6B63\u786E
+common_checkRelate=\u5B58\u5728\u76F8\u5173\u8054\u7684\u6570\u636E\u6743\u9650
+common_checkTypes=\u672A\u5B9E\u73B0\u76EE\u524D\u652F\u6301\u662F{0}
+common_communication=\u901A\u4FE1\u7ED3\u675F
+common_config=\u914D\u7F6E\u4FE1\u606F\u4E0D\u6B63\u786E
+common_dbCreate=\u521B\u5EFA\u5931\u8D25
+common_dbDelete=\u5220\u9664\u5931\u8D25
+common_dbUpdate=\u66F4\u65B0\u5931\u8D25
+common_generator=\u6B64\u73AF\u5883\u4E0D\u5141\u8BB8\u751F\u6210\u4EE3\u7801\uFF0C\u8BF7\u9009\u62E9\u9884\u89C8\u6216\u8005\u4E0B\u8F7D\u67E5\u770B
+common_isNull={0}\u67E5\u8BE2\u4FE1\u606F\u4E0D\u5B58\u5728
+common_lockOut=\u64CD\u4F5C\u9501\u88AB\u5360\u7528{0},\u7B49\u5F85\u7ED3\u675F
+common_nullPoint=\u4FE1\u606F\u4E3A\u7A7A
+common_run=\u6267\u884C\u5931\u8D25
+common_send=\u6D88\u606F\u53D1\u9001\u5931\u8D25
+common_status={0}\u4FE1\u606F\u72B6\u6001\u4E0D\u6B63\u786E
+common_sys=\u7CFB\u7EDF\u7E41\u5FD9\uFF0C\u7A0D\u540E\u5728\u8BD5
+common_sysAuth=\u6743\u9650\u4E0D\u8DB3\uFF0C\u64CD\u4F5C\u5931\u8D25
+common_sysFile=\u4E0A\u4F20\u5931\u8D25
+common_sysLimit=\u8BBF\u95EE\u6B21\u6570\u9650\u5236\!
+zh_device_name_isNotNull = \u4E2D\u6587\u8BBE\u5907\u540D\u79F0\u4E0D\u80FD\u4F4D\u7A7A
+common_not_configured=\u5B57\u5178\u8868\u672A\u914D\u7F6E\u5BF9\u5E94\u7684\u62A5\u8B66\u4FE1\u606F
+common_creat_route=\u5DF2\u5B58\u5728\u8BE5\u8DEF\u7531\u8DEF\u7EBF:
+common_regional_max=\u533A\u57DF\u6307\u4EE4\u6570\u91CF\u5DF2\u6700\u5927\u503C
+common_no_ins=\u6CA1\u6709\u6307\u4EE4\u5B58\u5728
+common_no_regional = \u672A\u67E5\u5230\u8BE5\u533A\u57DF\u7684\u8BBE\u5907
diff --git a/lms/nladmin-system/src/main/resources/language/common/common_en_US.properties b/lms/nladmin-system/src/main/resources/language/common/common_en_US.properties
new file mode 100644
index 0000000..e44cb28
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/common/common_en_US.properties
@@ -0,0 +1,34 @@
+common_checkEq=Parameter verification exception\: inconsistent information
+common_checkExist=Parameter already exists {0}
+common_checkFile=Only uploadable images
+common_checkFileSize=The file exceeds the specified size\!
+common_checkNull={0} Request parameter is empty
+common_checkNumber=It's not even long\!
+common_checkParam=invalid parameter
+common_checkRelate=There are associated data permissions present
+common_checkTypes=Not implemented. Currently supported is {0}
+common_communication=End of communication
+common_config=Incorrect configuration information
+common_dbCreate=Creation failed
+common_dbDelete=Delete failed
+common_dbUpdate=Update failed
+common_generator=This environment does not allow code generation. Please choose to preview or download to view
+common_isNull={0}query is null
+common_lockOut=Operation lock is occupied {0}, waiting for end
+common_nullPoint=Only Empty Question
+common_run=Execution failed
+common_send=Message sending failed
+common_status={0} information status is incorrect
+common_sys=The system is busy, please try again later
+common_sysAuth=Insufficient permissions, operation failed
+common_sysFile=Upload failed
+common_sysLimit=Access limit\!
+zh_device_name_isNotNull = Chinese device name cannot be empty\!
+common_not_configured=The dictionary table is not configured with alarm information
+common_creat_route=The route already exists:
+common_regional_max=Maximum limit for regional instructions reached
+common_no_ins=No instruction exists
+common_no_regional = No device found in this area
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/common/common_in_ID.properties b/lms/nladmin-system/src/main/resources/language/common/common_in_ID.properties
new file mode 100644
index 0000000..6952184
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/common/common_in_ID.properties
@@ -0,0 +1,29 @@
+common_checkEq=Pengecualian verifikasi parameter\: informasi yang tidak konsisten
+common_checkExist=Parameter sudah ada {0}
+common_checkFile=Hanya gambar yang dapat diunggah
+common_checkFileSize=Berkas melebihi ukuran yang ditentukan\!
+common_checkNull={0} Parameter permintaan tidak dapat kosong
+common_checkNumber=Panjangnya bahkan tidak\!
+common_checkParam=parameter tidak benar
+common_checkRelate=Ada keizinan data terkait yang ada
+common_checkTypes=Tidak diimplementasikan. Saat ini didukung adalah {0}
+common_communication=Komunikasi berakhir
+common_config=Informasi konfigurasi yang salah
+common_dbCreate=Penciptaan gagal
+common_dbDelete=Hapus gagal
+common_dbUpdate=Kemaskini gagal
+common_generator=lingkungan ini tidak memungkinkan generasi kode. Silakan pilih untuk melihat atau mengunduh untuk melihat
+common_isNull={0}Pertanyaan Tidak ada
+common_lockOut=Operasi kunci sedang sibuk {0}, menunggu akhir
+common_nullPoint=Pertanyaan Hanya Kosong
+common_run=Eksekusi gagal
+common_send=Pengiriman pesan gagal
+common_status=Status informasi {0} tidak benar
+common_sys=Sistemnya sibuk, tolong coba lagi nanti
+common_sysAuth=Keizinan tidak cukup, operasi gagal
+common_sysFile=Upload gagal
+common_sysLimit=Batas akses\!
+zh_device_name_isNotNull= Nama perangkat dalam bahasa Cina tidak boleh kosong!
+common_not_configured=Informasi alarm tak dikonfigurasi dari tabel kamus
+common_creat_route=Itu sudah ada:
+common_regional_max=Jumlah maksimum instruksi wilayah telah tercapai
diff --git a/lms/nladmin-system/src/main/resources/language/common/common_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/common/common_zh_CN.properties
new file mode 100644
index 0000000..d051c4f
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/common/common_zh_CN.properties
@@ -0,0 +1,34 @@
+common_checkEq=\u53C2\u6570\u6821\u9A8C\u5F02\u5E38\uFF1A\u4FE1\u606F\u4E0D\u4E00\u81F4
+common_checkExist=\u4FE1\u606F\u5DF2\u7ECF\u5B58\u5728{0}
+common_checkFile=\u53EA\u80FD\u4E0A\u4F20\u56FE\u7247
+common_checkFileSize=\u6587\u4EF6\u8D85\u51FA\u89C4\u5B9A\u5927\u5C0F\!
+common_checkNull={0}请求参数不能为空
+common_checkNumber=\u957F\u5EA6\u4E0D\u662F\u5076\u6570\!
+common_checkParam=\u53C2\u6570\u4E0D\u6B63\u786E
+common_checkRelate=\u5B58\u5728\u76F8\u5173\u8054\u7684\u6570\u636E\u6743\u9650
+common_checkTypes=\u672A\u5B9E\u73B0\u76EE\u524D\u652F\u6301\u662F{0}
+common_communication=\u901A\u4FE1\u7ED3\u675F
+common_config=\u914D\u7F6E\u4FE1\u606F\u4E0D\u6B63\u786E
+common_dbCreate=\u521B\u5EFA\u5931\u8D25
+common_dbDelete=\u5220\u9664\u5931\u8D25
+common_dbUpdate=\u66F4\u65B0\u5931\u8D25
+common_generator=\u6B64\u73AF\u5883\u4E0D\u5141\u8BB8\u751F\u6210\u4EE3\u7801\uFF0C\u8BF7\u9009\u62E9\u9884\u89C8\u6216\u8005\u4E0B\u8F7D\u67E5\u770B
+common_isNull={0}\u67E5\u8BE2\u4FE1\u606F\u4E0D\u5B58\u5728
+common_lockOut=\u64CD\u4F5C\u9501\u88AB\u5360\u7528{0},\u7B49\u5F85\u7ED3\u675F
+common_nullPoint=\u4FE1\u606F\u4E3A\u7A7A
+common_run=\u6267\u884C\u5931\u8D25
+common_send=\u6D88\u606F\u53D1\u9001\u5931\u8D25
+common_status={0}\u4FE1\u606F\u72B6\u6001\u4E0D\u6B63\u786E
+common_sys=\u7CFB\u7EDF\u7E41\u5FD9\uFF0C\u7A0D\u540E\u5728\u8BD5
+common_sysAuth=\u6743\u9650\u4E0D\u8DB3\uFF0C\u64CD\u4F5C\u5931\u8D25
+common_sysFile=\u4E0A\u4F20\u5931\u8D25
+common_sysLimit=\u8BBF\u95EE\u6B21\u6570\u9650\u5236\!
+zh_device_name_isNotNull = \u4E2D\u6587\u8BBE\u5907\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
+common_not_configured=\u5B57\u5178\u8868\u672A\u914D\u7F6E\u5BF9\u5E94\u7684\u62A5\u8B66\u4FE1\u606F
+common_creat_route=\u5DF2\u5B58\u5728\u8BE5\u8DEF\u7531\u8DEF\u7EBF:
+common_regional_max=\u533A\u57DF\u6307\u4EE4\u6570\u91CF\u5DF2\u6700\u5927\u503C
+common_no_ins=\u6CA1\u6709\u6307\u4EE4\u5B58\u5728
+common_no_regional = \u672A\u67E5\u5230\u8BE5\u533A\u57DF\u7684\u8BBE\u5907
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/error/error.properties b/lms/nladmin-system/src/main/resources/language/error/error.properties
new file mode 100644
index 0000000..920fd6f
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/error/error.properties
@@ -0,0 +1,31 @@
+error_checkEq=\u53C2\u6570\u6821\u9A8C\u5F02\u5E38\uFF1A\u4FE1\u606F\u4E0D\u4E00\u81F4
+error_checkExist=\u4FE1\u606F\u5DF2\u7ECF\u5B58\u5728{0}
+error_checkFile=\u53EA\u80FD\u4E0A\u4F20\u56FE\u7247
+error_checkFileSize=\u6587\u4EF6\u8D85\u51FA\u89C4\u5B9A\u5927\u5C0F\!
+error_checkNull={0}\u4FE1\u606F\u4E3A\u7A7A
+error_checkNumber=\u957F\u5EA6\u4E0D\u662F\u5076\u6570\!
+error_checkParam=\u53C2\u6570\u4E0D\u6B63\u786E
+error_checkRelate=\u5B58\u5728\u76F8\u5173\u8054\u7684\u6570\u636E\u6743\u9650
+error_checkTypes=\u672A\u5B9E\u73B0\u76EE\u524D\u652F\u6301\u662F{0}
+error_communication=\u901A\u4FE1\u7ED3\u675F
+error_config=\u914D\u7F6E\u4FE1\u606F\u4E0D\u6B63\u786E
+error_dbCreate=\u521B\u5EFA\u5931\u8D25
+error_dbDelete=\u5220\u9664\u5931\u8D25
+error_dbUpdate=\u66F4\u65B0\u5931\u8D25
+error_generator=\u6B64\u73AF\u5883\u4E0D\u5141\u8BB8\u751F\u6210\u4EE3\u7801\uFF0C\u8BF7\u9009\u62E9\u9884\u89C8\u6216\u8005\u4E0B\u8F7D\u67E5\u770B
+error_isNull={0}\u67E5\u8BE2\u4FE1\u606F\u4E0D\u5B58\u5728
+error_lockOut=\u64CD\u4F5C\u9501\u88AB\u5360\u7528{0},\u7B49\u5F85\u7ED3\u675F
+error_nullPoint=\u4FE1\u606F\u4E3A\u7A7A
+error_run=\u6267\u884C\u5931\u8D25
+error_send=\u6D88\u606F\u53D1\u9001\u5931\u8D25
+error_status={0}\u4FE1\u606F\u72B6\u6001\u4E0D\u6B63\u786E
+error_sys=\u7CFB\u7EDF\u7E41\u5FD9\uFF0C\u7A0D\u540E\u5728\u8BD5
+error_sysAuth=\u6743\u9650\u4E0D\u8DB3\uFF0C\u64CD\u4F5C\u5931\u8D25
+error_sysFile=\u4E0A\u4F20\u5931\u8D25
+error_sysLimit=\u8BBF\u95EE\u6B21\u6570\u9650\u5236\!
+zh_device_name_isNotNull = \u4E2D\u6587\u8BBE\u5907\u540D\u79F0\u4E0D\u80FD\u4F4D\u7A7A
+error_not_configured=\u5B57\u5178\u8868\u672A\u914D\u7F6E\u5BF9\u5E94\u7684\u62A5\u8B66\u4FE1\u606F
+error_creat_route=\u5DF2\u5B58\u5728\u8BE5\u8DEF\u7531\u8DEF\u7EBF:
+error_regional_max=\u533A\u57DF\u6307\u4EE4\u6570\u91CF\u5DF2\u6700\u5927\u503C
+error_no_ins=\u6CA1\u6709\u6307\u4EE4\u5B58\u5728
+error_no_regional = \u672A\u67E5\u5230\u8BE5\u533A\u57DF\u7684\u8BBE\u5907
diff --git a/lms/nladmin-system/src/main/resources/language/error/error_en_US.properties b/lms/nladmin-system/src/main/resources/language/error/error_en_US.properties
new file mode 100644
index 0000000..bd7d249
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/error/error_en_US.properties
@@ -0,0 +1,34 @@
+error_checkEq=Parameter verification exception\: inconsistent information
+error_checkExist=Parameter already exists {0}
+error_checkFile=Only uploadable images
+error_checkFileSize=The file exceeds the specified size\!
+error_checkNull={0}Information is empty
+error_checkNumber=It's not even long\!
+error_checkParam=invalid parameter
+error_checkRelate=There are associated data permissions present
+error_checkTypes=Not implemented. Currently supported is {0}
+error_communication=End of communication
+error_config=Incorrect configuration information
+error_dbCreate=Creation failed
+error_dbDelete=Delete failed
+error_dbUpdate=Update failed
+error_generator=This environment does not allow code generation. Please choose to preview or download to view
+error_isNull={0}query is null
+error_lockOut=Operation lock is occupied {0}, waiting for end
+error_nullPoint=Only Empty Question
+error_run=Execution failed
+error_send=Message sending failed
+error_status={0} information status is incorrect
+error_sys=The system is busy, please try again later
+error_sysAuth=Insufficient permissions, operation failed
+error_sysFile=Upload failed
+error_sysLimit=Access limit\!
+zh_device_name_isNotNull = Chinese device name cannot be empty\!
+error_not_configured=The dictionary table is not configured with alarm information
+error_creat_route=The route already exists:
+error_regional_max=Maximum limit for regional instructions reached
+error_no_ins=No instruction exists
+error_no_regional = No device found in this area
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/error/error_in_ID.properties b/lms/nladmin-system/src/main/resources/language/error/error_in_ID.properties
new file mode 100644
index 0000000..3308eea
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/error/error_in_ID.properties
@@ -0,0 +1,29 @@
+error_checkEq=Pengecualian verifikasi parameter\: informasi yang tidak konsisten
+error_checkExist=Parameter sudah ada {0}
+error_checkFile=Hanya gambar yang dapat diunggah
+error_checkFileSize=Berkas melebihi ukuran yang ditentukan\!
+error_checkNull={0} Informasi kosong
+error_checkNumber=Panjangnya bahkan tidak\!
+error_checkParam=parameter tidak benar
+error_checkRelate=Ada keizinan data terkait yang ada
+error_checkTypes=Tidak diimplementasikan. Saat ini didukung adalah {0}
+error_communication=Komunikasi berakhir
+error_config=Informasi konfigurasi yang salah
+error_dbCreate=Penciptaan gagal
+error_dbDelete=Hapus gagal
+error_dbUpdate=Kemaskini gagal
+error_generator=lingkungan ini tidak memungkinkan generasi kode. Silakan pilih untuk melihat atau mengunduh untuk melihat
+error_isNull={0}Pertanyaan Tidak ada
+error_lockOut=Operasi kunci sedang sibuk {0}, menunggu akhir
+error_nullPoint=Pertanyaan Hanya Kosong
+error_run=Eksekusi gagal
+error_send=Pengiriman pesan gagal
+error_status=Status informasi {0} tidak benar
+error_sys=Sistemnya sibuk, tolong coba lagi nanti
+error_sysAuth=Keizinan tidak cukup, operasi gagal
+error_sysFile=Upload gagal
+error_sysLimit=Batas akses\!
+zh_device_name_isNotNull= Nama perangkat dalam bahasa Cina tidak boleh kosong!
+error_not_configured=Informasi alarm tak dikonfigurasi dari tabel kamus
+error_creat_route=Itu sudah ada:
+error_regional_max=Jumlah maksimum instruksi wilayah telah tercapai
diff --git a/lms/nladmin-system/src/main/resources/language/error/error_ko_KR.properties b/lms/nladmin-system/src/main/resources/language/error/error_ko_KR.properties
new file mode 100644
index 0000000..1685b48
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/error/error_ko_KR.properties
@@ -0,0 +1,5 @@
+
+error_no_ins=\uBA85\uB839\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
+error_no_regional = \uADF8 \uC9C0\uC5ED\uC758 \uC7A5\uBE44\uB294 \uBC1C\uACAC\uB418\uC9C0 \uC54A\uC558\uB2E4
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/error/error_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/error/error_zh_CN.properties
new file mode 100644
index 0000000..15ea6ca
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/error/error_zh_CN.properties
@@ -0,0 +1,34 @@
+error_checkEq=\u53C2\u6570\u6821\u9A8C\u5F02\u5E38\uFF1A\u4FE1\u606F\u4E0D\u4E00\u81F4
+error_checkExist=\u4FE1\u606F\u5DF2\u7ECF\u5B58\u5728{0}
+error_checkFile=\u53EA\u80FD\u4E0A\u4F20\u56FE\u7247
+error_checkFileSize=\u6587\u4EF6\u8D85\u51FA\u89C4\u5B9A\u5927\u5C0F\!
+error_checkNull={0}\u4FE1\u606F\u4E3A\u7A7A
+error_checkNumber=\u957F\u5EA6\u4E0D\u662F\u5076\u6570\!
+error_checkParam=\u53C2\u6570\u4E0D\u6B63\u786E
+error_checkRelate=\u5B58\u5728\u76F8\u5173\u8054\u7684\u6570\u636E\u6743\u9650
+error_checkTypes=\u672A\u5B9E\u73B0\u76EE\u524D\u652F\u6301\u662F{0}
+error_communication=\u901A\u4FE1\u7ED3\u675F
+error_config=\u914D\u7F6E\u4FE1\u606F\u4E0D\u6B63\u786E
+error_dbCreate=\u521B\u5EFA\u5931\u8D25
+error_dbDelete=\u5220\u9664\u5931\u8D25
+error_dbUpdate=\u66F4\u65B0\u5931\u8D25
+error_generator=\u6B64\u73AF\u5883\u4E0D\u5141\u8BB8\u751F\u6210\u4EE3\u7801\uFF0C\u8BF7\u9009\u62E9\u9884\u89C8\u6216\u8005\u4E0B\u8F7D\u67E5\u770B
+error_isNull={0}\u67E5\u8BE2\u4FE1\u606F\u4E0D\u5B58\u5728
+error_lockOut=\u64CD\u4F5C\u9501\u88AB\u5360\u7528{0},\u7B49\u5F85\u7ED3\u675F
+error_nullPoint=\u4FE1\u606F\u4E3A\u7A7A
+error_run=\u6267\u884C\u5931\u8D25
+error_send=\u6D88\u606F\u53D1\u9001\u5931\u8D25
+error_status={0}\u4FE1\u606F\u72B6\u6001\u4E0D\u6B63\u786E
+error_sys=\u7CFB\u7EDF\u7E41\u5FD9\uFF0C\u7A0D\u540E\u5728\u8BD5
+error_sysAuth=\u6743\u9650\u4E0D\u8DB3\uFF0C\u64CD\u4F5C\u5931\u8D25
+error_sysFile=\u4E0A\u4F20\u5931\u8D25
+error_sysLimit=\u8BBF\u95EE\u6B21\u6570\u9650\u5236\!
+zh_device_name_isNotNull = \u4E2D\u6587\u8BBE\u5907\u540D\u79F0\u4E0D\u80FD\u4E3A\u7A7A
+error_not_configured=\u5B57\u5178\u8868\u672A\u914D\u7F6E\u5BF9\u5E94\u7684\u62A5\u8B66\u4FE1\u606F
+error_creat_route=\u5DF2\u5B58\u5728\u8BE5\u8DEF\u7531\u8DEF\u7EBF:
+error_regional_max=\u533A\u57DF\u6307\u4EE4\u6570\u91CF\u5DF2\u6700\u5927\u503C
+error_no_ins=\u6CA1\u6709\u6307\u4EE4\u5B58\u5728
+error_no_regional = \u672A\u67E5\u5230\u8BE5\u533A\u57DF\u7684\u8BBE\u5907
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/login/login.properties b/lms/nladmin-system/src/main/resources/language/login/login.properties
new file mode 100644
index 0000000..68c48ee
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/login/login.properties
@@ -0,0 +1,7 @@
+login_account=账号未激活
+login_childError=上级不能为自己或自己的下级
+login_codeError=验证码配置信息错误!
+login_codeNull=验证码不存在或者过期
+login_pwdWrong=账号或者密码不正确
+login_pwdWrong_1=修改失败,旧密码错误
+login_pwdWrong_2=新密码不能与旧密码相同
diff --git a/lms/nladmin-system/src/main/resources/language/login/login_en_US.properties b/lms/nladmin-system/src/main/resources/language/login/login_en_US.properties
new file mode 100644
index 0000000..723c0fe
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/login/login_en_US.properties
@@ -0,0 +1,7 @@
+login_account=Account not activated
+login_childError=The superior cannot act for themselves
+login_codeError=Verification code configuration information error\!
+login_codeNull=The verification code does not exist or has expired
+login_pwdWrong=Incorrect account or password
+login_pwdWrong_1=Modification failed, old password error
+login_pwdWrong_2=The new password cannot be the same as the old password
diff --git a/lms/nladmin-system/src/main/resources/language/login/login_in_ID.properties b/lms/nladmin-system/src/main/resources/language/login/login_in_ID.properties
new file mode 100644
index 0000000..1a3c9b6
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/login/login_in_ID.properties
@@ -0,0 +1,7 @@
+login_account=Akaun tidak diaktifkan
+login_childError=Atasan tidak bisa bertindak untuk diri mereka sendiri
+login_codeError=Galat konfigurasi kode verifikasi\!
+login_codeNull=Kode verifikasi tidak ada atau sudah habis
+login_pwdWrong=Akaun atau kata sandi yang salah
+login_pwdWrong_1=Modifikasi gagal, kesalahan kata sandi lama
+login_pwdWrong_2=Kata sandi baru tidak dapat sama dengan kata sandi lama
diff --git a/lms/nladmin-system/src/main/resources/language/login/login_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/login/login_zh_CN.properties
new file mode 100644
index 0000000..68c48ee
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/login/login_zh_CN.properties
@@ -0,0 +1,7 @@
+login_account=账号未激活
+login_childError=上级不能为自己或自己的下级
+login_codeError=验证码配置信息错误!
+login_codeNull=验证码不存在或者过期
+login_pwdWrong=账号或者密码不正确
+login_pwdWrong_1=修改失败,旧密码错误
+login_pwdWrong_2=新密码不能与旧密码相同
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device.properties b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device.properties
new file mode 100644
index 0000000..8eb4b8e
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device.properties
@@ -0,0 +1,24 @@
+one_message1=\u7533\u8BF7\u5378\u8D27
+one_message2=\u53D6\u8D27\u51C6\u5907
+one_message3=\u53EC\u56DE
+one_message4=\u6025\u505C
+one_message5=\u4E0D\u660E
+one_message6=\u6CA1\u6709\u8F93\u9001\u7EBF\u5230\u5806\u579B\u673A\u7684\u8DEF\u7531
+one_message7=\u672A\u8054\u673A\u6216\u5DF2\u4FEE\u6539
+one_message8=\u7533\u8BF7\u6346\u624E\u7535\u6C14\u8BBE\u5907\u4EFB\u52A1\u53F7
+one_message9=\u672A\u627E\u5230\u5BF9\u5E94\u6307\u4EE4
+one_message10=\u4EFB\u52A1\u53F7\u4E3A\u7A7A
+one_message11=\u672A\u627E\u5230\u8F7D\u5177\u53F7
+one_message13=\u7533\u8BF7\u4EFB\u52A1\u6210\u529F
+one_message14=\u7533\u8BF7\u4EFB\u52A1\u5931\u8D25
+one_message15=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+one_message16=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
+one_message17=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25
+one_message18=\u672A\u627E\u5230\u66F4\u65B0\u7684\u70B9\u4F4D
+one_message19=\u4E0A\u4E00\u6761\u52A8\u4F5C\u4E0D\u662F\u53D6\u8D27\u4E2D\u6216\u8005\u53D6\u8D27\u5B8C\u6210\u62A5\u8B66
+one_message20=\u4E0A\u4E00\u6761\u52A8\u4F5C\u4E0D\u662F\u653E\u8D27\u4E2D\u62A5\u8B66
+one_mode1=\u7533\u8BF7\u5165\u5E93\u4EFB\u52A1
+one_mode2=\u7533\u8BF7\u7A7A\u6258\u76D8\u5165\u5E93
+one_mode3=\u7533\u8BF7AGV\u4EFB\u52A1
+one_mode4=\u7533\u8BF7\u7A7A\u6258\u76D8\u51FA\u5E93
+one_mode5=\u6709\u62A5\u8B66,\u7533\u8BF7\u5F02\u5E38\u4F4D\u4EFB\u52A1
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_en_US.properties b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_en_US.properties
new file mode 100644
index 0000000..73270fa
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_en_US.properties
@@ -0,0 +1,25 @@
+one_message1=Application for discharge
+one_message2=Pick-up preparation
+one_message3=recall
+one_message4=scram
+one_message5=unknown
+one_message6=There is no routing of the conveyor line to the stacker
+one_message7=Not online or modified
+one_message8=Request the task number of bundling electrical devices
+one_message9=No corresponding instruction found
+one_message10=The task number is empty
+one_message11=Vehicle number not found
+one_message13=Request task successfully
+one_message14=Task request failed
+one_message15=The interface for applying for a complement to the AGV carrying task fails. Procedure
+one_message16=Succeeded in applying for the AGV transfer task. Procedure
+one_message17=Failed to apply for the AGV transfer task. Procedure
+one_message18=No updated point found
+one_message19=The previous action is not in the process of picking up or picking up the finished alarm
+one_message20=The last action was not an alarm during delivery
+one_mode1=Request a warehouse entry task
+one_mode2=Request empty pallets for storage
+one_mode3=Request AGV
+one_mode4=Request empty pallets out of warehouse
+one_mode5=have an alarm. Request an anomaly task
+
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_in_ID.properties b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_in_ID.properties
new file mode 100644
index 0000000..17ed9cb
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_in_ID.properties
@@ -0,0 +1,24 @@
+one_message1=Berlaku untuk membongkar
+one_message2=Mendapatkan siap
+one_message3=Penarikan kembali
+one_message4=tiba-tiba
+one_message5=Tak diketahui
+one_message6=Tidak ada rute pengiriman ke stacker
+one_message7=Unfreed atau diubah
+one_message8=Aplikasikan nomor misi perangkat listrik terikat
+one_message9=Perintah yang sesuai tidak ditemukan
+one_message10=Nomor misi kosong
+one_message11=Tidak ada nomor muatan yang ditemukan
+one_message13=Sukses menerapkan misi
+one_message14=Misi aplikasi gagal
+one_message15=Permintaan kode tambahan AGV memindahkan antarmuka misi tidak tersedia
+one_message16=Minta ijin ke operasi AGV
+one_message17=Aplikasi bantuan AGV pemindahan gagal
+one_message18=Titik pembaruan tidak ditemukan
+one_message19=Langkah terakhir bukan untuk mengambil barang atau menggunakannya untuk menyelesaikan alarm
+one_message20=Gerakan terakhir adalah tidak menempatkan alarm di kargo
+one_mode1=Berlaku untuk tugas pustaka
+one_mode2=Pendaftaran nampan kosong
+one_mode3=Permintaan AGV
+one_mode4=Mendaftar untuk pengiriman nampan kosong
+one_mode5=have an alarm. Request an anomaly task
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_zh_CN.properties
new file mode 100644
index 0000000..87d3b7b
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/one_device/one_device_zh_CN.properties
@@ -0,0 +1,24 @@
+one_message1=\u7533\u8BF7\u5378\u8D27
+one_message2=\u53D6\u8D27\u51C6\u5907
+one_message3=\u53EC\u56DE
+one_message4=\u6025\u505C
+one_message5=\u4E0D\u660E
+one_message6=\u6CA1\u6709\u8F93\u9001\u7EBF\u5230\u5806\u579B\u673A\u7684\u8DEF\u7531
+one_message7=\u672A\u8054\u673A\u6216\u5DF2\u4FEE\u6539
+one_message8=\u7533\u8BF7\u6346\u624E\u7535\u6C14\u8BBE\u5907\u4EFB\u52A1\u53F7
+one_message9=\u672A\u627E\u5230\u5BF9\u5E94\u6307\u4EE4
+one_message10=\u4EFB\u52A1\u53F7\u4E3A\u7A7A
+one_message11=\u672A\u627E\u5230\u8F7D\u5177\u53F7
+one_message13=\u7533\u8BF7\u4EFB\u52A1\u6210\u529F
+one_message14=\u7533\u8BF7\u4EFB\u52A1\u5931\u8D25
+one_message15=\u7533\u8BF7\u8865\u7801AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+one_message16=\u7533\u8BF7\u8865\u7801AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
+one_message17=\u7533\u8BF7\u8865\u7801AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25
+one_message18=\u672A\u627E\u5230\u66F4\u65B0\u7684\u70B9\u4F4D
+one_message19=\u4E0A\u4E00\u6761\u52A8\u4F5C\u4E0D\u662F\u53D6\u8D27\u4E2D\u6216\u8005\u53D6\u8D27\u5B8C\u6210\u62A5\u8B66
+one_message20=\u4E0A\u4E00\u6761\u52A8\u4F5C\u4E0D\u662F\u653E\u8D27\u4E2D\u62A5\u8B66
+one_mode1=\u7533\u8BF7\u5165\u5E93\u4EFB\u52A1
+one_mode2=\u7533\u8BF7\u7A7A\u6258\u76D8\u5165\u5E93
+one_mode3=\u7533\u8BF7AGV\u4EFB\u52A1
+one_mode4=\u7533\u8BF7\u7A7A\u6258\u76D8\u51FA\u5E93
+one_mode5=\u6709\u62A5\u8B66,\u7533\u8BF7\u5F02\u5E38\u4F4D\u4EFB\u52A1
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device.properties b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device.properties
new file mode 100644
index 0000000..e65c1e1
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device.properties
@@ -0,0 +1,29 @@
+two_message1=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u6210\u529F...
+two_message2=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u5931\u8D25...
+two_message3=\u53CD\u9988\u8BF7\u6C42\u6210\u529F,\u54CD\u5E94\u53C2\u6570:
+two_message4=action\u4E0D\u4E3A\u53CD\u9988\u91CD\u91CF\u72B6\u6001
+two_message5=\u7533\u8BF7\u4E0B\u6EE1\u6599\u8BF7\u6C42\u4E2D...
+two_message6=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message7=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u6210\u529F
+two_message8=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u5931\u8D25
+two_message9=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u4E2D...
+two_message10=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message11=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u6210\u529F
+two_message12=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u5931\u8D25
+two_message13=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u4E2D...
+two_message14=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u63A5\u53E3\u4E0D\u901A
+two_message15=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u6210\u529F
+two_message16=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u5931\u8D25
+two_message17=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u4E2D
+two_message18=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message19=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
+two_message20=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25
+two_action1=\u524D\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action2=\u524D\u5DE5\u4F4D\u53D6\u8D27\u5B8C\u6210
+two_action3=\u524D\u5DE5\u4F4D\u653E\u8D27\u4E2D
+two_action4=\u524D\u5DE5\u4F4D\u653E\u8D27\u5B8C\u6210
+two_action5=\u540E\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action6=\u540E\u5DE5\u4F4D\u53D6\u8D27\u5B8C\u6210
+two_action7=\u540E\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action8=\u540E\u5DE5\u4F4D\u653E\u8D27\u5B8C\u6210
+two_action9=\u4EFB\u52A1\u5B8C\u6210
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_en_US.properties b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_en_US.properties
new file mode 100644
index 0000000..8545e9f
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_en_US.properties
@@ -0,0 +1,31 @@
+two_message1=Feedback weight as well as reel LMS success...
+two_message2=Feedback weight as well as reel LMS failure...
+two_message3=The feedback request is successful, and the response parameters are:
+two_message4=The action is not a feedback weight state
+two_message5=The application is under a full material request...
+two_message6=The interface for applying for a full material task is not working
+two_message7=The application for the full material task is successful
+two_message8=The application for the full material task failed
+two_message9=Applying to cancel a task...
+two_message10=The API for applying for task cancellation is not available
+two_message11=The request to cancel the task is successful
+two_message12=The request to cancel the task failed
+two_message13=The application form is in the upper space axis request...
+two_message14=The upper axis request interface at the application form is not connected
+two_message15=The request for the upper axis at the application form was successful
+two_message16=The request for the overspace axis at the application form failed
+two_message17=Applying for AGV handling tasks
+two_message18=The interface for applying for AGV handling tasks is not working
+two_message19=The application for AGV handling task was successful
+two_message20=Failed to apply for AGV handling task
+two_action1=Pick-up at the front station
+two_action2=Pick-up at the front station is complete
+two_action3=The goods are being released at the front station
+two_action4=The release of goods at the front station is completed
+two_action5=Pick-up at the post-station
+two_action6=After the station pick-up is completed
+two_action7=Pick-up at the post-station
+two_action8=After the station is released, the goods are completed
+two_action9=Mission accomplished
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_in_ID.properties b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_in_ID.properties
new file mode 100644
index 0000000..76be7af
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_in_ID.properties
@@ -0,0 +1,29 @@
+two_message1=Bobot umpan balik serta kesuksesan LMS gulungan...
+two_message2=Berat umpan balik serta kegagalan LMS gulungan...
+two_message3=Permintaan umpan balik berhasil, dan parameter responsnya adalah:
+two_message4=Tindakan ini bukan status bobot umpan balik
+two_message5=Aplikasi ini berada di bawah permintaan material lengkap ...
+two_message6=Antarmuka untuk melamar tugas material penuh tidak berfungsi
+two_message7=Aplikasi untuk tugas material penuh berhasil
+two_message8=Aplikasi untuk tugas material penuh gagal
+two_message9=Menerapkan untuk membatalkan tugas...
+two_message10=API untuk mengajukan pembatalan tugas tidak tersedia
+two_message11=Permintaan untuk membatalkan tugas berhasil
+two_message12=Permintaan untuk membatalkan tugas gagal
+two_message13=Formulir aplikasi ada di permintaan sumbu ruang atas ...
+two_message14=Antarmuka permintaan sumbu atas pada formulir aplikasi tidak terhubung
+two_message15=Permintaan untuk sumbu atas pada formulir aplikasi berhasil
+two_message16=Permintaan untuk sumbu overspace pada formulir aplikasi gagal
+two_message17=Melamar tugas penanganan AGV
+two_message18=Antarmuka untuk melamar tugas penanganan AGV tidak berfungsi
+two_message19=Aplikasi untuk tugas penanganan AGV berhasil
+two_message20=Gagal melamar tugas penanganan AGV
+two_action1=Penjemputan di stasiun depan
+two_action2=Penjemputan di stasiun depan selesai
+two_action3=Barang-barang sedang dirilis di stasiun depan
+two_action4=Pelepasan barang di stasiun depan selesai
+two_action5=Penjemputan di stasiun pos
+two_action6=Setelah penjemputan stasiun selesai
+two_action7=Penjemputan di stasiun pos
+two_action8=Setelah stasiun dilepaskan, barang selesai
+two_action9=Misi tercapai
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_zh_CN.properties
new file mode 100644
index 0000000..2ec9490
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/two_device/two_device_zh_CN.properties
@@ -0,0 +1,30 @@
+two_message1=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u6210\u529F...
+two_message2=\u53CD\u9988\u91CD\u91CF\u4EE5\u53CA\u6536\u5377\u8F74LMS\u5931\u8D25...
+two_message3=\u53CD\u9988\u8BF7\u6C42\u6210\u529F,\u54CD\u5E94\u53C2\u6570:
+two_message4=action\u4E0D\u4E3A\u53CD\u9988\u91CD\u91CF\u72B6\u6001
+two_message5=\u7533\u8BF7\u4E0B\u6EE1\u6599\u8BF7\u6C42\u4E2D...
+two_message6=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message7=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u6210\u529F
+two_message8=\u7533\u8BF7\u4E0B\u6EE1\u6599\u4EFB\u52A1\u5931\u8D25
+two_message9=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u4E2D...
+two_message10=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message11=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u6210\u529F
+two_message12=\u7533\u8BF7\u53D6\u6D88\u4EFB\u52A1\u5931\u8D25
+two_message13=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u4E2D...
+two_message14=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u63A5\u53E3\u4E0D\u901A
+two_message15=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u6210\u529F
+two_message16=\u7533\u8BF7\u8868\u5904\u4E0A\u7A7A\u8F74\u8BF7\u6C42\u5931\u8D25
+two_message17=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u4E2D
+two_message18=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u63A5\u53E3\u4E0D\u901A
+two_message19=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u6210\u529F
+two_message20=\u7533\u8BF7AGV\u642C\u8FD0\u4EFB\u52A1\u5931\u8D25
+two_action1=\u524D\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action2=\u524D\u5DE5\u4F4D\u53D6\u8D27\u5B8C\u6210
+two_action3=\u524D\u5DE5\u4F4D\u653E\u8D27\u4E2D
+two_action4=\u524D\u5DE5\u4F4D\u653E\u8D27\u5B8C\u6210
+two_action5=\u540E\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action6=\u540E\u5DE5\u4F4D\u53D6\u8D27\u5B8C\u6210
+two_action7=\u540E\u5DE5\u4F4D\u53D6\u8D27\u4E2D
+two_action8=\u540E\u5DE5\u4F4D\u653E\u8D27\u5B8C\u6210
+two_action9=\u4EFB\u52A1\u5B8C\u6210
+
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/universal/universal.properties b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal.properties
new file mode 100644
index 0000000..28f6d19
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal.properties
@@ -0,0 +1,78 @@
+universal_null =\u7A7A
+universal_off-line=\u8131\u673A
+universal_stand-alone=\u5355\u673A
+universal_standby=\u5F85\u673A
+universal_operation=\u8FD0\u884C\u4E2D
+universal_no=\u65E0\u8D27
+universal_yes=\u6709\u8D27
+universal_normal=\u6B63\u5E38
+universal_disable=\u7981\u7528
+universal_large_pallets=\u5927\u6258\u76D8
+universal_small_pallets=\u5C0F\u6258\u76D8
+universal_forward_rotation=\u6B63\u8F6C
+universal_rollback=\u53CD\u8F6C
+universal_two_yes=\u6709\u6258\u76D8\u6709\u8D27
+universal_delivery=\u53D6\u8D27\u4E2D
+universal_completed=\u53D6\u8D27\u5B8C\u6210
+universal_releasing=\u653E\u8D27\u4E2D
+universal_releasing_completed=\u653E\u8D27\u5B8C\u6210
+universal_remark1=\u672A\u67E5\u627E\u4EFB\u52A1\u539F\u56E0\u4E3A\uFF1A
+universal_remark2=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u662F\u5F85\u673A\u72B6\u6001
+universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
+universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
+universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
+universal_remark6=\u524D\u5DE5\u4F4D\u6709\u8D27
+universal_remark7=\u540E\u5DE5\u4F4D\u6709\u8D27
+universal_remark8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38
+universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
+universal_message1=\u653E\u8D27\u5B8C\u6210
+universal_message2=\u653E\u8D27\u5931\u8D25
+universal_message3=\u6709\u62A5\u8B66
+universal_message4=\u672A\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u6307\u4EE4
+universal_message5=\u4E0B\u53D1\u7535\u6C14\u4EFB\u52A1\u53F7\u6210\u529F
+universal_message6=\u5F53\u524D\u6307\u4EE4\u53F7\u4E3A\u7A7A
+universal_message7=\u4EFB\u52A1\u5B8C\u6210...
+universal_message8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38:
+universal_message9=\u521B\u5EFA\u6307\u4EE4\u65F6\u51FA\u73B0\u5F02\u5E38:
+universal_message10=\u4E0B\u53D1\u591A\u4E2A\u7535\u6C14\u4FE1\u53F7:
+universal_message11=\u4FE1\u53F7\u8FDE\u63A5\u5F02\u5E38\uFF01
+universal_message12=\u7533\u8BF7\u884C\u67B6\u4EFB\u52A1\u6210\u529F\uFF01
+universal_message13=\u7533\u8BF7\u884C\u67B6\u4EFB\u52A1\u5931\u8D25\uFF01
+universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
+universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
+universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
+universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
+universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
+universal_feedMessage6=\u4EFB\u52A1\u5B8C\u6210
+universal_feedMessage7=move\u4E0D\u4E3A\u6709\u8D27\u72B6\u6001
+universal_feedMessage8=\u4EFB\u52A1\u53F7\u4E3A0
+universal_feedMessage9=\u52A8\u4F5C\u4FE1\u53F7\u4E0D\u662F\u4EFB\u52A1\u5B8C\u6210
+universal_feedMessage10=\u524D\u5DE5\u4F4D\u5149\u7535\u4FE1\u53F7\u4E0D\u5E94\u8BE5\u4E3A\u6709\u8D27\u72B6\u6001
+universal_feedMessage11=\u540E\u5DE5\u4F4D\u5149\u7535\u4FE1\u53F7\u4E0D\u5E94\u8BE5\u4E3A\u6709\u8D27\u72B6\u6001
+universal_write_erro=\u5199\u5165\u4FE1\u53F7\u5931\u8D25
+universal_notCreateInstMessage1=\u672A\u8BBE\u7F6E\u7535\u6C14\u8C03\u5EA6\u53F7!
+universal_notCreateInstMessage2=\u5149\u7535\u65E0\u8D27,\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage3=\u8BBE\u5907\u5F85\u673A\u6216\u4E0D\u5141\u8BB8\u8FDB\u5165
+universal_notCreateInstMessage4=ddj\u5BF9\u63A5\u4F4D\u6709\u8D27,\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage5=\u5B58\u5728\u76F8\u540C\u8DEF\u7EBF\u7684\u6307\u4EE4!
+universal_notCreateInstMessage6=\u4E0B\u4E00\u4E2A\u8BBE\u5907\u4E0D\u662F\u8F93\u9001\u7EBF\u6307\u4EE4!
+universal_notCreateInstMessage7=\u6258\u76D8\u7C7B\u578B\u4E3A\u7A7A!
+universal_notCreateInstMessage8=\u6761\u7801\u4E3A\u7A7A!
+universal_notCreateInstMessage9=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmode!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage10=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmove!=0\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage11=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage12=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=1\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
+universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
+universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
+universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
+universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
+universal_actionMessage6=\u5141\u8BB8\u53D6
+universal_actionMessage7=\u5141\u8BB8\u653E
+universal_directives=\u6307\u4EE4
+universal_directives_message1=\u64CD\u4F5C\u6210\u529F
+
+
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_en_US.properties b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_en_US.properties
new file mode 100644
index 0000000..cceb334
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_en_US.properties
@@ -0,0 +1,75 @@
+universal_off-line=off-line
+universal_stand-alone=stand-alone
+universal_standby=standby
+universal_operation=operation
+universal_no=Out of stock
+universal_yes=In stock
+universal_normal=normal
+universal_disable=disable
+universal_large_pallets=large pallets
+universal_small_pallets=small pallets
+universal_forward_rotation=forward rotation
+universal_rollback=rollback
+universal_two_yes=There are pallets and goods
+universal_delivery=Taking delivery
+universal_completed=Pick-up completed
+universal_releasing=Releasing goods
+universal_releasing_completed=Release completed
+universal_remark1=The task is not found because
+universal_remark2=Working mode (mode) is not standby
+universal_remark3=Photoelectric signal (move) is in stock status
+universal_message4=No matching instructions were found
+universal_message5=Succeeded in delivering the electrical task number
+universal_remark4=The current report task ID should be 0
+universal_remark5=Right-click the icon and change the Request task reset flag (requireSucess) to No
+universal_remark6=The front station is in stock
+universal_remark7=The rear station is in stock
+universal_remark8=An exception occurred while reading the signal value
+universal_message1=Release completed
+universal_message2=Delivery failure
+universal_message3=Have an alarm
+universal_message6=The current instruction number is empty
+universal_message7=Mission accomplished...
+universal_message8=An exception occurred when reading the signal value:
+universal_message9=An exception occurred while creating the directive
+universal_message10=Multiple electrical signals are issued
+universal_message11=The signal connection is abnormal!
+universal_message12=Successfully applied for shelving task!
+universal_message13=Application for shelving task failed!
+universal_feedMessage1=mode is not in the running state
+universal_feedMessage2=action signal (action signal) is not a release completed status
+universal_feedMessage3=Photoelectric signal (move) is not out of stock
+universal_feedMessage4=The current report task number (task) should not be 0
+universal_feedMessage5=Gantry manipulator
+universal_feedMessage6=Mission accomplished
+universal_feedMessage7=Move is not in stock
+universal_feedMessage8=The task number is 0
+universal_feedMessage9=The action signal is not task completion
+universal_feedMessage10=The front station photoelectric signal should not be in stock
+universal_feedMessage11=The photoelectric signal of the rear station should not be in stock
+universal_write_erro=Write signal failure
+universal_notCreateInstMessage=Instructions cannot be created because the task for the associated device is not found
+universal_notCreateInstMessage1=The electrical dispatch number is not set!
+universal_notCreateInstMessage2=Photoelectric no goods, can not generate commands!
+universal_notCreateInstMessage3=The device is in standby mode or is not allowed to enter
+universal_notCreateInstMessage4=ddj interface bit is in stock, cannot generate command!
+universal_notCreateInstMessage5=Instructions with the same route exist!
+universal_notCreateInstMessage6=The next device is not a conveyor line directive!
+universal_notCreateInstMessage9=Plugging and unplugging axis station mode!=2, unable to generate command!
+universal_notCreateInstMessage10=Plug and unplug shaft station move!=0, command cannot be generated!
+universal_notCreateInstMessage11=Plugging and unplugging axis station action!=2, unable to generate command!
+universal_notCreateInstMessage12=Plugging and unplugging axis station action!=1, unable to generate command!
+universal_actionMessage1=Pick-and-place is not permitted
+universal_actionMessage2=Pick-and-place is allowed
+universal_actionMessage3=Permission to leave
+universal_actionMessage4=The request action has been reset
+universal_actionMessage5=The request action is not reset
+universal_actionMessage6=\u5141\u8BB8\u53D6
+universal_actionMessage7=\u5141\u8BB8\u653E
+universal_notCreateInstMessage7=ray type is empty!
+universal_notCreateInstMessage8=The barcode is blank\uFF01
+universal_directives=Directives
+universal_directives_message1=Successful operation
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_in_ID.properties b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_in_ID.properties
new file mode 100644
index 0000000..e7b7df0
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_in_ID.properties
@@ -0,0 +1,71 @@
+universal_off-line=Akses internet
+universal_stand-alone=(s) single-player
+universal_standby=siaga
+universal_operation=operasi
+universal_no=bayar
+universal_yes=Yang aku mau
+universal_normal=biasa
+universal_disable=menonaktifkan
+universal_large_pallets=Palet besar
+universal_small_pallets=Nampan kecil
+universal_forward_rotation=Rotasi ke depan
+universal_rollback=Rollback
+universal_two_yes=Ada nampan dengan barang
+universal_delivery=Mengambil barang
+universal_completed=Pengambilan barang selesai
+universal_releasing=Letakkan barang
+universal_releasing_completed=Pengiriman selesai
+universal_remark1=Alasan tugas yang tidak dicari adalah
+universal_remark2=Mode tidak dalam mode siaga
+universal_remark3=Sinyal fotolistrik untuk kondisi pengiriman
+universal_remark4=Kita tugaskan tugaskan task
+universal_remark5=Klik kanan pada ikon dan ubah not (requicess) untuk penugasan ulang
+universal_remark6=Stasiun depan tersedia
+universal_remark7=Stasiun belakang tersedia
+universal_remark8=Sebuah anomali muncul ketika membaca nilai sinyal
+universal_message1=Pengiriman selesai
+universal_message2=Gagal memasukkan barang
+universal_message3=Alarm berbunyi
+universal_message4=Tak ada perintah yang ditemukan
+universal_message5=Misi kelistrikan berhasil
+universal_message6=Nomor instruksi saat ini kosong
+universal_message7=Misi tercapai ...
+universal_message8=Pengecualian terjadi saat membaca nilai sinyal:
+universal_message9=Pengecualian terjadi saat membuat direktif
+universal_message10=Beberapa sinyal listrik dikeluarkan
+universal_message12=Aplikasi untuk tugas perancah berhasil!
+universal_message13=Gagal melamar tugas memeras!
+universal_message11=Koneksi sinyal tidak normal!
+universal_feedMessage1=Mode kerja tidak untuk mode dalam mode
+universal_feedMessage2=Sinyal aksi tidak lengkap untuk penempatan
+universal_feedMessage3=tidak ada status pengiriman
+universal_feedMessage4=Tugaskan tugaskan tugaskan bukan hanya 0
+universal_feedMessage5=Pengemudi-mekanik line
+universal_feedMessage6=Misi tercapai
+universal_feedMessage7=Pindah tidak tersedia
+universal_feedMessage8=Nomor tugasnya adalah 0
+universal_feedMessage9=Sinyal tindakan bukanlah penyelesaian tugas
+universal_feedMessage10=Sinyal fotolistrik stasiun depan seharusnya tidak tersedia
+universal_feedMessage11=Sinyal fotolistrik dari stasiun belakang seharusnya tidak tersedia
+universal_write_erro=Sinyal penulis gagal
+universal_notCreateInstMessage=Misi untuk divais yang diasosiasikan tidak ditemukan, perintah tidak dapat dibuat
+universal_notCreateInstMessage1=Nomor pengiriman listrik tidak diatur!
+universal_notCreateInstMessage2=Photo-electric tidak tersedia dan tidak dapat menghasilkan perintah!
+universal_notCreateInstMessage3=Siaga perangkat atau tidak diizinkan masuk
+universal_notCreateInstMessage4=DDJ mendarat di dok, tidak ada perintah yang diberikan!
+universal_notCreateInstMessage5=Ada instruksi tentang rute yang sama!
+universal_notCreateInstMessage6=Perangkat berikutnya bukan arahan jalur konveyor!
+universal_notCreateInstMessage9=Memasukkan dan mencabut mode stasiun sumbu!=2, tidak dapat menghasilkan perintah!
+universal_notCreateInstMessage10=Pasang dan cabut stasiun poros bergerak!=0, perintah tidak dapat dihasilkan!
+universal_notCreateInstMessage11=Memasukkan dan mencabut tindakan stasiun sumbu!=2, tidak dapat menghasilkan perintah!
+universal_notCreateInstMessage12=Memasukkan dan mencabut tindakan stasiun sumbu!=1, tidak dapat menghasilkan perintah!
+universal_actionMessage1=Pick-and-place tidak diizinkan
+universal_actionMessage2=Pick-and-place diperbolehkan
+universal_actionMessage3=Izin untuk pergi
+universal_actionMessage4=Tindakan permintaan telah disetel ulang
+universal_actionMessage5=Tindakan permintaan tidak disetel ulang
+universal_actionMessage6=\u5141\u8BB8\u53D6
+universal_actionMessage7=\u5141\u8BB8\u653E
+universal_notCreateInstMessage7=ponypianmereka yang kosong!
+universal_notCreateInstMessage8=Kode batang kosong!
+universal_directives=Arahan
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_ko_KR.properties b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_ko_KR.properties
new file mode 100644
index 0000000..1e00132
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_ko_KR.properties
@@ -0,0 +1 @@
+universal_directives_message1=\uC791\uC5C5 \uC131\uACF5
diff --git a/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_zh_CN.properties
new file mode 100644
index 0000000..e14f2c3
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/monitor/universal/universal_zh_CN.properties
@@ -0,0 +1,76 @@
+universal_off-line=\u8131\u673A
+universal_stand-alone=\u5355\u673A
+universal_standby=\u5F85\u673A
+universal_operation=\u8FD0\u884C\u4E2D
+universal_no=\u65E0\u8D27
+universal_yes=\u6709\u8D27
+universal_normal=\u6B63\u5E38
+universal_disable=\u7981\u7528
+universal_two_yes=\u6709\u6258\u76D8\u6709\u8D27
+universal_large_pallets=\u5927\u6258\u76D8
+universal_small_pallets=\u5C0F\u6258\u76D8
+universal_forward_rotation=\u6B63\u8F6C
+universal_rollback=\u53CD\u8F6C
+universal_delivery=\u53D6\u8D27\u4E2D
+universal_completed=\u53D6\u8D27\u5B8C\u6210
+universal_releasing=\u653E\u8D27\u4E2D
+universal_releasing_completed=\u653E\u8D27\u5B8C\u6210
+universal_remark1=\u672A\u67E5\u627E\u4EFB\u52A1\u539F\u56E0\u4E3A
+universal_remark2=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u662F\u5F85\u673A\u72B6\u6001
+universal_remark3=\u5149\u7535\u4FE1\u53F7(move)\u4E3A\u6709\u8D27\u72B6\u6001
+universal_remark4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u5E94\u8BE5\u4E3A0
+universal_remark5=\u53F3\u51FB\u8BE5\u56FE\u6807,\u5C06\u8BF7\u6C42\u4EFB\u52A1\u590D\u4F4D\u6807\u8BB0(requireSucess)\u6539\u4E3A\u5426\u3002
+universal_remark6=\u524D\u5DE5\u4F4D\u6709\u8D27
+universal_remark7=\u540E\u5DE5\u4F4D\u6709\u8D27
+universal_remark8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38
+
+universal_message1=\u653E\u8D27\u5B8C\u6210
+universal_message2=\u653E\u8D27\u5931\u8D25
+universal_message3=\u6709\u62A5\u8B66
+universal_message4=\u672A\u627E\u5230\u7B26\u5408\u6761\u4EF6\u7684\u6307\u4EE4
+universal_message5=\u4E0B\u53D1\u7535\u6C14\u4EFB\u52A1\u53F7\u6210\u529F
+universal_message6=\u5F53\u524D\u6307\u4EE4\u53F7\u4E3A\u7A7A
+universal_message7=\u4EFB\u52A1\u5B8Cuniversal_releasing_completed\u6210...
+universal_message8=\u8BFB\u53D6\u4FE1\u53F7\u503C\u65F6\u51FA\u73B0\u5F02\u5E38:
+universal_message9=\u521B\u5EFA\u6307\u4EE4\u65F6\u51FA\u73B0\u5F02\u5E38:
+universal_message10=\u4E0B\u53D1\u591A\u4E2A\u7535\u6C14\u4FE1\u53F7
+universal_message11=\u4FE1\u53F7\u8FDE\u63A5\u5F02\u5E38\uFF01
+universal_message12=\u7533\u8BF7\u884C\u67B6\u4EFB\u52A1\u6210\u529F\uFF01
+universal_message13=\u7533\u8BF7\u884C\u67B6\u4EFB\u52A1\u5931\u8D25\uFF01
+universal_feedMessage1=\u5DE5\u4F5C\u6A21\u5F0F(mode)\u4E0D\u4E3A\u8FD0\u884C\u4E2D\u72B6\u6001
+universal_feedMessage2=\u52A8\u4F5C\u4FE1\u53F7(action)\u4E0D\u4E3A\u653E\u8D27\u5B8C\u6210\u72B6\u6001
+universal_feedMessage3=\u5149\u7535\u4FE1\u53F7(move)\u4E0D\u4E3A\u65E0\u8D27\u72B6\u6001
+universal_feedMessage4=\u5F53\u524D\u4E0A\u62A5\u4EFB\u52A1\u53F7(task)\u4E0D\u5E94\u8BE5\u4E3A0
+universal_feedMessage5=\u884C\u67B6\u673A\u68B0\u624B
+universal_feedMessage6=\u4EFB\u52A1\u5B8C\u6210
+universal_actionMessage1=\u4E0D\u5141\u8BB8\u53D6\u653E
+universal_actionMessage2=\u5141\u8BB8\u53D6\u653E
+universal_actionMessage3=\u5141\u8BB8\u79BB\u5F00
+universal_actionMessage4=\u8BF7\u6C42\u52A8\u4F5C\u5DF2\u590D\u4F4D
+universal_actionMessage5=\u8BF7\u6C42\u52A8\u4F5C\u672A\u590D\u4F4D
+universal_actionMessage6=\u5141\u8BB8\u53D6
+universal_actionMessage7=\u5141\u8BB8\u653E
+universal_feedMessage7=move\u4E0D\u4E3A\u6709\u8D27\u72B6\u6001
+universal_feedMessage8=\u4EFB\u52A1\u53F7\u4E3A0
+universal_feedMessage9=\u52A8\u4F5C\u4FE1\u53F7\u4E0D\u662F\u4EFB\u52A1\u5B8C\u6210
+universal_feedMessage10=\u524D\u5DE5\u4F4D\u5149\u7535\u4FE1\u53F7\u4E0D\u5E94\u8BE5\u4E3A\u6709\u8D27\u72B6\u6001
+universal_feedMessage11=\u540E\u5DE5\u4F4D\u5149\u7535\u4FE1\u53F7\u4E0D\u5E94\u8BE5\u4E3A\u6709\u8D27\u72B6\u6001
+universal_write_erro=\u5199\u5165\u4FE1\u53F7\u5931\u8D25
+universal_notCreateInstMessage=\u672A\u627E\u5230\u5173\u8054\u8BBE\u5907\u7684\u4EFB\u52A1\uFF0C\u6307\u4EE4\u65E0\u6CD5\u521B\u5EFA
+universal_notCreateInstMessage1=\u672A\u8BBE\u7F6E\u7535\u6C14\u8C03\u5EA6\u53F7!
+universal_notCreateInstMessage2=\u5149\u7535\u65E0\u8D27,\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage3=\u8BBE\u5907\u5F85\u673A\u6216\u4E0D\u5141\u8BB8\u8FDB\u5165
+universal_notCreateInstMessage4=ddj\u5BF9\u63A5\u4F4D\u6709\u8D27,\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage5=\u5B58\u5728\u76F8\u540C\u8DEF\u7EBF\u7684\u6307\u4EE4!
+universal_notCreateInstMessage6=\u4E0B\u4E00\u4E2A\u8BBE\u5907\u4E0D\u662F\u8F93\u9001\u7EBF\u6307\u4EE4!
+universal_notCreateInstMessage9=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmode!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage10=\u63D2\u62D4\u8F74\u5DE5\u4F4Dmove!=0\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage11=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=2\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage12=\u63D2\u62D4\u8F74\u5DE5\u4F4Daction!=1\uFF0C\u65E0\u6CD5\u751F\u6210\u6307\u4EE4!
+universal_notCreateInstMessage7=\u6258\u76D8\u7C7B\u578B\u4E3A\u7A7A!
+universal_notCreateInstMessage8=\u6761\u7801\u4E3A\u7A7A!
+universal_directives=\u6307\u4EE4
+universal_directives_message1=\u64CD\u4F5C\u6210\u529F
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/task/task.properties b/lms/nladmin-system/src/main/resources/language/task/task.properties
new file mode 100644
index 0000000..917cf44
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/task/task.properties
@@ -0,0 +1,14 @@
+task_checkExist={0}任务已存在
+task_insHas=指令已存在
+task_insRun=有指令未完成
+task_isNull={0}查询信息不存在
+starting_point_isNull=请选择起点
+endpoint_layer=货位信息终点需要包含层信息
+endpoint_column=货位信息终点需要包含列信息
+start_point_layer=货位信息起点需要包含层信息
+start_point_column=货位信息起点需要包含列信息
+an_endpoint=只能选择一个终点
+material_information=请填写物料信息
+
+
+
diff --git a/lms/nladmin-system/src/main/resources/language/task/task_en_US.properties b/lms/nladmin-system/src/main/resources/language/task/task_en_US.properties
new file mode 100644
index 0000000..bf16cb2
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/task/task_en_US.properties
@@ -0,0 +1,11 @@
+task_checkExist=Task {0} already exists
+task_insHas=Instruction already exists
+task_insRun=There are instructions that are not completed
+task_isNull={0}query is null
+starting_point_isNull = Please select starting point
+endpoint_layer=The destination of the storage location information needs to include the floor information
+endpoint_column=The location information endpoint needs to contain column information
+start_point_layer=The starting point of the storage location information needs to include the floor information
+start_point_column=The starting point of the storage location information needs to contain column information
+an_endpoint=Only one endpoint can be selected
+material_information=Please fill in the material information!
diff --git a/lms/nladmin-system/src/main/resources/language/task/task_in_ID.properties b/lms/nladmin-system/src/main/resources/language/task/task_in_ID.properties
new file mode 100644
index 0000000..5ba8979
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/task/task_in_ID.properties
@@ -0,0 +1,11 @@
+task_checkExist=Tugas {0} sudah ada
+task_insHas=Instruksi sudah ada
+task_insRun=Ada instruksi yang belum selesai
+task_isNull={0}Pertanyaan Tidak ada
+starting_point_isNull = Silakan pilih titik awal
+endpoint_layer=Tujuan informasi lokasi penyimpanan perlu mencakup informasi lantai.
+endpoint_column=Tujuan informasi lokasi penyimpanan perlu mencakup informasi kolom.
+start_point_layer=Titik awal perlu mencakup informasi lantai.
+start_point_column=Titik awal perlu mencakup informasi kolom.
+an_endpoint=Hanya satu tujuan yang dapat dipilih.
+material_information=Silakan isi informasi material!
diff --git a/lms/nladmin-system/src/main/resources/language/task/task_zh_CN.properties b/lms/nladmin-system/src/main/resources/language/task/task_zh_CN.properties
new file mode 100644
index 0000000..c71cc64
--- /dev/null
+++ b/lms/nladmin-system/src/main/resources/language/task/task_zh_CN.properties
@@ -0,0 +1,11 @@
+task_checkExist={0}任务已存在
+task_insHas=指令已存在
+task_insRun=有指令未完成
+task_isNull={0}查询信息不存在
+starting_point_isNull=请选择起点
+endpoint_layer=货位信息终点需要包含层信息
+endpoint_column=货位信息终点需要包含列信息
+start_point_layer=货位信息起点需要包含层信息
+start_point_column=货位信息起点需要包含列信息
+an_endpoint=只能选择一个终点
+material_information=请填写物料信息
diff --git a/lms/nladmin-ui/package.json b/lms/nladmin-ui/package.json
index cfd00d2..aa1cbb3 100644
--- a/lms/nladmin-ui/package.json
+++ b/lms/nladmin-ui/package.json
@@ -6,7 +6,7 @@
"license": "Apache-2.0",
"scripts": {
"dev": "vue-cli-service serve",
- "dev2": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
+ "dev2": "export NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",