From 5d46ab965bb9bb827e9585400ef006bbc3a7814b Mon Sep 17 00:00:00 2001
From: mac <user@users-MacBook-Pro.local>
Date: 星期三, 06 十一月 2024 16:42:47 +0800
Subject: [PATCH] 去掉Android14等待2s,增加云端脚本缓存在本地

---
 app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java |  241 +++++++++++++++++++++
 app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java          |    2 
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java              |    5 
 app/src/main/res/values/strings.xml                                   |   75 +++---
 app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java  |   32 +-
 app/src/main/java/com/hdl/photovoltaic/HDLApp.java                    |   32 +-
 app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java         |   33 ++
 app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java  |    7 
 app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java    |   14 
 app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java       |   54 ++++
 app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java        |   54 ++++
 app/src/main/res/values-zh/strings.xml                                |   66 +++---
 app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java     |    1 
 app/src/main/res/values-en/strings.xml                                |   36 +-
 14 files changed, 516 insertions(+), 136 deletions(-)

diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
index 9539e49..4876990 100644
--- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
+++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java
@@ -24,6 +24,7 @@
 import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.NetworkType;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlMessageLogic;
 import com.hdl.photovoltaic.other.HdlResidenceLogic;
@@ -168,8 +169,8 @@
         //2.璁剧疆鎵撳嵃
         HDLLinkPMSdk.setLogEnabled(isLogEnabled);
         if (TextUtils.isEmpty(UserConfigManage.getInstance().getCurrentAppLanguage())) {
-            //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄腑鏂�
-            UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.zh);
+            //榛樿閰嶇疆鎺ュ彛璇锋眰璇█鏄嫳鏂�
+            UserConfigManage.getInstance().setCurrentAppLanguage(LocalManageUtil.en);
         }
         //3.閰嶇疆鎺ュ彛璇锋眰璇█
         HDLLinkPMSdk.setLanguage(UserConfigManage.getInstance().getCurrentAppLanguage());
@@ -317,27 +318,20 @@
     private void initAutoSize() {
         AutoSize.initCompatMultiProcess(this);
         boolean isBaseOnWidth = getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT;
-        AutoSizeConfig.getInstance()
-                .setBaseOnWidth(true)
-                .setCustomFragment(true)
-                .setDesignWidthInDp(375)
-                .setDesignHeightInDp(812)
-                .setUseDeviceSize(false)
-                .setOnAdaptListener(new onAdaptListener() {
-                    @Override
-                    public void onAdaptBefore(Object target, Activity activity) {
+        AutoSizeConfig.getInstance().setBaseOnWidth(true).setCustomFragment(true).setDesignWidthInDp(375).setDesignHeightInDp(812).setUseDeviceSize(false).setOnAdaptListener(new onAdaptListener() {
+            @Override
+            public void onAdaptBefore(Object target, Activity activity) {
 
-                        AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
-                        AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1] +
-                                ScreenUtils.getHeightOfNavigationBar(activity) + ScreenUtils.getStatusBarHeight());
+                AutoSizeConfig.getInstance().setScreenWidth(ScreenUtils.getScreenSize(activity)[0]);
+                AutoSizeConfig.getInstance().setScreenHeight(ScreenUtils.getScreenSize(activity)[1] + ScreenUtils.getHeightOfNavigationBar(activity) + ScreenUtils.getStatusBarHeight());
 
-                    }
+            }
 
-                    @Override
-                    public void onAdaptAfter(Object target, Activity activity) {
+            @Override
+            public void onAdaptAfter(Object target, Activity activity) {
 
-                    }
-                });
+            }
+        });
     }
 
     /**
diff --git a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
index 168d9ba..ac8d0a9 100644
--- a/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
+++ b/app/src/main/java/com/hdl/photovoltaic/config/ConstantManage.java
@@ -2,6 +2,7 @@
 
 public class ConstantManage {
 
+
     /******浣忓畢鏁版嵁瀛樺偍鐨勫父閲�*********/
     public static final String SAVE_HOME_ACCOUNT = "account";
     public static final String SAVE_HOME_PASSWORD = "password";
diff --git a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
index 4c0d8ec..ab3bab6 100644
--- a/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
+++ b/app/src/main/java/com/hdl/photovoltaic/internet/HttpClient.java
@@ -20,7 +20,10 @@
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.listener.BaseSuccessFailureCallBeak;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
+import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
+import com.hdl.photovoltaic.other.HdlThreadLogic;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
 import com.hdl.photovoltaic.utils.Md5Utils;
 
 import java.io.File;
