From e491cdb48129752324c4e3764f99bd9203c56dec Mon Sep 17 00:00:00 2001
From: lgq <1015864684@qq.com>
Date: 星期二, 31 三月 2026 09:48:44 +0800
Subject: [PATCH] 1.新增VF205门禁机代码

---
 vf205_access/src/view/i18n.js |   82 +++++++++++++++++++++++++++++++++++++++++
 1 files changed, 82 insertions(+), 0 deletions(-)

diff --git a/vf205_access/src/view/i18n.js b/vf205_access/src/view/i18n.js
new file mode 100644
index 0000000..b9c8936
--- /dev/null
+++ b/vf205_access/src/view/i18n.js
@@ -0,0 +1,82 @@
+import dxMap from '../../dxmodules/dxMap.js'
+import dxui from '../../dxmodules/dxUi.js'
+// 璇█鍖�
+import messages from '../../resource/langPack.js'
+
+class I18n {
+    constructor() {
+        const i18nMap = dxMap.get("i18n")
+        this.locale = i18nMap.get("language") || 'EN'
+        this.fallbackLocale = 'CN'
+    }
+
+    // 鑾峰彇缈昏瘧鏂囨湰
+    t(key) {
+        const keys = key.split('.')
+        let result = messages[this.locale]
+
+        for (const k of keys) {
+            if (result && result[k]) {
+                result = result[k]
+            } else {
+                // 濡傛灉褰撳墠璇█娌℃湁鎵惧埌缈昏瘧锛屼娇鐢ㄥ鐢ㄨ瑷�
+                result = this._getFallbackText(key)
+                break
+            }
+        }
+
+        return result || key
+    }
+
+    // 鑾峰彇澶囩敤璇█鐨勭炕璇�
+    _getFallbackText(key) {
+        const keys = key.split('.')
+        let result = messages[this.fallbackLocale]
+
+        for (const k of keys) {
+            if (result && result[k]) {
+                result = result[k]
+            } else {
+                return key
+            }
+        }
+
+        return result
+    }
+
+    // 鍒锋柊
+    refresh() {
+        for (const key in dxui.all) {
+            const obj = dxui.all[key]
+            if (obj.dataI18n) {
+                obj.text(this.t(obj.dataI18n))
+            }
+        }
+    }
+
+    // 鍒锋柊鎸囧畾瀵硅薄
+    refreshObj(obj) {
+        if (obj.dataI18n) {
+            obj.text(this.t(obj.dataI18n))
+        }
+    }
+
+    // 鍒囨崲璇█
+    setLanguage(lang) {
+        if (messages[lang]) {
+            this.locale = lang
+            dxMap.get("i18n").put("language", lang)
+            // 瑙﹀彂鑷畾涔変簨浠讹紝閫氱煡璇█鍙樺寲
+            for (const key in dxui.all) {
+                const obj = dxui.all[key]
+                if (obj.dataI18n) {
+                    obj.text(this.t(obj.dataI18n))
+                }
+            }
+        }
+    }
+}
+
+// 鍒涘缓鍗曚緥
+const i18n = new I18n()
+export default i18n

--
Gitblit v1.9.3