@@ -62,6 +65,57 @@
     }
 
     /**
+     * 鑾峰彇json璧勬簮鐢ㄧ殑
+     *
+     * @param url      鍦板潃
+     * @param callBack 鍥炶皟
+     */
+    public void requestJsonHttpGet(String url, CloudCallBeak<String> callBack) {
+        if (TextUtils.isEmpty(url)) {
+            if (callBack != null) {
+                callBack.onSuccess("");
+            }
+        }
+
+        HdlThreadLogic.runSubThread(new Runnable() {
+            @Override
+            public void run() {
+                OkHttpClient client = new OkHttpClient();
+                Request request = new Request.Builder()
+                        .url(url)
+                        .addHeader("Accept-Language", UserConfigManage.getInstance().getCurrentAppLanguage())
+                        .build();
+
+                try (Response response = client.newCall(request).execute()) {
+                    if (response.isSuccessful()) {
+                        if (response.body() == null) {
+                            if (callBack != null) {
+                                callBack.onSuccess("");
+                            }
+                        } else {
+                            String str = response.body().string();
+                            if (callBack != null) {
+                                callBack.onSuccess(str);
+                            }
+                        }
+
+                    } else {
+                        if (callBack != null) {
+                            callBack.onSuccess("");
+                        }
+                    }
+                } catch (Exception e) {
+                    if (callBack != null) {
+                        callBack.onFailure(new HDLException(-20002, e.getMessage()));
+                    }
+                }
+            }
+        });
+
+    }
+
+
+    /**
      * 璇锋眰鏈嶅姟鍣�(get)
      * 搴曞眰鏂规硶,寮曠敤搴撶殑鏂规硶
      *
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java
new file mode 100644
index 0000000..1b6f231
--- /dev/null
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlESLocalJsonLogic.java
@@ -0,0 +1,241 @@
+package com.hdl.photovoltaic.other;
+
+import android.text.TextUtils;
+
+import com.hdl.linkpm.sdk.core.exception.HDLException;
+import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.internet.HttpClient;
+import com.hdl.photovoltaic.listener.CloudCallBeak;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 鏈湴json缂撳瓨閫昏緫
+ */
+public class HdlESLocalJsonLogic {
+    private static volatile HdlESLocalJsonLogic sHdlESLocalJsonLogic;
+
+    /**
+     * 鑾峰彇褰撳墠瀵硅薄
+     *
+     * @return HdlAccountLogic
+     */
+    public static synchronized HdlESLocalJsonLogic getInstance() {
+        if (sHdlESLocalJsonLogic == null) {
+            synchronized (HdlESLocalJsonLogic.class) {
+                if (sHdlESLocalJsonLogic == null) {
+                    sHdlESLocalJsonLogic = new HdlESLocalJsonLogic();
+                }
+            }
+
+        }
+        return sHdlESLocalJsonLogic;
+    }
+
+
+    /**
+     * 銆愰�嗗彉鍣ㄣ�戣澶囧瀷鍙�
+     */
+    public static final String deviceModel_ME_GSE_S5K = "ME-GSE-S5K";
+    /**
+     * 銆愯礋杞芥帶鍒朵腑蹇冦�戣澶囧瀷鍙�
+     */
+    public static final String deviceModel_ME_GSE_SPG63A = "ME-GSE-SPG63A";
+    /**
+     * 銆怋MS銆戣澶囧瀷鍙�
+     */
+    public static final String deviceModel_ME_GSE_BMS15K = "ME-GSE-BMS15K";
+    /**
+     * 銆愮數姹犲寘銆戣澶囧瀷鍙�
+     */
+    public static final String deviceModel_ME_GSE_B5K = "ME-GSE-B5K";
+
+    /**
+     * 鍒涘缓鐢电珯-閫嗗彉鍣ㄥ弬鏁伴厤缃�
+     */
+    public static final String hdl_inv_ecu_quick = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/modbus_hdl_inv_ecu_quick_v1.4.2.json";
+    /**
+     * 鍒涘缓鐢电珯-璐熻浇鎺у埗涓績鍙傛暟閰嶇疆
+     */
+    public static final String hdl_lc_ecu_quick = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/lc/deviceModel/modbus_hdl_lc_ecu_quick_v1.5.0.json";
+    /**
+     * 閫嗗彉鍣ㄥ弬鏁伴厤缃�
+     */
+    public static final String hdl_inv_ecu = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/modbus_hdl_inv_ecu_v1.4.2.json";
+    /**
+     * 閫嗗彉鍣ㄨ鎯�-pv
+     */
+    public static final String hdl_inv_ecu_info_pv = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/info/modbus_hdl_inv_ecu_info_pv_v1.4.2.json";
+    /**
+     * 閫嗗彉鍣ㄨ鎯�-杈撳嚭
+     */
+    public static final String hdl_inv_ecu_info_output = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/info/modbus_hdl_inv_ecu_info_output_v1.4.2.json";
+    /**
+     * 閫嗗彉鍣ㄨ鎯�-item椤�
+     */
+    public static final String hdl_inv_ecu_info_item = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/info/modbus_hdl_inv_ecu_info_item_v1.4.2.json";
+    /**
+     * 鑾峰彇璐熻浇鎺у埗涓績
+     */
+    public static final String hdl_lc_ecu_info_item = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/lc/deviceModel/modbus_hdl_lc_ecu_info_item_v1.5.0.json";
+    /**
+     * 鑾峰彇BMS淇℃伅
+     */
+    public static final String hdl_bms_ecu = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/bms/deviceModel/modbus_hdl_bms_ecu_v1.4.2.json";
+    /**
+     * 鐢垫睜鍖呬俊鎭�
+     */
+    public static final String hdl_battery_ecu = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/battery/deviceModel/modbus_hdl_battery_ecu_v1.4.2.json";
+
+    /**
+     * 鐢垫睜鍖�-鐢佃姱淇℃伅
+     */
+    public static final String hdl_battery_ecu_cell = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/battery/deviceModel/modbus_hdl_battery_ecu_cell_v1.4.2.json";
+
+    /**
+     * 閫嗗彉鍣ㄨ鎯�-淇″彿鐐�
+     */
+    public static final String hdl_inv_ecu_info_signal = "https://hdl-hz-dev.oss-cn-hangzhou.aliyuncs.com/ecu/currentLanguage/inv/deviceModel/info/modbus_hdl_inv_ecu_info_signal_v1.4.1.json";
+
+    /**
+     * 鍒濆鍖栬剼鏈瑄rl
+     *
+     * @return map
+     */
+    private Map<String, String> getUrlMap() {
+        //娉ㄦ剰锛堥�嗗彉鍣�:ME-GSE-S5K锛岃礋杞戒腑蹇�:ME-GSE-SPG63A锛宐ms:ME-GSE-BMS15K锛岀數姹犲寘:ME-GSE-B5K锛夎澶囧瀷鍙蜂笉涓�鏍�
+        Map<String, String> map = new HashMap<>();
+        map.put(this.getNewUrl(hdl_lc_ecu_info_item, deviceModel_ME_GSE_SPG63A), deviceModel_ME_GSE_SPG63A);//鑾峰彇璐熻浇鎺у埗涓績
+        map.put(this.getNewUrl(hdl_lc_ecu_quick, deviceModel_ME_GSE_SPG63A), deviceModel_ME_GSE_SPG63A); //鍒涘缓鐢电珯-璐熻浇鎺у埗涓績鍙傛暟閰嶇疆
+        map.put(this.getNewUrl(hdl_inv_ecu_quick, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);//鍒涘缓鐢电珯-閫嗗彉鍣ㄥ弬鏁伴厤缃�
+        map.put(this.getNewUrl(hdl_inv_ecu, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);//閫嗗彉鍣ㄥ弬鏁伴厤缃�
+        map.put(this.getNewUrl(hdl_inv_ecu_info_pv, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);// 閫嗗彉鍣ㄨ鎯�-pv
+        map.put(this.getNewUrl(hdl_inv_ecu_info_output, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);//閫嗗彉鍣ㄨ鎯�-杈撳嚭
+        map.put(this.getNewUrl(hdl_inv_ecu_info_item, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);//閫嗗彉鍣ㄨ鎯�-item椤�
+        map.put(this.getNewUrl(hdl_inv_ecu_info_signal, deviceModel_ME_GSE_S5K), deviceModel_ME_GSE_S5K);//閫嗗彉鍣ㄨ鎯�-淇″彿鐐�
+        map.put(this.getNewUrl(hdl_bms_ecu, deviceModel_ME_GSE_BMS15K), deviceModel_ME_GSE_BMS15K);//鑾峰彇BMS淇℃伅
+        map.put(this.getNewUrl(hdl_battery_ecu, deviceModel_ME_GSE_B5K), deviceModel_ME_GSE_B5K);//鐢垫睜鍖呬俊鎭�
+        map.put(this.getNewUrl(hdl_battery_ecu_cell, deviceModel_ME_GSE_B5K), deviceModel_ME_GSE_B5K);//鐢垫睜鍖�-鐢佃姱淇℃伅
+        return map;
+    }
+
+    /**
+     * 鍚戜簯绔幏鍙朖son銆愭墍鏈夈�戣剼鏈�
+     */
+    public void getAllHdlESLocalJson() {
+        for (Map.Entry<String, String> entry : getUrlMap().entrySet()) {
+            this.getHdlESLocalJson(entry.getKey(), entry.getValue(), null);
+        }
+    }
+
+    /**
+     * 鍚戜簯绔幏鍙朖son銆愬崟涓�戣剼鏈�
+     *
+     * @param url         鍦板潃
+     * @param deviceModel 璁惧鍨嬪彿
+     */
+    public void getHdlESLocalJson(String url, String deviceModel, CloudCallBeak<String> callBeak) {
+        HttpClient.getInstance().requestJsonHttpGet(url, new CloudCallBeak<String>() {
+            @Override
+            public void onSuccess(String str) {
+                saveJson(url, deviceModel, str);
+                HdlLogLogic.print("鑾峰彇浜戠鑴氭湰---" + url + "\r\n" + str, false);
+                if (callBeak != null) {
+                    callBeak.onSuccess(str);
+                }
+            }
+
+            @Override
+            public void onFailure(HDLException e) {
+                HdlLogLogic.print(e.getMessage(), e.getCode(), false);
+                if (callBeak != null) {
+                    callBeak.onFailure(e);
+                }
+            }
+        });
+    }
+
+    /**
+     * 璇诲彇鏈湴json鏁版嵁
+     *
+     * @param url         鍦板潃
+     * @param deviceModel 璁惧鍨嬪彿
+     */
+    public String readHdlESLocalJson(String url, String deviceModel) {
+        return this.readJson(url, deviceModel);
+    }
+
+    /**
+     * 澶勭悊url杩斿洖鏂扮殑url
+     *
+     * @param url         鍦板潃
+     * @param deviceModel 璁惧绫诲瀷
+     * @return 杩斿洖鍦板潃
+     */
+    private String getNewUrl(String url, String deviceModel) {
+        return url.replace("currentLanguage", UserConfigManage.getInstance().getCurrentAppLanguage()).replace("deviceModel", deviceModel);
+    }
+
+
+    /**
+     * 淇濆瓨json鏁版嵁
+     *
+     * @param fileUrlOrFileName 鍦板潃鎴栬�呮枃浠跺悕
+     * @param deviceModel       璁惧鍨嬪彿锛堥�嗗彉鍣紝璐熻浇涓績锛宐ms锛岀數姹犲寘锛�
+     * @param json              鍐呭
+     */
+    private void saveJson(String fileUrlOrFileName, String deviceModel, String json) {
+        try {
+            if (TextUtils.isEmpty(json)) {
+                return;
+            }
+            String fileName = fileUrlOrFileName;
+            if (fileUrlOrFileName.contains("/")) {
+                //琛ㄧず閾炬帴,鎴彇鏈�鍚庝竴涓储寮曡〃绀烘枃浠跺悕
+                fileName = fileUrlOrFileName.split("/")[fileUrlOrFileName.split("/").length - 1];
+            }
+            if (TextUtils.isEmpty(fileName)) {
+                return;
+            }
+            //鑻辨枃鏂囦欢璺緞
+            String fullPath = HdlFileLogic.getInstance().getHdlESLocalJsonEnFilePath(deviceModel, fileName);
+            if (UserConfigManage.getInstance().isZh()) {
+                //涓枃鏂囦欢璺緞
+                fullPath = HdlFileLogic.getInstance().getHdlESLocalJsonZhFilePath(deviceModel, fileName);
+            }
+
+            HdlFileLogic.getInstance().writeFile(fullPath, json);
+        } catch (Exception ignored) {
+        }
+    }
+
+    /**
+     * 璇诲彇json鏁版嵁
+     *
+     * @param fileUrlOrFileName 鍦板潃鎴栬�呮枃浠跺悕
+     * @param deviceModel       璁惧鍨嬪彿锛堥�嗗彉鍣紝璐熻浇涓績锛宐ms锛岀數姹犲寘锛�
+     */
+    private String readJson(String fileUrlOrFileName, String deviceModel) {
+        try {
+            String fileName = fileUrlOrFileName;
+            if (fileUrlOrFileName.contains("/")) {
+                //琛ㄧず閾炬帴,鎴彇鏈�鍚庝竴涓储寮曡〃绀烘枃浠跺悕
+                fileName = fileUrlOrFileName.split("/")[fileUrlOrFileName.split("/").length - 1];
+            }
+            if (TextUtils.isEmpty(fileName)) {
+                return "";
+            }
+            //鑻辨枃鏂囦欢璺緞
+            String fullPath = HdlFileLogic.getInstance().getHdlESLocalJsonEnFilePath(deviceModel, fileName);
+            if (UserConfigManage.getInstance().isZh()) {
+                //涓枃鏂囦欢璺緞
+                fullPath = HdlFileLogic.getInstance().getHdlESLocalJsonZhFilePath(deviceModel, fileName);
+            }
+            return HdlFileLogic.getInstance().readFile(fullPath);
+        } catch (Exception ignored) {
+            return "";
+        }
+    }
+
+}
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
index 76133f3..c3065ba 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlFileLogic.java
@@ -8,7 +8,9 @@
 import android.text.TextUtils;
 
 import com.hdl.photovoltaic.HDLApp;
+import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
+import com.hdl.photovoltaic.utils.LocalManageUtil;
 
 import org.apache.commons.io.FileUtils;
 
@@ -99,6 +101,19 @@
         return getAPPInternalStoreFilesPath() + "/upgrade/firmware";
     }
 
+    /**
+     * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞
+     */
+    public String getHdlESLocalJsonZhRootPath(String deviceModel) {
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel;
+    }
+
+    /**
+     * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢澶广�戝叏璺緞
+     */
+    public String getHdlESLocalJsonEnRootPath(String deviceModel) {
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel;
+    }
 
 
     /**
@@ -108,12 +123,34 @@
         return getCurrentHomeRootPath() + "/log.txt";
     }
 
+
     /**
      * 鑾峰彇銆愮敤鎴锋枃浠躲�戝叏璺緞
      */
     public String getUserFilePath() {
         return getAPPInternalStoreFilesPath() + "/userConfigManage.txt";
     }
+
+    /**
+     * 鑾峰彇涓枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞
+     */
+    public String getHdlESLocalJsonZhFilePath(String deviceModel, String fileName) {
+        if (!fileName.endsWith(".json")) {
+            fileName += ".json";
+        }
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.zh + "/" + deviceModel + "/" + fileName;
+    }
+
+    /**
+     * 鑾峰彇鑻辨枃銆恓son璧勬簮鏂囦欢銆戝叏璺緞
+     */
+    public String getHdlESLocalJsonEnFilePath(String deviceModel, String fileName) {
+        if (!fileName.endsWith(".json")) {
+            fileName += ".json";
+        }
+        return getAPPInternalStoreFilesPath() + "/hdlESLocalJson/" + LocalManageUtil.en + "/" + deviceModel + "/" + fileName;
+    }
+
 
     /**
      * 鑾峰彇椹卞姩鍗囩骇鏂囦欢鍏ㄨ矾寰�
@@ -157,6 +194,23 @@
     }
 
     /**
+     * 棰勫垱寤簀son璧勬簮鏂囦欢澶�
+     */
+    public void createHdlESLocalJsonDirectory() {
+        //涓枃鏂囦欢澶�
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_S5K));//閫嗗彉鍣�
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_SPG63A));//璐熻浇涓績
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_BMS15K));//BMS
+        this.createFileDir(this.getHdlESLocalJsonZhRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_B5K));//鐢垫睜鍖�
+        //鑻辨枃鏂囦欢澶�
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_S5K));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_SPG63A));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_BMS15K));
+        this.createFileDir(this.getHdlESLocalJsonEnRootPath(HdlESLocalJsonLogic.deviceModel_ME_GSE_B5K));
+
+    }
+
+    /**
      * 鍒涘缓鏂囦欢澶�
      *
      * @param fullPath fullPath 鍏ㄨ矾寰�
diff --git a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
index 7beca24..930ffff 100644
--- a/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
+++ b/app/src/main/java/com/hdl/photovoltaic/other/HdlUniLogic.java
@@ -700,10 +700,41 @@
                     }
                     break;
                     //link杩涜瀵嗙爜楠岃瘉
-                    case HDLUniMP.UNI_EVENT_REPLY_OTHER_Password_verifiy: {
+                    case HDLUniMP.UNI_EVENT_REPLY_OTHER_PASSWORD_VERIFIY: {
                         uniCheckPasswordVerification(mode_type, data, callback);
                     }
                     break;
+                    //鏈湴json璧勬簮鏂囦欢鑾峰彇
+                    case HDLUniMP.UNI_EVENT_REPLY_OTHER_GET_LOCAL_JSON: {
+                        String url = getKeyValue("url", getKeyValue("data", data));
+                        String deviceModel = getKeyValue("deviceModel", getKeyValue("data", data));
+                        String language = getKeyValue("language", getKeyValue("data", data));
+                        String json = HdlESLocalJsonLogic.getInstance().readHdlESLocalJson(url, deviceModel);
+                        if (TextUtils.isEmpty(json)) {
+                            //鏈湴娌℃湁缂撳瓨
+                            HdlESLocalJsonLogic.getInstance().getHdlESLocalJson(url, deviceModel, new CloudCallBeak<String>() {
+                                @Override
+                                public void onSuccess(String obj) {
+                                    if (callback != null) {
+                                        uniSuccessCallback(type, obj, callback);
+                                    }
+                                }
+
+                                @Override
+                                public void onFailure(HDLException e) {
+                                    if (callback != null) {
+                                        uniExceptionCallback(type, e, callback);
+                                    }
+                                }
+                            });
+                        } else {
+                            //鏈湴缂撳瓨鏁版嵁
+                            if (callback != null) {
+                                uniSuccessCallback(type, json, callback);
+                            }
+                        }
+                    }
+                    break;
                 }
             }
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
index dcb6b3e..a1139e7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/BPowerStationActivity.java
@@ -36,6 +36,8 @@
 import com.hdl.photovoltaic.listener.CloudCallBeak;
 import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
+import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlMessageLogic;
 import com.hdl.photovoltaic.other.HdlMqttLogic;
@@ -120,6 +122,11 @@
         this.requestPermissions();
         //璇诲彇娑堟伅鏈鏁伴噺
         this.getUnreadCount();
+        //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
+        HdlFileLogic.getInstance().createHdlESLocalJsonDirectory();
+        //鑾峰彇浜戠鑴氭湰
+        HdlESLocalJsonLogic.getInstance().getAllHdlESLocalJson();
+
 
     }
 
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
index 4b4d273..fad34fe 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java
@@ -5,7 +5,6 @@
 import android.os.Process;
 import android.os.SystemClock;
 import android.text.TextUtils;
-import android.util.Log;
 
 
 import com.google.gson.Gson;
@@ -20,11 +19,11 @@
 import com.hdl.photovoltaic.config.ConstantManage;
 import com.hdl.photovoltaic.config.UserConfigManage;
 import com.hdl.photovoltaic.databinding.ActivityCpowerStationBinding;
-import com.hdl.photovoltaic.enums.LowerTagType;
 import com.hdl.photovoltaic.enums.NetworkType;
 import com.hdl.photovoltaic.listener.CloudCallBeak;
-import com.hdl.photovoltaic.other.HdlCommonLogic;
 import com.hdl.photovoltaic.other.HdlDeviceLogic;
+import com.hdl.photovoltaic.other.HdlESLocalJsonLogic;
+import com.hdl.photovoltaic.other.HdlFileLogic;
 import com.hdl.photovoltaic.other.HdlLogLogic;
 import com.hdl.photovoltaic.other.HdlMqttLogic;
 import com.hdl.photovoltaic.other.HdlOtaLogic;
@@ -46,14 +45,10 @@
 import com.hdl.sdk.link.core.config.HDLLinkConfig;
 import com.hdl.sdk.link.core.utils.mqtt.MqttRecvClient;
 
-import org.greenrobot.eventbus.EventBus;
 import org.greenrobot.eventbus.Subscribe;
 import org.greenrobot.eventbus.ThreadMode;
 
 import java.lang.reflect.Type;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
 import java.util.List;
 
 import cn.jpush.android.api.JPushInterface;
@@ -87,6 +82,10 @@
         this.initMqttClient();
         //涓婁紶鏋佸厜娉ㄥ唽ID鍒颁簯绔�
         this.pushTokens();
+        //棰勫垱寤鸿剼鏈琷son鏂囦欢澶�
+        HdlFileLogic.getInstance().createHdlESLocalJsonDirectory();
+        //鑾峰彇浜戠鑴氭湰
+        HdlESLocalJsonLogic.getInstance().getAllHdlESLocalJson();
     }
 
     @Override
@@ -105,12 +104,13 @@
                 runOnUiThread(new Runnable() {
                     @Override
                     public void run() {
-                        //浣庝簬瀹夊崜14鐗堟湰
-                        if (android.os.Build.VERSION.SDK_INT < 34) {
-                            startAppAutomaticallyOpenUni(false);
-                        } else {
-                            startAppAutomaticallyOpenUni(true);
-                        }
+                        startAppAutomaticallyOpenUni(false);
+//                        //浣庝簬瀹夊崜14鐗堟湰
+//                        if (android.os.Build.VERSION.SDK_INT < 34) {
+//                            startAppAutomaticallyOpenUni(false);
+//                        } else {
+//                            startAppAutomaticallyOpenUni(false);
+//                        }
                     }
                 });
             }
@@ -229,9 +229,9 @@
      */
     private void startAppAutomaticallyOpenUni(boolean delay) {
 
-        if (delay) {
-            SystemClock.sleep(2000);
-        }
+//        if (delay) {
+//            SystemClock.sleep(2000);
+//        }
         if (TextUtils.isEmpty(HDLLinkPMUser.getInstance().getAccessToken())) {
             //鍏跺疄鍒锋柊token澶辫触宸查�氱煡閫�鍑虹櫥褰曪紝鏁版嵁宸茬粡娓呯┖锛屽洜涓虹瓑2s uni鍔犺浇鎱㈠鑷磋姹傞摼鎺ョ殑鏃跺�欏嚭鐜皌oken涓虹┖
             return;
diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
index a8ac825..15030b7 100644
--- a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
+++ b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java
@@ -35,7 +35,6 @@
 //        setNotificationBarBackgroundColor(CustomColor.white);
         getWindow().setStatusBarColor(getColor(R.color.text_FFFFFFFF));
         setStatusBarTextColor();
-
         //鍒濆鍖栨湇鍔″櫒鍩熷悕锛堢敤鎴锋敞鍐屾墍鍦ㄦ湇鍔″櫒鍩熷悕鍦板潃锛�
         AppConfigManage.setUserRegionUrl(HDLLinkPMUser.getInstance().getUserRegionUrl());
         //鍒ゆ柇AccessToken鏄惁null
@@ -73,7 +72,6 @@
                     openActivity(intent);
                 }
             });
-
         } else {
             Intent intent = new Intent();
             intent.setClass(this, LoginActivity.class);
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
index 6ceafb4..687e023 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMP.java
@@ -42,7 +42,6 @@
     public final static String UNI_EVENT_REPLY_DEVICE_MODEL = "uni_device_model";//璁惧妯″潡(澶х被)
     public final static String UNI_EVENT_REPLY_DEVICE_LIST = "list";//鏈湴閫嗗彉鍣ㄨ澶囧垪琛�
     public final static String UNI_EVENT_REPLY_DEVICE_NET_LIST = "net_list";//缃戠粶閫嗗彉鍣ㄨ澶囧垪琛�
-    public final static String UNI_EVENT_REPLY_DEVICE_CLOUD_LIST = "cloud_list";//鑾峰彇浜戠閫嗗彉鍣ㄨ澶囧垪琛�
     public final static String UNI_EVENT_REPLY_DEVICE_CHILD_LIST = "child_list";//閫嗗彉鍣ㄣ�愪笅鎸傘�戣澶囧垪琛�
     public final static String UNI_EVENT_REPLY_DEVICE_ADD = "add";//璁惧娣诲姞
     public final static String UNI_EVENT_REPLY_DEVICE_ADD_All = "add_all";//娣诲姞澶氫釜璁惧
@@ -95,7 +94,9 @@
     public final static String UNI_EVENT_REPLY_OTHER_LOGOUT = "uni_logout";//閫�鍑虹櫥褰�
     public final static String UNI_EVENT_REPLY_OTHER_LOCAL_ENCRYPT_GET = "get_local_encrypt";//鏈湴瀵嗛挜鑾峰彇
     public final static String UNI_EVENT_REPLY_OTHER_LOCAL_ENCRYPT_SET = "set_local_encrypt";//鏈湴瀵嗛挜璁剧疆
-    public final static String UNI_EVENT_REPLY_OTHER_Password_verifiy = "password_verifiy";//link杩涜瀵嗙爜楠岃瘉
+    public final static String UNI_EVENT_REPLY_OTHER_PASSWORD_VERIFIY = "password_verifiy";//link杩涜瀵嗙爜楠岃瘉
+    public final static String UNI_EVENT_REPLY_OTHER_GET_LOCAL_JSON= " get_local_json";//鏈湴json璧勬簮鏂囦欢鑾峰彇
+
 
 
     /*********銆愭垜鐨勩�戞ā鍧�*********/
diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
index a467e5f..0da104a 100644
--- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
+++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java
@@ -280,13 +280,13 @@
                 uniMPOpenConfiguration.splashClass = MySplashView.class;
                 uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, uniMPOpenConfiguration);
             }
-            //android14鏈変簺璁惧鏈夐棶棰橈紝闇�瑕佺瓑寰�
-            if (android.os.Build.VERSION.SDK_INT >= 34) {
-                if (TextUtils.isEmpty(mCurrentAppId)) {
-                    //绗竴娆$敤瑕佷紤鐪�
-                    SystemClock.sleep(1000);
-                }
-            }
+//            //android14鏈変簺璁惧鏈夐棶棰橈紝闇�瑕佺瓑寰�
+//            if (android.os.Build.VERSION.SDK_INT >= 34) {
+//                if (TextUtils.isEmpty(mCurrentAppId)) {
+//                    //绗竴娆$敤瑕佷紤鐪�
+//                    SystemClock.sleep(1000);
+//                }
+//            }
             mCurrentAppId = uniAppId;//璁板綍褰撳墠灏忕▼搴�
             mUniMPCaches.put(uniMP.getAppid(), uniMP);
         } catch (Exception e) {
diff --git a/app/src/main/res/values-en/strings.xml b/app/src/main/res/values-en/strings.xml
index 188767a..039ecca 100644
--- a/app/src/main/res/values-en/strings.xml
+++ b/app/src/main/res/values-en/strings.xml
@@ -162,12 +162,12 @@
     <string name="app_stop_current_download">Stop current download?</string>
     <string name="app_version">Version</string>
     <string name="app_package_size">Size</string>
-    <string name="app_update_content">In order to upgrade the HDL APP successfully, please click the Settings button to allow the installation of applications from unknown sources. This function is only available for APP upgrades. Android versions 11 and above need to be re-downloaded and installed after authorization.</string>
+    <string name="app_update_content">In order to upgrade the HDL APP successfully, please click the Settings button to allow the installation of applications from unknown sources. This function is only available for APP upgrades. Android versions 11 and above need to be re-downloaded and installed after authorization</string>
     <string name="app_update_fail">Authorization failed, unable to install the application</string>
 
     <!--ota-->
     <string name="ota_binding_cloud_upgrade_fails">The inverter is not bound, upgrade failed</string>
-    <string name="ota_not_cloud_upgrade_fails">The inverter is not connected to the cloud, upgrade failed.</string>
+    <string name="ota_not_cloud_upgrade_fails">The inverter is not connected to the cloud, upgrade failed</string>
 
 
     <!--uin-->
@@ -179,11 +179,11 @@
     <string name="loading_agree">Agree to login</string>
     <string name="loading_on_agree">Disagree</string>
     <string name="loading_privacy">Privacy policy and terms of service</string>
-    <string name="loading_privacy_server">To better protect your legitimate rights and interests, please read and agree to the following agreements 銆奝rivacy Policy銆� and 銆奣erms of Service銆�.</string>
+    <string name="loading_privacy_server">To better protect your legitimate rights and interests, please read and agree to the following agreements 銆奝rivacy Policy銆� and 銆奣erms of Service銆�</string>
     <string name="kill_app">Press again to exit </string>
     <string name="loading_not_supported">Sorry, not supported yet</string>
     <string name="loading_title_tip">Prompt</string>
-    <string name="loading_app_restart">Confirm to restart the App.</string>
+    <string name="loading_app_restart">Confirm to restart the App</string>
     <string name="loading_log_out">Confirm logout?</string>
 
 
@@ -195,33 +195,33 @@
     <!--    鍥剧墖涓婁紶       -->
     <string name="camera_album_file_get_fial">Failed to retrieve image</string>
     <string name="camera_album_system_fial">System failed to process image, please retry</string>
-    <string name="apk_update_content">In order to upgrade the  APP successfully, please click the Settings button to allow the installation of applications from unknown sources. This function is only available for APP upgrades. Android versions 11 and above need to be re-downloaded and installed after authorization.</string>
+    <string name="apk_update_content">In order to upgrade the  APP successfully, please click the Settings button to allow the installation of applications from unknown sources. This function is only available for APP upgrades. Android versions 11 and above need to be re-downloaded and installed after authorization</string>
     <string name="apk_update_sure">Settings</string>
     <string name="permission_open">Please go to Settings to enable permission</string>
 
 
-    <string name="please_go_set_permissions">Please set permissions.</string>
+    <string name="please_go_set_permissions">Please set permissions</string>
     <string name="residue"> Remaining time</string>
     <string name="minute">minutes</string>
     <string name="event"> Event</string>
     <string name="The_gateway_cannot_be_found_locally">Unable to find gateway under local network</string>
     <string name="welcome_to_the_smart_energy_app">Welcome to the Smart Energy APP</string>
-    <string name="no_permissions_unable_to_receive_push">Unable to receive push notification If the permission is not enabled, you cannot receive push information.</string>
+    <string name="no_permissions_unable_to_receive_push">Unable to receive push notification If the permission is not enabled, you cannot receive push information</string>
     <string name="go_to_settings">Go to Settings</string>
-    <string name="system_positioning_switch">You need to turn on the system positioning switch. Otherwise, the system can obtain the position information.</string>
+    <string name="system_positioning_switch">You need to turn on the system positioning switch. Otherwise, the system can obtain the position information</string>
 
     <!--寮傚父-->
     <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">Unable to pull up the cloud upgrade file data</string>
     <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">Failed to obtain the md5 key of the upgrade file on the cloud</string>
-    <string name="exception_the_user_cancels_downloading_the_upgrade_file">The user cancels downloading the upgrade file.</string>
-    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">Failed to decrypt the upgrade aes file.</string>
-    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">Failed to generate md5 for the upgrade file.</string>
-    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">Description Failed to compare the md5 of the upgrade file.</string>
-    <string name="exception_the_upgrade_file_is_downloaded">The upgrade file is downloaded.</string>
-    <string name="exception_no_location_information_permission">No location information permission.</string>
-    <string name="exception_the_location_function_is_not_enabled">The location function is not enabled.</string>
-    <string name="exception_unable_location_move10_meters_later">Unable to get the location, please move the phone 10 meters later, and then get again.</string>
-    <string name="succeed">succeed.</string>
+    <string name="exception_the_user_cancels_downloading_the_upgrade_file">The user cancels downloading the upgrade file</string>
+    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">Failed to decrypt the upgrade aes file</string>
+    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">Failed to generate md5 for the upgrade file</string>
+    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">Description Failed to compare the md5 of the upgrade file</string>
+    <string name="exception_the_upgrade_file_is_downloaded">The upgrade file is downloaded</string>
+    <string name="exception_no_location_information_permission">No location information permission</string>
+    <string name="exception_the_location_function_is_not_enabled">The location function is not enabled</string>
+    <string name="exception_unable_location_move10_meters_later">Unable to get the location, please move the phone 10 meters later, and then get again</string>
+    <string name="succeed">succeed</string>
 
     <string name="delete_power_station">Do you want to delete %s power station?</string>
     <string name="power_station_selection">Power station selection</string>
@@ -327,7 +327,7 @@
     <string name="capture_no_network">The current network is not available. Please check the network and try again</string>
     <string name="capture_no_result2">No results were scanned, it may not be a valid QR code</string>
     <string name="scan_cancel">Cancel</string>
-    <string name="not_delivery_qr_code">Not delivery of QR code.</string>
+    <string name="not_delivery_qr_code">Not delivery of QR code</string>
     <string name="device_debugging">Device debugging</string>
     <string name="save_to_album">Save to album</string>
 
diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml
index f58f388..dc541ce 100644
--- a/app/src/main/res/values-zh/strings.xml
+++ b/app/src/main/res/values-zh/strings.xml
@@ -143,8 +143,8 @@
     <string name="set_f">鈩�(鍗庢皬搴�)</string>
     <string name="set_change_bind_phone_number">淇敼鎵嬫満鍙风爜</string>
     <string name="set_change_bind_mail">淇敼閭鍦板潃</string>
-    <string name="set_bind_phone_succeed">缁戝畾鎵嬫満鍙锋垚鍔�.</string>
-    <string name="set_bind_mail_succeed">缁戝畾閭鎴愬姛.</string>
+    <string name="set_bind_phone_succeed">缁戝畾鎵嬫満鍙锋垚鍔�</string>
+    <string name="set_bind_mail_succeed">缁戝畾閭鎴愬姛</string>
 
 
     <!--app鏇存柊-->
@@ -161,12 +161,12 @@
     <string name="app_stop_current_download">鏄惁鍋滄褰撳墠涓嬭浇锛�</string>
     <string name="app_version">鐗堟湰</string>
     <string name="app_package_size">澶у皬</string>
-    <string name="app_update_content">涓轰簡姝e父鍗囩骇娌充笢APP锛岃鐐瑰嚮璁剧疆鎸夐挳锛屽厑璁稿畨瑁呮湭鐭ユ潵婧愬簲鐢紝鏈姛鑳藉彧闄愮敤浜庢渤涓淎PP鐗堟湰鍗囩骇锛孉ndroid 11鐗堟湰鍙婁互涓婇渶瑕佸湪鎺堟潈涔嬪悗閲嶆柊涓嬭浇瀹夎銆�</string>
+    <string name="app_update_content">涓轰簡姝e父鍗囩骇娌充笢APP锛岃鐐瑰嚮璁剧疆鎸夐挳锛屽厑璁稿畨瑁呮湭鐭ユ潵婧愬簲鐢紝鏈姛鑳藉彧闄愮敤浜庢渤涓淎PP鐗堟湰鍗囩骇锛孉ndroid 11鐗堟湰鍙婁互涓婇渶瑕佸湪鎺堟潈涔嬪悗閲嶆柊涓嬭浇瀹夎</string>
     <string name="app_update_fail">鎺堟潈澶辫触锛屾棤娉曞畨瑁呭簲鐢�</string>
 
     <!--ota-->
-    <string name="ota_binding_cloud_upgrade_fails">閫嗗彉鍣ㄦ病缁戝畾杩�,鍗囩骇澶辫触.</string>
-    <string name="ota_not_cloud_upgrade_fails">閫嗗彉鍣ㄦ病杩炰笂浜�,鍗囩骇澶辫触.</string>
+    <string name="ota_binding_cloud_upgrade_fails">閫嗗彉鍣ㄦ病缁戝畾杩�,鍗囩骇澶辫触</string>
+    <string name="ota_not_cloud_upgrade_fails">閫嗗彉鍣ㄦ病杩炰笂浜�,鍗囩骇澶辫触</string>
 
 
     <!--uin-->
@@ -180,9 +180,9 @@
     <string name="loading_privacy">闅愮鏉冩斂绛栧強鏈嶅姟鏉℃</string>
     <string name="loading_privacy_server">涓轰簡鏇村ソ鐨勪繚闅滄偍鐨勫悎娉曟潈鐩婏紝璇锋偍闃呰骞跺悓鎰忎互涓嬪崗璁�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��</string>
     <string name="kill_app">鍐嶆寜涓�娆¢��鍑哄簲鐢�</string>
-    <string name="loading_not_supported">鎶辨瓑,鏆備笉鏀寔.</string>
+    <string name="loading_not_supported">鎶辨瓑,鏆備笉鏀寔</string>
     <string name="loading_title_tip">鎻愮ず</string>
-    <string name="loading_app_restart">纭鍚嶢pp灏嗕細閲嶆柊鍚姩.</string>
+    <string name="loading_app_restart">纭鍚嶢pp灏嗕細閲嶆柊鍚姩</string>
     <string name="loading_log_out">纭閫�鍑虹櫥褰�?</string>
 
 
@@ -204,23 +204,23 @@
     <string name="event">浜嬩欢</string>
     <string name="The_gateway_cannot_be_found_locally">鏈湴鎵句笉鍒扮綉鍏�</string>
     <string name="welcome_to_the_smart_energy_app">娆㈣繋鎵撳紑鏅烘収鑳芥簮APP</string>
-    <string name="no_permissions_unable_to_receive_push">閫氱煡鏉冮檺娌″紑鍚�,灏嗘棤娉曟敹鍒版帹閫佷俊鎭�.</string>
+    <string name="no_permissions_unable_to_receive_push">閫氱煡鏉冮檺娌″紑鍚�,灏嗘棤娉曟敹鍒版帹閫佷俊鎭�</string>
     <string name="go_to_settings">鍓嶅線璁剧疆</string>
-    <string name="system_positioning_switch">闇�瑕佹墦寮�绯荤粺瀹氫綅寮�鍏�,鍚﹀垯鍙栨硶鑾峰彇浣嶇疆淇℃伅.</string>
+    <string name="system_positioning_switch">闇�瑕佹墦寮�绯荤粺瀹氫綅寮�鍏�,鍚﹀垯鍙栨硶鑾峰彇浣嶇疆淇℃伅</string>
 
 
     <!--寮傚父-->
     <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">鎷変笉鍒颁簯绔崌绾ф枃浠舵暟鎹�</string>
     <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">鎷夸笉鍒颁簯绔笂鍗囩骇鏂囦欢md5绉橀挜</string>
-    <string name="exception_the_user_cancels_downloading_the_upgrade_file">鐢ㄦ埛鍙栨秷涓嬭浇鍗囩骇鏂囦欢.</string>
-    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">鍗囩骇鏂囦欢aes瑙e瘑澶辫触.</string>
-    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">鍗囩骇鏂囦欢鐢熸垚md5澶辫触澶辫触.</string>
-    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">鍗囩骇鏂囦欢md5姣斿澶辫触.</string>
-    <string name="exception_the_upgrade_file_is_downloaded">鍗囩骇鏂囦欢涓嬭浇瀹屾垚.</string>
-    <string name="exception_no_location_information_permission">娌℃湁浣嶇疆淇℃伅鏉冮檺.</string>
-    <string name="exception_the_location_function_is_not_enabled">娌″紑鍚畾浣嶅姛鑳�.</string>
-    <string name="exception_unable_location_move10_meters_later">鏃犳硶鑾峰彇浣嶇疆,璇风Щ鍔ㄦ墜鏈�10绫冲悗,鍐嶉噸鏂拌幏鍙�.</string>
-    <string name="succeed">鎴愬姛.</string>
+    <string name="exception_the_user_cancels_downloading_the_upgrade_file">鐢ㄦ埛鍙栨秷涓嬭浇鍗囩骇鏂囦欢</string>
+    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">鍗囩骇鏂囦欢aes瑙e瘑澶辫触</string>
+    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">鍗囩骇鏂囦欢鐢熸垚md5澶辫触澶辫触</string>
+    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">鍗囩骇鏂囦欢md5姣斿澶辫触</string>
+    <string name="exception_the_upgrade_file_is_downloaded">鍗囩骇鏂囦欢涓嬭浇瀹屾垚</string>
+    <string name="exception_no_location_information_permission">娌℃湁浣嶇疆淇℃伅鏉冮檺</string>
+    <string name="exception_the_location_function_is_not_enabled">娌″紑鍚畾浣嶅姛鑳�</string>
+    <string name="exception_unable_location_move10_meters_later">鏃犳硶鑾峰彇浣嶇疆,璇风Щ鍔ㄦ墜鏈�10绫冲悗,鍐嶉噸鏂拌幏鍙�</string>
+    <string name="succeed">鎴愬姛</string>
 
     <string name="delete_power_station">鏄惁瑕佸垹闄�%s鐢电珯?</string>
     <string name="power_station_selection">鐢电珯閫夋嫨</string>
@@ -243,20 +243,20 @@
     <string name="power_station_editing">鐢电珯缂栬緫</string>
     <string name="switch_power_station">鏄惁瑕佸垏鎹�%s鐢电珯?</string>
     <string name="deleting_please_wait">鍒犻櫎涓�,璇风◢绛夆��</string>
-    <string name="already_the_first_one">宸茬粡鏄涓�涓簡.</string>
+    <string name="already_the_first_one">宸茬粡鏄涓�涓簡</string>
     <string name="restarting_please_wait">閲嶅惎涓�,璇风瓑寰呪��</string>
     <string name="port_conflict">搴旂敤鍐茬獊锛岄渶瑕佸叧闂璷npro鎴栬�呭叾瀹冪増鏈殑璋冭瘯杞欢鐒跺悗鍐嶉噸鏂板惎鍔ㄨ繖涓蒋浠惰瘯璇�</string>
 
     <string name="cancel_download_successfully">鍙栨秷涓嬭浇鎴愬姛.</string>
-    <string name="writing_firmware_upgrade_memory_succeeded">鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛.</string>
-    <string name="download_firmware_upgrade_file_failed">涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触.</string>
-    <string name="found_locally_firmware_upgrade_file">鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.</string>
-    <string name="notify_gateway_firmware_upgrade_failed">閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.</string>
-    <string name="local_service_fails">鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇.</string>
-    <string name="writing_drive_memory_succeeded">鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛.</string>
-    <string name="download_drive_file_failed">涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触.</string>
-    <string name="found_locally_drive_file">鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.</string>
-    <string name="notify_gateway_drive_failed">閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.</string>
+    <string name="writing_firmware_upgrade_memory_succeeded">鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛</string>
+    <string name="download_firmware_upgrade_file_failed">涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触</string>
+    <string name="found_locally_firmware_upgrade_file">鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�</string>
+    <string name="notify_gateway_firmware_upgrade_failed">閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇</string>
+    <string name="local_service_fails">鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇</string>
+    <string name="writing_drive_memory_succeeded">鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛</string>
+    <string name="download_drive_file_failed">涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触</string>
+    <string name="found_locally_drive_file">鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�</string>
+    <string name="notify_gateway_drive_failed">閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇</string>
     <string name="time_selectd">鏃堕棿閫夋嫨</string>
     <string name="life_cycle">鐢熷懡鏈�</string>
     <string name="year">骞�</string>
@@ -308,13 +308,13 @@
     <string name="device_off">璁惧宸茬绾�!</string>
     <string name="summarize">姒傝</string>
     <string name="qr_code_business_card">浜岀淮鐮佸悕鐗�</string>
-    <string name="save_qr_code_successfully">淇濆瓨浜岀淮鐮佹垚鍔�.</string>
-    <string name="failed_to_save_qr_code">淇濆瓨浜岀淮鐮佸け璐�.</string>
+    <string name="save_qr_code_successfully">淇濆瓨浜岀淮鐮佹垚鍔�</string>
+    <string name="failed_to_save_qr_code">淇濆瓨浜岀淮鐮佸け璐�</string>
     <string name="staff_management">鍛樺伐绠$悊</string>
     <string name="alarm">鎶ヨ</string>
     <string name="add_power_station">娣诲姞鐢电珯</string>
-    <string name="add_power_station_failing">娣诲姞鐢电珯澶辫触.</string>
-    <string name="add_power_station_succeed">娣诲姞鐢电珯鎴愬姛.</string>
+    <string name="add_power_station_failing">娣诲姞鐢电珯澶辫触</string>
+    <string name="add_power_station_succeed">娣诲姞鐢电珯鎴愬姛</string>
 
     <!--鎵爜-->
     <string name="scan_title">鐢电珯浜岀淮鐮佹壂鎻�</string>
@@ -324,7 +324,7 @@
     <string name="capture_no_network">褰撳墠缃戠粶涓嶅彲鐢�,璇锋鏌ョ綉缁滃悗鍐嶈瘯</string>
     <string name="capture_no_result2">娌℃湁鎵弿鍑虹粨鏋滐紝鍙兘涓嶆槸鏈夋晥鐨勪簩缁寸爜</string>
     <string name="scan_cancel">鍙栨秷</string>
-    <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�.</string>
+    <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�</string>
     <string name="device_debugging">璁惧璋冩祴</string>
     <string name="save_to_album">淇濆瓨鑷崇浉鍐�</string>
 
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index f8e78ff..dc541ce 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,4 +1,5 @@
 <resources>
+    <!--    <string name="app_name">PhotovoltaicDebug</string>-->
     <string name="app_name">鏂扮壒閿愯兘</string>
     <string name="title_activity_home_login">HomeLoginActivity</string>
     <!-- Strings used for fragments for navigation -->
@@ -9,7 +10,6 @@
 
     <string name="hello_first_fragment">Hello first fragment</string>
     <string name="hello_second_fragment">Hello second fragment. Arg: %1$s</string>
-
 
     <!--鐧诲綍妯″潡-->
     <string name="home_login_chinese">绠�浣撲腑鏂�</string>
@@ -104,7 +104,7 @@
     <string name="message_alarm_details_time">鎶ヨ鏃堕棿</string>
     <string name="message_alarm_details_back">杩斿洖</string>
     <string name="message_alarm_details_resolved">宸茶В鍐�</string>
-    <string name="message_alarm_data_null">鏆傛棤娑堟伅</string>
+    <string name="message_alarm_data_null">鏆傛棤娑堟伅!</string>
 
 
     <!--鎴戠殑-->
@@ -143,8 +143,8 @@
     <string name="set_f">鈩�(鍗庢皬搴�)</string>
     <string name="set_change_bind_phone_number">淇敼鎵嬫満鍙风爜</string>
     <string name="set_change_bind_mail">淇敼閭鍦板潃</string>
-    <string name="set_bind_phone_succeed">缁戝畾鎵嬫満鍙锋垚鍔�.</string>
-    <string name="set_bind_mail_succeed">缁戝畾閭鎴愬姛.</string>
+    <string name="set_bind_phone_succeed">缁戝畾鎵嬫満鍙锋垚鍔�</string>
+    <string name="set_bind_mail_succeed">缁戝畾閭鎴愬姛</string>
 
 
     <!--app鏇存柊-->
@@ -161,12 +161,12 @@
     <string name="app_stop_current_download">鏄惁鍋滄褰撳墠涓嬭浇锛�</string>
     <string name="app_version">鐗堟湰</string>
     <string name="app_package_size">澶у皬</string>
-    <string name="app_update_content">涓轰簡姝e父鍗囩骇娌充笢APP锛岃鐐瑰嚮璁剧疆鎸夐挳锛屽厑璁稿畨瑁呮湭鐭ユ潵婧愬簲鐢紝鏈姛鑳藉彧闄愮敤浜庢渤涓淎PP鐗堟湰鍗囩骇锛孉ndroid 11鐗堟湰鍙婁互涓婇渶瑕佸湪鎺堟潈涔嬪悗閲嶆柊涓嬭浇瀹夎銆�</string>
+    <string name="app_update_content">涓轰簡姝e父鍗囩骇娌充笢APP锛岃鐐瑰嚮璁剧疆鎸夐挳锛屽厑璁稿畨瑁呮湭鐭ユ潵婧愬簲鐢紝鏈姛鑳藉彧闄愮敤浜庢渤涓淎PP鐗堟湰鍗囩骇锛孉ndroid 11鐗堟湰鍙婁互涓婇渶瑕佸湪鎺堟潈涔嬪悗閲嶆柊涓嬭浇瀹夎</string>
     <string name="app_update_fail">鎺堟潈澶辫触锛屾棤娉曞畨瑁呭簲鐢�</string>
 
     <!--ota-->
-    <string name="ota_binding_cloud_upgrade_fails">閫嗗彉鍣ㄦ病缁戝畾杩�,鍗囩骇澶辫触.</string>
-    <string name="ota_not_cloud_upgrade_fails">閫嗗彉鍣ㄦ病杩炰笂浜�,鍗囩骇澶辫触.</string>
+    <string name="ota_binding_cloud_upgrade_fails">閫嗗彉鍣ㄦ病缁戝畾杩�,鍗囩骇澶辫触</string>
+    <string name="ota_not_cloud_upgrade_fails">閫嗗彉鍣ㄦ病杩炰笂浜�,鍗囩骇澶辫触</string>
 
 
     <!--uin-->
@@ -180,9 +180,9 @@
     <string name="loading_privacy">闅愮鏉冩斂绛栧強鏈嶅姟鏉℃</string>
     <string name="loading_privacy_server">涓轰簡鏇村ソ鐨勪繚闅滄偍鐨勫悎娉曟潈鐩婏紝璇锋偍闃呰骞跺悓鎰忎互涓嬪崗璁�婇殣绉佹潈鏀跨瓥銆嬪拰銆婃湇鍔℃潯娆俱��</string>
     <string name="kill_app">鍐嶆寜涓�娆¢��鍑哄簲鐢�</string>
-    <string name="loading_not_supported">鎶辨瓑,鏆備笉鏀寔.</string>
+    <string name="loading_not_supported">鎶辨瓑,鏆備笉鏀寔</string>
     <string name="loading_title_tip">鎻愮ず</string>
-    <string name="loading_app_restart">纭鍚嶢pp灏嗕細閲嶆柊鍚姩.</string>
+    <string name="loading_app_restart">纭鍚嶢pp灏嗕細閲嶆柊鍚姩</string>
     <string name="loading_log_out">纭閫�鍑虹櫥褰�?</string>
 
 
@@ -204,23 +204,23 @@
     <string name="event">浜嬩欢</string>
     <string name="The_gateway_cannot_be_found_locally">鏈湴鎵句笉鍒扮綉鍏�</string>
     <string name="welcome_to_the_smart_energy_app">娆㈣繋鎵撳紑鏅烘収鑳芥簮APP</string>
-    <string name="no_permissions_unable_to_receive_push">閫氱煡鏉冮檺娌″紑鍚�,灏嗘棤娉曟敹鍒版帹閫佷俊鎭�.</string>
+    <string name="no_permissions_unable_to_receive_push">閫氱煡鏉冮檺娌″紑鍚�,灏嗘棤娉曟敹鍒版帹閫佷俊鎭�</string>
     <string name="go_to_settings">鍓嶅線璁剧疆</string>
-    <string name="system_positioning_switch">闇�瑕佹墦寮�绯荤粺瀹氫綅寮�鍏�,鍚﹀垯鍙栨硶鑾峰彇浣嶇疆淇℃伅.</string>
+    <string name="system_positioning_switch">闇�瑕佹墦寮�绯荤粺瀹氫綅寮�鍏�,鍚﹀垯鍙栨硶鑾峰彇浣嶇疆淇℃伅</string>
+
 
     <!--寮傚父-->
     <string name="exception_unable_to_pull_up_the_cloud_upgrade_file_data">鎷変笉鍒颁簯绔崌绾ф枃浠舵暟鎹�</string>
     <string name="exception_failed_to_obtain_the_md5_key_of_the_upgrade_file_on_the_cloud">鎷夸笉鍒颁簯绔笂鍗囩骇鏂囦欢md5绉橀挜</string>
-    <string name="exception_the_user_cancels_downloading_the_upgrade_file">鐢ㄦ埛鍙栨秷涓嬭浇鍗囩骇鏂囦欢.</string>
-    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">鍗囩骇鏂囦欢aes瑙e瘑澶辫触.</string>
-    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">鍗囩骇鏂囦欢鐢熸垚md5澶辫触澶辫触.</string>
-    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">鍗囩骇鏂囦欢md5姣斿澶辫触.</string>
-    <string name="exception_the_upgrade_file_is_downloaded">鍗囩骇鏂囦欢涓嬭浇瀹屾垚.</string>
-    <string name="exception_no_location_information_permission">娌℃湁浣嶇疆淇℃伅鏉冮檺.</string>
-    <string name="exception_the_location_function_is_not_enabled">娌″紑鍚畾浣嶅姛鑳�.</string>
-    <string name="exception_unable_location_move10_meters_later">鏃犳硶鑾峰彇浣嶇疆,璇风Щ鍔ㄦ墜鏈�10绫冲悗,鍐嶉噸鏂拌幏鍙�.</string>
-    <string name="succeed">鎴愬姛.</string>
-
+    <string name="exception_the_user_cancels_downloading_the_upgrade_file">鐢ㄦ埛鍙栨秷涓嬭浇鍗囩骇鏂囦欢</string>
+    <string name="exception_failed_to_decrypt_the_upgrade_aes_file">鍗囩骇鏂囦欢aes瑙e瘑澶辫触</string>
+    <string name="exception_failed_to_generate_md5_for_the_upgrade_file">鍗囩骇鏂囦欢鐢熸垚md5澶辫触澶辫触</string>
+    <string name="exception_description_failed_to_compare_the_md5_of_the_upgrade_file">鍗囩骇鏂囦欢md5姣斿澶辫触</string>
+    <string name="exception_the_upgrade_file_is_downloaded">鍗囩骇鏂囦欢涓嬭浇瀹屾垚</string>
+    <string name="exception_no_location_information_permission">娌℃湁浣嶇疆淇℃伅鏉冮檺</string>
+    <string name="exception_the_location_function_is_not_enabled">娌″紑鍚畾浣嶅姛鑳�</string>
+    <string name="exception_unable_location_move10_meters_later">鏃犳硶鑾峰彇浣嶇疆,璇风Щ鍔ㄦ墜鏈�10绫冲悗,鍐嶉噸鏂拌幏鍙�</string>
+    <string name="succeed">鎴愬姛</string>
 
     <string name="delete_power_station">鏄惁瑕佸垹闄�%s鐢电珯?</string>
     <string name="power_station_selection">鐢电珯閫夋嫨</string>
@@ -243,21 +243,20 @@
     <string name="power_station_editing">鐢电珯缂栬緫</string>
     <string name="switch_power_station">鏄惁瑕佸垏鎹�%s鐢电珯?</string>
     <string name="deleting_please_wait">鍒犻櫎涓�,璇风◢绛夆��</string>
-    <string name="already_the_first_one">宸茬粡鏄涓�涓簡.</string>
+    <string name="already_the_first_one">宸茬粡鏄涓�涓簡</string>
     <string name="restarting_please_wait">閲嶅惎涓�,璇风瓑寰呪��</string>
     <string name="port_conflict">搴旂敤鍐茬獊锛岄渶瑕佸叧闂璷npro鎴栬�呭叾瀹冪増鏈殑璋冭瘯杞欢鐒跺悗鍐嶉噸鏂板惎鍔ㄨ繖涓蒋浠惰瘯璇�</string>
 
-
     <string name="cancel_download_successfully">鍙栨秷涓嬭浇鎴愬姛.</string>
-    <string name="writing_firmware_upgrade_memory_succeeded">鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛.</string>
-    <string name="download_firmware_upgrade_file_failed">涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触.</string>
-    <string name="found_locally_firmware_upgrade_file">鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�.</string>
-    <string name="notify_gateway_firmware_upgrade_failed">閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.</string>
-    <string name="local_service_fails">鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇.</string>
-    <string name="writing_drive_memory_succeeded">鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛.</string>
-    <string name="download_drive_file_failed">涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触.</string>
-    <string name="found_locally_drive_file">鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�.</string>
-    <string name="notify_gateway_drive_failed">閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇.</string>
+    <string name="writing_firmware_upgrade_memory_succeeded">鍐欏叆鏂板浐浠舵枃浠跺埌鍐呭瓨鎴愬姛</string>
+    <string name="download_firmware_upgrade_file_failed">涓嬭浇鍥轰欢鍗囩骇鏂囦欢澶辫触</string>
+    <string name="found_locally_firmware_upgrade_file">鏈湴鎵句笉鍒板崌绾у浐浠舵枃浠�,璇蜂笅杞藉ソ鍥轰欢鏂囦欢,鍐嶉噸鏂板崌绾�</string>
+    <string name="notify_gateway_firmware_upgrade_failed">閫氱煡缁欑綉鍏冲崌绾у浐浠舵枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇</string>
+    <string name="local_service_fails">鏈湴鏈嶅姟鏈夊紓甯稿け璐�,鏃犳硶鍗囩骇</string>
+    <string name="writing_drive_memory_succeeded">鍐欏叆鏂伴┍鍔ㄦ枃浠跺埌鍐呭瓨鎴愬姛</string>
+    <string name="download_drive_file_failed">涓嬭浇椹卞姩鍗囩骇鏂囦欢澶辫触</string>
+    <string name="found_locally_drive_file">鏈湴鎵句笉鍒板崌绾ч┍鍔ㄦ枃浠�,璇蜂笅杞藉ソ椹卞姩鏂囦欢,鍐嶉噸鏂板崌绾�</string>
+    <string name="notify_gateway_drive_failed">閫氱煡缁欑綉鍏冲崌绾ч┍鍔ㄦ枃浠跺湴鍧�澶辫触,鏃犳硶鍗囩骇</string>
     <string name="time_selectd">鏃堕棿閫夋嫨</string>
     <string name="life_cycle">鐢熷懡鏈�</string>
     <string name="year">骞�</string>
@@ -309,23 +308,23 @@
     <string name="device_off">璁惧宸茬绾�!</string>
     <string name="summarize">姒傝</string>
     <string name="qr_code_business_card">浜岀淮鐮佸悕鐗�</string>
-    <string name="save_qr_code_successfully">淇濆瓨浜岀淮鐮佹垚鍔�.</string>
-    <string name="failed_to_save_qr_code">淇濆瓨浜岀淮鐮佸け璐�.</string>
+    <string name="save_qr_code_successfully">淇濆瓨浜岀淮鐮佹垚鍔�</string>
+    <string name="failed_to_save_qr_code">淇濆瓨浜岀淮鐮佸け璐�</string>
     <string name="staff_management">鍛樺伐绠$悊</string>
     <string name="alarm">鎶ヨ</string>
     <string name="add_power_station">娣诲姞鐢电珯</string>
-    <string name="add_power_station_failing">娣诲姞鐢电珯澶辫触.</string>
-    <string name="add_power_station_succeed">娣诲姞鐢电珯鎴愬姛.</string>
+    <string name="add_power_station_failing">娣诲姞鐢电珯澶辫触</string>
+    <string name="add_power_station_succeed">娣诲姞鐢电珯鎴愬姛</string>
 
     <!--鎵爜-->
-    <string name="scan_title">浜岀淮鐮佹壂鎻�</string>
+    <string name="scan_title">鐢电珯浜岀淮鐮佹壂鎻�</string>
     <string name="zxing_scan_tips">灏嗕簩缁寸爜鏀惧叆妗嗗唴锛屽嵆鍙嚜鍔ㄦ壂鎻�</string>
     <string name="capture_no_camera">娌℃湁璁块棶鐩告満鐨勬潈闄愶紝璇锋墦寮�璁块棶鏉冮檺鍐嶈瘯</string>
     <string name="capture_no_result">娌℃湁鎵弿鍑虹粨鏋�</string>
     <string name="capture_no_network">褰撳墠缃戠粶涓嶅彲鐢�,璇锋鏌ョ綉缁滃悗鍐嶈瘯</string>
     <string name="capture_no_result2">娌℃湁鎵弿鍑虹粨鏋滐紝鍙兘涓嶆槸鏈夋晥鐨勪簩缁寸爜</string>
     <string name="scan_cancel">鍙栨秷</string>
-    <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�.</string>
+    <string name="not_delivery_qr_code">涓嶆槸浜や粯浜岀淮鐮�</string>
     <string name="device_debugging">璁惧璋冩祴</string>
     <string name="save_to_album">淇濆瓨鑷崇浉鍐�</string>
 

--
Gitblit v1.8.0